diff --git a/.changeset/ninety-candles-lie.md b/.changeset/ninety-candles-lie.md new file mode 100644 index 000000000..ed86a3aae --- /dev/null +++ b/.changeset/ninety-candles-lie.md @@ -0,0 +1,6 @@ +--- +"@codemod-com/runner": patch +"codemod": patch +--- + +fix: add child process support for specific codemod execution diff --git a/apps/cli/package.json b/apps/cli/package.json index 1e468fe58..c24f55398 100644 --- a/apps/cli/package.json +++ b/apps/cli/package.json @@ -68,7 +68,7 @@ "yargs": "catalog:" }, "scripts": { - "build": "tsc && node ./build.js", + "build": "tsc && node ./build.js -- --prod", "build:local": "pnpm build -- --local", "build:prod": "pnpm build -- --prod", "build:publish": "pnpm build -- --publish", @@ -91,10 +91,11 @@ "dependencies": { "@ast-grep/cli": "catalog:", "@ast-grep/napi": "catalog:", - "keytar": "catalog:", + "@codemod.com/workflow": "workspace:*", + "@nodejs-loaders/alias": "^1.1.1", "@octokit/rest": "catalog:", "blessed": "catalog:", - "@codemod.com/workflow": "workspace:*", - "esbuild": "^0.23.0" + "esbuild": "^0.23.0", + "keytar": "catalog:" } } diff --git a/packages/runner/src/runner.ts b/packages/runner/src/runner.ts index a6d621c8e..3392eb019 100644 --- a/packages/runner/src/runner.ts +++ b/packages/runner/src/runner.ts @@ -1,9 +1,8 @@ +import { spawn } from "node:child_process"; import * as fs from "node:fs"; import { readFile } from "node:fs/promises"; import { dirname, join } from "node:path"; import { join as joinPosix } from "node:path/posix"; -import { glob, globStream } from "glob"; -import * as yaml from "js-yaml"; import type { Filemod } from "@codemod-com/filemod"; import { Printer, boxen, chalk, colorLongString } from "@codemod-com/printer"; @@ -21,12 +20,15 @@ import { isRecipeCodemod, } from "@codemod-com/utilities"; import type { AuthServiceInterface } from "@codemod.com/workflow"; +import { glob, globStream } from "glob"; +import * as yaml from "js-yaml"; import type { RunnerServiceInterface } from "#runner-service.js"; import { getCodemodExecutable, getRunConfig, temporaryLoadedModules, } from "#source-code.js"; +import { getRandomMjs, shouldRunAsChildNodeProcess } from "#utils.js"; import { astGrepLanguageToPatterns } from "./engines/ast-grep.js"; import type { Dependencies } from "./engines/filemod.js"; import { runFilemod } from "./engines/filemod.js"; @@ -492,6 +494,56 @@ export class Runner { return await onSuccess?.({ codemod, output: "", commands: [] }); } + if (shouldRunAsChildNodeProcess(codemod.config.name)) { + const randomMjs = join(process.cwd(), getRandomMjs()); + await fs.promises.copyFile( + join(codemod.path, "cdmd_dist", "index.js"), + randomMjs, + ); + const cliNodeModules = join(dirname(__dirname), "node_modules"); + const symlinkedPackages: string[] = []; + const cliNodeModulesDir = await fs.promises.readdir(cliNodeModules); + const targetNodeModulesDir = join(process.cwd(), "node_modules"); + + for (const dir of cliNodeModulesDir) { + if (fs.existsSync(join(targetNodeModulesDir, dir)) || dir === ".bin") { + continue; + } + + await fs.promises.symlink( + join(cliNodeModules, dir), + join(targetNodeModulesDir, dir), + ); + + symlinkedPackages.push(dir); + } + + return new Promise((resolve, reject) => { + const child = spawn(process.execPath, [randomMjs], { + stdio: "inherit", + cwd: process.cwd(), + }); + + child.on("close", async (code) => { + await fs.promises.unlink(randomMjs); + for (const dir of symlinkedPackages) { + await fs.promises.unlink(join(targetNodeModulesDir, dir)); + } + + if (code === 0) { + await onSuccess?.({ codemod, output: "", commands: [] }); + resolve(); + } else { + reject(new Error(`Process exited with code ${code}`)); + } + }); + + child.on("error", (err) => { + reject(err); + }); + }); + } + const codemodSource = await getCodemodExecutable( codemod.path, flowSettings.esm, diff --git a/packages/runner/src/utils.ts b/packages/runner/src/utils.ts index 5f9df8d47..6529eab58 100644 --- a/packages/runner/src/utils.ts +++ b/packages/runner/src/utils.ts @@ -25,3 +25,11 @@ export const isTheSameData = (oldData: string, newData: string) => { return false; } }; + +export const getRandomMjs = () => { + return `${Math.random().toString(36).substring(2, 15)}_${Math.random().toString(36).substring(2, 15)}.mjs`; +}; + +export const shouldRunAsChildNodeProcess = (codemodName: string) => { + return codemodName === "correct-ts-specifiers"; +}; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 916e145ce..07931ee28 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -929,7 +929,7 @@ importers: dependencies: langchain: specifier: 'catalog:' - version: 0.3.6(@langchain/core@0.2.36(openai@4.76.0))(axios@1.7.7)(handlebars@4.7.8)(openai@4.76.0) + version: 0.3.6(@langchain/core@0.2.36(openai@4.76.0(zod@3.24.1)))(axios@1.7.7)(handlebars@4.7.8)(openai@4.76.0(zod@3.24.1)) react-use: specifier: 'catalog:' version: 17.5.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) @@ -1239,6 +1239,9 @@ importers: '@codemod.com/workflow': specifier: workspace:* version: link:../../packages/workflow + '@nodejs-loaders/alias': + specifier: ^1.1.1 + version: 1.1.1 '@octokit/rest': specifier: 'catalog:' version: 20.1.1 @@ -1464,7 +1467,7 @@ importers: version: 1.1.1(@types/react-dom@18.3.0)(@types/react@18.2.55)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@sanity/client': specifier: 'catalog:' - version: 6.21.0(debug@3.2.7) + version: 6.21.0 '@sanity/code-input': specifier: 'catalog:' version: 4.1.4(@babel/runtime@7.24.7)(@codemirror/lint@6.8.1)(@codemirror/theme-one-dark@6.1.2)(@lezer/common@1.2.1)(codemirror@6.0.1(@lezer/common@1.2.1))(react-dom@18.2.0(react@18.2.0))(react-is@18.3.1)(react@18.2.0)(sanity@3.47.1(@types/node@20.14.8)(@types/react@18.2.55)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(styled-components@6.1.11(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(terser@5.38.1))(styled-components@6.1.11(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) @@ -1575,7 +1578,7 @@ importers: version: 1.15.1 jscodeshift: specifier: ^0.15.0 - version: 0.15.2(@babel/preset-env@7.24.7) + version: 0.15.2(@babel/preset-env@7.24.7(@babel/core@7.24.7)) jszip: specifier: 'catalog:' version: 3.10.1 @@ -2330,6 +2333,8 @@ importers: specifier: ^4.11.0 version: 4.15.7 + packages/database/generated/client: {} + packages/deprecated: {} packages/filemod: @@ -2566,7 +2571,7 @@ importers: version: 1.15.1 jscodeshift: specifier: ^0.15.1 - version: 0.15.2(@babel/preset-env@7.24.7) + version: 0.15.2(@babel/preset-env@7.24.7(@babel/core@7.24.7)) ms: specifier: 'catalog:' version: 2.1.3 @@ -2678,7 +2683,7 @@ importers: version: 9.2.23 jscodeshift: specifier: ^0.15.0 - version: 0.15.2(@babel/preset-env@7.24.7) + version: 0.15.2(@babel/preset-env@7.24.7(@babel/core@7.24.7)) lodash-es: specifier: 'catalog:' version: 4.17.21 @@ -5560,6 +5565,10 @@ packages: next: ^13.0.0 || ^14.0.0 || ^15.0.0 react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 + '@nodejs-loaders/alias@1.1.1': + resolution: {integrity: sha512-7Iq7XeacMpjUcOVetNBoFtHTx84uOazn8mhqaHXrvxBTgxCfZHlDu3g5ogRJ6/9PD5+LSvigfRMLTQWhAsSEwQ==} + engines: {node: '>=22 || ^20.6.0 || ^18.19.0'} + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -16801,7 +16810,7 @@ snapshots: '@aws-sdk/client-sso-oidc': 3.600.0 '@aws-sdk/client-sts': 3.600.0(@aws-sdk/client-sso-oidc@3.600.0) '@aws-sdk/core': 3.598.0 - '@aws-sdk/credential-provider-node': 3.600.0(@aws-sdk/client-sso-oidc@3.600.0)(@aws-sdk/client-sts@3.600.0) + '@aws-sdk/credential-provider-node': 3.600.0(@aws-sdk/client-sso-oidc@3.600.0)(@aws-sdk/client-sts@3.600.0(@aws-sdk/client-sso-oidc@3.600.0)) '@aws-sdk/middleware-bucket-endpoint': 3.598.0 '@aws-sdk/middleware-expect-continue': 3.598.0 '@aws-sdk/middleware-flexible-checksums': 3.598.0 @@ -16862,7 +16871,7 @@ snapshots: '@aws-crypto/sha256-js': 5.2.0 '@aws-sdk/client-sts': 3.600.0(@aws-sdk/client-sso-oidc@3.600.0) '@aws-sdk/core': 3.598.0 - '@aws-sdk/credential-provider-node': 3.600.0(@aws-sdk/client-sso-oidc@3.600.0)(@aws-sdk/client-sts@3.600.0) + '@aws-sdk/credential-provider-node': 3.600.0(@aws-sdk/client-sso-oidc@3.600.0)(@aws-sdk/client-sts@3.600.0(@aws-sdk/client-sso-oidc@3.600.0)) '@aws-sdk/middleware-host-header': 3.598.0 '@aws-sdk/middleware-logger': 3.598.0 '@aws-sdk/middleware-recursion-detection': 3.598.0 @@ -16950,7 +16959,7 @@ snapshots: '@aws-crypto/sha256-js': 5.2.0 '@aws-sdk/client-sso-oidc': 3.600.0 '@aws-sdk/core': 3.598.0 - '@aws-sdk/credential-provider-node': 3.600.0(@aws-sdk/client-sso-oidc@3.600.0)(@aws-sdk/client-sts@3.600.0) + '@aws-sdk/credential-provider-node': 3.600.0(@aws-sdk/client-sso-oidc@3.600.0)(@aws-sdk/client-sts@3.600.0(@aws-sdk/client-sso-oidc@3.600.0)) '@aws-sdk/middleware-host-header': 3.598.0 '@aws-sdk/middleware-logger': 3.598.0 '@aws-sdk/middleware-recursion-detection': 3.598.0 @@ -17019,14 +17028,14 @@ snapshots: '@smithy/util-stream': 3.0.4 tslib: 2.8.1 - '@aws-sdk/credential-provider-ini@3.598.0(@aws-sdk/client-sso-oidc@3.600.0)(@aws-sdk/client-sts@3.600.0)': + '@aws-sdk/credential-provider-ini@3.598.0(@aws-sdk/client-sso-oidc@3.600.0)(@aws-sdk/client-sts@3.600.0(@aws-sdk/client-sso-oidc@3.600.0))': dependencies: '@aws-sdk/client-sts': 3.600.0(@aws-sdk/client-sso-oidc@3.600.0) '@aws-sdk/credential-provider-env': 3.598.0 '@aws-sdk/credential-provider-http': 3.598.0 '@aws-sdk/credential-provider-process': 3.598.0 '@aws-sdk/credential-provider-sso': 3.598.0(@aws-sdk/client-sso-oidc@3.600.0) - '@aws-sdk/credential-provider-web-identity': 3.598.0(@aws-sdk/client-sts@3.600.0) + '@aws-sdk/credential-provider-web-identity': 3.598.0(@aws-sdk/client-sts@3.600.0(@aws-sdk/client-sso-oidc@3.600.0)) '@aws-sdk/types': 3.598.0 '@smithy/credential-provider-imds': 3.1.2 '@smithy/property-provider': 3.1.2 @@ -17037,14 +17046,14 @@ snapshots: - '@aws-sdk/client-sso-oidc' - aws-crt - '@aws-sdk/credential-provider-node@3.600.0(@aws-sdk/client-sso-oidc@3.600.0)(@aws-sdk/client-sts@3.600.0)': + '@aws-sdk/credential-provider-node@3.600.0(@aws-sdk/client-sso-oidc@3.600.0)(@aws-sdk/client-sts@3.600.0(@aws-sdk/client-sso-oidc@3.600.0))': dependencies: '@aws-sdk/credential-provider-env': 3.598.0 '@aws-sdk/credential-provider-http': 3.598.0 - '@aws-sdk/credential-provider-ini': 3.598.0(@aws-sdk/client-sso-oidc@3.600.0)(@aws-sdk/client-sts@3.600.0) + '@aws-sdk/credential-provider-ini': 3.598.0(@aws-sdk/client-sso-oidc@3.600.0)(@aws-sdk/client-sts@3.600.0(@aws-sdk/client-sso-oidc@3.600.0)) '@aws-sdk/credential-provider-process': 3.598.0 '@aws-sdk/credential-provider-sso': 3.598.0(@aws-sdk/client-sso-oidc@3.600.0) - '@aws-sdk/credential-provider-web-identity': 3.598.0(@aws-sdk/client-sts@3.600.0) + '@aws-sdk/credential-provider-web-identity': 3.598.0(@aws-sdk/client-sts@3.600.0(@aws-sdk/client-sso-oidc@3.600.0)) '@aws-sdk/types': 3.598.0 '@smithy/credential-provider-imds': 3.1.2 '@smithy/property-provider': 3.1.2 @@ -17077,7 +17086,7 @@ snapshots: - '@aws-sdk/client-sso-oidc' - aws-crt - '@aws-sdk/credential-provider-web-identity@3.598.0(@aws-sdk/client-sts@3.600.0)': + '@aws-sdk/credential-provider-web-identity@3.598.0(@aws-sdk/client-sts@3.600.0(@aws-sdk/client-sso-oidc@3.600.0))': dependencies: '@aws-sdk/client-sts': 3.600.0(@aws-sdk/client-sso-oidc@3.600.0) '@aws-sdk/types': 3.598.0 @@ -19648,13 +19657,13 @@ snapshots: transitivePeerDependencies: - openai - '@langchain/core@0.2.36(openai@4.76.0)': + '@langchain/core@0.2.36(openai@4.76.0(zod@3.24.1))': dependencies: ansi-styles: 5.2.0 camelcase: 6.3.0 decamelize: 1.2.0 js-tiktoken: 1.0.18 - langsmith: 0.1.68(openai@4.76.0) + langsmith: 0.1.68(openai@4.76.0(zod@3.24.1)) mustache: 4.2.0 p-queue: 6.6.2 p-retry: 4.6.2 @@ -19674,9 +19683,9 @@ snapshots: transitivePeerDependencies: - encoding - '@langchain/openai@0.3.14(@langchain/core@0.2.36(openai@4.76.0))': + '@langchain/openai@0.3.14(@langchain/core@0.2.36(openai@4.76.0(zod@3.24.1)))': dependencies: - '@langchain/core': 0.2.36(openai@4.76.0) + '@langchain/core': 0.2.36(openai@4.76.0(zod@3.24.1)) js-tiktoken: 1.0.18 openai: 4.76.0(zod@3.24.1) zod: 3.24.1 @@ -19689,9 +19698,9 @@ snapshots: '@langchain/core': 0.2.36(openai@4.23.0) js-tiktoken: 1.0.18 - '@langchain/textsplitters@0.1.0(@langchain/core@0.2.36(openai@4.76.0))': + '@langchain/textsplitters@0.1.0(@langchain/core@0.2.36(openai@4.76.0(zod@3.24.1)))': dependencies: - '@langchain/core': 0.2.36(openai@4.76.0) + '@langchain/core': 0.2.36(openai@4.76.0(zod@3.24.1)) js-tiktoken: 1.0.18 '@lezer/common@1.2.1': {} @@ -19909,6 +19918,10 @@ snapshots: react: 18.2.0 third-party-capital: 1.0.20 + '@nodejs-loaders/alias@1.1.1': + dependencies: + lodash.get: 4.4.2 + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -20961,6 +20974,14 @@ snapshots: - react - supports-color + '@sanity/client@6.21.0': + dependencies: + '@sanity/eventsource': 5.0.2 + get-it: 8.6.3 + rxjs: 7.8.1 + transitivePeerDependencies: + - debug + '@sanity/client@6.21.0(debug@3.2.7)': dependencies: '@sanity/eventsource': 5.0.2 @@ -21045,7 +21066,7 @@ snapshots: '@sanity/core-loader@1.6.19(@sanity/client@6.21.0)': dependencies: - '@sanity/client': 6.21.0(debug@3.2.7) + '@sanity/client': 6.21.0 '@sanity/diff-match-patch@3.1.1': {} @@ -21147,7 +21168,7 @@ snapshots: '@sanity/insert-menu@1.0.6(@sanity/types@3.47.1(debug@4.3.5))(react-dom@18.2.0(react@18.2.0))(react-is@18.3.1)(react@18.2.0)(styled-components@6.1.11(react-dom@18.2.0(react@18.2.0))(react@18.2.0))': dependencies: '@sanity/icons': 3.2.0(react@18.2.0) - '@sanity/types': 3.47.1(debug@3.2.7) + '@sanity/types': 3.47.1 '@sanity/ui': 2.4.0(react-dom@18.2.0(react@18.2.0))(react-is@18.3.1)(react@18.2.0)(styled-components@6.1.11(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) lodash.startcase: 4.4.0 react: 18.2.0 @@ -21161,7 +21182,7 @@ snapshots: '@sanity/icons': 2.11.8(react@18.2.0) '@sanity/incompatible-plugin': 1.0.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@sanity/ui': 2.4.0(react-dom@18.2.0(react@18.2.0))(react-is@18.3.1)(react@18.2.0)(styled-components@6.1.11(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) - '@sanity/util': 3.47.1(debug@3.2.7) + '@sanity/util': 3.47.1 lodash: 4.17.21 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -21268,7 +21289,7 @@ snapshots: '@sanity/presentation@1.16.0(@sanity/client@6.21.0)(react-dom@18.2.0(react@18.2.0))(react-is@18.3.1)(react@18.2.0)(styled-components@6.1.11(react-dom@18.2.0(react@18.2.0))(react@18.2.0))': dependencies: - '@sanity/client': 6.21.0(debug@3.2.7) + '@sanity/client': 6.21.0 '@sanity/icons': 3.2.0(react@18.2.0) '@sanity/preview-url-secret': 1.6.17(@sanity/client@6.21.0) '@sanity/ui': 2.4.0(react-dom@18.2.0(react@18.2.0))(react-is@18.3.1)(react@18.2.0)(styled-components@6.1.11(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) @@ -21291,12 +21312,12 @@ snapshots: '@sanity/preview-kit-compat@1.4.15(@sanity/client@6.21.0)(react@18.2.0)': dependencies: - '@sanity/client': 6.21.0(debug@3.2.7) + '@sanity/client': 6.21.0 react: 18.2.0 '@sanity/preview-kit@5.0.41(@sanity/client@6.21.0)(react@18.2.0)': dependencies: - '@sanity/client': 6.21.0(debug@3.2.7) + '@sanity/client': 6.21.0 '@sanity/preview-kit-compat': 1.4.15(@sanity/client@6.21.0)(react@18.2.0) '@vercel/stega': 0.1.0 lru-cache: 10.2.0 @@ -21313,12 +21334,12 @@ snapshots: '@sanity/preview-url-secret@1.6.17(@sanity/client@6.21.0)': dependencies: - '@sanity/client': 6.21.0(debug@3.2.7) + '@sanity/client': 6.21.0 '@sanity/uuid': 3.0.2 '@sanity/react-loader@1.10.3(@sanity/client@6.21.0)(react@18.2.0)': dependencies: - '@sanity/client': 6.21.0(debug@3.2.7) + '@sanity/client': 6.21.0 '@sanity/core-loader': 1.6.19(@sanity/client@6.21.0) react: 18.2.0 @@ -21376,6 +21397,13 @@ snapshots: transitivePeerDependencies: - debug + '@sanity/types@3.47.1': + dependencies: + '@sanity/client': 6.21.0 + '@types/react': 18.2.55 + transitivePeerDependencies: + - debug + '@sanity/types@3.47.1(debug@3.2.7)': dependencies: '@sanity/client': 6.21.0(debug@3.2.7) @@ -21433,6 +21461,16 @@ snapshots: transitivePeerDependencies: - debug + '@sanity/util@3.47.1': + dependencies: + '@sanity/client': 6.21.0 + '@sanity/types': 3.47.1 + get-random-values-esm: 1.0.2 + moment: 2.30.1 + rxjs: 7.8.1 + transitivePeerDependencies: + - debug + '@sanity/util@3.47.1(debug@3.2.7)': dependencies: '@sanity/client': 6.21.0(debug@3.2.7) @@ -21511,7 +21549,7 @@ snapshots: scroll-into-view-if-needed: 3.1.0 valibot: 0.30.0 optionalDependencies: - '@sanity/client': 6.21.0(debug@3.2.7) + '@sanity/client': 6.21.0 next: 14.2.4(@babel/core@7.24.7)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) svelte: 4.2.18 @@ -22214,7 +22252,7 @@ snapshots: '@sanity/incompatible-plugin': 1.0.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@sanity/presentation': 1.16.0(@sanity/client@6.21.0)(react-dom@18.2.0(react@18.2.0))(react-is@18.3.1)(react@18.2.0)(styled-components@6.1.11(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) '@sanity/ui': 2.4.0(react-dom@18.2.0(react@18.2.0))(react-is@18.3.1)(react@18.2.0)(styled-components@6.1.11(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) - '@sanity/util': 3.47.1(debug@3.2.7) + '@sanity/util': 3.47.1 '@tanstack/react-virtual': 3.7.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@tinloof/sanity-web': 0.4.1(@types/node@20.14.8)(@types/react@18.2.55)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(styled-components@6.1.11(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(terser@5.38.1) lodash: 4.17.21 @@ -25554,7 +25592,7 @@ snapshots: eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.56.0))(eslint@8.56.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.56.0))(eslint@8.56.0))(eslint@8.56.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) eslint-plugin-jsx-a11y: 6.9.0(eslint@8.56.0) eslint-plugin-react: 7.34.3(eslint@8.56.0) eslint-plugin-react-hooks: 4.6.2(eslint@8.56.0) @@ -25582,7 +25620,7 @@ snapshots: enhanced-resolve: 5.17.0 eslint: 8.56.0 eslint-module-utils: 2.8.1(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.56.0))(eslint@8.56.0))(eslint@8.56.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.56.0))(eslint@8.56.0))(eslint@8.56.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) fast-glob: 3.3.2 get-tsconfig: 4.7.5 is-core-module: 2.14.0 @@ -25604,7 +25642,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.56.0))(eslint@8.56.0))(eslint@8.56.0): + eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0): dependencies: array-includes: 3.1.8 array.prototype.findlastindex: 1.2.5 @@ -26278,6 +26316,16 @@ snapshots: has-symbols: 1.0.3 hasown: 2.0.2 + get-it@8.6.3: + dependencies: + decompress-response: 7.0.0 + follow-redirects: 1.15.9(debug@3.2.7) + is-retry-allowed: 2.2.0 + progress-stream: 2.0.0 + tunnel-agent: 0.6.0 + transitivePeerDependencies: + - debug + get-it@8.6.3(debug@3.2.7): dependencies: decompress-response: 7.0.0 @@ -27218,7 +27266,7 @@ snapshots: dependencies: argparse: 2.0.1 - jscodeshift@0.15.2(@babel/preset-env@7.24.7): + jscodeshift@0.15.2(@babel/preset-env@7.24.7(@babel/core@7.24.7)): dependencies: '@babel/core': 7.24.7 '@babel/parser': 7.24.7 @@ -27460,15 +27508,15 @@ snapshots: - encoding - openai - langchain@0.3.6(@langchain/core@0.2.36(openai@4.76.0))(axios@1.7.7)(handlebars@4.7.8)(openai@4.76.0): + langchain@0.3.6(@langchain/core@0.2.36(openai@4.76.0(zod@3.24.1)))(axios@1.7.7)(handlebars@4.7.8)(openai@4.76.0(zod@3.24.1)): dependencies: - '@langchain/core': 0.2.36(openai@4.76.0) - '@langchain/openai': 0.3.14(@langchain/core@0.2.36(openai@4.76.0)) - '@langchain/textsplitters': 0.1.0(@langchain/core@0.2.36(openai@4.76.0)) + '@langchain/core': 0.2.36(openai@4.76.0(zod@3.24.1)) + '@langchain/openai': 0.3.14(@langchain/core@0.2.36(openai@4.76.0(zod@3.24.1))) + '@langchain/textsplitters': 0.1.0(@langchain/core@0.2.36(openai@4.76.0(zod@3.24.1))) js-tiktoken: 1.0.18 js-yaml: 4.1.0 jsonpointer: 5.0.1 - langsmith: 0.2.10(openai@4.76.0) + langsmith: 0.2.10(openai@4.76.0(zod@3.24.1)) openapi-types: 12.1.3 p-retry: 4.6.2 uuid: 10.0.0 @@ -27493,7 +27541,7 @@ snapshots: optionalDependencies: openai: 4.23.0 - langsmith@0.1.68(openai@4.76.0): + langsmith@0.1.68(openai@4.76.0(zod@3.24.1)): dependencies: '@types/uuid': 10.0.0 commander: 10.0.1 @@ -27515,7 +27563,7 @@ snapshots: optionalDependencies: openai: 4.23.0 - langsmith@0.2.10(openai@4.76.0): + langsmith@0.2.10(openai@4.76.0(zod@3.24.1)): dependencies: '@types/uuid': 10.0.0 commander: 10.0.1 @@ -28768,10 +28816,10 @@ snapshots: next-sanity@8.5.5(@sanity/client@6.21.0)(@sanity/icons@3.2.0(react@18.2.0))(@sanity/types@3.47.1)(@sanity/ui@2.4.0(react-dom@18.2.0(react@18.2.0))(react-is@18.3.1)(react@18.2.0)(styled-components@6.1.11(react-dom@18.2.0(react@18.2.0))(react@18.2.0)))(next@14.2.4(@babel/core@7.24.7)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0)(sanity@3.47.1(@types/node@20.14.8)(@types/react@18.2.55)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(styled-components@6.1.11(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(terser@5.38.1))(styled-components@6.1.11(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(svelte@4.2.18): dependencies: '@portabletext/react': 3.1.0(react@18.2.0) - '@sanity/client': 6.21.0(debug@3.2.7) + '@sanity/client': 6.21.0 '@sanity/icons': 3.2.0(react@18.2.0) '@sanity/preview-kit': 5.0.41(@sanity/client@6.21.0)(react@18.2.0) - '@sanity/types': 3.47.1(debug@3.2.7) + '@sanity/types': 3.47.1 '@sanity/ui': 2.4.0(react-dom@18.2.0(react@18.2.0))(react-is@18.3.1)(react@18.2.0)(styled-components@6.1.11(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) '@sanity/visual-editing': 1.8.7(@sanity/client@6.21.0)(next@14.2.4(@babel/core@7.24.7)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(svelte@4.2.18) '@sanity/webhook': 4.0.2-bc @@ -30734,7 +30782,7 @@ snapshots: '@sanity/icons': 2.11.8(react@18.2.0) '@sanity/incompatible-plugin': 1.0.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@sanity/ui': 2.4.0(react-dom@18.2.0(react@18.2.0))(react-is@18.3.1)(react@18.2.0)(styled-components@6.1.11(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) - '@sanity/util': 3.47.1(debug@3.2.7) + '@sanity/util': 3.47.1 '@sanity/uuid': 3.0.2 dlv: 1.1.3 react: 18.2.0 @@ -30867,7 +30915,7 @@ snapshots: '@sanity/presentation': 1.16.0(@sanity/client@6.21.0(debug@4.3.5))(react-dom@18.2.0(react@18.2.0))(react-is@18.3.1)(react@18.2.0)(styled-components@6.1.11(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) '@sanity/schema': 3.47.1(debug@4.3.5) '@sanity/telemetry': 0.7.9(react@18.2.0) - '@sanity/types': 3.47.1(debug@3.2.7) + '@sanity/types': 3.47.1 '@sanity/ui': 2.4.0(react-dom@18.2.0(react@18.2.0))(react-is@18.3.1)(react@18.2.0)(styled-components@6.1.11(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) '@sanity/util': 3.47.1(debug@4.3.5) '@sanity/uuid': 3.0.2