diff --git a/client/packages/cli/__tests__/e2e/helpers.ts b/client/packages/cli/__tests__/e2e/helpers.ts index fda69259c8..e6f64a50cd 100644 --- a/client/packages/cli/__tests__/e2e/helpers.ts +++ b/client/packages/cli/__tests__/e2e/helpers.ts @@ -5,7 +5,7 @@ import { tmpdir } from 'os'; import { fileURLToPath } from 'url'; const __dirname = dirname(fileURLToPath(import.meta.url)); -const CLI_BIN = join(__dirname, '../../bin/index.js'); +const CLI_BIN = join(__dirname, '../../dist/new/index.js'); const apiUrl = process.env.INSTANT_CLI_API_URI || 'https://api.instantdb.com'; diff --git a/client/packages/cli/package.json b/client/packages/cli/package.json index c4fe96d6a2..0a1c605be4 100644 --- a/client/packages/cli/package.json +++ b/client/packages/cli/package.json @@ -18,9 +18,13 @@ } }, "bin": { - "instant-cli": "bin/index.js" + "instant-cli": "bin/index.js", + "new-instant-cli": "dist/new/index.js" }, "dependencies": { + "@commander-js/extra-typings": "^14.0.0", + "@effect/platform": "^0.94.1", + "@effect/platform-node": "^0.104.0", "@instantdb/core": "workspace:*", "@instantdb/platform": "workspace:*", "@instantdb/version": "workspace:*", @@ -32,6 +36,7 @@ "commander": "^12.1.0", "dotenv": "^16.3.1", "dotenv-flow": "^4.1.0", + "effect": "^3.19.14", "env-paths": "^3.0.0", "find-up-simple": "^1.0.0", "json-diff": "^1.0.6", @@ -39,6 +44,8 @@ "lodash.throttle": "^4.1.1", "open": "^10.1.0", "package-directory": "^8.1.0", + "package-manager-detector": "^1.6.0", + "pkg-types": "^2.3.0", "prettier": "^3.3.3", "sisteransi": "^1.0.5", "string-width": "^8.1.0", @@ -52,14 +59,16 @@ "test": "vitest --project unit", "test:ci": "vitest run", "publish-package": "pnpm pack && npm publish *.tgz --access public", - "clean": "rm -rf dist" + "clean": "rm -rf dist", + "prepare": "effect-language-service patch" }, "devDependencies": { "@babel/core": "^7.17.9", "@babel/preset-env": "^7.16.11", + "@effect/language-service": "^0.64.1", "@types/json-diff": "^1.0.3", "@types/lodash.throttle": "^4.1.9", - "@types/node": "^22.6.1", + "@types/node": "^22.13.0", "npm-run-all": "^4.1.5", "typescript": "^5.9.3", "vitest": "^3.2.4" diff --git a/client/packages/cli/src/index.js b/client/packages/cli/src/index.js index 8031fc40a4..6ffea0c851 100644 --- a/client/packages/cli/src/index.js +++ b/client/packages/cli/src/index.js @@ -393,7 +393,7 @@ program .option('--title
(prompt: Prompt
) => + Effect.tryPromise({ + try: () => renderUnwrap(prompt), + catch: (error) => new UIError({ message: 'UI Error', cause: error }), + }); diff --git a/client/packages/cli/src/new/logging.ts b/client/packages/cli/src/new/logging.ts new file mode 100644 index 0000000000..2089dd4ba5 --- /dev/null +++ b/client/packages/cli/src/new/logging.ts @@ -0,0 +1,32 @@ +import chalk from 'chalk'; +import { HashMap, Logger, Match, Option } from 'effect'; + +export function warn(firstArg, ...rest) { + console.warn(chalk.yellow('[warning]') + ' ' + firstArg, ...rest); +} + +export function error(firstArg, ...rest) { + console.error(chalk.red('[error]') + ' ' + firstArg, ...rest); +} + +const simpleLogger = Logger.make(({ logLevel, message, annotations }) => { + const isSilent = HashMap.get(annotations, 'silent').pipe(Option.getOrNull); + if (isSilent) return; + const formattedMessage = Array.isArray(message) ? message.join(' ') : message; + Match.value(logLevel).pipe( + Match.tag('Info', () => console.log(formattedMessage)), + Match.tag('Warning', () => console.warn(formattedMessage)), + Match.tag('Error', () => + console.error(chalk.red('[error]') + ' ' + formattedMessage), + ), + Match.tag('Debug', () => console.debug(formattedMessage)), + Match.tag('Fatal', () => + console.error(chalk.red('[error]') + ' ' + formattedMessage), + ), + ); +}); + +export const SimpleLogLayer = Logger.replace( + Logger.defaultLogger, + simpleLogger, +); diff --git a/client/packages/cli/src/new/program.ts b/client/packages/cli/src/new/program.ts new file mode 100644 index 0000000000..c88b800e84 --- /dev/null +++ b/client/packages/cli/src/new/program.ts @@ -0,0 +1,3 @@ +import { Command } from '@commander-js/extra-typings'; + +export const program = new Command(); diff --git a/client/packages/cli/src/renderSchemaPlan.ts b/client/packages/cli/src/renderSchemaPlan.ts index ff28408564..7baf817555 100644 --- a/client/packages/cli/src/renderSchemaPlan.ts +++ b/client/packages/cli/src/renderSchemaPlan.ts @@ -98,7 +98,7 @@ type AddOrDeleteAttr = | MigrationTxSpecific<'add-attr'> | MigrationTxSpecific<'delete-attr'>; -type SuperMigrationTx = +export type SuperMigrationTx = | MigrationTx | { type: 'create-namespace'; namespace: string; innerSteps: MigrationTx[] } | { type: 'delete-namespace'; namespace: string; innerSteps: MigrationTx[] }; diff --git a/client/packages/cli/src/ui/index.ts b/client/packages/cli/src/ui/index.ts index 5209609b66..2b93964780 100644 --- a/client/packages/cli/src/ui/index.ts +++ b/client/packages/cli/src/ui/index.ts @@ -864,7 +864,7 @@ ${inputDisplay}`; } } - interface AppSelectorApi { + export interface AppSelectorApi { getDash: () => { apps: App[]; orgs: Org[] }; createEphemeralApp: (title: string) => Promise<{ appId: string; diff --git a/client/packages/cli/src/util/getAuthPaths.ts b/client/packages/cli/src/util/getAuthPaths.ts index 0af3ae571d..5a8e8a3c25 100644 --- a/client/packages/cli/src/util/getAuthPaths.ts +++ b/client/packages/cli/src/util/getAuthPaths.ts @@ -2,6 +2,7 @@ import envPaths from 'env-paths'; import { join } from 'path'; const dev = Boolean(process.env.INSTANT_CLI_DEV); + export function getAuthPaths() { const key = `instantdb-${dev ? 'dev' : 'prod'}`; const { config: appConfigDirPath } = envPaths(key); diff --git a/client/packages/cli/src/util/mergeSchema.js b/client/packages/cli/src/util/mergeSchema.ts similarity index 96% rename from client/packages/cli/src/util/mergeSchema.js rename to client/packages/cli/src/util/mergeSchema.ts index afbf3346c4..de5df89957 100644 --- a/client/packages/cli/src/util/mergeSchema.js +++ b/client/packages/cli/src/util/mergeSchema.ts @@ -1,6 +1,12 @@ import * as acorn from 'acorn'; import tsPlugin from 'acorn-typescript'; +import { Data } from 'effect'; +export class MergeSchemaError extends Data.TaggedError('MergeSchemaError')<{ + message: string; +}> {} + +// @ts-ignore const node = acorn.Parser.extend(tsPlugin({ dts: false })); // --- Import Handling Helpers --- @@ -102,7 +108,7 @@ function getPropName(prop) { return null; } -function analyzeChain(node) { +function analyzeChain(node): any { let curr = node; let typeParams = null; let baseCall = null; @@ -192,7 +198,7 @@ function findSchemaObject(ast) { return schemaObj; } -export function mergeSchema(oldFile, newFile) { +export function mergeSchema(oldFile, newFile): string { const oldParsed = node.parse(oldFile, { sourceType: 'module', ecmaVersion: 'latest', @@ -225,7 +231,7 @@ export function mergeSchema(oldFile, newFile) { const neededIdentifiers = new Set(); // 3. Apply to new file & Collect needed identifiers - const edits = []; + const edits: any[] = []; const newSchemaObj = findSchemaObject(newParsed); if (newSchemaObj) { @@ -290,7 +296,7 @@ export function mergeSchema(oldFile, newFile) { } } - const importBlocks = []; + const importBlocks: string[] = []; for (const [source, info] of importsToAdd) { // Check if source exists in new file to merge? @@ -299,7 +305,7 @@ export function mergeSchema(oldFile, newFile) { // If we have named imports if (info.named.size > 0) { - const namedImports = Array.from(info.named.values()); + const namedImports: any[] = Array.from(info.named.values()); const allTypes = namedImports.every((x) => x.isType); if (allTypes) { diff --git a/client/packages/cli/tsconfig.json b/client/packages/cli/tsconfig.json index 06246f01f3..4d49715cda 100644 --- a/client/packages/cli/tsconfig.json +++ b/client/packages/cli/tsconfig.json @@ -5,6 +5,11 @@ "rootDir": "src", "sourceMap": true, "skipLibCheck": true, // `unconfig` currently imports a broken type from `@antfu/utils`, + "plugins": [ + { + "name": "@effect/language-service" + } + ], "strictNullChecks": true // remove once fixed }, diff --git a/client/pnpm-lock.yaml b/client/pnpm-lock.yaml index ad155eb331..24163130f0 100644 --- a/client/pnpm-lock.yaml +++ b/client/pnpm-lock.yaml @@ -69,6 +69,15 @@ importers: packages/cli: dependencies: + '@commander-js/extra-typings': + specifier: ^14.0.0 + version: 14.0.0(commander@12.1.0) + '@effect/platform': + specifier: ^0.94.1 + version: 0.94.1(effect@3.19.14) + '@effect/platform-node': + specifier: ^0.104.0 + version: 0.104.0(@effect/cluster@0.56.1(@effect/platform@0.94.1(effect@3.19.14))(@effect/rpc@0.73.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14))(@effect/sql@0.49.0(@effect/experimental@0.58.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14)(ioredis@5.6.1))(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14))(@effect/workflow@0.16.0(@effect/experimental@0.58.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14)(ioredis@5.6.1))(@effect/platform@0.94.1(effect@3.19.14))(@effect/rpc@0.73.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14))(effect@3.19.14))(effect@3.19.14))(@effect/platform@0.94.1(effect@3.19.14))(@effect/rpc@0.73.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14))(@effect/sql@0.49.0(@effect/experimental@0.58.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14)(ioredis@5.6.1))(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14))(effect@3.19.14) '@instantdb/core': specifier: workspace:* version: link:../core @@ -102,6 +111,9 @@ importers: dotenv-flow: specifier: ^4.1.0 version: 4.1.0 + effect: + specifier: ^3.19.14 + version: 3.19.14 env-paths: specifier: ^3.0.0 version: 3.0.0 @@ -123,6 +135,12 @@ importers: package-directory: specifier: ^8.1.0 version: 8.1.0 + package-manager-detector: + specifier: ^1.6.0 + version: 1.6.0 + pkg-types: + specifier: ^2.3.0 + version: 2.3.0 prettier: specifier: ^3.3.3 version: 3.4.2 @@ -148,6 +166,9 @@ importers: '@babel/preset-env': specifier: ^7.16.11 version: 7.26.7(@babel/core@7.26.7) + '@effect/language-service': + specifier: ^0.64.1 + version: 0.64.1 '@types/json-diff': specifier: ^1.0.3 version: 1.0.3 @@ -155,7 +176,7 @@ importers: specifier: ^4.1.9 version: 4.1.9 '@types/node': - specifier: ^22.6.1 + specifier: ^22.13.0 version: 22.13.0 npm-run-all: specifier: ^4.1.5 @@ -2831,6 +2852,11 @@ packages: resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} engines: {node: '>=0.1.90'} + '@commander-js/extra-typings@14.0.0': + resolution: {integrity: sha512-hIn0ncNaJRLkZrxBIp5AsW/eXEHNKYQBh0aPdoUqNgD+Io3NIykQqpKFyKcuasZhicGaEZJX/JBSIkZ4e5x8Dg==} + peerDependencies: + commander: ~14.0.0 + '@corex/deepmerge@4.0.43': resolution: {integrity: sha512-N8uEMrMPL0cu/bdboEWpQYb/0i2K5Qn8eCsxzOmxSggJbbQte7ljMRoXm917AbntqTGOzdTu+vP3KOOzoC70HQ==} @@ -2921,6 +2947,76 @@ packages: search-insights: optional: true + '@effect/cluster@0.56.1': + resolution: {integrity: sha512-gnrsH6kfrUjn+82j/bw1IR4yFqJqV8tc7xZvrbJPRgzANycc6K1hu3LMg548uYbUkTzD8YYyqrSatMO1mkQpzw==} + peerDependencies: + '@effect/platform': ^0.94.1 + '@effect/rpc': ^0.73.0 + '@effect/sql': ^0.49.0 + '@effect/workflow': ^0.16.0 + effect: ^3.19.14 + + '@effect/experimental@0.58.0': + resolution: {integrity: sha512-IEP9sapjF6rFy5TkoqDPc86st/fnqUfjT7Xa3pWJrFGr1hzaMXHo+mWsYOZS9LAOVKnpHuVziDK97EP5qsCHVA==} + peerDependencies: + '@effect/platform': ^0.94.0 + effect: ^3.19.13 + ioredis: ^5 + lmdb: ^3 + peerDependenciesMeta: + ioredis: + optional: true + lmdb: + optional: true + + '@effect/language-service@0.64.1': + resolution: {integrity: sha512-1S7Xr2t9mygR6QyiIdCQUvPwSvcf5EBpnWmKa/8rC4P0btFfw/RiWRI8bvFI2AW+U4KStMUHYxPu4QEsk4y8bg==} + hasBin: true + + '@effect/platform-node-shared@0.57.0': + resolution: {integrity: sha512-QXuvmLNlABCQLcTl+lN1YPhKosR6KqArPYjC2reU0fb5lroCo3YRb/aGpXIgLthHzQL8cLU5XMGA3Cu5hKY2Tw==} + peerDependencies: + '@effect/cluster': ^0.56.0 + '@effect/platform': ^0.94.0 + '@effect/rpc': ^0.73.0 + '@effect/sql': ^0.49.0 + effect: ^3.19.13 + + '@effect/platform-node@0.104.0': + resolution: {integrity: sha512-2ZkUDDTxLD95ARdYIKBx4tdIIgqA3cwb3jlnVVBxmHUf0Pg5N2HdMuD0Q+CXQ7Q94FDwnLW3ZvaSfxDh6FvrNw==} + peerDependencies: + '@effect/cluster': ^0.56.0 + '@effect/platform': ^0.94.0 + '@effect/rpc': ^0.73.0 + '@effect/sql': ^0.49.0 + effect: ^3.19.13 + + '@effect/platform@0.94.1': + resolution: {integrity: sha512-SlL8OMTogHmMNnFLnPAHHo3ua1yrB1LNQOVQMiZsqYu9g3216xjr0gn5WoDgCxUyOdZcseegMjWJ7dhm/2vnfg==} + peerDependencies: + effect: ^3.19.14 + + '@effect/rpc@0.73.0': + resolution: {integrity: sha512-iMPf6tTriz8sK0l5x4koFId8Hz5nFptHYg8WqyjHGIIVLTpZxuiSqhmXZG7FnAs5N2n6uCEws4wWGcIgXNUrFg==} + peerDependencies: + '@effect/platform': ^0.94.0 + effect: ^3.19.13 + + '@effect/sql@0.49.0': + resolution: {integrity: sha512-9UEKR+z+MrI/qMAmSvb/RiD9KlgIazjZUCDSpwNgm0lEK9/Q6ExEyfziiYFVCPiptp52cBw8uBHRic8hHnwqXA==} + peerDependencies: + '@effect/experimental': ^0.58.0 + '@effect/platform': ^0.94.0 + effect: ^3.19.13 + + '@effect/workflow@0.16.0': + resolution: {integrity: sha512-MiAdlxx3TixkgHdbw+Yf1Z3tHAAE0rOQga12kIydJqj05Fnod+W/I+kQGRMY/XWRg+QUsVxhmh1qTr7Ype6lrw==} + peerDependencies: + '@effect/experimental': ^0.58.0 + '@effect/platform': ^0.94.0 + '@effect/rpc': ^0.73.0 + effect: ^3.19.13 + '@emnapi/core@1.4.3': resolution: {integrity: sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g==} @@ -4708,6 +4804,36 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + '@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.3': + resolution: {integrity: sha512-QZHtlVgbAdy2zAqNA9Gu1UpIuI8Xvsd1v8ic6B2pZmeFnFcMWiPLfWXh7TVw4eGEZ/C9TH281KwhVoeQUKbyjw==} + cpu: [arm64] + os: [darwin] + + '@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.3': + resolution: {integrity: sha512-mdzd3AVzYKuUmiWOQ8GNhl64/IoFGol569zNRdkLReh6LRLHOXxU4U8eq0JwaD8iFHdVGqSy4IjFL4reoWCDFw==} + cpu: [x64] + os: [darwin] + + '@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.3': + resolution: {integrity: sha512-YxQL+ax0XqBJDZiKimS2XQaf+2wDGVa1enVRGzEvLLVFeqa5kx2bWbtcSXgsxjQB7nRqqIGFIcLteF/sHeVtQg==} + cpu: [arm64] + os: [linux] + + '@msgpackr-extract/msgpackr-extract-linux-arm@3.0.3': + resolution: {integrity: sha512-fg0uy/dG/nZEXfYilKoRe7yALaNmHoYeIoJuJ7KJ+YyU2bvY8vPv27f7UKhGRpY6euFYqEVhxCFZgAUNQBM3nw==} + cpu: [arm] + os: [linux] + + '@msgpackr-extract/msgpackr-extract-linux-x64@3.0.3': + resolution: {integrity: sha512-cvwNfbP07pKUfq1uH+S6KJ7dT9K8WOE4ZiAcsrSes+UY55E/0jLYc+vq+DO7jlmqRb5zAggExKm0H7O/CBaesg==} + cpu: [x64] + os: [linux] + + '@msgpackr-extract/msgpackr-extract-win32-x64@3.0.3': + resolution: {integrity: sha512-x0fWaQtYp4E6sktbsdAqnehxDgEc/VwM7uLsRCYWaiGu0ykYdZPiS8zCWdnjHwyiumousxfBm4SO31eXqwEZhQ==} + cpu: [x64] + os: [win32] + '@mux/mux-data-google-ima@0.2.8': resolution: {integrity: sha512-0ZEkHdcZ6bS8QtcjFcoJeZxJTpX7qRIledf4q1trMWPznugvtajCjCM2kieK/pzkZj1JM6liDRFs1PJSfVUs2A==} @@ -9878,6 +10004,9 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + effect@3.19.14: + resolution: {integrity: sha512-3vwdq0zlvQOxXzXNKRIPKTqZNMyGCdaFUBfMPqpsyzZDre67kgC1EEHDV4EoQTovJ4w5fmJW756f86kkuz7WFA==} + electron-to-chromium@1.5.150: resolution: {integrity: sha512-rOOkP2ZUMx1yL4fCxXQKDHQ8ZXwisb2OycOQVKHgvB3ZI4CvehOd4y2tfnnLDieJ3Zs1RL1Dlp3cMkyIn7nnXA==} @@ -10477,6 +10606,9 @@ packages: exsolve@1.0.5: resolution: {integrity: sha512-pz5dvkYYKQ1AHVrgOzBKWeP4u4FRb3a6DNK2ucr0OoNwYIU4QWsJ+NM36LLzORT+z845MzKHHhpXiUF5nvQoJg==} + exsolve@1.0.8: + resolution: {integrity: sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==} + extend-shallow@2.0.1: resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} engines: {node: '>=0.10.0'} @@ -10639,6 +10771,9 @@ packages: resolution: {integrity: sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==} engines: {node: '>=6'} + find-my-way-ts@0.1.6: + resolution: {integrity: sha512-a85L9ZoXtNAey3Y6Z+eBWW658kO/MwR7zIafkIUPUMf3isZG0NCs2pjW2wtjxAKuJPxMAsHUIP4ZPGv0o5gyTA==} + find-up-simple@1.0.0: resolution: {integrity: sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==} engines: {node: '>=18'} @@ -12023,6 +12158,9 @@ packages: kolorist@1.8.0: resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} + kubernetes-types@1.30.0: + resolution: {integrity: sha512-Dew1okvhM/SQcIa2rcgujNndZwU8VnSapDgdxlYoB84ZlpAD43U6KLAFqYo17ykSFGHNPrg0qry0bP+GJd9v7Q==} + kuler@2.0.0: resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==} @@ -13052,6 +13190,16 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + msgpackr-extract@3.0.3: + resolution: {integrity: sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA==} + hasBin: true + + msgpackr@1.11.8: + resolution: {integrity: sha512-bC4UGzHhVvgDNS7kn9tV8fAucIYUBuGojcaLiz7v+P63Lmtm0Xeji8B/8tYKddALXxJLpwIeBmUN3u64C4YkRA==} + + multipasta@0.2.7: + resolution: {integrity: sha512-KPA58d68KgGil15oDqXjkUBEBYc00XvbPj5/X+dyzeo/lWm9Nc25pQRlf1D+gv4OpK7NM0J1odrbu9JNNGvynA==} + mutative@1.1.0: resolution: {integrity: sha512-2PJADREjOusk3iJkD3rXV2YjAxTuaLxdfqtqTEt6vcY07LtEBR1seHuBHXWEIuscqRDGvbauYPs+A4Rj/KTczQ==} engines: {node: '>=14.0'} @@ -13249,6 +13397,10 @@ packages: resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} engines: {node: '>= 6.13.0'} + node-gyp-build-optional-packages@5.2.2: + resolution: {integrity: sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==} + hasBin: true + node-gyp-build@4.8.4: resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} hasBin: true @@ -13608,6 +13760,9 @@ packages: package-manager-detector@1.3.0: resolution: {integrity: sha512-ZsEbbZORsyHuO00lY1kV3/t72yp6Ysay6Pd17ZAlNGuGwmWDLCJxFpRs0IzfXfj1o4icJOkUEioexFHzyPurSQ==} + package-manager-detector@1.6.0: + resolution: {integrity: sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==} + pako@0.2.9: resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==} @@ -13833,6 +13988,9 @@ packages: pkg-types@2.1.0: resolution: {integrity: sha512-wmJwA+8ihJixSoHKxZJRBQG1oY8Yr9pGLzRmSsNms0iNWyHHAlZCa7mmKiFR10YPZuz/2k169JiS/inOjBCZ2A==} + pkg-types@2.3.0: + resolution: {integrity: sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==} + player.style@0.2.0: resolution: {integrity: sha512-Ngoaz49TClptMr8HDA2IFmjT3Iq6R27QEUH/C+On33L59RSF3dCLefBYB1Au2RDZQJ6oVFpc1sXaPVpp7fEzzA==} @@ -16110,6 +16268,10 @@ packages: resolution: {integrity: sha512-q/1rj5D0/zayJB2FraXdaWxbhWiNKDvu8naDT2dl1yTlvJp4BLtOcp2a5BvgGNQpYYJzau7tf1WgKv3b+7mqpQ==} engines: {node: '>=18.17'} + undici@7.18.2: + resolution: {integrity: sha512-y+8YjDFzWdQlSE9N5nzKMT3g4a5UBX1HKowfdXh0uvAnTaqqwqB92Jt4UXBAeKekDs5IaDKyJFR4X1gYVCgXcw==} + engines: {node: '>=20.18.1'} + unenv@2.0.0-rc.15: resolution: {integrity: sha512-J/rEIZU8w6FOfLNz/hNKsnY+fFHWnu9MH4yRbSZF3xbbGHovcetXPs7sD+9p8L6CeNC//I9bhRYAOsBt2u7/OA==} @@ -19373,6 +19535,10 @@ snapshots: '@colors/colors@1.6.0': {} + '@commander-js/extra-typings@14.0.0(commander@12.1.0)': + dependencies: + commander: 12.1.0 + '@corex/deepmerge@4.0.43': {} '@cspotcode/source-map-support@0.8.1': @@ -19458,6 +19624,81 @@ snapshots: transitivePeerDependencies: - '@algolia/client-search' + '@effect/cluster@0.56.1(@effect/platform@0.94.1(effect@3.19.14))(@effect/rpc@0.73.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14))(@effect/sql@0.49.0(@effect/experimental@0.58.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14)(ioredis@5.6.1))(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14))(@effect/workflow@0.16.0(@effect/experimental@0.58.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14)(ioredis@5.6.1))(@effect/platform@0.94.1(effect@3.19.14))(@effect/rpc@0.73.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14))(effect@3.19.14))(effect@3.19.14)': + dependencies: + '@effect/platform': 0.94.1(effect@3.19.14) + '@effect/rpc': 0.73.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14) + '@effect/sql': 0.49.0(@effect/experimental@0.58.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14)(ioredis@5.6.1))(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14) + '@effect/workflow': 0.16.0(@effect/experimental@0.58.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14)(ioredis@5.6.1))(@effect/platform@0.94.1(effect@3.19.14))(@effect/rpc@0.73.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14))(effect@3.19.14) + effect: 3.19.14 + kubernetes-types: 1.30.0 + + '@effect/experimental@0.58.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14)(ioredis@5.6.1)': + dependencies: + '@effect/platform': 0.94.1(effect@3.19.14) + effect: 3.19.14 + uuid: 11.1.0 + optionalDependencies: + ioredis: 5.6.1 + + '@effect/language-service@0.64.1': {} + + '@effect/platform-node-shared@0.57.0(@effect/cluster@0.56.1(@effect/platform@0.94.1(effect@3.19.14))(@effect/rpc@0.73.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14))(@effect/sql@0.49.0(@effect/experimental@0.58.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14)(ioredis@5.6.1))(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14))(@effect/workflow@0.16.0(@effect/experimental@0.58.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14)(ioredis@5.6.1))(@effect/platform@0.94.1(effect@3.19.14))(@effect/rpc@0.73.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14))(effect@3.19.14))(effect@3.19.14))(@effect/platform@0.94.1(effect@3.19.14))(@effect/rpc@0.73.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14))(@effect/sql@0.49.0(@effect/experimental@0.58.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14)(ioredis@5.6.1))(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14))(effect@3.19.14)': + dependencies: + '@effect/cluster': 0.56.1(@effect/platform@0.94.1(effect@3.19.14))(@effect/rpc@0.73.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14))(@effect/sql@0.49.0(@effect/experimental@0.58.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14)(ioredis@5.6.1))(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14))(@effect/workflow@0.16.0(@effect/experimental@0.58.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14)(ioredis@5.6.1))(@effect/platform@0.94.1(effect@3.19.14))(@effect/rpc@0.73.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14))(effect@3.19.14))(effect@3.19.14) + '@effect/platform': 0.94.1(effect@3.19.14) + '@effect/rpc': 0.73.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14) + '@effect/sql': 0.49.0(@effect/experimental@0.58.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14)(ioredis@5.6.1))(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14) + '@parcel/watcher': 2.5.1 + effect: 3.19.14 + multipasta: 0.2.7 + ws: 8.19.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@effect/platform-node@0.104.0(@effect/cluster@0.56.1(@effect/platform@0.94.1(effect@3.19.14))(@effect/rpc@0.73.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14))(@effect/sql@0.49.0(@effect/experimental@0.58.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14)(ioredis@5.6.1))(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14))(@effect/workflow@0.16.0(@effect/experimental@0.58.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14)(ioredis@5.6.1))(@effect/platform@0.94.1(effect@3.19.14))(@effect/rpc@0.73.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14))(effect@3.19.14))(effect@3.19.14))(@effect/platform@0.94.1(effect@3.19.14))(@effect/rpc@0.73.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14))(@effect/sql@0.49.0(@effect/experimental@0.58.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14)(ioredis@5.6.1))(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14))(effect@3.19.14)': + dependencies: + '@effect/cluster': 0.56.1(@effect/platform@0.94.1(effect@3.19.14))(@effect/rpc@0.73.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14))(@effect/sql@0.49.0(@effect/experimental@0.58.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14)(ioredis@5.6.1))(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14))(@effect/workflow@0.16.0(@effect/experimental@0.58.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14)(ioredis@5.6.1))(@effect/platform@0.94.1(effect@3.19.14))(@effect/rpc@0.73.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14))(effect@3.19.14))(effect@3.19.14) + '@effect/platform': 0.94.1(effect@3.19.14) + '@effect/platform-node-shared': 0.57.0(@effect/cluster@0.56.1(@effect/platform@0.94.1(effect@3.19.14))(@effect/rpc@0.73.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14))(@effect/sql@0.49.0(@effect/experimental@0.58.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14)(ioredis@5.6.1))(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14))(@effect/workflow@0.16.0(@effect/experimental@0.58.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14)(ioredis@5.6.1))(@effect/platform@0.94.1(effect@3.19.14))(@effect/rpc@0.73.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14))(effect@3.19.14))(effect@3.19.14))(@effect/platform@0.94.1(effect@3.19.14))(@effect/rpc@0.73.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14))(@effect/sql@0.49.0(@effect/experimental@0.58.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14)(ioredis@5.6.1))(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14))(effect@3.19.14) + '@effect/rpc': 0.73.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14) + '@effect/sql': 0.49.0(@effect/experimental@0.58.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14)(ioredis@5.6.1))(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14) + effect: 3.19.14 + mime: 3.0.0 + undici: 7.18.2 + ws: 8.19.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@effect/platform@0.94.1(effect@3.19.14)': + dependencies: + effect: 3.19.14 + find-my-way-ts: 0.1.6 + msgpackr: 1.11.8 + multipasta: 0.2.7 + + '@effect/rpc@0.73.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14)': + dependencies: + '@effect/platform': 0.94.1(effect@3.19.14) + effect: 3.19.14 + msgpackr: 1.11.8 + + '@effect/sql@0.49.0(@effect/experimental@0.58.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14)(ioredis@5.6.1))(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14)': + dependencies: + '@effect/experimental': 0.58.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14)(ioredis@5.6.1) + '@effect/platform': 0.94.1(effect@3.19.14) + effect: 3.19.14 + uuid: 11.1.0 + + '@effect/workflow@0.16.0(@effect/experimental@0.58.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14)(ioredis@5.6.1))(@effect/platform@0.94.1(effect@3.19.14))(@effect/rpc@0.73.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14))(effect@3.19.14)': + dependencies: + '@effect/experimental': 0.58.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14)(ioredis@5.6.1) + '@effect/platform': 0.94.1(effect@3.19.14) + '@effect/rpc': 0.73.0(@effect/platform@0.94.1(effect@3.19.14))(effect@3.19.14) + effect: 3.19.14 + '@emnapi/core@1.4.3': dependencies: '@emnapi/wasi-threads': 1.0.2 @@ -21448,6 +21689,24 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + '@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.3': + optional: true + + '@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.3': + optional: true + + '@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.3': + optional: true + + '@msgpackr-extract/msgpackr-extract-linux-arm@3.0.3': + optional: true + + '@msgpackr-extract/msgpackr-extract-linux-x64@3.0.3': + optional: true + + '@msgpackr-extract/msgpackr-extract-win32-x64@3.0.3': + optional: true + '@mux/mux-data-google-ima@0.2.8': dependencies: mux-embed: 5.9.0 @@ -27398,6 +27657,11 @@ snapshots: ee-first@1.1.1: {} + effect@3.19.14: + dependencies: + '@standard-schema/spec': 1.0.0 + fast-check: 3.23.2 + electron-to-chromium@1.5.150: {} electron-to-chromium@1.5.90: {} @@ -28292,6 +28556,8 @@ snapshots: exsolve@1.0.5: {} + exsolve@1.0.8: {} + extend-shallow@2.0.1: dependencies: is-extendable: 0.1.1 @@ -28475,6 +28741,8 @@ snapshots: make-dir: 2.1.0 pkg-dir: 3.0.0 + find-my-way-ts@0.1.6: {} + find-up-simple@1.0.0: {} find-up@3.0.0: @@ -30231,6 +30499,8 @@ snapshots: kolorist@1.8.0: {} + kubernetes-types@1.30.0: {} + kuler@2.0.0: {} lambda-local@2.2.0: @@ -31628,6 +31898,24 @@ snapshots: ms@2.1.3: {} + msgpackr-extract@3.0.3: + dependencies: + node-gyp-build-optional-packages: 5.2.2 + optionalDependencies: + '@msgpackr-extract/msgpackr-extract-darwin-arm64': 3.0.3 + '@msgpackr-extract/msgpackr-extract-darwin-x64': 3.0.3 + '@msgpackr-extract/msgpackr-extract-linux-arm': 3.0.3 + '@msgpackr-extract/msgpackr-extract-linux-arm64': 3.0.3 + '@msgpackr-extract/msgpackr-extract-linux-x64': 3.0.3 + '@msgpackr-extract/msgpackr-extract-win32-x64': 3.0.3 + optional: true + + msgpackr@1.11.8: + optionalDependencies: + msgpackr-extract: 3.0.3 + + multipasta@0.2.7: {} + mutative@1.1.0: {} mute-stream@1.0.0: {} @@ -31966,6 +32254,11 @@ snapshots: node-forge@1.3.1: {} + node-gyp-build-optional-packages@5.2.2: + dependencies: + detect-libc: 2.1.2 + optional: true + node-gyp-build@4.8.4: {} node-int64@0.4.0: {} @@ -32449,6 +32742,8 @@ snapshots: package-manager-detector@1.3.0: {} + package-manager-detector@1.6.0: {} + pako@0.2.9: {} parent-module@1.0.1: @@ -32669,6 +32964,12 @@ snapshots: exsolve: 1.0.5 pathe: 2.0.3 + pkg-types@2.3.0: + dependencies: + confbox: 0.2.2 + exsolve: 1.0.8 + pathe: 2.0.3 + player.style@0.2.0(react@18.3.1): dependencies: media-chrome: 4.13.1(react@18.3.1) @@ -35411,6 +35712,8 @@ snapshots: undici@6.21.1: {} + undici@7.18.2: {} + unenv@2.0.0-rc.15: dependencies: defu: 6.1.4