diff --git a/apps/getting-started/index.ts b/apps/getting-started/index.ts index e55136e1..97205151 100644 --- a/apps/getting-started/index.ts +++ b/apps/getting-started/index.ts @@ -2,185 +2,95 @@ import api from '@flatfile/api' import { FlatfileListener } from '@flatfile/listener' export default function (listener: FlatfileListener) { - listener.namespace(['*:red'], (red) => { - red.filter({ job: 'space:configure' }, (configure) => { - configure.on( - 'job:ready', - async ({ context: { spaceId, environmentId, jobId } }) => { - try { - await api.jobs.ack(jobId, { - info: 'Gettin started.', - progress: 10, - }) + listener.filter({ job: 'space:configure' }, (configure) => { + configure.on( + 'job:ready', + async ({ context: { spaceId, environmentId, jobId } }) => { + try { + await api.jobs.ack(jobId, { + info: 'Getting started.', + progress: 10, + }) - await api.workbooks.create({ - spaceId, - environmentId, - name: 'Red', - labels: ['primary'], - // namespace: 'red', - sheets: [ - { - name: 'Red Contacts', - slug: 'contacts', - fields: [ - { - key: 'firstName', - type: 'string', - label: 'First Name', - }, - { - key: 'lastName', - type: 'string', - label: 'Last Name', - }, - { - key: 'email', - type: 'string', - label: 'Email', - }, - ], - actions: [ - { - operation: 'duplicate', - mode: 'background', - label: 'Duplicate Sheet', - type: 'string', - description: - 'Duplicate this Sheet and lock down the original.', - primary: true, - }, - ], - }, - ], - actions: [ - { - operation: 'submitActionFg', - mode: 'foreground', - label: 'Submit foreground', - type: 'string', - description: 'Submit data to webhook.site', - primary: true, - }, - ], - }) - - await api.documents.create(spaceId, { - title: 'Getting Started', - body: - '# Welcome\n' + - '### Say hello to your first customer Space in the new Flatfile!\n' + - "Let's begin by first getting acquainted with what you're seeing in your Space initially.\n" + - '---\n', - }) - - await api.jobs.complete(jobId, { - outcome: { - message: 'This job is now complete.', + await api.workbooks.create({ + spaceId, + environmentId, + name: 'Contacts', + labels: ['primary'], + sheets: [ + { + name: 'Contacts', + slug: 'contacts', + fields: [ + { + key: 'firstName', + type: 'string', + label: 'First Name', + }, + { + key: 'lastName', + type: 'string', + label: 'Last Name', + }, + { + key: 'email', + type: 'string', + label: 'Email', + }, + ], + actions: [ + { + operation: 'duplicate', + mode: 'background', + label: 'Duplicate Sheet', + type: 'string', + description: + 'Duplicate this Sheet and lock down the original.', + primary: true, + }, + ], }, - }) - } catch (error) { - console.error('Error:', error.stack) - - await api.jobs.fail(jobId, { - outcome: { - message: 'This job encountered an error.', + ], + actions: [ + { + operation: 'submitActionFg', + mode: 'foreground', + label: 'Submit foreground', + type: 'string', + description: 'Submit data to webhook.site', + primary: true, }, - }) - } - } - ) - }) - }) - - listener.namespace(['space:green'], (green) => { - green.filter({ job: 'space:configure' }, (configure) => { - configure.on( - 'job:ready', - async ({ context: { spaceId, environmentId, jobId } }) => { - try { - await api.jobs.ack(jobId, { - info: 'Gettin started.', - progress: 10, - }) + ], + }) - await api.workbooks.create({ - spaceId, - environmentId, - name: 'Green', - labels: ['primary'], - sheets: [ - { - name: 'Green Contacts', - slug: 'contacts', - // namespace: 'green', - fields: [ - { - key: 'firstName', - type: 'string', - label: 'First Name', - }, - { - key: 'lastName', - type: 'string', - label: 'Last Name', - }, - { - key: 'email', - type: 'string', - label: 'Email', - }, - ], - actions: [ - { - operation: 'duplicate', - mode: 'background', - label: 'Duplicate Sheet', - type: 'string', - description: - 'Duplicate this Sheet and lock down the original.', - primary: true, - }, - ], - }, - ], - actions: [ - { - operation: 'submitActionFg', - mode: 'foreground', - label: 'Submit foreground', - type: 'string', - description: 'Submit data to webhook.site', - primary: true, - }, - ], - }) + await api.documents.create(spaceId, { + title: 'Getting Started', + body: + '# Welcome\n' + + '### Say hello to your first customer Space in the new Flatfile!\n' + + "Let's begin by first getting acquainted with what you're seeing in your Space initially.\n" + + '---\n', + }) - await api.documents.create(spaceId, { - title: 'Getting Started', - body: - '# Welcome\n' + - '### Say hello to your first customer Space in the new Flatfile!\n' + - "Let's begin by first getting acquainted with what you're seeing in your Space initially.\n" + - '---\n', - }) + await api.jobs.complete(jobId, { + outcome: { + message: 'This job is now complete.', + }, + }) + } catch (error) { + console.error('Error:', error.stack) - await api.jobs.complete(jobId, { - outcome: { - message: 'This job is now complete.', - }, - }) - } catch (error) { - console.error('Error:', error.stack) - - await api.jobs.fail(jobId, { - outcome: { - message: 'This job encountered an error.', - }, - }) - } + await api.jobs.fail(jobId, { + outcome: { + message: 'This job encountered an error.', + }, + }) } - ) - }) + } + ) + }) + + listener.on("**", async (record) => { + console.log("Event -> ", record.topic) }) } diff --git a/apps/getting-started/package.json b/apps/getting-started/package.json index b75a2df6..cdb61875 100644 --- a/apps/getting-started/package.json +++ b/apps/getting-started/package.json @@ -7,7 +7,11 @@ "scripts": { "develop": "flatfile develop index.ts", "deploy": "flatfile deploy index.ts", - "paginate": "flatfile develop paginate-records.ts" + "paginate": "flatfile develop paginate-records.ts", + "flatfile": "flatfile", + "logs": "aws logs tail /aws/lambda/agent_us_ag_1oz3Oy4N --follow --region us-west-2", + "spaces:list": "flatfile api spaces list", + "workbooks:get": "flatfile api workbooks get 'us_wb_ewnlxUPw'" }, "keywords": [], "author": "", diff --git a/bun.lockb b/bun.lockb new file mode 100755 index 00000000..7a9cf136 Binary files /dev/null and b/bun.lockb differ diff --git a/mise.toml b/mise.toml new file mode 100644 index 00000000..acdca50f --- /dev/null +++ b/mise.toml @@ -0,0 +1,2 @@ +[tools] +node = "18.16" diff --git a/package-lock.json b/package-lock.json index ce93d1b1..c9504da7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -939,6 +939,40 @@ "integrity": "sha512-12WGKBQzjUAI4ayyF4IAtfw2QR/IDoqk6jTddXDhtYTJF9ASmoE1zst7cVtP0aL/F1jUJL5r+JxKXKEgHNbEUQ==", "dev": true }, + "node_modules/@alcalzone/ansi-tokenize": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@alcalzone/ansi-tokenize/-/ansi-tokenize-0.1.3.tgz", + "integrity": "sha512-3yWxPTq3UQ/FY9p1ErPxIyfT64elWaMvM9lIHnaqpyft63tkxodF5aUElYHrdisWve5cETkh1+KBw1yJuW0aRw==", + "dependencies": { + "ansi-styles": "^6.2.1", + "is-fullwidth-code-point": "^4.0.0" + }, + "engines": { + "node": ">=14.13.1" + } + }, + "node_modules/@alcalzone/ansi-tokenize/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@alcalzone/ansi-tokenize/node_modules/is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@ampproject/remapping": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", @@ -3691,6 +3725,7 @@ "cpu": [ "ppc64" ], + "dev": true, "optional": true, "os": [ "aix" @@ -3707,6 +3742,7 @@ "cpu": [ "arm" ], + "dev": true, "optional": true, "os": [ "android" @@ -3723,6 +3759,7 @@ "cpu": [ "arm64" ], + "dev": true, "optional": true, "os": [ "android" @@ -3739,6 +3776,7 @@ "cpu": [ "x64" ], + "dev": true, "optional": true, "os": [ "android" @@ -3755,6 +3793,7 @@ "cpu": [ "arm64" ], + "dev": true, "optional": true, "os": [ "darwin" @@ -3771,6 +3810,7 @@ "cpu": [ "x64" ], + "dev": true, "optional": true, "os": [ "darwin" @@ -3787,6 +3827,7 @@ "cpu": [ "arm64" ], + "dev": true, "optional": true, "os": [ "freebsd" @@ -3803,6 +3844,7 @@ "cpu": [ "x64" ], + "dev": true, "optional": true, "os": [ "freebsd" @@ -3819,6 +3861,7 @@ "cpu": [ "arm" ], + "dev": true, "optional": true, "os": [ "linux" @@ -3835,6 +3878,7 @@ "cpu": [ "arm64" ], + "dev": true, "optional": true, "os": [ "linux" @@ -3851,6 +3895,7 @@ "cpu": [ "ia32" ], + "dev": true, "optional": true, "os": [ "linux" @@ -3867,6 +3912,7 @@ "cpu": [ "loong64" ], + "dev": true, "optional": true, "os": [ "linux" @@ -3883,6 +3929,7 @@ "cpu": [ "mips64el" ], + "dev": true, "optional": true, "os": [ "linux" @@ -3899,6 +3946,7 @@ "cpu": [ "ppc64" ], + "dev": true, "optional": true, "os": [ "linux" @@ -3915,6 +3963,7 @@ "cpu": [ "riscv64" ], + "dev": true, "optional": true, "os": [ "linux" @@ -3931,6 +3980,7 @@ "cpu": [ "s390x" ], + "dev": true, "optional": true, "os": [ "linux" @@ -3947,6 +3997,7 @@ "cpu": [ "x64" ], + "dev": true, "optional": true, "os": [ "linux" @@ -3963,6 +4014,7 @@ "cpu": [ "x64" ], + "dev": true, "optional": true, "os": [ "netbsd" @@ -3995,6 +4047,7 @@ "cpu": [ "x64" ], + "dev": true, "optional": true, "os": [ "openbsd" @@ -4011,6 +4064,7 @@ "cpu": [ "x64" ], + "dev": true, "optional": true, "os": [ "sunos" @@ -4027,6 +4081,7 @@ "cpu": [ "arm64" ], + "dev": true, "optional": true, "os": [ "win32" @@ -4043,6 +4098,7 @@ "cpu": [ "ia32" ], + "dev": true, "optional": true, "os": [ "win32" @@ -4059,6 +4115,7 @@ "cpu": [ "x64" ], + "dev": true, "optional": true, "os": [ "win32" @@ -8487,41 +8544,6 @@ } } }, - "node_modules/@rollup/plugin-commonjs": { - "version": "23.0.7", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-23.0.7.tgz", - "integrity": "sha512-hsSD5Qzyuat/swzrExGG5l7EuIlPhwTsT7KwKbSCQzIcJWjRxiimi/0tyMYY2bByitNb3i1p+6JWEDGa0NvT0Q==", - "dependencies": { - "@rollup/pluginutils": "^5.0.1", - "commondir": "^1.0.1", - "estree-walker": "^2.0.2", - "glob": "^8.0.3", - "is-reference": "1.2.1", - "magic-string": "^0.27.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^2.68.0||^3.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/plugin-commonjs/node_modules/magic-string": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", - "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.13" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/@rollup/plugin-json": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.1.0.tgz", @@ -8606,50 +8628,6 @@ } } }, - "node_modules/@rollup/plugin-terser": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-0.1.0.tgz", - "integrity": "sha512-N2KK+qUfHX2hBzVzM41UWGLrEmcjVC37spC8R3c9mt3oEDFKh3N2e12/lLp9aVSt86veR0TQiCNQXrm8C6aiUQ==", - "dependencies": { - "terser": "^5.15.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^2.x || ^3.x" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/plugin-typescript": { - "version": "11.1.6", - "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-11.1.6.tgz", - "integrity": "sha512-R92yOmIACgYdJ7dJ97p4K69I8gg6IEHt8M7dUBxN3W6nrO8uUxX5ixl0yU/N3aZTi8WhPuICvOHXQvF6FaykAA==", - "dependencies": { - "@rollup/pluginutils": "^5.1.0", - "resolve": "^1.22.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^2.14.0||^3.0.0||^4.0.0", - "tslib": "*", - "typescript": ">=3.7.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - }, - "tslib": { - "optional": true - } - } - }, "node_modules/@rollup/plugin-url": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@rollup/plugin-url/-/plugin-url-8.0.2.tgz", @@ -9122,7 +9100,7 @@ "version": "1.9.2", "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.9.2.tgz", "integrity": "sha512-dYyEkO6mRYtZFpnOsnYzv9rY69fHAHoawYOjGOEcxk9WYtaJhowMdP/w6NcOKnz2G7GlZaenjkzkMa6ZeQeMsg==", - "devOptional": true, + "dev": true, "hasInstallScript": true, "dependencies": { "@swc/counter": "^0.1.3", @@ -9163,6 +9141,7 @@ "cpu": [ "arm64" ], + "dev": true, "optional": true, "os": [ "darwin" @@ -9179,6 +9158,7 @@ "cpu": [ "x64" ], + "dev": true, "optional": true, "os": [ "darwin" @@ -9195,6 +9175,7 @@ "cpu": [ "arm" ], + "dev": true, "optional": true, "os": [ "linux" @@ -9211,6 +9192,7 @@ "cpu": [ "arm64" ], + "dev": true, "optional": true, "os": [ "linux" @@ -9227,6 +9209,7 @@ "cpu": [ "arm64" ], + "dev": true, "optional": true, "os": [ "linux" @@ -9243,6 +9226,7 @@ "cpu": [ "x64" ], + "dev": true, "optional": true, "os": [ "linux" @@ -9259,6 +9243,7 @@ "cpu": [ "x64" ], + "dev": true, "optional": true, "os": [ "linux" @@ -9275,6 +9260,7 @@ "cpu": [ "arm64" ], + "dev": true, "optional": true, "os": [ "win32" @@ -9291,6 +9277,7 @@ "cpu": [ "ia32" ], + "dev": true, "optional": true, "os": [ "win32" @@ -9307,6 +9294,7 @@ "cpu": [ "x64" ], + "dev": true, "optional": true, "os": [ "win32" @@ -9320,13 +9308,13 @@ "version": "0.1.3", "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", - "devOptional": true + "dev": true }, "node_modules/@swc/helpers": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.2.tgz", "integrity": "sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==", - "devOptional": true, + "dev": true, "dependencies": { "tslib": "^2.4.0" } @@ -9335,7 +9323,7 @@ "version": "0.1.15", "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.15.tgz", "integrity": "sha512-XKaZ+dzDIQ9Ot9o89oJQ/aluI17+VvUnIpYJTcZtvv1iYX6MzHh3Ik2CSR7MdPKpPwfZXHBeCingb2b4PoDVdw==", - "devOptional": true, + "dev": true, "dependencies": { "@swc/counter": "^0.1.3" } @@ -9696,16 +9684,6 @@ "@types/node": "*" } }, - "node_modules/@types/inquirer": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-9.0.7.tgz", - "integrity": "sha512-Q0zyBupO6NxGRZut/JdmqYKOnN95Eg5V8Csg3PGKkP+FnvsUZx1jAyK7fztIszxxMuoBA6E3KXWvdZVXIpx60g==", - "dev": true, - "dependencies": { - "@types/through": "*", - "rxjs": "^7.2.0" - } - }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", @@ -9822,12 +9800,6 @@ "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", "dev": true }, - "node_modules/@types/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==", - "dev": true - }, "node_modules/@types/mute-stream": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/@types/mute-stream/-/mute-stream-0.0.4.tgz", @@ -9845,15 +9817,6 @@ "undici-types": "~5.26.4" } }, - "node_modules/@types/node-fetch": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.12.tgz", - "integrity": "sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA==", - "dependencies": { - "@types/node": "*", - "form-data": "^4.0.0" - } - }, "node_modules/@types/node-forge": { "version": "1.3.11", "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz", @@ -9874,21 +9837,11 @@ "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", "dev": true }, - "node_modules/@types/prompts": { - "version": "2.4.9", - "resolved": "https://registry.npmjs.org/@types/prompts/-/prompts-2.4.9.tgz", - "integrity": "sha512-qTxFi6Buiu8+50/+3DGIWLHM6QuWsEKugJnnP6iv2Mc4ncxE4A/OJkjuVOA+5X0X1S/nq5VJRa8Lu+nwcvbrKA==", - "dev": true, - "dependencies": { - "@types/node": "*", - "kleur": "^3.0.3" - } - }, "node_modules/@types/prop-types": { "version": "15.7.13", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz", "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==", - "dev": true + "devOptional": true }, "node_modules/@types/pubnub": { "version": "7.4.2", @@ -9908,20 +9861,11 @@ "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", "dev": true }, - "node_modules/@types/rc": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/rc/-/rc-1.2.4.tgz", - "integrity": "sha512-xD6+epQoMH79A1uwmJIq25D+XZ57jUzCQ1DGSvs3tGKdx7QDYOOaMh6m5KBkEIW4+Cy5++bZ7NLDfdpNiYVKYA==", - "dev": true, - "dependencies": { - "@types/minimist": "*" - } - }, "node_modules/@types/react": { "version": "18.2.17", "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.17.tgz", "integrity": "sha512-u+e7OlgPPh+aryjOm5UJMX32OvB2E3QASOAqVMY6Ahs90djagxwv2ya0IctglNbNTexC12qCSMZG47KPfy1hAA==", - "dev": true, + "devOptional": true, "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -9980,7 +9924,7 @@ "version": "0.23.0", "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.23.0.tgz", "integrity": "sha512-YIoDCTH3Af6XM5VuwGG/QL/CJqga1Zm3NkU3HZ4ZHK2fRMPYP1VczsTUqtsf43PH/iJNVlPHAo2oWX7BSdB2Hw==", - "dev": true + "devOptional": true }, "node_modules/@types/send": { "version": "0.17.4", @@ -10012,12 +9956,6 @@ "@types/send": "*" } }, - "node_modules/@types/simple-mock": { - "version": "0.8.6", - "resolved": "https://registry.npmjs.org/@types/simple-mock/-/simple-mock-0.8.6.tgz", - "integrity": "sha512-tL1xxJhmUtKIX79TlasZF2OKoBXpQScxjrSBgqWZjdEEJXEKNR+SvT5HQNJ4hs+9pd/q5XLEluiZiyS6vSm7Hg==", - "dev": true - }, "node_modules/@types/sockjs": { "version": "0.3.36", "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", @@ -10042,15 +9980,6 @@ "@types/jest": "*" } }, - "node_modules/@types/through": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/@types/through/-/through-0.0.33.tgz", - "integrity": "sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/tinycolor2": { "version": "1.4.6", "resolved": "https://registry.npmjs.org/@types/tinycolor2/-/tinycolor2-1.4.6.tgz", @@ -10063,12 +9992,6 @@ "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", "dev": true }, - "node_modules/@types/uuid": { - "version": "9.0.8", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.8.tgz", - "integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==", - "dev": true - }, "node_modules/@types/wrap-ansi": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/wrap-ansi/-/wrap-ansi-3.0.0.tgz", @@ -10200,14 +10123,6 @@ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" }, - "node_modules/@vercel/ncc": { - "version": "0.36.1", - "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.36.1.tgz", - "integrity": "sha512-S4cL7Taa9yb5qbv+6wLgiKVZ03Qfkc4jGRuiUQMQ8HGBD5pcNRnHeYM33zBvJE4/zJGjJJ8GScB+WmTsn9mORw==", - "bin": { - "ncc": "dist/ncc/cli.js" - } - }, "node_modules/@vitejs/plugin-basic-ssl": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.1.0.tgz", @@ -10812,35 +10727,6 @@ "ajv": "^8.8.2" } }, - "node_modules/ansi-align": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", - "dev": true, - "dependencies": { - "string-width": "^4.1.0" - } - }, - "node_modules/ansi-align/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/ansi-align/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/ansi-colors": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", @@ -10916,7 +10802,8 @@ "node_modules/any-promise": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true }, "node_modules/anymatch": { "version": "3.1.3", @@ -11135,14 +11022,6 @@ "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", "dev": true }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "engines": { - "node": ">=8" - } - }, "node_modules/async": { "version": "3.2.6", "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", @@ -11154,6 +11033,17 @@ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, + "node_modules/auto-bind": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/auto-bind/-/auto-bind-5.0.1.tgz", + "integrity": "sha512-ooviqdwwgfIfNmDwo94wlshcdzfO64XV0Cg6oDsDYBJfITDz1EngD2z7DkbvCWn+XIMsIqW27sEVF6qcpJrRcg==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/autoprefixer": { "version": "10.4.18", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.18.tgz", @@ -11588,64 +11478,6 @@ "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", "dev": true }, - "node_modules/boxen": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.1.1.tgz", - "integrity": "sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==", - "dev": true, - "dependencies": { - "ansi-align": "^3.0.1", - "camelcase": "^7.0.1", - "chalk": "^5.2.0", - "cli-boxes": "^3.0.0", - "string-width": "^5.1.2", - "type-fest": "^2.13.0", - "widest-line": "^4.0.1", - "wrap-ansi": "^8.1.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/boxen/node_modules/camelcase": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", - "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==", - "dev": true, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/boxen/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "dev": true, - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/boxen/node_modules/type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "dev": true, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -11755,6 +11587,25 @@ "node": ">=0.10.0" } }, + "node_modules/bun-types": { + "version": "1.1.38", + "resolved": "https://registry.npmjs.org/bun-types/-/bun-types-1.1.38.tgz", + "integrity": "sha512-iglB2t9z1Hc6DIuwwscwWj/csx22QlCZ96QbcqQfiy1wmuZ38srQLI/fDVkFHAo2+KL7aJZGVWF+nAWrR6Njig==", + "dev": true, + "dependencies": { + "@types/node": "~20.12.8", + "@types/ws": "~8.5.10" + } + }, + "node_modules/bun-types/node_modules/@types/node": { + "version": "20.12.14", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.14.tgz", + "integrity": "sha512-scnD59RpYD91xngrQQLGkE+6UrHUPzeKZWhhjBSa3HSkwjbQc38+q3RoIVEwxQGRw3M+j5hpNAM+lgV3cVormg==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, "node_modules/bundle-name": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", @@ -11774,6 +11625,7 @@ "version": "4.2.1", "resolved": "https://registry.npmjs.org/bundle-require/-/bundle-require-4.2.1.tgz", "integrity": "sha512-7Q/6vkyYAwOmQNRw75x+4yRtZCZJXUDmHHlFdkiV0wgv/reNjtJwpu1jPJ0w2kbEpIM0uoKI3S4/f39dU7AjSA==", + "dev": true, "dependencies": { "load-tsconfig": "^0.2.3" }, @@ -11809,6 +11661,7 @@ "version": "6.7.14", "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, "engines": { "node": ">=8" } @@ -12077,7 +11930,6 @@ "version": "3.9.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "dev": true, "funding": [ { "type": "github", @@ -12106,7 +11958,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", - "dev": true, "engines": { "node": ">=10" }, @@ -12461,6 +12312,17 @@ "node": ">= 0.12.0" } }, + "node_modules/code-excerpt": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/code-excerpt/-/code-excerpt-4.0.0.tgz", + "integrity": "sha512-xxodCmBen3iy2i0WtAK8FlFNrRzjUqjRsMfho58xT/wvZU1YTM3fCnRjcy1gJPMepaRlgm/0e6w8SpWHpn3/cA==", + "dependencies": { + "convert-to-spaces": "^2.0.1" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, "node_modules/collect-v8-coverage": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", @@ -12703,6 +12565,14 @@ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" }, + "node_modules/convert-to-spaces": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/convert-to-spaces/-/convert-to-spaces-2.0.1.tgz", + "integrity": "sha512-rcQ1bsQO9799wq24uE5AM2tAILy4gXGIK/njFWcVQkGNZ96edlpY+A7bjwvzjYvLDyzmG1MmMLZhpcsb+klNMQ==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, "node_modules/cookie": { "version": "0.7.2", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", @@ -14075,14 +13945,6 @@ "integrity": "sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==", "dev": true }, - "node_modules/custom-exception": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/custom-exception/-/custom-exception-0.1.2.tgz", - "integrity": "sha512-uHEB2kLtiHCwETdTaYUM5obvf/2rcRDzQN9U7TrDnPBiYb1VVnNunB13uH3MMM09e+daDiyOPRPzOU3E2VApxA==", - "engines": { - "node": ">=10.12.0" - } - }, "node_modules/damerau-levenshtein": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", @@ -14274,14 +14136,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -15087,6 +14941,7 @@ "version": "0.20.1", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.1.tgz", "integrity": "sha512-OJwEgrpWm/PCMsLVWXKqvcjme3bHNpOgN7Tb6cQnR5n0TPbQx1/Xrn7rqM+wn17bYeT6MGB5sn1Bh5YiGi70nA==", + "dev": true, "hasInstallScript": true, "bin": { "esbuild": "bin/esbuild" @@ -16109,6 +15964,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -16278,7 +16134,8 @@ "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true }, "node_modules/extendable-error": { "version": "0.1.7", @@ -16300,17 +16157,6 @@ "node": ">=4" } }, - "node_modules/extract-files": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-9.0.0.tgz", - "integrity": "sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ==", - "engines": { - "node": "^10.17.0 || ^12.0.0 || >= 13.7.0" - }, - "funding": { - "url": "https://github.com/sponsors/jaydenseric" - } - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -16412,17 +16258,6 @@ "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==", "dev": true }, - "node_modules/figlet": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.8.0.tgz", - "integrity": "sha512-chzvGjd+Sp7KUvPHZv6EXV5Ir3Q7kYNpCr4aHrRW79qFtTefmQZNny+W1pW9kf5zeE6dikku2W50W/wAH2xWgw==", - "bin": { - "figlet": "bin/index.js" - }, - "engines": { - "node": ">= 0.4.0" - } - }, "node_modules/figures": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", @@ -16978,6 +16813,7 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -17012,6 +16848,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, "dependencies": { "balanced-match": "^1.0.0" } @@ -17020,6 +16857,7 @@ "version": "5.1.6", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, "dependencies": { "brace-expansion": "^2.0.1" }, @@ -17125,86 +16963,6 @@ "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==" }, - "node_modules/graphql": { - "version": "16.9.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.9.0.tgz", - "integrity": "sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==", - "engines": { - "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" - } - }, - "node_modules/graphql-request": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-4.3.0.tgz", - "integrity": "sha512-2v6hQViJvSsifK606AliqiNiijb1uwWp6Re7o0RTyH+uRTv/u7Uqm2g4Fjq/LgZIzARB38RZEvVBFOQOVdlBow==", - "dependencies": { - "cross-fetch": "^3.1.5", - "extract-files": "^9.0.0", - "form-data": "^3.0.0" - }, - "peerDependencies": { - "graphql": "14 - 16" - } - }, - "node_modules/graphql-request/node_modules/cross-fetch": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", - "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", - "dependencies": { - "node-fetch": "^2.6.12" - } - }, - "node_modules/graphql-request/node_modules/form-data": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.2.tgz", - "integrity": "sha512-sJe+TQb2vIaIyO783qN6BlMYWMw3WBOHA1Ay2qxsnjuafEOQFJ2JakedOQirT6D5XPRxDvS7AHYyem9fTpb4LQ==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/graphql-request/node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/graphql-request/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "node_modules/graphql-request/node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "node_modules/graphql-request/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, "node_modules/handle-thing": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", @@ -17657,6 +17415,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, "engines": { "node": ">=10.17.0" } @@ -17981,6 +17740,209 @@ "tslib": "^2.0.0" } }, + "node_modules/ink": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/ink/-/ink-4.4.1.tgz", + "integrity": "sha512-rXckvqPBB0Krifk5rn/5LvQGmyXwCUpBfmTwbkQNBY9JY8RSl3b8OftBNEYxg4+SWUhEKcPifgope28uL9inlA==", + "dependencies": { + "@alcalzone/ansi-tokenize": "^0.1.3", + "ansi-escapes": "^6.0.0", + "auto-bind": "^5.0.1", + "chalk": "^5.2.0", + "cli-boxes": "^3.0.0", + "cli-cursor": "^4.0.0", + "cli-truncate": "^3.1.0", + "code-excerpt": "^4.0.0", + "indent-string": "^5.0.0", + "is-ci": "^3.0.1", + "is-lower-case": "^2.0.2", + "is-upper-case": "^2.0.2", + "lodash": "^4.17.21", + "patch-console": "^2.0.0", + "react-reconciler": "^0.29.0", + "scheduler": "^0.23.0", + "signal-exit": "^3.0.7", + "slice-ansi": "^6.0.0", + "stack-utils": "^2.0.6", + "string-width": "^5.1.2", + "type-fest": "^0.12.0", + "widest-line": "^4.0.1", + "wrap-ansi": "^8.1.0", + "ws": "^8.12.0", + "yoga-wasm-web": "~0.3.3" + }, + "engines": { + "node": ">=14.16" + }, + "peerDependencies": { + "@types/react": ">=18.0.0", + "react": ">=18.0.0", + "react-devtools-core": "^4.19.1" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "react-devtools-core": { + "optional": true + } + } + }, + "node_modules/ink-spinner": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ink-spinner/-/ink-spinner-5.0.0.tgz", + "integrity": "sha512-EYEasbEjkqLGyPOUc8hBJZNuC5GvXGMLu0w5gdTNskPc7Izc5vO3tdQEYnzvshucyGCBXc86ig0ujXPMWaQCdA==", + "dependencies": { + "cli-spinners": "^2.7.0" + }, + "engines": { + "node": ">=14.16" + }, + "peerDependencies": { + "ink": ">=4.0.0", + "react": ">=18.0.0" + } + }, + "node_modules/ink/node_modules/ansi-escapes": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.1.tgz", + "integrity": "sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ink/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ink/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/ink/node_modules/cli-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", + "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", + "dependencies": { + "restore-cursor": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ink/node_modules/cli-truncate": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", + "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", + "dependencies": { + "slice-ansi": "^5.0.0", + "string-width": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ink/node_modules/cli-truncate/node_modules/slice-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "dependencies": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/ink/node_modules/indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ink/node_modules/is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ink/node_modules/react-reconciler": { + "version": "0.29.2", + "resolved": "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.29.2.tgz", + "integrity": "sha512-zZQqIiYgDCTP/f1N/mAR10nJGrPD2ZR+jDSEsKWJHYC7Cm2wodlwbR3upZRdC3cjIjSlTLNVyO7Iu0Yy7t2AYg==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "engines": { + "node": ">=0.10.0" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/ink/node_modules/restore-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", + "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ink/node_modules/type-fest": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.12.0.tgz", + "integrity": "sha512-53RyidyjvkGpnWPMF9bQgFtWp+Sl8O2Rp13VavmJgfAP9WWG6q6TkrKU8iyJdnwnfgHI6k2hTlgqH4aSdjoTbg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/inquirer": { "version": "9.2.15", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.15.tgz", @@ -18066,19 +18028,6 @@ "node": ">= 0.4" } }, - "node_modules/interpolate-json": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/interpolate-json/-/interpolate-json-2.3.3.tgz", - "integrity": "sha512-69aMciJKRiv4MCfuTzN6QhoNj45k3WyOmjh0WUyOW34EAJ2X2UnclnzFqgnD4FBVQG4ia+jzUvfwm+udaXzhaQ==", - "dependencies": { - "custom-exception": "^0.1.2", - "extend": "^3.0.2", - "type-detect": "^4.0.8" - }, - "engines": { - "node": ">=12.0.0" - } - }, "node_modules/ip-address": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", @@ -18104,6 +18053,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -18207,6 +18157,17 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-ci": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "dependencies": { + "ci-info": "^3.2.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, "node_modules/is-core-module": { "version": "2.15.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", @@ -18378,6 +18339,14 @@ "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", "dev": true }, + "node_modules/is-lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-2.0.2.tgz", + "integrity": "sha512-bVcMJy4X5Og6VZfdOZstSexlEy20Sr0k/p/b2IlQJlfdKAQuMpiv5w2Ccxb8sKdRUNAG1PnHVHjFSdRDVS6NlQ==", + "dependencies": { + "tslib": "^2.0.3" + } + }, "node_modules/is-map": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", @@ -18481,6 +18450,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "dev": true, "dependencies": { "@types/estree": "*" } @@ -18529,6 +18499,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, "engines": { "node": ">=8" }, @@ -18601,6 +18572,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-upper-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-2.0.2.tgz", + "integrity": "sha512-44pxmxAvnnAOwBg4tHPnkfvgjPwbc5QIsSstNU+YcJ1ovxVzCWpSGosPJOZh/a1tdl81fbgnLc9LLv+x2ywbPQ==", + "dependencies": { + "tslib": "^2.0.3" + } + }, "node_modules/is-weakmap": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", @@ -20435,6 +20414,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==", + "dev": true, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } @@ -20773,6 +20753,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "devOptional": true, "engines": { "node": ">=6" } @@ -21199,6 +21180,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, "engines": { "node": ">=10" } @@ -21206,7 +21188,8 @@ "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true }, "node_modules/listener-basic": { "resolved": "apps/listener-basic", @@ -21341,6 +21324,7 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/load-tsconfig/-/load-tsconfig-0.2.5.tgz", "integrity": "sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==", + "dev": true, "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } @@ -21407,7 +21391,8 @@ "node_modules/lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==" + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", + "dev": true }, "node_modules/lodash.startcase": { "version": "4.4.0", @@ -21415,11 +21400,6 @@ "integrity": "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==", "dev": true }, - "node_modules/lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==" - }, "node_modules/lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", @@ -22264,6 +22244,7 @@ "version": "2.7.0", "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, "dependencies": { "any-promise": "^1.0.0", "object-assign": "^4.0.1", @@ -23019,6 +23000,7 @@ "version": "2.6.7", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dev": true, "dependencies": { "whatwg-url": "^5.0.0" }, @@ -23037,17 +23019,20 @@ "node_modules/node-fetch/node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true }, "node_modules/node-fetch/node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true }, "node_modules/node-fetch/node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -23285,6 +23270,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", + "dev": true, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } @@ -23363,6 +23349,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, "dependencies": { "path-key": "^3.0.0" }, @@ -24106,6 +24093,14 @@ "node": ">= 0.8" } }, + "node_modules/patch-console": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/patch-console/-/patch-console-2.0.0.tgz", + "integrity": "sha512-0YNdUceMdaQwoKce1gatDScmMo5pu/tfABfnzEqeG0gtTmd7mh/WcwgUjtAeOU7N8nFFlbQBnFK2gXW5fGvmMA==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, "node_modules/path": { "version": "0.12.7", "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", @@ -24225,6 +24220,7 @@ "version": "4.0.6", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, "engines": { "node": ">= 6" } @@ -24498,6 +24494,7 @@ "version": "3.1.4", "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", + "dev": true, "dependencies": { "lilconfig": "^2.0.5", "yaml": "^1.10.2" @@ -25372,6 +25369,7 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "devOptional": true, "dependencies": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" @@ -25773,33 +25771,6 @@ "node": ">= 0.8" } }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/rc/node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "node_modules/rc/node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/react": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", @@ -25811,6 +25782,39 @@ "node": ">=0.10.0" } }, + "node_modules/react-devtools-core": { + "version": "4.28.5", + "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.28.5.tgz", + "integrity": "sha512-cq/o30z9W2Wb4rzBefjv5fBalHU0rJGZCHAkf/RHSBWSSYwh8PlQTqqOJmgIIbBtpj27T6FIPXeomIjZtCNVqA==", + "optional": true, + "peer": true, + "dependencies": { + "shell-quote": "^1.6.1", + "ws": "^7" + } + }, + "node_modules/react-devtools-core/node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "optional": true, + "peer": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/react-dom": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", @@ -26242,6 +26246,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, "engines": { "node": ">=8" } @@ -26417,22 +26422,6 @@ "rollup": "^2.x.x || ^3.x.x || ^4.x.x" } }, - "node_modules/rollup-plugin-inject-process-env": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/rollup-plugin-inject-process-env/-/rollup-plugin-inject-process-env-1.3.1.tgz", - "integrity": "sha512-kKDoL30IZr0wxbNVJjq+OS92RJSKRbKV6B5eNW4q3mZTFqoWDh6lHy+mPDYuuGuERFNKXkG+AKxvYqC9+DRpKQ==", - "dependencies": { - "magic-string": "^0.25.7" - } - }, - "node_modules/rollup-plugin-inject-process-env/node_modules/magic-string": { - "version": "0.25.9", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", - "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", - "dependencies": { - "sourcemap-codec": "^1.4.8" - } - }, "node_modules/rollup-plugin-peer-deps-external": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/rollup-plugin-peer-deps-external/-/rollup-plugin-peer-deps-external-2.2.4.tgz", @@ -27149,7 +27138,7 @@ "version": "1.8.1", "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", - "dev": true, + "devOptional": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -27193,11 +27182,6 @@ "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/simple-mock": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/simple-mock/-/simple-mock-0.8.0.tgz", - "integrity": "sha512-rakKnocwPH9KPjOsmtMwJwKDmZIYyDeCz0bQYAdeB9h27SMpS5BS+0hDSzhAlvmzA3o7I9ck2NgqjcHpjIcwmA==" - }, "node_modules/simple-swizzle": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", @@ -27218,7 +27202,8 @@ "node_modules/sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "devOptional": true }, "node_modules/skin-tone": { "version": "2.0.0", @@ -27241,21 +27226,42 @@ } }, "node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-6.0.0.tgz", + "integrity": "sha512-6bn4hRfkTvDfUoEQYkERg0BVF1D0vrX9HEkMl08uDiNWvVvjylLHvZFZWkDo6wjT8tUctbYl1nCOuE66ZTaUtA==", "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" + "ansi-styles": "^6.2.1", + "is-fullwidth-code-point": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=14.16" }, "funding": { "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/smart-buffer": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", @@ -27449,12 +27455,6 @@ "node": ">=0.10.0" } }, - "node_modules/sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "deprecated": "Please use @jridgewell/sourcemap-codec instead" - }, "node_modules/spawndamnit": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/spawndamnit/-/spawndamnit-2.0.0.tgz", @@ -27529,6 +27529,7 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, "dependencies": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" @@ -27537,12 +27538,14 @@ "node_modules/spdx-exceptions": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", - "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==" + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true }, "node_modules/spdx-expression-parse": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" @@ -27551,7 +27554,8 @@ "node_modules/spdx-license-ids": { "version": "3.0.20", "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz", - "integrity": "sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==" + "integrity": "sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==", + "dev": true }, "node_modules/spdy": { "version": "4.0.2", @@ -27622,7 +27626,6 @@ "version": "2.0.6", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", - "dev": true, "dependencies": { "escape-string-regexp": "^2.0.0" }, @@ -27634,7 +27637,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, "engines": { "node": ">=8" } @@ -27919,6 +27921,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, "engines": { "node": ">=6" } @@ -28008,6 +28011,7 @@ "version": "3.35.0", "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dev": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.2", "commander": "^4.0.0", @@ -28029,6 +28033,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, "dependencies": { "balanced-match": "^1.0.0" } @@ -28037,6 +28042,7 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, "engines": { "node": ">= 6" } @@ -28045,6 +28051,7 @@ "version": "10.4.5", "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", @@ -28064,6 +28071,7 @@ "version": "9.0.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, "dependencies": { "brace-expansion": "^2.0.1" }, @@ -28263,39 +28271,6 @@ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "dev": true }, - "node_modules/table": { - "version": "6.8.2", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz", - "integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==", - "dependencies": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/table/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/table/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", @@ -28579,6 +28554,7 @@ "version": "3.3.1", "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, "dependencies": { "any-promise": "^1.0.0" } @@ -28587,6 +28563,7 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, "dependencies": { "thenify": ">= 3.1.0 < 4" }, @@ -28763,6 +28740,7 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, "bin": { "tree-kill": "cli.js" } @@ -28770,7 +28748,8 @@ "node_modules/ts-interface-checker": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true }, "node_modules/ts-jest": { "version": "28.0.8", @@ -29064,6 +29043,7 @@ "version": "6.7.0", "resolved": "https://registry.npmjs.org/tsup/-/tsup-6.7.0.tgz", "integrity": "sha512-L3o8hGkaHnu5TdJns+mCqFsDBo83bJ44rlK7e6VdanIvpea4ArPcU3swWGsLVbXak1PqQx/V+SSmFPujBK+zEQ==", + "dev": true, "dependencies": { "bundle-require": "^4.0.0", "cac": "^6.7.12", @@ -29111,6 +29091,7 @@ "cpu": [ "arm" ], + "dev": true, "optional": true, "os": [ "android" @@ -29126,6 +29107,7 @@ "cpu": [ "arm64" ], + "dev": true, "optional": true, "os": [ "android" @@ -29141,6 +29123,7 @@ "cpu": [ "x64" ], + "dev": true, "optional": true, "os": [ "android" @@ -29156,6 +29139,7 @@ "cpu": [ "arm64" ], + "dev": true, "optional": true, "os": [ "darwin" @@ -29171,6 +29155,7 @@ "cpu": [ "x64" ], + "dev": true, "optional": true, "os": [ "darwin" @@ -29186,6 +29171,7 @@ "cpu": [ "arm64" ], + "dev": true, "optional": true, "os": [ "freebsd" @@ -29201,6 +29187,7 @@ "cpu": [ "x64" ], + "dev": true, "optional": true, "os": [ "freebsd" @@ -29216,6 +29203,7 @@ "cpu": [ "arm" ], + "dev": true, "optional": true, "os": [ "linux" @@ -29231,6 +29219,7 @@ "cpu": [ "arm64" ], + "dev": true, "optional": true, "os": [ "linux" @@ -29246,6 +29235,7 @@ "cpu": [ "ia32" ], + "dev": true, "optional": true, "os": [ "linux" @@ -29261,6 +29251,7 @@ "cpu": [ "loong64" ], + "dev": true, "optional": true, "os": [ "linux" @@ -29276,6 +29267,7 @@ "cpu": [ "mips64el" ], + "dev": true, "optional": true, "os": [ "linux" @@ -29291,6 +29283,7 @@ "cpu": [ "ppc64" ], + "dev": true, "optional": true, "os": [ "linux" @@ -29306,6 +29299,7 @@ "cpu": [ "riscv64" ], + "dev": true, "optional": true, "os": [ "linux" @@ -29321,6 +29315,7 @@ "cpu": [ "s390x" ], + "dev": true, "optional": true, "os": [ "linux" @@ -29336,6 +29331,7 @@ "cpu": [ "x64" ], + "dev": true, "optional": true, "os": [ "linux" @@ -29351,6 +29347,7 @@ "cpu": [ "x64" ], + "dev": true, "optional": true, "os": [ "netbsd" @@ -29366,6 +29363,7 @@ "cpu": [ "x64" ], + "dev": true, "optional": true, "os": [ "openbsd" @@ -29381,6 +29379,7 @@ "cpu": [ "x64" ], + "dev": true, "optional": true, "os": [ "sunos" @@ -29396,6 +29395,7 @@ "cpu": [ "arm64" ], + "dev": true, "optional": true, "os": [ "win32" @@ -29411,6 +29411,7 @@ "cpu": [ "ia32" ], + "dev": true, "optional": true, "os": [ "win32" @@ -29426,6 +29427,7 @@ "cpu": [ "x64" ], + "dev": true, "optional": true, "os": [ "win32" @@ -29438,6 +29440,7 @@ "version": "0.17.19", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz", "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", + "dev": true, "hasInstallScript": true, "bin": { "esbuild": "bin/esbuild" @@ -29474,6 +29477,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, "engines": { "node": ">=6" } @@ -29482,6 +29486,7 @@ "version": "3.29.5", "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.5.tgz", "integrity": "sha512-GVsDdsbJzzy4S/v3dqWPJ7EfvZJfCHiDqe80IyrF59LYuP+e6U1LJoUqeuqRbwAWoMNoXivMNeNAOf5E22VA1w==", + "dev": true, "bin": { "rollup": "dist/bin/rollup" }, @@ -29497,6 +29502,7 @@ "version": "0.8.0-beta.0", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", + "dev": true, "dependencies": { "whatwg-url": "^7.0.0" }, @@ -29508,6 +29514,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", + "dev": true, "dependencies": { "punycode": "^2.1.0" } @@ -29515,12 +29522,14 @@ "node_modules/tsup/node_modules/webidl-conversions": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true }, "node_modules/tsup/node_modules/whatwg-url": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "dev": true, "dependencies": { "lodash.sortby": "^4.7.0", "tr46": "^1.0.1", @@ -29666,14 +29675,6 @@ "node": ">= 0.8.0" } }, - "node_modules/type-detect": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", - "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", - "engines": { - "node": ">=4" - } - }, "node_modules/type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", @@ -30018,18 +30019,6 @@ "requires-port": "^1.0.0" } }, - "node_modules/util": { - "version": "0.12.5", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", - "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", - "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" - } - }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -30053,18 +30042,6 @@ "node": ">= 0.4.0" } }, - "node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "bin": { - "uuid": "dist/bin/uuid" - } - }, "node_modules/v8-to-istanbul": { "version": "9.3.0", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", @@ -30089,6 +30066,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, "dependencies": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" @@ -31220,7 +31198,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", - "dev": true, "dependencies": { "string-width": "^5.0.1" }, @@ -31353,7 +31330,6 @@ "version": "8.18.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", - "dev": true, "engines": { "node": ">=10.0.0" }, @@ -31423,6 +31399,7 @@ "version": "1.10.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, "engines": { "node": ">= 6" } @@ -31493,13 +31470,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/zod": { - "version": "3.23.8", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", - "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } + "node_modules/yoga-wasm-web": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/yoga-wasm-web/-/yoga-wasm-web-0.3.3.tgz", + "integrity": "sha512-N+d4UJSJbt/R3wqY7Coqs5pcV0aUj2j9IaQ3rNj9bVCLld8tTGKRa2USARjnvZJWVx1NDmQev8EknoczaOQDOA==" }, "node_modules/zone.js": { "version": "0.14.10", @@ -35952,78 +35926,33 @@ "name": "flatfile", "version": "3.8.0", "dependencies": { - "@flatfile/cross-env-config": "^0.0.6", - "@flatfile/listener": "^1.0.4", - "@flatfile/listener-driver-pubsub": "^2.0.8", - "@rollup/plugin-commonjs": "^23.0.3", - "@rollup/plugin-json": "^5.0.2", - "@rollup/plugin-node-resolve": "^15.0.1", - "@rollup/plugin-terser": "^0.1.0", - "@rollup/plugin-typescript": "^11.1.5", - "@types/node-fetch": "^2.6.2", - "@vercel/ncc": "^0.36.1", - "axios": "^1.6.0", + "@flatfile/api": "^1.5.17", "commander": "^9.3.0", "dotenv": "^16.0.1", - "figlet": "^1.5.2", - "graphql": "^16.5.0", - "graphql-request": "^4.3.0", - "interpolate-json": "^2.2.2", - "node-fetch": "^2.6.7", - "ora": "^5.4.1", - "prompts": "^2.4.2", - "rc": "^1.2.8", - "read-package-json": "^6.0.2", - "rollup": "^2.79.1", - "rollup-plugin-inject-process-env": "^1.3.1", - "simple-mock": "^0.8.0", - "table": "^6.8.1", - "tsup": "^6.1.3", - "util": "^0.12.5", - "uuid": "^9.0.0", - "wildcard-match": "^5.1.2", - "zod": "^3.19.1" + "ink": "^4.4.1", + "ink-spinner": "^5.0.0", + "react": "^18.2.0" }, "bin": { "flatfile": "dist/index.js" }, "devDependencies": { - "@babel/preset-env": "^7.20.2", - "@flatfile/api": "^1.9.6", - "@rollup/plugin-babel": "^6.0.3", - "@types/inquirer": "^9.0.2", - "@types/prompts": "^2.4.4", - "@types/rc": "^1.2.1", - "@types/simple-mock": "^0.8.2", - "@types/uuid": "^9.0.0", - "boxen": "^7.0.0", - "chalk": "^4.1.2", - "inquirer": "^9.1.3" - } - }, - "packages/cli/node_modules/@rollup/plugin-json": { - "version": "5.0.2", - "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^5.0.1" + "@types/react": "^18.2.45", + "bun-types": "latest", + "typescript": "^5.0.0" }, "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } + "bun": ">=1.0.0" } }, - "packages/cli/node_modules/brace-expansion": { - "version": "2.0.1", - "license": "MIT", + "packages/cli/node_modules/@types/react": { + "version": "18.3.17", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.17.tgz", + "integrity": "sha512-opAQ5no6LqJNo9TqnxBKsgnkIYHozW9KSTlFVoSUJYh1Fl/sswkEoqIugRSm7tbh6pABtYjGAjW+GOS23j8qbw==", + "dev": true, "dependencies": { - "balanced-match": "^1.0.0" + "@types/prop-types": "*", + "csstype": "^3.0.2" } }, "packages/cli/node_modules/commander": { @@ -36034,87 +35963,13 @@ "node": "^12.20.0 || >=14" } }, - "packages/cli/node_modules/glob": { - "version": "10.4.5", - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "packages/cli/node_modules/hosted-git-info": { - "version": "6.1.1", - "license": "ISC", - "dependencies": { - "lru-cache": "^7.5.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "packages/cli/node_modules/lru-cache": { - "version": "7.18.3", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "packages/cli/node_modules/minimatch": { - "version": "9.0.5", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "packages/cli/node_modules/normalize-package-data": { - "version": "5.0.0", - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^6.0.0", - "is-core-module": "^2.8.1", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "packages/cli/node_modules/read-package-json": { - "version": "6.0.4", - "license": "ISC", - "dependencies": { - "glob": "^10.2.2", - "json-parse-even-better-errors": "^3.0.0", - "normalize-package-data": "^5.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "packages/configure": { "name": "@flatfile/configure", - "version": "1.1.1", + "version": "1.1.2", "license": "ISC", "dependencies": { "@flatfile/hooks": "^1.5.0", - "@flatfile/schema": "^0.2.16", + "@flatfile/schema": "^0.2.18", "date-fns": "^2.29.1", "lodash": "^4.17.21", "xlsx": "https://cdn.sheetjs.com/xlsx-0.20.2/xlsx-0.20.2.tgz" @@ -37296,7 +37151,7 @@ }, "packages/embedded-utils": { "name": "@flatfile/embedded-utils", - "version": "1.3.4", + "version": "1.3.5", "license": "ISC", "dependencies": { "@flatfile/api": "^1.8.9", @@ -37423,7 +37278,7 @@ }, "packages/hooks": { "name": "@flatfile/hooks", - "version": "1.5.1", + "version": "1.6.0", "license": "ISC", "devDependencies": { "@flatfile/eslint-config-platform-sdk": "*", @@ -37438,10 +37293,10 @@ }, "packages/javascript": { "name": "@flatfile/javascript", - "version": "1.5.2", + "version": "1.5.4", "license": "ISC", "dependencies": { - "@flatfile/embedded-utils": "^1.3.4", + "@flatfile/embedded-utils": "^1.3.5", "@flatfile/listener": "^1.0.4", "@flatfile/plugin-record-hook": "^1.5.2", "consola": "^3.2.3", @@ -42013,12 +41868,12 @@ }, "packages/react": { "name": "@flatfile/react", - "version": "7.13.1", + "version": "7.13.4", "license": "ISC", "dependencies": { "@flatfile/api": "^1.9.19", "@flatfile/cross-env-config": "^0.0.6", - "@flatfile/embedded-utils": "^1.3.3", + "@flatfile/embedded-utils": "^1.3.5", "@flatfile/listener": "^1.0.5", "@flatfile/plugin-record-hook": "^1.5.2", "react-error-boundary": "^3.1.4", @@ -43236,7 +43091,7 @@ }, "packages/schema": { "name": "@flatfile/schema", - "version": "0.2.17", + "version": "0.2.18", "dependencies": { "@flatfile/blueprint": "^0.0.9", "lodash": "^4.17.21" @@ -45688,9 +45543,9 @@ }, "packages/vue": { "name": "@flatfile/vue", - "version": "1.0.20", + "version": "1.0.21", "dependencies": { - "@flatfile/embedded-utils": "^1.3.2", + "@flatfile/embedded-utils": "^1.3.5", "@flatfile/listener": "^1.0.4", "@flatfile/plugin-record-hook": "^1.5.2", "@vue/runtime-dom": "^3.3.4", diff --git a/packages/cli/package.json b/packages/cli/package.json index c9c83e63..591159d2 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,66 +1,29 @@ { "name": "flatfile", "version": "3.8.0", - "description": "", + "type": "module", "main": "./dist/index.js", "bin": { "flatfile": "./dist/index.js" }, - "files": [ - "dist", - "templates" - ], "scripts": { - "build": "tsup src/index.ts --format esm,cjs --dts", - "dev": "tsup src/index.ts --format esm,cjs --dts --watch", - "lint": "TIMING=1 eslint \"src/**/*.{ts,tsx,js,jsx}\" --fix", - "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist", - "test": "jest --runInBand --forceExit --passWithNoTests" + "build": "bun build ./src/index.ts --outdir ./dist --target node --external ink --external react --external ink-spinner", + "dev": "bun build ./src/index.ts --outdir ./dist --target node --watch --external ink --external react --external ink-spinner" }, "dependencies": { - "@flatfile/cross-env-config": "^0.0.6", - "@flatfile/listener": "^1.0.4", - "@flatfile/listener-driver-pubsub": "^2.0.8", - "@rollup/plugin-commonjs": "^23.0.3", - "@rollup/plugin-json": "^5.0.2", - "@rollup/plugin-node-resolve": "^15.0.1", - "@rollup/plugin-terser": "^0.1.0", - "@rollup/plugin-typescript": "^11.1.5", - "@types/node-fetch": "^2.6.2", - "@vercel/ncc": "^0.36.1", - "axios": "^1.6.0", + "@flatfile/api": "^1.5.17", "commander": "^9.3.0", "dotenv": "^16.0.1", - "figlet": "^1.5.2", - "graphql": "^16.5.0", - "graphql-request": "^4.3.0", - "interpolate-json": "^2.2.2", - "node-fetch": "^2.6.7", - "ora": "^5.4.1", - "prompts": "^2.4.2", - "rc": "^1.2.8", - "read-package-json": "^6.0.2", - "rollup": "^2.79.1", - "rollup-plugin-inject-process-env": "^1.3.1", - "simple-mock": "^0.8.0", - "table": "^6.8.1", - "tsup": "^6.1.3", - "util": "^0.12.5", - "uuid": "^9.0.0", - "wildcard-match": "^5.1.2", - "zod": "^3.19.1" + "ink": "^4.4.1", + "ink-spinner": "^5.0.0", + "react": "^18.2.0" }, "devDependencies": { - "@babel/preset-env": "^7.20.2", - "@flatfile/api": "^1.9.6", - "@rollup/plugin-babel": "^6.0.3", - "@types/inquirer": "^9.0.2", - "@types/prompts": "^2.4.4", - "@types/rc": "^1.2.1", - "@types/simple-mock": "^0.8.2", - "@types/uuid": "^9.0.0", - "boxen": "^7.0.0", - "chalk": "^4.1.2", - "inquirer": "^9.1.3" + "@types/react": "^18.2.45", + "bun-types": "latest", + "typescript": "^5.0.0" + }, + "engines": { + "bun": ">=1.0.0" } } diff --git a/packages/cli/src/index.ts b/packages/cli/src/index.ts index 5cd8a601..e7efa43c 100644 --- a/packages/cli/src/index.ts +++ b/packages/cli/src/index.ts @@ -17,6 +17,7 @@ import { publishAction } from './x/actions/publish.action' import { publishPubSub } from './x/actions/publish.pubsub' import { quickstartAction } from './x/actions/quickstart.action' import { listAgentsAction } from './x/actions/list-agents.action' +import { executeApiAction } from './x/actions/api.action' dotenv.config() @@ -144,4 +145,40 @@ program .option('--api-url ', 'the API url to use') .action(publishPubSub) +program + .command('api [args...]') + .description('Execute Flatfile API commands (e.g., workbooks create, spaces list)') + .option('-k, --apiKey ', 'the API Key to use (or set env FLATFILE_API_KEY)') + .option('-u, --apiUrl ', 'the API URL to use (or set env FLATFILE_API_URL)') + .option('--json ', 'JSON string of parameters to pass to the API call') + .allowUnknownOption(true) // Allow passing additional options as parameters + .action((resource, method, args, options) => { + let params = { ...options } + + // Parse JSON parameters if provided + if (options.json) { + try { + const jsonParams = JSON.parse(options.json) + params = { ...params, ...jsonParams } + } catch (error) { + console.error('Failed to parse JSON parameters:', error) + process.exit(1) + } + } + + // Convert any remaining unknown options into parameters + const rawArgs = options.args || [] + for (let i = 0; i < rawArgs.length; i += 2) { + if (rawArgs[i].startsWith('--')) { + const key = rawArgs[i].slice(2) + const value = rawArgs[i + 1] + if (value && !value.startsWith('--')) { + params[key] = value + } + } + } + + return executeApiAction(resource, method, params, ...args) + }) + program.parse() diff --git a/packages/cli/src/shared/utils/prompts.ts b/packages/cli/src/shared/utils/prompts.ts new file mode 100644 index 00000000..3d23248a --- /dev/null +++ b/packages/cli/src/shared/utils/prompts.ts @@ -0,0 +1,7 @@ +import promptsPackage from 'prompts' + +export const prompt = async (...args: Parameters) => { + return promptsPackage(...args) +} + +export default promptsPackage \ No newline at end of file diff --git a/packages/cli/src/x/actions/api.action.ts b/packages/cli/src/x/actions/api.action.ts new file mode 100644 index 00000000..ccad3269 --- /dev/null +++ b/packages/cli/src/x/actions/api.action.ts @@ -0,0 +1,97 @@ +import { FlatfileClient } from '@flatfile/api' +import { config } from '../../config' +import { apiKeyClient } from './auth.action' +import { render } from 'ink' +import React from 'react' +import { ApiOutput } from '../components/ApiOutput' + +export async function executeApiAction( + resource: string, + method: string, + options: any, + ...args: any[] +) { + const { waitUntilExit } = render( + React.createElement(ApiOutput, { + loading: true, + resource, + method + }) + ) + + try { + const apiKey = options.apiKey || process.env.FLATFILE_API_KEY || process.env.FLATFILE_BEARER_TOKEN + if (!apiKey) { + render( + React.createElement(ApiOutput, { + error: 'API key is required. Set FLATFILE_API_KEY or FLATFILE_BEARER_TOKEN in your .env file', + resource, + method + }) + ) + process.exit(1) + } + + const apiUrl = options.apiUrl || process.env.FLATFILE_API_URL || 'https://platform.flatfile.com/api/v1' + const client = apiKeyClient({ apiUrl, apiKey }) + + // Get the resource from the client (e.g., client.workbooks, client.spaces) + const resourceObj = (client as any)[resource] + if (!resourceObj) { + render( + React.createElement(ApiOutput, { + error: `Resource '${resource}' not found in API client`, + resource, + method + }) + ) + process.exit(1) + } + + // Get the method from the resource (e.g., create, list, delete) + const methodFn = resourceObj[method] + if (!methodFn) { + render( + React.createElement(ApiOutput, { + error: `Method '${method}' not found for resource '${resource}'`, + resource, + method + }) + ) + process.exit(1) + } + + // Remove internal CLI options before passing to API + const apiOptions = { ...options } + delete apiOptions.apiKey + delete apiOptions.apiUrl + delete apiOptions.args + + // If we have a single argument and no other options, pass it directly + const hasOnlyId = Object.keys(apiOptions).length === 0 && args.length === 1 + const methodArgs = hasOnlyId ? args : [apiOptions] + + // Execute the API call + const result = await methodFn.call(resourceObj, ...methodArgs) + + render( + React.createElement(ApiOutput, { + data: result, + resource, + method + }) + ) + + await waitUntilExit() + return result + } catch (error: any) { + render( + React.createElement(ApiOutput, { + error: error?.message || error, + resource, + method + }) + ) + process.exit(1) + } +} \ No newline at end of file diff --git a/packages/cli/src/x/actions/delete.action.ts b/packages/cli/src/x/actions/delete.action.ts index b9d3b502..6c74c82b 100644 --- a/packages/cli/src/x/actions/delete.action.ts +++ b/packages/cli/src/x/actions/delete.action.ts @@ -4,16 +4,15 @@ import ora from 'ora' import { apiKeyClient } from './auth.action' import { getAuth } from '../../shared/get-auth' import { messages } from '../../shared/messages' -import { prompt } from 'prompts' +import { prompt } from '../../shared/utils/prompts' export async function deleteAction( - options?: Partial<{ + options: Partial<{ slug: string agentId: string - token: string - apiUrl: string + endpoint: string }> -): Promise { +) { const { slug, agentId } = options ?? {} let authRes diff --git a/packages/cli/src/x/actions/list-agents.action.ts b/packages/cli/src/x/actions/list-agents.action.ts index 245f0120..3455492d 100644 --- a/packages/cli/src/x/actions/list-agents.action.ts +++ b/packages/cli/src/x/actions/list-agents.action.ts @@ -32,6 +32,8 @@ export async function listAgentsAction( environmentId: environment?.id!, }) + console.log("Data", data) + if (!data || data.length === 0) { validatingSpinner.fail('No agents found') process.exit(1) diff --git a/packages/cli/src/x/actions/logs.action.ts b/packages/cli/src/x/actions/logs.action.ts new file mode 100644 index 00000000..bcd7b071 --- /dev/null +++ b/packages/cli/src/x/actions/logs.action.ts @@ -0,0 +1,69 @@ +// import { Command } from 'commander' +// import { FlatfileClient } from '@flatfile/api' +// import { getAgentInfo } from '../utils/agent' +// import chalk from 'chalk' + +// export const logsAction = new Command('logs') +// .description('Stream debug logs from a Flatfile agent') +// .argument('[agentId]', 'The ID of the agent to stream logs from') +// .option('-f, --follow', 'Follow log output', false) +// .option('-e, --events', 'Show Flatfile events', false) +// .action(async (agentId, options) => { +// const client = new FlatfileClient() + +// // If no agentId provided, get the default agent +// if (!agentId) { +// const agent = await getAgentInfo() +// agentId = agent.id +// } + +// console.log(`Streaming logs for agent: ${agentId}`) + +// // Subscribe to debug logs +// await client.events.subscribe({ +// topics: ['debug:log', 'debug:error', 'debug:event'], +// filter: { agentId }, +// callback: (event) => { +// switch (event.topic) { +// case 'debug:log': +// const { level, message } = event.data +// const color = { +// log: chalk.white, +// error: chalk.red, +// warn: chalk.yellow, +// info: chalk.blue +// }[level] || chalk.white + +// console.log(color(`[${level.toUpperCase()}] ${formatMessage(message)}`)) +// break + +// case 'debug:error': +// console.error(chalk.red(`[ERROR] ${event.data.message}`)) +// if (event.data.stack) { +// console.error(chalk.gray(event.data.stack)) +// } +// break + +// case 'debug:event': +// if (options.events) { +// console.log(chalk.cyan(`[EVENT] ${event.data.topic}`)) +// if (event.data.data) { +// console.log(chalk.gray(JSON.stringify(event.data.data, null, 2))) +// } +// } +// break +// } +// } +// }) + +// // Keep connection open if following +// if (options.follow) { +// await new Promise(() => {}) // Keep process alive +// } +// }) + +// function formatMessage(message: any[]): string { +// return message.map(item => +// typeof item === 'object' ? JSON.stringify(item, null, 2) : item +// ).join(' ') +// } \ No newline at end of file diff --git a/packages/cli/src/x/components/ApiOutput.tsx b/packages/cli/src/x/components/ApiOutput.tsx new file mode 100644 index 00000000..9e90e971 --- /dev/null +++ b/packages/cli/src/x/components/ApiOutput.tsx @@ -0,0 +1,145 @@ +import React, { FC } from 'react' +import { Text, Box } from 'ink' +import Spinner from 'ink-spinner' + +interface ApiOutputProps { + loading?: boolean + error?: string + data?: any + resource: string + method: string +} + +const parseJsonString = (str: string) => { + try { + return JSON.parse(str) + } catch { + return str + } +} + +const formatValue = (value: any): string => { + if (Array.isArray(value)) { + return value.map(v => formatValue(v)).join('\n ') + } + if (typeof value === 'object' && value !== null) { + return Object.entries(value) + .map(([k, v]) => `${k}: ${formatValue(v)}`) + .join('\n ') + } + return String(value) +} + +const Section: FC<{ label: string, value: any }> = ({ label, value }) => ( + + {label}: + {formatValue(value)} + +) + +const GroupedOutput: FC<{ data: any }> = ({ data }) => { + // Unwrap the nested data structure + const unwrapData = (d: any) => { + if (d?.data?.data) return d.data.data + if (d?.data) return d.data + return d + } + + const parsedData = unwrapData(data) + + return ( + + + Basic Information +
+
+
+
+
+ + + {parsedData.sheets && ( + + Sheets + {parsedData.sheets.map((sheet: any, i: number) => ( + + {sheet.name} + {sheet.config?.fields && ( + + Fields: + {sheet.config.fields.map((field: any, j: number) => ( + + {field.label} ({field.key}) - {field.type} + + ))} + + )} + {sheet.recordCounts && ( + + Records: + Total: {sheet.recordCounts.total} + Valid: {sheet.recordCounts.valid} + Errors: {sheet.recordCounts.error} + + )} + + ))} + + )} + + {parsedData.actions && ( + + Actions + {parsedData.actions.map((action: any, i: number) => ( + + {action.label} + Operation: {action.operation} + Mode: {action.mode} + {action.description && Description: {action.description}} + + ))} + + )} + + + Timestamps +
+
+ + + ) +} + +export const ApiOutput: FC = ({ loading, error, data, resource, method }) => { + if (loading) { + return ( + + + + {' Executing '} + + {resource}.{method} + ... + + ) + } + + if (error) { + return ( + + ✖ Error executing {resource}.{method}: {error} + + ) + } + + if (!data) { + return null + } + + return ( + + ✓ {resource}.{method} executed successfully{'\n'} + + + ) +} \ No newline at end of file diff --git a/packages/cli/src/x/components/ApiResponse.tsx b/packages/cli/src/x/components/ApiResponse.tsx new file mode 100644 index 00000000..8efaaeae --- /dev/null +++ b/packages/cli/src/x/components/ApiResponse.tsx @@ -0,0 +1,75 @@ +// import React, { FC } from 'react' +// import { Box, Text } from 'ink' +// import Table from 'ink-table' +// import Spinner from 'ink-spinner' + +// interface ApiResponseProps { +// loading?: boolean +// error?: string +// data?: any +// resource: string +// method: string +// } + +// const flattenObject = (obj: any, prefix = ''): any => { +// return Object.keys(obj).reduce((acc: any, k: string) => { +// const pre = prefix.length ? prefix + '.' : '' +// if ( +// typeof obj[k] === 'object' && +// obj[k] !== null && +// !Array.isArray(obj[k]) && +// Object.keys(obj[k]).length < 5 +// ) { +// Object.assign(acc, flattenObject(obj[k], pre + k)) +// } else { +// acc[pre + k] = typeof obj[k] === 'object' ? JSON.stringify(obj[k]) : obj[k] +// } +// return acc +// }, {}) +// } + +// const formatData = (data: any): any[] => { +// if (Array.isArray(data)) { +// return data.map(item => flattenObject(item)) +// } +// return [flattenObject(data)] +// } + +// const ApiResponse: FC = ({ loading, error, data, resource, method }) => { +// if (loading) { +// return ( +// +// +// +// {' Executing '}{resource}.{method}... +// +// +// ) +// } + +// if (error) { +// return ( +// +// ✖ Error executing {resource}.{method} +// {error} +// +// ) +// } + +// if (!data) { +// return null +// } + +// const formattedData = formatData(data) + +// return ( +// +// ✓ {resource}.{method} executed successfully +// +// +// +// +// ) +// } + +// export { ApiResponse } \ No newline at end of file diff --git a/packages/cli/src/x/components/CliOutput.ts b/packages/cli/src/x/components/CliOutput.ts new file mode 100644 index 00000000..fe2da582 --- /dev/null +++ b/packages/cli/src/x/components/CliOutput.ts @@ -0,0 +1,74 @@ +import chalk from 'chalk' +import Table from 'cli-table3' +import ora, { Ora } from 'ora' + +interface CliOutputProps { + loading?: boolean + error?: string + data?: any + resource: string + method: string +} + +const flattenObject = (obj: any, prefix = ''): any => { + return Object.keys(obj).reduce((acc: any, k: string) => { + const pre = prefix.length ? prefix + '.' : '' + if ( + typeof obj[k] === 'object' && + obj[k] !== null && + !Array.isArray(obj[k]) && + Object.keys(obj[k]).length < 5 + ) { + Object.assign(acc, flattenObject(obj[k], pre + k)) + } else { + acc[pre + k] = typeof obj[k] === 'object' ? JSON.stringify(obj[k]) : obj[k] + } + return acc + }, {}) +} + +const formatData = (data: any): any[] => { + if (Array.isArray(data)) { + return data.map(item => flattenObject(item)) + } + return [flattenObject(data)] +} + +export class CliOutput { + private spinner: Ora | null = null + + constructor(private props: CliOutputProps) { + if (props.loading) { + this.spinner = ora(`Executing ${props.resource}.${props.method}...`).start() + } + } + + public succeed(data?: any) { + if (this.spinner) { + this.spinner.succeed(chalk.green(`${this.props.resource}.${this.props.method} executed successfully`)) + } + + if (data) { + const formattedData = formatData(data) + const headers = Object.keys(formattedData[0]) + + const table = new Table({ + head: headers.map(h => chalk.cyan(h)), + style: { head: [], border: [] } + }) + + formattedData.forEach(row => { + table.push(headers.map(h => row[h])) + }) + + console.log(table.toString()) + } + } + + public fail(error: string) { + if (this.spinner) { + this.spinner.fail(chalk.red(`Error executing ${this.props.resource}.${this.props.method}`)) + } + console.error(chalk.red(error)) + } +} \ No newline at end of file diff --git a/packages/cli/tsconfig.json b/packages/cli/tsconfig.json index 398cfe70..64596301 100644 --- a/packages/cli/tsconfig.json +++ b/packages/cli/tsconfig.json @@ -1,23 +1,22 @@ { - "extends": "@flatfile/ts-config-platform-sdk/base.json", - "include": [ - "./src" - ], - "exclude": [ - "dist", - "build", - "node_modules", - "./node_modules", - "./node_modules/*", - ], "compilerOptions": { - "lib": [ - "ESNext" - ], + "target": "ESNext", "module": "ESNext", - "target": "es2020", - "resolveJsonModule": true, + "moduleResolution": "bundler", + "types": [ + "bun-types" + ], + "jsx": "react-jsx", + "allowJs": true, "esModuleInterop": true, - "skipLibCheck": true, + "strict": true, + "skipLibCheck": true }, + "include": [ + "src/**/*" + ], + "exclude": [ + "node_modules", + "dist" + ] } \ No newline at end of file diff --git a/packages/cli/tsup.config.ts b/packages/cli/tsup.config.ts new file mode 100644 index 00000000..6a6c0aff --- /dev/null +++ b/packages/cli/tsup.config.ts @@ -0,0 +1,24 @@ +import { defineConfig } from 'tsup' + +export default defineConfig({ + entry: ['src/index.ts'], + format: ['cjs'], + clean: true, + minify: false, + splitting: false, + sourcemap: false, + bundle: true, + dts: false, + noExternal: [/.*/], + external: ['esbuild'], + platform: 'node', + target: 'node16', + esbuildOptions(options) { + options.conditions = ['module'] + options.loader = { + '.js': 'js', + '.ts': 'ts', + '.tsx': 'tsx' + } + } +}) \ No newline at end of file diff --git a/packages/listener-driver-pubsub/package.json b/packages/listener-driver-pubsub/package.json index 00b0ab65..f0ecdd07 100644 --- a/packages/listener-driver-pubsub/package.json +++ b/packages/listener-driver-pubsub/package.json @@ -2,10 +2,16 @@ "name": "@flatfile/listener-driver-pubsub", "version": "2.1.0", "description": "A driver for streaming events from Flatfile via a pubsub pattern", - "main": "dist/index.js", - "module": "dist/index.mjs", - "types": "dist/index.d.ts", - "type": "module", + "main": "./dist/index.js", + "module": "./dist/index.mjs", + "types": "./dist/index.d.ts", + "exports": { + ".": { + "require": "./dist/index.js", + "import": "./dist/index.mjs", + "types": "./dist/index.d.ts" + } + }, "scripts": { "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist", "build": "tsup src/index.ts --format esm,cjs --dts", diff --git a/packages/plugin-lambda-logs/src/index.ts b/packages/plugin-lambda-logs/src/index.ts new file mode 100644 index 00000000..90c468c3 --- /dev/null +++ b/packages/plugin-lambda-logs/src/index.ts @@ -0,0 +1,61 @@ +import { FlatfileListener, FlatfileEvent } from '@flatfile/listener' + +export const debugPlugin = (listener: FlatfileListener) => { + // Capture console output + const originalConsole = { + log: console.log, + error: console.error, + warn: console.warn, + info: console.info + } + + // Override console methods to capture output + console.log = (...args) => { + originalConsole.log(...args) + listener.broadcast('debug:log', { level: 'log', message: args }) + } + + console.error = (...args) => { + originalConsole.error(...args) + listener.broadcast('debug:log', { level: 'error', message: args }) + } + + console.warn = (...args) => { + originalConsole.warn(...args) + listener.broadcast('debug:log', { level: 'warn', message: args }) + } + + console.info = (...args) => { + originalConsole.info(...args) + listener.broadcast('debug:log', { level: 'info', message: args }) + } + + // Capture all Flatfile events + listener.on('*', async (event: FlatfileEvent) => { + listener.broadcast('debug:event', { + topic: event.topic, + timestamp: new Date().toISOString(), + data: event.data, + context: event.context + }) + }) + + // Capture errors + listener.on('error', async (error: Error) => { + listener.broadcast('debug:error', { + timestamp: new Date().toISOString(), + message: error.message, + stack: error.stack + }) + }) + + // Cleanup function to restore console + const cleanup = () => { + console.log = originalConsole.log + console.error = originalConsole.error + console.warn = originalConsole.warn + console.info = originalConsole.info + } + + return { cleanup } +} \ No newline at end of file diff --git a/your-lambda-function.ts b/your-lambda-function.ts new file mode 100644 index 00000000..0519ecba --- /dev/null +++ b/your-lambda-function.ts @@ -0,0 +1 @@ + \ No newline at end of file