From aa461a53cd8e72712f871bc6e97e11f8c06bd46b Mon Sep 17 00:00:00 2001 From: Sasha Date: Mon, 4 Mar 2024 17:13:49 +0100 Subject: [PATCH 01/11] [CLI] refactor: change effect schema to valibot (CDMD-2598) (#98) --- apps/cli/package.json | 1 - apps/cli/src/apis.ts | 4 +- apps/cli/src/buildArgumentRecord.ts | 6 +- apps/cli/src/buildCodemodOptions.ts | 12 ++-- apps/cli/src/codemod.ts | 16 ++--- apps/cli/src/constants.ts | 4 +- apps/cli/src/downloadCodemod.ts | 4 +- apps/cli/src/mainThreadMessages.ts | 46 ++++++++------ apps/cli/src/repositoryConfiguration.ts | 43 +++++++------ apps/cli/src/runJscodeshiftCodemod.ts | 4 +- apps/cli/src/runTsMorphCodemod.ts | 4 +- apps/cli/src/safeArgumentRecord.ts | 2 +- apps/cli/src/schemata/argumentRecordSchema.ts | 10 +-- apps/cli/src/schemata/argumentsSchema.ts | 44 ++++++++----- apps/cli/src/schemata/codemodConfigSchema.ts | 62 ++++++++++--------- .../cli/src/schemata/codemodSettingsSchema.ts | 43 +++++++------ apps/cli/src/schemata/consoleKindSchema.ts | 23 +++---- apps/cli/src/schemata/flowSettingsSchema.ts | 45 ++++++++------ .../cli/src/schemata/runArgvSettingsSchema.ts | 18 +++--- apps/cli/src/workerThreadMessages.ts | 41 +++++++----- biome.json | 2 +- pnpm-lock.yaml | 23 +------ 22 files changed, 247 insertions(+), 210 deletions(-) diff --git a/apps/cli/package.json b/apps/cli/package.json index b024a1d57..6e8d4e70f 100644 --- a/apps/cli/package.json +++ b/apps/cli/package.json @@ -35,7 +35,6 @@ "@biomejs/biome": "1.5.3", "@codemod-com/filemod": "workspace:*", "@codemod-com/utilities": "workspace:*", - "@effect/schema": "0.27.0", "@svgr/hast-util-to-babel-ast": "^7.0.0", "@types/babel__traverse": "^7.20.1", "@types/columnify": "^1.5.4", diff --git a/apps/cli/src/apis.ts b/apps/cli/src/apis.ts index a52ae47a4..8968b5b38 100644 --- a/apps/cli/src/apis.ts +++ b/apps/cli/src/apis.ts @@ -1,6 +1,6 @@ import Axios from "axios"; import type FormData from "form-data"; -import { type Input, nullable, object, parse, string } from "valibot"; +import { type Output, nullable, object, parse, string } from "valibot"; const X_CODEMOD_ACCESS_TOKEN = "X-Codemod-Access-Token".toLocaleLowerCase(); @@ -8,7 +8,7 @@ const dataSchema = object({ username: nullable(string()), }); -type Data = Input; +type Data = Output; export const validateAccessToken = async ( accessToken: string, diff --git a/apps/cli/src/buildArgumentRecord.ts b/apps/cli/src/buildArgumentRecord.ts index 494fc61cf..a11992b12 100644 --- a/apps/cli/src/buildArgumentRecord.ts +++ b/apps/cli/src/buildArgumentRecord.ts @@ -1,4 +1,4 @@ -import * as S from "@effect/schema/Schema"; +import { is, number, string } from "valibot"; import { ArgumentRecord } from "./schemata/argumentRecordSchema.js"; export const buildArgumentRecord = ( @@ -14,12 +14,12 @@ export const buildArgumentRecord = ( const key = arg.slice(4); const value = argv[arg]; - if (S.is(S.number)(value)) { + if (is(number(), value)) { argumentRecord[key] = value; return; } - if (!S.is(S.string)(value)) { + if (!is(string(), value)) { return; } diff --git a/apps/cli/src/buildCodemodOptions.ts b/apps/cli/src/buildCodemodOptions.ts index 40e429e76..b087ca944 100644 --- a/apps/cli/src/buildCodemodOptions.ts +++ b/apps/cli/src/buildCodemodOptions.ts @@ -1,6 +1,6 @@ import path from "node:path"; -import * as S from "@effect/schema/Schema"; import { IFs } from "memfs"; +import { object, parse, string } from "valibot"; import { Codemod, JavaScriptCodemodEngine, @@ -17,11 +17,11 @@ const extractMainScriptRelativePath = async ( encoding: "utf-8", }); - const schema = S.struct({ - main: S.string, + const schema = object({ + main: string(), }); - const { main } = S.parseSync(schema)(JSON.parse(data.toString())); + const { main } = parse(schema, JSON.parse(data.toString())); return main; } catch { @@ -38,11 +38,11 @@ const extractEngine = async ( encoding: "utf-8", }); - const schema = S.struct({ + const schema = object({ engine: javaScriptCodemodEngineSchema, }); - const { engine } = S.parseSync(schema)(JSON.parse(data.toString())); + const { engine } = parse(schema, JSON.parse(data.toString())); return engine; } catch { diff --git a/apps/cli/src/codemod.ts b/apps/cli/src/codemod.ts index 1a8740545..65aefd0cb 100644 --- a/apps/cli/src/codemod.ts +++ b/apps/cli/src/codemod.ts @@ -1,14 +1,14 @@ -import * as S from "@effect/schema/Schema"; +import { type Output, literal, union } from "valibot"; import { Arguments } from "./schemata/argumentsSchema.js"; -export const javaScriptCodemodEngineSchema = S.union( - S.literal("jscodeshift"), - S.literal("repomod-engine"), - S.literal("filemod"), - S.literal("ts-morph"), -); +export const javaScriptCodemodEngineSchema = union([ + literal("jscodeshift"), + literal("repomod-engine"), + literal("filemod"), + literal("ts-morph"), +]); -export type JavaScriptCodemodEngine = S.To< +export type JavaScriptCodemodEngine = Output< typeof javaScriptCodemodEngineSchema >; diff --git a/apps/cli/src/constants.ts b/apps/cli/src/constants.ts index 1f69462bd..45b81a42e 100644 --- a/apps/cli/src/constants.ts +++ b/apps/cli/src/constants.ts @@ -1,5 +1,5 @@ -export const DEFAULT_INCLUDE_PATTERNS = ["**/*.*"] as const; -export const DEFAULT_EXCLUDE_PATTERNS = ["**/node_modules/**/*.*"] as const; +export const DEFAULT_INCLUDE_PATTERNS = ["**/*.*"]; +export const DEFAULT_EXCLUDE_PATTERNS = ["**/node_modules/**/*.*"]; export const DEFAULT_INPUT_DIRECTORY_PATH = process.cwd(); export const DEFAULT_FILE_LIMIT = 7_000; export const DEFAULT_DISABLE_PRETTIER = false; diff --git a/apps/cli/src/downloadCodemod.ts b/apps/cli/src/downloadCodemod.ts index 842b2db29..3413a14c7 100644 --- a/apps/cli/src/downloadCodemod.ts +++ b/apps/cli/src/downloadCodemod.ts @@ -1,8 +1,8 @@ import { createHash } from "node:crypto"; import { mkdir, writeFile } from "node:fs/promises"; import { join } from "node:path"; -import * as S from "@effect/schema/Schema"; import Axios from "axios"; +import { parse } from "valibot"; import { Codemod } from "./codemod.js"; import { FileDownloadServiceBlueprint } from "./fileDownloadService.js"; import { handleListNamesCommand } from "./handleListCliCommand.js"; @@ -106,7 +106,7 @@ export class CodemodDownloader implements CodemodDownloaderBlueprint { let config: CodemodConfig; try { - config = S.parseSync(codemodConfigSchema)(parsedConfig); + config = parse(codemodConfigSchema, parsedConfig); } catch (err) { throw new Error(`Error parsing config for codemod ${name}: ${err}`); } diff --git a/apps/cli/src/mainThreadMessages.ts b/apps/cli/src/mainThreadMessages.ts index d77e25bde..3c24e6c9d 100644 --- a/apps/cli/src/mainThreadMessages.ts +++ b/apps/cli/src/mainThreadMessages.ts @@ -1,25 +1,35 @@ -import * as S from "@effect/schema/Schema"; +import { + type Output, + array, + boolean, + literal, + object, + parse, + string, + union, +} from "valibot"; import { argumentRecordSchema } from "./schemata/argumentRecordSchema.js"; -const mainThreadMessageSchema = S.union( - S.struct({ - kind: S.literal("initialization"), - codemodPath: S.string, - codemodSource: S.string, - codemodEngine: S.union(S.literal("jscodeshift"), S.literal("ts-morph")), - disablePrettier: S.boolean, - safeArgumentRecord: S.tuple(argumentRecordSchema), +const mainThreadMessageSchema = union([ + object({ + kind: literal("initialization"), + codemodPath: string(), + codemodSource: string(), + codemodEngine: union([literal("jscodeshift"), literal("ts-morph")]), + disablePrettier: boolean(), + safeArgumentRecord: array(argumentRecordSchema), }), - S.struct({ - kind: S.literal("exit"), + object({ + kind: literal("exit"), }), - S.struct({ - kind: S.literal("runCodemod"), - path: S.string, - data: S.string, + object({ + kind: literal("runCodemod"), + path: string(), + data: string(), }), -); +]); -export type MainThreadMessage = S.To; +export type MainThreadMessage = Output; -export const decodeMainThreadMessage = S.parseSync(mainThreadMessageSchema); +export const decodeMainThreadMessage = (input: unknown) => + parse(mainThreadMessageSchema, input); diff --git a/apps/cli/src/repositoryConfiguration.ts b/apps/cli/src/repositoryConfiguration.ts index becaabcc9..5ef8b9cb6 100644 --- a/apps/cli/src/repositoryConfiguration.ts +++ b/apps/cli/src/repositoryConfiguration.ts @@ -1,28 +1,35 @@ -import * as S from "@effect/schema/Schema"; import { cosmiconfig } from "cosmiconfig"; +import { + type Output, + array, + literal, + object, + optional, + parse, + string, + union, +} from "valibot"; import { argumentRecordSchema } from "./schemata/argumentRecordSchema.js"; -const preCommitCodemodSchema = S.union( - S.struct({ - source: S.literal("fileSystem"), - path: S.string, - arguments: S.optional(argumentRecordSchema).withDefault(() => ({})), +const preCommitCodemodSchema = union([ + object({ + source: literal("fileSystem"), + path: string(), + arguments: optional(argumentRecordSchema, {}), }), - S.struct({ - source: S.literal("registry"), - name: S.string, - arguments: S.optional(argumentRecordSchema).withDefault(() => ({})), + object({ + source: literal("registry"), + name: string(), + arguments: optional(argumentRecordSchema, {}), }), -); +]); -const repositoryConfigurationSchema = S.struct({ - schemaVersion: S.optional(S.literal("1.0.0")).withDefault(() => "1.0.0"), - preCommitCodemods: S.optional(S.array(preCommitCodemodSchema)).withDefault( - () => [], - ), +const repositoryConfigurationSchema = object({ + schemaVersion: optional(literal("1.0.0"), "1.0.0"), + preCommitCodemods: optional(array(preCommitCodemodSchema), []), }); -export type RepositoryConfiguration = S.To< +export type RepositoryConfiguration = Output< typeof repositoryConfigurationSchema >; @@ -30,7 +37,7 @@ export const parseRepositoryConfiguration = ( i: unknown, ): RepositoryConfiguration => { try { - return S.parseSync(repositoryConfigurationSchema)(i); + return parse(repositoryConfigurationSchema, i); } catch (error) { return { schemaVersion: "1.0.0", diff --git a/apps/cli/src/runJscodeshiftCodemod.ts b/apps/cli/src/runJscodeshiftCodemod.ts index 3a2e2e94a..9e57b233f 100644 --- a/apps/cli/src/runJscodeshiftCodemod.ts +++ b/apps/cli/src/runJscodeshiftCodemod.ts @@ -1,6 +1,6 @@ import vm from "node:vm"; -import * as S from "@effect/schema/Schema"; import jscodeshift, { API, FileInfo } from "jscodeshift"; +import { nullish, parse, string, union } from "valibot"; import { buildVmConsole } from "./buildVmConsole.js"; import { CONSOLE_OVERRIDE } from "./consoleOverride.js"; import type { FileCommand } from "./fileCommands.js"; @@ -65,7 +65,7 @@ const transform = ( const value = vm.runInContext(codeToExecute, context); - return S.parseSync(S.union(S.string, S.undefined, S.null))(value); + return parse(nullish(string()), value); }; export const runJscodeshiftCodemod = ( diff --git a/apps/cli/src/runTsMorphCodemod.ts b/apps/cli/src/runTsMorphCodemod.ts index 5e6bd340e..3c5a8ab4f 100644 --- a/apps/cli/src/runTsMorphCodemod.ts +++ b/apps/cli/src/runTsMorphCodemod.ts @@ -1,6 +1,6 @@ import vm from "node:vm"; -import * as S from "@effect/schema/Schema"; import tsmorph from "ts-morph"; +import { nullish, parse, string } from "valibot"; import { buildVmConsole } from "./buildVmConsole.js"; import { CONSOLE_OVERRIDE } from "./consoleOverride.js"; import type { FileCommand } from "./fileCommands.js"; @@ -69,7 +69,7 @@ const transform = ( const value = vm.runInContext(codeToExecute, context, { timeout: 30000 }); - return S.parseSync(S.union(S.string, S.undefined, S.null))(value); + return parse(nullish(string()), value); }; export const runTsMorphCodemod = ( diff --git a/apps/cli/src/safeArgumentRecord.ts b/apps/cli/src/safeArgumentRecord.ts index d090ca4f4..513a64cfd 100644 --- a/apps/cli/src/safeArgumentRecord.ts +++ b/apps/cli/src/safeArgumentRecord.ts @@ -2,7 +2,7 @@ import { Codemod } from "./codemod.js"; import { ArgumentRecord } from "./schemata/argumentRecordSchema.js"; import { Arguments } from "./schemata/argumentsSchema.js"; -export type SafeArgumentRecord = readonly [ArgumentRecord]; +export type SafeArgumentRecord = ArgumentRecord[]; export const buildSafeArgumentRecord = ( codemod: Codemod, diff --git a/apps/cli/src/schemata/argumentRecordSchema.ts b/apps/cli/src/schemata/argumentRecordSchema.ts index 7674c8347..8feaea5cb 100644 --- a/apps/cli/src/schemata/argumentRecordSchema.ts +++ b/apps/cli/src/schemata/argumentRecordSchema.ts @@ -1,8 +1,8 @@ -import * as S from "@effect/schema/Schema"; +import { type Output, boolean, number, record, string, union } from "valibot"; -export const argumentRecordSchema = S.record( - S.string, - S.union(S.string, S.number, S.boolean), +export const argumentRecordSchema = record( + string(), + union([string(), number(), boolean()]), ); -export type ArgumentRecord = S.To; +export type ArgumentRecord = Output; diff --git a/apps/cli/src/schemata/argumentsSchema.ts b/apps/cli/src/schemata/argumentsSchema.ts index cfd8bcd58..ebf3fe4ca 100644 --- a/apps/cli/src/schemata/argumentsSchema.ts +++ b/apps/cli/src/schemata/argumentsSchema.ts @@ -1,23 +1,33 @@ -import * as S from "@effect/schema/Schema"; +import { + type Output, + array, + boolean, + literal, + number, + object, + optional, + string, + union, +} from "valibot"; -export const argumentsSchema = S.array( - S.union( - S.struct({ - name: S.string, - kind: S.literal("string"), - default: S.optional(S.string), +export const argumentsSchema = array( + union([ + object({ + name: string(), + kind: literal("string"), + default: optional(string()), }), - S.struct({ - name: S.string, - kind: S.literal("number"), - default: S.optional(S.number), + object({ + name: string(), + kind: literal("number"), + default: optional(number()), }), - S.struct({ - name: S.string, - kind: S.literal("boolean"), - default: S.optional(S.boolean), + object({ + name: string(), + kind: literal("boolean"), + default: optional(boolean()), }), - ), + ]), ); -export type Arguments = S.To; +export type Arguments = Output; diff --git a/apps/cli/src/schemata/codemodConfigSchema.ts b/apps/cli/src/schemata/codemodConfigSchema.ts index fe87fd24f..c3791f2bb 100644 --- a/apps/cli/src/schemata/codemodConfigSchema.ts +++ b/apps/cli/src/schemata/codemodConfigSchema.ts @@ -1,9 +1,15 @@ -import * as S from "@effect/schema/Schema"; +import { + type Output, + array, + literal, + object, + optional, + string, + union, +} from "valibot"; import { argumentsSchema } from "./argumentsSchema.js"; -const optionalArgumentsSchema = S.optional(argumentsSchema).withDefault( - () => [], -); +const optionalArgumentsSchema = optional(argumentsSchema, []); const PIRANHA_LANGUAGES = [ "java", @@ -16,43 +22,43 @@ const PIRANHA_LANGUAGES = [ "scala", ] as const; -const piranhaLanguageSchema = S.union( - ...PIRANHA_LANGUAGES.map((language) => S.literal(language)), +const piranhaLanguageSchema = union( + PIRANHA_LANGUAGES.map((language) => literal(language)), ); -export const codemodConfigSchema = S.union( - S.struct({ - schemaVersion: S.literal("1.0.0"), - engine: S.literal("piranha"), +export const codemodConfigSchema = union([ + object({ + schemaVersion: literal("1.0.0"), + engine: literal("piranha"), language: piranhaLanguageSchema, arguments: optionalArgumentsSchema, }), - S.struct({ - schemaVersion: S.literal("1.0.0"), - engine: S.literal("jscodeshift"), + object({ + schemaVersion: literal("1.0.0"), + engine: literal("jscodeshift"), arguments: optionalArgumentsSchema, }), - S.struct({ - schemaVersion: S.literal("1.0.0"), - engine: S.literal("ts-morph"), + object({ + schemaVersion: literal("1.0.0"), + engine: literal("ts-morph"), arguments: optionalArgumentsSchema, }), - S.struct({ - schemaVersion: S.literal("1.0.0"), - engine: S.union(S.literal("repomod-engine"), S.literal("filemod")), + object({ + schemaVersion: literal("1.0.0"), + engine: union([literal("repomod-engine"), literal("filemod")]), arguments: optionalArgumentsSchema, }), - S.struct({ - schemaVersion: S.literal("1.0.0"), - engine: S.literal("recipe"), - names: S.array(S.string), + object({ + schemaVersion: literal("1.0.0"), + engine: literal("recipe"), + names: array(string()), arguments: optionalArgumentsSchema, }), - S.struct({ - schemaVersion: S.literal("1.0.0"), - engine: S.literal("ast-grep"), + object({ + schemaVersion: literal("1.0.0"), + engine: literal("ast-grep"), arguments: optionalArgumentsSchema, }), -); +]); -export type CodemodConfig = S.To; +export type CodemodConfig = Output; diff --git a/apps/cli/src/schemata/codemodSettingsSchema.ts b/apps/cli/src/schemata/codemodSettingsSchema.ts index 046b94970..3aaac504d 100644 --- a/apps/cli/src/schemata/codemodSettingsSchema.ts +++ b/apps/cli/src/schemata/codemodSettingsSchema.ts @@ -1,19 +1,26 @@ -import * as S from "@effect/schema/Schema"; - -const codemodEngineSchema = S.union( - S.literal("jscodeshift"), - S.literal("repomod-engine"), - S.literal("filemod"), - S.literal("ts-morph"), -); - -export const codemodSettingsSchema = S.union( - S.struct({ - _: S.array(S.string), - source: S.optional(S.string), - codemodEngine: S.optional(codemodEngineSchema), - }), -); +import { + type Output, + array, + literal, + object, + optional, + parse, + string, + union, +} from "valibot"; + +const codemodEngineSchema = union([ + literal("jscodeshift"), + literal("repomod-engine"), + literal("filemod"), + literal("ts-morph"), +]); + +export const codemodSettingsSchema = object({ + _: array(string()), + source: optional(string()), + codemodEngine: optional(codemodEngineSchema), +}); export type CodemodSettings = | Readonly<{ @@ -26,11 +33,11 @@ export type CodemodSettings = | Readonly<{ kind: "runSourced"; source: string; - codemodEngine: S.To | null; + codemodEngine: Output | null; }>; export const parseCodemodSettings = (input: unknown): CodemodSettings => { - const codemodSettings = S.parseSync(codemodSettingsSchema)(input); + const codemodSettings = parse(codemodSettingsSchema, input); if (codemodSettings._.includes("runOnPreCommit")) { return { diff --git a/apps/cli/src/schemata/consoleKindSchema.ts b/apps/cli/src/schemata/consoleKindSchema.ts index db674cd6b..a64accdb5 100644 --- a/apps/cli/src/schemata/consoleKindSchema.ts +++ b/apps/cli/src/schemata/consoleKindSchema.ts @@ -1,14 +1,15 @@ -import * as S from "@effect/schema/Schema"; +import { type Output, literal, parse, union } from "valibot"; -export const consoleKindSchema = S.union( - S.literal("debug"), - S.literal("error"), - S.literal("log"), - S.literal("info"), - S.literal("trace"), - S.literal("warn"), -); +export const consoleKindSchema = union([ + literal("debug"), + literal("error"), + literal("log"), + literal("info"), + literal("trace"), + literal("warn"), +]); -export const parseConsoleKind = S.parseSync(consoleKindSchema); +export const parseConsoleKind = (input: unknown) => + parse(consoleKindSchema, input); -export type ConsoleKind = S.To; +export type ConsoleKind = Output; diff --git a/apps/cli/src/schemata/flowSettingsSchema.ts b/apps/cli/src/schemata/flowSettingsSchema.ts index 992573eaf..869018557 100644 --- a/apps/cli/src/schemata/flowSettingsSchema.ts +++ b/apps/cli/src/schemata/flowSettingsSchema.ts @@ -1,4 +1,15 @@ -import * as S from "@effect/schema/Schema"; +import { + type Output, + array, + boolean, + integer, + minValue, + number, + object, + optional, + parse, + string, +} from "valibot"; import { DEFAULT_DISABLE_PRETTIER, DEFAULT_EXCLUDE_PATTERNS, @@ -10,31 +21,25 @@ import { DEFAULT_USE_JSON, } from "../constants.js"; -export const flowSettingsSchema = S.struct({ - include: S.optional(S.array(S.string)).withDefault( - () => DEFAULT_INCLUDE_PATTERNS, - ), - exclude: S.optional(S.array(S.string)).withDefault( - () => DEFAULT_EXCLUDE_PATTERNS, - ), - target: S.optional(S.string), - files: S.optional(S.array(S.string)), - limit: S.optional(S.number.pipe(S.int()).pipe(S.positive())).withDefault( - () => DEFAULT_FILE_LIMIT, - ), - raw: S.optional(S.boolean).withDefault(() => DEFAULT_DISABLE_PRETTIER), - "no-cache": S.optional(S.boolean).withDefault(() => DEFAULT_NO_CACHE), - noCache: S.optional(S.boolean).withDefault(() => DEFAULT_NO_CACHE), - json: S.optional(S.boolean).withDefault(() => DEFAULT_USE_JSON), - threads: S.optional(S.number).withDefault(() => DEFAULT_THREAD_COUNT), +export const flowSettingsSchema = object({ + include: optional(array(string()), DEFAULT_INCLUDE_PATTERNS), + exclude: optional(array(string()), DEFAULT_EXCLUDE_PATTERNS), + target: optional(string()), + files: optional(array(string())), + limit: optional(number([minValue(0), integer()]), DEFAULT_FILE_LIMIT), + raw: optional(boolean(), DEFAULT_DISABLE_PRETTIER), + "no-cache": optional(boolean(), DEFAULT_NO_CACHE), + noCache: optional(boolean(), DEFAULT_NO_CACHE), + json: optional(boolean(), DEFAULT_USE_JSON), + threads: optional(number([minValue(0)]), DEFAULT_THREAD_COUNT), }); -export type FlowSettings = Omit, "target"> & { +export type FlowSettings = Omit, "target"> & { target: string; }; export const parseFlowSettings = (input: unknown): FlowSettings => { - const flowSettings = S.parseSync(flowSettingsSchema)(input); + const flowSettings = parse(flowSettingsSchema, input); return { ...flowSettings, diff --git a/apps/cli/src/schemata/runArgvSettingsSchema.ts b/apps/cli/src/schemata/runArgvSettingsSchema.ts index eba527aa9..844fe7812 100644 --- a/apps/cli/src/schemata/runArgvSettingsSchema.ts +++ b/apps/cli/src/schemata/runArgvSettingsSchema.ts @@ -1,16 +1,16 @@ import { randomBytes } from "node:crypto"; import { join } from "node:path"; -import * as S from "@effect/schema/Schema"; +import { literal, object, optional, parse, string, union } from "valibot"; -const runArgvSettingsSchema = S.union( - S.struct({ - dry: S.optional(S.literal(false)).withDefault(() => false), +const runArgvSettingsSchema = union([ + object({ + dry: optional(literal(false), false), }), - S.struct({ - dry: S.literal(true), - output: S.optional(S.string), + object({ + dry: literal(true), + output: optional(string()), }), -); +]); export type RunSettings = | Readonly<{ @@ -30,7 +30,7 @@ export const parseRunSettings = ( ): RunSettings => { const caseHashDigest = randomBytes(20); - const flowSettings = S.parseSync(runArgvSettingsSchema)(input); + const flowSettings = parse(runArgvSettingsSchema, input); if (flowSettings.dry === false) { return { diff --git a/apps/cli/src/workerThreadMessages.ts b/apps/cli/src/workerThreadMessages.ts index 4538ef185..ea3b737cb 100644 --- a/apps/cli/src/workerThreadMessages.ts +++ b/apps/cli/src/workerThreadMessages.ts @@ -1,23 +1,34 @@ -import * as S from "@effect/schema/Schema"; +import { + type Output, + literal, + nullish, + object, + optional, + parse, + string, + union, + unknown, +} from "valibot"; import { consoleKindSchema } from "./schemata/consoleKindSchema.js"; -const workerThreadMessageSchema = S.union( - S.struct({ - kind: S.literal("commands"), - commands: S.unknown, +const workerThreadMessageSchema = union([ + object({ + kind: literal("commands"), + commands: unknown(), }), - S.struct({ - kind: S.literal("error"), - message: S.string, - path: S.union(S.string, S.undefined), + object({ + kind: literal("error"), + message: string(), + path: optional(string()), }), - S.struct({ - kind: S.literal("console"), + object({ + kind: literal("console"), consoleKind: consoleKindSchema, - message: S.string, + message: string(), }), -); +]); -export type WorkerThreadMessage = S.To; +export type WorkerThreadMessage = Output; -export const decodeWorkerThreadMessage = S.parseSync(workerThreadMessageSchema); +export const decodeWorkerThreadMessage = (input: unknown) => + parse(workerThreadMessageSchema, input); diff --git a/biome.json b/biome.json index 95593a6e7..f938a43b3 100644 --- a/biome.json +++ b/biome.json @@ -110,6 +110,6 @@ ] }, "organizeImports": { - "ignore": ["node_modules", "dist", "build", ".next", ".vscode"] + "ignore": ["node_modules", "dist", "build", ".next", ".vscode", "build-ncc"] } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 854c57931..a0ea19cee 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -75,9 +75,6 @@ importers: '@codemod-com/utilities': specifier: workspace:* version: link:../../packages/utilities - '@effect/schema': - specifier: 0.27.0 - version: 0.27.0 '@svgr/hast-util-to-babel-ast': specifier: ^7.0.0 version: 7.0.0 @@ -7846,20 +7843,10 @@ packages: engines: {node: '>=10.0.0'} dev: true - /@effect/data@0.15.1: - resolution: {integrity: sha512-dYe3GL2Lq8M56Q+QvEOPRtpRovhy1QprlBRGIjaCRPZ8DbwRFQZSdPPOL+ZX6e7y3DPF0RW+DFLHYRMA6qGOCw==} - dev: true - /@effect/data@0.17.6: resolution: {integrity: sha512-/vwz7Jh05eS0qY8kczR/YyJd18d0C+PMtUkAealh4f6gwvhABLGCnktNJTcq/+UHxY0Cbv18r5uaJ4+7PPC+WQ==} dev: false - /@effect/io@0.33.0: - resolution: {integrity: sha512-CwEiAKLZG368t2lNti7u3sX2wi0SS5c+Z0Xb3QVE0fA0WoRidNqlVwzvjMyUqYW6Rtwn0vCqyhAsfK3YVze5FQ==} - dependencies: - '@effect/data': 0.15.1 - dev: true - /@effect/io@0.38.2(@effect/data@0.17.6): resolution: {integrity: sha512-rnAXFo9BDLbY7DgQE1e8uP/sEniyVCsB7gNs+yXPu0XK9s4kaGinH6XgwYRDBuu7Fu1tQ1yd7JoAdEb7yutNRg==} peerDependencies: @@ -7868,14 +7855,6 @@ packages: '@effect/data': 0.17.6 dev: false - /@effect/schema@0.27.0: - resolution: {integrity: sha512-NS0Fm12XsvQqYhgX7piBQxHT/XOOwQpwSwriPk9GXLJxCDmMcYsHSdG+2J2pWqoZ58Z+dZptxzrceiwt7yVcaw==} - dependencies: - '@effect/data': 0.15.1 - '@effect/io': 0.33.0 - fast-check: 3.15.1 - dev: true - /@effect/schema@0.33.2(@effect/data@0.17.6)(@effect/io@0.38.2): resolution: {integrity: sha512-GfV4kXAs4tkx09bGD6J4RDqVN+xea4UP0I05r1wloox6j0eYgXYaSKAXAZ7qBKVywkba3cDUDZhc9nplAD8TAA==} peerDependencies: @@ -17116,6 +17095,7 @@ packages: engines: {node: '>=8.0.0'} dependencies: pure-rand: 6.0.4 + dev: false /fast-content-type-parse@1.1.0: resolution: {integrity: sha512-fBHHqSTFLVnR61C+gltJuE5GkVQMV0S2nqUO8TJ+5Z3qAKG8vAx4FKai1s5jq/inV1+sREynIWSuQ6HgoSXpDQ==} @@ -23324,6 +23304,7 @@ packages: /pure-rand@6.0.4: resolution: {integrity: sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==} + dev: false /pvtsutils@1.3.5: resolution: {integrity: sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA==} From 66466fe382027cac681e1113856d90fee2e3fbcd Mon Sep 17 00:00:00 2001 From: Benny Joo Date: Mon, 4 Mar 2024 16:37:23 +0000 Subject: [PATCH 02/11] CDMD-2562 Off-load most data from README.md files (#111) --- .github/workflows/sync.yml | 32 -- .../{README.md => .codemod/DESCRIPTION.md} | 28 +- .../{ => .codemod}/config.json | 12 +- .../remove-unused-feature-flags/package.json | 7 +- .../config.json | 12 +- .../package.json | 2 +- .../.codemod/DESCRIPTION.md | 0 .../delete-unused-fields/.codemod/config.json | 13 + .../Java/delete-unused-fields/config.json | 7 - .../Java/delete-unused-fields/package.json | 2 +- .../.codemod/DESCRIPTION.md | 31 ++ .../.codemod/config.json | 15 + .../antd/5/props-changed-migration/README.md | 61 --- .../5/props-changed-migration/config.json | 1 - .../5/props-changed-migration/package.json | 7 +- .../.codemod/DESCRIPTION.md | 24 + .../remove-style-import/.codemod/config.json | 15 + .../antd/5/remove-style-import/README.md | 54 -- .../antd/5/remove-style-import/config.json | 1 - .../antd/5/remove-style-import/package.json | 7 +- .../.codemod/DESCRIPTION.md | 22 + .../.codemod/config.json | 15 + .../5/removed-component-migration/README.md | 52 -- .../5/removed-component-migration/config.json | 1 - .../removed-component-migration/package.json | 7 +- .../{README.md => .codemod/DESCRIPTION.md} | 32 +- .../.codemod/config.json | 15 + .../config.json | 1 - .../package.json | 7 +- .../{README.md => .codemod/DESCRIPTION.md} | 28 +- .../codemods/bull/bullmq/.codemod/config.json | 12 + .../registry/codemods/bull/bullmq/config.json | 5 - .../codemods/bull/bullmq/package.json | 7 +- .../{README.md => .codemod/DESCRIPTION.md} | 32 +- .../.codemod/config.json | 14 + .../config.json | 8 - .../package.json | 7 +- .../.codemod/DESCRIPTION.md | 7 + .../.codemod/config.json | 19 + .../generate-metadata-tests-calcom/README.md | 33 -- .../config.json | 11 - .../package.json | 7 +- .../.codemod/DESCRIPTION.md | 5 + .../{ => .codemod}/config.json | 12 +- .../cal.com/generate-url-patterns/README.md | 31 -- .../generate-url-patterns/package.json | 7 +- .../{README.md => .codemod/DESCRIPTION.md} | 32 +- .../.codemod/config.json | 15 + .../5/app-controller-router-props/config.json | 7 - .../app-controller-router-props/package.json | 7 +- .../5/array-wrapper/.codemod/DESCRIPTION.md | 23 + .../5/array-wrapper/.codemod/config.json | 15 + .../codemods/ember/5/array-wrapper/README.md | 53 -- .../ember/5/array-wrapper/config.json | 7 - .../ember/5/array-wrapper/package.json | 7 +- .../{README.md => .codemod/DESCRIPTION.md} | 32 +- .../.codemod/config.json | 15 + .../config.json | 7 - .../package.json | 7 +- .../{README.md => .codemod/DESCRIPTION.md} | 32 +- .../5/cp-property-map/.codemod/config.json | 15 + .../ember/5/cp-property-map/config.json | 7 - .../ember/5/cp-property-map/package.json | 7 +- .../{README.md => .codemod/DESCRIPTION.md} | 30 -- .../ember/5/cp-property/.codemod/config.json | 15 + .../codemods/ember/5/cp-property/config.json | 7 - .../codemods/ember/5/cp-property/package.json | 7 +- .../5/cp-volatile/.codemod/DESCRIPTION.md | 27 + .../ember/5/cp-volatile/.codemod/config.json | 15 + .../codemods/ember/5/cp-volatile/README.md | 57 --- .../codemods/ember/5/cp-volatile/config.json | 7 - .../codemods/ember/5/cp-volatile/package.json | 7 +- .../5/deprecate-merge/.codemod/DESCRIPTION.md | 27 + .../5/deprecate-merge/.codemod/config.json | 15 + .../ember/5/deprecate-merge/README.md | 57 --- .../ember/5/deprecate-merge/config.json | 7 - .../ember/5/deprecate-merge/package.json | 7 +- .../{README.md => .codemod/DESCRIPTION.md} | 30 -- .../.codemod/config.json | 15 + .../5/deprecate-router-events/config.json | 7 - .../5/deprecate-router-events/package.json | 7 +- .../{README.md => .codemod/DESCRIPTION.md} | 30 -- .../ember-jquery-legacy/.codemod/config.json | 15 + .../ember/5/ember-jquery-legacy/config.json | 7 - .../ember/5/ember-jquery-legacy/package.json | 7 +- .../{README.md => .codemod/DESCRIPTION.md} | 30 -- .../.codemod/config.json | 15 + .../5/es5-getter-ember-codemod/config.json | 7 - .../5/es5-getter-ember-codemod/package.json | 7 +- .../{README.md => .codemod/DESCRIPTION.md} | 30 -- .../ember/5/fpe-computed/.codemod/config.json | 15 + .../codemods/ember/5/fpe-computed/config.json | 7 - .../ember/5/fpe-computed/package.json | 7 +- .../5/fpe-observes/.codemod/DESCRIPTION.md | 29 ++ .../ember/5/fpe-observes/.codemod/config.json | 15 + .../codemods/ember/5/fpe-observes/README.md | 59 --- .../codemods/ember/5/fpe-observes/config.json | 7 - .../ember/5/fpe-observes/package.json | 7 +- .../{README.md => .codemod/DESCRIPTION.md} | 30 -- .../ember/5/fpe-on/.codemod/config.json | 15 + .../codemods/ember/5/fpe-on/config.json | 7 - .../codemods/ember/5/fpe-on/package.json | 7 +- .../{README.md => .codemod/DESCRIPTION.md} | 30 -- .../ember/5/jquery-apis/.codemod/config.json | 15 + .../codemods/ember/5/jquery-apis/config.json | 7 - .../codemods/ember/5/jquery-apis/package.json | 7 +- .../{README.md => .codemod/DESCRIPTION.md} | 30 -- .../ember/5/jquery-event/.codemod/config.json | 15 + .../codemods/ember/5/jquery-event/config.json | 7 - .../ember/5/jquery-event/package.json | 7 +- .../{README.md => .codemod/DESCRIPTION.md} | 30 -- .../.codemod/config.json | 15 + .../5/notify-property-change/config.json | 7 - .../5/notify-property-change/package.json | 7 +- .../{README.md => .codemod/DESCRIPTION.md} | 30 -- .../.codemod/config.json | 15 + .../5/object-new-constructor/config.json | 7 - .../5/object-new-constructor/package.json | 7 +- .../{README.md => .codemod/DESCRIPTION.md} | 38 +- .../biome/migrate-rules/.codemod/config.json | 13 + .../eslint/biome/migrate-rules/config.json | 4 - .../eslint/biome/migrate-rules/package.json | 7 +- .../eslint/biome/migrate-rules/test/test.ts | 4 +- .../{README.md => .codemod/DESCRIPTION.md} | 28 +- .../codemods/i18n/.codemod/config.json | 14 + apps/registry/codemods/i18n/config.json | 8 - apps/registry/codemods/i18n/package.json | 7 +- .../.codemod/DESCRIPTION.md | 0 .../.codemod/config.json | 15 + .../0/add-deprecation-comment/config.json | 8 - .../0/add-deprecation-comment/package.json | 7 +- .../0/nest-from-js/.codemod/DESCRIPTION.md | 0 .../0/nest-from-js/.codemod/config.json | 15 + .../immutable/0/nest-from-js/config.json | 8 - .../immutable/0/nest-from-js/package.json | 7 +- .../0/remove-from-js/.codemod/DESCRIPTION.md | 0 .../0/remove-from-js/.codemod/config.json | 15 + .../immutable/0/remove-from-js/config.json | 8 - .../immutable/0/remove-from-js/package.json | 7 +- .../0/remove-import/.codemod/DESCRIPTION.md | 0 .../0/remove-import/.codemod/config.json | 15 + .../immutable/0/remove-import/config.json | 8 - .../immutable/0/remove-import/package.json | 7 +- .../0/remove-to-js/.codemod/DESCRIPTION.md | 0 .../0/remove-to-js/.codemod/config.json | 15 + .../immutable/0/remove-to-js/config.json | 8 - .../immutable/0/remove-to-js/package.json | 7 +- .../0/replace-get-in/.codemod/DESCRIPTION.md | 0 .../0/replace-get-in/.codemod/config.json | 15 + .../immutable/0/replace-get-in/config.json | 8 - .../immutable/0/replace-get-in/package.json | 7 +- .../0/replace-get/.codemod/DESCRIPTION.md | 0 .../0/replace-get/.codemod/config.json | 15 + .../immutable/0/replace-get/config.json | 8 - .../immutable/0/replace-get/package.json | 7 +- .../0/replace-merge/.codemod/DESCRIPTION.md | 0 .../0/replace-merge/.codemod/config.json | 15 + .../immutable/0/replace-merge/config.json | 8 - .../immutable/0/replace-merge/package.json | 7 +- .../0/replace-set-in/.codemod/DESCRIPTION.md | 0 .../0/replace-set-in/.codemod/config.json | 15 + .../immutable/0/replace-set-in/config.json | 8 - .../immutable/0/replace-set-in/package.json | 7 +- .../0/replace-set/.codemod/DESCRIPTION.md | 0 .../0/replace-set/.codemod/config.json | 15 + .../immutable/0/replace-set/config.json | 8 - .../immutable/0/replace-set/package.json | 7 +- .../.codemod/DESCRIPTION.md | 0 .../.codemod/config.json | 15 + .../4/isterable-to-iscollection/config.json | 8 - .../4/isterable-to-iscollection/package.json | 7 +- .../4/map-to-array/.codemod/DESCRIPTION.md | 0 .../4/map-to-array/.codemod/config.json | 15 + .../immutable/4/map-to-array/config.json | 8 - .../immutable/4/map-to-array/package.json | 7 +- .../4/rename-to-seq/.codemod/DESCRIPTION.md | 0 .../4/rename-to-seq/.codemod/config.json | 15 + .../immutable/4/rename-to-seq/config.json | 8 - .../immutable/4/rename-to-seq/package.json | 7 +- .../.codemod/DESCRIPTION.md | 0 .../.codemod/config.json | 10 + .../migrate-codemod-registry/config.json | 4 - .../migrate-codemod-registry/package.json | 7 +- .../migrate-codemod-registry/src/index.ts | 2 +- .../jest/vitest/.codemod/DESCRIPTION.md | 5 + .../codemods/jest/vitest/.codemod/config.json | 12 + apps/registry/codemods/jest/vitest/README.md | 45 -- .../registry/codemods/jest/vitest/config.json | 5 - .../codemods/jest/vitest/package.json | 7 +- .../{README.md => .codemod/DESCRIPTION.md} | 32 +- .../.codemod/config.json | 13 + .../vitest/migrate-configuration/config.json | 4 - .../vitest/migrate-configuration/package.json | 7 +- .../vitest/migrate-configuration/test/test.ts | 4 +- .../migrate-tests/.codemod/DESCRIPTION.md | 31 ++ .../vitest/migrate-tests/.codemod/config.json | 13 + .../mocha/vitest/migrate-tests/README.md | 59 --- .../mocha/vitest/migrate-tests/config.json | 5 - .../mocha/vitest/migrate-tests/package.json | 7 +- .../{README.md => .codemod/DESCRIPTION.md} | 24 +- .../mocha/vitest/recipe/.codemod/config.json | 13 + .../codemods/mocha/vitest/recipe/config.json | 5 - .../codemods/mocha/vitest/recipe/package.json | 2 +- .../{README.md => .codemod/DESCRIPTION.md} | 32 +- .../2/callback-signature/.codemod/config.json | 13 + .../msw/2/callback-signature/config.json | 5 - .../msw/2/callback-signature/package.json | 7 +- .../{README.md => .codemod/DESCRIPTION.md} | 30 -- .../msw/2/ctx-fetch/.codemod/config.json | 13 + .../codemods/msw/2/ctx-fetch/config.json | 5 - .../codemods/msw/2/ctx-fetch/package.json | 7 +- .../{README.md => .codemod/DESCRIPTION.md} | 30 -- .../msw/2/imports/.codemod/config.json | 13 + .../codemods/msw/2/imports/config.json | 5 - .../codemods/msw/2/imports/package.json | 7 +- .../.codemod/DESCRIPTION.md | 23 + .../.codemod/config.json | 13 + .../2/lifecycle-events-signature/README.md | 53 -- .../2/lifecycle-events-signature/config.json | 5 - .../2/lifecycle-events-signature/package.json | 7 +- .../2/print-handler/.codemod/DESCRIPTION.md | 21 + .../msw/2/print-handler/.codemod/config.json | 13 + .../codemods/msw/2/print-handler/README.md | 51 -- .../codemods/msw/2/print-handler/config.json | 5 - .../codemods/msw/2/print-handler/package.json | 7 +- .../2/req-passthrough/.codemod/DESCRIPTION.md | 25 + .../2/req-passthrough/.codemod/config.json | 13 + .../codemods/msw/2/req-passthrough/README.md | 55 -- .../msw/2/req-passthrough/config.json | 5 - .../msw/2/req-passthrough/package.json | 7 +- .../{README.md => .codemod/DESCRIPTION.md} | 30 -- .../2/request-changes/.codemod/config.json | 13 + .../msw/2/request-changes/config.json | 5 - .../msw/2/request-changes/package.json | 7 +- .../{README.md => .codemod/DESCRIPTION.md} | 30 -- .../2/response-usages/.codemod/config.json | 13 + .../msw/2/response-usages/config.json | 5 - .../msw/2/response-usages/package.json | 7 +- .../{README.md => .codemod/DESCRIPTION.md} | 26 - .../msw/2/type-args/.codemod/config.json | 13 + .../codemods/msw/2/type-args/config.json | 5 - .../codemods/msw/2/type-args/package.json | 7 +- .../{README.md => .codemod/DESCRIPTION.md} | 28 - .../upgrade-recipe/{ => .codemod}/config.json | 12 +- .../msw/2/upgrade-recipe/package.json | 2 +- .../{README.md => .codemod/DESCRIPTION.md} | 28 +- .../5/core-styles-import/.codemod/config.json | 13 + .../mui/5/core-styles-import/config.json | 5 - .../mui/5/core-styles-import/package.json | 7 +- .../{README.md => .codemod/DESCRIPTION.md} | 30 -- .../addBuildEventContext/.codemod/config.json | 13 + .../0.8.1/addBuildEventContext/config.json | 5 - .../0.8.1/addBuildEventContext/package.json | 7 +- .../{README.md => .codemod/DESCRIPTION.md} | 30 -- .../addBuildEventHandler/.codemod/config.json | 13 + .../0.8.1/addBuildEventHandler/config.json | 5 - .../0.8.1/addBuildEventHandler/package.json | 7 +- .../.codemod/DESCRIPTION.md | 19 + .../.codemod/config.json | 13 + .../0.8.1/disableBuildEventHandlers/README.md | 49 -- .../disableBuildEventHandlers/config.json | 5 - .../disableBuildEventHandlers/package.json | 7 +- .../.codemod/DESCRIPTION.md | 19 + .../.codemod/config.json | 13 + .../0.8.1/enableBuildEventHandlers/README.md | 49 -- .../enableBuildEventHandlers/config.json | 5 - .../enableBuildEventHandlers/package.json | 7 +- .../0.8.1/exportZod/.codemod/DESCRIPTION.md | 19 + .../0.8.1/exportZod/.codemod/config.json | 13 + .../netlify-sdk/0.8.1/exportZod/README.md | 49 -- .../netlify-sdk/0.8.1/exportZod/config.json | 5 - .../netlify-sdk/0.8.1/exportZod/package.json | 7 +- .../{README.md => .codemod/DESCRIPTION.md} | 30 -- .../0.8.4/addApiHandler/.codemod/config.json | 13 + .../0.8.4/addApiHandler/config.json | 5 - .../0.8.4/addApiHandler/package.json | 7 +- .../.codemod/DESCRIPTION.md | 24 + .../.codemod/config.json | 13 + .../0.8.5/createEnvironmentVariable/README.md | 54 -- .../createEnvironmentVariable/config.json | 5 - .../createEnvironmentVariable/package.json | 7 +- .../.codemod/DESCRIPTION.md | 24 + .../.codemod/config.json | 13 + .../0.8.5/createOrUpdateVariable/README.md | 54 -- .../0.8.5/createOrUpdateVariable/config.json | 5 - .../0.8.5/createOrUpdateVariable/package.json | 7 +- .../.codemod/DESCRIPTION.md | 23 + .../.codemod/config.json | 13 + .../0.8.5/createOrUpdateVariables/README.md | 53 -- .../0.8.5/createOrUpdateVariables/config.json | 5 - .../createOrUpdateVariables/package.json | 7 +- .../.codemod/DESCRIPTION.md | 23 + .../.codemod/config.json | 13 + .../0.8.5/deleteEnvironmentVariable/README.md | 53 -- .../deleteEnvironmentVariable/config.json | 5 - .../deleteEnvironmentVariable/package.json | 7 +- .../.codemod/DESCRIPTION.md | 23 + .../.codemod/config.json | 13 + .../deleteEnvironmentVariables/README.md | 53 -- .../deleteEnvironmentVariables/config.json | 5 - .../deleteEnvironmentVariables/package.json | 7 +- .../.codemod/DESCRIPTION.md | 22 + .../.codemod/config.json | 13 + .../0.8.5/getEnvironmentVariables/README.md | 52 -- .../0.8.5/getEnvironmentVariables/config.json | 5 - .../getEnvironmentVariables/package.json | 7 +- .../{README.md => .codemod/DESCRIPTION.md} | 26 - .../{ => .codemod}/config.json | 12 +- .../netlify-sdk-0.8.5-recipe/package.json | 2 +- .../{README.md => .codemod/DESCRIPTION.md} | 30 -- .../.codemod/config.json | 13 + .../patchEnvironmentVariable/config.json | 5 - .../patchEnvironmentVariable/package.json | 7 +- .../.codemod/DESCRIPTION.md | 24 + .../.codemod/config.json | 13 + .../0.8.5/updateEnvironmentVariable/README.md | 54 -- .../updateEnvironmentVariable/config.json | 5 - .../updateEnvironmentVariable/package.json | 7 +- .../{README.md => .codemod/DESCRIPTION.md} | 28 +- .../copy-keys/{ => .codemod}/config.json | 13 +- .../next-i18next/copy-keys/package.json | 7 +- .../next/13/ab-test/.codemod/DESCRIPTION.md | 5 + .../next/13/ab-test/.codemod/config.json | 13 + .../codemods/next/13/ab-test/README.md | 31 -- .../codemods/next/13/ab-test/config.json | 5 - .../codemods/next/13/ab-test/package.json | 7 +- .../{README.md => .codemod/DESCRIPTION.md} | 30 -- .../.codemod/config.json | 14 + .../13/app-directory-boilerplate/config.json | 8 - .../13/app-directory-boilerplate/package.json | 7 +- .../{README.md => .codemod/DESCRIPTION.md} | 26 - .../{ => .codemod}/config.json | 11 +- .../next/13/app-router-recipe/package.json | 2 +- .../.codemod/DESCRIPTION.md | 21 + .../{ => .codemod}/config.json | 17 +- .../next/13/built-in-next-font/README.md | 52 -- .../next/13/built-in-next-font/package.json | 7 +- .../{README.md => .codemod/DESCRIPTION.md} | 28 +- .../.codemod/config.json | 15 + .../13/comment-deletable-files/config.json | 14 - .../13/comment-deletable-files/package.json | 7 +- .../{README.md => .codemod/DESCRIPTION.md} | 30 -- .../{ => .codemod}/config.json | 17 +- .../13/move-css-in-js-styles/package.json | 7 +- .../{README.md => .codemod/DESCRIPTION.md} | 30 -- .../{ => .codemod}/config.json | 17 +- .../13/new-image-experimental/package.json | 7 +- .../{README.md => .codemod/DESCRIPTION.md} | 0 .../next/13/new-link/.codemod/config.json | 15 + .../codemods/next/13/new-link/config.json | 14 - .../codemods/next/13/new-link/package.json | 7 +- .../{README.md => .codemod/DESCRIPTION.md} | 30 -- .../{ => .codemod}/config.json | 17 +- .../next-image-to-legacy-image/package.json | 7 +- .../{README.md => .codemod/DESCRIPTION.md} | 0 .../{ => .codemod}/config.json | 17 +- .../13/remove-get-static-props/package.json | 7 +- .../{README.md => .codemod/DESCRIPTION.md} | 30 -- .../remove-next-export/.codemod/config.json | 14 + .../next/13/remove-next-export/config.json | 8 - .../next/13/remove-next-export/package.json | 7 +- .../next/13/remove-next-export/test/test.ts | 8 +- .../.codemod/DESCRIPTION.md | 5 + .../replace-api-routes/.codemod/config.json | 14 + .../next/13/replace-api-routes/README.md | 37 -- .../next/13/replace-api-routes/config.json | 8 - .../next/13/replace-api-routes/package.json | 7 +- .../{README.md => .codemod/DESCRIPTION.md} | 30 -- .../13/replace-next-head/.codemod/config.json | 14 + .../next/13/replace-next-head/config.json | 8 - .../next/13/replace-next-head/package.json | 7 +- .../{README.md => .codemod/DESCRIPTION.md} | 26 - .../{ => .codemod}/config.json | 12 +- .../next/13/replace-next-router/package.json | 7 +- .../{README.md => .codemod/DESCRIPTION.md} | 0 .../{ => .codemod}/config.json | 17 +- .../13/replace-use-search-params/package.json | 7 +- .../{README.md => .codemod/DESCRIPTION.md} | 26 - .../.codemod/config.json | 13 + .../upsert-use-client-directive/config.json | 4 - .../upsert-use-client-directive/package.json | 7 +- .../.codemod/DESCRIPTION.md | 32 ++ .../.codemod/config.json | 15 + .../14/metadata-to-viewport-export/README.md | 62 --- .../metadata-to-viewport-export/config.json | 14 - .../metadata-to-viewport-export/package.json | 7 +- .../14/next-og-import/.codemod/DESCRIPTION.md | 19 + .../next-og-import/{ => .codemod}/config.json | 17 +- .../codemods/next/14/next-og-import/README.md | 49 -- .../next/14/next-og-import/package.json | 7 +- .../codemods/pull_request_template.md | 2 +- .../0/add-state-type/.codemod/DESCRIPTION.md | 0 .../0/add-state-type/.codemod/config.json | 16 + .../react-redux/0/add-state-type/config.json | 8 - .../react-redux/0/add-state-type/package.json | 7 +- .../4/add-exact-prop/.codemod/DESCRIPTION.md | 0 .../4/add-exact-prop/.codemod/config.json | 15 + .../react-router/4/add-exact-prop/config.json | 8 - .../4/add-exact-prop/package.json | 7 +- .../.codemod/DESCRIPTION.md | 0 .../create-hash-history/.codemod/config.json | 15 + .../4/create-hash-history/config.json | 8 - .../4/create-hash-history/package.json | 7 +- .../4/hash-router/.codemod/DESCRIPTION.md | 0 .../4/hash-router/.codemod/config.json | 15 + .../react-router/4/hash-router/config.json | 8 - .../react-router/4/hash-router/package.json | 7 +- .../4/index-route/.codemod/DESCRIPTION.md | 0 .../4/index-route/.codemod/config.json | 15 + .../react-router/4/index-route/config.json | 8 - .../react-router/4/index-route/package.json | 7 +- .../remove-with-props/.codemod/DESCRIPTION.md | 0 .../4/remove-with-props/.codemod/config.json | 15 + .../4/remove-with-props/config.json | 8 - .../4/remove-with-props/package.json | 7 +- .../4/rename-imports/.codemod/DESCRIPTION.md | 0 .../4/rename-imports/.codemod/config.json | 15 + .../react-router/4/rename-imports/config.json | 8 - .../4/rename-imports/package.json | 7 +- .../{README.md => .codemod/DESCRIPTION.md} | 0 .../.codemod/config.json | 15 + .../4/replace-location-query/config.json | 8 - .../4/replace-location-query/package.json | 7 +- .../{README.md => .codemod/DESCRIPTION.md} | 0 .../4/replace-param-prop/.codemod/config.json | 15 + .../4/replace-param-prop/config.json | 8 - .../4/replace-param-prop/package.json | 7 +- .../wrap-with-switch/.codemod/DESCRIPTION.md | 0 .../4/wrap-with-switch/.codemod/config.json | 15 + .../4/wrap-with-switch/config.json | 8 - .../4/wrap-with-switch/package.json | 7 +- .../6/compat-route/.codemod/DESCRIPTION.md | 0 .../6/compat-route/.codemod/config.json | 15 + .../react-router/6/compat-route/config.json | 8 - .../react-router/6/compat-route/package.json | 7 +- .../6/compat-router/.codemod/DESCRIPTION.md | 0 .../6/compat-router/.codemod/config.json | 15 + .../react-router/6/compat-router/config.json | 8 - .../react-router/6/compat-router/package.json | 7 +- .../6/link-to-props/.codemod/DESCRIPTION.md | 0 .../6/link-to-props/.codemod/config.json | 15 + .../react-router/6/link-to-props/config.json | 8 - .../react-router/6/link-to-props/package.json | 7 +- .../.codemod/DESCRIPTION.md | 0 .../match-path-arguments/.codemod/config.json | 15 + .../6/match-path-arguments/config.json | 8 - .../6/match-path-arguments/package.json | 7 +- .../navlink-exact-end/.codemod/DESCRIPTION.md | 0 .../6/navlink-exact-end/.codemod/config.json | 15 + .../6/navlink-exact-end/config.json | 8 - .../6/navlink-exact-end/package.json | 7 +- .../.codemod/DESCRIPTION.md | 0 .../redirect-to-navigate/.codemod/config.json | 15 + .../6/redirect-to-navigate/config.json | 8 - .../6/redirect-to-navigate/package.json | 7 +- .../.codemod/DESCRIPTION.md | 0 .../.codemod/config.json | 15 + .../6/remove-active-classname/config.json | 8 - .../6/remove-active-classname/package.json | 7 +- .../.codemod/DESCRIPTION.md | 0 .../remove-active-style/.codemod/config.json | 15 + .../6/remove-active-style/config.json | 8 - .../6/remove-active-style/package.json | 7 +- .../.codemod/DESCRIPTION.md | 0 .../remove-compat-router/.codemod/config.json | 15 + .../6/remove-compat-router/config.json | 8 - .../6/remove-compat-router/package.json | 7 +- .../6/remove-go-hooks/.codemod/DESCRIPTION.md | 0 .../6/remove-go-hooks/.codemod/config.json | 15 + .../6/remove-go-hooks/config.json | 8 - .../6/remove-go-hooks/package.json | 7 +- .../.codemod/DESCRIPTION.md | 0 .../.codemod/config.json | 15 + .../remove-redirect-inside-switch/config.json | 8 - .../package.json | 7 +- .../.codemod/DESCRIPTION.md | 0 .../.codemod/config.json | 15 + .../6/rename-compat-imports/config.json | 8 - .../6/rename-compat-imports/package.json | 7 +- .../.codemod/DESCRIPTION.md | 0 .../.codemod/config.json | 15 + .../6/static-router-imports/config.json | 8 - .../6/static-router-imports/package.json | 7 +- .../6/use-location/.codemod/DESCRIPTION.md | 0 .../6/use-location/.codemod/config.json | 15 + .../react-router/6/use-location/config.json | 8 - .../react-router/6/use-location/package.json | 7 +- .../6/use-navigate/.codemod/DESCRIPTION.md | 0 .../6/use-navigate/.codemod/config.json | 15 + .../react-router/6/use-navigate/config.json | 8 - .../react-router/6/use-navigate/package.json | 7 +- .../6/use-params/.codemod/DESCRIPTION.md | 0 .../6/use-params/.codemod/config.json | 15 + .../react-router/6/use-params/config.json | 8 - .../react-router/6/use-params/package.json | 7 +- .../6/use-route-match/.codemod/DESCRIPTION.md | 0 .../6/use-route-match/.codemod/config.json | 15 + .../6/use-route-match/config.json | 8 - .../6/use-route-match/package.json | 7 +- .../{README.md => .codemod/DESCRIPTION.md} | 28 +- .../.codemod/config.json | 13 + .../19/remove-context-provider/config.json | 5 - .../19/remove-context-provider/package.json | 56 +- .../{README.md => .codemod/DESCRIPTION.md} | 24 - .../remove-forward-ref/.codemod/config.json | 15 + .../react/19/remove-forward-ref/config.json | 8 - .../react/19/remove-forward-ref/package.json | 4 +- .../.codemod/DESCRIPTION.md | 5 + .../.codemod/config.json | 13 + .../19/remove-memoization-hooks/README.md | 31 -- .../19/remove-memoization-hooks/config.json | 5 - .../19/remove-memoization-hooks/package.json | 56 +- .../{README.md => .codemod/DESCRIPTION.md} | 30 -- .../19/use-context-hook/.codemod/config.json | 13 + .../react/19/use-context-hook/config.json | 5 - .../react/19/use-context-hook/package.json | 7 +- .../{README.md => .codemod/DESCRIPTION.md} | 30 +- .../{ => .codemod}/config.json | 13 +- .../react/prop-types-typescript/package.json | 7 +- .../.codemod/DESCRIPTION.md | 35 ++ .../.codemod/config.json | 15 + .../replace-react-fc-typescript/README.md | 65 --- .../replace-react-fc-typescript/config.json | 8 - .../replace-react-fc-typescript/package.json | 7 +- .../{README.md => .codemod/DESCRIPTION.md} | 28 +- .../core/4/auth-decoder/.codemod/config.json | 15 + .../redwoodjs/core/4/auth-decoder/config.json | 8 - .../core/4/auth-decoder/package.json | 7 +- .../.codemod/DESCRIPTION.md | 0 .../.codemod/config.json | 15 + .../4/redwood-apollo-provider/config.json | 8 - .../4/redwood-apollo-provider/package.json | 7 +- .../4/router-use-auth/.codemod/DESCRIPTION.md | 0 .../4/router-use-auth/.codemod/config.json | 15 + .../core/4/router-use-auth/config.json | 8 - .../core/4/router-use-auth/package.json | 7 +- .../core/4/use-armor/.codemod/DESCRIPTION.md | 0 .../core/4/use-armor/.codemod/config.json | 15 + .../redwoodjs/core/4/use-armor/config.json | 8 - .../redwoodjs/core/4/use-armor/package.json | 7 +- .../{README.md => .codemod/DESCRIPTION.md} | 28 +- .../{ => .codemod}/config.json | 13 +- .../package.json | 7 +- .../{README.md => .codemod/DESCRIPTION.md} | 26 - .../{ => .codemod}/config.json | 11 +- .../remove-public-modifier/package.json | 7 +- .../.codemod/DESCRIPTION.md | 21 + .../.codemod/config.json | 15 + .../use-template-literals/README.md | 47 -- .../use-template-literals/config.json | 8 - .../use-template-literals/package.json | 7 +- apps/registry/package.json | 2 +- apps/registry/readme-parser/build.ts | 29 -- apps/registry/readme-parser/package.json | 20 - apps/registry/readme-parser/parse.test.ts | 255 ---------- apps/registry/readme-parser/parse.ts | 477 ------------------ apps/registry/readme-parser/sync.ts | 245 --------- apps/registry/readme-parser/tsconfig.json | 7 - apps/studio/src/utils/download.ts | 6 +- 559 files changed, 3324 insertions(+), 5248 deletions(-) delete mode 100644 .github/workflows/sync.yml rename apps/registry/codemods/Feature Flags/remove-unused-feature-flags/{README.md => .codemod/DESCRIPTION.md} (63%) rename apps/registry/codemods/Feature Flags/remove-unused-feature-flags/{ => .codemod}/config.json (55%) create mode 100644 apps/registry/codemods/Java/delete-unused-fields/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/Java/delete-unused-fields/.codemod/config.json delete mode 100644 apps/registry/codemods/Java/delete-unused-fields/config.json create mode 100644 apps/registry/codemods/antd/5/props-changed-migration/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/antd/5/props-changed-migration/.codemod/config.json delete mode 100644 apps/registry/codemods/antd/5/props-changed-migration/README.md delete mode 100644 apps/registry/codemods/antd/5/props-changed-migration/config.json create mode 100644 apps/registry/codemods/antd/5/remove-style-import/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/antd/5/remove-style-import/.codemod/config.json delete mode 100644 apps/registry/codemods/antd/5/remove-style-import/README.md delete mode 100644 apps/registry/codemods/antd/5/remove-style-import/config.json create mode 100644 apps/registry/codemods/antd/5/removed-component-migration/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/antd/5/removed-component-migration/.codemod/config.json delete mode 100644 apps/registry/codemods/antd/5/removed-component-migration/README.md delete mode 100644 apps/registry/codemods/antd/5/removed-component-migration/config.json rename apps/registry/codemods/antd/5/removed-static-method-migration/{README.md => .codemod/DESCRIPTION.md} (65%) create mode 100644 apps/registry/codemods/antd/5/removed-static-method-migration/.codemod/config.json delete mode 100644 apps/registry/codemods/antd/5/removed-static-method-migration/config.json rename apps/registry/codemods/bull/bullmq/{README.md => .codemod/DESCRIPTION.md} (85%) create mode 100644 apps/registry/codemods/bull/bullmq/.codemod/config.json delete mode 100644 apps/registry/codemods/bull/bullmq/config.json rename apps/registry/codemods/cal.com/app-directory-boilerplate-calcom/{README.md => .codemod/DESCRIPTION.md} (65%) create mode 100644 apps/registry/codemods/cal.com/app-directory-boilerplate-calcom/.codemod/config.json delete mode 100644 apps/registry/codemods/cal.com/app-directory-boilerplate-calcom/config.json create mode 100644 apps/registry/codemods/cal.com/generate-metadata-tests-calcom/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/cal.com/generate-metadata-tests-calcom/.codemod/config.json delete mode 100644 apps/registry/codemods/cal.com/generate-metadata-tests-calcom/README.md delete mode 100644 apps/registry/codemods/cal.com/generate-metadata-tests-calcom/config.json create mode 100644 apps/registry/codemods/cal.com/generate-url-patterns/.codemod/DESCRIPTION.md rename apps/registry/codemods/cal.com/generate-url-patterns/{ => .codemod}/config.json (60%) delete mode 100644 apps/registry/codemods/cal.com/generate-url-patterns/README.md rename apps/registry/codemods/ember/5/app-controller-router-props/{README.md => .codemod/DESCRIPTION.md} (63%) create mode 100644 apps/registry/codemods/ember/5/app-controller-router-props/.codemod/config.json delete mode 100644 apps/registry/codemods/ember/5/app-controller-router-props/config.json create mode 100644 apps/registry/codemods/ember/5/array-wrapper/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/ember/5/array-wrapper/.codemod/config.json delete mode 100644 apps/registry/codemods/ember/5/array-wrapper/README.md delete mode 100644 apps/registry/codemods/ember/5/array-wrapper/config.json rename apps/registry/codemods/ember/5/convert-module-for-to-setup-test/{README.md => .codemod/DESCRIPTION.md} (57%) create mode 100644 apps/registry/codemods/ember/5/convert-module-for-to-setup-test/.codemod/config.json delete mode 100644 apps/registry/codemods/ember/5/convert-module-for-to-setup-test/config.json rename apps/registry/codemods/ember/5/cp-property-map/{README.md => .codemod/DESCRIPTION.md} (57%) create mode 100644 apps/registry/codemods/ember/5/cp-property-map/.codemod/config.json delete mode 100644 apps/registry/codemods/ember/5/cp-property-map/config.json rename apps/registry/codemods/ember/5/cp-property/{README.md => .codemod/DESCRIPTION.md} (54%) create mode 100644 apps/registry/codemods/ember/5/cp-property/.codemod/config.json delete mode 100644 apps/registry/codemods/ember/5/cp-property/config.json create mode 100644 apps/registry/codemods/ember/5/cp-volatile/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/ember/5/cp-volatile/.codemod/config.json delete mode 100644 apps/registry/codemods/ember/5/cp-volatile/README.md delete mode 100644 apps/registry/codemods/ember/5/cp-volatile/config.json create mode 100644 apps/registry/codemods/ember/5/deprecate-merge/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/ember/5/deprecate-merge/.codemod/config.json delete mode 100644 apps/registry/codemods/ember/5/deprecate-merge/README.md delete mode 100644 apps/registry/codemods/ember/5/deprecate-merge/config.json rename apps/registry/codemods/ember/5/deprecate-router-events/{README.md => .codemod/DESCRIPTION.md} (71%) create mode 100644 apps/registry/codemods/ember/5/deprecate-router-events/.codemod/config.json delete mode 100644 apps/registry/codemods/ember/5/deprecate-router-events/config.json rename apps/registry/codemods/ember/5/ember-jquery-legacy/{README.md => .codemod/DESCRIPTION.md} (56%) create mode 100644 apps/registry/codemods/ember/5/ember-jquery-legacy/.codemod/config.json delete mode 100644 apps/registry/codemods/ember/5/ember-jquery-legacy/config.json rename apps/registry/codemods/ember/5/es5-getter-ember-codemod/{README.md => .codemod/DESCRIPTION.md} (68%) create mode 100644 apps/registry/codemods/ember/5/es5-getter-ember-codemod/.codemod/config.json delete mode 100644 apps/registry/codemods/ember/5/es5-getter-ember-codemod/config.json rename apps/registry/codemods/ember/5/fpe-computed/{README.md => .codemod/DESCRIPTION.md} (66%) create mode 100644 apps/registry/codemods/ember/5/fpe-computed/.codemod/config.json delete mode 100644 apps/registry/codemods/ember/5/fpe-computed/config.json create mode 100644 apps/registry/codemods/ember/5/fpe-observes/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/ember/5/fpe-observes/.codemod/config.json delete mode 100644 apps/registry/codemods/ember/5/fpe-observes/README.md delete mode 100644 apps/registry/codemods/ember/5/fpe-observes/config.json rename apps/registry/codemods/ember/5/fpe-on/{README.md => .codemod/DESCRIPTION.md} (58%) create mode 100644 apps/registry/codemods/ember/5/fpe-on/.codemod/config.json delete mode 100644 apps/registry/codemods/ember/5/fpe-on/config.json rename apps/registry/codemods/ember/5/jquery-apis/{README.md => .codemod/DESCRIPTION.md} (70%) create mode 100644 apps/registry/codemods/ember/5/jquery-apis/.codemod/config.json delete mode 100644 apps/registry/codemods/ember/5/jquery-apis/config.json rename apps/registry/codemods/ember/5/jquery-event/{README.md => .codemod/DESCRIPTION.md} (53%) create mode 100644 apps/registry/codemods/ember/5/jquery-event/.codemod/config.json delete mode 100644 apps/registry/codemods/ember/5/jquery-event/config.json rename apps/registry/codemods/ember/5/notify-property-change/{README.md => .codemod/DESCRIPTION.md} (53%) create mode 100644 apps/registry/codemods/ember/5/notify-property-change/.codemod/config.json delete mode 100644 apps/registry/codemods/ember/5/notify-property-change/config.json rename apps/registry/codemods/ember/5/object-new-constructor/{README.md => .codemod/DESCRIPTION.md} (60%) create mode 100644 apps/registry/codemods/ember/5/object-new-constructor/.codemod/config.json delete mode 100644 apps/registry/codemods/ember/5/object-new-constructor/config.json rename apps/registry/codemods/eslint/biome/migrate-rules/{README.md => .codemod/DESCRIPTION.md} (84%) create mode 100644 apps/registry/codemods/eslint/biome/migrate-rules/.codemod/config.json delete mode 100644 apps/registry/codemods/eslint/biome/migrate-rules/config.json rename apps/registry/codemods/i18n/{README.md => .codemod/DESCRIPTION.md} (59%) create mode 100644 apps/registry/codemods/i18n/.codemod/config.json delete mode 100644 apps/registry/codemods/i18n/config.json create mode 100644 apps/registry/codemods/immutable/0/add-deprecation-comment/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/immutable/0/add-deprecation-comment/.codemod/config.json delete mode 100644 apps/registry/codemods/immutable/0/add-deprecation-comment/config.json create mode 100644 apps/registry/codemods/immutable/0/nest-from-js/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/immutable/0/nest-from-js/.codemod/config.json delete mode 100644 apps/registry/codemods/immutable/0/nest-from-js/config.json create mode 100644 apps/registry/codemods/immutable/0/remove-from-js/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/immutable/0/remove-from-js/.codemod/config.json delete mode 100644 apps/registry/codemods/immutable/0/remove-from-js/config.json create mode 100644 apps/registry/codemods/immutable/0/remove-import/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/immutable/0/remove-import/.codemod/config.json delete mode 100644 apps/registry/codemods/immutable/0/remove-import/config.json create mode 100644 apps/registry/codemods/immutable/0/remove-to-js/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/immutable/0/remove-to-js/.codemod/config.json delete mode 100644 apps/registry/codemods/immutable/0/remove-to-js/config.json create mode 100644 apps/registry/codemods/immutable/0/replace-get-in/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/immutable/0/replace-get-in/.codemod/config.json delete mode 100644 apps/registry/codemods/immutable/0/replace-get-in/config.json create mode 100644 apps/registry/codemods/immutable/0/replace-get/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/immutable/0/replace-get/.codemod/config.json delete mode 100644 apps/registry/codemods/immutable/0/replace-get/config.json create mode 100644 apps/registry/codemods/immutable/0/replace-merge/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/immutable/0/replace-merge/.codemod/config.json delete mode 100644 apps/registry/codemods/immutable/0/replace-merge/config.json create mode 100644 apps/registry/codemods/immutable/0/replace-set-in/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/immutable/0/replace-set-in/.codemod/config.json delete mode 100644 apps/registry/codemods/immutable/0/replace-set-in/config.json create mode 100644 apps/registry/codemods/immutable/0/replace-set/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/immutable/0/replace-set/.codemod/config.json delete mode 100644 apps/registry/codemods/immutable/0/replace-set/config.json create mode 100644 apps/registry/codemods/immutable/4/isterable-to-iscollection/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/immutable/4/isterable-to-iscollection/.codemod/config.json delete mode 100644 apps/registry/codemods/immutable/4/isterable-to-iscollection/config.json create mode 100644 apps/registry/codemods/immutable/4/map-to-array/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/immutable/4/map-to-array/.codemod/config.json delete mode 100644 apps/registry/codemods/immutable/4/map-to-array/config.json create mode 100644 apps/registry/codemods/immutable/4/rename-to-seq/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/immutable/4/rename-to-seq/.codemod/config.json delete mode 100644 apps/registry/codemods/immutable/4/rename-to-seq/config.json create mode 100644 apps/registry/codemods/intuita/migrate-codemod-registry/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/intuita/migrate-codemod-registry/.codemod/config.json delete mode 100644 apps/registry/codemods/intuita/migrate-codemod-registry/config.json create mode 100644 apps/registry/codemods/jest/vitest/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/jest/vitest/.codemod/config.json delete mode 100644 apps/registry/codemods/jest/vitest/README.md delete mode 100644 apps/registry/codemods/jest/vitest/config.json rename apps/registry/codemods/mocha/vitest/migrate-configuration/{README.md => .codemod/DESCRIPTION.md} (73%) create mode 100644 apps/registry/codemods/mocha/vitest/migrate-configuration/.codemod/config.json delete mode 100644 apps/registry/codemods/mocha/vitest/migrate-configuration/config.json create mode 100644 apps/registry/codemods/mocha/vitest/migrate-tests/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/mocha/vitest/migrate-tests/.codemod/config.json delete mode 100644 apps/registry/codemods/mocha/vitest/migrate-tests/README.md delete mode 100644 apps/registry/codemods/mocha/vitest/migrate-tests/config.json rename apps/registry/codemods/mocha/vitest/recipe/{README.md => .codemod/DESCRIPTION.md} (72%) create mode 100644 apps/registry/codemods/mocha/vitest/recipe/.codemod/config.json delete mode 100644 apps/registry/codemods/mocha/vitest/recipe/config.json rename apps/registry/codemods/msw/2/callback-signature/{README.md => .codemod/DESCRIPTION.md} (75%) create mode 100644 apps/registry/codemods/msw/2/callback-signature/.codemod/config.json delete mode 100644 apps/registry/codemods/msw/2/callback-signature/config.json rename apps/registry/codemods/msw/2/ctx-fetch/{README.md => .codemod/DESCRIPTION.md} (66%) create mode 100644 apps/registry/codemods/msw/2/ctx-fetch/.codemod/config.json delete mode 100644 apps/registry/codemods/msw/2/ctx-fetch/config.json rename apps/registry/codemods/msw/2/imports/{README.md => .codemod/DESCRIPTION.md} (65%) create mode 100644 apps/registry/codemods/msw/2/imports/.codemod/config.json delete mode 100644 apps/registry/codemods/msw/2/imports/config.json create mode 100644 apps/registry/codemods/msw/2/lifecycle-events-signature/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/msw/2/lifecycle-events-signature/.codemod/config.json delete mode 100644 apps/registry/codemods/msw/2/lifecycle-events-signature/README.md delete mode 100644 apps/registry/codemods/msw/2/lifecycle-events-signature/config.json create mode 100644 apps/registry/codemods/msw/2/print-handler/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/msw/2/print-handler/.codemod/config.json delete mode 100644 apps/registry/codemods/msw/2/print-handler/README.md delete mode 100644 apps/registry/codemods/msw/2/print-handler/config.json create mode 100644 apps/registry/codemods/msw/2/req-passthrough/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/msw/2/req-passthrough/.codemod/config.json delete mode 100644 apps/registry/codemods/msw/2/req-passthrough/README.md delete mode 100644 apps/registry/codemods/msw/2/req-passthrough/config.json rename apps/registry/codemods/msw/2/request-changes/{README.md => .codemod/DESCRIPTION.md} (77%) create mode 100644 apps/registry/codemods/msw/2/request-changes/.codemod/config.json delete mode 100644 apps/registry/codemods/msw/2/request-changes/config.json rename apps/registry/codemods/msw/2/response-usages/{README.md => .codemod/DESCRIPTION.md} (84%) create mode 100644 apps/registry/codemods/msw/2/response-usages/.codemod/config.json delete mode 100644 apps/registry/codemods/msw/2/response-usages/config.json rename apps/registry/codemods/msw/2/type-args/{README.md => .codemod/DESCRIPTION.md} (81%) create mode 100644 apps/registry/codemods/msw/2/type-args/.codemod/config.json delete mode 100644 apps/registry/codemods/msw/2/type-args/config.json rename apps/registry/codemods/msw/2/upgrade-recipe/{README.md => .codemod/DESCRIPTION.md} (75%) rename apps/registry/codemods/msw/2/upgrade-recipe/{ => .codemod}/config.json (57%) rename apps/registry/codemods/mui/5/core-styles-import/{README.md => .codemod/DESCRIPTION.md} (57%) create mode 100644 apps/registry/codemods/mui/5/core-styles-import/.codemod/config.json delete mode 100644 apps/registry/codemods/mui/5/core-styles-import/config.json rename apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventContext/{README.md => .codemod/DESCRIPTION.md} (53%) create mode 100644 apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventContext/.codemod/config.json delete mode 100644 apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventContext/config.json rename apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventHandler/{README.md => .codemod/DESCRIPTION.md} (59%) create mode 100644 apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventHandler/.codemod/config.json delete mode 100644 apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventHandler/config.json create mode 100644 apps/registry/codemods/netlify-sdk/0.8.1/disableBuildEventHandlers/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/netlify-sdk/0.8.1/disableBuildEventHandlers/.codemod/config.json delete mode 100644 apps/registry/codemods/netlify-sdk/0.8.1/disableBuildEventHandlers/README.md delete mode 100644 apps/registry/codemods/netlify-sdk/0.8.1/disableBuildEventHandlers/config.json create mode 100644 apps/registry/codemods/netlify-sdk/0.8.1/enableBuildEventHandlers/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/netlify-sdk/0.8.1/enableBuildEventHandlers/.codemod/config.json delete mode 100644 apps/registry/codemods/netlify-sdk/0.8.1/enableBuildEventHandlers/README.md delete mode 100644 apps/registry/codemods/netlify-sdk/0.8.1/enableBuildEventHandlers/config.json create mode 100644 apps/registry/codemods/netlify-sdk/0.8.1/exportZod/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/netlify-sdk/0.8.1/exportZod/.codemod/config.json delete mode 100644 apps/registry/codemods/netlify-sdk/0.8.1/exportZod/README.md delete mode 100644 apps/registry/codemods/netlify-sdk/0.8.1/exportZod/config.json rename apps/registry/codemods/netlify-sdk/0.8.4/addApiHandler/{README.md => .codemod/DESCRIPTION.md} (52%) create mode 100644 apps/registry/codemods/netlify-sdk/0.8.4/addApiHandler/.codemod/config.json delete mode 100644 apps/registry/codemods/netlify-sdk/0.8.4/addApiHandler/config.json create mode 100644 apps/registry/codemods/netlify-sdk/0.8.5/createEnvironmentVariable/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/netlify-sdk/0.8.5/createEnvironmentVariable/.codemod/config.json delete mode 100644 apps/registry/codemods/netlify-sdk/0.8.5/createEnvironmentVariable/README.md delete mode 100644 apps/registry/codemods/netlify-sdk/0.8.5/createEnvironmentVariable/config.json create mode 100644 apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariable/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariable/.codemod/config.json delete mode 100644 apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariable/README.md delete mode 100644 apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariable/config.json create mode 100644 apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariables/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariables/.codemod/config.json delete mode 100644 apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariables/README.md delete mode 100644 apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariables/config.json create mode 100644 apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariable/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariable/.codemod/config.json delete mode 100644 apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariable/README.md delete mode 100644 apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariable/config.json create mode 100644 apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariables/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariables/.codemod/config.json delete mode 100644 apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariables/README.md delete mode 100644 apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariables/config.json create mode 100644 apps/registry/codemods/netlify-sdk/0.8.5/getEnvironmentVariables/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/netlify-sdk/0.8.5/getEnvironmentVariables/.codemod/config.json delete mode 100644 apps/registry/codemods/netlify-sdk/0.8.5/getEnvironmentVariables/README.md delete mode 100644 apps/registry/codemods/netlify-sdk/0.8.5/getEnvironmentVariables/config.json rename apps/registry/codemods/netlify-sdk/0.8.5/netlify-sdk-0.8.5-recipe/{README.md => .codemod/DESCRIPTION.md} (75%) rename apps/registry/codemods/netlify-sdk/0.8.5/netlify-sdk-0.8.5-recipe/{ => .codemod}/config.json (65%) rename apps/registry/codemods/netlify-sdk/0.8.5/patchEnvironmentVariable/{README.md => .codemod/DESCRIPTION.md} (50%) create mode 100644 apps/registry/codemods/netlify-sdk/0.8.5/patchEnvironmentVariable/.codemod/config.json delete mode 100644 apps/registry/codemods/netlify-sdk/0.8.5/patchEnvironmentVariable/config.json create mode 100644 apps/registry/codemods/netlify-sdk/0.8.5/updateEnvironmentVariable/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/netlify-sdk/0.8.5/updateEnvironmentVariable/.codemod/config.json delete mode 100644 apps/registry/codemods/netlify-sdk/0.8.5/updateEnvironmentVariable/README.md delete mode 100644 apps/registry/codemods/netlify-sdk/0.8.5/updateEnvironmentVariable/config.json rename apps/registry/codemods/next-i18next/copy-keys/{README.md => .codemod/DESCRIPTION.md} (73%) rename apps/registry/codemods/next-i18next/copy-keys/{ => .codemod}/config.json (57%) create mode 100644 apps/registry/codemods/next/13/ab-test/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/next/13/ab-test/.codemod/config.json delete mode 100644 apps/registry/codemods/next/13/ab-test/README.md delete mode 100644 apps/registry/codemods/next/13/ab-test/config.json rename apps/registry/codemods/next/13/app-directory-boilerplate/{README.md => .codemod/DESCRIPTION.md} (72%) create mode 100644 apps/registry/codemods/next/13/app-directory-boilerplate/.codemod/config.json delete mode 100644 apps/registry/codemods/next/13/app-directory-boilerplate/config.json rename apps/registry/codemods/next/13/app-router-recipe/{README.md => .codemod/DESCRIPTION.md} (58%) rename apps/registry/codemods/next/13/app-router-recipe/{ => .codemod}/config.json (50%) create mode 100644 apps/registry/codemods/next/13/built-in-next-font/.codemod/DESCRIPTION.md rename apps/registry/codemods/next/13/built-in-next-font/{ => .codemod}/config.json (53%) delete mode 100644 apps/registry/codemods/next/13/built-in-next-font/README.md rename apps/registry/codemods/next/13/comment-deletable-files/{README.md => .codemod/DESCRIPTION.md} (62%) create mode 100644 apps/registry/codemods/next/13/comment-deletable-files/.codemod/config.json delete mode 100644 apps/registry/codemods/next/13/comment-deletable-files/config.json rename apps/registry/codemods/next/13/move-css-in-js-styles/{README.md => .codemod/DESCRIPTION.md} (56%) rename apps/registry/codemods/next/13/move-css-in-js-styles/{ => .codemod}/config.json (51%) rename apps/registry/codemods/next/13/new-image-experimental/{README.md => .codemod/DESCRIPTION.md} (79%) rename apps/registry/codemods/next/13/new-image-experimental/{ => .codemod}/config.json (58%) rename apps/registry/codemods/next/13/new-link/{README.md => .codemod/DESCRIPTION.md} (100%) create mode 100644 apps/registry/codemods/next/13/new-link/.codemod/config.json delete mode 100644 apps/registry/codemods/next/13/new-link/config.json rename apps/registry/codemods/next/13/next-image-to-legacy-image/{README.md => .codemod/DESCRIPTION.md} (64%) rename apps/registry/codemods/next/13/next-image-to-legacy-image/{ => .codemod}/config.json (58%) rename apps/registry/codemods/next/13/remove-get-static-props/{README.md => .codemod/DESCRIPTION.md} (100%) rename apps/registry/codemods/next/13/remove-get-static-props/{ => .codemod}/config.json (64%) rename apps/registry/codemods/next/13/remove-next-export/{README.md => .codemod/DESCRIPTION.md} (53%) create mode 100644 apps/registry/codemods/next/13/remove-next-export/.codemod/config.json delete mode 100644 apps/registry/codemods/next/13/remove-next-export/config.json create mode 100644 apps/registry/codemods/next/13/replace-api-routes/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/next/13/replace-api-routes/.codemod/config.json delete mode 100644 apps/registry/codemods/next/13/replace-api-routes/README.md delete mode 100644 apps/registry/codemods/next/13/replace-api-routes/config.json rename apps/registry/codemods/next/13/replace-next-head/{README.md => .codemod/DESCRIPTION.md} (66%) create mode 100644 apps/registry/codemods/next/13/replace-next-head/.codemod/config.json delete mode 100644 apps/registry/codemods/next/13/replace-next-head/config.json rename apps/registry/codemods/next/13/replace-next-router/{README.md => .codemod/DESCRIPTION.md} (71%) rename apps/registry/codemods/next/13/replace-next-router/{ => .codemod}/config.json (50%) rename apps/registry/codemods/next/13/replace-use-search-params/{README.md => .codemod/DESCRIPTION.md} (100%) rename apps/registry/codemods/next/13/replace-use-search-params/{ => .codemod}/config.json (84%) rename apps/registry/codemods/next/13/upsert-use-client-directive/{README.md => .codemod/DESCRIPTION.md} (65%) create mode 100644 apps/registry/codemods/next/13/upsert-use-client-directive/.codemod/config.json delete mode 100644 apps/registry/codemods/next/13/upsert-use-client-directive/config.json create mode 100644 apps/registry/codemods/next/14/metadata-to-viewport-export/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/next/14/metadata-to-viewport-export/.codemod/config.json delete mode 100644 apps/registry/codemods/next/14/metadata-to-viewport-export/README.md delete mode 100644 apps/registry/codemods/next/14/metadata-to-viewport-export/config.json create mode 100644 apps/registry/codemods/next/14/next-og-import/.codemod/DESCRIPTION.md rename apps/registry/codemods/next/14/next-og-import/{ => .codemod}/config.json (50%) delete mode 100644 apps/registry/codemods/next/14/next-og-import/README.md create mode 100644 apps/registry/codemods/react-redux/0/add-state-type/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/react-redux/0/add-state-type/.codemod/config.json delete mode 100644 apps/registry/codemods/react-redux/0/add-state-type/config.json create mode 100644 apps/registry/codemods/react-router/4/add-exact-prop/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/react-router/4/add-exact-prop/.codemod/config.json delete mode 100644 apps/registry/codemods/react-router/4/add-exact-prop/config.json create mode 100644 apps/registry/codemods/react-router/4/create-hash-history/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/react-router/4/create-hash-history/.codemod/config.json delete mode 100644 apps/registry/codemods/react-router/4/create-hash-history/config.json create mode 100644 apps/registry/codemods/react-router/4/hash-router/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/react-router/4/hash-router/.codemod/config.json delete mode 100644 apps/registry/codemods/react-router/4/hash-router/config.json create mode 100644 apps/registry/codemods/react-router/4/index-route/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/react-router/4/index-route/.codemod/config.json delete mode 100644 apps/registry/codemods/react-router/4/index-route/config.json create mode 100644 apps/registry/codemods/react-router/4/remove-with-props/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/react-router/4/remove-with-props/.codemod/config.json delete mode 100644 apps/registry/codemods/react-router/4/remove-with-props/config.json create mode 100644 apps/registry/codemods/react-router/4/rename-imports/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/react-router/4/rename-imports/.codemod/config.json delete mode 100644 apps/registry/codemods/react-router/4/rename-imports/config.json rename apps/registry/codemods/react-router/4/replace-location-query/{README.md => .codemod/DESCRIPTION.md} (100%) create mode 100644 apps/registry/codemods/react-router/4/replace-location-query/.codemod/config.json delete mode 100644 apps/registry/codemods/react-router/4/replace-location-query/config.json rename apps/registry/codemods/react-router/4/replace-param-prop/{README.md => .codemod/DESCRIPTION.md} (100%) create mode 100644 apps/registry/codemods/react-router/4/replace-param-prop/.codemod/config.json delete mode 100644 apps/registry/codemods/react-router/4/replace-param-prop/config.json create mode 100644 apps/registry/codemods/react-router/4/wrap-with-switch/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/react-router/4/wrap-with-switch/.codemod/config.json delete mode 100644 apps/registry/codemods/react-router/4/wrap-with-switch/config.json create mode 100644 apps/registry/codemods/react-router/6/compat-route/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/react-router/6/compat-route/.codemod/config.json delete mode 100644 apps/registry/codemods/react-router/6/compat-route/config.json create mode 100644 apps/registry/codemods/react-router/6/compat-router/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/react-router/6/compat-router/.codemod/config.json delete mode 100644 apps/registry/codemods/react-router/6/compat-router/config.json create mode 100644 apps/registry/codemods/react-router/6/link-to-props/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/react-router/6/link-to-props/.codemod/config.json delete mode 100644 apps/registry/codemods/react-router/6/link-to-props/config.json create mode 100644 apps/registry/codemods/react-router/6/match-path-arguments/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/react-router/6/match-path-arguments/.codemod/config.json delete mode 100644 apps/registry/codemods/react-router/6/match-path-arguments/config.json create mode 100644 apps/registry/codemods/react-router/6/navlink-exact-end/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/react-router/6/navlink-exact-end/.codemod/config.json delete mode 100644 apps/registry/codemods/react-router/6/navlink-exact-end/config.json create mode 100644 apps/registry/codemods/react-router/6/redirect-to-navigate/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/react-router/6/redirect-to-navigate/.codemod/config.json delete mode 100644 apps/registry/codemods/react-router/6/redirect-to-navigate/config.json create mode 100644 apps/registry/codemods/react-router/6/remove-active-classname/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/react-router/6/remove-active-classname/.codemod/config.json delete mode 100644 apps/registry/codemods/react-router/6/remove-active-classname/config.json create mode 100644 apps/registry/codemods/react-router/6/remove-active-style/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/react-router/6/remove-active-style/.codemod/config.json delete mode 100644 apps/registry/codemods/react-router/6/remove-active-style/config.json create mode 100644 apps/registry/codemods/react-router/6/remove-compat-router/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/react-router/6/remove-compat-router/.codemod/config.json delete mode 100644 apps/registry/codemods/react-router/6/remove-compat-router/config.json create mode 100644 apps/registry/codemods/react-router/6/remove-go-hooks/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/react-router/6/remove-go-hooks/.codemod/config.json delete mode 100644 apps/registry/codemods/react-router/6/remove-go-hooks/config.json create mode 100644 apps/registry/codemods/react-router/6/remove-redirect-inside-switch/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/react-router/6/remove-redirect-inside-switch/.codemod/config.json delete mode 100644 apps/registry/codemods/react-router/6/remove-redirect-inside-switch/config.json create mode 100644 apps/registry/codemods/react-router/6/rename-compat-imports/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/react-router/6/rename-compat-imports/.codemod/config.json delete mode 100644 apps/registry/codemods/react-router/6/rename-compat-imports/config.json create mode 100644 apps/registry/codemods/react-router/6/static-router-imports/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/react-router/6/static-router-imports/.codemod/config.json delete mode 100644 apps/registry/codemods/react-router/6/static-router-imports/config.json create mode 100644 apps/registry/codemods/react-router/6/use-location/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/react-router/6/use-location/.codemod/config.json delete mode 100644 apps/registry/codemods/react-router/6/use-location/config.json create mode 100644 apps/registry/codemods/react-router/6/use-navigate/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/react-router/6/use-navigate/.codemod/config.json delete mode 100644 apps/registry/codemods/react-router/6/use-navigate/config.json create mode 100644 apps/registry/codemods/react-router/6/use-params/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/react-router/6/use-params/.codemod/config.json delete mode 100644 apps/registry/codemods/react-router/6/use-params/config.json create mode 100644 apps/registry/codemods/react-router/6/use-route-match/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/react-router/6/use-route-match/.codemod/config.json delete mode 100644 apps/registry/codemods/react-router/6/use-route-match/config.json rename apps/registry/codemods/react/19/remove-context-provider/{README.md => .codemod/DESCRIPTION.md} (60%) create mode 100644 apps/registry/codemods/react/19/remove-context-provider/.codemod/config.json delete mode 100644 apps/registry/codemods/react/19/remove-context-provider/config.json rename apps/registry/codemods/react/19/remove-forward-ref/{README.md => .codemod/DESCRIPTION.md} (52%) create mode 100644 apps/registry/codemods/react/19/remove-forward-ref/.codemod/config.json delete mode 100644 apps/registry/codemods/react/19/remove-forward-ref/config.json create mode 100644 apps/registry/codemods/react/19/remove-memoization-hooks/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/react/19/remove-memoization-hooks/.codemod/config.json delete mode 100644 apps/registry/codemods/react/19/remove-memoization-hooks/README.md delete mode 100644 apps/registry/codemods/react/19/remove-memoization-hooks/config.json rename apps/registry/codemods/react/19/use-context-hook/{README.md => .codemod/DESCRIPTION.md} (50%) create mode 100644 apps/registry/codemods/react/19/use-context-hook/.codemod/config.json delete mode 100644 apps/registry/codemods/react/19/use-context-hook/config.json rename apps/registry/codemods/react/prop-types-typescript/{README.md => .codemod/DESCRIPTION.md} (67%) rename apps/registry/codemods/react/prop-types-typescript/{ => .codemod}/config.json (67%) create mode 100644 apps/registry/codemods/react/replace-react-fc-typescript/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/react/replace-react-fc-typescript/.codemod/config.json delete mode 100644 apps/registry/codemods/react/replace-react-fc-typescript/README.md delete mode 100644 apps/registry/codemods/react/replace-react-fc-typescript/config.json rename apps/registry/codemods/redwoodjs/core/4/auth-decoder/{README.md => .codemod/DESCRIPTION.md} (77%) create mode 100644 apps/registry/codemods/redwoodjs/core/4/auth-decoder/.codemod/config.json delete mode 100644 apps/registry/codemods/redwoodjs/core/4/auth-decoder/config.json create mode 100644 apps/registry/codemods/redwoodjs/core/4/redwood-apollo-provider/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/redwoodjs/core/4/redwood-apollo-provider/.codemod/config.json delete mode 100644 apps/registry/codemods/redwoodjs/core/4/redwood-apollo-provider/config.json create mode 100644 apps/registry/codemods/redwoodjs/core/4/router-use-auth/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/redwoodjs/core/4/router-use-auth/.codemod/config.json delete mode 100644 apps/registry/codemods/redwoodjs/core/4/router-use-auth/config.json create mode 100644 apps/registry/codemods/redwoodjs/core/4/use-armor/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/redwoodjs/core/4/use-armor/.codemod/config.json delete mode 100644 apps/registry/codemods/redwoodjs/core/4/use-armor/config.json rename apps/registry/codemods/remove-unused-feature-flags-2/{README.md => .codemod/DESCRIPTION.md} (63%) rename apps/registry/codemods/remove-unused-feature-flags-2/{ => .codemod}/config.json (60%) rename apps/registry/codemods/typescript/remove-public-modifier/{README.md => .codemod/DESCRIPTION.md} (52%) rename apps/registry/codemods/typescript/remove-public-modifier/{ => .codemod}/config.json (50%) create mode 100644 apps/registry/codemods/typescript/use-template-literals/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/typescript/use-template-literals/.codemod/config.json delete mode 100644 apps/registry/codemods/typescript/use-template-literals/README.md delete mode 100644 apps/registry/codemods/typescript/use-template-literals/config.json delete mode 100644 apps/registry/readme-parser/build.ts delete mode 100644 apps/registry/readme-parser/package.json delete mode 100644 apps/registry/readme-parser/parse.test.ts delete mode 100644 apps/registry/readme-parser/parse.ts delete mode 100644 apps/registry/readme-parser/sync.ts delete mode 100644 apps/registry/readme-parser/tsconfig.json diff --git a/.github/workflows/sync.yml b/.github/workflows/sync.yml deleted file mode 100644 index c018c1b65..000000000 --- a/.github/workflows/sync.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: sync -on: - push: - branches: - - main -jobs: - Sync: - runs-on: ubuntu-latest - steps: - - name: Setup Node.js - uses: actions/setup-node@v3 - with: - node-version: 20 - - name: Checkout Repository - uses: actions/checkout@v3 - with: - token: ${{ secrets.GH_TOKEN }} - - name: Install modules - uses: pnpm/action-setup@v2 - with: - version: 8 - run_install: | - - recursive: true - args: [--frozen-lockfile, --strict-peer-dependencies] - - name: Build readme parser - run: pnpm --filter @codemod-com/readme-parser build:registry - env: - NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY: 'YOUR_CLERK_PUBLISHABLE_KEY' - NEXT_PUBLIC_API_URL: 'http://localhost:5173' - - name: Add new READMEs to website - run: | - "$PWD"/apps/registry/readme-parser/dist/sync.js \ No newline at end of file diff --git a/apps/registry/codemods/Feature Flags/remove-unused-feature-flags/README.md b/apps/registry/codemods/Feature Flags/remove-unused-feature-flags/.codemod/DESCRIPTION.md similarity index 63% rename from apps/registry/codemods/Feature Flags/remove-unused-feature-flags/README.md rename to apps/registry/codemods/Feature Flags/remove-unused-feature-flags/.codemod/DESCRIPTION.md index c9ccd5f53..8cbc1b07b 100644 --- a/apps/registry/codemods/Feature Flags/remove-unused-feature-flags/README.md +++ b/apps/registry/codemods/Feature Flags/remove-unused-feature-flags/.codemod/DESCRIPTION.md @@ -32,30 +32,4 @@ const a = await Promise.resolve('a'); const x = c; const y = ; -``` - -## Applicability Criteria - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Assistive**: The automation partially completes changes. Human involvement is needed to make changes ready to be pushed and merged. - -### **Codemod Engine** - -jscodeshift - -### Estimated Time Saving - -~5 minutes per occurrence - -### Owner - -Codemod.com - -### Links for more info +``` \ No newline at end of file diff --git a/apps/registry/codemods/Feature Flags/remove-unused-feature-flags/config.json b/apps/registry/codemods/Feature Flags/remove-unused-feature-flags/.codemod/config.json similarity index 55% rename from apps/registry/codemods/Feature Flags/remove-unused-feature-flags/config.json rename to apps/registry/codemods/Feature Flags/remove-unused-feature-flags/.codemod/config.json index 094b391e2..843317479 100644 --- a/apps/registry/codemods/Feature Flags/remove-unused-feature-flags/config.json +++ b/apps/registry/codemods/Feature Flags/remove-unused-feature-flags/.codemod/config.json @@ -1,6 +1,9 @@ { - "schemaVersion": "1.0.0", + "version": "1.0.0", + "private": false, + "name": "remove-unused-feature-flags", "engine": "jscodeshift", + "applicability": [], "arguments": [ { "name": "functionName", @@ -13,5 +16,10 @@ "default": "featureFlag", "required": true } - ] + ], + "meta": { + "type": "migration", + "changeType": "assistive", + "timeSave": "5m" + } } diff --git a/apps/registry/codemods/Feature Flags/remove-unused-feature-flags/package.json b/apps/registry/codemods/Feature Flags/remove-unused-feature-flags/package.json index 03e8e8959..8bb5f6ccd 100644 --- a/apps/registry/codemods/Feature Flags/remove-unused-feature-flags/package.json +++ b/apps/registry/codemods/Feature Flags/remove-unused-feature-flags/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/Go/remove-unnecessary-nested-block/config.json b/apps/registry/codemods/Go/remove-unnecessary-nested-block/config.json index 927408913..441ae0d39 100644 --- a/apps/registry/codemods/Go/remove-unnecessary-nested-block/config.json +++ b/apps/registry/codemods/Go/remove-unnecessary-nested-block/config.json @@ -1,7 +1,13 @@ { - "schemaVersion": "1.0.0", - "name": "Remove Unnecessary Nested Block", + "version": "1.0.0", + "private": false, + "name": "remove-unnecessary-nested-block", "engine": "piranha", "language": "go", - "owner": "codemod.com" + "owner": "codemod.com", + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + } } diff --git a/apps/registry/codemods/Go/remove-unnecessary-nested-block/package.json b/apps/registry/codemods/Go/remove-unnecessary-nested-block/package.json index b35a728d4..d05a9f560 100644 --- a/apps/registry/codemods/Go/remove-unnecessary-nested-block/package.json +++ b/apps/registry/codemods/Go/remove-unnecessary-nested-block/package.json @@ -1,5 +1,5 @@ { "name": "@codemod-com/codemod-go-remove-unnecessary-nested-block", - "files": ["README.md", "config.json"], + "files": ["./.codemod/DESCRIPTION.md", "./.codemod/config.json"], "type": "module" } diff --git a/apps/registry/codemods/Java/delete-unused-fields/.codemod/DESCRIPTION.md b/apps/registry/codemods/Java/delete-unused-fields/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..e69de29bb diff --git a/apps/registry/codemods/Java/delete-unused-fields/.codemod/config.json b/apps/registry/codemods/Java/delete-unused-fields/.codemod/config.json new file mode 100644 index 000000000..dc91358bb --- /dev/null +++ b/apps/registry/codemods/Java/delete-unused-fields/.codemod/config.json @@ -0,0 +1,13 @@ +{ + "version": "1.0.0", + "private": false, + "name": "Delete Unused Fields", + "engine": "piranha", + "language": "java", + "owner": "codemod.com", + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + } +} diff --git a/apps/registry/codemods/Java/delete-unused-fields/config.json b/apps/registry/codemods/Java/delete-unused-fields/config.json deleted file mode 100644 index 9d887642f..000000000 --- a/apps/registry/codemods/Java/delete-unused-fields/config.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "Delete Unused Fields", - "engine": "piranha", - "language": "java", - "owner": "codemod.com" -} diff --git a/apps/registry/codemods/Java/delete-unused-fields/package.json b/apps/registry/codemods/Java/delete-unused-fields/package.json index 7d160c7d2..352a989a8 100644 --- a/apps/registry/codemods/Java/delete-unused-fields/package.json +++ b/apps/registry/codemods/Java/delete-unused-fields/package.json @@ -1,5 +1,5 @@ { "name": "@codemod-com/codemod-java-delete-unused-fields", - "files": ["README.md", "config.json"], + "files": ["./.codemod/DESCRIPTION.md", "./.codemod/config.json"], "type": "module" } diff --git a/apps/registry/codemods/antd/5/props-changed-migration/.codemod/DESCRIPTION.md b/apps/registry/codemods/antd/5/props-changed-migration/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..8c7e5684f --- /dev/null +++ b/apps/registry/codemods/antd/5/props-changed-migration/.codemod/DESCRIPTION.md @@ -0,0 +1,31 @@ +# Props Changed Migration + +## Description + +This codemod changes the way the component props are applied. + +## Example + +### Before + +```TypeScript +import { Tag } from 'antd'; + +const Component = () => { + const [visible, setVisible] = useState(false); + + return ; +}; +``` + +### After + +```TypeScript +import { Tag } from 'antd'; + +const Component = () => { + const [visible, setVisible] = useState(false); + + return (visible ? : null); +}; +``` \ No newline at end of file diff --git a/apps/registry/codemods/antd/5/props-changed-migration/.codemod/config.json b/apps/registry/codemods/antd/5/props-changed-migration/.codemod/config.json new file mode 100644 index 000000000..b563580e4 --- /dev/null +++ b/apps/registry/codemods/antd/5/props-changed-migration/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "name": "antd/props-changed", + "private": false, + "engine": "jscodeshift", + "arguments": [], + "owner": "ant-design", + "applicability": [["antd", "<", "5.0.0"]], + "meta": { + "type": "migration", + "changeType": "assistive", + "timeSave": "1m", + "git": "https://github.com/ant-design/codemod-v5/tree/main?tab=readme-ov-file#v5-props-changed-migration" + } +} diff --git a/apps/registry/codemods/antd/5/props-changed-migration/README.md b/apps/registry/codemods/antd/5/props-changed-migration/README.md deleted file mode 100644 index 72a5b23c9..000000000 --- a/apps/registry/codemods/antd/5/props-changed-migration/README.md +++ /dev/null @@ -1,61 +0,0 @@ -# Props Changed Migration - -## Description - -This codemod changes the way the component props are applied. - -## Example - -### Before - -```TypeScript -import { Tag } from 'antd'; - -const Component = () => { - const [visible, setVisible] = useState(false); - - return ; -}; -``` - -### After - -```TypeScript -import { Tag } from 'antd'; - -const Component = () => { - const [visible, setVisible] = useState(false); - - return (visible ? : null); -}; -``` - -## Applicability Criteria - -Ant Design >= 5.0.0 - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Assistive**: The automation partially completes changes. Human involvement is needed to make changes ready to be pushed and merged. - -### **Codemod Engine** - -[jscodeshift](https://github.com/facebook/jscodeshift) - -### Estimated Time Saving - -Up to 1 minutes per occurrence - -### Owner - -[Ant Design](https://github.com/ant-design) - -### Links for more info - -- https://github.com/ant-design/codemod-v5/tree/main?tab=readme-ov-file#v5-props-changed-migration diff --git a/apps/registry/codemods/antd/5/props-changed-migration/config.json b/apps/registry/codemods/antd/5/props-changed-migration/config.json deleted file mode 100644 index 9c586e1aa..000000000 --- a/apps/registry/codemods/antd/5/props-changed-migration/config.json +++ /dev/null @@ -1 +0,0 @@ -{ "schemaVersion": "1.0.0", "engine": "jscodeshift", "arguments": [] } diff --git a/apps/registry/codemods/antd/5/props-changed-migration/package.json b/apps/registry/codemods/antd/5/props-changed-migration/package.json index 3d0493b26..cabae490a 100644 --- a/apps/registry/codemods/antd/5/props-changed-migration/package.json +++ b/apps/registry/codemods/antd/5/props-changed-migration/package.json @@ -13,6 +13,11 @@ "main": "./dist/index.cjs", "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/antd/5/remove-style-import/.codemod/DESCRIPTION.md b/apps/registry/codemods/antd/5/remove-style-import/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..2676cba7c --- /dev/null +++ b/apps/registry/codemods/antd/5/remove-style-import/.codemod/DESCRIPTION.md @@ -0,0 +1,24 @@ +# Remove Style Import + +## Description + +Comment out the style file import from antd (in js file). + +## Example + +### Before + +```TypeScript +import 'antd/es/auto-complete/style'; +import 'antd/lib/button/style/index.less'; +import 'antd/dist/antd.compact.min.css'; + +``` + +### After + +```TypeScript +// import 'antd/es/auto-complete/style'; +// import 'antd/lib/button/style/index.less'; +// import 'antd/dist/antd.compact.min.css'; +``` \ No newline at end of file diff --git a/apps/registry/codemods/antd/5/remove-style-import/.codemod/config.json b/apps/registry/codemods/antd/5/remove-style-import/.codemod/config.json new file mode 100644 index 000000000..d266b1fc4 --- /dev/null +++ b/apps/registry/codemods/antd/5/remove-style-import/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "name": "antd/remove-style-import", + "private": false, + "engine": "jscodeshift", + "arguments": [], + "owner": "ant-design", + "applicability": [["antd", "<", "5.0.0"]], + "meta": { + "type": "migration", + "changeType": "assistive", + "timeSave": "1m", + "git": "https://github.com/ant-design/codemod-v5/tree/main?tab=readme-ov-file#v5-remove-style-import" + } +} diff --git a/apps/registry/codemods/antd/5/remove-style-import/README.md b/apps/registry/codemods/antd/5/remove-style-import/README.md deleted file mode 100644 index 83034a28e..000000000 --- a/apps/registry/codemods/antd/5/remove-style-import/README.md +++ /dev/null @@ -1,54 +0,0 @@ -# Remove Style Import - -## Description - -Comment out the style file import from antd (in js file). - -## Example - -### Before - -```TypeScript -import 'antd/es/auto-complete/style'; -import 'antd/lib/button/style/index.less'; -import 'antd/dist/antd.compact.min.css'; - -``` - -### After - -```TypeScript -// import 'antd/es/auto-complete/style'; -// import 'antd/lib/button/style/index.less'; -// import 'antd/dist/antd.compact.min.css'; -``` - -## Applicability Criteria - -Ant Design >= 5.0.0 - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Assistive**: The automation partially completes changes. Human involvement is needed to make changes ready to be pushed and merged. - -### **Codemod Engine** - -[jscodeshift](https://github.com/facebook/jscodeshift) - -### Estimated Time Saving - -Up to 1 minutes per occurrence - -### Owner - -[Ant Design](https://github.com/ant-design) - -### Links for more info - -- https://github.com/ant-design/codemod-v5/tree/main?tab=readme-ov-file#v5-remove-style-import diff --git a/apps/registry/codemods/antd/5/remove-style-import/config.json b/apps/registry/codemods/antd/5/remove-style-import/config.json deleted file mode 100644 index 9c586e1aa..000000000 --- a/apps/registry/codemods/antd/5/remove-style-import/config.json +++ /dev/null @@ -1 +0,0 @@ -{ "schemaVersion": "1.0.0", "engine": "jscodeshift", "arguments": [] } diff --git a/apps/registry/codemods/antd/5/remove-style-import/package.json b/apps/registry/codemods/antd/5/remove-style-import/package.json index 7460a6ea6..c4e7102eb 100644 --- a/apps/registry/codemods/antd/5/remove-style-import/package.json +++ b/apps/registry/codemods/antd/5/remove-style-import/package.json @@ -13,6 +13,11 @@ "main": "./dist/index.cjs", "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.js" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/antd/5/removed-component-migration/.codemod/DESCRIPTION.md b/apps/registry/codemods/antd/5/removed-component-migration/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..294a7b961 --- /dev/null +++ b/apps/registry/codemods/antd/5/removed-component-migration/.codemod/DESCRIPTION.md @@ -0,0 +1,22 @@ +# Removed Component Migration + +## Description + +Replace import for removed component in v5. + +## Example + +### Before + +```TypeScript +import { Avatar, BackTop, Comment, PageHeader } from 'antd'; + +``` + +### After + +```TypeScript +import { Comment } from '@ant-design/compatible'; +import { PageHeader } from '@ant-design/pro-layout'; +import { Avatar, FloatButton } from 'antd'; +``` diff --git a/apps/registry/codemods/antd/5/removed-component-migration/.codemod/config.json b/apps/registry/codemods/antd/5/removed-component-migration/.codemod/config.json new file mode 100644 index 000000000..e9784510f --- /dev/null +++ b/apps/registry/codemods/antd/5/removed-component-migration/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "name": "antd/remove-component", + "private": false, + "engine": "jscodeshift", + "arguments": [], + "owner": "ant-design", + "applicability": [["antd", "<", "5.0.0"]], + "meta": { + "type": "migration", + "changeType": "assistive", + "timeSave": "1m", + "git": "https://github.com/ant-design/codemod-v5/tree/main?tab=readme-ov-file#v5-removed-component-migration" + } +} diff --git a/apps/registry/codemods/antd/5/removed-component-migration/README.md b/apps/registry/codemods/antd/5/removed-component-migration/README.md deleted file mode 100644 index e9a5d75a4..000000000 --- a/apps/registry/codemods/antd/5/removed-component-migration/README.md +++ /dev/null @@ -1,52 +0,0 @@ -# Removed Component Migration - -## Description - -Replace import for removed component in v5. - -## Example - -### Before - -```TypeScript -import { Avatar, BackTop, Comment, PageHeader } from 'antd'; - -``` - -### After - -```TypeScript -import { Comment } from '@ant-design/compatible'; -import { PageHeader } from '@ant-design/pro-layout'; -import { Avatar, FloatButton } from 'antd'; -``` - -## Applicability Criteria - -Ant Design >= 5.0.0 - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Assistive**: The automation partially completes changes. Human involvement is needed to make changes ready to be pushed and merged. - -### **Codemod Engine** - -[jscodeshift](https://github.com/facebook/jscodeshift) - -### Estimated Time Saving - -Up to 1 minutes per occurrence - -### Owner - -[Ant Design](https://github.com/ant-design) - -### Links for more info - -- https://github.com/ant-design/codemod-v5/tree/main?tab=readme-ov-file#v5-removed-component-migration diff --git a/apps/registry/codemods/antd/5/removed-component-migration/config.json b/apps/registry/codemods/antd/5/removed-component-migration/config.json deleted file mode 100644 index 9c586e1aa..000000000 --- a/apps/registry/codemods/antd/5/removed-component-migration/config.json +++ /dev/null @@ -1 +0,0 @@ -{ "schemaVersion": "1.0.0", "engine": "jscodeshift", "arguments": [] } diff --git a/apps/registry/codemods/antd/5/removed-component-migration/package.json b/apps/registry/codemods/antd/5/removed-component-migration/package.json index be3f83b21..6d8b120a4 100644 --- a/apps/registry/codemods/antd/5/removed-component-migration/package.json +++ b/apps/registry/codemods/antd/5/removed-component-migration/package.json @@ -12,6 +12,11 @@ "main": "./dist/index.cjs", "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.js" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/antd/5/removed-static-method-migration/README.md b/apps/registry/codemods/antd/5/removed-static-method-migration/.codemod/DESCRIPTION.md similarity index 65% rename from apps/registry/codemods/antd/5/removed-static-method-migration/README.md rename to apps/registry/codemods/antd/5/removed-static-method-migration/.codemod/DESCRIPTION.md index 165bdd078..b2cffad2c 100644 --- a/apps/registry/codemods/antd/5/removed-static-method-migration/README.md +++ b/apps/registry/codemods/antd/5/removed-static-method-migration/.codemod/DESCRIPTION.md @@ -59,34 +59,4 @@ const App = () => { return <>{contextHolder}; }; -``` - -## Applicability Criteria - -Ant Design >= 5.0.0 - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Assistive**: The automation partially completes changes. Human involvement is needed to make changes ready to be pushed and merged. - -### **Codemod Engine** - -[jscodeshift](https://github.com/facebook/jscodeshift) - -### Estimated Time Saving - -Up to 1 minutes per occurrence - -### Owner - -[Ant Design](https://github.com/ant-design) - -### Links for more info - -- https://github.com/ant-design/codemod-v5/tree/main?tab=readme-ov-file#v5-removed-component-migration +``` \ No newline at end of file diff --git a/apps/registry/codemods/antd/5/removed-static-method-migration/.codemod/config.json b/apps/registry/codemods/antd/5/removed-static-method-migration/.codemod/config.json new file mode 100644 index 000000000..4abd518c0 --- /dev/null +++ b/apps/registry/codemods/antd/5/removed-static-method-migration/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "name": "antd/remove-static-method", + "private": false, + "engine": "jscodeshift", + "arguments": [], + "owner": "ant-design", + "applicability": [["antd", "<", "5.0.0"]], + "meta": { + "type": "migration", + "changeType": "assistive", + "timeSave": "1m", + "git": "https://github.com/ant-design/codemod-v5/tree/main?tab=readme-ov-file#v5-removed-static-method-migration" + } +} diff --git a/apps/registry/codemods/antd/5/removed-static-method-migration/config.json b/apps/registry/codemods/antd/5/removed-static-method-migration/config.json deleted file mode 100644 index 9c586e1aa..000000000 --- a/apps/registry/codemods/antd/5/removed-static-method-migration/config.json +++ /dev/null @@ -1 +0,0 @@ -{ "schemaVersion": "1.0.0", "engine": "jscodeshift", "arguments": [] } diff --git a/apps/registry/codemods/antd/5/removed-static-method-migration/package.json b/apps/registry/codemods/antd/5/removed-static-method-migration/package.json index 08fa76748..e84d855e7 100644 --- a/apps/registry/codemods/antd/5/removed-static-method-migration/package.json +++ b/apps/registry/codemods/antd/5/removed-static-method-migration/package.json @@ -12,6 +12,11 @@ "main": "./dist/index.cjs", "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.js" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/bull/bullmq/README.md b/apps/registry/codemods/bull/bullmq/.codemod/DESCRIPTION.md similarity index 85% rename from apps/registry/codemods/bull/bullmq/README.md rename to apps/registry/codemods/bull/bullmq/.codemod/DESCRIPTION.md index b67b89d47..2e7d90ef3 100644 --- a/apps/registry/codemods/bull/bullmq/README.md +++ b/apps/registry/codemods/bull/bullmq/.codemod/DESCRIPTION.md @@ -104,30 +104,4 @@ const queue = createQueue('queue-name'); const worker = new Worker("unknown-name", async function (job) { const event = job.data; }); -``` - -## Applicability Criteria - -`bullmq` >= 1.0.0 - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Assistive**: The automation partially completes changes. Human involvement is needed to make changes ready to be pushed and merged. - -### **Codemod Engine** - -[jscodeshift](https://github.com/facebook/jscodeshift) - -### Estimated Time Saving - -~10 minutes per occurence - -### Owner - -[Codemod.com](https://github.com/codemod-com) +``` \ No newline at end of file diff --git a/apps/registry/codemods/bull/bullmq/.codemod/config.json b/apps/registry/codemods/bull/bullmq/.codemod/config.json new file mode 100644 index 000000000..d2bfffed6 --- /dev/null +++ b/apps/registry/codemods/bull/bullmq/.codemod/config.json @@ -0,0 +1,12 @@ +{ + "version": "1.0.0", + "private": false, + "name": "bull/bullmq", + "engine": "jscodeshift", + "applicability": [["bull", ">", "0.0.0"]], + "meta": { + "type": "migration", + "changeType": "assistive", + "timeSave": "10m" + } +} diff --git a/apps/registry/codemods/bull/bullmq/config.json b/apps/registry/codemods/bull/bullmq/config.json deleted file mode 100644 index dd93a3177..000000000 --- a/apps/registry/codemods/bull/bullmq/config.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "bull/bullmq", - "engine": "jscodeshift" -} diff --git a/apps/registry/codemods/bull/bullmq/package.json b/apps/registry/codemods/bull/bullmq/package.json index 96ea9ea52..32c5fa07f 100644 --- a/apps/registry/codemods/bull/bullmq/package.json +++ b/apps/registry/codemods/bull/bullmq/package.json @@ -15,6 +15,11 @@ "main": "./dist/index.cjs", "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/cal.com/app-directory-boilerplate-calcom/README.md b/apps/registry/codemods/cal.com/app-directory-boilerplate-calcom/.codemod/DESCRIPTION.md similarity index 65% rename from apps/registry/codemods/cal.com/app-directory-boilerplate-calcom/README.md rename to apps/registry/codemods/cal.com/app-directory-boilerplate-calcom/.codemod/DESCRIPTION.md index 657b0fa99..2ed45f596 100644 --- a/apps/registry/codemods/cal.com/app-directory-boilerplate-calcom/README.md +++ b/apps/registry/codemods/cal.com/app-directory-boilerplate-calcom/.codemod/DESCRIPTION.md @@ -37,34 +37,4 @@ The codemod will generate the following corresponding directory: └── c └── page.tsx └── layout.tsx -``` - -## Applicability Criteria - -Next.js version is greater or equal to 13.4. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Assistive**: The automation partially completes changes. Human involvement is needed to make changes ready to be pushed and merged. - -### **Codemod Engine** - -ts-morph - -### Estimated Time Saving - -~3 minutes per occurrence - -### Owner - -[Codemod.com](https://github.com/codemod-com) - -### Links for more info - -- https://nextjs.org/docs/pages/building-your-application/upgrading/app-router-migration +``` \ No newline at end of file diff --git a/apps/registry/codemods/cal.com/app-directory-boilerplate-calcom/.codemod/config.json b/apps/registry/codemods/cal.com/app-directory-boilerplate-calcom/.codemod/config.json new file mode 100644 index 000000000..e82d8318b --- /dev/null +++ b/apps/registry/codemods/cal.com/app-directory-boilerplate-calcom/.codemod/config.json @@ -0,0 +1,14 @@ +{ + "version": "1.0.0", + "private": false, + "name": "cal.com/app-directory-boilerplate-calcom", + "description": "This codemod provides boilerplate for the app directory.", + "engine": "filemod", + "applicability": [["next", ">=", "13.4.0"], ["next", "<", "14.0.0"]], + "owner": "codemod.com", + "meta": { + "type": "migration", + "changeType": "assistive", + "timeSave": "3m" + } +} diff --git a/apps/registry/codemods/cal.com/app-directory-boilerplate-calcom/config.json b/apps/registry/codemods/cal.com/app-directory-boilerplate-calcom/config.json deleted file mode 100644 index 24ac65312..000000000 --- a/apps/registry/codemods/cal.com/app-directory-boilerplate-calcom/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "cal.com/app-directory-boilerplate-calcom", - "description": "This codemod provides boilerplate for the app directory.", - "engine": "filemod", - "dependencyVersionLowerThan": ["next", "13.0.0"], - "owner": "codemod.com" -} diff --git a/apps/registry/codemods/cal.com/app-directory-boilerplate-calcom/package.json b/apps/registry/codemods/cal.com/app-directory-boilerplate-calcom/package.json index 9413dd465..fcb4a22cf 100644 --- a/apps/registry/codemods/cal.com/app-directory-boilerplate-calcom/package.json +++ b/apps/registry/codemods/cal.com/app-directory-boilerplate-calcom/package.json @@ -29,6 +29,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/cal.com/generate-metadata-tests-calcom/.codemod/DESCRIPTION.md b/apps/registry/codemods/cal.com/generate-metadata-tests-calcom/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..7587573df --- /dev/null +++ b/apps/registry/codemods/cal.com/generate-metadata-tests-calcom/.codemod/DESCRIPTION.md @@ -0,0 +1,7 @@ +# Generate Metadata Tests for Cal.com + +## Description + +This codemod generates metadata tests for all existing paths under the pages router. + +It uses the `testPath` argument to place the test file in the proper place. \ No newline at end of file diff --git a/apps/registry/codemods/cal.com/generate-metadata-tests-calcom/.codemod/config.json b/apps/registry/codemods/cal.com/generate-metadata-tests-calcom/.codemod/config.json new file mode 100644 index 000000000..d8c9bbd1d --- /dev/null +++ b/apps/registry/codemods/cal.com/generate-metadata-tests-calcom/.codemod/config.json @@ -0,0 +1,19 @@ +{ + "version": "1.0.0", + "name": "@calcom/generate-metadata-tests", + "private": false, + "engine": "filemod", + "applicability": [["next", ">=", "13.4.0"], ["next", "<", "14.0.0"]], + "arguments": [ + { + "name": "testPath", + "kind": "string", + "required": true + } + ], + "meta": { + "type": "migration", + "changeType": "assistive", + "timeSave": "5m" + } +} diff --git a/apps/registry/codemods/cal.com/generate-metadata-tests-calcom/README.md b/apps/registry/codemods/cal.com/generate-metadata-tests-calcom/README.md deleted file mode 100644 index a0fe0bd1e..000000000 --- a/apps/registry/codemods/cal.com/generate-metadata-tests-calcom/README.md +++ /dev/null @@ -1,33 +0,0 @@ -# Generate Metadata Tests for Cal.com - -## Description - -This codemod generates metadata tests for all existing paths under the pages router. - -It uses the `testPath` argument to place the test file in the proper place. - -## Applicability Criteria - -Next.js version is greater or equal to 13.4. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Assistive**: The automation partially completes changes. Human involvement is needed to make changes ready to be pushed and merged. - -### **Codemod Engine** - -filemod - -### Estimated Time Saving - -~5 minutes per occurrence - -### Owner - -[Codemod.com](https://github.com/codemod-com) diff --git a/apps/registry/codemods/cal.com/generate-metadata-tests-calcom/config.json b/apps/registry/codemods/cal.com/generate-metadata-tests-calcom/config.json deleted file mode 100644 index 4b67568f7..000000000 --- a/apps/registry/codemods/cal.com/generate-metadata-tests-calcom/config.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "engine": "filemod", - "arguments": [ - { - "name": "testPath", - "kind": "string", - "required": true - } - ] -} diff --git a/apps/registry/codemods/cal.com/generate-metadata-tests-calcom/package.json b/apps/registry/codemods/cal.com/generate-metadata-tests-calcom/package.json index 9902069a3..3712cf0e7 100644 --- a/apps/registry/codemods/cal.com/generate-metadata-tests-calcom/package.json +++ b/apps/registry/codemods/cal.com/generate-metadata-tests-calcom/package.json @@ -23,6 +23,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/cal.com/generate-url-patterns/.codemod/DESCRIPTION.md b/apps/registry/codemods/cal.com/generate-url-patterns/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..9848a1b8c --- /dev/null +++ b/apps/registry/codemods/cal.com/generate-url-patterns/.codemod/DESCRIPTION.md @@ -0,0 +1,5 @@ +# Generate URL Patterns for Cal.com + +## Description + +This codemod generates URL Patterns for all existing paths under the apps router to be placed in the middleware file that controls which pages are active. \ No newline at end of file diff --git a/apps/registry/codemods/cal.com/generate-url-patterns/config.json b/apps/registry/codemods/cal.com/generate-url-patterns/.codemod/config.json similarity index 60% rename from apps/registry/codemods/cal.com/generate-url-patterns/config.json rename to apps/registry/codemods/cal.com/generate-url-patterns/.codemod/config.json index 259e5f4d5..ef230bb30 100644 --- a/apps/registry/codemods/cal.com/generate-url-patterns/config.json +++ b/apps/registry/codemods/cal.com/generate-url-patterns/.codemod/config.json @@ -1,5 +1,7 @@ { - "schemaVersion": "1.0.0", + "version": "1.0.0", + "name": "@calcom/generate-url-patterns", + "private": false, "engine": "filemod", "arguments": [ { @@ -22,5 +24,11 @@ "kind": "boolean", "required": false } - ] + ], + "applicability": [["next", ">=", "13.4.0"], ["next", "<", "14.0.0"]], + "meta": { + "type": "migration", + "changeType": "assistive", + "timeSave": "5m" + } } diff --git a/apps/registry/codemods/cal.com/generate-url-patterns/README.md b/apps/registry/codemods/cal.com/generate-url-patterns/README.md deleted file mode 100644 index 36db34f5e..000000000 --- a/apps/registry/codemods/cal.com/generate-url-patterns/README.md +++ /dev/null @@ -1,31 +0,0 @@ -# Generate URL Patterns for Cal.com - -## Description - -This codemod generates URL Patterns for all existing paths under the apps router to be placed in the middleware file that controls which pages are active. - -## Applicability Criteria - -Next.js version is greater or equal to 13.4. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Assistive**: The automation partially completes changes. Human involvement is needed to make changes ready to be pushed and merged. - -### **Codemod Engine** - -filemod - -### Estimated Time Saving - -~5 minutes per occurrence - -### Owner - -[Codemod.com](https://github.com/codemod-com) diff --git a/apps/registry/codemods/cal.com/generate-url-patterns/package.json b/apps/registry/codemods/cal.com/generate-url-patterns/package.json index 08682fe0d..98ad4b488 100644 --- a/apps/registry/codemods/cal.com/generate-url-patterns/package.json +++ b/apps/registry/codemods/cal.com/generate-url-patterns/package.json @@ -23,6 +23,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/ember/5/app-controller-router-props/README.md b/apps/registry/codemods/ember/5/app-controller-router-props/.codemod/DESCRIPTION.md similarity index 63% rename from apps/registry/codemods/ember/5/app-controller-router-props/README.md rename to apps/registry/codemods/ember/5/app-controller-router-props/.codemod/DESCRIPTION.md index 58db638f7..953710406 100644 --- a/apps/registry/codemods/ember/5/app-controller-router-props/README.md +++ b/apps/registry/codemods/ember/5/app-controller-router-props/.codemod/DESCRIPTION.md @@ -50,34 +50,4 @@ export default Controller.extend({ }, }, }); -``` - -## Applicability Criteria - -Ember.js version higher or equal to 3.10. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Autonomous**: Changes can safely be pushed and merged without further human involvement. - -### **Codemod Engine** - -jscodeshift - -### Estimated Time Saving - -~5 minutes per occurrence - -### Owner - -[Rajasegar Chandran](https://github.com/rajasegar) - -### Links for more info - -- https://github.com/ember-codemods/ember-3x-codemods/blob/master/transforms/app-controller-router-props +``` \ No newline at end of file diff --git a/apps/registry/codemods/ember/5/app-controller-router-props/.codemod/config.json b/apps/registry/codemods/ember/5/app-controller-router-props/.codemod/config.json new file mode 100644 index 000000000..d5a7602dc --- /dev/null +++ b/apps/registry/codemods/ember/5/app-controller-router-props/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "ember/5/app-controller-router-props", + "deps": ["vitest@latest"], + "engine": "jscodeshift", + "applicability": [["ember", ">=", "3.10.0"], ["ember", "<", "5.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m", + "git": "https://github.com/ember-codemods/ember-3x-codemods/blob/master/transforms/app-controller-router-props" + }, + "owner": "rajasegar" +} diff --git a/apps/registry/codemods/ember/5/app-controller-router-props/config.json b/apps/registry/codemods/ember/5/app-controller-router-props/config.json deleted file mode 100644 index 3c5dd0b07..000000000 --- a/apps/registry/codemods/ember/5/app-controller-router-props/config.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "ember/5/app-controller-router-props", - "description": "", - "engine": "jscodeshift", - "dependencyVersionLowerThan": ["ember", "5.0.0"] -} diff --git a/apps/registry/codemods/ember/5/app-controller-router-props/package.json b/apps/registry/codemods/ember/5/app-controller-router-props/package.json index 27a6bdf95..07def523a 100644 --- a/apps/registry/codemods/ember/5/app-controller-router-props/package.json +++ b/apps/registry/codemods/ember/5/app-controller-router-props/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/ember/5/array-wrapper/.codemod/DESCRIPTION.md b/apps/registry/codemods/ember/5/array-wrapper/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..02560974c --- /dev/null +++ b/apps/registry/codemods/ember/5/array-wrapper/.codemod/DESCRIPTION.md @@ -0,0 +1,23 @@ +# Array Wrapper + +## Description + +This codemod removes any usage of `new` with `A`, and calls `A` as a standard function. + +## Example + +### Before: + +```jsx +import { A } from '@ember/array'; + +let arr = new A(); +``` + +### After: + +```tsx +import { A as emberA } from '@ember/array'; + +let arr = A(); +``` \ No newline at end of file diff --git a/apps/registry/codemods/ember/5/array-wrapper/.codemod/config.json b/apps/registry/codemods/ember/5/array-wrapper/.codemod/config.json new file mode 100644 index 000000000..8e0245f31 --- /dev/null +++ b/apps/registry/codemods/ember/5/array-wrapper/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "ember/5/array-wrapper", + "deps": ["vitest@latest"], + "engine": "jscodeshift", + "applicability": [["ember", ">=", "3.6.0"], ["ember", "<", "5.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m", + "git": "https://github.com/ember-codemods/ember-3x-codemods/tree/master/transforms/array-wrapper" + }, + "owner": "rajasegar" +} diff --git a/apps/registry/codemods/ember/5/array-wrapper/README.md b/apps/registry/codemods/ember/5/array-wrapper/README.md deleted file mode 100644 index 099274dfd..000000000 --- a/apps/registry/codemods/ember/5/array-wrapper/README.md +++ /dev/null @@ -1,53 +0,0 @@ -# Array Wrapper - -## Description - -This codemod removes any usage of `new` with `A`, and calls `A` as a standard function. - -## Example - -### Before: - -```jsx -import { A } from '@ember/array'; - -let arr = new A(); -``` - -### After: - -```tsx -import { A as emberA } from '@ember/array'; - -let arr = A(); -``` - -## Applicability Criteria - -Ember.js version higher or equal to 3.6. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Autonomous**: Changes can safely be pushed and merged without further human involvement. - -### **Codemod Engine** - -jscodeshift - -### Estimated Time Saving - -~5 minutes per occurrence - -### Owner - -[Rajasegar Chandran](https://github.com/rajasegar) - -### Links for more info - -- https://deprecations.emberjs.com/v3.x/#toc_array-new-array-wrapper diff --git a/apps/registry/codemods/ember/5/array-wrapper/config.json b/apps/registry/codemods/ember/5/array-wrapper/config.json deleted file mode 100644 index a1b821cb9..000000000 --- a/apps/registry/codemods/ember/5/array-wrapper/config.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "ember/5/array-wrapper", - "description": "", - "engine": "jscodeshift", - "dependencyVersionLowerThan": ["ember", "5.0.0"] -} diff --git a/apps/registry/codemods/ember/5/array-wrapper/package.json b/apps/registry/codemods/ember/5/array-wrapper/package.json index 568583eb0..edd12f402 100644 --- a/apps/registry/codemods/ember/5/array-wrapper/package.json +++ b/apps/registry/codemods/ember/5/array-wrapper/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/ember/5/convert-module-for-to-setup-test/README.md b/apps/registry/codemods/ember/5/convert-module-for-to-setup-test/.codemod/DESCRIPTION.md similarity index 57% rename from apps/registry/codemods/ember/5/convert-module-for-to-setup-test/README.md rename to apps/registry/codemods/ember/5/convert-module-for-to-setup-test/.codemod/DESCRIPTION.md index ebb814c9d..f9c334f10 100644 --- a/apps/registry/codemods/ember/5/convert-module-for-to-setup-test/README.md +++ b/apps/registry/codemods/ember/5/convert-module-for-to-setup-test/.codemod/DESCRIPTION.md @@ -33,34 +33,4 @@ module('Unit | Service | Flash', function (hooks) { let subject = this.owner.lookup('service:flash'); }); }); -``` - -## Applicability Criteria - -Ember.js version higher or equal to 2.4. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Autonomous**: Changes can safely be pushed and merged without further human involvement. - -### **Codemod Engine** - -jscodeshift - -### Estimated Time Saving - -~5 minutes per occurrence - -### Owner - -[Robert Jackson](https://github.com/rwjblue) - -### Links for more info - -- https://github.com/ember-codemods/ember-qunit-codemod/tree/master/transforms/convert-module-for-to-setup-test +``` \ No newline at end of file diff --git a/apps/registry/codemods/ember/5/convert-module-for-to-setup-test/.codemod/config.json b/apps/registry/codemods/ember/5/convert-module-for-to-setup-test/.codemod/config.json new file mode 100644 index 000000000..3ffe63cd4 --- /dev/null +++ b/apps/registry/codemods/ember/5/convert-module-for-to-setup-test/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "ember/5/convert-module-for-to-setup-test", + "deps": ["vitest@latest"], + "engine": "jscodeshift", + "applicability": [["ember", ">=", "2.4.0"], ["ember", "<", "5.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m", + "git": "https://github.com/ember-codemods/ember-qunit-codemod/tree/master/transforms/convert-module-for-to-setup-test" + }, + "owner": "rajasegar" +} diff --git a/apps/registry/codemods/ember/5/convert-module-for-to-setup-test/config.json b/apps/registry/codemods/ember/5/convert-module-for-to-setup-test/config.json deleted file mode 100644 index 84b95a0e1..000000000 --- a/apps/registry/codemods/ember/5/convert-module-for-to-setup-test/config.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "ember/5/convert-module-for-to-setup-test", - "description": "", - "engine": "jscodeshift", - "dependencyVersionLowerThan": ["ember", "5.0.0"] -} diff --git a/apps/registry/codemods/ember/5/convert-module-for-to-setup-test/package.json b/apps/registry/codemods/ember/5/convert-module-for-to-setup-test/package.json index 683020e29..b02fe1bde 100644 --- a/apps/registry/codemods/ember/5/convert-module-for-to-setup-test/package.json +++ b/apps/registry/codemods/ember/5/convert-module-for-to-setup-test/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/ember/5/cp-property-map/README.md b/apps/registry/codemods/ember/5/cp-property-map/.codemod/DESCRIPTION.md similarity index 57% rename from apps/registry/codemods/ember/5/cp-property-map/README.md rename to apps/registry/codemods/ember/5/cp-property-map/.codemod/DESCRIPTION.md index 448eb6470..7632db7b3 100644 --- a/apps/registry/codemods/ember/5/cp-property-map/README.md +++ b/apps/registry/codemods/ember/5/cp-property-map/.codemod/DESCRIPTION.md @@ -24,34 +24,4 @@ const Person = EmberObject.extend({ return friend[this.get('nameKey')]; }), }); -``` - -## Applicability Criteria - -Ember.js version higher or equal to 3.9. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Autonomous**: Changes can safely be pushed and merged without further human involvement. - -### **Codemod Engine** - -jscodeshift - -### Estimated Time Saving - -~5 minutes per occurrence - -### Owner - -[Rajasegar Chandran](https://github.com/rajasegar) - -### Links for more info - -- https://deprecations.emberjs.com/v3.x/#toc_computed-property-property +``` \ No newline at end of file diff --git a/apps/registry/codemods/ember/5/cp-property-map/.codemod/config.json b/apps/registry/codemods/ember/5/cp-property-map/.codemod/config.json new file mode 100644 index 000000000..5bb2441f7 --- /dev/null +++ b/apps/registry/codemods/ember/5/cp-property-map/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "ember/5/cp-property-map", + "deps": ["vitest@latest"], + "engine": "jscodeshift", + "applicability": [["ember", ">=", "3.9.0"], ["ember", "<", "5.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m", + "git": "https://github.com/ember-codemods/ember-3x-codemods/tree/master/transforms/cp-property-map" + }, + "owner": "rajasegar" +} diff --git a/apps/registry/codemods/ember/5/cp-property-map/config.json b/apps/registry/codemods/ember/5/cp-property-map/config.json deleted file mode 100644 index 1007cd60b..000000000 --- a/apps/registry/codemods/ember/5/cp-property-map/config.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "ember/5/cp-property-map", - "description": "", - "engine": "jscodeshift", - "dependencyVersionLowerThan": ["ember", "5.0.0"] -} diff --git a/apps/registry/codemods/ember/5/cp-property-map/package.json b/apps/registry/codemods/ember/5/cp-property-map/package.json index e89336af1..a315efc6f 100644 --- a/apps/registry/codemods/ember/5/cp-property-map/package.json +++ b/apps/registry/codemods/ember/5/cp-property-map/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/ember/5/cp-property/README.md b/apps/registry/codemods/ember/5/cp-property/.codemod/DESCRIPTION.md similarity index 54% rename from apps/registry/codemods/ember/5/cp-property/README.md rename to apps/registry/codemods/ember/5/cp-property/.codemod/DESCRIPTION.md index 08fd8a065..61d5fc0ce 100644 --- a/apps/registry/codemods/ember/5/cp-property/README.md +++ b/apps/registry/codemods/ember/5/cp-property/.codemod/DESCRIPTION.md @@ -25,33 +25,3 @@ const Person = EmberObject.extend({ }), }); ``` - -## Applicability Criteria - -Ember.js version higher or equal to 3.9. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Autonomous**: Changes can safely be pushed and merged without further human involvement. - -### **Codemod Engine** - -jscodeshift - -### Estimated Time Saving - -~5 minutes per occurrence - -### Owner - -[Rajasegar Chandran](https://github.com/rajasegar) - -### Links for more info - -- https://deprecations.emberjs.com/v3.x/#toc_computed-property-property diff --git a/apps/registry/codemods/ember/5/cp-property/.codemod/config.json b/apps/registry/codemods/ember/5/cp-property/.codemod/config.json new file mode 100644 index 000000000..caa46bba9 --- /dev/null +++ b/apps/registry/codemods/ember/5/cp-property/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "ember/5/cp-property", + "deps": ["vitest@latest"], + "engine": "jscodeshift", + "applicability": [["ember", ">=", "3.9.0"], ["ember", "<", "5.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m", + "git": "https://github.com/ember-codemods/ember-3x-codemods/tree/master/transforms/cp-property" + }, + "owner": "rajasegar" +} diff --git a/apps/registry/codemods/ember/5/cp-property/config.json b/apps/registry/codemods/ember/5/cp-property/config.json deleted file mode 100644 index f92b5a287..000000000 --- a/apps/registry/codemods/ember/5/cp-property/config.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "ember/5/cp-property", - "description": "", - "engine": "jscodeshift", - "dependencyVersionLowerThan": ["ember", "5.0.0"] -} diff --git a/apps/registry/codemods/ember/5/cp-property/package.json b/apps/registry/codemods/ember/5/cp-property/package.json index 94a971b8a..4dd8776ef 100644 --- a/apps/registry/codemods/ember/5/cp-property/package.json +++ b/apps/registry/codemods/ember/5/cp-property/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/ember/5/cp-volatile/.codemod/DESCRIPTION.md b/apps/registry/codemods/ember/5/cp-volatile/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..851c1d202 --- /dev/null +++ b/apps/registry/codemods/ember/5/cp-volatile/.codemod/DESCRIPTION.md @@ -0,0 +1,27 @@ +# Cp Volatile + +## Description + +This codemod removes all calls to `volatile()` and ensures that native getters are directly used. + +## Example + +### Before: + +```jsx +const Person = EmberObject.extend({ + fullName: computed(function () { + return `${this.firstName} ${this.lastName}`; + }).volatile(), +}); +``` + +### After: + +```tsx +const Person = EmberObject.extend({ + get fullName() { + return `${this.firstName} ${this.lastName}`; + }, +}); +``` \ No newline at end of file diff --git a/apps/registry/codemods/ember/5/cp-volatile/.codemod/config.json b/apps/registry/codemods/ember/5/cp-volatile/.codemod/config.json new file mode 100644 index 000000000..04535b74d --- /dev/null +++ b/apps/registry/codemods/ember/5/cp-volatile/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "ember/5/cp-volatile", + "deps": ["vitest@latest"], + "engine": "jscodeshift", + "applicability": [["ember", ">=", "3.9.0"], ["ember", "<", "5.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m", + "git": "https://github.com/ember-codemods/ember-3x-codemods/tree/master/transforms/cp-volatile" + }, + "owner": "rajasegar" +} diff --git a/apps/registry/codemods/ember/5/cp-volatile/README.md b/apps/registry/codemods/ember/5/cp-volatile/README.md deleted file mode 100644 index 0689336dc..000000000 --- a/apps/registry/codemods/ember/5/cp-volatile/README.md +++ /dev/null @@ -1,57 +0,0 @@ -# Cp Volatile - -## Description - -This codemod removes all calls to `volatile()` and ensures that native getters are directly used. - -## Example - -### Before: - -```jsx -const Person = EmberObject.extend({ - fullName: computed(function () { - return `${this.firstName} ${this.lastName}`; - }).volatile(), -}); -``` - -### After: - -```tsx -const Person = EmberObject.extend({ - get fullName() { - return `${this.firstName} ${this.lastName}`; - }, -}); -``` - -## Applicability Criteria - -Ember.js version higher or equal to 3.9. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Autonomous**: Changes can safely be pushed and merged without further human involvement. - -### **Codemod Engine** - -jscodeshift - -### Estimated Time Saving - -~5 minutes per occurrence - -### Owner - -[Rajasegar Chandran](https://github.com/rajasegar) - -### Links for more info - -- https://deprecations.emberjs.com/v3.x/#toc_computed-property-volatile diff --git a/apps/registry/codemods/ember/5/cp-volatile/config.json b/apps/registry/codemods/ember/5/cp-volatile/config.json deleted file mode 100644 index ca4384940..000000000 --- a/apps/registry/codemods/ember/5/cp-volatile/config.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "ember/5/cp-volatile", - "description": "", - "engine": "jscodeshift", - "dependencyVersionLowerThan": ["ember", "5.0.0"] -} diff --git a/apps/registry/codemods/ember/5/cp-volatile/package.json b/apps/registry/codemods/ember/5/cp-volatile/package.json index 80ef5e05e..eab3f7a43 100644 --- a/apps/registry/codemods/ember/5/cp-volatile/package.json +++ b/apps/registry/codemods/ember/5/cp-volatile/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/ember/5/deprecate-merge/.codemod/DESCRIPTION.md b/apps/registry/codemods/ember/5/deprecate-merge/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..3930f76c5 --- /dev/null +++ b/apps/registry/codemods/ember/5/deprecate-merge/.codemod/DESCRIPTION.md @@ -0,0 +1,27 @@ +# Deprecate Merge + +## Description + +This codemod replaces all calls to `Ember.merge` with `Ember.assign`. + +## Example + +### Before: + +```jsx +import { merge } from '@ember/polyfills'; + +var a = { first: 'Yehuda' }; +var b = { last: 'Katz' }; +merge(a, b); +``` + +### After: + +```tsx +import { assign } from '@ember/polyfills'; + +var a = { first: 'Yehuda' }; +var b = { last: 'Katz' }; +assign(a, b); +``` \ No newline at end of file diff --git a/apps/registry/codemods/ember/5/deprecate-merge/.codemod/config.json b/apps/registry/codemods/ember/5/deprecate-merge/.codemod/config.json new file mode 100644 index 000000000..e3e5500a8 --- /dev/null +++ b/apps/registry/codemods/ember/5/deprecate-merge/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "ember/5/deprecate-merge", + "deps": ["vitest@latest"], + "engine": "jscodeshift", + "applicability": [["ember", ">=", "3.6.0"], ["ember", "<", "5.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m", + "git": "https://github.com/ember-codemods/ember-3x-codemods/tree/master/transforms/deprecate-merge" + }, + "owner": "rajasegar" +} diff --git a/apps/registry/codemods/ember/5/deprecate-merge/README.md b/apps/registry/codemods/ember/5/deprecate-merge/README.md deleted file mode 100644 index 8d51a9816..000000000 --- a/apps/registry/codemods/ember/5/deprecate-merge/README.md +++ /dev/null @@ -1,57 +0,0 @@ -# Deprecate Merge - -## Description - -This codemod replaces all calls to `Ember.merge` with `Ember.assign`. - -## Example - -### Before: - -```jsx -import { merge } from '@ember/polyfills'; - -var a = { first: 'Yehuda' }; -var b = { last: 'Katz' }; -merge(a, b); -``` - -### After: - -```tsx -import { assign } from '@ember/polyfills'; - -var a = { first: 'Yehuda' }; -var b = { last: 'Katz' }; -assign(a, b); -``` - -## Applicability Criteria - -Ember.js version higher or equal to 3.6. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Autonomous**: Changes can safely be pushed and merged without further human involvement. - -### **Codemod Engine** - -jscodeshift - -### Estimated Time Saving - -~5 minutes per occurrence - -### Owner - -[Rajasegar Chandran](https://github.com/rajasegar) - -### Links for more info - -- https://deprecations.emberjs.com/v3.x/#toc_ember-polyfills-deprecate-merge diff --git a/apps/registry/codemods/ember/5/deprecate-merge/config.json b/apps/registry/codemods/ember/5/deprecate-merge/config.json deleted file mode 100644 index 41c4c1a48..000000000 --- a/apps/registry/codemods/ember/5/deprecate-merge/config.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "ember/5/deprecate-merge", - "description": "", - "engine": "jscodeshift", - "dependencyVersionLowerThan": ["ember", "5.0.0"] -} diff --git a/apps/registry/codemods/ember/5/deprecate-merge/package.json b/apps/registry/codemods/ember/5/deprecate-merge/package.json index 47177ad8b..27485514b 100644 --- a/apps/registry/codemods/ember/5/deprecate-merge/package.json +++ b/apps/registry/codemods/ember/5/deprecate-merge/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/ember/5/deprecate-router-events/README.md b/apps/registry/codemods/ember/5/deprecate-router-events/.codemod/DESCRIPTION.md similarity index 71% rename from apps/registry/codemods/ember/5/deprecate-router-events/README.md rename to apps/registry/codemods/ember/5/deprecate-router-events/.codemod/DESCRIPTION.md index c4c1ec80b..0213a9015 100644 --- a/apps/registry/codemods/ember/5/deprecate-router-events/README.md +++ b/apps/registry/codemods/ember/5/deprecate-router-events/.codemod/DESCRIPTION.md @@ -59,33 +59,3 @@ export default Router.extend({ }, }); ``` - -## Applicability Criteria - -Ember.js version higher or equal to 3.6. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Autonomous**: Changes can safely be pushed and merged without further human involvement. - -### **Codemod Engine** - -jscodeshift - -### Estimated Time Saving - -~5 minutes per occurrence - -### Owner - -[Rajasegar Chandran](https://github.com/rajasegar) - -### Links for more info - -- https://deprecations.emberjs.com/v3.x/#toc_deprecate-router-events diff --git a/apps/registry/codemods/ember/5/deprecate-router-events/.codemod/config.json b/apps/registry/codemods/ember/5/deprecate-router-events/.codemod/config.json new file mode 100644 index 000000000..c6203bc14 --- /dev/null +++ b/apps/registry/codemods/ember/5/deprecate-router-events/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "ember/5/deprecate-router-events", + "deps": ["vitest@latest"], + "engine": "jscodeshift", + "applicability": [["ember", ">=", "3.6.0"], ["ember", "<", "5.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m", + "git": "https://github.com/ember-codemods/ember-3x-codemods/tree/master/transforms/deprecate-router-events" + }, + "owner": "rajasegar" +} diff --git a/apps/registry/codemods/ember/5/deprecate-router-events/config.json b/apps/registry/codemods/ember/5/deprecate-router-events/config.json deleted file mode 100644 index 65bfeaa35..000000000 --- a/apps/registry/codemods/ember/5/deprecate-router-events/config.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "ember/5/deprecate-router-events", - "description": "", - "engine": "jscodeshift", - "dependencyVersionLowerThan": ["ember", "5.0.0"] -} diff --git a/apps/registry/codemods/ember/5/deprecate-router-events/package.json b/apps/registry/codemods/ember/5/deprecate-router-events/package.json index 68cdee1a1..7410bd041 100644 --- a/apps/registry/codemods/ember/5/deprecate-router-events/package.json +++ b/apps/registry/codemods/ember/5/deprecate-router-events/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/ember/5/ember-jquery-legacy/README.md b/apps/registry/codemods/ember/5/ember-jquery-legacy/.codemod/DESCRIPTION.md similarity index 56% rename from apps/registry/codemods/ember/5/ember-jquery-legacy/README.md rename to apps/registry/codemods/ember/5/ember-jquery-legacy/.codemod/DESCRIPTION.md index aadb36ce0..acd2bf8d3 100644 --- a/apps/registry/codemods/ember/5/ember-jquery-legacy/README.md +++ b/apps/registry/codemods/ember/5/ember-jquery-legacy/.codemod/DESCRIPTION.md @@ -27,33 +27,3 @@ export default Component.extend({ }, }); ``` - -## Applicability Criteria - -Ember.js version higher or equal to 3.3. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Autonomous**: Changes can safely be pushed and merged without further human involvement. - -### **Codemod Engine** - -jscodeshift - -### Estimated Time Saving - -~5 minutes per occurrence - -### Owner - -[Rajasegar Chandran](https://github.com/rajasegar) - -### Links for more info - -- https://github.com/ember-codemods/ember-3x-codemods/blob/master/transforms/ember-jquery-legacy diff --git a/apps/registry/codemods/ember/5/ember-jquery-legacy/.codemod/config.json b/apps/registry/codemods/ember/5/ember-jquery-legacy/.codemod/config.json new file mode 100644 index 000000000..8bfa457ed --- /dev/null +++ b/apps/registry/codemods/ember/5/ember-jquery-legacy/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "ember/5/ember-jquery-legacy", + "deps": ["vitest@latest"], + "engine": "jscodeshift", + "applicability": [["ember", ">=", "3.3.0"], ["ember", "<", "5.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m", + "git": "https://github.com/ember-codemods/ember-3x-codemods/tree/master/transforms/ember-jquery-legacy" + }, + "owner": "rajasegar" +} diff --git a/apps/registry/codemods/ember/5/ember-jquery-legacy/config.json b/apps/registry/codemods/ember/5/ember-jquery-legacy/config.json deleted file mode 100644 index 928c32c29..000000000 --- a/apps/registry/codemods/ember/5/ember-jquery-legacy/config.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "ember/5/ember-jquery-legacy", - "description": "", - "engine": "jscodeshift", - "dependencyVersionLowerThan": ["ember", "5.0.0"] -} diff --git a/apps/registry/codemods/ember/5/ember-jquery-legacy/package.json b/apps/registry/codemods/ember/5/ember-jquery-legacy/package.json index 6e8eb2bc7..ad770e972 100644 --- a/apps/registry/codemods/ember/5/ember-jquery-legacy/package.json +++ b/apps/registry/codemods/ember/5/ember-jquery-legacy/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/ember/5/es5-getter-ember-codemod/README.md b/apps/registry/codemods/ember/5/es5-getter-ember-codemod/.codemod/DESCRIPTION.md similarity index 68% rename from apps/registry/codemods/ember/5/es5-getter-ember-codemod/README.md rename to apps/registry/codemods/ember/5/es5-getter-ember-codemod/.codemod/DESCRIPTION.md index 6ace810ea..875ccc913 100644 --- a/apps/registry/codemods/ember/5/es5-getter-ember-codemod/README.md +++ b/apps/registry/codemods/ember/5/es5-getter-ember-codemod/.codemod/DESCRIPTION.md @@ -49,33 +49,3 @@ controller.fullName; controller.get('foo.bar'); controller['foo-bar']; ``` - -## Applicability Criteria - -Ember.js version higher or equal to 3.1. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Autonomous**: Changes can safely be pushed and merged without further human involvement. - -### **Codemod Engine** - -jscodeshift - -### Estimated Time Saving - -~5 minutes per occurrence - -### Owner - -[Multiple Contributors](https://github.com/ember-codemods/es5-getter-ember-codemod/graphs/contributors) - -### Links for more info - -- https://github.com/ember-codemods/es5-getter-ember-codemod/blob/master/transforms/es5-getter-ember-codemod diff --git a/apps/registry/codemods/ember/5/es5-getter-ember-codemod/.codemod/config.json b/apps/registry/codemods/ember/5/es5-getter-ember-codemod/.codemod/config.json new file mode 100644 index 000000000..40e6b0f43 --- /dev/null +++ b/apps/registry/codemods/ember/5/es5-getter-ember-codemod/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "ember/5/es5-getter-ember-codemod", + "deps": ["vitest@latest"], + "engine": "jscodeshift", + "applicability": [["ember", ">=", "3.1.0"], ["ember", "<", "5.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m", + "git": "https://github.com/ember-codemods/ember-3x-codemods/tree/master/transforms/es5-getter-ember-codemod" + }, + "owner": "rajasegar" +} diff --git a/apps/registry/codemods/ember/5/es5-getter-ember-codemod/config.json b/apps/registry/codemods/ember/5/es5-getter-ember-codemod/config.json deleted file mode 100644 index 5aee85bc8..000000000 --- a/apps/registry/codemods/ember/5/es5-getter-ember-codemod/config.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "ember/5/es5-getter-ember-codemod", - "description": "", - "engine": "jscodeshift", - "dependencyVersionLowerThan": ["ember", "5.0.0"] -} diff --git a/apps/registry/codemods/ember/5/es5-getter-ember-codemod/package.json b/apps/registry/codemods/ember/5/es5-getter-ember-codemod/package.json index 99bad35d6..7228ba3b0 100644 --- a/apps/registry/codemods/ember/5/es5-getter-ember-codemod/package.json +++ b/apps/registry/codemods/ember/5/es5-getter-ember-codemod/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/ember/5/fpe-computed/README.md b/apps/registry/codemods/ember/5/fpe-computed/.codemod/DESCRIPTION.md similarity index 66% rename from apps/registry/codemods/ember/5/fpe-computed/README.md rename to apps/registry/codemods/ember/5/fpe-computed/.codemod/DESCRIPTION.md index 81dff643f..b9c3c11b6 100644 --- a/apps/registry/codemods/ember/5/fpe-computed/README.md +++ b/apps/registry/codemods/ember/5/fpe-computed/.codemod/DESCRIPTION.md @@ -55,33 +55,3 @@ client.get('fullName'); // 'Betty Jones' client.set('lastName', 'Fuller'); client.get('fullName'); // 'Betty Fuller' ``` - -## Applicability Criteria - -Ember.js version higher or equal to 3.11. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Autonomous**: Changes can safely be pushed and merged without further human involvement. - -### **Codemod Engine** - -jscodeshift - -### Estimated Time Saving - -~5 minutes per occurrence - -### Owner - -[Rajasegar Chandran](https://github.com/rajasegar) - -### Links for more info - -- https://github.com/ember-codemods/ember-3x-codemods/blob/master/transforms/fpe-computed diff --git a/apps/registry/codemods/ember/5/fpe-computed/.codemod/config.json b/apps/registry/codemods/ember/5/fpe-computed/.codemod/config.json new file mode 100644 index 000000000..8f13553f7 --- /dev/null +++ b/apps/registry/codemods/ember/5/fpe-computed/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "ember/5/fpe-computed", + "deps": ["vitest@latest"], + "engine": "jscodeshift", + "applicability": [["ember", ">=", "3.11.0"], ["ember", "<", "5.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m", + "git": "https://github.com/ember-codemods/ember-3x-codemods/tree/master/transforms/fpe-computed" + }, + "owner": "rajasegar" +} diff --git a/apps/registry/codemods/ember/5/fpe-computed/config.json b/apps/registry/codemods/ember/5/fpe-computed/config.json deleted file mode 100644 index 96f9cfbcc..000000000 --- a/apps/registry/codemods/ember/5/fpe-computed/config.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "ember/5/fpe-computed", - "description": "", - "engine": "jscodeshift", - "dependencyVersionLowerThan": ["ember", "5.0.0"] -} diff --git a/apps/registry/codemods/ember/5/fpe-computed/package.json b/apps/registry/codemods/ember/5/fpe-computed/package.json index 2afa297b0..2b0e69392 100644 --- a/apps/registry/codemods/ember/5/fpe-computed/package.json +++ b/apps/registry/codemods/ember/5/fpe-computed/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/ember/5/fpe-observes/.codemod/DESCRIPTION.md b/apps/registry/codemods/ember/5/fpe-observes/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..a824ce011 --- /dev/null +++ b/apps/registry/codemods/ember/5/fpe-observes/.codemod/DESCRIPTION.md @@ -0,0 +1,29 @@ +# Fpe Observes + +## Description + +## Example + +### Before: + +```jsx +import EmberObject from '@ember/object'; + +export default EmberObject.extend({ + valueObserver: function () { + // Executes whenever the "value" property changes + }.observes('value'), +}); +``` + +### After: + +```tsx +import EmberObject from '@ember/object'; + +export default EmberObject.extend({ + valueObserver: observer('value', function () { + // Executes whenever the "value" property changes + }), +}); +``` diff --git a/apps/registry/codemods/ember/5/fpe-observes/.codemod/config.json b/apps/registry/codemods/ember/5/fpe-observes/.codemod/config.json new file mode 100644 index 000000000..588c052fe --- /dev/null +++ b/apps/registry/codemods/ember/5/fpe-observes/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "ember/5/fpe-observes", + "deps": ["vitest@latest"], + "engine": "jscodeshift", + "applicability": [["ember", ">=", "3.11.0"], ["ember", "<", "5.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m", + "git": "https://github.com/ember-codemods/ember-3x-codemods/tree/master/transforms/fpe-observes" + }, + "owner": "rajasegar" +} diff --git a/apps/registry/codemods/ember/5/fpe-observes/README.md b/apps/registry/codemods/ember/5/fpe-observes/README.md deleted file mode 100644 index d4f4ba593..000000000 --- a/apps/registry/codemods/ember/5/fpe-observes/README.md +++ /dev/null @@ -1,59 +0,0 @@ -# Fpe Observes - -## Description - -## Example - -### Before: - -```jsx -import EmberObject from '@ember/object'; - -export default EmberObject.extend({ - valueObserver: function () { - // Executes whenever the "value" property changes - }.observes('value'), -}); -``` - -### After: - -```tsx -import EmberObject from '@ember/object'; - -export default EmberObject.extend({ - valueObserver: observer('value', function () { - // Executes whenever the "value" property changes - }), -}); -``` - -## Applicability Criteria - -Ember.js version higher or equal to 3.11. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Autonomous**: Changes can safely be pushed and merged without further human involvement. - -### **Codemod Engine** - -jscodeshift - -### Estimated Time Saving - -~5 minutes per occurrence - -### Owner - -[Rajasegar Chandran](https://github.com/rajasegar) - -### Links for more info - -- https://github.com/ember-codemods/ember-3x-codemods/blob/master/transforms/fpe-observes diff --git a/apps/registry/codemods/ember/5/fpe-observes/config.json b/apps/registry/codemods/ember/5/fpe-observes/config.json deleted file mode 100644 index 5e056c9a2..000000000 --- a/apps/registry/codemods/ember/5/fpe-observes/config.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "ember/5/fpe-observes", - "description": "", - "engine": "jscodeshift", - "dependencyVersionLowerThan": ["ember", "5.0.0"] -} diff --git a/apps/registry/codemods/ember/5/fpe-observes/package.json b/apps/registry/codemods/ember/5/fpe-observes/package.json index 12142f395..3c4cfaa5d 100644 --- a/apps/registry/codemods/ember/5/fpe-observes/package.json +++ b/apps/registry/codemods/ember/5/fpe-observes/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/ember/5/fpe-on/README.md b/apps/registry/codemods/ember/5/fpe-on/.codemod/DESCRIPTION.md similarity index 58% rename from apps/registry/codemods/ember/5/fpe-on/README.md rename to apps/registry/codemods/ember/5/fpe-on/.codemod/DESCRIPTION.md index 33faf5d3f..4c5ea2b5a 100644 --- a/apps/registry/codemods/ember/5/fpe-on/README.md +++ b/apps/registry/codemods/ember/5/fpe-on/.codemod/DESCRIPTION.md @@ -38,33 +38,3 @@ let job = Job.create(); sendEvent(job, 'completed'); // Logs 'Job completed!' ``` - -## Applicability Criteria - -Ember.js version higher or equal to 3.11. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Autonomous**: Changes can safely be pushed and merged without further human involvement. - -### **Codemod Engine** - -jscodeshift - -### Estimated Time Saving - -~5 minutes per occurrence - -### Owner - -[Rajasegar Chandran](https://github.com/rajasegar) - -### Links for more info - -- https://github.com/ember-codemods/ember-3x-codemods/blob/master/transforms/fpe-on diff --git a/apps/registry/codemods/ember/5/fpe-on/.codemod/config.json b/apps/registry/codemods/ember/5/fpe-on/.codemod/config.json new file mode 100644 index 000000000..6066244d5 --- /dev/null +++ b/apps/registry/codemods/ember/5/fpe-on/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "ember/5/fpe-on", + "deps": ["vitest@latest"], + "engine": "jscodeshift", + "applicability": [["ember", ">=", "3.11.0"], ["ember", "<", "5.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m", + "git": "https://github.com/ember-codemods/ember-3x-codemods/tree/master/transforms/fpe-on" + }, + "owner": "rajasegar" +} diff --git a/apps/registry/codemods/ember/5/fpe-on/config.json b/apps/registry/codemods/ember/5/fpe-on/config.json deleted file mode 100644 index c8b00a090..000000000 --- a/apps/registry/codemods/ember/5/fpe-on/config.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "ember/5/fpe-on", - "description": "", - "engine": "jscodeshift", - "dependencyVersionLowerThan": ["ember", "5.0.0"] -} diff --git a/apps/registry/codemods/ember/5/fpe-on/package.json b/apps/registry/codemods/ember/5/fpe-on/package.json index a58ed90ab..af98c152b 100644 --- a/apps/registry/codemods/ember/5/fpe-on/package.json +++ b/apps/registry/codemods/ember/5/fpe-on/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/ember/5/jquery-apis/README.md b/apps/registry/codemods/ember/5/jquery-apis/.codemod/DESCRIPTION.md similarity index 70% rename from apps/registry/codemods/ember/5/jquery-apis/README.md rename to apps/registry/codemods/ember/5/jquery-apis/.codemod/DESCRIPTION.md index 578681dfa..cc2ce8ccc 100644 --- a/apps/registry/codemods/ember/5/jquery-apis/README.md +++ b/apps/registry/codemods/ember/5/jquery-apis/.codemod/DESCRIPTION.md @@ -63,33 +63,3 @@ export default Component.extend({ }, }); ``` - -## Applicability Criteria - -Ember.js version higher or equal to 3.9. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Autonomous**: Changes can safely be pushed and merged without further human involvement. - -### **Codemod Engine** - -jscodeshift - -### Estimated Time Saving - -~5 minutes per occurrence - -### Owner - -[Rajasegar Chandran](https://github.com/rajasegar) - -### Links for more info - -- https://deprecations.emberjs.com/v3.x/#toc_jquery-apis diff --git a/apps/registry/codemods/ember/5/jquery-apis/.codemod/config.json b/apps/registry/codemods/ember/5/jquery-apis/.codemod/config.json new file mode 100644 index 000000000..e7fb17c26 --- /dev/null +++ b/apps/registry/codemods/ember/5/jquery-apis/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "ember/5/jquery-apis", + "deps": ["vitest@latest"], + "engine": "jscodeshift", + "applicability": [["ember", ">=", "3.9.0"], ["ember", "<", "5.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m", + "git": "https://github.com/ember-codemods/ember-3x-codemods/tree/master/transforms/jquery-apis" + }, + "owner": "rajasegar" +} diff --git a/apps/registry/codemods/ember/5/jquery-apis/config.json b/apps/registry/codemods/ember/5/jquery-apis/config.json deleted file mode 100644 index c9752c223..000000000 --- a/apps/registry/codemods/ember/5/jquery-apis/config.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "ember/5/jquery-apis", - "description": "", - "engine": "jscodeshift", - "dependencyVersionLowerThan": ["ember", "5.0.0"] -} diff --git a/apps/registry/codemods/ember/5/jquery-apis/package.json b/apps/registry/codemods/ember/5/jquery-apis/package.json index 58b85204a..e82697190 100644 --- a/apps/registry/codemods/ember/5/jquery-apis/package.json +++ b/apps/registry/codemods/ember/5/jquery-apis/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/ember/5/jquery-event/README.md b/apps/registry/codemods/ember/5/jquery-event/.codemod/DESCRIPTION.md similarity index 53% rename from apps/registry/codemods/ember/5/jquery-event/README.md rename to apps/registry/codemods/ember/5/jquery-event/.codemod/DESCRIPTION.md index 1c25a8671..abb850bec 100644 --- a/apps/registry/codemods/ember/5/jquery-event/README.md +++ b/apps/registry/codemods/ember/5/jquery-event/.codemod/DESCRIPTION.md @@ -27,33 +27,3 @@ export default Component.extend({ }, }); ``` - -## Applicability Criteria - -Ember.js version higher or equal to 3.3. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Autonomous**: Changes can safely be pushed and merged without further human involvement. - -### **Codemod Engine** - -jscodeshift - -### Estimated Time Saving - -~5 minutes per occurrence - -### Owner - -[Rajasegar Chandran](https://github.com/rajasegar) - -### Links for more info - -- https://github.com/ember-codemods/ember-3x-codemods/blob/master/transforms/jquery-event diff --git a/apps/registry/codemods/ember/5/jquery-event/.codemod/config.json b/apps/registry/codemods/ember/5/jquery-event/.codemod/config.json new file mode 100644 index 000000000..cd7b3ff87 --- /dev/null +++ b/apps/registry/codemods/ember/5/jquery-event/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "ember/5/jquery-event", + "deps": ["vitest@latest"], + "engine": "jscodeshift", + "applicability": [["ember", ">=", "3.3.0"], ["ember", "<", "5.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m", + "git": "https://github.com/ember-codemods/ember-3x-codemods/tree/master/transforms/jquery-event" + }, + "owner": "rajasegar" +} diff --git a/apps/registry/codemods/ember/5/jquery-event/config.json b/apps/registry/codemods/ember/5/jquery-event/config.json deleted file mode 100644 index c2c3afc04..000000000 --- a/apps/registry/codemods/ember/5/jquery-event/config.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "ember/5/jquery-event", - "description": "", - "engine": "jscodeshift", - "dependencyVersionLowerThan": ["ember", "5.0.0"] -} diff --git a/apps/registry/codemods/ember/5/jquery-event/package.json b/apps/registry/codemods/ember/5/jquery-event/package.json index 6796a619e..810e950c9 100644 --- a/apps/registry/codemods/ember/5/jquery-event/package.json +++ b/apps/registry/codemods/ember/5/jquery-event/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/ember/5/notify-property-change/README.md b/apps/registry/codemods/ember/5/notify-property-change/.codemod/DESCRIPTION.md similarity index 53% rename from apps/registry/codemods/ember/5/notify-property-change/README.md rename to apps/registry/codemods/ember/5/notify-property-change/.codemod/DESCRIPTION.md index 70d28f06a..7af67ebce 100644 --- a/apps/registry/codemods/ember/5/notify-property-change/README.md +++ b/apps/registry/codemods/ember/5/notify-property-change/.codemod/DESCRIPTION.md @@ -27,33 +27,3 @@ Ember.notifyPropertyChange(object, 'someProperty'); doStuff(object); object.notifyPropertyChange('someProperty'); ``` - -## Applicability Criteria - -Ember.js version higher or equal to 3.1. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Autonomous**: Changes can safely be pushed and merged without further human involvement. - -### **Codemod Engine** - -jscodeshift - -### Estimated Time Saving - -~5 minutes per occurrence - -### Owner - -[Rajasegar Chandran](https://github.com/rajasegar) - -### Links for more info - -- https://github.com/ember-codemods/ember-3x-codemods/blob/master/transforms/notify-property-change diff --git a/apps/registry/codemods/ember/5/notify-property-change/.codemod/config.json b/apps/registry/codemods/ember/5/notify-property-change/.codemod/config.json new file mode 100644 index 000000000..75c62925b --- /dev/null +++ b/apps/registry/codemods/ember/5/notify-property-change/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "ember/5/notify-property-change", + "deps": ["vitest@latest"], + "engine": "jscodeshift", + "applicability": [["ember", ">=", "3.1.0"], ["ember", "<", "5.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m", + "git": "https://github.com/ember-codemods/ember-3x-codemods/tree/master/transforms/notify-property-change" + }, + "owner": "rajasegar" +} diff --git a/apps/registry/codemods/ember/5/notify-property-change/config.json b/apps/registry/codemods/ember/5/notify-property-change/config.json deleted file mode 100644 index 1c27b4cfc..000000000 --- a/apps/registry/codemods/ember/5/notify-property-change/config.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "ember/5/notify-property-change", - "description": "", - "engine": "jscodeshift", - "dependencyVersionLowerThan": ["ember", "5.0.0"] -} diff --git a/apps/registry/codemods/ember/5/notify-property-change/package.json b/apps/registry/codemods/ember/5/notify-property-change/package.json index b274fbf9b..b1f7a5f6b 100644 --- a/apps/registry/codemods/ember/5/notify-property-change/package.json +++ b/apps/registry/codemods/ember/5/notify-property-change/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/ember/5/object-new-constructor/README.md b/apps/registry/codemods/ember/5/object-new-constructor/.codemod/DESCRIPTION.md similarity index 60% rename from apps/registry/codemods/ember/5/object-new-constructor/README.md rename to apps/registry/codemods/ember/5/object-new-constructor/.codemod/DESCRIPTION.md index 987dc8711..50d51b472 100644 --- a/apps/registry/codemods/ember/5/object-new-constructor/README.md +++ b/apps/registry/codemods/ember/5/object-new-constructor/.codemod/DESCRIPTION.md @@ -25,33 +25,3 @@ let obj2 = EmberObject.create({ prop: 'value' }); const Foo = EmberObject.extend(); let foo = new Foo({ bar: 123 }); ``` - -## Applicability Criteria - -Ember.js version higher or equal to 3.6. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Autonomous**: Changes can safely be pushed and merged without further human involvement. - -### **Codemod Engine** - -jscodeshift - -### Estimated Time Saving - -~5 minutes per occurrence - -### Owner - -[Rajasegar Chandran](https://github.com/rajasegar) - -### Links for more info - -- https://deprecations.emberjs.com/v3.x/#toc_object-new-constructor diff --git a/apps/registry/codemods/ember/5/object-new-constructor/.codemod/config.json b/apps/registry/codemods/ember/5/object-new-constructor/.codemod/config.json new file mode 100644 index 000000000..fe1a2c903 --- /dev/null +++ b/apps/registry/codemods/ember/5/object-new-constructor/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "ember/5/object-new-constructor", + "deps": ["vitest@latest"], + "engine": "jscodeshift", + "applicability": [["ember", ">=", "3.6.0"], ["ember", "<", "5.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m", + "git": "https://github.com/ember-codemods/ember-3x-codemods/tree/master/transforms/object-new-constructor" + }, + "owner": "rajasegar" +} diff --git a/apps/registry/codemods/ember/5/object-new-constructor/config.json b/apps/registry/codemods/ember/5/object-new-constructor/config.json deleted file mode 100644 index 4d465918f..000000000 --- a/apps/registry/codemods/ember/5/object-new-constructor/config.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "ember/5/object-new-constructor", - "description": "", - "engine": "jscodeshift", - "dependencyVersionLowerThan": ["ember", "5.0.0"] -} diff --git a/apps/registry/codemods/ember/5/object-new-constructor/package.json b/apps/registry/codemods/ember/5/object-new-constructor/package.json index 17fa7296f..acc03c4cc 100644 --- a/apps/registry/codemods/ember/5/object-new-constructor/package.json +++ b/apps/registry/codemods/ember/5/object-new-constructor/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/eslint/biome/migrate-rules/README.md b/apps/registry/codemods/eslint/biome/migrate-rules/.codemod/DESCRIPTION.md similarity index 84% rename from apps/registry/codemods/eslint/biome/migrate-rules/README.md rename to apps/registry/codemods/eslint/biome/migrate-rules/.codemod/DESCRIPTION.md index 4a2287674..1d70ef1f3 100644 --- a/apps/registry/codemods/eslint/biome/migrate-rules/README.md +++ b/apps/registry/codemods/eslint/biome/migrate-rules/.codemod/DESCRIPTION.md @@ -48,7 +48,7 @@ This codemod requires internet connection. "eslintIgnore": ["ignore-key"], "files": [ "prettier-test-no-replace", - "README.md", + "DESCRIPTION.md", "config.json", "./dist/index.cjs", "./index.d.ts" @@ -82,7 +82,7 @@ This codemod requires internet connection. }, "files": [ "prettier-test-no-replace", - "README.md", + "DESCRIPTION.md", "config.json", "./dist/index.cjs", "./index.d.ts" @@ -150,36 +150,4 @@ This codemod requires internet connection. "indentStyle": "tab" } } -``` - -## Applicability Criteria - -`eslint` >= 0.0.0 || `prettier` >= 0.0.0 - -## Other Metadata - -Command: - -```bash -npx eslint --print-config | codemod eslint/biome/migrate-rules -``` - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Autonomous**: Changes can safely be pushed and merged without further human involvement. - -### **Codemod Engine** - -[filemod](https://github.com/codemod-com/filemod/) - -### Estimated Time Saving - -4 hours per project with configured eslint and/or prettier - -### Owner - -[Codemod.com](https://github.com/codemod-com) +``` \ No newline at end of file diff --git a/apps/registry/codemods/eslint/biome/migrate-rules/.codemod/config.json b/apps/registry/codemods/eslint/biome/migrate-rules/.codemod/config.json new file mode 100644 index 000000000..1e72b9eaa --- /dev/null +++ b/apps/registry/codemods/eslint/biome/migrate-rules/.codemod/config.json @@ -0,0 +1,13 @@ +{ + "version": "1.0.0", + "name": "biome/migrate-rules", + "private": false, + "engine": "filemod", + "applicability": [["eslint", ">=", "0.0.0"], ["prettier", ">=", "0.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "4h" + }, + "owner": "codemod.com" +} diff --git a/apps/registry/codemods/eslint/biome/migrate-rules/config.json b/apps/registry/codemods/eslint/biome/migrate-rules/config.json deleted file mode 100644 index 4266fc851..000000000 --- a/apps/registry/codemods/eslint/biome/migrate-rules/config.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "engine": "filemod" -} diff --git a/apps/registry/codemods/eslint/biome/migrate-rules/package.json b/apps/registry/codemods/eslint/biome/migrate-rules/package.json index 174d9bded..4a1500bea 100644 --- a/apps/registry/codemods/eslint/biome/migrate-rules/package.json +++ b/apps/registry/codemods/eslint/biome/migrate-rules/package.json @@ -23,6 +23,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/eslint/biome/migrate-rules/test/test.ts b/apps/registry/codemods/eslint/biome/migrate-rules/test/test.ts index 244810153..dbc907348 100644 --- a/apps/registry/codemods/eslint/biome/migrate-rules/test/test.ts +++ b/apps/registry/codemods/eslint/biome/migrate-rules/test/test.ts @@ -67,7 +67,7 @@ describe("eslint and prettier to biome migration", () => { "eslintIgnore": ["ignore-key"], "files": [ "prettier-test-no-replace", - "README.md", + "DESCRIPTION.md", "config.json", "./dist/index.cjs", "./index.d.ts" @@ -163,7 +163,7 @@ describe("eslint and prettier to biome migration", () => { }, "files": [ "prettier-test-no-replace", - "README.md", + "DESCRIPTION.md", "config.json", "./dist/index.cjs", "./index.d.ts" diff --git a/apps/registry/codemods/i18n/README.md b/apps/registry/codemods/i18n/.codemod/DESCRIPTION.md similarity index 59% rename from apps/registry/codemods/i18n/README.md rename to apps/registry/codemods/i18n/.codemod/DESCRIPTION.md index 4cecacd56..af92f2d77 100644 --- a/apps/registry/codemods/i18n/README.md +++ b/apps/registry/codemods/i18n/.codemod/DESCRIPTION.md @@ -27,30 +27,4 @@ export default function A() { "key1": "key1", "key2": "key2" } -``` - -## Applicability Criteria - -Any version of i18n. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Autonomous**: Changes can safely be pushed and merged without further human involvement. - -### **Codemod Engine** - -Codemod.com File Transformation Engine - -### Estimated Time Saving - -~3 minutes per occurrence - -### Owner - -[Codemod.com](https://github.com/codemod-com) +``` \ No newline at end of file diff --git a/apps/registry/codemods/i18n/.codemod/config.json b/apps/registry/codemods/i18n/.codemod/config.json new file mode 100644 index 000000000..2c49e4412 --- /dev/null +++ b/apps/registry/codemods/i18n/.codemod/config.json @@ -0,0 +1,14 @@ +{ + "version": "1.0.0", + "private": false, + "name": "i18n/remove-unused-translations", + "description": "This codemod removes unused translation phrases from i18n resources", + "engine": "filemod", + "owner": "codemod.com", + "applicabillity": ["i18n", ">=", "0.0.0"], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "3m" + } +} diff --git a/apps/registry/codemods/i18n/config.json b/apps/registry/codemods/i18n/config.json deleted file mode 100644 index c90af3459..000000000 --- a/apps/registry/codemods/i18n/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "i18n/remove-unused-translations", - "description": "This codemod removes unused translation phrases from i18n resources", - "engine": "filemod", - "dependencyVersionLowerThan": [], - "owner": "codemod.com" -} diff --git a/apps/registry/codemods/i18n/package.json b/apps/registry/codemods/i18n/package.json index 3fe1c481a..c4f4eeed9 100644 --- a/apps/registry/codemods/i18n/package.json +++ b/apps/registry/codemods/i18n/package.json @@ -23,6 +23,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/immutable/0/add-deprecation-comment/.codemod/DESCRIPTION.md b/apps/registry/codemods/immutable/0/add-deprecation-comment/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..e69de29bb diff --git a/apps/registry/codemods/immutable/0/add-deprecation-comment/.codemod/config.json b/apps/registry/codemods/immutable/0/add-deprecation-comment/.codemod/config.json new file mode 100644 index 000000000..ba89c94d3 --- /dev/null +++ b/apps/registry/codemods/immutable/0/add-deprecation-comment/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "immutable/0/add-deprecation-comment", + "deps": ["vitest@latest"], + "engine": "jscodeshift", + "extensions": ["js*", "ts*"], + "applicability": [["immutable", ">=", "0.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + }, + "owner": "codemod.com" +} diff --git a/apps/registry/codemods/immutable/0/add-deprecation-comment/config.json b/apps/registry/codemods/immutable/0/add-deprecation-comment/config.json deleted file mode 100644 index 19ad45c78..000000000 --- a/apps/registry/codemods/immutable/0/add-deprecation-comment/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "immutable/0/add-deprecation-comment", - "description": "", - "engine": "jscodeshift", - "extensions": ["js*", "ts*"], - "dependency": "immutable" -} diff --git a/apps/registry/codemods/immutable/0/add-deprecation-comment/package.json b/apps/registry/codemods/immutable/0/add-deprecation-comment/package.json index 17cd1458c..36e6d7327 100644 --- a/apps/registry/codemods/immutable/0/add-deprecation-comment/package.json +++ b/apps/registry/codemods/immutable/0/add-deprecation-comment/package.json @@ -15,6 +15,11 @@ "main": "./dist/index.cjs", "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/immutable/0/nest-from-js/.codemod/DESCRIPTION.md b/apps/registry/codemods/immutable/0/nest-from-js/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..e69de29bb diff --git a/apps/registry/codemods/immutable/0/nest-from-js/.codemod/config.json b/apps/registry/codemods/immutable/0/nest-from-js/.codemod/config.json new file mode 100644 index 000000000..701757242 --- /dev/null +++ b/apps/registry/codemods/immutable/0/nest-from-js/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "immutable/0/nest-from-js", + "deps": ["vitest@latest"], + "engine": "jscodeshift", + "extensions": ["js*", "ts*"], + "applicability": [["immutable", ">=", "0.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + }, + "owner": "codemod.com" +} diff --git a/apps/registry/codemods/immutable/0/nest-from-js/config.json b/apps/registry/codemods/immutable/0/nest-from-js/config.json deleted file mode 100644 index 9aa715099..000000000 --- a/apps/registry/codemods/immutable/0/nest-from-js/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "immutable/0/nest-from-js", - "description": "", - "engine": "jscodeshift", - "extensions": ["js*", "ts*"], - "dependency": "immutable" -} diff --git a/apps/registry/codemods/immutable/0/nest-from-js/package.json b/apps/registry/codemods/immutable/0/nest-from-js/package.json index ce10ae1bb..b601201c3 100644 --- a/apps/registry/codemods/immutable/0/nest-from-js/package.json +++ b/apps/registry/codemods/immutable/0/nest-from-js/package.json @@ -15,6 +15,11 @@ "main": "./dist/index.cjs", "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/immutable/0/remove-from-js/.codemod/DESCRIPTION.md b/apps/registry/codemods/immutable/0/remove-from-js/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..e69de29bb diff --git a/apps/registry/codemods/immutable/0/remove-from-js/.codemod/config.json b/apps/registry/codemods/immutable/0/remove-from-js/.codemod/config.json new file mode 100644 index 000000000..d4556c8cc --- /dev/null +++ b/apps/registry/codemods/immutable/0/remove-from-js/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "immutable/0/remove-from-js", + "deps": ["vitest@latest"], + "engine": "jscodeshift", + "extensions": ["js*", "ts*"], + "applicability": [["immutable", ">=", "0.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + }, + "owner": "codemod.com" +} diff --git a/apps/registry/codemods/immutable/0/remove-from-js/config.json b/apps/registry/codemods/immutable/0/remove-from-js/config.json deleted file mode 100644 index 4583c29de..000000000 --- a/apps/registry/codemods/immutable/0/remove-from-js/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "immutable/0/remove-from-js", - "description": "", - "engine": "jscodeshift", - "extensions": ["js*", "ts*"], - "dependency": "immutable" -} diff --git a/apps/registry/codemods/immutable/0/remove-from-js/package.json b/apps/registry/codemods/immutable/0/remove-from-js/package.json index c0e98bcf0..aa11a65ec 100644 --- a/apps/registry/codemods/immutable/0/remove-from-js/package.json +++ b/apps/registry/codemods/immutable/0/remove-from-js/package.json @@ -15,6 +15,11 @@ "main": "./dist/index.cjs", "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/immutable/0/remove-import/.codemod/DESCRIPTION.md b/apps/registry/codemods/immutable/0/remove-import/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..e69de29bb diff --git a/apps/registry/codemods/immutable/0/remove-import/.codemod/config.json b/apps/registry/codemods/immutable/0/remove-import/.codemod/config.json new file mode 100644 index 000000000..fb43b0edd --- /dev/null +++ b/apps/registry/codemods/immutable/0/remove-import/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "immutable/0/remove-import", + "deps": ["vitest@latest"], + "engine": "jscodeshift", + "extensions": ["js*", "ts*"], + "applicability": [["immutable", ">=", "0.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + }, + "owner": "codemod.com" +} diff --git a/apps/registry/codemods/immutable/0/remove-import/config.json b/apps/registry/codemods/immutable/0/remove-import/config.json deleted file mode 100644 index 27bd255a3..000000000 --- a/apps/registry/codemods/immutable/0/remove-import/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "immutable/0/remove-import", - "description": "", - "engine": "jscodeshift", - "extensions": ["js*", "ts*"], - "dependency": "immutable" -} diff --git a/apps/registry/codemods/immutable/0/remove-import/package.json b/apps/registry/codemods/immutable/0/remove-import/package.json index d624fe32f..27a39a285 100644 --- a/apps/registry/codemods/immutable/0/remove-import/package.json +++ b/apps/registry/codemods/immutable/0/remove-import/package.json @@ -15,6 +15,11 @@ "main": "./dist/index.cjs", "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/immutable/0/remove-to-js/.codemod/DESCRIPTION.md b/apps/registry/codemods/immutable/0/remove-to-js/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..e69de29bb diff --git a/apps/registry/codemods/immutable/0/remove-to-js/.codemod/config.json b/apps/registry/codemods/immutable/0/remove-to-js/.codemod/config.json new file mode 100644 index 000000000..8ec86cffd --- /dev/null +++ b/apps/registry/codemods/immutable/0/remove-to-js/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "immutable/0/remove-to-js", + "deps": ["vitest@latest"], + "engine": "jscodeshift", + "extensions": ["js*", "ts*"], + "applicability": [["immutable", ">=", "0.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + }, + "owner": "codemod.com" +} diff --git a/apps/registry/codemods/immutable/0/remove-to-js/config.json b/apps/registry/codemods/immutable/0/remove-to-js/config.json deleted file mode 100644 index 70b7d15fe..000000000 --- a/apps/registry/codemods/immutable/0/remove-to-js/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "immutable/0/remove-to-js", - "description": "", - "engine": "jscodeshift", - "extensions": ["js*", "ts*"], - "dependency": "immutable" -} diff --git a/apps/registry/codemods/immutable/0/remove-to-js/package.json b/apps/registry/codemods/immutable/0/remove-to-js/package.json index 004960182..f0b83b752 100644 --- a/apps/registry/codemods/immutable/0/remove-to-js/package.json +++ b/apps/registry/codemods/immutable/0/remove-to-js/package.json @@ -15,6 +15,11 @@ "main": "./dist/index.cjs", "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/immutable/0/replace-get-in/.codemod/DESCRIPTION.md b/apps/registry/codemods/immutable/0/replace-get-in/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..e69de29bb diff --git a/apps/registry/codemods/immutable/0/replace-get-in/.codemod/config.json b/apps/registry/codemods/immutable/0/replace-get-in/.codemod/config.json new file mode 100644 index 000000000..66a337bb4 --- /dev/null +++ b/apps/registry/codemods/immutable/0/replace-get-in/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "immutable/0/replace-get-in", + "deps": ["vitest@latest"], + "engine": "jscodeshift", + "extensions": ["js*", "ts*"], + "applicability": [["immutable", ">=", "0.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + }, + "owner": "codemod.com" +} diff --git a/apps/registry/codemods/immutable/0/replace-get-in/config.json b/apps/registry/codemods/immutable/0/replace-get-in/config.json deleted file mode 100644 index a4c513741..000000000 --- a/apps/registry/codemods/immutable/0/replace-get-in/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "immutable/0/replace-get-in", - "description": "", - "engine": "jscodeshift", - "extensions": ["js*", "ts*"], - "dependency": "immutable" -} diff --git a/apps/registry/codemods/immutable/0/replace-get-in/package.json b/apps/registry/codemods/immutable/0/replace-get-in/package.json index b977e05a0..8ff0336be 100644 --- a/apps/registry/codemods/immutable/0/replace-get-in/package.json +++ b/apps/registry/codemods/immutable/0/replace-get-in/package.json @@ -15,6 +15,11 @@ "main": "./dist/index.cjs", "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/immutable/0/replace-get/.codemod/DESCRIPTION.md b/apps/registry/codemods/immutable/0/replace-get/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..e69de29bb diff --git a/apps/registry/codemods/immutable/0/replace-get/.codemod/config.json b/apps/registry/codemods/immutable/0/replace-get/.codemod/config.json new file mode 100644 index 000000000..32bb5be54 --- /dev/null +++ b/apps/registry/codemods/immutable/0/replace-get/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "immutable/0/replace-get", + "deps": ["vitest@latest"], + "engine": "jscodeshift", + "extensions": ["js*", "ts*"], + "applicability": [["immutable", ">=", "0.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + }, + "owner": "codemod.com" +} diff --git a/apps/registry/codemods/immutable/0/replace-get/config.json b/apps/registry/codemods/immutable/0/replace-get/config.json deleted file mode 100644 index 751e32f79..000000000 --- a/apps/registry/codemods/immutable/0/replace-get/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "immutable/0/replace-get", - "description": "", - "engine": "jscodeshift", - "extensions": ["js*", "ts*"], - "dependency": "immutable" -} diff --git a/apps/registry/codemods/immutable/0/replace-get/package.json b/apps/registry/codemods/immutable/0/replace-get/package.json index 0e91915ef..4b3919dea 100644 --- a/apps/registry/codemods/immutable/0/replace-get/package.json +++ b/apps/registry/codemods/immutable/0/replace-get/package.json @@ -15,6 +15,11 @@ "main": "./dist/index.cjs", "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/immutable/0/replace-merge/.codemod/DESCRIPTION.md b/apps/registry/codemods/immutable/0/replace-merge/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..e69de29bb diff --git a/apps/registry/codemods/immutable/0/replace-merge/.codemod/config.json b/apps/registry/codemods/immutable/0/replace-merge/.codemod/config.json new file mode 100644 index 000000000..0209919b2 --- /dev/null +++ b/apps/registry/codemods/immutable/0/replace-merge/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "immutable/0/replace-merge", + "deps": ["vitest@latest"], + "engine": "jscodeshift", + "extensions": ["js*", "ts*"], + "applicability": [["immutable", ">=", "0.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + }, + "owner": "codemod.com" +} diff --git a/apps/registry/codemods/immutable/0/replace-merge/config.json b/apps/registry/codemods/immutable/0/replace-merge/config.json deleted file mode 100644 index af7042f8f..000000000 --- a/apps/registry/codemods/immutable/0/replace-merge/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "immutable/0/replace-merge", - "description": "", - "engine": "jscodeshift", - "extensions": ["js*", "ts*"], - "dependency": "immutable" -} diff --git a/apps/registry/codemods/immutable/0/replace-merge/package.json b/apps/registry/codemods/immutable/0/replace-merge/package.json index 7b996c959..d458ab583 100644 --- a/apps/registry/codemods/immutable/0/replace-merge/package.json +++ b/apps/registry/codemods/immutable/0/replace-merge/package.json @@ -15,6 +15,11 @@ "main": "./dist/index.cjs", "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/immutable/0/replace-set-in/.codemod/DESCRIPTION.md b/apps/registry/codemods/immutable/0/replace-set-in/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..e69de29bb diff --git a/apps/registry/codemods/immutable/0/replace-set-in/.codemod/config.json b/apps/registry/codemods/immutable/0/replace-set-in/.codemod/config.json new file mode 100644 index 000000000..2b061d4a5 --- /dev/null +++ b/apps/registry/codemods/immutable/0/replace-set-in/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "immutable/0/replace-set-in", + "deps": ["vitest@latest"], + "engine": "jscodeshift", + "extensions": ["js*", "ts*"], + "applicability": [["immutable", ">=", "0.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + }, + "owner": "codemod.com" +} diff --git a/apps/registry/codemods/immutable/0/replace-set-in/config.json b/apps/registry/codemods/immutable/0/replace-set-in/config.json deleted file mode 100644 index 9d6f0fc89..000000000 --- a/apps/registry/codemods/immutable/0/replace-set-in/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "immutable/0/replace-set-in", - "description": "", - "engine": "jscodeshift", - "extensions": ["js*", "ts*"], - "dependency": "immutable" -} diff --git a/apps/registry/codemods/immutable/0/replace-set-in/package.json b/apps/registry/codemods/immutable/0/replace-set-in/package.json index 612e2a777..6453c9bcd 100644 --- a/apps/registry/codemods/immutable/0/replace-set-in/package.json +++ b/apps/registry/codemods/immutable/0/replace-set-in/package.json @@ -15,6 +15,11 @@ "main": "./dist/index.cjs", "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/immutable/0/replace-set/.codemod/DESCRIPTION.md b/apps/registry/codemods/immutable/0/replace-set/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..e69de29bb diff --git a/apps/registry/codemods/immutable/0/replace-set/.codemod/config.json b/apps/registry/codemods/immutable/0/replace-set/.codemod/config.json new file mode 100644 index 000000000..9c80c48c8 --- /dev/null +++ b/apps/registry/codemods/immutable/0/replace-set/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "immutable/0/replace-set", + "deps": ["vitest@latest"], + "engine": "jscodeshift", + "extensions": ["js*", "ts*"], + "applicability": [["immutable", ">=", "0.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + }, + "owner": "codemod.com" +} diff --git a/apps/registry/codemods/immutable/0/replace-set/config.json b/apps/registry/codemods/immutable/0/replace-set/config.json deleted file mode 100644 index 3a19626f8..000000000 --- a/apps/registry/codemods/immutable/0/replace-set/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "immutable/0/replace-set", - "description": "", - "engine": "jscodeshift", - "extensions": ["js*", "ts*"], - "dependency": "immutable" -} diff --git a/apps/registry/codemods/immutable/0/replace-set/package.json b/apps/registry/codemods/immutable/0/replace-set/package.json index 6b3982676..4384eeac7 100644 --- a/apps/registry/codemods/immutable/0/replace-set/package.json +++ b/apps/registry/codemods/immutable/0/replace-set/package.json @@ -15,6 +15,11 @@ "main": "./dist/index.cjs", "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/immutable/4/isterable-to-iscollection/.codemod/DESCRIPTION.md b/apps/registry/codemods/immutable/4/isterable-to-iscollection/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..e69de29bb diff --git a/apps/registry/codemods/immutable/4/isterable-to-iscollection/.codemod/config.json b/apps/registry/codemods/immutable/4/isterable-to-iscollection/.codemod/config.json new file mode 100644 index 000000000..c86efbf86 --- /dev/null +++ b/apps/registry/codemods/immutable/4/isterable-to-iscollection/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "immutable/4/isterable-to-iscollection", + "deps": ["vitest@latest"], + "engine": "jscodeshift", + "extensions": ["js*", "ts*"], + "applicability": [["immutable", "<", "4.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + }, + "owner": "codemod.com" +} diff --git a/apps/registry/codemods/immutable/4/isterable-to-iscollection/config.json b/apps/registry/codemods/immutable/4/isterable-to-iscollection/config.json deleted file mode 100644 index ca3006050..000000000 --- a/apps/registry/codemods/immutable/4/isterable-to-iscollection/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "immutable/4/isterable-to-iscollection", - "description": "", - "engine": "jscodeshift", - "extensions": ["js*", "ts*"], - "dependencyVersionLowerThan": ["immutable", "4.0.0"] -} diff --git a/apps/registry/codemods/immutable/4/isterable-to-iscollection/package.json b/apps/registry/codemods/immutable/4/isterable-to-iscollection/package.json index c9e7e006c..bba31dff7 100644 --- a/apps/registry/codemods/immutable/4/isterable-to-iscollection/package.json +++ b/apps/registry/codemods/immutable/4/isterable-to-iscollection/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/immutable/4/map-to-array/.codemod/DESCRIPTION.md b/apps/registry/codemods/immutable/4/map-to-array/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..e69de29bb diff --git a/apps/registry/codemods/immutable/4/map-to-array/.codemod/config.json b/apps/registry/codemods/immutable/4/map-to-array/.codemod/config.json new file mode 100644 index 000000000..c18626f7f --- /dev/null +++ b/apps/registry/codemods/immutable/4/map-to-array/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "immutable/4/map-to-array", + "deps": ["vitest@latest"], + "engine": "jscodeshift", + "extensions": ["js*", "ts*"], + "applicability": [["immutable", "<", "4.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + }, + "owner": "codemod.com" +} diff --git a/apps/registry/codemods/immutable/4/map-to-array/config.json b/apps/registry/codemods/immutable/4/map-to-array/config.json deleted file mode 100644 index e7d219a92..000000000 --- a/apps/registry/codemods/immutable/4/map-to-array/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "immutable/4/map-to-array", - "description": "", - "engine": "jscodeshift", - "extensions": ["js*", "ts*"], - "dependencyVersionLowerThan": ["immutable", "4.0.0"] -} diff --git a/apps/registry/codemods/immutable/4/map-to-array/package.json b/apps/registry/codemods/immutable/4/map-to-array/package.json index 1e29eb68f..79523a927 100644 --- a/apps/registry/codemods/immutable/4/map-to-array/package.json +++ b/apps/registry/codemods/immutable/4/map-to-array/package.json @@ -15,6 +15,11 @@ "main": "./dist/index.cjs", "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.js" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/immutable/4/rename-to-seq/.codemod/DESCRIPTION.md b/apps/registry/codemods/immutable/4/rename-to-seq/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..e69de29bb diff --git a/apps/registry/codemods/immutable/4/rename-to-seq/.codemod/config.json b/apps/registry/codemods/immutable/4/rename-to-seq/.codemod/config.json new file mode 100644 index 000000000..5ff9519cc --- /dev/null +++ b/apps/registry/codemods/immutable/4/rename-to-seq/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "immutable/4/rename-to-seq", + "deps": ["vitest@latest"], + "engine": "jscodeshift", + "extensions": ["js*", "ts*"], + "applicability": [["immutable", "<", "4.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + }, + "owner": "codemod.com" +} diff --git a/apps/registry/codemods/immutable/4/rename-to-seq/config.json b/apps/registry/codemods/immutable/4/rename-to-seq/config.json deleted file mode 100644 index ecebe01d5..000000000 --- a/apps/registry/codemods/immutable/4/rename-to-seq/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "immutable/4/rename-to-seq", - "description": "", - "engine": "jscodeshift", - "extensions": ["js*", "ts*"], - "dependencyVersionLowerThan": ["immutable", "4.0.0"] -} diff --git a/apps/registry/codemods/immutable/4/rename-to-seq/package.json b/apps/registry/codemods/immutable/4/rename-to-seq/package.json index 10bb0002e..b4b122c6f 100644 --- a/apps/registry/codemods/immutable/4/rename-to-seq/package.json +++ b/apps/registry/codemods/immutable/4/rename-to-seq/package.json @@ -15,6 +15,11 @@ "main": "./dist/index.cjs", "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.js" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/intuita/migrate-codemod-registry/.codemod/DESCRIPTION.md b/apps/registry/codemods/intuita/migrate-codemod-registry/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..e69de29bb diff --git a/apps/registry/codemods/intuita/migrate-codemod-registry/.codemod/config.json b/apps/registry/codemods/intuita/migrate-codemod-registry/.codemod/config.json new file mode 100644 index 000000000..e9b9d9f19 --- /dev/null +++ b/apps/registry/codemods/intuita/migrate-codemod-registry/.codemod/config.json @@ -0,0 +1,10 @@ +{ + "version": "1.0.0", + "private": false, + "engine": "filemod", + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + } +} diff --git a/apps/registry/codemods/intuita/migrate-codemod-registry/config.json b/apps/registry/codemods/intuita/migrate-codemod-registry/config.json deleted file mode 100644 index 4266fc851..000000000 --- a/apps/registry/codemods/intuita/migrate-codemod-registry/config.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "engine": "filemod" -} diff --git a/apps/registry/codemods/intuita/migrate-codemod-registry/package.json b/apps/registry/codemods/intuita/migrate-codemod-registry/package.json index f06e9c4b0..c9e01f7a7 100644 --- a/apps/registry/codemods/intuita/migrate-codemod-registry/package.json +++ b/apps/registry/codemods/intuita/migrate-codemod-registry/package.json @@ -18,6 +18,11 @@ "main": "./dist/index.cjs", "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/intuita/migrate-codemod-registry/src/index.ts b/apps/registry/codemods/intuita/migrate-codemod-registry/src/index.ts index 400f02d49..e4edeb01a 100644 --- a/apps/registry/codemods/intuita/migrate-codemod-registry/src/index.ts +++ b/apps/registry/codemods/intuita/migrate-codemod-registry/src/index.ts @@ -325,7 +325,7 @@ const handleData: HandleData = async ( scripts.test = "mocha"; } - const files: string[] = ["README.md", "config.json"]; + const files: string[] = ["DESCRIPTION.md", "config.json"]; if (jsEngineUsed) { files.push("./dist/index.cjs", "./index.d.ts"); diff --git a/apps/registry/codemods/jest/vitest/.codemod/DESCRIPTION.md b/apps/registry/codemods/jest/vitest/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..7bc55fe46 --- /dev/null +++ b/apps/registry/codemods/jest/vitest/.codemod/DESCRIPTION.md @@ -0,0 +1,5 @@ +# Migrate from jest to vitest + +## Description + +Run this codemod to upgrade your codebase from using jest to vitest. \ No newline at end of file diff --git a/apps/registry/codemods/jest/vitest/.codemod/config.json b/apps/registry/codemods/jest/vitest/.codemod/config.json new file mode 100644 index 000000000..6dacf9f26 --- /dev/null +++ b/apps/registry/codemods/jest/vitest/.codemod/config.json @@ -0,0 +1,12 @@ +{ + "version": "1.0.0", + "private": false, + "name": "jest/vitest", + "engine": "jscodeshift", + "applicability": [["jest", ">=", "26.0.0"]], + "meta": { + "type": "migration", + "changeType": "assistive", + "timeSave": "5m" + } +} diff --git a/apps/registry/codemods/jest/vitest/README.md b/apps/registry/codemods/jest/vitest/README.md deleted file mode 100644 index c412cfaa6..000000000 --- a/apps/registry/codemods/jest/vitest/README.md +++ /dev/null @@ -1,45 +0,0 @@ -# Migrate from jest to vitest - -## Description - -Run this codemod to upgrade your codebase from using jest to vitest. - -## Example - -### Before - -```ts - -``` - -### After - -```ts - -``` - -## Applicability Criteria - -`jest` >= `26.0.0` - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Assistive**: The automation partially completes changes. Human involvement is needed to make changes ready to be pushed and merged. - -### **Codemod Engine** - -[jscodeshift](https://github.com/facebook/jscodeshift) - -### Estimated Time Saving - -5+ minutes per file - -### Owner - -[Codemod.com](https://github.com/codemod-com) diff --git a/apps/registry/codemods/jest/vitest/config.json b/apps/registry/codemods/jest/vitest/config.json deleted file mode 100644 index d49ed546d..000000000 --- a/apps/registry/codemods/jest/vitest/config.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "jest/vitest", - "engine": "jscodeshift" -} diff --git a/apps/registry/codemods/jest/vitest/package.json b/apps/registry/codemods/jest/vitest/package.json index 86862f855..c3699ccb0 100644 --- a/apps/registry/codemods/jest/vitest/package.json +++ b/apps/registry/codemods/jest/vitest/package.json @@ -15,6 +15,11 @@ "main": "./dist/index.cjs", "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/mocha/vitest/migrate-configuration/README.md b/apps/registry/codemods/mocha/vitest/migrate-configuration/.codemod/DESCRIPTION.md similarity index 73% rename from apps/registry/codemods/mocha/vitest/migrate-configuration/README.md rename to apps/registry/codemods/mocha/vitest/migrate-configuration/.codemod/DESCRIPTION.md index e06ab08b9..0bd5b2798 100644 --- a/apps/registry/codemods/mocha/vitest/migrate-configuration/README.md +++ b/apps/registry/codemods/mocha/vitest/migrate-configuration/.codemod/DESCRIPTION.md @@ -30,7 +30,7 @@ Run this codemod to upgrade configuration files that need to be changed after mi "mocha": { "config-key": "config-value" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": ["DESCRIPTION.md", "config.json", "./dist/index.cjs", "./index.d.ts"], "type": "module" } ``` @@ -52,7 +52,7 @@ Run this codemod to upgrade configuration files that need to be changed after mi "test": "vitest run", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": ["DESCRIPTION.md", "config.json", "./dist/index.cjs", "./index.d.ts"], "type": "module" } ``` @@ -104,30 +104,4 @@ Run this codemod to upgrade configuration files that need to be changed after mi ### After -`Removed` - -## Applicability Criteria - -`mocha` >= 9.0.0 - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Autonomous**: Changes can safely be pushed and merged without further human involvement. - -### **Codemod Engine** - -[filemod](https://github.com/codemod-com/filemod/) - -### Estimated Time Saving - -5+ minutes per file - -### Owner - -[Codemod.com](https://github.com/codemod-com) +`Removed` \ No newline at end of file diff --git a/apps/registry/codemods/mocha/vitest/migrate-configuration/.codemod/config.json b/apps/registry/codemods/mocha/vitest/migrate-configuration/.codemod/config.json new file mode 100644 index 000000000..282286698 --- /dev/null +++ b/apps/registry/codemods/mocha/vitest/migrate-configuration/.codemod/config.json @@ -0,0 +1,13 @@ +{ + "version": "1.0.0", + "name": "mocha/vitest/migrate-config", + "private": false, + "engine": "filemod", + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + }, + "owner": "codemod.com", + "applicability": [["mocha", ">=", "9.0.0"]] +} diff --git a/apps/registry/codemods/mocha/vitest/migrate-configuration/config.json b/apps/registry/codemods/mocha/vitest/migrate-configuration/config.json deleted file mode 100644 index 4266fc851..000000000 --- a/apps/registry/codemods/mocha/vitest/migrate-configuration/config.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "engine": "filemod" -} diff --git a/apps/registry/codemods/mocha/vitest/migrate-configuration/package.json b/apps/registry/codemods/mocha/vitest/migrate-configuration/package.json index a57a69202..c7f53846e 100644 --- a/apps/registry/codemods/mocha/vitest/migrate-configuration/package.json +++ b/apps/registry/codemods/mocha/vitest/migrate-configuration/package.json @@ -22,6 +22,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/mocha/vitest/migrate-configuration/test/test.ts b/apps/registry/codemods/mocha/vitest/migrate-configuration/test/test.ts index af7ba3542..f529b81b4 100644 --- a/apps/registry/codemods/mocha/vitest/migrate-configuration/test/test.ts +++ b/apps/registry/codemods/mocha/vitest/migrate-configuration/test/test.ts @@ -42,7 +42,7 @@ describe("mocha config-files", () => { "config-key": "config-value" }, "files": [ - "README.md", + "DESCRIPTION.md", "config.json", "./dist/index.cjs", "./index.d.ts" @@ -146,7 +146,7 @@ describe("mocha config-files", () => { "coverage": "vitest run --coverage" }, "files": [ - "README.md", + "DESCRIPTION.md", "config.json", "./dist/index.cjs", "./index.d.ts" diff --git a/apps/registry/codemods/mocha/vitest/migrate-tests/.codemod/DESCRIPTION.md b/apps/registry/codemods/mocha/vitest/migrate-tests/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..bdaf91883 --- /dev/null +++ b/apps/registry/codemods/mocha/vitest/migrate-tests/.codemod/DESCRIPTION.md @@ -0,0 +1,31 @@ +# Migrate Tests from Mocha to Vitest + +## Description + +Run this codemod to upgrade your codebase from using mocha to vitest. + +## Example + +### Before + +```ts +import { expect } from 'chai'; + +describe('Test Suite 1', () => { + it('addition', () => { + expect(1 + 1).to.equal(2); + }); +}); +``` + +### After + +```ts +import { describe, expect, it } from 'vitest'; + +describe('Test Suite 1', () => { + it('addition', () => { + expect(1 + 1).to.equal(2); + }); +}); +``` \ No newline at end of file diff --git a/apps/registry/codemods/mocha/vitest/migrate-tests/.codemod/config.json b/apps/registry/codemods/mocha/vitest/migrate-tests/.codemod/config.json new file mode 100644 index 000000000..7529ffeff --- /dev/null +++ b/apps/registry/codemods/mocha/vitest/migrate-tests/.codemod/config.json @@ -0,0 +1,13 @@ +{ + "version": "1.0.0", + "private": false, + "name": "mocha/vitest/migrate-test", + "engine": "jscodeshift", + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + }, + "owner": "codemod.com", + "applicability": [["mocha", ">=", "9.0.0"]] +} diff --git a/apps/registry/codemods/mocha/vitest/migrate-tests/README.md b/apps/registry/codemods/mocha/vitest/migrate-tests/README.md deleted file mode 100644 index 5ca89342a..000000000 --- a/apps/registry/codemods/mocha/vitest/migrate-tests/README.md +++ /dev/null @@ -1,59 +0,0 @@ -# Migrate Tests from Mocha to Vitest - -## Description - -Run this codemod to upgrade your codebase from using mocha to vitest. - -## Example - -### Before - -```ts -import { expect } from 'chai'; - -describe('Test Suite 1', () => { - it('addition', () => { - expect(1 + 1).to.equal(2); - }); -}); -``` - -### After - -```ts -import { describe, expect, it } from 'vitest'; - -describe('Test Suite 1', () => { - it('addition', () => { - expect(1 + 1).to.equal(2); - }); -}); -``` - -## Applicability Criteria - -`mocha` >= 9.0.0 - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Assistive**: The automation partially completes changes. Human involvement is needed to make changes ready to be pushed and merged. - -### **Codemod Engine** - -[jscodeshift](https://github.com/facebook/jscodeshift) - -### Estimated Time Saving - -5+ minutes per file - -### Owner - -[Codemod.com](https://github.com/codemod-com) - -### Links for more info diff --git a/apps/registry/codemods/mocha/vitest/migrate-tests/config.json b/apps/registry/codemods/mocha/vitest/migrate-tests/config.json deleted file mode 100644 index 3c8867506..000000000 --- a/apps/registry/codemods/mocha/vitest/migrate-tests/config.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "mocha/vitest/migrate", - "engine": "jscodeshift" -} diff --git a/apps/registry/codemods/mocha/vitest/migrate-tests/package.json b/apps/registry/codemods/mocha/vitest/migrate-tests/package.json index 2e3ee021f..688292e2a 100644 --- a/apps/registry/codemods/mocha/vitest/migrate-tests/package.json +++ b/apps/registry/codemods/mocha/vitest/migrate-tests/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/mocha/vitest/recipe/README.md b/apps/registry/codemods/mocha/vitest/recipe/.codemod/DESCRIPTION.md similarity index 72% rename from apps/registry/codemods/mocha/vitest/recipe/README.md rename to apps/registry/codemods/mocha/vitest/recipe/.codemod/DESCRIPTION.md index 497fca5b3..7ae7b7b41 100644 --- a/apps/registry/codemods/mocha/vitest/recipe/README.md +++ b/apps/registry/codemods/mocha/vitest/recipe/.codemod/DESCRIPTION.md @@ -19,26 +19,4 @@ export default defineConfig({ include: [...configDefaults.include, '**/test/*.ts'], }, }); -``` - -## Applicability Criteria - -`mocha` >= 9.0.0 - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Assistive**: The automation partially completes changes. Human involvement is needed to make changes ready to be pushed and merged. - -### Estimated Time Saving - -5+ minutes per file - -### Owner - -[Codemod.com](https://github.com/codemod-com) +``` \ No newline at end of file diff --git a/apps/registry/codemods/mocha/vitest/recipe/.codemod/config.json b/apps/registry/codemods/mocha/vitest/recipe/.codemod/config.json new file mode 100644 index 000000000..bc1ddb97b --- /dev/null +++ b/apps/registry/codemods/mocha/vitest/recipe/.codemod/config.json @@ -0,0 +1,13 @@ +{ + "version": "1.0.0", + "private": false, + "engine": "recipe", + "names": ["mocha/vitest/migrate-config", "mocha/vitest/migrate-test"], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + }, + "owner": "codemod.com", + "applicability": [["mocha", ">=", "9.0.0"]] +} diff --git a/apps/registry/codemods/mocha/vitest/recipe/config.json b/apps/registry/codemods/mocha/vitest/recipe/config.json deleted file mode 100644 index aab14bea9..000000000 --- a/apps/registry/codemods/mocha/vitest/recipe/config.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "engine": "recipe", - "names": ["mocha/vitest/migrate-configuration", "mocha/vitest/migrate-tests"] -} diff --git a/apps/registry/codemods/mocha/vitest/recipe/package.json b/apps/registry/codemods/mocha/vitest/recipe/package.json index 1c0ecbb95..c494013c1 100644 --- a/apps/registry/codemods/mocha/vitest/recipe/package.json +++ b/apps/registry/codemods/mocha/vitest/recipe/package.json @@ -1,5 +1,5 @@ { "name": "@codemod-com/codemod-mocha-vitest-recipe", - "files": ["README.md", "config.json"], + "files": ["./.codemod/DESCRIPTION.md", "./.codemod/config.json"], "type": "module" } diff --git a/apps/registry/codemods/msw/2/callback-signature/README.md b/apps/registry/codemods/msw/2/callback-signature/.codemod/DESCRIPTION.md similarity index 75% rename from apps/registry/codemods/msw/2/callback-signature/README.md rename to apps/registry/codemods/msw/2/callback-signature/.codemod/DESCRIPTION.md index 1a60b08e1..0845e2712 100644 --- a/apps/registry/codemods/msw/2/callback-signature/README.md +++ b/apps/registry/codemods/msw/2/callback-signature/.codemod/DESCRIPTION.md @@ -62,34 +62,4 @@ http.get('/resource', ({ request, cookies }) => { return HttpResponse.json({ id: 'abc-123' }); }); -``` - -## Applicability Criteria - -MSW version >= 1.0.0 - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Assistive**: The automation partially completes changes. Human involvement is needed to make changes ready to be pushed and merged. - -### **Codemod Engine** - -[ts-morph](https://github.com/dsherret/ts-morph) - -### Estimated Time Saving - -Up to 10 minutes per occurrence - -### Owner - -[Codemod.com](https://github.com/codemod-com) - -### Links for more info - -- https://mswjs.io/docs/migrations/1.x-to-2.x/#request-changes +``` \ No newline at end of file diff --git a/apps/registry/codemods/msw/2/callback-signature/.codemod/config.json b/apps/registry/codemods/msw/2/callback-signature/.codemod/config.json new file mode 100644 index 000000000..900ab77bf --- /dev/null +++ b/apps/registry/codemods/msw/2/callback-signature/.codemod/config.json @@ -0,0 +1,13 @@ +{ + "version": "1.0.0", + "private": false, + "name": "msw/2/callback-signature", + "engine": "ts-morph", + "meta": { + "type": "migration", + "changeType": "assistive", + "timeSave": "10m" + }, + "applicability": [["msw", ">=", "1.0.0"]], + "owner": "codemod.com" +} diff --git a/apps/registry/codemods/msw/2/callback-signature/config.json b/apps/registry/codemods/msw/2/callback-signature/config.json deleted file mode 100644 index cf52b6b5c..000000000 --- a/apps/registry/codemods/msw/2/callback-signature/config.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "msw/2/callback-signature", - "engine": "ts-morph" -} diff --git a/apps/registry/codemods/msw/2/callback-signature/package.json b/apps/registry/codemods/msw/2/callback-signature/package.json index 3524961b7..b19310076 100644 --- a/apps/registry/codemods/msw/2/callback-signature/package.json +++ b/apps/registry/codemods/msw/2/callback-signature/package.json @@ -14,6 +14,11 @@ "main": "./dist/index.cjs", "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/msw/2/ctx-fetch/README.md b/apps/registry/codemods/msw/2/ctx-fetch/.codemod/DESCRIPTION.md similarity index 66% rename from apps/registry/codemods/msw/2/ctx-fetch/README.md rename to apps/registry/codemods/msw/2/ctx-fetch/.codemod/DESCRIPTION.md index d717057fd..a0b60ddb6 100644 --- a/apps/registry/codemods/msw/2/ctx-fetch/README.md +++ b/apps/registry/codemods/msw/2/ctx-fetch/.codemod/DESCRIPTION.md @@ -37,33 +37,3 @@ const handlers: RestHandler[] = [ }), ]; ``` - -## Applicability Criteria - -MSW version >= 1.0.0 - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Assistive**: The automation partially completes changes. Human involvement is needed to make changes ready to be pushed and merged. - -### **Codemod Engine** - -[ts-morph](https://github.com/dsherret/ts-morph) - -### Estimated Time Saving - -5 minutes per occurrence - -### Owner - -[Codemod.com](https://github.com/codemod-com) - -### Links for more info - -- https://mswjs.io/docs/migrations/1.x-to-2.x/#ctxfetch diff --git a/apps/registry/codemods/msw/2/ctx-fetch/.codemod/config.json b/apps/registry/codemods/msw/2/ctx-fetch/.codemod/config.json new file mode 100644 index 000000000..3aeaf8b5a --- /dev/null +++ b/apps/registry/codemods/msw/2/ctx-fetch/.codemod/config.json @@ -0,0 +1,13 @@ +{ + "version": "1.0.0", + "private": false, + "name": "msw/2/ctx-fetch", + "engine": "ts-morph", + "meta": { + "type": "migration", + "changeType": "assistive", + "timeSave": "5m" + }, + "applicability": [["msw", ">=", "1.0.0"]], + "owner": "codemod.com" +} diff --git a/apps/registry/codemods/msw/2/ctx-fetch/config.json b/apps/registry/codemods/msw/2/ctx-fetch/config.json deleted file mode 100644 index e9c17d206..000000000 --- a/apps/registry/codemods/msw/2/ctx-fetch/config.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "msw/2/ctx-fetch", - "engine": "ts-morph" -} diff --git a/apps/registry/codemods/msw/2/ctx-fetch/package.json b/apps/registry/codemods/msw/2/ctx-fetch/package.json index 34850dd06..1412ad081 100644 --- a/apps/registry/codemods/msw/2/ctx-fetch/package.json +++ b/apps/registry/codemods/msw/2/ctx-fetch/package.json @@ -14,6 +14,11 @@ "main": "./dist/index.cjs", "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/msw/2/imports/README.md b/apps/registry/codemods/msw/2/imports/.codemod/DESCRIPTION.md similarity index 65% rename from apps/registry/codemods/msw/2/imports/README.md rename to apps/registry/codemods/msw/2/imports/.codemod/DESCRIPTION.md index 32bce5160..6c9fef9fd 100644 --- a/apps/registry/codemods/msw/2/imports/README.md +++ b/apps/registry/codemods/msw/2/imports/.codemod/DESCRIPTION.md @@ -34,33 +34,3 @@ const handlers: HttpHandler[] = [ }), ]; ``` - -## Applicability Criteria - -MSW version >= 1.0.0 - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Autonomous**: Changes can safely be pushed and merged without further human involvement. - -### **Codemod Engine** - -[ts-morph](https://github.com/dsherret/ts-morph) - -### Estimated Time Saving - -~10 minutes per occurrence - -### Owner - -[Codemod.com](https://github.com/codemod-com) - -### Links for more info - -- https://mswjs.io/docs/migrations/1.x-to-2.x/#imports diff --git a/apps/registry/codemods/msw/2/imports/.codemod/config.json b/apps/registry/codemods/msw/2/imports/.codemod/config.json new file mode 100644 index 000000000..364e44f82 --- /dev/null +++ b/apps/registry/codemods/msw/2/imports/.codemod/config.json @@ -0,0 +1,13 @@ +{ + "version": "1.0.0", + "private": false, + "name": "msw/2/imports", + "engine": "ts-morph", + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "10m" + }, + "applicability": [["msw", ">=", "1.0.0"]], + "owner": "codemod.com" +} diff --git a/apps/registry/codemods/msw/2/imports/config.json b/apps/registry/codemods/msw/2/imports/config.json deleted file mode 100644 index e3b4d0520..000000000 --- a/apps/registry/codemods/msw/2/imports/config.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "msw/2/imports", - "engine": "ts-morph" -} diff --git a/apps/registry/codemods/msw/2/imports/package.json b/apps/registry/codemods/msw/2/imports/package.json index 3126161d2..e1ef0ed00 100644 --- a/apps/registry/codemods/msw/2/imports/package.json +++ b/apps/registry/codemods/msw/2/imports/package.json @@ -14,6 +14,11 @@ "main": "./dist/index.cjs", "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/msw/2/lifecycle-events-signature/.codemod/DESCRIPTION.md b/apps/registry/codemods/msw/2/lifecycle-events-signature/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..36bcd786d --- /dev/null +++ b/apps/registry/codemods/msw/2/lifecycle-events-signature/.codemod/DESCRIPTION.md @@ -0,0 +1,23 @@ +# Replace lifecycle events callback signature [BETA] + +## Description + +In msw v2, lifecycle events callback methods have changed their signature. This codemod replaces usages if its arguments with the new ones. + +## Example + +### Before + +```ts +server.events.on('request:start', (req, reqId) => { + doStuff(req, reqId); +}); +``` + +### After + +```ts +server.events.on('request:start', ({ request, requestId }) => { + doStuff(request, requestId); +}); +``` diff --git a/apps/registry/codemods/msw/2/lifecycle-events-signature/.codemod/config.json b/apps/registry/codemods/msw/2/lifecycle-events-signature/.codemod/config.json new file mode 100644 index 000000000..972a4cc82 --- /dev/null +++ b/apps/registry/codemods/msw/2/lifecycle-events-signature/.codemod/config.json @@ -0,0 +1,13 @@ +{ + "version": "1.0.0", + "private": false, + "name": "msw/2/lifecycle-events-signature", + "engine": "ts-morph", + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + }, + "applicability": [["msw", ">=", "1.0.0"]], + "owner": "codemod.com" +} diff --git a/apps/registry/codemods/msw/2/lifecycle-events-signature/README.md b/apps/registry/codemods/msw/2/lifecycle-events-signature/README.md deleted file mode 100644 index c186e4d60..000000000 --- a/apps/registry/codemods/msw/2/lifecycle-events-signature/README.md +++ /dev/null @@ -1,53 +0,0 @@ -# Replace lifecycle events callback signature [BETA] - -## Description - -In msw v2, lifecycle events callback methods have changed their signature. This codemod replaces usages if its arguments with the new ones. - -## Example - -### Before - -```ts -server.events.on('request:start', (req, reqId) => { - doStuff(req, reqId); -}); -``` - -### After - -```ts -server.events.on('request:start', ({ request, requestId }) => { - doStuff(request, requestId); -}); -``` - -## Applicability Criteria - -MSW version >= 1.0.0 - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Autonomous**: Changes can safely be pushed and merged without further human involvement. - -### **Codemod Engine** - -[ts-morph](https://github.com/dsherret/ts-morph) - -### Estimated Time Saving - -5 minutes per occurrence - -### Owner - -[Codemod.com](https://github.com/codemod-com) - -### Links for more info - -- https://mswjs.io/docs/migrations/1.x-to-2.x/#life-cycle-events diff --git a/apps/registry/codemods/msw/2/lifecycle-events-signature/config.json b/apps/registry/codemods/msw/2/lifecycle-events-signature/config.json deleted file mode 100644 index 983ddc6bd..000000000 --- a/apps/registry/codemods/msw/2/lifecycle-events-signature/config.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "msw/2/lifecycle-events-signature", - "engine": "ts-morph" -} diff --git a/apps/registry/codemods/msw/2/lifecycle-events-signature/package.json b/apps/registry/codemods/msw/2/lifecycle-events-signature/package.json index d0134e85b..78da9eda1 100644 --- a/apps/registry/codemods/msw/2/lifecycle-events-signature/package.json +++ b/apps/registry/codemods/msw/2/lifecycle-events-signature/package.json @@ -14,6 +14,11 @@ "main": "./dist/index.cjs", "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/msw/2/print-handler/.codemod/DESCRIPTION.md b/apps/registry/codemods/msw/2/print-handler/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..e18846f5e --- /dev/null +++ b/apps/registry/codemods/msw/2/print-handler/.codemod/DESCRIPTION.md @@ -0,0 +1,21 @@ +# Replace printHandlers() calls + +## Description + +A new way of listing all handlers is preferred in msw v2. This codemod replaces `printHandlers()` calls with the new way of doing that. + +## Example + +### Before + +```ts +worker.printHandlers(); +``` + +### After + +```ts +worker.listHandlers().forEach((handler) => { + console.log(handler.info.header); +}); +``` diff --git a/apps/registry/codemods/msw/2/print-handler/.codemod/config.json b/apps/registry/codemods/msw/2/print-handler/.codemod/config.json new file mode 100644 index 000000000..96a4d8f89 --- /dev/null +++ b/apps/registry/codemods/msw/2/print-handler/.codemod/config.json @@ -0,0 +1,13 @@ +{ + "version": "1.0.0", + "private": false, + "name": "msw/2/print-handler", + "engine": "ts-morph", + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + }, + "applicability": [["msw", ">=", "1.0.0"]], + "owner": "codemod.com" +} diff --git a/apps/registry/codemods/msw/2/print-handler/README.md b/apps/registry/codemods/msw/2/print-handler/README.md deleted file mode 100644 index 656b848df..000000000 --- a/apps/registry/codemods/msw/2/print-handler/README.md +++ /dev/null @@ -1,51 +0,0 @@ -# Replace printHandlers() calls - -## Description - -A new way of listing all handlers is preferred in msw v2. This codemod replaces `printHandlers()` calls with the new way of doing that. - -## Example - -### Before - -```ts -worker.printHandlers(); -``` - -### After - -```ts -worker.listHandlers().forEach((handler) => { - console.log(handler.info.header); -}); -``` - -## Applicability Criteria - -MSW version >= 1.0.0 - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Autonomous**: Changes can safely be pushed and merged without further human involvement. - -### **Codemod Engine** - -[ts-morph](https://github.com/dsherret/ts-morph) - -### Estimated Time Saving - -5 minutes per occurrence - -### Owner - -[Codemod.com](https://github.com/codemod-com) - -### Links for more info - -- https://mswjs.io/docs/migrations/1.x-to-2.x/#printhandlers diff --git a/apps/registry/codemods/msw/2/print-handler/config.json b/apps/registry/codemods/msw/2/print-handler/config.json deleted file mode 100644 index 168211e75..000000000 --- a/apps/registry/codemods/msw/2/print-handler/config.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "msw/2/print-handler", - "engine": "ts-morph" -} diff --git a/apps/registry/codemods/msw/2/print-handler/package.json b/apps/registry/codemods/msw/2/print-handler/package.json index 2bcba32eb..0b67ed254 100644 --- a/apps/registry/codemods/msw/2/print-handler/package.json +++ b/apps/registry/codemods/msw/2/print-handler/package.json @@ -14,6 +14,11 @@ "main": "./dist/index.cjs", "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/msw/2/req-passthrough/.codemod/DESCRIPTION.md b/apps/registry/codemods/msw/2/req-passthrough/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..34a3e8b8c --- /dev/null +++ b/apps/registry/codemods/msw/2/req-passthrough/.codemod/DESCRIPTION.md @@ -0,0 +1,25 @@ +# Replace printHandlers() calls + +## Description + +A new way of calling a passthrough is available in msw v2. This codemod replaces `req.passthrough()` calls with the new way of doing that using exported function. + +## Example + +### Before + +```ts +rest.get('/resource', (req, res, ctx) => { + return req.passthrough(); +}); +``` + +### After + +```ts +import { passthrough } from 'msw'; + +rest.get('/resource', (req, res, ctx) => { + return passthrough(); +}); +``` diff --git a/apps/registry/codemods/msw/2/req-passthrough/.codemod/config.json b/apps/registry/codemods/msw/2/req-passthrough/.codemod/config.json new file mode 100644 index 000000000..4c18eed8d --- /dev/null +++ b/apps/registry/codemods/msw/2/req-passthrough/.codemod/config.json @@ -0,0 +1,13 @@ +{ + "version": "1.0.0", + "private": false, + "name": "msw/2/req-passthrough", + "engine": "ts-morph", + "meta": { + "type": "migration", + "changeType": "assistive", + "timeSave": "5m" + }, + "applicability": [["msw", ">=", "1.0.0"]], + "owner": "codemod.com" +} diff --git a/apps/registry/codemods/msw/2/req-passthrough/README.md b/apps/registry/codemods/msw/2/req-passthrough/README.md deleted file mode 100644 index c801be290..000000000 --- a/apps/registry/codemods/msw/2/req-passthrough/README.md +++ /dev/null @@ -1,55 +0,0 @@ -# Replace printHandlers() calls - -## Description - -A new way of calling a passthrough is available in msw v2. This codemod replaces `req.passthrough()` calls with the new way of doing that using exported function. - -## Example - -### Before - -```ts -rest.get('/resource', (req, res, ctx) => { - return req.passthrough(); -}); -``` - -### After - -```ts -import { passthrough } from 'msw'; - -rest.get('/resource', (req, res, ctx) => { - return passthrough(); -}); -``` - -## Applicability Criteria - -MSW version >= 1.0.0 - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Assistive**: The automation partially completes changes. Human involvement is needed to make changes ready to be pushed and merged. - -### **Codemod Engine** - -[ts-morph](https://github.com/dsherret/ts-morph) - -### Estimated Time Saving - -5 minutes per occurence - -### Owner - -[Codemod.com](https://github.com/codemod-com) - -### Links for more info - -- https://mswjs.io/docs/migrations/1.x-to-2.x/#reqpassthrough diff --git a/apps/registry/codemods/msw/2/req-passthrough/config.json b/apps/registry/codemods/msw/2/req-passthrough/config.json deleted file mode 100644 index f638f1768..000000000 --- a/apps/registry/codemods/msw/2/req-passthrough/config.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "msw/2/req-passthrough", - "engine": "ts-morph" -} diff --git a/apps/registry/codemods/msw/2/req-passthrough/package.json b/apps/registry/codemods/msw/2/req-passthrough/package.json index 61f4b0e4a..0ea7ef452 100644 --- a/apps/registry/codemods/msw/2/req-passthrough/package.json +++ b/apps/registry/codemods/msw/2/req-passthrough/package.json @@ -14,6 +14,11 @@ "main": "./dist/index.cjs", "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/msw/2/request-changes/README.md b/apps/registry/codemods/msw/2/request-changes/.codemod/DESCRIPTION.md similarity index 77% rename from apps/registry/codemods/msw/2/request-changes/README.md rename to apps/registry/codemods/msw/2/request-changes/.codemod/DESCRIPTION.md index f4d81e116..7b3be63ec 100644 --- a/apps/registry/codemods/msw/2/request-changes/README.md +++ b/apps/registry/codemods/msw/2/request-changes/.codemod/DESCRIPTION.md @@ -50,33 +50,3 @@ const handlers: HttpHandler[] = [ }), ]; ``` - -## Applicability Criteria - -MSW version >= 1.0.0 - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Assistive**: The automation partially completes changes. Human involvement is needed to make changes ready to be pushed and merged. - -### **Codemod Engine** - -[ts-morph](https://github.com/dsherret/ts-morph) - -### Estimated Time Saving - -Up to 15 minutes per occurrence - -### Owner - -[Codemod.com](https://github.com/codemod-com) - -### Links for more info - -- https://mswjs.io/docs/migrations/1.x-to-2.x/#request-changes diff --git a/apps/registry/codemods/msw/2/request-changes/.codemod/config.json b/apps/registry/codemods/msw/2/request-changes/.codemod/config.json new file mode 100644 index 000000000..c6322e0a1 --- /dev/null +++ b/apps/registry/codemods/msw/2/request-changes/.codemod/config.json @@ -0,0 +1,13 @@ +{ + "version": "1.0.0", + "private": false, + "name": "msw/2/request-changes", + "engine": "ts-morph", + "meta": { + "type": "migration", + "changeType": "assistive", + "timeSave": "15m" + }, + "applicability": [["msw", ">=", "1.0.0"]], + "owner": "codemod.com" +} diff --git a/apps/registry/codemods/msw/2/request-changes/config.json b/apps/registry/codemods/msw/2/request-changes/config.json deleted file mode 100644 index 5c1cdbead..000000000 --- a/apps/registry/codemods/msw/2/request-changes/config.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "msw/2/request-changes", - "engine": "ts-morph" -} diff --git a/apps/registry/codemods/msw/2/request-changes/package.json b/apps/registry/codemods/msw/2/request-changes/package.json index 7f1c26e43..adb954157 100644 --- a/apps/registry/codemods/msw/2/request-changes/package.json +++ b/apps/registry/codemods/msw/2/request-changes/package.json @@ -14,6 +14,11 @@ "main": "./dist/index.cjs", "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/msw/2/response-usages/README.md b/apps/registry/codemods/msw/2/response-usages/.codemod/DESCRIPTION.md similarity index 84% rename from apps/registry/codemods/msw/2/response-usages/README.md rename to apps/registry/codemods/msw/2/response-usages/.codemod/DESCRIPTION.md index 660af5864..8dd45991e 100644 --- a/apps/registry/codemods/msw/2/response-usages/README.md +++ b/apps/registry/codemods/msw/2/response-usages/.codemod/DESCRIPTION.md @@ -140,33 +140,3 @@ graphql.query('GetUser', (req, res, ctx) => { ) }) ``` - -## Applicability Criteria - -MSW version >= 1.0.0 - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Assistive**: The automation partially completes changes. Human involvement is needed to make changes ready to be pushed and merged. - -### **Codemod Engine** - -[ts-morph](https://github.com/dsherret/ts-morph) - -### Estimated Time Saving - -Up to 10 minutes per occurrence - -### Owner - -[Codemod.com](https://github.com/codemod-com) - -### Links for more info - -- https://mswjs.io/docs/migrations/1.x-to-2.x/#request-changes diff --git a/apps/registry/codemods/msw/2/response-usages/.codemod/config.json b/apps/registry/codemods/msw/2/response-usages/.codemod/config.json new file mode 100644 index 000000000..b435baee8 --- /dev/null +++ b/apps/registry/codemods/msw/2/response-usages/.codemod/config.json @@ -0,0 +1,13 @@ +{ + "version": "1.0.0", + "private": false, + "name": "msw/2/response-usages", + "engine": "ts-morph", + "meta": { + "type": "migration", + "changeType": "assistive", + "timeSave": "10m" + }, + "applicability": [["msw", ">=", "1.0.0"]], + "owner": "codemod.com" +} diff --git a/apps/registry/codemods/msw/2/response-usages/config.json b/apps/registry/codemods/msw/2/response-usages/config.json deleted file mode 100644 index cecb7b017..000000000 --- a/apps/registry/codemods/msw/2/response-usages/config.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "msw/2/response-usages", - "engine": "ts-morph" -} diff --git a/apps/registry/codemods/msw/2/response-usages/package.json b/apps/registry/codemods/msw/2/response-usages/package.json index 622d224a8..b3183ee44 100644 --- a/apps/registry/codemods/msw/2/response-usages/package.json +++ b/apps/registry/codemods/msw/2/response-usages/package.json @@ -14,6 +14,11 @@ "main": "./dist/index.cjs", "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/msw/2/type-args/README.md b/apps/registry/codemods/msw/2/type-args/.codemod/DESCRIPTION.md similarity index 81% rename from apps/registry/codemods/msw/2/type-args/README.md rename to apps/registry/codemods/msw/2/type-args/.codemod/DESCRIPTION.md index 0d1eff9a4..94b38d69c 100644 --- a/apps/registry/codemods/msw/2/type-args/README.md +++ b/apps/registry/codemods/msw/2/type-args/.codemod/DESCRIPTION.md @@ -91,29 +91,3 @@ export function mockFactory( return http.get(url, resolver); } ``` - -## Applicability Criteria - -MSW version >= 1.0.0 - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Assistive**: The automation partially completes changes. Human involvement is needed to make changes ready to be pushed and merged. - -### **Codemod Engine** - -[ts-morph](https://github.com/dsherret/ts-morph) - -### Estimated Time Saving - -~15 minutes per occurrence - -### Owner - -[Codemod.com](https://github.com/codemod-com) diff --git a/apps/registry/codemods/msw/2/type-args/.codemod/config.json b/apps/registry/codemods/msw/2/type-args/.codemod/config.json new file mode 100644 index 000000000..9b73a3913 --- /dev/null +++ b/apps/registry/codemods/msw/2/type-args/.codemod/config.json @@ -0,0 +1,13 @@ +{ + "version": "1.0.0", + "private": false, + "name": "msw/2/type-args", + "engine": "ts-morph", + "meta": { + "type": "migration", + "changeType": "assistive", + "timeSave": "15m" + }, + "applicability": [["msw", ">=", "1.0.0"]], + "owner": "codemod.com" +} diff --git a/apps/registry/codemods/msw/2/type-args/config.json b/apps/registry/codemods/msw/2/type-args/config.json deleted file mode 100644 index a919d8624..000000000 --- a/apps/registry/codemods/msw/2/type-args/config.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "msw/2/type-args", - "engine": "ts-morph" -} diff --git a/apps/registry/codemods/msw/2/type-args/package.json b/apps/registry/codemods/msw/2/type-args/package.json index 49065453b..7eb2d283b 100644 --- a/apps/registry/codemods/msw/2/type-args/package.json +++ b/apps/registry/codemods/msw/2/type-args/package.json @@ -14,6 +14,11 @@ "main": "./dist/index.cjs", "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/msw/2/upgrade-recipe/README.md b/apps/registry/codemods/msw/2/upgrade-recipe/.codemod/DESCRIPTION.md similarity index 75% rename from apps/registry/codemods/msw/2/upgrade-recipe/README.md rename to apps/registry/codemods/msw/2/upgrade-recipe/.codemod/DESCRIPTION.md index 063fe6953..52323d3a1 100644 --- a/apps/registry/codemods/msw/2/upgrade-recipe/README.md +++ b/apps/registry/codemods/msw/2/upgrade-recipe/.codemod/DESCRIPTION.md @@ -36,31 +36,3 @@ const handlers = [ ``` Also, if you were using req.body in your interceptors, this codemod will blindly assume you want `await request.json()` instead of any other type. You will have to correct that manually. - -## Applicability Criteria - -MSW version >= 1.0.0 - -## Other Metadata - -TODO: [config changes](https://mswjs.io/docs/migrations/1.x-to-2.x/#frequent-issues) - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Assistive**: The automation partially completes changes. Human involvement is needed to make changes ready to be pushed and merged. - -### Estimated Time Saving - -Depending on the size of the project, this recipe can save up to 6 hours of dedicated work and more. - -### Owner - -[Codemod.com](https://github.com/codemod-com) - -### Links for more info - -- https://mswjs.io/docs/migrations/1.x-to-2.x/ diff --git a/apps/registry/codemods/msw/2/upgrade-recipe/config.json b/apps/registry/codemods/msw/2/upgrade-recipe/.codemod/config.json similarity index 57% rename from apps/registry/codemods/msw/2/upgrade-recipe/config.json rename to apps/registry/codemods/msw/2/upgrade-recipe/.codemod/config.json index 21dd8f071..712f05bd3 100644 --- a/apps/registry/codemods/msw/2/upgrade-recipe/config.json +++ b/apps/registry/codemods/msw/2/upgrade-recipe/.codemod/config.json @@ -1,5 +1,6 @@ { - "schemaVersion": "1.0.0", + "version": "1.0.0", + "private": false, "engine": "recipe", "names": [ "msw/2/imports", @@ -11,5 +12,12 @@ "msw/2/callback-signature", "msw/2/lifecycle-events-signature", "msw/2/print-handler" - ] + ], + "meta": { + "type": "migration", + "changeType": "assistive", + "timeSave": "10m" + }, + "applicability": [["msw", ">=", "1.0.0"]], + "owner": "codemod.com" } diff --git a/apps/registry/codemods/msw/2/upgrade-recipe/package.json b/apps/registry/codemods/msw/2/upgrade-recipe/package.json index e948af444..c584ea0a7 100644 --- a/apps/registry/codemods/msw/2/upgrade-recipe/package.json +++ b/apps/registry/codemods/msw/2/upgrade-recipe/package.json @@ -1,5 +1,5 @@ { "name": "@codemod-com/codemod-msw-2-upgrade-recipe", - "files": ["README.md", "config.json"], + "files": ["./.codemod/DESCRIPTION.md", "./.codemod/config.json"], "type": "module" } diff --git a/apps/registry/codemods/mui/5/core-styles-import/README.md b/apps/registry/codemods/mui/5/core-styles-import/.codemod/DESCRIPTION.md similarity index 57% rename from apps/registry/codemods/mui/5/core-styles-import/README.md rename to apps/registry/codemods/mui/5/core-styles-import/.codemod/DESCRIPTION.md index b5522203b..e1f646347 100644 --- a/apps/registry/codemods/mui/5/core-styles-import/README.md +++ b/apps/registry/codemods/mui/5/core-styles-import/.codemod/DESCRIPTION.md @@ -25,30 +25,4 @@ import { makeStyles, Overrides, } from '@material-ui/core/styles'; -``` - -## Applicability Criteria - -MUI version >= 4.0.0 - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Autonomous**: Changes can safely be pushed and merged without further human involvement. - -### **Codemod Engine** - -[jscodeshift](https://github.com/facebook/jscodeshift) - -### Estimated Time Saving - -~5 minutes per occurrence - -### Owner - -[MUI](https://github.com/mui) +``` \ No newline at end of file diff --git a/apps/registry/codemods/mui/5/core-styles-import/.codemod/config.json b/apps/registry/codemods/mui/5/core-styles-import/.codemod/config.json new file mode 100644 index 000000000..6abb72ff5 --- /dev/null +++ b/apps/registry/codemods/mui/5/core-styles-import/.codemod/config.json @@ -0,0 +1,13 @@ +{ + "version": "1.0.0", + "private": false, + "name": "mui/5/core-styles-import", + "engine": "jscodeshift", + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + }, + "applicability": [["@material-ui/core", ">=", "4.0.0"]], + "owner": "mui" +} diff --git a/apps/registry/codemods/mui/5/core-styles-import/config.json b/apps/registry/codemods/mui/5/core-styles-import/config.json deleted file mode 100644 index fbc088dd1..000000000 --- a/apps/registry/codemods/mui/5/core-styles-import/config.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "mui/5/core-styles-import", - "engine": "jscodeshift" -} diff --git a/apps/registry/codemods/mui/5/core-styles-import/package.json b/apps/registry/codemods/mui/5/core-styles-import/package.json index 24f24b96e..f33c92a83 100644 --- a/apps/registry/codemods/mui/5/core-styles-import/package.json +++ b/apps/registry/codemods/mui/5/core-styles-import/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventContext/README.md b/apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventContext/.codemod/DESCRIPTION.md similarity index 53% rename from apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventContext/README.md rename to apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventContext/.codemod/DESCRIPTION.md index b0b96e0b7..261f01fd1 100644 --- a/apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventContext/README.md +++ b/apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventContext/.codemod/DESCRIPTION.md @@ -27,33 +27,3 @@ const integration = new NetlifyIntegration(); // Adding a build event handler integration.addBuildEventContext(() => {}); ``` - -## Applicability Criteria - -Netlify SDK v0.8.1 or higher. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Autonomous**: Changes can safely be pushed and merged without further human involvement. - -### **Codemod Engine** - -jscodeshift - -### Estimated Time Saving - -~1 minutes per occurrence - -### Owner - -[Codemod.com](https://github.com/codemod-com) - -### Links for more info - -- [Netlify SDK v0.8.1 Release Notes](https://sdk.netlify.com/release-notes/#081) diff --git a/apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventContext/.codemod/config.json b/apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventContext/.codemod/config.json new file mode 100644 index 000000000..1ebd918e4 --- /dev/null +++ b/apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventContext/.codemod/config.json @@ -0,0 +1,13 @@ +{ + "version": "1.0.0", + "private": false, + "name": "netlify/0.8.1/addBuildEventContext", + "engine": "jscodeshift", + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "1m" + }, + "applicability": [["@netlify/sdk", ">=", "0.8.1"]], + "owner": "codemod.com" +} diff --git a/apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventContext/config.json b/apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventContext/config.json deleted file mode 100644 index 7ee32e960..000000000 --- a/apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventContext/config.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "netlify/0.8.1/addBuildEventContext", - "engine": "jscodeshift" -} diff --git a/apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventContext/package.json b/apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventContext/package.json index 91ecc3e87..05ad01577 100644 --- a/apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventContext/package.json +++ b/apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventContext/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventHandler/README.md b/apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventHandler/.codemod/DESCRIPTION.md similarity index 59% rename from apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventHandler/README.md rename to apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventHandler/.codemod/DESCRIPTION.md index e1acd52d3..de2f958f4 100644 --- a/apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventHandler/README.md +++ b/apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventHandler/.codemod/DESCRIPTION.md @@ -31,33 +31,3 @@ integration.addBuildEventHandler('onPreBuild', () => { console.log('This is my first build event handler!'); }); ``` - -## Applicability Criteria - -Netlify SDK v0.8.1 or higher. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Autonomous**: Changes can safely be pushed and merged without further human involvement. - -### **Codemod Engine** - -jscodeshift - -### Estimated Time Saving - -~1 minutes per occurrence - -### Owner - -[Codemod.com](https://github.com/codemod-com) - -### Links for more info - -- [Netlify SDK v0.8.1 Release Notes](https://sdk.netlify.com/release-notes/#081) diff --git a/apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventHandler/.codemod/config.json b/apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventHandler/.codemod/config.json new file mode 100644 index 000000000..9f115cd4e --- /dev/null +++ b/apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventHandler/.codemod/config.json @@ -0,0 +1,13 @@ +{ + "version": "1.0.0", + "private": false, + "name": "netlify/0.8.1/addBuildEventHandler", + "engine": "jscodeshift", + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "1m" + }, + "applicability": [["@netlify/sdk", ">=", "0.8.1"]], + "owner": "codemod.com" +} diff --git a/apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventHandler/config.json b/apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventHandler/config.json deleted file mode 100644 index 9fcf346b8..000000000 --- a/apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventHandler/config.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "netlify/0.8.1/addBuildEventHandler", - "engine": "jscodeshift" -} diff --git a/apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventHandler/package.json b/apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventHandler/package.json index 48a7181af..93b4d7028 100644 --- a/apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventHandler/package.json +++ b/apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventHandler/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/netlify-sdk/0.8.1/disableBuildEventHandlers/.codemod/DESCRIPTION.md b/apps/registry/codemods/netlify-sdk/0.8.1/disableBuildEventHandlers/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..256375ade --- /dev/null +++ b/apps/registry/codemods/netlify-sdk/0.8.1/disableBuildEventHandlers/.codemod/DESCRIPTION.md @@ -0,0 +1,19 @@ +# Rename disableBuildEventHandlers + +## Description + +This codemod renames `disableBuildhook` to `disableBuildEventHandlers` as required in Netlify SDK v0.8.1. + +## Example + +### Before + +```jsx +await client.disableBuildhook(siteId); +``` + +### After + +```jsx +await client.disableBuildEventHandlers(siteId); +``` diff --git a/apps/registry/codemods/netlify-sdk/0.8.1/disableBuildEventHandlers/.codemod/config.json b/apps/registry/codemods/netlify-sdk/0.8.1/disableBuildEventHandlers/.codemod/config.json new file mode 100644 index 000000000..d5c1e9f75 --- /dev/null +++ b/apps/registry/codemods/netlify-sdk/0.8.1/disableBuildEventHandlers/.codemod/config.json @@ -0,0 +1,13 @@ +{ + "version": "1.0.0", + "private": false, + "name": "netlify/0.8.1/disableBuildEventHandlers", + "engine": "jscodeshift", + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "1m" + }, + "applicability": [["@netlify/sdk", ">=", "0.8.1"]], + "owner": "codemod.com" +} diff --git a/apps/registry/codemods/netlify-sdk/0.8.1/disableBuildEventHandlers/README.md b/apps/registry/codemods/netlify-sdk/0.8.1/disableBuildEventHandlers/README.md deleted file mode 100644 index a660d92ae..000000000 --- a/apps/registry/codemods/netlify-sdk/0.8.1/disableBuildEventHandlers/README.md +++ /dev/null @@ -1,49 +0,0 @@ -# Rename disableBuildEventHandlers - -## Description - -This codemod renames `disableBuildhook` to `disableBuildEventHandlers` as required in Netlify SDK v0.8.1. - -## Example - -### Before - -```jsx -await client.disableBuildhook(siteId); -``` - -### After - -```jsx -await client.disableBuildEventHandlers(siteId); -``` - -## Applicability Criteria - -Netlify SDK v0.8.1 or higher. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Autonomous**: Changes can safely be pushed and merged without further human involvement. - -### **Codemod Engine** - -jscodeshift - -### Estimated Time Saving - -~1 minutes per occurrence - -### Owner - -[Codemod.com](https://github.com/codemod-com) - -### Links for more info - -- [Netlify SDK v0.8.1 Release Notes](https://sdk.netlify.com/release-notes/#081) diff --git a/apps/registry/codemods/netlify-sdk/0.8.1/disableBuildEventHandlers/config.json b/apps/registry/codemods/netlify-sdk/0.8.1/disableBuildEventHandlers/config.json deleted file mode 100644 index 7fcd4de7e..000000000 --- a/apps/registry/codemods/netlify-sdk/0.8.1/disableBuildEventHandlers/config.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "netlify/0.8.1/disableBuildEventHandlers", - "engine": "jscodeshift" -} diff --git a/apps/registry/codemods/netlify-sdk/0.8.1/disableBuildEventHandlers/package.json b/apps/registry/codemods/netlify-sdk/0.8.1/disableBuildEventHandlers/package.json index 2480bcc3e..db282c94b 100644 --- a/apps/registry/codemods/netlify-sdk/0.8.1/disableBuildEventHandlers/package.json +++ b/apps/registry/codemods/netlify-sdk/0.8.1/disableBuildEventHandlers/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/netlify-sdk/0.8.1/enableBuildEventHandlers/.codemod/DESCRIPTION.md b/apps/registry/codemods/netlify-sdk/0.8.1/enableBuildEventHandlers/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..be8f12b75 --- /dev/null +++ b/apps/registry/codemods/netlify-sdk/0.8.1/enableBuildEventHandlers/.codemod/DESCRIPTION.md @@ -0,0 +1,19 @@ +# Rename enableBuildEventHandlers + +## Description + +This codemod renames `enableBuildhook` to `enableBuildEventHandlers` as required in Netlify SDK v0.8.1. + +## Example + +### Before + +```jsx +await client.enableBuildhook(siteId); +``` + +### After + +```jsx +await client.enableBuildEventHandlers(siteId); +``` diff --git a/apps/registry/codemods/netlify-sdk/0.8.1/enableBuildEventHandlers/.codemod/config.json b/apps/registry/codemods/netlify-sdk/0.8.1/enableBuildEventHandlers/.codemod/config.json new file mode 100644 index 000000000..eb6638a32 --- /dev/null +++ b/apps/registry/codemods/netlify-sdk/0.8.1/enableBuildEventHandlers/.codemod/config.json @@ -0,0 +1,13 @@ +{ + "version": "1.0.0", + "private": false, + "name": "netlify/0.8.1/enableBuildEventHandlers", + "engine": "jscodeshift", + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "1m" + }, + "applicability": [["@netlify/sdk", ">=", "0.8.1"]], + "owner": "codemod.com" +} diff --git a/apps/registry/codemods/netlify-sdk/0.8.1/enableBuildEventHandlers/README.md b/apps/registry/codemods/netlify-sdk/0.8.1/enableBuildEventHandlers/README.md deleted file mode 100644 index bae2e5a10..000000000 --- a/apps/registry/codemods/netlify-sdk/0.8.1/enableBuildEventHandlers/README.md +++ /dev/null @@ -1,49 +0,0 @@ -# Rename enableBuildEventHandlers - -## Description - -This codemod renames `enableBuildhook` to `enableBuildEventHandlers` as required in Netlify SDK v0.8.1. - -## Example - -### Before - -```jsx -await client.enableBuildhook(siteId); -``` - -### After - -```jsx -await client.enableBuildEventHandlers(siteId); -``` - -## Applicability Criteria - -Netlify SDK v0.8.1 or higher. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Autonomous**: Changes can safely be pushed and merged without further human involvement. - -### **Codemod Engine** - -jscodeshift - -### Estimated Time Saving - -~1 minutes per occurrence - -### Owner - -[Codemod.com](https://github.com/codemod-com) - -### Links for more info - -- [Netlify SDK v0.8.1 Release Notes](https://sdk.netlify.com/release-notes/#081) diff --git a/apps/registry/codemods/netlify-sdk/0.8.1/enableBuildEventHandlers/config.json b/apps/registry/codemods/netlify-sdk/0.8.1/enableBuildEventHandlers/config.json deleted file mode 100644 index 3eb055c4d..000000000 --- a/apps/registry/codemods/netlify-sdk/0.8.1/enableBuildEventHandlers/config.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "netlify/0.8.1/enableBuildEventHandlers", - "engine": "jscodeshift" -} diff --git a/apps/registry/codemods/netlify-sdk/0.8.1/enableBuildEventHandlers/package.json b/apps/registry/codemods/netlify-sdk/0.8.1/enableBuildEventHandlers/package.json index 5e25b5eef..b60c6611d 100644 --- a/apps/registry/codemods/netlify-sdk/0.8.1/enableBuildEventHandlers/package.json +++ b/apps/registry/codemods/netlify-sdk/0.8.1/enableBuildEventHandlers/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/netlify-sdk/0.8.1/exportZod/.codemod/DESCRIPTION.md b/apps/registry/codemods/netlify-sdk/0.8.1/exportZod/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..c0a083b7e --- /dev/null +++ b/apps/registry/codemods/netlify-sdk/0.8.1/exportZod/.codemod/DESCRIPTION.md @@ -0,0 +1,19 @@ +# Export Zod + +## Description + +This codemod exports z from zod as required in Netlify SDK v0.8.1. + +## Example + +### Before + +```jsx +import { z } from '@netlify/sdk'; +``` + +### After + +```jsx +import { z } from '@netlify/sdk'; +``` diff --git a/apps/registry/codemods/netlify-sdk/0.8.1/exportZod/.codemod/config.json b/apps/registry/codemods/netlify-sdk/0.8.1/exportZod/.codemod/config.json new file mode 100644 index 000000000..7d39b5e93 --- /dev/null +++ b/apps/registry/codemods/netlify-sdk/0.8.1/exportZod/.codemod/config.json @@ -0,0 +1,13 @@ +{ + "version": "1.0.0", + "private": false, + "name": "netlify/0.8.1/exportZod", + "engine": "jscodeshift", + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "1m" + }, + "applicability": [["@netlify/sdk", ">=", "0.8.1"]], + "owner": "codemod.com" +} diff --git a/apps/registry/codemods/netlify-sdk/0.8.1/exportZod/README.md b/apps/registry/codemods/netlify-sdk/0.8.1/exportZod/README.md deleted file mode 100644 index edeabe0e5..000000000 --- a/apps/registry/codemods/netlify-sdk/0.8.1/exportZod/README.md +++ /dev/null @@ -1,49 +0,0 @@ -# Export Zod - -## Description - -This codemod exports z from zod as required in Netlify SDK v0.8.1. - -## Example - -### Before - -```jsx -import { z } from '@netlify/sdk'; -``` - -### After - -```jsx -import { z } from '@netlify/sdk'; -``` - -## Applicability Criteria - -Netlify SDK v0.8.1 or higher. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Autonomous**: Changes can safely be pushed and merged without further human involvement. - -### **Codemod Engine** - -jscodeshift - -### Estimated Time Saving - -~1 minutes per occurrence - -### Owner - -[Codemod.com](https://github.com/codemod-com) - -### Links for more info - -- [Netlify SDK v0.8.1 Release Notes](https://sdk.netlify.com/release-notes/#081) diff --git a/apps/registry/codemods/netlify-sdk/0.8.1/exportZod/config.json b/apps/registry/codemods/netlify-sdk/0.8.1/exportZod/config.json deleted file mode 100644 index 25455a1c8..000000000 --- a/apps/registry/codemods/netlify-sdk/0.8.1/exportZod/config.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "netlify/0.8.1/exportZod", - "engine": "jscodeshift" -} diff --git a/apps/registry/codemods/netlify-sdk/0.8.1/exportZod/package.json b/apps/registry/codemods/netlify-sdk/0.8.1/exportZod/package.json index e49c54147..f404c9f70 100644 --- a/apps/registry/codemods/netlify-sdk/0.8.1/exportZod/package.json +++ b/apps/registry/codemods/netlify-sdk/0.8.1/exportZod/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/netlify-sdk/0.8.4/addApiHandler/README.md b/apps/registry/codemods/netlify-sdk/0.8.4/addApiHandler/.codemod/DESCRIPTION.md similarity index 52% rename from apps/registry/codemods/netlify-sdk/0.8.4/addApiHandler/README.md rename to apps/registry/codemods/netlify-sdk/0.8.4/addApiHandler/.codemod/DESCRIPTION.md index 431f0a0ff..42c684be7 100644 --- a/apps/registry/codemods/netlify-sdk/0.8.4/addApiHandler/README.md +++ b/apps/registry/codemods/netlify-sdk/0.8.4/addApiHandler/.codemod/DESCRIPTION.md @@ -25,33 +25,3 @@ const integration = new NetlifyIntegration(); integration.addApiHandler('some-function', async (event, context) => {}); ``` - -## Applicability Criteria - -Netlify SDK v0.8.1 or higher. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Autonomous**: Changes can safely be pushed and merged without further human involvement. - -### **Codemod Engine** - -jscodeshift - -### Estimated Time Saving - -~1 minutes per occurrence - -### Owner - -[Codemod.com](https://github.com/codemod-com) - -### Links for more info - -- [Netlify SDK v0.8.1 Release Notes](https://sdk.netlify.com/release-notes/#081) diff --git a/apps/registry/codemods/netlify-sdk/0.8.4/addApiHandler/.codemod/config.json b/apps/registry/codemods/netlify-sdk/0.8.4/addApiHandler/.codemod/config.json new file mode 100644 index 000000000..50629d559 --- /dev/null +++ b/apps/registry/codemods/netlify-sdk/0.8.4/addApiHandler/.codemod/config.json @@ -0,0 +1,13 @@ +{ + "version": "1.0.0", + "private": false, + "name": "netlify/0.8.4/addApiHandler", + "engine": "jscodeshift", + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "1m" + }, + "applicability": [["@netlify/sdk", ">=", "0.8.4"]], + "owner": "codemod.com" +} diff --git a/apps/registry/codemods/netlify-sdk/0.8.4/addApiHandler/config.json b/apps/registry/codemods/netlify-sdk/0.8.4/addApiHandler/config.json deleted file mode 100644 index 4435ad717..000000000 --- a/apps/registry/codemods/netlify-sdk/0.8.4/addApiHandler/config.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "netlify/0.8.4/addApiHandler", - "engine": "jscodeshift" -} diff --git a/apps/registry/codemods/netlify-sdk/0.8.4/addApiHandler/package.json b/apps/registry/codemods/netlify-sdk/0.8.4/addApiHandler/package.json index 737649907..f1100612c 100644 --- a/apps/registry/codemods/netlify-sdk/0.8.4/addApiHandler/package.json +++ b/apps/registry/codemods/netlify-sdk/0.8.4/addApiHandler/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/createEnvironmentVariable/.codemod/DESCRIPTION.md b/apps/registry/codemods/netlify-sdk/0.8.5/createEnvironmentVariable/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..999c6640f --- /dev/null +++ b/apps/registry/codemods/netlify-sdk/0.8.5/createEnvironmentVariable/.codemod/DESCRIPTION.md @@ -0,0 +1,24 @@ +# createEnvironmentVariable + +## Description + +This codemod changes `createEnvironmentVariable` to pass an object instead of the separate arguments as required in Netlify SDK v0.8.5. + +## Example + +### Before + +```jsx +createEnvironmentVariable(accountId, siteId, key, values); +``` + +### After + +```jsx +createEnvironmentVariable({ + accountId: accountId, + siteId: siteId, + key: key, + values: values, +}); +``` diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/createEnvironmentVariable/.codemod/config.json b/apps/registry/codemods/netlify-sdk/0.8.5/createEnvironmentVariable/.codemod/config.json new file mode 100644 index 000000000..c4d2fb576 --- /dev/null +++ b/apps/registry/codemods/netlify-sdk/0.8.5/createEnvironmentVariable/.codemod/config.json @@ -0,0 +1,13 @@ +{ + "version": "1.0.0", + "private": false, + "name": "netlify/0.8.5/createEnvironmentVariable", + "engine": "jscodeshift", + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "1m" + }, + "applicability": [["@netlify/sdk", ">=", "0.8.5"]], + "owner": "codemod.com" +} diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/createEnvironmentVariable/README.md b/apps/registry/codemods/netlify-sdk/0.8.5/createEnvironmentVariable/README.md deleted file mode 100644 index 5df05c69e..000000000 --- a/apps/registry/codemods/netlify-sdk/0.8.5/createEnvironmentVariable/README.md +++ /dev/null @@ -1,54 +0,0 @@ -# createEnvironmentVariable - -## Description - -This codemod changes `createEnvironmentVariable` to pass an object instead of the separate arguments as required in Netlify SDK v0.8.5. - -## Example - -### Before - -```jsx -createEnvironmentVariable(accountId, siteId, key, values); -``` - -### After - -```jsx -createEnvironmentVariable({ - accountId: accountId, - siteId: siteId, - key: key, - values: values, -}); -``` - -## Applicability Criteria - -Netlify SDK v0.8.5 or higher. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Autonomous**: Changes can safely be pushed and merged without further human involvement. - -### **Codemod Engine** - -jscodeshift - -### Estimated Time Saving - -~3 minutes per occurrence - -### Owner - -[Codemod.com](https://github.com/codemod-com) - -### Links for more info - -- [Netlify SDK v0.8.5 Release Notes](https://sdk.netlify.com/release-notes/#085) diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/createEnvironmentVariable/config.json b/apps/registry/codemods/netlify-sdk/0.8.5/createEnvironmentVariable/config.json deleted file mode 100644 index 61dceb104..000000000 --- a/apps/registry/codemods/netlify-sdk/0.8.5/createEnvironmentVariable/config.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "netlify/0.8.5/createEnvironmentVariable", - "engine": "jscodeshift" -} diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/createEnvironmentVariable/package.json b/apps/registry/codemods/netlify-sdk/0.8.5/createEnvironmentVariable/package.json index 00a25765d..cf2f7016e 100644 --- a/apps/registry/codemods/netlify-sdk/0.8.5/createEnvironmentVariable/package.json +++ b/apps/registry/codemods/netlify-sdk/0.8.5/createEnvironmentVariable/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariable/.codemod/DESCRIPTION.md b/apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariable/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..4c926fbda --- /dev/null +++ b/apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariable/.codemod/DESCRIPTION.md @@ -0,0 +1,24 @@ +# createOrUpdateVariable + +## Description + +This codemod changes `createOrUpdateVariable` to pass an object instead of the separate arguments as required in Netlify SDK v0.8.5. + +## Example + +### Before + +```jsx +createOrUpdateVariable(accountId, siteId, key, value); +``` + +### After + +```jsx +createOrUpdateVariable({ + accountId: accountId, + siteId: siteId, + key: key, + values: value, +}); +``` diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariable/.codemod/config.json b/apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariable/.codemod/config.json new file mode 100644 index 000000000..f03e72ff0 --- /dev/null +++ b/apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariable/.codemod/config.json @@ -0,0 +1,13 @@ +{ + "version": "1.0.0", + "private": false, + "name": "netlify/0.8.5/createOrUpdateVariable", + "engine": "jscodeshift", + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "3m" + }, + "applicability": [["@netlify/sdk", ">=", "0.8.5"]], + "owner": "codemod.com" +} diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariable/README.md b/apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariable/README.md deleted file mode 100644 index dcdfe7c52..000000000 --- a/apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariable/README.md +++ /dev/null @@ -1,54 +0,0 @@ -# createOrUpdateVariable - -## Description - -This codemod changes `createOrUpdateVariable` to pass an object instead of the separate arguments as required in Netlify SDK v0.8.5. - -## Example - -### Before - -```jsx -createOrUpdateVariable(accountId, siteId, key, value); -``` - -### After - -```jsx -createOrUpdateVariable({ - accountId: accountId, - siteId: siteId, - key: key, - values: value, -}); -``` - -## Applicability Criteria - -Netlify SDK v0.8.5 or higher. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Autonomous**: Changes can safely be pushed and merged without further human involvement. - -### **Codemod Engine** - -jscodeshift - -### Estimated Time Saving - -~3 minutes per occurrence - -### Owner - -[Codemod.com](https://github.com/codemod-com) - -### Links for more info - -- [Netlify SDK v0.8.5 Release Notes](https://sdk.netlify.com/release-notes/#085) diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariable/config.json b/apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariable/config.json deleted file mode 100644 index 69e685569..000000000 --- a/apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariable/config.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "netlify/0.8.5/createOrUpdateVariable", - "engine": "jscodeshift" -} diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariable/package.json b/apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariable/package.json index 808d58a54..b762dc2b4 100644 --- a/apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariable/package.json +++ b/apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariable/package.json @@ -15,6 +15,11 @@ "main": "./dist/index.cjs", "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariables/.codemod/DESCRIPTION.md b/apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariables/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..c20db5b4e --- /dev/null +++ b/apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariables/.codemod/DESCRIPTION.md @@ -0,0 +1,23 @@ +# createOrUpdateVariables + +## Description + +This codemod changes `createOrUpdateVariables` to pass an object instead of the separate arguments as required in Netlify SDK v0.8.5. + +## Example + +### Before + +```jsx +createOrUpdateVariables(accountId, siteId, variables); +``` + +### After + +```jsx +createOrUpdateVariables({ + accountId: accountId, + siteId: siteId, + key: variables, +}); +``` diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariables/.codemod/config.json b/apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariables/.codemod/config.json new file mode 100644 index 000000000..c818b81d7 --- /dev/null +++ b/apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariables/.codemod/config.json @@ -0,0 +1,13 @@ +{ + "version": "1.0.0", + "private": false, + "name": "netlify/0.8.5/createOrUpdateVariables", + "engine": "jscodeshift", + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "3m" + }, + "applicability": [["@netlify/sdk", ">=", "0.8.5"]], + "owner": "codemod.com" +} diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariables/README.md b/apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariables/README.md deleted file mode 100644 index 76ed4bc19..000000000 --- a/apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariables/README.md +++ /dev/null @@ -1,53 +0,0 @@ -# createOrUpdateVariables - -## Description - -This codemod changes `createOrUpdateVariables` to pass an object instead of the separate arguments as required in Netlify SDK v0.8.5. - -## Example - -### Before - -```jsx -createOrUpdateVariables(accountId, siteId, variables); -``` - -### After - -```jsx -createOrUpdateVariables({ - accountId: accountId, - siteId: siteId, - key: variables, -}); -``` - -## Applicability Criteria - -Netlify SDK v0.8.5 or higher. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Autonomous**: Changes can safely be pushed and merged without further human involvement. - -### **Codemod Engine** - -jscodeshift - -### Estimated Time Saving - -~3 minutes per occurrence - -### Owner - -[Codemod.com](https://github.com/codemod-com) - -### Links for more info - -- [Netlify SDK v0.8.5 Release Notes](https://sdk.netlify.com/release-notes/#085) diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariables/config.json b/apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariables/config.json deleted file mode 100644 index 449004da5..000000000 --- a/apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariables/config.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "netlify/0.8.5/createOrUpdateVariables", - "engine": "jscodeshift" -} diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariables/package.json b/apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariables/package.json index b9af85ed2..10ef4daf0 100644 --- a/apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariables/package.json +++ b/apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariables/package.json @@ -15,6 +15,11 @@ "main": "./dist/index.cjs", "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariable/.codemod/DESCRIPTION.md b/apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariable/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..63ace8718 --- /dev/null +++ b/apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariable/.codemod/DESCRIPTION.md @@ -0,0 +1,23 @@ +# deleteEnvironmentVariable + +## Description + +This codemod changes `deleteEnvironmentVariable` to pass an object instead of the separate arguments as required in Netlify SDK v0.8.5. + +## Example + +### Before + +```jsx +deleteEnvironmentVariable(accountId, siteId, key); +``` + +### After + +```jsx +deleteEnvironmentVariable({ + accountId: accountId, + siteId: siteId, + key: key, +}); +``` diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariable/.codemod/config.json b/apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariable/.codemod/config.json new file mode 100644 index 000000000..d9b769983 --- /dev/null +++ b/apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariable/.codemod/config.json @@ -0,0 +1,13 @@ +{ + "version": "1.0.0", + "private": false, + "name": "netlify/0.8.5/deleteEnvironmentVariable", + "engine": "jscodeshift", + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "3m" + }, + "applicability": [["@netlify/sdk", ">=", "0.8.5"]], + "owner": "codemod.com" +} diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariable/README.md b/apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariable/README.md deleted file mode 100644 index a282a4a5e..000000000 --- a/apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariable/README.md +++ /dev/null @@ -1,53 +0,0 @@ -# deleteEnvironmentVariable - -## Description - -This codemod changes `deleteEnvironmentVariable` to pass an object instead of the separate arguments as required in Netlify SDK v0.8.5. - -## Example - -### Before - -```jsx -deleteEnvironmentVariable(accountId, siteId, key); -``` - -### After - -```jsx -deleteEnvironmentVariable({ - accountId: accountId, - siteId: siteId, - key: key, -}); -``` - -## Applicability Criteria - -Netlify SDK v0.8.5 or higher. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Autonomous**: Changes can safely be pushed and merged without further human involvement. - -### **Codemod Engine** - -jscodeshift - -### Estimated Time Saving - -~3 minutes per occurrence - -### Owner - -[Codemod.com](https://github.com/codemod-com) - -### Links for more info - -- [Netlify SDK v0.8.5 Release Notes](https://sdk.netlify.com/release-notes/#085) diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariable/config.json b/apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariable/config.json deleted file mode 100644 index b92c786a0..000000000 --- a/apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariable/config.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "netlify/0.8.5/deleteEnvironmentVariable", - "engine": "jscodeshift" -} diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariable/package.json b/apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariable/package.json index f327322b4..90094cc4d 100644 --- a/apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariable/package.json +++ b/apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariable/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariables/.codemod/DESCRIPTION.md b/apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariables/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..0709bcd2f --- /dev/null +++ b/apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariables/.codemod/DESCRIPTION.md @@ -0,0 +1,23 @@ +# deleteEnvironmentVariables + +## Description + +This codemod changes `deleteEnvironmentVariables` to pass an object instead of the separate arguments as required in Netlify SDK v0.8.5. + +## Example + +### Before + +```jsx +deleteEnvironmentVariables(accountId, siteId, variables); +``` + +### After + +```jsx +deleteEnvironmentVariables({ + accountId: accountId, + siteId: siteId, + variables: variables, +}); +``` \ No newline at end of file diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariables/.codemod/config.json b/apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariables/.codemod/config.json new file mode 100644 index 000000000..a27f77928 --- /dev/null +++ b/apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariables/.codemod/config.json @@ -0,0 +1,13 @@ +{ + "version": "1.0.0", + "private": false, + "name": "netlify/0.8.5/deleteEnvironmentVariables", + "engine": "jscodeshift", + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "3m" + }, + "applicability": [["@netlify/sdk", ">=", "0.8.5"]], + "owner": "codemod.com" +} diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariables/README.md b/apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariables/README.md deleted file mode 100644 index 869bc62b8..000000000 --- a/apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariables/README.md +++ /dev/null @@ -1,53 +0,0 @@ -# deleteEnvironmentVariables - -## Description - -This codemod changes `deleteEnvironmentVariables` to pass an object instead of the separate arguments as required in Netlify SDK v0.8.5. - -## Example - -### Before - -```jsx -deleteEnvironmentVariables(accountId, siteId, variables); -``` - -### After - -```jsx -deleteEnvironmentVariables({ - accountId: accountId, - siteId: siteId, - variables: variables, -}); -``` - -## Applicability Criteria - -Netlify SDK v0.8.5 or higher. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Autonomous**: Changes can safely be pushed and merged without further human involvement. - -### **Codemod Engine** - -jscodeshift - -### Estimated Time Saving - -~3 minutes per occurrence - -### Owner - -[Codemod.com](https://github.com/codemod-com) - -### Links for more info - -- [Netlify SDK v0.8.5 Release Notes](https://sdk.netlify.com/release-notes/#085) diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariables/config.json b/apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariables/config.json deleted file mode 100644 index 468a7d24a..000000000 --- a/apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariables/config.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "netlify/0.8.5/deleteEnvironmentVariables", - "engine": "jscodeshift" -} diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariables/package.json b/apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariables/package.json index b2598b651..8fee5c5ba 100644 --- a/apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariables/package.json +++ b/apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariables/package.json @@ -15,6 +15,11 @@ "main": "./dist/index.cjs", "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/getEnvironmentVariables/.codemod/DESCRIPTION.md b/apps/registry/codemods/netlify-sdk/0.8.5/getEnvironmentVariables/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..49f26fad3 --- /dev/null +++ b/apps/registry/codemods/netlify-sdk/0.8.5/getEnvironmentVariables/.codemod/DESCRIPTION.md @@ -0,0 +1,22 @@ +# getEnvironmentVariables + +## Description + +This codemod changes `getEnvironmentVariables` to pass an object instead of the separate arguments as required in Netlify SDK v0.8.5. + +## Example + +### Before + +```jsx +getEnvironmentVariables(accountId, siteId); +``` + +### After + +```jsx +getEnvironmentVariables({ + accountId: accountId, + siteId: siteId, +}); +``` diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/getEnvironmentVariables/.codemod/config.json b/apps/registry/codemods/netlify-sdk/0.8.5/getEnvironmentVariables/.codemod/config.json new file mode 100644 index 000000000..c6b5cbd5a --- /dev/null +++ b/apps/registry/codemods/netlify-sdk/0.8.5/getEnvironmentVariables/.codemod/config.json @@ -0,0 +1,13 @@ +{ + "version": "1.0.0", + "private": false, + "name": "netlify/0.8.5/getEnvironmentVariables", + "engine": "jscodeshift", + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "3m" + }, + "applicability": [["@netlify/sdk", ">=", "0.8.5"]], + "owner": "codemod.com" +} diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/getEnvironmentVariables/README.md b/apps/registry/codemods/netlify-sdk/0.8.5/getEnvironmentVariables/README.md deleted file mode 100644 index 91172f820..000000000 --- a/apps/registry/codemods/netlify-sdk/0.8.5/getEnvironmentVariables/README.md +++ /dev/null @@ -1,52 +0,0 @@ -# getEnvironmentVariables - -## Description - -This codemod changes `getEnvironmentVariables` to pass an object instead of the separate arguments as required in Netlify SDK v0.8.5. - -## Example - -### Before - -```jsx -getEnvironmentVariables(accountId, siteId); -``` - -### After - -```jsx -getEnvironmentVariables({ - accountId: accountId, - siteId: siteId, -}); -``` - -## Applicability Criteria - -Netlify SDK v0.8.5 or higher. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Autonomous**: Changes can safely be pushed and merged without further human involvement. - -### **Codemod Engine** - -jscodeshift - -### Estimated Time Saving - -~3 minutes per occurrence - -### Owner - -[Codemod.com](https://github.com/codemod-com) - -### Links for more info - -- [Netlify SDK v0.8.5 Release Notes](https://sdk.netlify.com/release-notes/#085) diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/getEnvironmentVariables/config.json b/apps/registry/codemods/netlify-sdk/0.8.5/getEnvironmentVariables/config.json deleted file mode 100644 index 89ebd1780..000000000 --- a/apps/registry/codemods/netlify-sdk/0.8.5/getEnvironmentVariables/config.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "netlify/0.8.5/getEnvironmentVariables", - "engine": "jscodeshift" -} diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/getEnvironmentVariables/package.json b/apps/registry/codemods/netlify-sdk/0.8.5/getEnvironmentVariables/package.json index b231659a2..19a29a918 100644 --- a/apps/registry/codemods/netlify-sdk/0.8.5/getEnvironmentVariables/package.json +++ b/apps/registry/codemods/netlify-sdk/0.8.5/getEnvironmentVariables/package.json @@ -15,6 +15,11 @@ "main": "./dist/index.cjs", "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/netlify-sdk-0.8.5-recipe/README.md b/apps/registry/codemods/netlify-sdk/0.8.5/netlify-sdk-0.8.5-recipe/.codemod/DESCRIPTION.md similarity index 75% rename from apps/registry/codemods/netlify-sdk/0.8.5/netlify-sdk-0.8.5-recipe/README.md rename to apps/registry/codemods/netlify-sdk/0.8.5/netlify-sdk-0.8.5-recipe/.codemod/DESCRIPTION.md index 6ccc34a19..eb9177804 100644 --- a/apps/registry/codemods/netlify-sdk/0.8.5/netlify-sdk-0.8.5-recipe/README.md +++ b/apps/registry/codemods/netlify-sdk/0.8.5/netlify-sdk-0.8.5-recipe/.codemod/DESCRIPTION.md @@ -14,29 +14,3 @@ The recipe includes the following codemods: - [getEnvironmentVariables](https://github.com/codemod-com/codemod-registry/tree/main/codemods/netlify-sdk/0.8.5/getEnvironmentVariables) - [patchEnvironmentVariable](https://github.com/codemod-com/codemod-registry/tree/main/codemods/netlify-sdk/0.8.5/patchEnvironmentVariable) - [updateEnvironmentVariable](https://github.com/codemod-com/codemod-registry/tree/main/codemods/netlify-sdk/0.8.5/updateEnvironmentVariable) - -## Applicability Criteria - -Netlify SDK v0.8.5 or higher. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Autonomous**: Changes can safely be pushed and merged without further human involvement. - -### Estimated Time Saving - -~3 minutes per occurrence - -### Owner - -[Codemod.com](https://github.com/codemod-com) - -### Links for more info - -- [Netlify SDK v0.8.5 Release Notes](https://sdk.netlify.com/release-notes/#085) diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/netlify-sdk-0.8.5-recipe/config.json b/apps/registry/codemods/netlify-sdk/0.8.5/netlify-sdk-0.8.5-recipe/.codemod/config.json similarity index 65% rename from apps/registry/codemods/netlify-sdk/0.8.5/netlify-sdk-0.8.5-recipe/config.json rename to apps/registry/codemods/netlify-sdk/0.8.5/netlify-sdk-0.8.5-recipe/.codemod/config.json index c62494e2c..f4715d9a6 100644 --- a/apps/registry/codemods/netlify-sdk/0.8.5/netlify-sdk-0.8.5-recipe/config.json +++ b/apps/registry/codemods/netlify-sdk/0.8.5/netlify-sdk-0.8.5-recipe/.codemod/config.json @@ -1,5 +1,6 @@ { - "schemaVersion": "1.0.0", + "version": "1.0.0", + "private": false, "engine": "recipe", "names": [ "netlify/0.8.5/createEnvironmentVariable", @@ -10,5 +11,12 @@ "netlify/0.8.5/getEnvironmentVariables", "netlify/0.8.5/patchEnvironmentVariable", "netlify/0.8.5/updateEnvironmentVariable" - ] + ], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "3m" + }, + "applicability": [["@netlify/sdk", ">=", "0.8.5"]], + "owner": "codemod.com" } diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/netlify-sdk-0.8.5-recipe/package.json b/apps/registry/codemods/netlify-sdk/0.8.5/netlify-sdk-0.8.5-recipe/package.json index eca83b626..a639585d3 100644 --- a/apps/registry/codemods/netlify-sdk/0.8.5/netlify-sdk-0.8.5-recipe/package.json +++ b/apps/registry/codemods/netlify-sdk/0.8.5/netlify-sdk-0.8.5-recipe/package.json @@ -1,5 +1,5 @@ { "name": "@codemod-com/codemod-netlify-sdk-0.8.5-netlify-sdk-0.8.5-recipe", - "files": ["README.md", "config.json"], + "files": ["./.codemod/DESCRIPTION.md", "./.codemod/config.json"], "type": "module" } diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/patchEnvironmentVariable/README.md b/apps/registry/codemods/netlify-sdk/0.8.5/patchEnvironmentVariable/.codemod/DESCRIPTION.md similarity index 50% rename from apps/registry/codemods/netlify-sdk/0.8.5/patchEnvironmentVariable/README.md rename to apps/registry/codemods/netlify-sdk/0.8.5/patchEnvironmentVariable/.codemod/DESCRIPTION.md index d92efa647..949dfd671 100644 --- a/apps/registry/codemods/netlify-sdk/0.8.5/patchEnvironmentVariable/README.md +++ b/apps/registry/codemods/netlify-sdk/0.8.5/patchEnvironmentVariable/.codemod/DESCRIPTION.md @@ -31,33 +31,3 @@ patchEnvironmentVariable({ contextParameter: contextParameter, }); ``` - -## Applicability Criteria - -Netlify SDK v0.8.5 or higher. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Autonomous**: Changes can safely be pushed and merged without further human involvement. - -### **Codemod Engine** - -jscodeshift - -### Estimated Time Saving - -~3 minutes per occurrence - -### Owner - -[Codemod.com](https://github.com/codemod-com) - -### Links for more info - -- [Netlify SDK v0.8.5 Release Notes](https://sdk.netlify.com/release-notes/#085) diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/patchEnvironmentVariable/.codemod/config.json b/apps/registry/codemods/netlify-sdk/0.8.5/patchEnvironmentVariable/.codemod/config.json new file mode 100644 index 000000000..e126a2eff --- /dev/null +++ b/apps/registry/codemods/netlify-sdk/0.8.5/patchEnvironmentVariable/.codemod/config.json @@ -0,0 +1,13 @@ +{ + "version": "1.0.0", + "private": false, + "name": "netlify/0.8.5/patchEnvironmentVariable", + "engine": "jscodeshift", + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "3m" + }, + "applicability": [["@netlify/sdk", ">=", "0.8.5"]], + "owner": "codemod.com" +} diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/patchEnvironmentVariable/config.json b/apps/registry/codemods/netlify-sdk/0.8.5/patchEnvironmentVariable/config.json deleted file mode 100644 index 2a5005026..000000000 --- a/apps/registry/codemods/netlify-sdk/0.8.5/patchEnvironmentVariable/config.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "netlify/0.8.5/patchEnvironmentVariable", - "engine": "jscodeshift" -} diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/patchEnvironmentVariable/package.json b/apps/registry/codemods/netlify-sdk/0.8.5/patchEnvironmentVariable/package.json index 9a13369e8..0bed2ddf3 100644 --- a/apps/registry/codemods/netlify-sdk/0.8.5/patchEnvironmentVariable/package.json +++ b/apps/registry/codemods/netlify-sdk/0.8.5/patchEnvironmentVariable/package.json @@ -15,6 +15,11 @@ "main": "./dist/index.cjs", "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/updateEnvironmentVariable/.codemod/DESCRIPTION.md b/apps/registry/codemods/netlify-sdk/0.8.5/updateEnvironmentVariable/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..76b265ef9 --- /dev/null +++ b/apps/registry/codemods/netlify-sdk/0.8.5/updateEnvironmentVariable/.codemod/DESCRIPTION.md @@ -0,0 +1,24 @@ +# updateEnvironmentVariable + +## Description + +This codemod changes `updateEnvironmentVariable` to pass an object instead of the separate arguments as required in Netlify SDK v0.8.5. + +## Example + +### Before + +```jsx +updateEnvironmentVariable(accountId, siteId, key, values); +``` + +### After + +```jsx +updateEnvironmentVariable({ + accountId: accountId, + siteId: siteId, + key: key, + values: values, +}); +``` diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/updateEnvironmentVariable/.codemod/config.json b/apps/registry/codemods/netlify-sdk/0.8.5/updateEnvironmentVariable/.codemod/config.json new file mode 100644 index 000000000..0de7d7a7b --- /dev/null +++ b/apps/registry/codemods/netlify-sdk/0.8.5/updateEnvironmentVariable/.codemod/config.json @@ -0,0 +1,13 @@ +{ + "version": "1.0.0", + "private": false, + "name": "netlify/0.8.5/updateEnvironmentVariable", + "engine": "jscodeshift", + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "3m" + }, + "applicability": [["@netlify/sdk", ">=", "0.8.5"]], + "owner": "codemod.com" +} diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/updateEnvironmentVariable/README.md b/apps/registry/codemods/netlify-sdk/0.8.5/updateEnvironmentVariable/README.md deleted file mode 100644 index a86e5d865..000000000 --- a/apps/registry/codemods/netlify-sdk/0.8.5/updateEnvironmentVariable/README.md +++ /dev/null @@ -1,54 +0,0 @@ -# updateEnvironmentVariable - -## Description - -This codemod changes `updateEnvironmentVariable` to pass an object instead of the separate arguments as required in Netlify SDK v0.8.5. - -## Example - -### Before - -```jsx -updateEnvironmentVariable(accountId, siteId, key, values); -``` - -### After - -```jsx -updateEnvironmentVariable({ - accountId: accountId, - siteId: siteId, - key: key, - values: values, -}); -``` - -## Applicability Criteria - -Netlify SDK v0.8.5 or higher. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Autonomous**: Changes can safely be pushed and merged without further human involvement. - -### **Codemod Engine** - -jscodeshift - -### Estimated Time Saving - -~3 minutes per occurrence - -### Owner - -[Codemod.com](https://github.com/codemod-com) - -### Links for more info - -- [Netlify SDK v0.8.5 Release Notes](https://sdk.netlify.com/release-notes/#085) diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/updateEnvironmentVariable/config.json b/apps/registry/codemods/netlify-sdk/0.8.5/updateEnvironmentVariable/config.json deleted file mode 100644 index ecede2f21..000000000 --- a/apps/registry/codemods/netlify-sdk/0.8.5/updateEnvironmentVariable/config.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "netlify/0.8.5/updateEnvironmentVariable", - "engine": "jscodeshift" -} diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/updateEnvironmentVariable/package.json b/apps/registry/codemods/netlify-sdk/0.8.5/updateEnvironmentVariable/package.json index ff7546fe8..23efdfc9a 100644 --- a/apps/registry/codemods/netlify-sdk/0.8.5/updateEnvironmentVariable/package.json +++ b/apps/registry/codemods/netlify-sdk/0.8.5/updateEnvironmentVariable/package.json @@ -15,6 +15,11 @@ "main": "./dist/index.cjs", "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/next-i18next/copy-keys/README.md b/apps/registry/codemods/next-i18next/copy-keys/.codemod/DESCRIPTION.md similarity index 73% rename from apps/registry/codemods/next-i18next/copy-keys/README.md rename to apps/registry/codemods/next-i18next/copy-keys/.codemod/DESCRIPTION.md index 1537ada50..11ec7e874 100644 --- a/apps/registry/codemods/next-i18next/copy-keys/README.md +++ b/apps/registry/codemods/next-i18next/copy-keys/.codemod/DESCRIPTION.md @@ -51,30 +51,4 @@ You need to pass these arguments using the [Codemod Arguments' settings](https:/ "existingKey": "existingKeyEnglish", "copyKey": "copyKeyEnglish" } -``` - -## Applicability Criteria - -`next-i18next > 14.x` - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Autonomous**: Changes can safely be pushed and merged without further human involvement. - -### **Codemod Engine** - -Filemod - -### Estimated Time Saving - -~1 minute per each key within each language file - -### Owner - -[Codemod.com](https://github.com/codemod-com) +``` \ No newline at end of file diff --git a/apps/registry/codemods/next-i18next/copy-keys/config.json b/apps/registry/codemods/next-i18next/copy-keys/.codemod/config.json similarity index 57% rename from apps/registry/codemods/next-i18next/copy-keys/config.json rename to apps/registry/codemods/next-i18next/copy-keys/.codemod/config.json index 7e38e827b..75941bc1d 100644 --- a/apps/registry/codemods/next-i18next/copy-keys/config.json +++ b/apps/registry/codemods/next-i18next/copy-keys/.codemod/config.json @@ -1,6 +1,10 @@ { - "schemaVersion": "1.0.0", + "version": "1.0.0", + "name": "next-i18next/copy-keys", + "private": false, "engine": "filemod", + "applicability": [["next-i18next", ">", "14.0.0"]], + "owner": "codemod.com", "arguments": [ { "name": "oldNamespace", @@ -20,5 +24,10 @@ "default": "", "required": true } - ] + ], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "1m" + } } diff --git a/apps/registry/codemods/next-i18next/copy-keys/package.json b/apps/registry/codemods/next-i18next/copy-keys/package.json index d1efba7f4..f681ff96b 100644 --- a/apps/registry/codemods/next-i18next/copy-keys/package.json +++ b/apps/registry/codemods/next-i18next/copy-keys/package.json @@ -23,6 +23,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/next/13/ab-test/.codemod/DESCRIPTION.md b/apps/registry/codemods/next/13/ab-test/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..e00d44b55 --- /dev/null +++ b/apps/registry/codemods/next/13/ab-test/.codemod/DESCRIPTION.md @@ -0,0 +1,5 @@ +# Generate URL Patterns for Cal.com + +## Description + +This codemod generates boilerplate code for A/B tests using the Next.js middlewares. The middleware controls the redirects from the legacy to the future pages. You can control the redirection probability and targeted pages using environment variables. diff --git a/apps/registry/codemods/next/13/ab-test/.codemod/config.json b/apps/registry/codemods/next/13/ab-test/.codemod/config.json new file mode 100644 index 000000000..163fa42e3 --- /dev/null +++ b/apps/registry/codemods/next/13/ab-test/.codemod/config.json @@ -0,0 +1,13 @@ +{ + "version": "1.0.0", + "private": false, + "engine": "filemod", + "arguments": [], + "owner": "codemod.com", + "meta": { + "type": "migration", + "changeType": "assistive", + "timeSave": "2h" + }, + "applicability": [["next", "<", "13.0.0"]] +} diff --git a/apps/registry/codemods/next/13/ab-test/README.md b/apps/registry/codemods/next/13/ab-test/README.md deleted file mode 100644 index 573a9d2a7..000000000 --- a/apps/registry/codemods/next/13/ab-test/README.md +++ /dev/null @@ -1,31 +0,0 @@ -# Generate URL Patterns for Cal.com - -## Description - -This codemod generates boilerplate code for A/B tests using the Next.js middlewares. The middleware controls the redirects from the legacy to the future pages. You can control the redirection probability and targeted pages using environment variables. - -## Applicability Criteria - -Next.js version is greater or equal to 13.4. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Assistive**: The automation partially completes changes. Human involvement is needed to make changes ready to be pushed and merged. - -### **Codemod Engine** - -filemod - -### Estimated Time Saving - -2h - -### Owner - -[Codemod.com](https://github.com/codemod-com) diff --git a/apps/registry/codemods/next/13/ab-test/config.json b/apps/registry/codemods/next/13/ab-test/config.json deleted file mode 100644 index 51410c1e5..000000000 --- a/apps/registry/codemods/next/13/ab-test/config.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "engine": "filemod", - "arguments": [] -} diff --git a/apps/registry/codemods/next/13/ab-test/package.json b/apps/registry/codemods/next/13/ab-test/package.json index e8b3345dc..9e12c10ec 100644 --- a/apps/registry/codemods/next/13/ab-test/package.json +++ b/apps/registry/codemods/next/13/ab-test/package.json @@ -23,6 +23,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/next/13/app-directory-boilerplate/README.md b/apps/registry/codemods/next/13/app-directory-boilerplate/.codemod/DESCRIPTION.md similarity index 72% rename from apps/registry/codemods/next/13/app-directory-boilerplate/README.md rename to apps/registry/codemods/next/13/app-directory-boilerplate/.codemod/DESCRIPTION.md index d13e3bed4..9587b71c1 100644 --- a/apps/registry/codemods/next/13/app-directory-boilerplate/README.md +++ b/apps/registry/codemods/next/13/app-directory-boilerplate/.codemod/DESCRIPTION.md @@ -47,33 +47,3 @@ The codemod will generate the following corresponding directory: └── c └── page.tsx ``` - -## Applicability Criteria - -Next.js version is greater or equal to 13.4. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Assistive**: The automation partially completes changes. Human involvement is needed to make changes ready to be pushed and merged. - -### **Codemod Engine** - -ts-morph - -### Estimated Time Saving - -~5 minutes per occurrence - -### Owner - -[Codemod.com](https://github.com/codemod-com) - -### Links for more info - -- https://nextjs.org/docs/pages/building-your-application/upgrading/app-router-migration diff --git a/apps/registry/codemods/next/13/app-directory-boilerplate/.codemod/config.json b/apps/registry/codemods/next/13/app-directory-boilerplate/.codemod/config.json new file mode 100644 index 000000000..bb166b2ff --- /dev/null +++ b/apps/registry/codemods/next/13/app-directory-boilerplate/.codemod/config.json @@ -0,0 +1,14 @@ +{ + "version": "1.0.0", + "private": false, + "name": "next/13/app-directory-boilerplate", + "description": "This codemod provides boilerplate for the app directory.", + "engine": "filemod", + "applicability": [["next", "<", "13.0.0"]], + "owner": "codemod.com", + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + } +} diff --git a/apps/registry/codemods/next/13/app-directory-boilerplate/config.json b/apps/registry/codemods/next/13/app-directory-boilerplate/config.json deleted file mode 100644 index 431666346..000000000 --- a/apps/registry/codemods/next/13/app-directory-boilerplate/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "next/13/app-directory-boilerplate", - "description": "This codemod provides boilerplate for the app directory.", - "engine": "filemod", - "dependencyVersionLowerThan": ["next", "13.0.0"], - "owner": "codemod.com" -} diff --git a/apps/registry/codemods/next/13/app-directory-boilerplate/package.json b/apps/registry/codemods/next/13/app-directory-boilerplate/package.json index 6ee90af22..add5021be 100644 --- a/apps/registry/codemods/next/13/app-directory-boilerplate/package.json +++ b/apps/registry/codemods/next/13/app-directory-boilerplate/package.json @@ -29,6 +29,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/next/13/app-router-recipe/README.md b/apps/registry/codemods/next/13/app-router-recipe/.codemod/DESCRIPTION.md similarity index 58% rename from apps/registry/codemods/next/13/app-router-recipe/README.md rename to apps/registry/codemods/next/13/app-router-recipe/.codemod/DESCRIPTION.md index 939418fde..dcfaa5d33 100644 --- a/apps/registry/codemods/next/13/app-router-recipe/README.md +++ b/apps/registry/codemods/next/13/app-router-recipe/.codemod/DESCRIPTION.md @@ -10,29 +10,3 @@ The recipe includes the following codemods: - [replace-next-head](https://github.com/codemod-com/codemod-registry/tree/main/codemods/next/13/replace-next-head) - [remove-get-static-props](https://github.com/codemod-com/codemod-registry/tree/main/codemods/next/13/remove-get-static-props) - [app-directory-boilerplate](https://github.com/codemod-com/codemod-registry/tree/main/codemods/next/13/app-directory-boilerplate) - -## Applicability Criteria - -Next.js version higher or equal to 13. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Assistive**: The automation partially completes changes. Human involvement is needed to make changes ready to be pushed and merged. - -### Estimated Time Saving - -~5 minutes per occurrence - -### Owner - -[Codemod.com](https://github.com/codemod-com) - -### Links for more info - -- https://nextjs.org/docs/app/building-your-application/upgrading/app-router-migration diff --git a/apps/registry/codemods/next/13/app-router-recipe/config.json b/apps/registry/codemods/next/13/app-router-recipe/.codemod/config.json similarity index 50% rename from apps/registry/codemods/next/13/app-router-recipe/config.json rename to apps/registry/codemods/next/13/app-router-recipe/.codemod/config.json index 108c67972..678cf3b34 100644 --- a/apps/registry/codemods/next/13/app-router-recipe/config.json +++ b/apps/registry/codemods/next/13/app-router-recipe/.codemod/config.json @@ -1,10 +1,17 @@ { - "schemaVersion": "1.0.0", + "version": "1.0.0", + "private": false, "engine": "recipe", "names": [ "next/13/replace-next-router", "next/13/replace-next-head", "next/13/remove-get-static-props", "next/13/app-directory-boilerplate" - ] + ], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + }, + "applicability": [["next", "<", "13.0.0"]] } diff --git a/apps/registry/codemods/next/13/app-router-recipe/package.json b/apps/registry/codemods/next/13/app-router-recipe/package.json index 1ef373109..f334989a7 100644 --- a/apps/registry/codemods/next/13/app-router-recipe/package.json +++ b/apps/registry/codemods/next/13/app-router-recipe/package.json @@ -1,5 +1,5 @@ { "name": "@codemod-com/codemod-next-13-app-router-recipe", - "files": ["README.md", "config.json"], + "files": ["./.codemod/DESCRIPTION.md", "./.codemod/config.json"], "type": "module" } diff --git a/apps/registry/codemods/next/13/built-in-next-font/.codemod/DESCRIPTION.md b/apps/registry/codemods/next/13/built-in-next-font/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..f9698481e --- /dev/null +++ b/apps/registry/codemods/next/13/built-in-next-font/.codemod/DESCRIPTION.md @@ -0,0 +1,21 @@ +# Built in Next Font + +## Description + +This codemod transforms the module specifier `@next/font/*` in import statements into `next/font/*`. + +Using the `@next/font/*` modules is deprecated since Next.js v13.2. + +## Example + +### Before + +```jsx +import { Inter } from '@next/font/google'; +``` + +### After + +```jsx +import { Inter } from 'next/font/google'; +``` \ No newline at end of file diff --git a/apps/registry/codemods/next/13/built-in-next-font/config.json b/apps/registry/codemods/next/13/built-in-next-font/.codemod/config.json similarity index 53% rename from apps/registry/codemods/next/13/built-in-next-font/config.json rename to apps/registry/codemods/next/13/built-in-next-font/.codemod/config.json index d18c01113..42839fcb1 100644 --- a/apps/registry/codemods/next/13/built-in-next-font/config.json +++ b/apps/registry/codemods/next/13/built-in-next-font/.codemod/config.json @@ -1,14 +1,15 @@ { - "schemaVersion": "1.0.0", + "version": "1.0.0", + "private": false, "name": "next/13/built-in-next-font", "description": "The codemod removes @next/font and changes @next/font imports to use the built-in next/font instead.", "engine": "jscodeshift", "extensions": ["js*", "ts*"], - "dependencies": [ - { - "name": "next", - "range": "<13.2" - } - ], - "owner": "codemod.com" + "applicability": [["next", "<", "13.2.0"]], + "owner": "vercel", + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "30s" + } } diff --git a/apps/registry/codemods/next/13/built-in-next-font/README.md b/apps/registry/codemods/next/13/built-in-next-font/README.md deleted file mode 100644 index a91f6bf4a..000000000 --- a/apps/registry/codemods/next/13/built-in-next-font/README.md +++ /dev/null @@ -1,52 +0,0 @@ -# Built in Next Font - -## Description - -This codemod transforms the module specifier `@next/font/*` in import statements into `next/font/*`. - -Using the `@next/font/*` modules is deprecated since Next.js v13.2. - -## Example - -### Before - -```jsx -import { Inter } from '@next/font/google'; -``` - -### After - -```jsx -import { Inter } from 'next/font/google'; -``` - -## Applicability Criteria - -- Next.js version higher or equal to 13.2. -- This codemod requires you to use `@next/font/*` module specifier in import statements. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Autonomous**: Changes can safely be pushed and merged without further human involvement. - -### **Codemod Engine** - -[jscodeshift](https://github.com/facebook/jscodeshift) - -### Estimated Time Saving - -~30 seconds per occurrence - -### Owner - -[Vercel](https://github.com/vercel) - -### Links for more info - -- https://nextjs.org/docs/pages/building-your-application/upgrading/codemods#use-built-in-font diff --git a/apps/registry/codemods/next/13/built-in-next-font/package.json b/apps/registry/codemods/next/13/built-in-next-font/package.json index f976542da..921a8fe5d 100644 --- a/apps/registry/codemods/next/13/built-in-next-font/package.json +++ b/apps/registry/codemods/next/13/built-in-next-font/package.json @@ -15,6 +15,11 @@ "main": "./dist/index.cjs", "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/next/13/comment-deletable-files/README.md b/apps/registry/codemods/next/13/comment-deletable-files/.codemod/DESCRIPTION.md similarity index 62% rename from apps/registry/codemods/next/13/comment-deletable-files/README.md rename to apps/registry/codemods/next/13/comment-deletable-files/.codemod/DESCRIPTION.md index 49b31c57a..46649295b 100644 --- a/apps/registry/codemods/next/13/comment-deletable-files/README.md +++ b/apps/registry/codemods/next/13/comment-deletable-files/.codemod/DESCRIPTION.md @@ -41,30 +41,4 @@ function MyApp({ Component, pageProps }) { } export default MyApp; -``` - -## Applicability Criteria - -Next.js version higher or equal to 13.4 - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Assistive**: The automation partially completes changes. Human involvement is needed to make changes ready to be pushed and merged. - -### **Codemod Engine** - -jscodeshift - -### Estimated Time Saving - -The purpose of this codemod is to guide the user into the files that should be migrated away, which should equal ~5 minutes total of estimated time saving. - -### Owner - -[Codemod.com](https://github.com/codemod-com) +``` \ No newline at end of file diff --git a/apps/registry/codemods/next/13/comment-deletable-files/.codemod/config.json b/apps/registry/codemods/next/13/comment-deletable-files/.codemod/config.json new file mode 100644 index 000000000..956f932a7 --- /dev/null +++ b/apps/registry/codemods/next/13/comment-deletable-files/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "next/13/comment-deletable-files", + "description": "The codemod marks files that can be deleted with a comment.", + "engine": "jscodeshift", + "extensions": ["js*", "ts*"], + "applicability": [["next", "<", "13.0.0"]], + "owner": "codemod.com", + "meta": { + "type": "migration", + "changeType": "assistive", + "timeSave": "5m" + } +} diff --git a/apps/registry/codemods/next/13/comment-deletable-files/config.json b/apps/registry/codemods/next/13/comment-deletable-files/config.json deleted file mode 100644 index 7ce127177..000000000 --- a/apps/registry/codemods/next/13/comment-deletable-files/config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "next/13/comment-deletable-files", - "description": "The codemod marks files that can be deleted with a comment.", - "engine": "jscodeshift", - "extensions": ["js*", "ts*"], - "dependencies": [ - { - "name": "next", - "range": "<13" - } - ], - "owner": "codemod.com" -} diff --git a/apps/registry/codemods/next/13/comment-deletable-files/package.json b/apps/registry/codemods/next/13/comment-deletable-files/package.json index 8d20658e6..4654de5ef 100644 --- a/apps/registry/codemods/next/13/comment-deletable-files/package.json +++ b/apps/registry/codemods/next/13/comment-deletable-files/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/next/13/move-css-in-js-styles/README.md b/apps/registry/codemods/next/13/move-css-in-js-styles/.codemod/DESCRIPTION.md similarity index 56% rename from apps/registry/codemods/next/13/move-css-in-js-styles/README.md rename to apps/registry/codemods/next/13/move-css-in-js-styles/.codemod/DESCRIPTION.md index 81080b152..366264878 100644 --- a/apps/registry/codemods/next/13/move-css-in-js-styles/README.md +++ b/apps/registry/codemods/next/13/move-css-in-js-styles/.codemod/DESCRIPTION.md @@ -49,33 +49,3 @@ body { padding: 0; } ``` - -## Applicability Criteria - -Next.js version higher or equal to 13. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Assistive**: The automation partially completes changes. Human involvement is needed to make changes ready to be pushed and merged. - -### **Codemod Engine** - -jscodeshift - -### Estimated Time Saving - -~5 minutes per occurrence. - -### Owner - -[Codemod.com](https://github.com/codemod-com) - -### Links for more info - -- https://nextjs.org/docs/pages/building-your-application/styling/css-in-js diff --git a/apps/registry/codemods/next/13/move-css-in-js-styles/config.json b/apps/registry/codemods/next/13/move-css-in-js-styles/.codemod/config.json similarity index 51% rename from apps/registry/codemods/next/13/move-css-in-js-styles/config.json rename to apps/registry/codemods/next/13/move-css-in-js-styles/.codemod/config.json index 4d8d190ca..e2df133de 100644 --- a/apps/registry/codemods/next/13/move-css-in-js-styles/config.json +++ b/apps/registry/codemods/next/13/move-css-in-js-styles/.codemod/config.json @@ -1,15 +1,16 @@ { - "schemaVersion": "1.0.0", + "version": "1.0.0", + "private": false, "name": "next/13/move-css-in-js-styles", "description": "The codemod moves css-in-js styles to the css modules.", "engine": "jscodeshift", "options": ["createFile"], "extensions": ["js*", "ts*"], - "dependencies": [ - { - "name": "next", - "range": "<13" - } - ], - "owner": "codemod.com" + "applicability": [["next", "<", "13.0.0"]], + "owner": "codemod.com", + "meta": { + "type": "migration", + "changeType": "assistive", + "timeSave": "5m" + } } diff --git a/apps/registry/codemods/next/13/move-css-in-js-styles/package.json b/apps/registry/codemods/next/13/move-css-in-js-styles/package.json index 7ce81b822..7034a55d6 100644 --- a/apps/registry/codemods/next/13/move-css-in-js-styles/package.json +++ b/apps/registry/codemods/next/13/move-css-in-js-styles/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/next/13/new-image-experimental/README.md b/apps/registry/codemods/next/13/new-image-experimental/.codemod/DESCRIPTION.md similarity index 79% rename from apps/registry/codemods/next/13/new-image-experimental/README.md rename to apps/registry/codemods/next/13/new-image-experimental/.codemod/DESCRIPTION.md index 960d37bd8..3163b0138 100644 --- a/apps/registry/codemods/next/13/new-image-experimental/README.md +++ b/apps/registry/codemods/next/13/new-image-experimental/.codemod/DESCRIPTION.md @@ -107,33 +107,3 @@ function Page() { return ; } ``` - -## Applicability Criteria - -Next.js version higher or equal to 13. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Assistive**: The automation partially completes changes. Human involvement is needed to make changes ready to be pushed and merged. - -### **Codemod Engine** - -jscodeshift - -### Estimated Time Saving - -~5 minutes per occurrence - -### Owner - -[Vercel](https://github.com/vercel) - -### Links for more info - -- https://nextjs.org/docs/pages/building-your-application/upgrading/codemods#next-image-experimental diff --git a/apps/registry/codemods/next/13/new-image-experimental/config.json b/apps/registry/codemods/next/13/new-image-experimental/.codemod/config.json similarity index 58% rename from apps/registry/codemods/next/13/new-image-experimental/config.json rename to apps/registry/codemods/next/13/new-image-experimental/.codemod/config.json index 59282b2f7..be5bf26eb 100644 --- a/apps/registry/codemods/next/13/new-image-experimental/config.json +++ b/apps/registry/codemods/next/13/new-image-experimental/.codemod/config.json @@ -1,14 +1,15 @@ { - "schemaVersion": "1.0.0", + "version": "1.0.0", + "private": false, "name": "next/13/new-image-experimental", "description": "The codemod performs migration from next/legacy/image to the latest next/image by including inline styles and removing unnecessary properties.", "engine": "jscodeshift", "extensions": ["js*", "ts*"], - "dependencies": [ - { - "name": "next", - "range": "<13" - } - ], - "owner": "codemod.com" + "applicability": [["next", "<", "13.0.0"]], + "owner": "vercel", + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + } } diff --git a/apps/registry/codemods/next/13/new-image-experimental/package.json b/apps/registry/codemods/next/13/new-image-experimental/package.json index 16a1b0b61..057499d9f 100644 --- a/apps/registry/codemods/next/13/new-image-experimental/package.json +++ b/apps/registry/codemods/next/13/new-image-experimental/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/next/13/new-link/README.md b/apps/registry/codemods/next/13/new-link/.codemod/DESCRIPTION.md similarity index 100% rename from apps/registry/codemods/next/13/new-link/README.md rename to apps/registry/codemods/next/13/new-link/.codemod/DESCRIPTION.md diff --git a/apps/registry/codemods/next/13/new-link/.codemod/config.json b/apps/registry/codemods/next/13/new-link/.codemod/config.json new file mode 100644 index 000000000..5337cb8d6 --- /dev/null +++ b/apps/registry/codemods/next/13/new-link/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "next/13/new-link", + "description": "The codemod safely removes from next/link or includes the legacyBehavior property", + "engine": "jscodeshift", + "extensions": ["js*", "ts*"], + "applicability": [["next", "<", "13.0.0"]], + "owner": "codemod.com", + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + } +} diff --git a/apps/registry/codemods/next/13/new-link/config.json b/apps/registry/codemods/next/13/new-link/config.json deleted file mode 100644 index 1a1b556e8..000000000 --- a/apps/registry/codemods/next/13/new-link/config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "next/13/new-link", - "description": "The codemod safely removes from next/link or includes the legacyBehavior property", - "engine": "jscodeshift", - "extensions": ["js*", "ts*"], - "dependencies": [ - { - "name": "next", - "range": "<13" - } - ], - "owner": "codemod.com" -} diff --git a/apps/registry/codemods/next/13/new-link/package.json b/apps/registry/codemods/next/13/new-link/package.json index 19f856dc7..5c18988f9 100644 --- a/apps/registry/codemods/next/13/new-link/package.json +++ b/apps/registry/codemods/next/13/new-link/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/next/13/next-image-to-legacy-image/README.md b/apps/registry/codemods/next/13/next-image-to-legacy-image/.codemod/DESCRIPTION.md similarity index 64% rename from apps/registry/codemods/next/13/next-image-to-legacy-image/README.md rename to apps/registry/codemods/next/13/next-image-to-legacy-image/.codemod/DESCRIPTION.md index 5fdd439bd..82867383f 100644 --- a/apps/registry/codemods/next/13/next-image-to-legacy-image/README.md +++ b/apps/registry/codemods/next/13/next-image-to-legacy-image/.codemod/DESCRIPTION.md @@ -37,33 +37,3 @@ export default function Home() { ); } ``` - -## Applicability Criteria - -Next.js version higher or equal to 13. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Autonomous**: Changes can safely be pushed and merged without further human involvement. - -### **Codemod Engine** - -jscodeshift - -### Estimated Time Saving - -~5 minutes per occurrence - -### Owner - -[Vercel](https://github.com/vercel) - -### Links for more info - -- https://nextjs.org/docs/pages/building-your-application/upgrading/codemods#next-image-to-legacy-image diff --git a/apps/registry/codemods/next/13/next-image-to-legacy-image/config.json b/apps/registry/codemods/next/13/next-image-to-legacy-image/.codemod/config.json similarity index 58% rename from apps/registry/codemods/next/13/next-image-to-legacy-image/config.json rename to apps/registry/codemods/next/13/next-image-to-legacy-image/.codemod/config.json index 8b85541da..97716a098 100644 --- a/apps/registry/codemods/next/13/next-image-to-legacy-image/config.json +++ b/apps/registry/codemods/next/13/next-image-to-legacy-image/.codemod/config.json @@ -1,14 +1,15 @@ { - "schemaVersion": "1.0.0", + "version": "1.0.0", + "private": false, "name": "next/13/next-image-to-legacy-image", "description": "The codemod safely migrates Next.js 10, 11, and 12 applications that use the next/image import to the renamed next/legacy/image import in Next.js 13.", "engine": "jscodeshift", "extensions": ["js*", "ts*"], - "dependencies": [ - { - "name": "next", - "range": "<13" - } - ], - "owner": "codemod.com" + "applicability": [["next", "<", "13.0.0"]], + "owner": "codemod.com", + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + } } diff --git a/apps/registry/codemods/next/13/next-image-to-legacy-image/package.json b/apps/registry/codemods/next/13/next-image-to-legacy-image/package.json index ef7c2338a..035a9b54f 100644 --- a/apps/registry/codemods/next/13/next-image-to-legacy-image/package.json +++ b/apps/registry/codemods/next/13/next-image-to-legacy-image/package.json @@ -15,6 +15,11 @@ "main": "./dist/index.cjs", "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/next/13/remove-get-static-props/README.md b/apps/registry/codemods/next/13/remove-get-static-props/.codemod/DESCRIPTION.md similarity index 100% rename from apps/registry/codemods/next/13/remove-get-static-props/README.md rename to apps/registry/codemods/next/13/remove-get-static-props/.codemod/DESCRIPTION.md diff --git a/apps/registry/codemods/next/13/remove-get-static-props/config.json b/apps/registry/codemods/next/13/remove-get-static-props/.codemod/config.json similarity index 64% rename from apps/registry/codemods/next/13/remove-get-static-props/config.json rename to apps/registry/codemods/next/13/remove-get-static-props/.codemod/config.json index 91c663a42..60a2fa066 100644 --- a/apps/registry/codemods/next/13/remove-get-static-props/config.json +++ b/apps/registry/codemods/next/13/remove-get-static-props/.codemod/config.json @@ -1,15 +1,11 @@ { - "schemaVersion": "1.0.0", + "version": "1.0.0", + "private": false, "name": "next/13/remove-get-static-props", "description": "The codemod removes getStaticProps data fetching method.", "engine": "filemod", "extensions": ["js*", "ts*"], - "dependencies": [ - { - "name": "next", - "range": "<13" - } - ], + "applicability": [["next", "<", "13.0.0"]], "arguments": [ { "name": "buildLegacyCtxUtilAbsolutePath", @@ -18,5 +14,10 @@ "required": true } ], - "owner": "codemod.com" + "owner": "codemod.com", + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + } } diff --git a/apps/registry/codemods/next/13/remove-get-static-props/package.json b/apps/registry/codemods/next/13/remove-get-static-props/package.json index 97171895c..29cf6efca 100644 --- a/apps/registry/codemods/next/13/remove-get-static-props/package.json +++ b/apps/registry/codemods/next/13/remove-get-static-props/package.json @@ -23,6 +23,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/next/13/remove-next-export/README.md b/apps/registry/codemods/next/13/remove-next-export/.codemod/DESCRIPTION.md similarity index 53% rename from apps/registry/codemods/next/13/remove-next-export/README.md rename to apps/registry/codemods/next/13/remove-next-export/.codemod/DESCRIPTION.md index 79fd10aad..049edb59a 100644 --- a/apps/registry/codemods/next/13/remove-next-export/README.md +++ b/apps/registry/codemods/next/13/remove-next-export/.codemod/DESCRIPTION.md @@ -35,33 +35,3 @@ module.exports = { output: 'export', }; ``` - -## Applicability Criteria - -Next.js version higher or equal to 13. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Assistive**: The automation partially completes changes. Human involvement is needed to make changes ready to be pushed and merged. - -### **Codemod Engine** - -Codemod.com File Transformation Engine - -### Estimated Time Saving - -~5 minutes per occurrence - -### Owner - -[Codemod.com](https://github.com/codemod-com) - -### Links for more info - -- https://nextjs.org/docs/app/building-your-application/upgrading/app-router-migration diff --git a/apps/registry/codemods/next/13/remove-next-export/.codemod/config.json b/apps/registry/codemods/next/13/remove-next-export/.codemod/config.json new file mode 100644 index 000000000..6f877aea2 --- /dev/null +++ b/apps/registry/codemods/next/13/remove-next-export/.codemod/config.json @@ -0,0 +1,14 @@ +{ + "version": "1.0.0", + "private": false, + "name": "next/13/remove-next-export", + "description": "This codemod removes all usages of the next export command", + "engine": "filemod", + "applicability": [["next", "<", "13.0.0"]], + "owner": "codemod.com", + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + } +} diff --git a/apps/registry/codemods/next/13/remove-next-export/config.json b/apps/registry/codemods/next/13/remove-next-export/config.json deleted file mode 100644 index 2bb4538e1..000000000 --- a/apps/registry/codemods/next/13/remove-next-export/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "next/13/remove-next-export", - "description": "This codemod removes all usages of the next export command", - "engine": "filemod", - "dependencyVersionLowerThan": ["next", "13.0.0"], - "owner": "codemod.com" -} diff --git a/apps/registry/codemods/next/13/remove-next-export/package.json b/apps/registry/codemods/next/13/remove-next-export/package.json index c613244dc..f474dad36 100644 --- a/apps/registry/codemods/next/13/remove-next-export/package.json +++ b/apps/registry/codemods/next/13/remove-next-export/package.json @@ -23,6 +23,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/next/13/remove-next-export/test/test.ts b/apps/registry/codemods/next/13/remove-next-export/test/test.ts index 92201fcb3..269eb2cd4 100644 --- a/apps/registry/codemods/next/13/remove-next-export/test/test.ts +++ b/apps/registry/codemods/next/13/remove-next-export/test/test.ts @@ -32,7 +32,7 @@ const SCRIPT_SH_C = ` npx next export `; -const README_MD = ` +const DESCRIPTION_MD = ` # Header next export -o public `; @@ -43,8 +43,8 @@ const transform = async () => { "/opt/project/pages/script_a.sh": SCRIPT_SH_A, "/opt/project/pages/script_b.sh": SCRIPT_SH_B, "/opt/project/pages/script_c.sh": SCRIPT_SH_C, - "/opt/project/pages/README.md": README_MD, - "/opt/project/pages/README.notmd": README_MD, + "/opt/project/pages/DESCRIPTION.md": DESCRIPTION_MD, + "/opt/project/pages/DESCRIPTION.notmd": DESCRIPTION_MD, "/opt/project/pages/next.config.js": NEXT_CONFIG_JSON, }); @@ -78,7 +78,7 @@ describe("next 13 remove-next-export", () => { }, { kind: "upsertFile", - path: "/opt/project/pages/README.md", + path: "/opt/project/pages/DESCRIPTION.md", data: "\n# Header\n", }, { diff --git a/apps/registry/codemods/next/13/replace-api-routes/.codemod/DESCRIPTION.md b/apps/registry/codemods/next/13/replace-api-routes/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..ada0b8033 --- /dev/null +++ b/apps/registry/codemods/next/13/replace-api-routes/.codemod/DESCRIPTION.md @@ -0,0 +1,5 @@ +# Replace API Routes + +## Description + +Replaces API Routes with Route Handlers. diff --git a/apps/registry/codemods/next/13/replace-api-routes/.codemod/config.json b/apps/registry/codemods/next/13/replace-api-routes/.codemod/config.json new file mode 100644 index 000000000..ff8a510b7 --- /dev/null +++ b/apps/registry/codemods/next/13/replace-api-routes/.codemod/config.json @@ -0,0 +1,14 @@ +{ + "version": "1.0.0", + "private": false, + "name": "next/13/replace-api-routes", + "description": "This codemod replaces API Routes with Route Handlers", + "engine": "filemod", + "applicability": [["next", "<", "13.0.0"]], + "owner": "codemod.com", + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + } +} diff --git a/apps/registry/codemods/next/13/replace-api-routes/README.md b/apps/registry/codemods/next/13/replace-api-routes/README.md deleted file mode 100644 index d23e84859..000000000 --- a/apps/registry/codemods/next/13/replace-api-routes/README.md +++ /dev/null @@ -1,37 +0,0 @@ -# Replace API Routes - -## Description - -Replaces API Routes with Route Handlers. - -## Example: - -### Before: - -### After: - -## Applicability Criteria - -Next.js version higher or equal to 13. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Assistive**: The automation partially completes changes. Human involvement is needed to make changes ready to be pushed and merged. - -### **Codemod Engine** - -Codemod.com File Transformation Engine - -### Estimated Time Saving - -~5 minutes per occurrence - -### Owner - -### Links for more info diff --git a/apps/registry/codemods/next/13/replace-api-routes/config.json b/apps/registry/codemods/next/13/replace-api-routes/config.json deleted file mode 100644 index 68b1f10d5..000000000 --- a/apps/registry/codemods/next/13/replace-api-routes/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "next/13/replace-api-routes", - "description": "This codemod replaces API Routes with Route Handlers", - "engine": "filemod", - "dependencyVersionLowerThan": ["next", "13.0.0"], - "owner": "codemod.com" -} diff --git a/apps/registry/codemods/next/13/replace-api-routes/package.json b/apps/registry/codemods/next/13/replace-api-routes/package.json index 4cafb62b9..1d55f12c9 100644 --- a/apps/registry/codemods/next/13/replace-api-routes/package.json +++ b/apps/registry/codemods/next/13/replace-api-routes/package.json @@ -23,6 +23,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/next/13/replace-next-head/README.md b/apps/registry/codemods/next/13/replace-next-head/.codemod/DESCRIPTION.md similarity index 66% rename from apps/registry/codemods/next/13/replace-next-head/README.md rename to apps/registry/codemods/next/13/replace-next-head/.codemod/DESCRIPTION.md index 0b77ef189..73cf2f44f 100644 --- a/apps/registry/codemods/next/13/replace-next-head/README.md +++ b/apps/registry/codemods/next/13/replace-next-head/.codemod/DESCRIPTION.md @@ -55,33 +55,3 @@ export default function Page() { return ; } ``` - -## Applicability Criteria - -Next.js version higher or equal to 13. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Assistive**: The automation partially completes changes. Human involvement is needed to make changes ready to be pushed and merged. - -### **Codemod Engine** - -Codemod.com File Transformation Engine - -### Estimated Time Saving - -~5 minutes per occurrence - -### Owner - -[Vercel](https://github.com/vercel) - -### Links for more info - -- https://nextjs.org/docs/app/building-your-application/upgrading/app-router-migration#step-3-migrating-nexthead diff --git a/apps/registry/codemods/next/13/replace-next-head/.codemod/config.json b/apps/registry/codemods/next/13/replace-next-head/.codemod/config.json new file mode 100644 index 000000000..1d95e20aa --- /dev/null +++ b/apps/registry/codemods/next/13/replace-next-head/.codemod/config.json @@ -0,0 +1,14 @@ +{ + "version": "1.0.0", + "private": false, + "name": "next/13/replace-next-head", + "description": "This codemod generates Next 13 metadata object", + "engine": "filemod", + "applicability": [["next", "<", "13.0.0"]], + "owner": "vercel", + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + } +} diff --git a/apps/registry/codemods/next/13/replace-next-head/config.json b/apps/registry/codemods/next/13/replace-next-head/config.json deleted file mode 100644 index 69f6ed9ae..000000000 --- a/apps/registry/codemods/next/13/replace-next-head/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "next/13/replace-next-head", - "description": "This codemod generates Next 13 metadata object", - "engine": "filemod", - "dependencyVersionLowerThan": ["next", "13.0.0"], - "owner": "codemod.com" -} diff --git a/apps/registry/codemods/next/13/replace-next-head/package.json b/apps/registry/codemods/next/13/replace-next-head/package.json index 00c655082..7358f6997 100644 --- a/apps/registry/codemods/next/13/replace-next-head/package.json +++ b/apps/registry/codemods/next/13/replace-next-head/package.json @@ -30,6 +30,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/next/13/replace-next-router/README.md b/apps/registry/codemods/next/13/replace-next-router/.codemod/DESCRIPTION.md similarity index 71% rename from apps/registry/codemods/next/13/replace-next-router/README.md rename to apps/registry/codemods/next/13/replace-next-router/.codemod/DESCRIPTION.md index fbb631eed..09c35c035 100644 --- a/apps/registry/codemods/next/13/replace-next-router/README.md +++ b/apps/registry/codemods/next/13/replace-next-router/.codemod/DESCRIPTION.md @@ -45,29 +45,3 @@ function Component() { const c = getParam('c'); } ``` - -## Applicability Criteria - -Next.js version is greater or equal to 13.4. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Assistive**: The automation partially completes changes. Human involvement is needed to make changes ready to be pushed and merged. - -### **Codemod Engine** - -[ts-morph](https://github.com/dsherret/ts-morph) - -### Estimated Time Saving - -~5 minutes per occurrence - -### Owner - -[Codemod.com](https://github.com/codemod-com) diff --git a/apps/registry/codemods/next/13/replace-next-router/config.json b/apps/registry/codemods/next/13/replace-next-router/.codemod/config.json similarity index 50% rename from apps/registry/codemods/next/13/replace-next-router/config.json rename to apps/registry/codemods/next/13/replace-next-router/.codemod/config.json index 23629bee7..085796e7d 100644 --- a/apps/registry/codemods/next/13/replace-next-router/config.json +++ b/apps/registry/codemods/next/13/replace-next-router/.codemod/config.json @@ -1,9 +1,15 @@ { - "schemaVersion": "1.0.0", + "version": "1.0.0", + "private": false, "name": "next/13/replace-next-router", "description": "Replaces all usages of the useRouter() calls with useSearchParams and usePathname", "engine": "ts-morph", "extensions": ["js*", "ts*"], - "dependencyVersionLowerThan": ["next", "13.0.0"], - "owner": "codemod.com" + "applicability": [["next", "<", "13.0.0"]], + "owner": "codemod.com", + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + } } diff --git a/apps/registry/codemods/next/13/replace-next-router/package.json b/apps/registry/codemods/next/13/replace-next-router/package.json index 1694d9ced..a5b403c5f 100644 --- a/apps/registry/codemods/next/13/replace-next-router/package.json +++ b/apps/registry/codemods/next/13/replace-next-router/package.json @@ -19,6 +19,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/next/13/replace-use-search-params/README.md b/apps/registry/codemods/next/13/replace-use-search-params/.codemod/DESCRIPTION.md similarity index 100% rename from apps/registry/codemods/next/13/replace-use-search-params/README.md rename to apps/registry/codemods/next/13/replace-use-search-params/.codemod/DESCRIPTION.md diff --git a/apps/registry/codemods/next/13/replace-use-search-params/config.json b/apps/registry/codemods/next/13/replace-use-search-params/.codemod/config.json similarity index 84% rename from apps/registry/codemods/next/13/replace-use-search-params/config.json rename to apps/registry/codemods/next/13/replace-use-search-params/.codemod/config.json index 9d78a4ce3..7c7f2e826 100644 --- a/apps/registry/codemods/next/13/replace-use-search-params/config.json +++ b/apps/registry/codemods/next/13/replace-use-search-params/.codemod/config.json @@ -1,15 +1,11 @@ { - "schemaVersion": "1.0.0", + "version": "1.0.0", + "private": false, "name": "next/13/replace-use-search-params", "description": "The codemod replaces getSearchParams with compatGetSearchParams", "engine": "filemod", "extensions": ["js*", "ts*"], - "dependencies": [ - { - "name": "next", - "range": "<13" - } - ], + "applicability": [["next", "<", "13.0.0"]], "arguments": [ { "name": "useCompatSearchParamsHookAbsolutePath", @@ -37,5 +33,10 @@ "required": false } ], - "owner": "codemod.com" + "owner": "codemod.com", + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + } } diff --git a/apps/registry/codemods/next/13/replace-use-search-params/package.json b/apps/registry/codemods/next/13/replace-use-search-params/package.json index 6a3c44953..d0e1449a6 100644 --- a/apps/registry/codemods/next/13/replace-use-search-params/package.json +++ b/apps/registry/codemods/next/13/replace-use-search-params/package.json @@ -23,6 +23,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/next/13/upsert-use-client-directive/README.md b/apps/registry/codemods/next/13/upsert-use-client-directive/.codemod/DESCRIPTION.md similarity index 65% rename from apps/registry/codemods/next/13/upsert-use-client-directive/README.md rename to apps/registry/codemods/next/13/upsert-use-client-directive/.codemod/DESCRIPTION.md index 118fb5a43..274b06ab4 100644 --- a/apps/registry/codemods/next/13/upsert-use-client-directive/README.md +++ b/apps/registry/codemods/next/13/upsert-use-client-directive/.codemod/DESCRIPTION.md @@ -35,29 +35,3 @@ export default function Page() { return x; } ``` - -## Applicability Criteria - -Next.js version is greater or equal to 13.4. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Assistive**: The automation partially completes changes. Human involvement is needed to make changes ready to be pushed and merged. - -### **Codemod Engine** - -[ts-morph](https://github.com/dsherret/ts-morph) - -### Estimated Time Saving - -~5 minutes per occurrence - -### Owner - -[Codemod.com](https://github.com/codemod-com) diff --git a/apps/registry/codemods/next/13/upsert-use-client-directive/.codemod/config.json b/apps/registry/codemods/next/13/upsert-use-client-directive/.codemod/config.json new file mode 100644 index 000000000..12da670a8 --- /dev/null +++ b/apps/registry/codemods/next/13/upsert-use-client-directive/.codemod/config.json @@ -0,0 +1,13 @@ +{ + "version": "1.0.0", + "name": "next/13/upsert-use-client-directive", + "private": false, + "engine": "ts-morph", + "owner": "codemod.com", + "applicability": [["next", "<", "13.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + } +} diff --git a/apps/registry/codemods/next/13/upsert-use-client-directive/config.json b/apps/registry/codemods/next/13/upsert-use-client-directive/config.json deleted file mode 100644 index 3ce0ed4a4..000000000 --- a/apps/registry/codemods/next/13/upsert-use-client-directive/config.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "engine": "ts-morph" -} diff --git a/apps/registry/codemods/next/13/upsert-use-client-directive/package.json b/apps/registry/codemods/next/13/upsert-use-client-directive/package.json index 7007ca836..a2fce9400 100644 --- a/apps/registry/codemods/next/13/upsert-use-client-directive/package.json +++ b/apps/registry/codemods/next/13/upsert-use-client-directive/package.json @@ -19,6 +19,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/next/14/metadata-to-viewport-export/.codemod/DESCRIPTION.md b/apps/registry/codemods/next/14/metadata-to-viewport-export/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..ae7c2429e --- /dev/null +++ b/apps/registry/codemods/next/14/metadata-to-viewport-export/.codemod/DESCRIPTION.md @@ -0,0 +1,32 @@ +# Metadata to Viewport Export + +## Description + +This codemod migrates certain viewport metadata to `viewport` export. + +## Example + +### Before + +```jsx +export const metadata = { + title: 'My App', + themeColor: 'dark', + viewport: { + width: 1, + }, +}; +``` + +### After + +```jsx +export const metadata = { + title: 'My App', +}; + +export const viewport = { + width: 1, + themeColor: 'dark', +}; +``` diff --git a/apps/registry/codemods/next/14/metadata-to-viewport-export/.codemod/config.json b/apps/registry/codemods/next/14/metadata-to-viewport-export/.codemod/config.json new file mode 100644 index 000000000..356694e89 --- /dev/null +++ b/apps/registry/codemods/next/14/metadata-to-viewport-export/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "next/14/metadata-to-viewport-export", + "description": "This codemod migrates certain viewport metadata to viewport export.", + "engine": "jscodeshift", + "extensions": ["js*", "ts*"], + "applicability": [["next", ">=", "13.4.0"], ["next", "<", "14.0.0"]], + "owner": "vercel", + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + } +} diff --git a/apps/registry/codemods/next/14/metadata-to-viewport-export/README.md b/apps/registry/codemods/next/14/metadata-to-viewport-export/README.md deleted file mode 100644 index e28e96335..000000000 --- a/apps/registry/codemods/next/14/metadata-to-viewport-export/README.md +++ /dev/null @@ -1,62 +0,0 @@ -# Metadata to Viewport Export - -## Description - -This codemod migrates certain viewport metadata to `viewport` export. - -## Example - -### Before - -```jsx -export const metadata = { - title: 'My App', - themeColor: 'dark', - viewport: { - width: 1, - }, -}; -``` - -### After - -```jsx -export const metadata = { - title: 'My App', -}; - -export const viewport = { - width: 1, - themeColor: 'dark', -}; -``` - -## Applicability Criteria - -Next.js version higher or equal to 14. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Autonomous**: Changes can safely be pushed and merged without further human involvement. - -### **Codemod Engine** - -jscodeshift - -### Estimated Time Saving - -~5 minutes per occurrence - -### Owner - -[Vercel](https://github.com/vercel) - -### Links for more info - -- [Use `viewport` export](https://nextjs.org/docs/pages/building-your-application/upgrading/codemods#use-viewport-export) diff --git a/apps/registry/codemods/next/14/metadata-to-viewport-export/config.json b/apps/registry/codemods/next/14/metadata-to-viewport-export/config.json deleted file mode 100644 index 8814eb027..000000000 --- a/apps/registry/codemods/next/14/metadata-to-viewport-export/config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "next/14/metadata-to-viewport-export", - "description": "This codemod migrates certain viewport metadata to viewport export.", - "engine": "jscodeshift", - "extensions": ["js*", "ts*"], - "dependencies": [ - { - "name": "next", - "range": "<14" - } - ], - "owner": "vercel" -} diff --git a/apps/registry/codemods/next/14/metadata-to-viewport-export/package.json b/apps/registry/codemods/next/14/metadata-to-viewport-export/package.json index f4b63cb2c..9d23003a7 100644 --- a/apps/registry/codemods/next/14/metadata-to-viewport-export/package.json +++ b/apps/registry/codemods/next/14/metadata-to-viewport-export/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/next/14/next-og-import/.codemod/DESCRIPTION.md b/apps/registry/codemods/next/14/next-og-import/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..4beb5ca2a --- /dev/null +++ b/apps/registry/codemods/next/14/next-og-import/.codemod/DESCRIPTION.md @@ -0,0 +1,19 @@ +# Next OG Import + +## Description + +This codemod moves transforms imports from `next/server` to `next/og` for usage of [Dynamic OG Image Generation](https://nextjs.org/docs/app/building-your-application/optimizing/metadata#dynamic-image-generation). + +## Example + +### Before + +```jsx +import { ImageResponse } from 'next/server'; +``` + +### After + +```jsx +import { ImageResponse } from 'next/og'; +``` diff --git a/apps/registry/codemods/next/14/next-og-import/config.json b/apps/registry/codemods/next/14/next-og-import/.codemod/config.json similarity index 50% rename from apps/registry/codemods/next/14/next-og-import/config.json rename to apps/registry/codemods/next/14/next-og-import/.codemod/config.json index 7660309bc..e82255403 100644 --- a/apps/registry/codemods/next/14/next-og-import/config.json +++ b/apps/registry/codemods/next/14/next-og-import/.codemod/config.json @@ -1,14 +1,15 @@ { - "schemaVersion": "1.0.0", + "version": "1.0.0", + "private": false, "name": "next/14/next-og-import", "description": "This codemod moves transforms imports from next/server to next/og for usage of Dynamic OG Image Generation.", "engine": "jscodeshift", "extensions": ["js*", "ts*"], - "dependencies": [ - { - "name": "next", - "range": "<14" - } - ], - "owner": "vercel" + "applicability": [["next", ">=", "13.4.0"], ["next", "<", "14.0.0"]], + "owner": "vercel", + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + } } diff --git a/apps/registry/codemods/next/14/next-og-import/README.md b/apps/registry/codemods/next/14/next-og-import/README.md deleted file mode 100644 index 0dac569aa..000000000 --- a/apps/registry/codemods/next/14/next-og-import/README.md +++ /dev/null @@ -1,49 +0,0 @@ -# Next OG Import - -## Description - -This codemod moves transforms imports from `next/server` to `next/og` for usage of [Dynamic OG Image Generation](https://nextjs.org/docs/app/building-your-application/optimizing/metadata#dynamic-image-generation). - -## Example - -### Before - -```jsx -import { ImageResponse } from 'next/server'; -``` - -### After - -```jsx -import { ImageResponse } from 'next/og'; -``` - -## Applicability Criteria - -Next.js version higher or equal to 14. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Autonomous**: Changes can safely be pushed and merged without further human involvement. - -### **Codemod Engine** - -jscodeshift - -### Estimated Time Saving - -~5 minutes per occurrence - -### Owner - -[Vercel](https://github.com/vercel) - -### Links for more info - -- [Migrate `ImageResponse` imports](https://nextjs.org/docs/pages/building-your-application/upgrading/codemods#migrate-imageresponse-imports) diff --git a/apps/registry/codemods/next/14/next-og-import/package.json b/apps/registry/codemods/next/14/next-og-import/package.json index f43100900..b6a85a371 100644 --- a/apps/registry/codemods/next/14/next-og-import/package.json +++ b/apps/registry/codemods/next/14/next-og-import/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/pull_request_template.md b/apps/registry/codemods/pull_request_template.md index 6f0210722..f6e9f9bd2 100644 --- a/apps/registry/codemods/pull_request_template.md +++ b/apps/registry/codemods/pull_request_template.md @@ -14,7 +14,7 @@ For your codemod pull request to be compatible with the Codemod.com platform, it ├── index.d.ts ├── package.json ├── tsconfig.json -└── README.md # must follow the structure described below +└── DESCRIPTION.md # must follow the structure described below ``` --- diff --git a/apps/registry/codemods/react-redux/0/add-state-type/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-redux/0/add-state-type/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..e69de29bb diff --git a/apps/registry/codemods/react-redux/0/add-state-type/.codemod/config.json b/apps/registry/codemods/react-redux/0/add-state-type/.codemod/config.json new file mode 100644 index 000000000..cd0936035 --- /dev/null +++ b/apps/registry/codemods/react-redux/0/add-state-type/.codemod/config.json @@ -0,0 +1,16 @@ +{ + "version": "1.0.0", + "private": false, + "name": "react-redux/0/add-state-type", + "deps": ["vitest@latest"], + "engine": "jscodeshift", + "extensions": ["js*", "ts*"], + "dependency": "react-redux", + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + }, + "applicability": [["react-redux", ">=", "0.0.0"]], + "owner": "codemod.com" +} diff --git a/apps/registry/codemods/react-redux/0/add-state-type/config.json b/apps/registry/codemods/react-redux/0/add-state-type/config.json deleted file mode 100644 index df9b96809..000000000 --- a/apps/registry/codemods/react-redux/0/add-state-type/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "react-redux/0/add-state-type", - "description": "", - "engine": "jscodeshift", - "extensions": ["js*", "ts*"], - "dependency": "react-redux" -} diff --git a/apps/registry/codemods/react-redux/0/add-state-type/package.json b/apps/registry/codemods/react-redux/0/add-state-type/package.json index 2ea6b8a4a..d5c81e968 100644 --- a/apps/registry/codemods/react-redux/0/add-state-type/package.json +++ b/apps/registry/codemods/react-redux/0/add-state-type/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/react-router/4/add-exact-prop/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-router/4/add-exact-prop/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..e69de29bb diff --git a/apps/registry/codemods/react-router/4/add-exact-prop/.codemod/config.json b/apps/registry/codemods/react-router/4/add-exact-prop/.codemod/config.json new file mode 100644 index 000000000..f4dac968e --- /dev/null +++ b/apps/registry/codemods/react-router/4/add-exact-prop/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "react-router/4/add-exact-prop", + "deps": ["vitest@latest"], + "owner": "codemod.com", + "engine": "jscodeshift", + "extensions": ["js*", "ts*"], + "applicability": [["react-router", "<", "4.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + } +} diff --git a/apps/registry/codemods/react-router/4/add-exact-prop/config.json b/apps/registry/codemods/react-router/4/add-exact-prop/config.json deleted file mode 100644 index 0484804d5..000000000 --- a/apps/registry/codemods/react-router/4/add-exact-prop/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "react-router/4/add-exact-prop", - "description": "", - "engine": "jscodeshift", - "extensions": ["js*", "ts*"], - "dependencyVersionLowerThan": ["react-router", "4.0.0"] -} diff --git a/apps/registry/codemods/react-router/4/add-exact-prop/package.json b/apps/registry/codemods/react-router/4/add-exact-prop/package.json index af8543cc5..249034c30 100644 --- a/apps/registry/codemods/react-router/4/add-exact-prop/package.json +++ b/apps/registry/codemods/react-router/4/add-exact-prop/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/react-router/4/create-hash-history/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-router/4/create-hash-history/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..e69de29bb diff --git a/apps/registry/codemods/react-router/4/create-hash-history/.codemod/config.json b/apps/registry/codemods/react-router/4/create-hash-history/.codemod/config.json new file mode 100644 index 000000000..fc198a0ac --- /dev/null +++ b/apps/registry/codemods/react-router/4/create-hash-history/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "react-router/4/create-hash-history", + "deps": ["vitest@latest"], + "owner": "codemod.com", + "engine": "jscodeshift", + "extensions": ["js*", "ts*"], + "applicability": [["react-router", "<", "4.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + } +} diff --git a/apps/registry/codemods/react-router/4/create-hash-history/config.json b/apps/registry/codemods/react-router/4/create-hash-history/config.json deleted file mode 100644 index d4fc73704..000000000 --- a/apps/registry/codemods/react-router/4/create-hash-history/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "react-router/4/create-hash-history", - "description": "", - "engine": "jscodeshift", - "extensions": ["js*", "ts*"], - "dependencyVersionLowerThan": ["react-router", "4.0.0"] -} diff --git a/apps/registry/codemods/react-router/4/create-hash-history/package.json b/apps/registry/codemods/react-router/4/create-hash-history/package.json index 68065a622..30c97b53c 100644 --- a/apps/registry/codemods/react-router/4/create-hash-history/package.json +++ b/apps/registry/codemods/react-router/4/create-hash-history/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/react-router/4/hash-router/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-router/4/hash-router/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..e69de29bb diff --git a/apps/registry/codemods/react-router/4/hash-router/.codemod/config.json b/apps/registry/codemods/react-router/4/hash-router/.codemod/config.json new file mode 100644 index 000000000..4d8a69553 --- /dev/null +++ b/apps/registry/codemods/react-router/4/hash-router/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "react-router/4/hash-router", + "deps": ["vitest@latest"], + "owner": "codemod.com", + "engine": "jscodeshift", + "extensions": ["js*", "ts*"], + "applicability": [["react-router", "<", "4.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + } +} diff --git a/apps/registry/codemods/react-router/4/hash-router/config.json b/apps/registry/codemods/react-router/4/hash-router/config.json deleted file mode 100644 index c55fcb4a2..000000000 --- a/apps/registry/codemods/react-router/4/hash-router/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "react-router/4/hash-router", - "description": "", - "engine": "jscodeshift", - "extensions": ["js*", "ts*"], - "dependencyVersionLowerThan": ["react-router", "4.0.0"] -} diff --git a/apps/registry/codemods/react-router/4/hash-router/package.json b/apps/registry/codemods/react-router/4/hash-router/package.json index 0413fcf32..d9d2ff81a 100644 --- a/apps/registry/codemods/react-router/4/hash-router/package.json +++ b/apps/registry/codemods/react-router/4/hash-router/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/react-router/4/index-route/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-router/4/index-route/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..e69de29bb diff --git a/apps/registry/codemods/react-router/4/index-route/.codemod/config.json b/apps/registry/codemods/react-router/4/index-route/.codemod/config.json new file mode 100644 index 000000000..da9715382 --- /dev/null +++ b/apps/registry/codemods/react-router/4/index-route/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "react-router/4/index-route", + "deps": ["vitest@latest"], + "owner": "codemod.com", + "engine": "jscodeshift", + "extensions": ["js*", "ts*"], + "applicability": [["react-router", "<", "4.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + } +} diff --git a/apps/registry/codemods/react-router/4/index-route/config.json b/apps/registry/codemods/react-router/4/index-route/config.json deleted file mode 100644 index 27384f506..000000000 --- a/apps/registry/codemods/react-router/4/index-route/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "react-router/4/index-route", - "description": "", - "engine": "jscodeshift", - "extensions": ["js*", "ts*"], - "dependencyVersionLowerThan": ["react-router", "4.0.0"] -} diff --git a/apps/registry/codemods/react-router/4/index-route/package.json b/apps/registry/codemods/react-router/4/index-route/package.json index 284a8cf67..8ddd27f07 100644 --- a/apps/registry/codemods/react-router/4/index-route/package.json +++ b/apps/registry/codemods/react-router/4/index-route/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/react-router/4/remove-with-props/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-router/4/remove-with-props/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..e69de29bb diff --git a/apps/registry/codemods/react-router/4/remove-with-props/.codemod/config.json b/apps/registry/codemods/react-router/4/remove-with-props/.codemod/config.json new file mode 100644 index 000000000..9d8adb4ac --- /dev/null +++ b/apps/registry/codemods/react-router/4/remove-with-props/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "react-router/4/remove-with-props", + "deps": ["vitest@latest"], + "owner": "codemod.com", + "engine": "jscodeshift", + "extensions": ["js*", "ts*"], + "applicability": [["react-router", "<", "4.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + } +} diff --git a/apps/registry/codemods/react-router/4/remove-with-props/config.json b/apps/registry/codemods/react-router/4/remove-with-props/config.json deleted file mode 100644 index b655672ce..000000000 --- a/apps/registry/codemods/react-router/4/remove-with-props/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "react-router/4/remove-with-props", - "description": "", - "engine": "jscodeshift", - "extensions": ["js*", "ts*"], - "dependencyVersionLowerThan": ["react-router", "4.0.0"] -} diff --git a/apps/registry/codemods/react-router/4/remove-with-props/package.json b/apps/registry/codemods/react-router/4/remove-with-props/package.json index 80a50ef2d..ad760eefe 100644 --- a/apps/registry/codemods/react-router/4/remove-with-props/package.json +++ b/apps/registry/codemods/react-router/4/remove-with-props/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/react-router/4/rename-imports/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-router/4/rename-imports/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..e69de29bb diff --git a/apps/registry/codemods/react-router/4/rename-imports/.codemod/config.json b/apps/registry/codemods/react-router/4/rename-imports/.codemod/config.json new file mode 100644 index 000000000..48473644a --- /dev/null +++ b/apps/registry/codemods/react-router/4/rename-imports/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "react-router/4/rename-imports", + "deps": ["vitest@latest"], + "owner": "codemod.com", + "engine": "jscodeshift", + "extensions": ["js*", "ts*"], + "applicability": [["react-router", "<", "4.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + } +} diff --git a/apps/registry/codemods/react-router/4/rename-imports/config.json b/apps/registry/codemods/react-router/4/rename-imports/config.json deleted file mode 100644 index acf724b8d..000000000 --- a/apps/registry/codemods/react-router/4/rename-imports/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "react-router/4/rename-imports", - "description": "", - "engine": "jscodeshift", - "extensions": ["js*", "ts*"], - "dependencyVersionLowerThan": ["react-router", "4.0.0"] -} diff --git a/apps/registry/codemods/react-router/4/rename-imports/package.json b/apps/registry/codemods/react-router/4/rename-imports/package.json index 251106d91..bea54873d 100644 --- a/apps/registry/codemods/react-router/4/rename-imports/package.json +++ b/apps/registry/codemods/react-router/4/rename-imports/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/react-router/4/replace-location-query/README.md b/apps/registry/codemods/react-router/4/replace-location-query/.codemod/DESCRIPTION.md similarity index 100% rename from apps/registry/codemods/react-router/4/replace-location-query/README.md rename to apps/registry/codemods/react-router/4/replace-location-query/.codemod/DESCRIPTION.md diff --git a/apps/registry/codemods/react-router/4/replace-location-query/.codemod/config.json b/apps/registry/codemods/react-router/4/replace-location-query/.codemod/config.json new file mode 100644 index 000000000..f2fab974a --- /dev/null +++ b/apps/registry/codemods/react-router/4/replace-location-query/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "react-router/4/replace-location-query", + "deps": ["vitest@latest"], + "owner": "codemod.com", + "engine": "jscodeshift", + "extensions": ["js*", "ts*"], + "applicability": [["react-router", "<", "4.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + } +} diff --git a/apps/registry/codemods/react-router/4/replace-location-query/config.json b/apps/registry/codemods/react-router/4/replace-location-query/config.json deleted file mode 100644 index 060596b22..000000000 --- a/apps/registry/codemods/react-router/4/replace-location-query/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "react-router/4/replace-location-query", - "description": "", - "engine": "jscodeshift", - "extensions": ["js*", "ts*"], - "dependencyVersionLowerThan": ["react-router", "4.0.0"] -} diff --git a/apps/registry/codemods/react-router/4/replace-location-query/package.json b/apps/registry/codemods/react-router/4/replace-location-query/package.json index 33565c2ef..f82bdc653 100644 --- a/apps/registry/codemods/react-router/4/replace-location-query/package.json +++ b/apps/registry/codemods/react-router/4/replace-location-query/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/react-router/4/replace-param-prop/README.md b/apps/registry/codemods/react-router/4/replace-param-prop/.codemod/DESCRIPTION.md similarity index 100% rename from apps/registry/codemods/react-router/4/replace-param-prop/README.md rename to apps/registry/codemods/react-router/4/replace-param-prop/.codemod/DESCRIPTION.md diff --git a/apps/registry/codemods/react-router/4/replace-param-prop/.codemod/config.json b/apps/registry/codemods/react-router/4/replace-param-prop/.codemod/config.json new file mode 100644 index 000000000..e7525780c --- /dev/null +++ b/apps/registry/codemods/react-router/4/replace-param-prop/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "react-router/4/replace-param-prop", + "deps": ["vitest@latest"], + "owner": "codemod.com", + "engine": "jscodeshift", + "extensions": ["js*", "ts*"], + "applicability": [["react-router", "<", "4.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + } +} diff --git a/apps/registry/codemods/react-router/4/replace-param-prop/config.json b/apps/registry/codemods/react-router/4/replace-param-prop/config.json deleted file mode 100644 index ff0fcce0d..000000000 --- a/apps/registry/codemods/react-router/4/replace-param-prop/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "react-router/4/replace-param-prop", - "description": "", - "engine": "jscodeshift", - "extensions": ["js*", "ts*"], - "dependencyVersionLowerThan": ["react-router", "4.0.0"] -} diff --git a/apps/registry/codemods/react-router/4/replace-param-prop/package.json b/apps/registry/codemods/react-router/4/replace-param-prop/package.json index 9c9ebf283..a0a5140de 100644 --- a/apps/registry/codemods/react-router/4/replace-param-prop/package.json +++ b/apps/registry/codemods/react-router/4/replace-param-prop/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/react-router/4/wrap-with-switch/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-router/4/wrap-with-switch/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..e69de29bb diff --git a/apps/registry/codemods/react-router/4/wrap-with-switch/.codemod/config.json b/apps/registry/codemods/react-router/4/wrap-with-switch/.codemod/config.json new file mode 100644 index 000000000..7f4df62c4 --- /dev/null +++ b/apps/registry/codemods/react-router/4/wrap-with-switch/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "react-router/4/wrap-with-switch", + "deps": ["vitest@latest"], + "owner": "codemod.com", + "engine": "jscodeshift", + "extensions": ["js*", "ts*"], + "applicability": [["react-router", "<", "4.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + } +} diff --git a/apps/registry/codemods/react-router/4/wrap-with-switch/config.json b/apps/registry/codemods/react-router/4/wrap-with-switch/config.json deleted file mode 100644 index 40c4ed755..000000000 --- a/apps/registry/codemods/react-router/4/wrap-with-switch/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "react-router/4/wrap-with-switch", - "description": "", - "engine": "jscodeshift", - "extensions": ["js*", "ts*"], - "dependencyVersionLowerThan": ["react-router", "4.0.0"] -} diff --git a/apps/registry/codemods/react-router/4/wrap-with-switch/package.json b/apps/registry/codemods/react-router/4/wrap-with-switch/package.json index 478e8c998..0beed6a88 100644 --- a/apps/registry/codemods/react-router/4/wrap-with-switch/package.json +++ b/apps/registry/codemods/react-router/4/wrap-with-switch/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/react-router/6/compat-route/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-router/6/compat-route/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..e69de29bb diff --git a/apps/registry/codemods/react-router/6/compat-route/.codemod/config.json b/apps/registry/codemods/react-router/6/compat-route/.codemod/config.json new file mode 100644 index 000000000..c29f37980 --- /dev/null +++ b/apps/registry/codemods/react-router/6/compat-route/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "react-router/6/compat-route", + "deps": ["vitest@latest"], + "owner": "codemod.com", + "engine": "jscodeshift", + "extensions": ["js*", "ts*"], + "applicability": [["react-router", "<", "6.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + } +} diff --git a/apps/registry/codemods/react-router/6/compat-route/config.json b/apps/registry/codemods/react-router/6/compat-route/config.json deleted file mode 100644 index 5a461c6e2..000000000 --- a/apps/registry/codemods/react-router/6/compat-route/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "react-router/6/compat-route", - "description": "", - "engine": "jscodeshift", - "extensions": ["js*", "ts*"], - "dependencyVersionLowerThan": ["react-router", "6.0.0"] -} diff --git a/apps/registry/codemods/react-router/6/compat-route/package.json b/apps/registry/codemods/react-router/6/compat-route/package.json index ecdb4cb4b..8425c2a22 100644 --- a/apps/registry/codemods/react-router/6/compat-route/package.json +++ b/apps/registry/codemods/react-router/6/compat-route/package.json @@ -15,6 +15,11 @@ "main": "./dist/index.cjs", "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/react-router/6/compat-router/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-router/6/compat-router/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..e69de29bb diff --git a/apps/registry/codemods/react-router/6/compat-router/.codemod/config.json b/apps/registry/codemods/react-router/6/compat-router/.codemod/config.json new file mode 100644 index 000000000..322f6d213 --- /dev/null +++ b/apps/registry/codemods/react-router/6/compat-router/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "react-router/6/compat-router", + "deps": ["vitest@latest"], + "owner": "codemod.com", + "engine": "jscodeshift", + "extensions": ["js*", "ts*"], + "applicability": [["react-router", "<", "6.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + } +} diff --git a/apps/registry/codemods/react-router/6/compat-router/config.json b/apps/registry/codemods/react-router/6/compat-router/config.json deleted file mode 100644 index 39d083654..000000000 --- a/apps/registry/codemods/react-router/6/compat-router/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "react-router/6/compat-router", - "description": "", - "engine": "jscodeshift", - "extensions": ["js*", "ts*"], - "dependencyVersionLowerThan": ["react-router", "6.0.0"] -} diff --git a/apps/registry/codemods/react-router/6/compat-router/package.json b/apps/registry/codemods/react-router/6/compat-router/package.json index 3d837857c..979517ec1 100644 --- a/apps/registry/codemods/react-router/6/compat-router/package.json +++ b/apps/registry/codemods/react-router/6/compat-router/package.json @@ -15,6 +15,11 @@ "main": "./dist/index.cjs", "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/react-router/6/link-to-props/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-router/6/link-to-props/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..e69de29bb diff --git a/apps/registry/codemods/react-router/6/link-to-props/.codemod/config.json b/apps/registry/codemods/react-router/6/link-to-props/.codemod/config.json new file mode 100644 index 000000000..f4c441d69 --- /dev/null +++ b/apps/registry/codemods/react-router/6/link-to-props/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "react-router/6/link-to-props", + "deps": ["vitest@latest"], + "owner": "codemod.com", + "engine": "jscodeshift", + "extensions": ["js*", "ts*"], + "applicability": [["react-router", "<", "6.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + } +} diff --git a/apps/registry/codemods/react-router/6/link-to-props/config.json b/apps/registry/codemods/react-router/6/link-to-props/config.json deleted file mode 100644 index cec39fa20..000000000 --- a/apps/registry/codemods/react-router/6/link-to-props/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "react-router/6/link-to-props", - "description": "", - "engine": "jscodeshift", - "extensions": ["js*", "ts*"], - "dependencyVersionLowerThan": ["react-router", "6.0.0"] -} diff --git a/apps/registry/codemods/react-router/6/link-to-props/package.json b/apps/registry/codemods/react-router/6/link-to-props/package.json index e2f395b64..6bad8fb9d 100644 --- a/apps/registry/codemods/react-router/6/link-to-props/package.json +++ b/apps/registry/codemods/react-router/6/link-to-props/package.json @@ -15,6 +15,11 @@ "main": "./dist/index.cjs", "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/react-router/6/match-path-arguments/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-router/6/match-path-arguments/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..e69de29bb diff --git a/apps/registry/codemods/react-router/6/match-path-arguments/.codemod/config.json b/apps/registry/codemods/react-router/6/match-path-arguments/.codemod/config.json new file mode 100644 index 000000000..f9135207b --- /dev/null +++ b/apps/registry/codemods/react-router/6/match-path-arguments/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "react-router/6/match-path-arguments", + "deps": ["vitest@latest"], + "owner": "codemod.com", + "engine": "jscodeshift", + "extensions": ["js*", "ts*"], + "applicability": [["react-router", "<", "6.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + } +} diff --git a/apps/registry/codemods/react-router/6/match-path-arguments/config.json b/apps/registry/codemods/react-router/6/match-path-arguments/config.json deleted file mode 100644 index 5bcde7252..000000000 --- a/apps/registry/codemods/react-router/6/match-path-arguments/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "react-router/6/match-path-arguments", - "description": "", - "engine": "jscodeshift", - "extensions": ["js*", "ts*"], - "dependencyVersionLowerThan": ["react-router", "6.0.0"] -} diff --git a/apps/registry/codemods/react-router/6/match-path-arguments/package.json b/apps/registry/codemods/react-router/6/match-path-arguments/package.json index 488ac2c52..cf7fe323c 100644 --- a/apps/registry/codemods/react-router/6/match-path-arguments/package.json +++ b/apps/registry/codemods/react-router/6/match-path-arguments/package.json @@ -15,6 +15,11 @@ "main": "./dist/index.cjs", "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/react-router/6/navlink-exact-end/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-router/6/navlink-exact-end/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..e69de29bb diff --git a/apps/registry/codemods/react-router/6/navlink-exact-end/.codemod/config.json b/apps/registry/codemods/react-router/6/navlink-exact-end/.codemod/config.json new file mode 100644 index 000000000..24eb1ccf2 --- /dev/null +++ b/apps/registry/codemods/react-router/6/navlink-exact-end/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "react-router/6/navlink-exact-end", + "deps": ["vitest@latest"], + "owner": "codemod.com", + "engine": "jscodeshift", + "extensions": ["js*", "ts*"], + "applicability": [["react-router", "<", "6.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + } +} diff --git a/apps/registry/codemods/react-router/6/navlink-exact-end/config.json b/apps/registry/codemods/react-router/6/navlink-exact-end/config.json deleted file mode 100644 index c200b1f51..000000000 --- a/apps/registry/codemods/react-router/6/navlink-exact-end/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "react-router/6/navlink-exact-end", - "description": "", - "engine": "jscodeshift", - "extensions": ["js*", "ts*"], - "dependencyVersionLowerThan": ["react-router", "6.0.0"] -} diff --git a/apps/registry/codemods/react-router/6/navlink-exact-end/package.json b/apps/registry/codemods/react-router/6/navlink-exact-end/package.json index ddcde74dc..f751da707 100644 --- a/apps/registry/codemods/react-router/6/navlink-exact-end/package.json +++ b/apps/registry/codemods/react-router/6/navlink-exact-end/package.json @@ -15,6 +15,11 @@ "main": "./dist/index.cjs", "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/react-router/6/redirect-to-navigate/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-router/6/redirect-to-navigate/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..e69de29bb diff --git a/apps/registry/codemods/react-router/6/redirect-to-navigate/.codemod/config.json b/apps/registry/codemods/react-router/6/redirect-to-navigate/.codemod/config.json new file mode 100644 index 000000000..c33e98b19 --- /dev/null +++ b/apps/registry/codemods/react-router/6/redirect-to-navigate/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "react-router/6/redirect-to-navigate", + "deps": ["vitest@latest"], + "owner": "codemod.com", + "engine": "jscodeshift", + "extensions": ["js*", "ts*"], + "applicability": [["react-router", "<", "6.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + } +} diff --git a/apps/registry/codemods/react-router/6/redirect-to-navigate/config.json b/apps/registry/codemods/react-router/6/redirect-to-navigate/config.json deleted file mode 100644 index 5fe6c62bd..000000000 --- a/apps/registry/codemods/react-router/6/redirect-to-navigate/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "react-router/6/redirect-to-navigate", - "description": "", - "engine": "jscodeshift", - "extensions": ["js*", "ts*"], - "dependencyVersionLowerThan": ["react-router", "6.0.0"] -} diff --git a/apps/registry/codemods/react-router/6/redirect-to-navigate/package.json b/apps/registry/codemods/react-router/6/redirect-to-navigate/package.json index 00bb07a92..7b6824cde 100644 --- a/apps/registry/codemods/react-router/6/redirect-to-navigate/package.json +++ b/apps/registry/codemods/react-router/6/redirect-to-navigate/package.json @@ -15,6 +15,11 @@ "main": "./dist/index.cjs", "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/react-router/6/remove-active-classname/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-router/6/remove-active-classname/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..e69de29bb diff --git a/apps/registry/codemods/react-router/6/remove-active-classname/.codemod/config.json b/apps/registry/codemods/react-router/6/remove-active-classname/.codemod/config.json new file mode 100644 index 000000000..76b316069 --- /dev/null +++ b/apps/registry/codemods/react-router/6/remove-active-classname/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "react-router/6/remove-active-classname", + "deps": ["vitest@latest"], + "owner": "codemod.com", + "engine": "jscodeshift", + "extensions": ["js*", "ts*"], + "applicability": [["react-router", "<", "6.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + } +} diff --git a/apps/registry/codemods/react-router/6/remove-active-classname/config.json b/apps/registry/codemods/react-router/6/remove-active-classname/config.json deleted file mode 100644 index 043082e00..000000000 --- a/apps/registry/codemods/react-router/6/remove-active-classname/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "react-router/6/remove-active-classname", - "description": "", - "engine": "jscodeshift", - "extensions": ["js*", "ts*"], - "dependencyVersionLowerThan": ["react-router", "6.0.0"] -} diff --git a/apps/registry/codemods/react-router/6/remove-active-classname/package.json b/apps/registry/codemods/react-router/6/remove-active-classname/package.json index 7b79d4b33..e559a286c 100644 --- a/apps/registry/codemods/react-router/6/remove-active-classname/package.json +++ b/apps/registry/codemods/react-router/6/remove-active-classname/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/react-router/6/remove-active-style/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-router/6/remove-active-style/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..e69de29bb diff --git a/apps/registry/codemods/react-router/6/remove-active-style/.codemod/config.json b/apps/registry/codemods/react-router/6/remove-active-style/.codemod/config.json new file mode 100644 index 000000000..f5028183d --- /dev/null +++ b/apps/registry/codemods/react-router/6/remove-active-style/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "react-router/6/remove-active-style", + "deps": ["vitest@latest"], + "owner": "codemod.com", + "engine": "jscodeshift", + "extensions": ["js*", "ts*"], + "applicability": [["react-router", "<", "6.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + } +} diff --git a/apps/registry/codemods/react-router/6/remove-active-style/config.json b/apps/registry/codemods/react-router/6/remove-active-style/config.json deleted file mode 100644 index 6d342ac3b..000000000 --- a/apps/registry/codemods/react-router/6/remove-active-style/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "react-router/6/remove-active-style", - "description": "", - "engine": "jscodeshift", - "extensions": ["js*", "ts*"], - "dependencyVersionLowerThan": ["react-router", "6.0.0"] -} diff --git a/apps/registry/codemods/react-router/6/remove-active-style/package.json b/apps/registry/codemods/react-router/6/remove-active-style/package.json index 836ef5ce4..a9f590d93 100644 --- a/apps/registry/codemods/react-router/6/remove-active-style/package.json +++ b/apps/registry/codemods/react-router/6/remove-active-style/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/react-router/6/remove-compat-router/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-router/6/remove-compat-router/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..e69de29bb diff --git a/apps/registry/codemods/react-router/6/remove-compat-router/.codemod/config.json b/apps/registry/codemods/react-router/6/remove-compat-router/.codemod/config.json new file mode 100644 index 000000000..113b4acab --- /dev/null +++ b/apps/registry/codemods/react-router/6/remove-compat-router/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "react-router/6/remove-compat-router", + "deps": ["vitest@latest"], + "owner": "codemod.com", + "engine": "jscodeshift", + "extensions": ["js*", "ts*"], + "applicability": [["react-router", "<", "6.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + } +} diff --git a/apps/registry/codemods/react-router/6/remove-compat-router/config.json b/apps/registry/codemods/react-router/6/remove-compat-router/config.json deleted file mode 100644 index 623011d58..000000000 --- a/apps/registry/codemods/react-router/6/remove-compat-router/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "react-router/6/remove-compat-router", - "description": "", - "engine": "jscodeshift", - "extensions": ["js*", "ts*"], - "dependencyVersionLowerThan": ["react-router", "6.0.0"] -} diff --git a/apps/registry/codemods/react-router/6/remove-compat-router/package.json b/apps/registry/codemods/react-router/6/remove-compat-router/package.json index 35e7564ba..71bec7fac 100644 --- a/apps/registry/codemods/react-router/6/remove-compat-router/package.json +++ b/apps/registry/codemods/react-router/6/remove-compat-router/package.json @@ -15,6 +15,11 @@ "main": "./dist/index.cjs", "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/react-router/6/remove-go-hooks/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-router/6/remove-go-hooks/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..e69de29bb diff --git a/apps/registry/codemods/react-router/6/remove-go-hooks/.codemod/config.json b/apps/registry/codemods/react-router/6/remove-go-hooks/.codemod/config.json new file mode 100644 index 000000000..6dec127f3 --- /dev/null +++ b/apps/registry/codemods/react-router/6/remove-go-hooks/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "react-router/6/remove-go-hooks", + "deps": ["vitest@latest"], + "owner": "codemod.com", + "engine": "jscodeshift", + "extensions": ["js*", "ts*"], + "applicability": [["react-router", "<", "6.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + } +} diff --git a/apps/registry/codemods/react-router/6/remove-go-hooks/config.json b/apps/registry/codemods/react-router/6/remove-go-hooks/config.json deleted file mode 100644 index 946e3bff5..000000000 --- a/apps/registry/codemods/react-router/6/remove-go-hooks/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "react-router/6/remove-go-hooks", - "description": "", - "engine": "jscodeshift", - "extensions": ["js*", "ts*"], - "dependencyVersionLowerThan": ["react-router", "6.0.0"] -} diff --git a/apps/registry/codemods/react-router/6/remove-go-hooks/package.json b/apps/registry/codemods/react-router/6/remove-go-hooks/package.json index 57518c9d4..5b5d95b25 100644 --- a/apps/registry/codemods/react-router/6/remove-go-hooks/package.json +++ b/apps/registry/codemods/react-router/6/remove-go-hooks/package.json @@ -15,6 +15,11 @@ "main": "./dist/index.cjs", "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/react-router/6/remove-redirect-inside-switch/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-router/6/remove-redirect-inside-switch/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..e69de29bb diff --git a/apps/registry/codemods/react-router/6/remove-redirect-inside-switch/.codemod/config.json b/apps/registry/codemods/react-router/6/remove-redirect-inside-switch/.codemod/config.json new file mode 100644 index 000000000..5e0cf772c --- /dev/null +++ b/apps/registry/codemods/react-router/6/remove-redirect-inside-switch/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "react-router/6/remove-redirect-inside-switch", + "deps": ["vitest@latest"], + "owner": "codemod.com", + "engine": "jscodeshift", + "extensions": ["js*", "ts*"], + "applicability": [["react-router", "<", "6.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + } +} diff --git a/apps/registry/codemods/react-router/6/remove-redirect-inside-switch/config.json b/apps/registry/codemods/react-router/6/remove-redirect-inside-switch/config.json deleted file mode 100644 index 3725d58bf..000000000 --- a/apps/registry/codemods/react-router/6/remove-redirect-inside-switch/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "react-router/6/remove-redirect-inside-switch", - "description": "", - "engine": "jscodeshift", - "extensions": ["js*", "ts*"], - "dependencyVersionLowerThan": ["react-router", "6.0.0"] -} diff --git a/apps/registry/codemods/react-router/6/remove-redirect-inside-switch/package.json b/apps/registry/codemods/react-router/6/remove-redirect-inside-switch/package.json index 01d4d0fa4..8ca876098 100644 --- a/apps/registry/codemods/react-router/6/remove-redirect-inside-switch/package.json +++ b/apps/registry/codemods/react-router/6/remove-redirect-inside-switch/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/react-router/6/rename-compat-imports/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-router/6/rename-compat-imports/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..e69de29bb diff --git a/apps/registry/codemods/react-router/6/rename-compat-imports/.codemod/config.json b/apps/registry/codemods/react-router/6/rename-compat-imports/.codemod/config.json new file mode 100644 index 000000000..6d9d28252 --- /dev/null +++ b/apps/registry/codemods/react-router/6/rename-compat-imports/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "react-router/6/rename-compat-imports", + "deps": ["vitest@latest"], + "owner": "codemod.com", + "engine": "jscodeshift", + "extensions": ["js*", "ts*"], + "applicability": [["react-router", "<", "6.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + } +} diff --git a/apps/registry/codemods/react-router/6/rename-compat-imports/config.json b/apps/registry/codemods/react-router/6/rename-compat-imports/config.json deleted file mode 100644 index 13160971a..000000000 --- a/apps/registry/codemods/react-router/6/rename-compat-imports/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "react-router/6/rename-compat-imports", - "description": "", - "engine": "jscodeshift", - "extensions": ["js*", "ts*"], - "dependencyVersionLowerThan": ["react-router", "6.0.0"] -} diff --git a/apps/registry/codemods/react-router/6/rename-compat-imports/package.json b/apps/registry/codemods/react-router/6/rename-compat-imports/package.json index 2e2ecdfbb..079f024b4 100644 --- a/apps/registry/codemods/react-router/6/rename-compat-imports/package.json +++ b/apps/registry/codemods/react-router/6/rename-compat-imports/package.json @@ -15,6 +15,11 @@ "main": "./dist/index.cjs", "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/react-router/6/static-router-imports/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-router/6/static-router-imports/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..e69de29bb diff --git a/apps/registry/codemods/react-router/6/static-router-imports/.codemod/config.json b/apps/registry/codemods/react-router/6/static-router-imports/.codemod/config.json new file mode 100644 index 000000000..aaadbf8bb --- /dev/null +++ b/apps/registry/codemods/react-router/6/static-router-imports/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "react-router/6/static-router-imports", + "deps": ["vitest@latest"], + "owner": "codemod.com", + "engine": "jscodeshift", + "extensions": ["js*", "ts*"], + "applicability": [["react-router", "<", "6.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + } +} diff --git a/apps/registry/codemods/react-router/6/static-router-imports/config.json b/apps/registry/codemods/react-router/6/static-router-imports/config.json deleted file mode 100644 index 6a36ee0e6..000000000 --- a/apps/registry/codemods/react-router/6/static-router-imports/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "react-router/6/static-router-imports", - "description": "", - "engine": "jscodeshift", - "extensions": ["js*", "ts*"], - "dependencyVersionLowerThan": ["react-router", "6.0.0"] -} diff --git a/apps/registry/codemods/react-router/6/static-router-imports/package.json b/apps/registry/codemods/react-router/6/static-router-imports/package.json index c8dbea784..c7afe5228 100644 --- a/apps/registry/codemods/react-router/6/static-router-imports/package.json +++ b/apps/registry/codemods/react-router/6/static-router-imports/package.json @@ -15,6 +15,11 @@ "main": "./dist/index.cjs", "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/react-router/6/use-location/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-router/6/use-location/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..e69de29bb diff --git a/apps/registry/codemods/react-router/6/use-location/.codemod/config.json b/apps/registry/codemods/react-router/6/use-location/.codemod/config.json new file mode 100644 index 000000000..914981456 --- /dev/null +++ b/apps/registry/codemods/react-router/6/use-location/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "react-router/6/use-location", + "deps": ["vitest@latest"], + "owner": "codemod.com", + "engine": "jscodeshift", + "extensions": ["js*", "ts*"], + "applicability": [["react-router", "<", "6.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + } +} diff --git a/apps/registry/codemods/react-router/6/use-location/config.json b/apps/registry/codemods/react-router/6/use-location/config.json deleted file mode 100644 index 66e80cf0c..000000000 --- a/apps/registry/codemods/react-router/6/use-location/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "react-router/6/use-location", - "description": "", - "engine": "jscodeshift", - "extensions": ["js*", "ts*"], - "dependencyVersionLowerThan": ["react-router", "6.0.0"] -} diff --git a/apps/registry/codemods/react-router/6/use-location/package.json b/apps/registry/codemods/react-router/6/use-location/package.json index 775641e11..d39ccd06f 100644 --- a/apps/registry/codemods/react-router/6/use-location/package.json +++ b/apps/registry/codemods/react-router/6/use-location/package.json @@ -15,6 +15,11 @@ "main": "./dist/index.cjs", "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.js" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/react-router/6/use-navigate/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-router/6/use-navigate/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..e69de29bb diff --git a/apps/registry/codemods/react-router/6/use-navigate/.codemod/config.json b/apps/registry/codemods/react-router/6/use-navigate/.codemod/config.json new file mode 100644 index 000000000..2b9e28dc9 --- /dev/null +++ b/apps/registry/codemods/react-router/6/use-navigate/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "react-router/6/use-navigate", + "deps": ["vitest@latest"], + "owner": "codemod.com", + "engine": "jscodeshift", + "extensions": ["js*", "ts*"], + "applicability": [["react-router", "<", "6.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + } +} diff --git a/apps/registry/codemods/react-router/6/use-navigate/config.json b/apps/registry/codemods/react-router/6/use-navigate/config.json deleted file mode 100644 index 8c91625e3..000000000 --- a/apps/registry/codemods/react-router/6/use-navigate/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "react-router/6/use-navigate", - "description": "", - "engine": "jscodeshift", - "extensions": ["js*", "ts*"], - "dependencyVersionLowerThan": ["react-router", "6.0.0"] -} diff --git a/apps/registry/codemods/react-router/6/use-navigate/package.json b/apps/registry/codemods/react-router/6/use-navigate/package.json index 556fcd201..1469ccf77 100644 --- a/apps/registry/codemods/react-router/6/use-navigate/package.json +++ b/apps/registry/codemods/react-router/6/use-navigate/package.json @@ -15,6 +15,11 @@ "main": "./dist/index.cjs", "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.js" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/react-router/6/use-params/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-router/6/use-params/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..e69de29bb diff --git a/apps/registry/codemods/react-router/6/use-params/.codemod/config.json b/apps/registry/codemods/react-router/6/use-params/.codemod/config.json new file mode 100644 index 000000000..e6af4e0cf --- /dev/null +++ b/apps/registry/codemods/react-router/6/use-params/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "react-router/6/use-params", + "deps": ["vitest@latest"], + "owner": "codemod.com", + "engine": "jscodeshift", + "extensions": ["js*", "ts*"], + "applicability": [["react-router", "<", "6.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + } +} diff --git a/apps/registry/codemods/react-router/6/use-params/config.json b/apps/registry/codemods/react-router/6/use-params/config.json deleted file mode 100644 index 83a941fd9..000000000 --- a/apps/registry/codemods/react-router/6/use-params/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "react-router/6/use-params", - "description": "", - "engine": "jscodeshift", - "extensions": ["js*", "ts*"], - "dependencyVersionLowerThan": ["react-router", "6.0.0"] -} diff --git a/apps/registry/codemods/react-router/6/use-params/package.json b/apps/registry/codemods/react-router/6/use-params/package.json index 039bebdb4..1772a2d22 100644 --- a/apps/registry/codemods/react-router/6/use-params/package.json +++ b/apps/registry/codemods/react-router/6/use-params/package.json @@ -15,6 +15,11 @@ "main": "./dist/index.cjs", "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.js" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/react-router/6/use-route-match/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-router/6/use-route-match/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..e69de29bb diff --git a/apps/registry/codemods/react-router/6/use-route-match/.codemod/config.json b/apps/registry/codemods/react-router/6/use-route-match/.codemod/config.json new file mode 100644 index 000000000..1e533ed54 --- /dev/null +++ b/apps/registry/codemods/react-router/6/use-route-match/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "react-router/6/use-route-match", + "deps": ["vitest@latest"], + "owner": "codemod.com", + "engine": "jscodeshift", + "extensions": ["js*", "ts*"], + "applicability": [["react-router", "<", "6.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + } +} diff --git a/apps/registry/codemods/react-router/6/use-route-match/config.json b/apps/registry/codemods/react-router/6/use-route-match/config.json deleted file mode 100644 index e50a89a0e..000000000 --- a/apps/registry/codemods/react-router/6/use-route-match/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "react-router/6/use-route-match", - "description": "", - "engine": "jscodeshift", - "extensions": ["js*", "ts*"], - "dependencyVersionLowerThan": ["react-router", "6.0.0"] -} diff --git a/apps/registry/codemods/react-router/6/use-route-match/package.json b/apps/registry/codemods/react-router/6/use-route-match/package.json index dc8d179fb..4c83a6a59 100644 --- a/apps/registry/codemods/react-router/6/use-route-match/package.json +++ b/apps/registry/codemods/react-router/6/use-route-match/package.json @@ -15,6 +15,11 @@ "main": "./dist/index.cjs", "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.js" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/react/19/remove-context-provider/README.md b/apps/registry/codemods/react/19/remove-context-provider/.codemod/DESCRIPTION.md similarity index 60% rename from apps/registry/codemods/react/19/remove-context-provider/README.md rename to apps/registry/codemods/react/19/remove-context-provider/.codemod/DESCRIPTION.md index 37316b10c..fa1b733d5 100644 --- a/apps/registry/codemods/react/19/remove-context-provider/README.md +++ b/apps/registry/codemods/react/19/remove-context-provider/.codemod/DESCRIPTION.md @@ -32,30 +32,4 @@ function App() { ); } -``` - -## Applicability Criteria - -React <=18 - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Autonomous**: Changes can safely be pushed and merged without further human involvement. - -### **Codemod Engine** - -jscodeshift - -### Estimated Time Saving - -~5 minutes per occurrence - -### Owner - -[Codemod.com](https://github.com/codemod-com) +``` \ No newline at end of file diff --git a/apps/registry/codemods/react/19/remove-context-provider/.codemod/config.json b/apps/registry/codemods/react/19/remove-context-provider/.codemod/config.json new file mode 100644 index 000000000..c94e316b2 --- /dev/null +++ b/apps/registry/codemods/react/19/remove-context-provider/.codemod/config.json @@ -0,0 +1,13 @@ +{ + "version": "1.0.0", + "name": "react/19/remove-context-provider", + "private": false, + "engine": "jscodeshift", + "owner": "codemod.com", + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + }, + "applicability": [["react", "<=", "18"]] +} diff --git a/apps/registry/codemods/react/19/remove-context-provider/config.json b/apps/registry/codemods/react/19/remove-context-provider/config.json deleted file mode 100644 index dd749b515..000000000 --- a/apps/registry/codemods/react/19/remove-context-provider/config.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "engine": "jscodeshift", - "owner": "Codemod.com" -} diff --git a/apps/registry/codemods/react/19/remove-context-provider/package.json b/apps/registry/codemods/react/19/remove-context-provider/package.json index 17dafe385..b24528ded 100644 --- a/apps/registry/codemods/react/19/remove-context-provider/package.json +++ b/apps/registry/codemods/react/19/remove-context-provider/package.json @@ -1,30 +1,30 @@ { - "name": "@codemod-com/codemod-react-19-remove-context-provider", - "dependencies": {}, - "devDependencies": { - "@codemod-com/utilities": "workspace:*", - "@codemod-com/registry-cjs-builder": "workspace:*", - "typescript": "^5.2.2", - "esbuild": "0.19.5", - "ts-node": "^10.9.1", - "jscodeshift": "^0.15.1", - "@types/jscodeshift": "^0.11.10", - "vitest": "^1.0.1", - "@vitest/coverage-v8": "^1.0.1" - }, - "main": "./dist/index.cjs", - "types": "/dist/index.d.ts", - "scripts": { - "build:cjs": "cjs-builder ./src/index.ts", - "test": "vitest run", - "test:watch": "vitest watch", - "coverage": "vitest run --coverage" - }, - "files": [ - "README.md", - "config.json", - "./dist/index.cjs", - "./index.d.ts" - ], - "type": "module" + "name": "@codemod-com/codemod-react-19-remove-context-provider", + "dependencies": {}, + "devDependencies": { + "@codemod-com/utilities": "workspace:*", + "@codemod-com/registry-cjs-builder": "workspace:*", + "typescript": "^5.2.2", + "esbuild": "0.19.5", + "ts-node": "^10.9.1", + "jscodeshift": "^0.15.1", + "@types/jscodeshift": "^0.11.10", + "vitest": "^1.0.1", + "@vitest/coverage-v8": "^1.0.1" + }, + "main": "./dist/index.cjs", + "types": "/dist/index.d.ts", + "scripts": { + "build:cjs": "cjs-builder ./src/index.ts", + "test": "vitest run", + "test:watch": "vitest watch", + "coverage": "vitest run --coverage" + }, + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], + "type": "module" } diff --git a/apps/registry/codemods/react/19/remove-forward-ref/README.md b/apps/registry/codemods/react/19/remove-forward-ref/.codemod/DESCRIPTION.md similarity index 52% rename from apps/registry/codemods/react/19/remove-forward-ref/README.md rename to apps/registry/codemods/react/19/remove-forward-ref/.codemod/DESCRIPTION.md index b175ff591..484713f7a 100644 --- a/apps/registry/codemods/react/19/remove-forward-ref/README.md +++ b/apps/registry/codemods/react/19/remove-forward-ref/.codemod/DESCRIPTION.md @@ -23,27 +23,3 @@ const MyInput = function MyInput({ ref, ...otherProps }) { // ... }; ``` - -## Applicability Criteria - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Assistive**: The automation partially completes changes. Human involvement is needed to make changes ready to be pushed and merged. - -### **Codemod Engine** - -jscodeshift - -### Estimated Time Saving - -~5 minutes per occurrence - -### Owner - -[Codemod.com](https://github.com/codemod-com) diff --git a/apps/registry/codemods/react/19/remove-forward-ref/.codemod/config.json b/apps/registry/codemods/react/19/remove-forward-ref/.codemod/config.json new file mode 100644 index 000000000..5ef01a303 --- /dev/null +++ b/apps/registry/codemods/react/19/remove-forward-ref/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "react/19/remove-forward-ref", + "description": "Codemod to remove React.forwardRef function that will be deprecated in next major React release", + "engine": "jscodeshift", + "extensions": ["js*", "ts*"], + "owner": "codemod.com", + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + }, + "applicability": [["react", "<=", "18"]] +} diff --git a/apps/registry/codemods/react/19/remove-forward-ref/config.json b/apps/registry/codemods/react/19/remove-forward-ref/config.json deleted file mode 100644 index 81a96b352..000000000 --- a/apps/registry/codemods/react/19/remove-forward-ref/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "react/remove-forward-ref", - "description": "Codemod to remove React.forwardRef function that will be deprecated in next major React release", - "engine": "jscodeshift", - "extensions": ["js*", "ts*"], - "owner": "Codemod.com" -} diff --git a/apps/registry/codemods/react/19/remove-forward-ref/package.json b/apps/registry/codemods/react/19/remove-forward-ref/package.json index 66e7f7268..f0f7753fb 100644 --- a/apps/registry/codemods/react/19/remove-forward-ref/package.json +++ b/apps/registry/codemods/react/19/remove-forward-ref/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "README.md", - "config.json", + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/react/19/remove-memoization-hooks/.codemod/DESCRIPTION.md b/apps/registry/codemods/react/19/remove-memoization-hooks/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..c505093e2 --- /dev/null +++ b/apps/registry/codemods/react/19/remove-memoization-hooks/.codemod/DESCRIPTION.md @@ -0,0 +1,5 @@ +# Remove Manual Memoization Hooks + +## Description + +This codemod will remove manual memoization hooks: `useCallback`, `useMemo` and `memo`. This codemod goes hand in hand with React Compiler. diff --git a/apps/registry/codemods/react/19/remove-memoization-hooks/.codemod/config.json b/apps/registry/codemods/react/19/remove-memoization-hooks/.codemod/config.json new file mode 100644 index 000000000..636a2d38a --- /dev/null +++ b/apps/registry/codemods/react/19/remove-memoization-hooks/.codemod/config.json @@ -0,0 +1,13 @@ +{ + "version": "1.0.0", + "name": "react/19/remove-memoization", + "private": false, + "engine": "jscodeshift", + "owner": "codemod.com", + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + }, + "applicability": [["react", "<=", "18"]] +} diff --git a/apps/registry/codemods/react/19/remove-memoization-hooks/README.md b/apps/registry/codemods/react/19/remove-memoization-hooks/README.md deleted file mode 100644 index 32094a491..000000000 --- a/apps/registry/codemods/react/19/remove-memoization-hooks/README.md +++ /dev/null @@ -1,31 +0,0 @@ -# Remove Manual Memoization Hooks - -## Description - -This codemod will remove manual memoization hooks: `useCallback`, `useMemo` and `memo`. This codemod goes hand in hand with React Compiler. - -## Applicability Criteria - -React <=18 - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Autonomous**: Changes can safely be pushed and merged without further human involvement. - -### **Codemod Engine** - -jscodeshift - -### Estimated Time Saving - -~5 minutes per occurrence - -### Owner - -[Codemod.com](https://github.com/codemod-com) diff --git a/apps/registry/codemods/react/19/remove-memoization-hooks/config.json b/apps/registry/codemods/react/19/remove-memoization-hooks/config.json deleted file mode 100644 index dd749b515..000000000 --- a/apps/registry/codemods/react/19/remove-memoization-hooks/config.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "engine": "jscodeshift", - "owner": "Codemod.com" -} diff --git a/apps/registry/codemods/react/19/remove-memoization-hooks/package.json b/apps/registry/codemods/react/19/remove-memoization-hooks/package.json index 076fa5923..eaf57b96a 100644 --- a/apps/registry/codemods/react/19/remove-memoization-hooks/package.json +++ b/apps/registry/codemods/react/19/remove-memoization-hooks/package.json @@ -1,30 +1,30 @@ { - "name": "@codemod-com/codemod-react-19-remove-memoization-hooks", - "dependencies": {}, - "devDependencies": { - "@codemod-com/utilities": "workspace:*", - "@codemod-com/registry-cjs-builder": "workspace:*", - "typescript": "^5.2.2", - "esbuild": "0.19.5", - "ts-node": "^10.9.1", - "jscodeshift": "^0.15.1", - "@types/jscodeshift": "^0.11.10", - "vitest": "^1.0.1", - "@vitest/coverage-v8": "^1.0.1" - }, - "main": "./dist/index.cjs", - "types": "/dist/index.d.ts", - "scripts": { - "build:cjs": "cjs-builder ./src/index.ts", - "test": "vitest run", - "test:watch": "vitest watch", - "coverage": "vitest run --coverage" - }, - "files": [ - "README.md", - "config.json", - "./dist/index.cjs", - "./index.d.ts" - ], - "type": "module" + "name": "@codemod-com/codemod-react-19-remove-memoization-hooks", + "dependencies": {}, + "devDependencies": { + "@codemod-com/utilities": "workspace:*", + "@codemod-com/registry-cjs-builder": "workspace:*", + "typescript": "^5.2.2", + "esbuild": "0.19.5", + "ts-node": "^10.9.1", + "jscodeshift": "^0.15.1", + "@types/jscodeshift": "^0.11.10", + "vitest": "^1.0.1", + "@vitest/coverage-v8": "^1.0.1" + }, + "main": "./dist/index.cjs", + "types": "/dist/index.d.ts", + "scripts": { + "build:cjs": "cjs-builder ./src/index.ts", + "test": "vitest run", + "test:watch": "vitest watch", + "coverage": "vitest run --coverage" + }, + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], + "type": "module" } diff --git a/apps/registry/codemods/react/19/use-context-hook/README.md b/apps/registry/codemods/react/19/use-context-hook/.codemod/DESCRIPTION.md similarity index 50% rename from apps/registry/codemods/react/19/use-context-hook/README.md rename to apps/registry/codemods/react/19/use-context-hook/.codemod/DESCRIPTION.md index e6aee8225..14b6f0040 100644 --- a/apps/registry/codemods/react/19/use-context-hook/README.md +++ b/apps/registry/codemods/react/19/use-context-hook/.codemod/DESCRIPTION.md @@ -23,33 +23,3 @@ import ThemeContext from "./ThemeContext"; const theme = use(ThemeContext); ``` - -## Applicability Criteria - -React <=18 - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Autonomous**: Changes can safely be pushed and merged without further human involvement. - -### **Codemod Engine** - -jscodeshift - -### Estimated Time Saving - -~5 minutes per occurrence - -### Owner - -[Codemod.com](https://github.com/codemod-com) - -### Links for more info - -- https://react.dev/reference/react/use#reading-context-with-use \ No newline at end of file diff --git a/apps/registry/codemods/react/19/use-context-hook/.codemod/config.json b/apps/registry/codemods/react/19/use-context-hook/.codemod/config.json new file mode 100644 index 000000000..8d0c7ab3f --- /dev/null +++ b/apps/registry/codemods/react/19/use-context-hook/.codemod/config.json @@ -0,0 +1,13 @@ +{ + "version": "1.0.0", + "name": "react/19/use-context-hook", + "private": false, + "engine": "jscodeshift", + "owner": "codemod.com", + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + }, + "applicability": [["react", "<=", "18"]] +} diff --git a/apps/registry/codemods/react/19/use-context-hook/config.json b/apps/registry/codemods/react/19/use-context-hook/config.json deleted file mode 100644 index dd749b515..000000000 --- a/apps/registry/codemods/react/19/use-context-hook/config.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "engine": "jscodeshift", - "owner": "Codemod.com" -} diff --git a/apps/registry/codemods/react/19/use-context-hook/package.json b/apps/registry/codemods/react/19/use-context-hook/package.json index d826e6eac..58a44b525 100644 --- a/apps/registry/codemods/react/19/use-context-hook/package.json +++ b/apps/registry/codemods/react/19/use-context-hook/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/react/prop-types-typescript/README.md b/apps/registry/codemods/react/prop-types-typescript/.codemod/DESCRIPTION.md similarity index 67% rename from apps/registry/codemods/react/prop-types-typescript/README.md rename to apps/registry/codemods/react/prop-types-typescript/.codemod/DESCRIPTION.md index fbef23abe..b4902b24e 100644 --- a/apps/registry/codemods/react/prop-types-typescript/README.md +++ b/apps/registry/codemods/react/prop-types-typescript/.codemod/DESCRIPTION.md @@ -42,32 +42,4 @@ interface MyComponentProps { export function MyComponent(props: MyComponentProps) { return ; } -``` - -## Applicability Criteria - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Autonomous**: Changes can safely be pushed and merged without further human involvement. - -### **Codemod Engine** - -jscodeshift - -### Estimated Time Saving - -~30 minutes per occurrence - -### Owner - -[Mark Skelton](https://github.com/mskelton/ratchet) - -### Links for more info - -- [Ratchet Codemod](https://github.com/mskelton/ratchet) +``` \ No newline at end of file diff --git a/apps/registry/codemods/react/prop-types-typescript/config.json b/apps/registry/codemods/react/prop-types-typescript/.codemod/config.json similarity index 67% rename from apps/registry/codemods/react/prop-types-typescript/config.json rename to apps/registry/codemods/react/prop-types-typescript/.codemod/config.json index 19695e865..2c69baec3 100644 --- a/apps/registry/codemods/react/prop-types-typescript/config.json +++ b/apps/registry/codemods/react/prop-types-typescript/.codemod/config.json @@ -1,10 +1,12 @@ { - "schemaVersion": "1.0.0", + "version": "1.0.0", + "private": false, "name": "react/prop-types-typescript", "description": "Codemod to convert React PropTypes to TypeScript types.", "engine": "jscodeshift", "extensions": ["js*", "ts*"], - "owner": "Mark Skelton", + "owner": "mskelton", + "applicability": [["react", ">=", "15.0.0"]], "arguments": [ { "name": "preserve-prop-types", @@ -13,5 +15,10 @@ "default": "none", "required": false } - ] + ], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "30m" + } } diff --git a/apps/registry/codemods/react/prop-types-typescript/package.json b/apps/registry/codemods/react/prop-types-typescript/package.json index 714bcc238..75536ccee 100644 --- a/apps/registry/codemods/react/prop-types-typescript/package.json +++ b/apps/registry/codemods/react/prop-types-typescript/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/react/replace-react-fc-typescript/.codemod/DESCRIPTION.md b/apps/registry/codemods/react/replace-react-fc-typescript/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..364151534 --- /dev/null +++ b/apps/registry/codemods/react/replace-react-fc-typescript/.codemod/DESCRIPTION.md @@ -0,0 +1,35 @@ +# Replace React FC Typescript + +## Description + +This codemod removes `React.FC`, `React.FunctionComponent` and `React.SFC` and replaces the Props as the type of the unique argument in the component definition. + +This codemod supports: + +- Inline defined props. +- Generics. +- Props defined with intersection. +- Component modules defined using intersection. +- Regular named functions. +- Functions that accept a component definition. +- Using FC, FunctionComponent and SFC as a named export. + +## Example + +### Before: + +```jsx +type Props2 = { id: number }; +export const MyComponent2: React.FC = (props) => { + return {props.id} +} +``` + +### After: + +```tsx +type Props2 = { id: number }; +export const MyComponent2 = (props: Props2) => { + return {props.id}; +}; +``` \ No newline at end of file diff --git a/apps/registry/codemods/react/replace-react-fc-typescript/.codemod/config.json b/apps/registry/codemods/react/replace-react-fc-typescript/.codemod/config.json new file mode 100644 index 000000000..53ada9b1f --- /dev/null +++ b/apps/registry/codemods/react/replace-react-fc-typescript/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "react/replace-react-fc-typescript", + "description": "Codemod to replace React.FC when using React with Typescript.", + "engine": "jscodeshift", + "extensions": ["js*", "ts*"], + "owner": "gndelia", + "meta": { + "type": "migration", + "changeType": "assistive", + "timeSave": "5m" + }, + "applicability": [["react", ">=", "15.0.0"]] +} diff --git a/apps/registry/codemods/react/replace-react-fc-typescript/README.md b/apps/registry/codemods/react/replace-react-fc-typescript/README.md deleted file mode 100644 index 0e2f6a87e..000000000 --- a/apps/registry/codemods/react/replace-react-fc-typescript/README.md +++ /dev/null @@ -1,65 +0,0 @@ -# Replace React FC Typescript - -## Description - -This codemod removes `React.FC`, `React.FunctionComponent` and `React.SFC` and replaces the Props as the type of the unique argument in the component definition. - -This codemod supports: - -- Inline defined props. -- Generics. -- Props defined with intersection. -- Component modules defined using intersection. -- Regular named functions. -- Functions that accept a component definition. -- Using FC, FunctionComponent and SFC as a named export. - -## Example - -### Before: - -```jsx -type Props2 = { id: number }; -export const MyComponent2: React.FC = (props) => { - return {props.id} -} -``` - -### After: - -```tsx -type Props2 = { id: number }; -export const MyComponent2 = (props: Props2) => { - return {props.id}; -}; -``` - -## Applicability Criteria - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Assistive**: The automation partially completes changes. Human involvement is needed to make changes ready to be pushed and merged. - -### **Codemod Engine** - -jscodeshift - -### Estimated Time Saving - -~5 minutes per occurrence - -### Owner - -[Gonzalo D'Elia](https://github.com/gndelia) - -### Links for more info - -- [gndelia/codemod-replace-react-fc-typescript](https://github.com/gndelia/codemod-replace-react-fc-typescript/tree/main) -- [facebook/create-react-app - Remove React.FC from Typescript template (PR#8177)](https://github.com/facebook/create-react-app/pull/8177) -- [Spotify Architecture Decision Records - Avoid React.FC and React.SFC](https://backstage.io/docs/architecture-decisions/adrs-adr006) diff --git a/apps/registry/codemods/react/replace-react-fc-typescript/config.json b/apps/registry/codemods/react/replace-react-fc-typescript/config.json deleted file mode 100644 index 775e8060e..000000000 --- a/apps/registry/codemods/react/replace-react-fc-typescript/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "react/replace-react-fc-typescript", - "description": "Codemod to replace React.FC when using React with Typescript.", - "engine": "jscodeshift", - "extensions": ["js*", "ts*"], - "owner": "Gonzalo D'Elia" -} diff --git a/apps/registry/codemods/react/replace-react-fc-typescript/package.json b/apps/registry/codemods/react/replace-react-fc-typescript/package.json index 541d5f445..98cd7216c 100644 --- a/apps/registry/codemods/react/replace-react-fc-typescript/package.json +++ b/apps/registry/codemods/react/replace-react-fc-typescript/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/redwoodjs/core/4/auth-decoder/README.md b/apps/registry/codemods/redwoodjs/core/4/auth-decoder/.codemod/DESCRIPTION.md similarity index 77% rename from apps/registry/codemods/redwoodjs/core/4/auth-decoder/README.md rename to apps/registry/codemods/redwoodjs/core/4/auth-decoder/.codemod/DESCRIPTION.md index 0d2e4ad30..f33080bd6 100644 --- a/apps/registry/codemods/redwoodjs/core/4/auth-decoder/README.md +++ b/apps/registry/codemods/redwoodjs/core/4/auth-decoder/.codemod/DESCRIPTION.md @@ -51,30 +51,4 @@ export const handler = createGraphQLHandler({ db.$disconnect(); }, }); -``` - -## Applicability Criteria - -RedwoodJS < v4.0.0 - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Assistive**: The automation partially completes changes. Human involvement is needed to make changes ready to be pushed and merged. - -### **Codemod Engine** - -[jscodeshift](https://github.com/facebook/jscodeshift) - -### Estimated Time Saving - -~6 minutes per occurrence - -### Owner - -[Rajasegar Chandran](https://github.com/rajasegar) +``` \ No newline at end of file diff --git a/apps/registry/codemods/redwoodjs/core/4/auth-decoder/.codemod/config.json b/apps/registry/codemods/redwoodjs/core/4/auth-decoder/.codemod/config.json new file mode 100644 index 000000000..96befcf35 --- /dev/null +++ b/apps/registry/codemods/redwoodjs/core/4/auth-decoder/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "redwoodjs/core/4/auth-decoder", + "deps": ["vitest@latest"], + "engine": "jscodeshift", + "extensions": ["js*", "ts*"], + "applicability": [["@redwoodjs/core", "<", "4.0.0"]], + "owner": "rajasegar", + "meta": { + "type": "migration", + "changeType": "assistive", + "timeSave": "5m" + } +} diff --git a/apps/registry/codemods/redwoodjs/core/4/auth-decoder/config.json b/apps/registry/codemods/redwoodjs/core/4/auth-decoder/config.json deleted file mode 100644 index 57057cedc..000000000 --- a/apps/registry/codemods/redwoodjs/core/4/auth-decoder/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "redwoodjs/core/4/auth-decoder", - "description": "", - "engine": "jscodeshift", - "extensions": ["js*", "ts*"], - "dependencyVersionLowerThan": ["@redwoodjs/core", "4.0.0"] -} diff --git a/apps/registry/codemods/redwoodjs/core/4/auth-decoder/package.json b/apps/registry/codemods/redwoodjs/core/4/auth-decoder/package.json index 38725b32b..ae7ce9c75 100644 --- a/apps/registry/codemods/redwoodjs/core/4/auth-decoder/package.json +++ b/apps/registry/codemods/redwoodjs/core/4/auth-decoder/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/redwoodjs/core/4/redwood-apollo-provider/.codemod/DESCRIPTION.md b/apps/registry/codemods/redwoodjs/core/4/redwood-apollo-provider/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..e69de29bb diff --git a/apps/registry/codemods/redwoodjs/core/4/redwood-apollo-provider/.codemod/config.json b/apps/registry/codemods/redwoodjs/core/4/redwood-apollo-provider/.codemod/config.json new file mode 100644 index 000000000..83df1f4a5 --- /dev/null +++ b/apps/registry/codemods/redwoodjs/core/4/redwood-apollo-provider/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "redwoodjs/core/4/redwood-apollo-provider", + "deps": ["vitest@latest"], + "engine": "jscodeshift", + "extensions": ["js*", "ts*"], + "applicability": [["@redwoodjs/core", "<", "4.0.0"]], + "owner": "rajasegar", + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + } +} diff --git a/apps/registry/codemods/redwoodjs/core/4/redwood-apollo-provider/config.json b/apps/registry/codemods/redwoodjs/core/4/redwood-apollo-provider/config.json deleted file mode 100644 index e13d841a1..000000000 --- a/apps/registry/codemods/redwoodjs/core/4/redwood-apollo-provider/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "redwoodjs/core/4/redwood-apollo-provider", - "description": "", - "engine": "jscodeshift", - "extensions": ["js*", "ts*"], - "dependencyVersionLowerThan": ["@redwoodjs/core", "4.0.0"] -} diff --git a/apps/registry/codemods/redwoodjs/core/4/redwood-apollo-provider/package.json b/apps/registry/codemods/redwoodjs/core/4/redwood-apollo-provider/package.json index ed73b3d4c..6dc5cfcde 100644 --- a/apps/registry/codemods/redwoodjs/core/4/redwood-apollo-provider/package.json +++ b/apps/registry/codemods/redwoodjs/core/4/redwood-apollo-provider/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/redwoodjs/core/4/router-use-auth/.codemod/DESCRIPTION.md b/apps/registry/codemods/redwoodjs/core/4/router-use-auth/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..e69de29bb diff --git a/apps/registry/codemods/redwoodjs/core/4/router-use-auth/.codemod/config.json b/apps/registry/codemods/redwoodjs/core/4/router-use-auth/.codemod/config.json new file mode 100644 index 000000000..2f63d1233 --- /dev/null +++ b/apps/registry/codemods/redwoodjs/core/4/router-use-auth/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "redwoodjs/core/4/router-use-auth", + "deps": ["vitest@latest"], + "engine": "jscodeshift", + "extensions": ["js*", "ts*"], + "applicability": [["@redwoodjs/core", "<", "4.0.0"]], + "owner": "rajasegar", + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + } +} diff --git a/apps/registry/codemods/redwoodjs/core/4/router-use-auth/config.json b/apps/registry/codemods/redwoodjs/core/4/router-use-auth/config.json deleted file mode 100644 index 366f360b5..000000000 --- a/apps/registry/codemods/redwoodjs/core/4/router-use-auth/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "redwoodjs/core/4/router-use-auth", - "description": "", - "engine": "jscodeshift", - "extensions": ["js*", "ts*"], - "dependencyVersionLowerThan": ["@redwoodjs/core", "4.0.0"] -} diff --git a/apps/registry/codemods/redwoodjs/core/4/router-use-auth/package.json b/apps/registry/codemods/redwoodjs/core/4/router-use-auth/package.json index 63b8562b6..6c258483e 100644 --- a/apps/registry/codemods/redwoodjs/core/4/router-use-auth/package.json +++ b/apps/registry/codemods/redwoodjs/core/4/router-use-auth/package.json @@ -20,6 +20,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/redwoodjs/core/4/use-armor/.codemod/DESCRIPTION.md b/apps/registry/codemods/redwoodjs/core/4/use-armor/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..e69de29bb diff --git a/apps/registry/codemods/redwoodjs/core/4/use-armor/.codemod/config.json b/apps/registry/codemods/redwoodjs/core/4/use-armor/.codemod/config.json new file mode 100644 index 000000000..2b66fe0e9 --- /dev/null +++ b/apps/registry/codemods/redwoodjs/core/4/use-armor/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "redwoodjs/core/4/use-armor", + "deps": ["vitest@latest"], + "engine": "jscodeshift", + "extensions": ["js*", "ts*"], + "applicability": [["@redwoodjs/core", "<", "4.0.0"]], + "owner": "rajasegar", + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + } +} diff --git a/apps/registry/codemods/redwoodjs/core/4/use-armor/config.json b/apps/registry/codemods/redwoodjs/core/4/use-armor/config.json deleted file mode 100644 index 255719d41..000000000 --- a/apps/registry/codemods/redwoodjs/core/4/use-armor/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "redwoodjs/core/4/use-armor", - "description": "", - "engine": "jscodeshift", - "extensions": ["js*", "ts*"], - "dependencyVersionLowerThan": ["@redwoodjs/core", "4.0.0"] -} diff --git a/apps/registry/codemods/redwoodjs/core/4/use-armor/package.json b/apps/registry/codemods/redwoodjs/core/4/use-armor/package.json index dbf25444d..47c905667 100644 --- a/apps/registry/codemods/redwoodjs/core/4/use-armor/package.json +++ b/apps/registry/codemods/redwoodjs/core/4/use-armor/package.json @@ -15,6 +15,11 @@ "main": "./dist/index.cjs", "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.js" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/remove-unused-feature-flags-2/README.md b/apps/registry/codemods/remove-unused-feature-flags-2/.codemod/DESCRIPTION.md similarity index 63% rename from apps/registry/codemods/remove-unused-feature-flags-2/README.md rename to apps/registry/codemods/remove-unused-feature-flags-2/.codemod/DESCRIPTION.md index 111e3a960..37afefeb3 100644 --- a/apps/registry/codemods/remove-unused-feature-flags-2/README.md +++ b/apps/registry/codemods/remove-unused-feature-flags-2/.codemod/DESCRIPTION.md @@ -26,30 +26,4 @@ export async function Component() { export async function Component() { const a = true; } -``` - -## Applicability Criteria - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Assistive**: The automation partially completes changes. Human involvement is needed to make changes ready to be pushed and merged. - -### **Codemod Engine** - -jscodeshift - -### Estimated Time Saving - -~5 minutes per occurrence - -### Owner - -Codemod.com - -### Links for more info +``` \ No newline at end of file diff --git a/apps/registry/codemods/remove-unused-feature-flags-2/config.json b/apps/registry/codemods/remove-unused-feature-flags-2/.codemod/config.json similarity index 60% rename from apps/registry/codemods/remove-unused-feature-flags-2/config.json rename to apps/registry/codemods/remove-unused-feature-flags-2/.codemod/config.json index c599a14e9..effa366db 100644 --- a/apps/registry/codemods/remove-unused-feature-flags-2/config.json +++ b/apps/registry/codemods/remove-unused-feature-flags-2/.codemod/config.json @@ -1,6 +1,10 @@ { - "schemaVersion": "1.0.0", + "version": "1.0.0", + "private": false, "engine": "filemod", + "name": "remove-unused-feature-flags-2", + "applicability": [], + "owner": "codemod.com", "arguments": [ { "name": "fileMarker", @@ -20,5 +24,10 @@ "default": "", "required": true } - ] + ], + "meta": { + "type": "cleanup", + "changeType": "autonomous", + "timeSave": "5m" + } } diff --git a/apps/registry/codemods/remove-unused-feature-flags-2/package.json b/apps/registry/codemods/remove-unused-feature-flags-2/package.json index 0bb92a87a..22d111839 100644 --- a/apps/registry/codemods/remove-unused-feature-flags-2/package.json +++ b/apps/registry/codemods/remove-unused-feature-flags-2/package.json @@ -23,6 +23,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/typescript/remove-public-modifier/README.md b/apps/registry/codemods/typescript/remove-public-modifier/.codemod/DESCRIPTION.md similarity index 52% rename from apps/registry/codemods/typescript/remove-public-modifier/README.md rename to apps/registry/codemods/typescript/remove-public-modifier/.codemod/DESCRIPTION.md index 7da831381..812c356d4 100644 --- a/apps/registry/codemods/typescript/remove-public-modifier/README.md +++ b/apps/registry/codemods/typescript/remove-public-modifier/.codemod/DESCRIPTION.md @@ -33,29 +33,3 @@ class MyClass { } } ``` - -## Applicability Criteria - -TypeScript version higher or equal to 1.4. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Autonomous**: Changes can safely be pushed and merged without further human involvement. - -### **Codemod Engine** - -jscodeshift - -### Estimated Time Saving - -~1 minute per occurrence - -### Owner - -[Codemod.com](https://codemod.com) diff --git a/apps/registry/codemods/typescript/remove-public-modifier/config.json b/apps/registry/codemods/typescript/remove-public-modifier/.codemod/config.json similarity index 50% rename from apps/registry/codemods/typescript/remove-public-modifier/config.json rename to apps/registry/codemods/typescript/remove-public-modifier/.codemod/config.json index 6e3ee7d87..72bf26383 100644 --- a/apps/registry/codemods/typescript/remove-public-modifier/config.json +++ b/apps/registry/codemods/typescript/remove-public-modifier/.codemod/config.json @@ -1,8 +1,15 @@ { - "schemaVersion": "1.0.0", + "version": "1.0.0", + "private": false, "name": "typescript/remove-public-modifier", "description": "This codemod removes public modifier in interface declarations as it is implicit.", "engine": "jscodeshift", "extensions": ["js*", "ts*"], - "owner": "Codemod.com" + "owner": "codemod.com", + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + }, + "applicability": [["typescript", ">=", "1.4.0"]] } diff --git a/apps/registry/codemods/typescript/remove-public-modifier/package.json b/apps/registry/codemods/typescript/remove-public-modifier/package.json index 94f2218c2..4d2b60a9b 100644 --- a/apps/registry/codemods/typescript/remove-public-modifier/package.json +++ b/apps/registry/codemods/typescript/remove-public-modifier/package.json @@ -21,6 +21,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/codemods/typescript/use-template-literals/.codemod/DESCRIPTION.md b/apps/registry/codemods/typescript/use-template-literals/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..dade2d986 --- /dev/null +++ b/apps/registry/codemods/typescript/use-template-literals/.codemod/DESCRIPTION.md @@ -0,0 +1,21 @@ +# Use Template Literals + +## Description + +This codemod replaces string concatenations with template literals. + +## Example + +### Before + +```jsx +const name = 'John'; +const greeting = 'Hello, ' + name + '!'; +``` + +### After + +```jsx +const name = 'John'; +const greeting = `Hello, ${name}!`; +``` diff --git a/apps/registry/codemods/typescript/use-template-literals/.codemod/config.json b/apps/registry/codemods/typescript/use-template-literals/.codemod/config.json new file mode 100644 index 000000000..e32d1f463 --- /dev/null +++ b/apps/registry/codemods/typescript/use-template-literals/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "typescript/use-template-literals", + "description": "This codemod replaces string concatenations with template literals.", + "engine": "jscodeshift", + "extensions": ["js*", "ts*"], + "owner": "codemod.com", + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + }, + "applicability": [["typescript", ">=", "1.4.0"]] +} diff --git a/apps/registry/codemods/typescript/use-template-literals/README.md b/apps/registry/codemods/typescript/use-template-literals/README.md deleted file mode 100644 index 966c38d58..000000000 --- a/apps/registry/codemods/typescript/use-template-literals/README.md +++ /dev/null @@ -1,47 +0,0 @@ -# Use Template Literals - -## Description - -This codemod replaces string concatenations with template literals. - -## Example - -### Before - -```jsx -const name = 'John'; -const greeting = 'Hello, ' + name + '!'; -``` - -### After - -```jsx -const name = 'John'; -const greeting = `Hello, ${name}!`; -``` - -## Applicability Criteria - -TypeScript version higher or equal to 1.4. - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Autonomous**: Changes can safely be pushed and merged without further human involvement. - -### **Codemod Engine** - -jscodeshift - -### Estimated Time Saving - -~2 minutes per occurrence - -### Owner - -[Codemod.com](https://codemod.com) diff --git a/apps/registry/codemods/typescript/use-template-literals/config.json b/apps/registry/codemods/typescript/use-template-literals/config.json deleted file mode 100644 index 7149a03c7..000000000 --- a/apps/registry/codemods/typescript/use-template-literals/config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": "1.0.0", - "name": "typescript/use-template-literals", - "description": "This codemod replaces string concatenations with template literals.", - "engine": "jscodeshift", - "extensions": ["js*", "ts*"], - "owner": "Codemod.com" -} diff --git a/apps/registry/codemods/typescript/use-template-literals/package.json b/apps/registry/codemods/typescript/use-template-literals/package.json index 92108aa91..be7438129 100644 --- a/apps/registry/codemods/typescript/use-template-literals/package.json +++ b/apps/registry/codemods/typescript/use-template-literals/package.json @@ -21,6 +21,11 @@ "test:watch": "vitest watch", "coverage": "vitest run --coverage" }, - "files": ["README.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], "type": "module" } diff --git a/apps/registry/package.json b/apps/registry/package.json index 06b6d14e7..fa616435a 100644 --- a/apps/registry/package.json +++ b/apps/registry/package.json @@ -4,7 +4,7 @@ "author": "Codemod, Inc.", "packageManager": "pnpm@8.9.0", "scripts": { - "build": "turbo run build:cjs && pnpm --filter @codemod-com/builder build:registry && pnpm --filter @codemod-com/readme-parser build:registry", + "build": "turbo run build:cjs && pnpm --filter @codemod-com/builder build:registry", "build:homedir": "turbo run build:cjs && pnpm --filter @codemod-com/builder build:homedir", "create": "turbo run create", "test": "vitest run test.ts", diff --git a/apps/registry/readme-parser/build.ts b/apps/registry/readme-parser/build.ts deleted file mode 100644 index 0e3a550a9..000000000 --- a/apps/registry/readme-parser/build.ts +++ /dev/null @@ -1,29 +0,0 @@ -import esbuild from "esbuild"; - -const getOptions = (fileName: string): Parameters[0] => { - return { - entryPoints: [`${fileName}.ts`], - banner: { - js: ` - // BANNER START - const require = (await import("node:module")).createRequire(import.meta.url); - const __filename = (await import("node:url")).fileURLToPath(import.meta.url); - const __dirname = (await import("node:path")).dirname(__filename); - // BANNER END - `, - }, - bundle: true, - platform: "node", - minify: true, - minifyWhitespace: true, - format: "esm", - outfile: `./dist/${fileName}.js`, - }; -}; - -const build = async () => { - await esbuild.build(getOptions("parse")); - await esbuild.build(getOptions("sync")); -}; - -build(); diff --git a/apps/registry/readme-parser/package.json b/apps/registry/readme-parser/package.json deleted file mode 100644 index 9fb37e4e6..000000000 --- a/apps/registry/readme-parser/package.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "@codemod-com/readme-parser", - "type": "module", - "dependencies": { - "js-yaml": "4.1.0", - "mdast-util-from-markdown": "2.0.0", - "simple-git": "^3.21.0", - "valibot": "^0.24.1" - }, - "devDependencies": { - "@types/js-yaml": "4.0.9", - "@types/mdast": "4.0.3", - "@types/node": "20.10.4", - "esbuild": "^0.19.7", - "tsx": "^4.7.0", - "typescript": "5.3.3", - "vitest": "1.0.4" - }, - "scripts": { "build:registry": "tsx build.ts", "test": "vitest" } -} diff --git a/apps/registry/readme-parser/parse.test.ts b/apps/registry/readme-parser/parse.test.ts deleted file mode 100644 index f20787490..000000000 --- a/apps/registry/readme-parser/parse.test.ts +++ /dev/null @@ -1,255 +0,0 @@ -import { deepEqual } from "assert"; -import { createHash } from "crypto"; -import { afterEach, beforeEach, describe, it, vi } from "vitest"; -import { convertToYaml, parse } from "./parse.js"; - -const DATA = ` -# Do the thing - -## Description - -This is an amazing codemod which does \`the thing\`. Changes: - -### WARNING - -This codemod does the thing - -Following the original msw [upgrade guide](https://mswjs.io/docs/migrations/1.x-to-2.x/#imports), there are certain imports that changed their location and/or naming. This codemod will adjust your imports to the new location and naming. - -- \`setupWorker\` is now imported from \`msw/browser\` -- \`rest\` from \`msw\` is now named \`http\` -- \`RestHandler\` from \`msw\` is now named \`HttpHandler\` - -## Example - -### \`tsconfig.json\` - -### Before - -\`\`\`ts -http.get('/resource', (req, res, ctx) => { - return res(ctx.json({ firstName: 'John' })); -}); -\`\`\` - -### After - -\`\`\`ts -http.get('/resource', (req, res, ctx) => { - return res(ctx.json({ firstName: 'John' })); -}); -\`\`\` - -### **engine.tsx** - -### Before - -\`\`\`ts -http.get('/resource', (req, res, ctx) => { - return res(ctx.json({ firstName: 'John' })); -}); -\`\`\` - -### After - -\`\`\`ts -http.get('/resource', (req, res, ctx) => { - return res(ctx.json({ firstName: 'John' })); -}); -\`\`\` - -## Applicability Criteria - -\`MSW\` >= 1.0.0 - -## Other Metadata - -### Codemod Version - -v1.0.0 - -### Change Mode - -**Assistive**: The automation partially completes changes. Human involvement is needed to make changes ready to be pushed and merged. - -### **Codemod Engine** - -[ts-morph](https://github.com/dsherret/ts-morph) - -### Estimated Time Saving - -5 minutes per occurrence -Maybe more... - -### Owner - -[The Author](https://github.com/author) - -### Links for more info - -- [Link1](https://example.com/) -- [Link2](https://example1.com/) -`; - -describe("parse/yaml", () => { - const parseResult = parse(DATA); - - it("should parse correctly", async () => { - deepEqual(parseResult, { - name: "Do the thing", - description: - "This is an amazing codemod which does `the thing`. Changes:\n\n\n### WARNING\n\nThis codemod does the thing\n" + - "Following the original msw [upgrade guide](https://mswjs.io/docs/migrations/1.x-to-2.x/#imports), " + - "there are certain imports that changed their location and/or naming. This codemod will adjust your imports to the new location and naming.\n" + - " - `setupWorker` is now imported from `msw/browser`\n" + - " - `rest` from `msw` is now named `http`\n" + - " - `RestHandler` from `msw` is now named `HttpHandler`", - examples: - "\n### `tsconfig.json`\n\n" + - "### Before\n\n" + - "```ts\n\n" + - "http.get('/resource', (req, res, ctx) => {\n" + - " return res(ctx.json({ firstName: 'John' }));\n" + - "});\n\n" + - "```\n\n" + - "### After\n\n" + - "```ts\n\n" + - "http.get('/resource', (req, res, ctx) => {\n" + - " return res(ctx.json({ firstName: 'John' }));\n" + - "});\n\n" + - "```\n\n" + - "### **engine.tsx**\n\n" + - "### Before\n\n" + - "```ts\n\n" + - "http.get('/resource', (req, res, ctx) => {\n" + - " return res(ctx.json({ firstName: 'John' }));\n" + - "});\n\n" + - "```\n\n" + - "### After\n\n" + - "```ts\n\n" + - "http.get('/resource', (req, res, ctx) => {\n" + - " return res(ctx.json({ firstName: 'John' }));\n" + - "});\n\n" + - "```", - applicability: "`MSW` >= 1.0.0", - version: "1.0.0", - changeMode: "assistive", - engine: "ts-morph", - timeSave: "5 minutes/occurrence\nMaybe more...", - owner: "The Author", - links: "https://example.com/,https://example1.com/", - }); - }); - - it("should output correct YAML", async () => { - beforeEach(() => { - vi.useFakeTimers(); - }); - - afterEach(() => { - vi.useRealTimers(); - }); - - // 5th Dec 2023 - const date = new Date(2023, 11, 5); - vi.setSystemTime(date); - - const yaml = convertToYaml( - parseResult, - "apps/registry/codemods/msw/2/imports/README.md", - ); - - const vscodeHashDigest = createHash("ripemd160") - .update("msw/2/imports") - .digest("base64url"); - - deepEqual( - yaml, - ` -created-on: ${date.toISOString()} -f_long-description: >- - ## Description - - - This is an amazing codemod which does \`the thing\`. Changes: - - - ### WARNING - - This codemod does the thing - Following the original msw [upgrade guide](https://mswjs.io/docs/migrations/1.x-to-2.x/#imports), there are certain imports that changed their location and/or naming. This codemod will adjust your imports to the new location and naming. - - \`setupWorker\` is now imported from \`msw/browser\` - - \`rest\` from \`msw\` is now named \`http\` - - \`RestHandler\` from \`msw\` is now named \`HttpHandler\` - - - - ### \`tsconfig.json\` - - ### Before - - \`\`\`ts - - http.get('/resource', (req, res, ctx) => { - return res(ctx.json({ firstName: 'John' })); - }); - - \`\`\` - - ### After - - \`\`\`ts - - http.get('/resource', (req, res, ctx) => { - return res(ctx.json({ firstName: 'John' })); - }); - - \`\`\` - - ### **engine.tsx** - - ### Before - - \`\`\`ts - - http.get('/resource', (req, res, ctx) => { - return res(ctx.json({ firstName: 'John' })); - }); - - \`\`\` - - ### After - - \`\`\`ts - - http.get('/resource', (req, res, ctx) => { - return res(ctx.json({ firstName: 'John' })); - }); - - \`\`\` -f_github-link: https://github.com/codemod-com/codemod/tree/main/apps/registry/codemods/msw/2/imports -f_vs-code-link: vscode://codemod.codemod-vscode-extension/showCodemod?chd=${vscodeHashDigest} -f_cli-command: codemod msw/2/imports -f_framework: cms/framework/msw.md -f_applicability-criteria: "\`MSW\` >= 1.0.0" -f_verified-codemod: false -f_author: cms/authors/the-author.md -layout: "[automations].html" -slug: msw-2-imports -title: Msw V2 - Do the thing -f_slug-name: msw-2-imports -f_codemod-engine: cms/codemod-engines/ts-morph.md -f_change-mode-2: Assistive -f_estimated-time-saving: >- - 5 minutes/occurrence - Maybe more... -tags: automations -updated-on: ${date.toISOString()} -published-on: ${date.toISOString()} -seo: - title: Msw V2 - Do the thing - description: This is an amazing codemod which does the thing - `.trim(), - ); - }); -}); diff --git a/apps/registry/readme-parser/parse.ts b/apps/registry/readme-parser/parse.ts deleted file mode 100644 index 1a23e2216..000000000 --- a/apps/registry/readme-parser/parse.ts +++ /dev/null @@ -1,477 +0,0 @@ -/* DO NOT LOG ANYTHING. IT WILL BE APPENDED TO THE TOP OF THE GENERATED STRING */ - -import { createHash } from "crypto"; -import { readFileSync } from "fs"; -import * as nodePath from "node:path"; -import type { Heading, PhrasingContent, RootContent } from "mdast"; -import { fromMarkdown } from "mdast-util-from-markdown"; -import { is, object, optional, string } from "valibot"; - -const configJsonSchema = object({ - schemaVersion: optional(string()), - name: optional(string()), - engine: string(), -}); - -const UNESCAPED = ["inlineCode", "link"]; - -const noFirstLetterLowerCase = (str: string) => - str.length ? str[0] + str.slice(1).toLowerCase() : str; - -const capitalize = (str: string) => - str[0] ? str[0].toUpperCase() + str.slice(1) : str; - -// TODO: -// const getStyledValue = (node) => {}; - -const getTextFromNode = ( - node: RootContent | PhrasingContent | null, - style = false, -): string | null => { - if (!node) { - return null; - } - - if ("value" in node) { - if (node.type === "inlineCode") { - return `\`${node.value}\``; - } - - return node.value; - } - - if ("children" in node) { - let textContent = ""; - for (const child of node.children) { - if (!style) { - textContent += getTextFromNode(child, style); - continue; - } - - if (node.type === "strong") { - textContent += `**${getTextFromNode(child, style)}**`; - } else { - textContent += getTextFromNode(child, style); - } - } - - return textContent; - } - - return null; -}; - -const getUrlFromNode = ( - node: RootContent | PhrasingContent | null, -): string | null => { - if (!node) { - return null; - } - - if ("url" in node) { - return node.url; - } - - if ("children" in node) { - return getUrlFromNode(node.children[0] ?? null); - } - - return null; -}; - -const getHeading = ( - rootContents: ReadonlyArray, - depth: 1 | 2 | 3, - name: string | null, -): Heading | null => { - for (const rootContent of rootContents) { - if (rootContent.type !== "heading") { - continue; - } - - if (name !== null) { - const headerTitle = getTextFromNode(rootContent); - - if ( - !headerTitle || - !noFirstLetterLowerCase(headerTitle).startsWith( - noFirstLetterLowerCase(name), - ) - ) { - continue; - } - } - - if (rootContent.depth === depth) { - return rootContent; - } - } - - return null; -}; - -const getTextByHeader = ( - rootContents: ReadonlyArray, - heading: Heading, - delimiter: string, -) => { - const headerIndex = rootContents.findIndex( - (rc) => rc.position?.start.line === heading.position?.start.line, - ); - const nextHeaderIndex = rootContents.findIndex( - (rc) => - rc.type === "heading" && - rc.position?.start.line && - heading.position?.start.line && - rc.position?.start.line > heading.position?.start.line && - rc.depth === heading.depth, - ); - - const contentParts = rootContents.slice( - headerIndex + 1, - nextHeaderIndex > -1 ? nextHeaderIndex : undefined, - ); - - const textParts: string[] = []; - - for (const rc of contentParts) { - if ("children" in rc) { - rc.children - .map((child, idx, arr) => { - const isDescription = - getTextFromNode(heading)?.includes("Description"); - - const isLinks = getTextFromNode(heading)?.includes("Links"); - - // Preserve ### on higher-depth headings - if ( - rc.type === "heading" && - rc.depth > heading.depth && - idx === 0 && - (child.type === "text" || - child.type === "inlineCode" || - child.type === "strong") - ) { - const conditionalDelimiter = delimiter.repeat( - isDescription ? 2 : 1, - ); - return `${conditionalDelimiter}${"#".repeat( - rc.depth, - )} ${getTextFromNode(child, true)}${conditionalDelimiter}`; - } - - if (child.type === "inlineCode") { - return `\`${child.value}\``; - } - - if (child.type === "text") { - const nextEl = arr[idx + 1]; - if (nextEl && UNESCAPED.includes(nextEl.type)) { - return child.value; - } - - return `${child.value}${delimiter}`; - } - - if (child.type === "listItem") { - if (isDescription) { - return ` - ${getTextFromNode( - child.children[0] ?? null, - true, - )}${delimiter}`; - } - - if (isLinks) { - return `${getUrlFromNode(child.children[0] ?? null)}${delimiter}`; - } - - return `${getTextFromNode(child.children[0] ?? null)}${delimiter}`; - } - - if (child.type === "link") { - if (isDescription) { - return `[${getTextFromNode( - child.children[0] ?? null, - true, - )}](${getUrlFromNode(child ?? null)})`; - } - - return getTextFromNode(child.children[0] ?? null, isDescription); - } - - if (child.type === "strong") { - return getTextFromNode(child.children[0] ?? null); - } - - // Do not add new line after certain blocks (treated as separate AST nodes) - if (UNESCAPED.includes(child.type)) { - return getTextFromNode(child); - } - - return null; - }) - .forEach((child) => { - if (child !== null) { - textParts.push(child); - } - }); - } - - if ("value" in rc) { - if (rc.type === "code") { - textParts.push(`\n\`\`\`${rc.lang}\n\n${rc.value}\n\n\`\`\`\n`); - } else { - textParts.push(`${rc.value}${delimiter}`); - } - } - } - - // Trim last el to remove delimiter - textParts[textParts.length - 1] = - textParts.at(-1)?.replace(new RegExp(`${delimiter}$`), "") ?? ""; - - return textParts.join(""); -}; - -export const parse = (data: string) => { - const { children } = fromMarkdown(data); - - const nameHeading = getHeading(children, 1, null); - const name = - nameHeading?.children[0] && "value" in nameHeading.children[0] - ? nameHeading.children[0].value - : null; - - if (!name) { - throw new Error("Name not found"); - } - - const descHeading = getHeading(children, 2, "Description"); - const description = descHeading - ? getTextByHeader(children, descHeading, "\n") - : null; - if (!description) { - throw new Error("Description not found"); - } - - const exampleHeading = getHeading(children, 2, "Example"); - const examples = exampleHeading - ? getTextByHeader(children, exampleHeading, "\n") - : null; - // if (!examples) { - // throw new Error('Examples not found'); - // } - - const applicabilityHeader = getHeading(children, 2, "Applicability"); - const applicability = applicabilityHeader - ? getTextByHeader(children, applicabilityHeader, "\n") - : null; - if (!applicability) { - throw new Error("Applicability criteria not found"); - } - // This should be enforced for future codemods. For now, validation should be disabled. - // if (!applicability.match(/[\w]+ (>|>=) \d+\.\d+\.\d+/)) { - // throw new Error('Applicability criteria is of a wrong format'); - // } - - const versionHeader = getHeading(children, 3, "Codemod Version"); - const version = versionHeader - ? getTextByHeader(children, versionHeader, "\n") - : null; - if (!version) { - throw new Error("Codemod version not found"); - } - const versionMatch = version.match(/(v)?(\d+\.\d+\.\d+)/)?.at(2); - - const changeModeHeader = getHeading(children, 3, "Change Mode"); - const changeModeText = changeModeHeader - ? getTextByHeader(children, changeModeHeader, "\n").toLowerCase() - : null; - if (!changeModeText) { - throw new Error("Change mode not found"); - } - let changeMode: string | null = null; - if (changeModeText.includes("assistive")) { - changeMode = "assistive"; - } else if (changeModeText.includes("autonomous")) { - changeMode = "autonomous"; - } - if (!changeMode) { - throw new Error("Change mode is of a wrong format"); - } - - const engineHeader = getHeading(children, 3, "Codemod Engine"); - const engineText = engineHeader - ? getTextByHeader(children, engineHeader, "\n") - : null; - if (!engineText) { - throw new Error("Codemod engine not found"); - } - let engine: string | null = null; - if (engineText.includes("ts-morph")) { - engine = "ts-morph"; - } else if (engineText.includes("jscodeshift")) { - engine = "jscodeshift"; - } else if (engineText.toLowerCase().includes("file")) { - engine = "filemod"; - } - if (!engine) { - throw new Error("Codemod engine is of a wrong format"); - } - - const timeSaveHeader = getHeading(children, 3, "Estimated Time Saving"); - const timeSave = timeSaveHeader - ? getTextByHeader(children, timeSaveHeader, "\n").replace(" per ", "/") - : null; - if (!timeSave) { - throw new Error("Estimated time saving not found"); - } - - const ownerHeader = getHeading(children, 3, "Owner"); - const owner = ownerHeader - ? getTextByHeader(children, ownerHeader, "\n") ?? "Codemod.com" - : null; - - const linksHeader = getHeading(children, 3, "Links"); - const links = linksHeader - ? getTextByHeader(children, linksHeader, ",") - : null; - - return { - name, - description, - examples, - applicability, - version: versionMatch, - changeMode, - engine, - timeSave, - owner, - links, - }; -}; - -export const convertToYaml = ( - data: ReturnType, - path?: string, -) => { - const { - name: title, - description, - examples, - applicability, - changeMode, - engine, - timeSave, - owner, - } = data; - - let slug: string | null = null; - let framework: string | null = null; - let frameworkVersion: string | null = null; - let cliCommand: string | null = null; - let cleanPath: string | null = null; - let codemodName: string | null = null; - if (path) { - const splitPath = path.split("/"); - cleanPath = splitPath.slice(0, -1).join("/"); - - const parts = __dirname.split("/"); - const pivot = parts.indexOf("apps"); - const pathToCodemod = nodePath.join( - parts.slice(0, pivot).join("/"), - cleanPath, - ); - - framework = splitPath.at(3) ?? null; - frameworkVersion = splitPath.at(4) ?? null; - - try { - const config = readFileSync(`${pathToCodemod}/config.json`).toString(); - const json = JSON.parse(config); - codemodName = json.name ?? cleanPath.split("/").slice(3).join("/"); - - if (is(configJsonSchema, json)) { - slug = codemodName!.replace(/\//g, "-"); - cliCommand = `codemod ${codemodName}`; - } - } catch (e) { - /* empty */ - } - } - - let vscodeHashDigest: string | null = null; - if (codemodName) { - vscodeHashDigest = createHash("ripemd160") - .update(codemodName) - .digest("base64url"); - } - - let titleWithVersion = title; - if (framework) { - if (frameworkVersion) { - if (frameworkVersion?.match(/^\d+(\.\d+)*$/)) { - titleWithVersion = `${framework} V${frameworkVersion} - ${title}`; - } else { - titleWithVersion = `${framework} to ${frameworkVersion} - ${title}`; - } - } else { - titleWithVersion = `${framework} - ${title}`; - } - } - titleWithVersion = capitalize(titleWithVersion); - - const shortDescription = description - .split("\n") - .at(0) - ?.split(".") - .at(0) - ?.replace("`", "") - .replace(/\W$/g, ""); - - const res = ` -created-on: ${new Date().toISOString()} -f_long-description: >- - ## Description - \n - ${description.replace(/\n/g, "\n ")} - ${examples ? `\n\n ${examples.replace(/\n/g, "\n ")}` : ""}${ - path - ? `\nf_github-link: https://github.com/codemod-com/codemod/tree/main/${cleanPath}` - : "" - }${ - vscodeHashDigest - ? `\nf_vs-code-link: vscode://codemod.codemod-vscode-extension/showCodemod?chd=${vscodeHashDigest}` - : "" - }${cliCommand ? `\nf_cli-command: ${cliCommand}` : ""}${ - framework ? `\nf_framework: cms/framework/${framework}.md` : "" - } -f_applicability-criteria: "${applicability}" -f_verified-codemod: ${owner === "Codemod.com" ? "true" : "false"}${ - owner - ? `\nf_author: ${ - owner === "Codemod.com" - ? "cms/authors/codemod-com.md" - : `cms/authors/${owner?.toLowerCase().replace(/ /g, "-") ?? ""}.md` - }` - : "" - } -layout: "[automations].html"${slug ? `\nslug: ${slug}` : ""} -title: ${capitalize(titleWithVersion)}${slug ? `\nf_slug-name: ${slug}` : ""} -f_codemod-engine: cms/codemod-engines/${engine}.md -f_change-mode-2: ${capitalize(changeMode)} -f_estimated-time-saving: ${ - timeSave.includes("\n") - ? `>-\n ${timeSave.replace(/\n/, "\n ")}` - : `"${timeSave}"` - } -tags: automations -updated-on: ${new Date().toISOString()} -published-on: ${new Date().toISOString()} -seo: - title: ${titleWithVersion} - description: ${shortDescription} -`.trim(); - - return res; -}; diff --git a/apps/registry/readme-parser/sync.ts b/apps/registry/readme-parser/sync.ts deleted file mode 100644 index 623cb2e4d..000000000 --- a/apps/registry/readme-parser/sync.ts +++ /dev/null @@ -1,245 +0,0 @@ -#!/usr/bin/env node -import { writeFile } from "fs/promises"; -import * as yaml from "js-yaml"; -import { simpleGit } from "simple-git"; -import { any, parse as valibotParse, record } from "valibot"; -import { convertToYaml, parse } from "./parse.js"; - -const findKeyLineRange = (yaml: string, key: string) => { - const splitYaml = yaml.split("\n"); - - let fieldStartLine: number | null = null; - let fieldEndLine: number | null = null; - let startFound = false; - - for (const [index, line] of splitYaml.entries()) { - if (startFound && /^[A-Za-z0-9_-]+:\s/.test(line)) { - fieldEndLine = index; - break; - } - - if (new RegExp(`^${key}:\\s`).test(line)) { - fieldStartLine = index; - startFound = true; - } - } - - if (fieldStartLine === null) { - return null; - } - - if (fieldEndLine === null) { - fieldEndLine = splitYaml.length - 1; - } - - return [fieldStartLine, fieldEndLine] as const; -}; - -export const sync = async () => { - const git = simpleGit(); - - await git.addRemote("website", "https://github.com/codemod-com/website.git"); - await git.addConfig("user.email", "auto@codemod.com", false, "local"); - await git.addConfig("user.name", "codemod.com", false, "local"); - - await git.fetch(["website", "main"]); - await git.fetch(["origin", "main", "--depth=2"]); - - const diff = await git.diff(["--name-only", "origin/main~1"]); - const readmesChanged = diff - .split("\n") - .filter((path) => path.match(/.*\/codemods\/.*README\.md$/)); - - if (!readmesChanged.length) { - console.log("No READMEs changed. Exiting."); - process.exit(0); - } - - const staged: Record = {}; - for (const path of readmesChanged) { - console.log(`Syncing ${path}`); - const [migratingFrom, migratingTo, ...rest] = path.split("/").slice(3, -1); - - let generatedSlug = migratingFrom; - - if (migratingTo) { - const joint = migratingTo.match(/^\d+(\.\d+)*$/) ? "-" : "-to-"; - const leftoverParts = rest.length ? `-${rest.join("-")}` : ""; - - generatedSlug = `${migratingFrom}${joint}${migratingTo}${leftoverParts}`; - } - - const websitePath = `cms/automations/${generatedSlug}.md`; - - let websiteFile: string | null; - let oldFile: string | null; - let newFile: string | null; - try { - websiteFile = await git.catFile(["-p", `website/main:${websitePath}`]); - } catch (err) { - websiteFile = null; - } - - try { - oldFile = await git.catFile(["-p", `origin/main~1:${path}`]); - } catch (err) { - oldFile = null; - } - - try { - newFile = await git.catFile(["-p", `origin/main:${path}`]); - } catch (err) { - newFile = null; - } - - if (!newFile) { - console.error(`File was deleted in HEAD: ${path}`); - continue; - } - - let parsedNewFile: ReturnType; - try { - parsedNewFile = parse(newFile); - } catch (err) { - console.error(`Could not parse new README file under ${path}`); - continue; - } - const newFileShortDescription = parsedNewFile.description.split("\n").at(0); - const newReadmeYamlContent = convertToYaml(parsedNewFile, path); - - // If !websiteFile, we just add the file - // If websiteFile is present, but oldFile is not, this means that - // the website somehow had that file prior to codemod being added to the registry, - // which technically should not be possible. - // In that case we just update the entire file with the new one anyways. - if (!websiteFile || !oldFile) { - staged[websitePath] = - `---\n${newReadmeYamlContent}\n---\n${newFileShortDescription}`; - continue; - } - - // Otherwise: - // 1. Perform a diff between old file and new file, decide what do we need to filter - // 2. Iterate over filtered fields that have changed between commits - // 3. If the field's version from old readme is different from website, we remove it from update list - // 4. Otherwise, proceed and add update the fields in the object, based on website version - // 5. Commit the file - - const websiteContentSplit = websiteFile.split("---", 3); - - const websiteYamlContent = websiteContentSplit.at(1)?.trim(); - - if (!websiteYamlContent) { - console.error(`Could not parse website file ${websitePath}`); - process.exit(1); - } - - // Here, we are actually doing double-convert, json->yaml->json, but it's meant to be that way. - // Our content's source of truth is yaml from the beginning, plus it has a lot of multi-line strings, - // which would be a pain to handle in json. We are converting to json, just to be able to operate - // the fields just like any other JS object, to perform the comparison. - // Not using valibot's safeParse, because we can just error if that's not an object and we don't care - // about the fields to be of a specific type. - let oldFileParsedYaml: unknown; - try { - oldFileParsedYaml = yaml.load(convertToYaml(parse(oldFile), path)); - } catch (err) { - console.error(`Could not parse old README file under ${path}`); - continue; - } - const oldContent = valibotParse(record(any()), oldFileParsedYaml); - const newContent = valibotParse( - record(any()), - yaml.load(newReadmeYamlContent), - ); - const websiteContent = valibotParse( - record(any()), - yaml.load(websiteYamlContent), - ); - - const changedKeys: string[] = []; - for (const key of Object.keys(newContent)) { - // Field did not change - if (oldContent[key] === newContent[key]) { - continue; - } - - // Field was changed in the CMS, no update - if (oldContent[key] !== websiteContent[key]) { - continue; - } - - // Field is already the same as in the new README version - if (newContent[key] === websiteContent[key]) { - continue; - } - - changedKeys.push(key); - } - - if (!changedKeys.length) { - console.log(`Nothing to update in path ${path}`); - continue; - } - - // Also update the updated-on field - changedKeys.push("updated-on"); - // Yaml to be updated on each iteration serving as a target to make replacements in - let updatedYaml = websiteYamlContent; - const newFileLines = newReadmeYamlContent.split("\n"); - - for (const key of changedKeys) { - const websiteRange = findKeyLineRange(updatedYaml, key); - if (!websiteRange) { - console.error(`Could not find ${key} in website file ${websitePath}`); - process.exit(1); - } - - const newFileRange = findKeyLineRange(newReadmeYamlContent, key); - if (!newFileRange) { - console.error(`Could not find ${key} in new file ${path}`); - process.exit(1); - } - - const [websiteStartIndex, websiteEndIndex] = websiteRange; - const [newFileStartIndex, newFileEndIndex] = newFileRange; - - // Use the latest version of yaml that's being updated - const websiteLines = updatedYaml.split("\n"); - - updatedYaml = [ - ...websiteLines.slice(0, websiteStartIndex), - ...newFileLines.slice(newFileStartIndex, newFileEndIndex), - ...websiteLines.slice(websiteEndIndex), - ].join("\n"); - } - - const websiteLeftoverDescription = websiteContentSplit.at(2)?.trim(); - updatedYaml = `---\n${updatedYaml}\n---\n${ - websiteLeftoverDescription ?? newFileShortDescription - }`; - - staged[websitePath] = updatedYaml; - } - - if (Object.keys(staged).length === 0) { - console.log("No commits were created. Skipping push..."); - process.exit(0); - } - - await git.checkout(["-b", "update-codemods", "website/main"]); - - for (const [websitePath, newContent] of Object.entries(staged)) { - await writeFile(websitePath, newContent); - await git.add(websitePath); - await git.commit(`Syncs ${websitePath} from codemod-registry`); - console.log(`Created commit for ${websitePath}`); - } - - await git.push("website", "HEAD:main"); - console.log("Successfully pushed to website repo"); - - process.exit(0); -}; - -sync(); diff --git a/apps/registry/readme-parser/tsconfig.json b/apps/registry/readme-parser/tsconfig.json deleted file mode 100644 index a1387cd2b..000000000 --- a/apps/registry/readme-parser/tsconfig.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "@codemod-com/tsconfig/base.json", - "include": ["./*.ts", "parse.test.ts"], - "compilerOptions": { - "noUncheckedIndexedAccess": true - } -} diff --git a/apps/studio/src/utils/download.ts b/apps/studio/src/utils/download.ts index 54544c2d9..236c6b5a9 100644 --- a/apps/studio/src/utils/download.ts +++ b/apps/studio/src/utils/download.ts @@ -18,7 +18,7 @@ interface ProjectDownloadInput { const beautify = (input: string, options?: Parameters[1]) => js(input, { brace_style: "preserve-inline", indent_size: 2, ...options }); -const readme = ({ +const description = ({ name, before, after, @@ -230,7 +230,7 @@ const packageJson = ({ }, "license": "MIT", "files": [ - "README.md", + "DESCRIPTION.md", "config.json", "./dist/index.cjs", "./index.d.ts" @@ -482,7 +482,7 @@ export const downloadProject = async (input: ProjectDownloadInput) => { `/*! @license\n${licenseContent}\n*/\n${compiled}`, ); - zip.file("README.md", readme(input)); + zip.file("DESCRIPTION.md", description(input)); zip.file("build.ts", buildScript()); zip.file("vitest.config.ts", vitestConfig()); From 19f51eb8ebde66025f7b803d765adcfe087ca736 Mon Sep 17 00:00:00 2001 From: Sasha Date: Tue, 5 Mar 2024 13:10:54 +0100 Subject: [PATCH 03/11] fix: improve use-context-hook codemod (#123) --- .../react/19/use-context-hook/src/index.ts | 59 +++++++++++++++++-- .../react/19/use-context-hook/test/test.ts | 21 +++++++ 2 files changed, 75 insertions(+), 5 deletions(-) diff --git a/apps/registry/codemods/react/19/use-context-hook/src/index.ts b/apps/registry/codemods/react/19/use-context-hook/src/index.ts index ef632d69a..fcf38f827 100644 --- a/apps/registry/codemods/react/19/use-context-hook/src/index.ts +++ b/apps/registry/codemods/react/19/use-context-hook/src/index.ts @@ -8,13 +8,62 @@ export default function transform( const j = api.jscodeshift; const root = j(file.source); - root.find(j.Identifier, { name: "useContext" }).forEach((path) => { - if (path.node.type === "Identifier") { + // Get default import from react + const defaultReactImport = + root + .find(j.ImportDeclaration, { + source: { value: "react" }, + specifiers: [{ type: "ImportDefaultSpecifier" }], + }) + .paths() + .at(0) + ?.node.specifiers?.at(0)?.local?.name ?? "React"; + + // For usages like `import React from 'react'; React.useContext(ThemeContext)` + root + .find(j.MemberExpression, { + object: { name: defaultReactImport }, + property: { name: "useContext" }, + }) + .forEach((path) => { + const identifierPath = j(path) + .find(j.Identifier, { name: "useContext" }) + .paths() + .at(0); + const newIdentifier = j.identifier.from({ name: "use" }); - path.replace(newIdentifier); - } - }); + identifierPath?.replace(newIdentifier); + }); + + // Get useContext import name + const useContextImport = root + .find(j.ImportDeclaration, { + source: { value: "react" }, + specifiers: [ + { type: "ImportSpecifier", imported: { name: "useContext" } }, + ], + }) + .paths() + .at(0) + ?.node.specifiers?.at(0)?.local?.name; + + if (useContextImport) { + // For usages like `import { useContext } from 'react'; useContext(ThemeContext)` + root.find(j.Identifier, { name: useContextImport }).forEach((path) => { + // If parent is a member expression, we don't want that change, we handle React.useContext separately + if (path.parentPath.node.type === "MemberExpression") { + return; + } + + // In all other cases, replace usages of imported useContext with use + if (path.node.type === "Identifier") { + const newIdentifier = j.identifier.from({ name: "use" }); + + path.replace(newIdentifier); + } + }); + } return root.toSource(); } diff --git a/apps/registry/codemods/react/19/use-context-hook/test/test.ts b/apps/registry/codemods/react/19/use-context-hook/test/test.ts index db67d25d8..719a42eea 100644 --- a/apps/registry/codemods/react/19/use-context-hook/test/test.ts +++ b/apps/registry/codemods/react/19/use-context-hook/test/test.ts @@ -61,4 +61,25 @@ describe("useContext -> use", () => { assert.deepEqual(actualOutput, output); }); + + it("should not replace any.useContext() with use", async () => { + const input = ` + const theme = trpc.useContext(); + `; + + const output = ` + const theme = trpc.useContext(); + `; + + const fileInfo: FileInfo = { + path: "index.js", + source: input, + }; + + const actualOutput = transform(fileInfo, buildApi("js"), { + quote: "single", + }); + + assert.deepEqual(actualOutput, output); + }); }); From a3a92d5863d1b038ec13f2ce3307f9e6c2da5c36 Mon Sep 17 00:00:00 2001 From: Sasha Date: Tue, 5 Mar 2024 13:41:56 +0100 Subject: [PATCH 04/11] fix: move config files (#124) --- .../{.codemod/config.json => .codemodrc.json} | 0 .../{.codemod/DESCRIPTION.md => README.md} | 0 .../{config.json => .codemodrc.json} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../delete-unused-fields/{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../{.codemod/DESCRIPTION.md => README.md} | 0 .../remove-style-import/{.codemod/config.json => .codemodrc.json} | 0 .../5/remove-style-import/{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../{.codemod/DESCRIPTION.md => README.md} | 0 .../bull/bullmq/{.codemod/config.json => .codemodrc.json} | 0 .../codemods/bull/bullmq/{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../generate-url-patterns/{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../{.codemod/DESCRIPTION.md => README.md} | 0 .../5/array-wrapper/{.codemod/config.json => .codemodrc.json} | 0 .../ember/5/array-wrapper/{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../{.codemod/DESCRIPTION.md => README.md} | 0 .../5/cp-property-map/{.codemod/config.json => .codemodrc.json} | 0 .../5/cp-property-map/{.codemod/DESCRIPTION.md => README.md} | 0 .../ember/5/cp-property/{.codemod/config.json => .codemodrc.json} | 0 .../ember/5/cp-property/{.codemod/DESCRIPTION.md => README.md} | 0 .../ember/5/cp-volatile/{.codemod/config.json => .codemodrc.json} | 0 .../ember/5/cp-volatile/{.codemod/DESCRIPTION.md => README.md} | 0 .../5/deprecate-merge/{.codemod/config.json => .codemodrc.json} | 0 .../5/deprecate-merge/{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../{.codemod/DESCRIPTION.md => README.md} | 0 .../ember-jquery-legacy/{.codemod/config.json => .codemodrc.json} | 0 .../5/ember-jquery-legacy/{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../{.codemod/DESCRIPTION.md => README.md} | 0 .../5/fpe-computed/{.codemod/config.json => .codemodrc.json} | 0 .../ember/5/fpe-computed/{.codemod/DESCRIPTION.md => README.md} | 0 .../5/fpe-observes/{.codemod/config.json => .codemodrc.json} | 0 .../ember/5/fpe-observes/{.codemod/DESCRIPTION.md => README.md} | 0 .../ember/5/fpe-on/{.codemod/config.json => .codemodrc.json} | 0 .../ember/5/fpe-on/{.codemod/DESCRIPTION.md => README.md} | 0 .../ember/5/jquery-apis/{.codemod/config.json => .codemodrc.json} | 0 .../ember/5/jquery-apis/{.codemod/DESCRIPTION.md => README.md} | 0 .../5/jquery-event/{.codemod/config.json => .codemodrc.json} | 0 .../ember/5/jquery-event/{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../notify-property-change/{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../object-new-constructor/{.codemod/DESCRIPTION.md => README.md} | 0 .../biome/migrate-rules/{.codemod/config.json => .codemodrc.json} | 0 .../biome/migrate-rules/{.codemod/DESCRIPTION.md => README.md} | 0 .../codemods/i18n/{.codemod/config.json => .codemodrc.json} | 0 .../registry/codemods/i18n/{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../{.codemod/DESCRIPTION.md => README.md} | 0 .../0/nest-from-js/{.codemod/config.json => .codemodrc.json} | 0 .../0/nest-from-js/{.codemod/DESCRIPTION.md => README.md} | 0 .../0/remove-from-js/{.codemod/config.json => .codemodrc.json} | 0 .../0/remove-from-js/{.codemod/DESCRIPTION.md => README.md} | 0 .../0/remove-import/{.codemod/config.json => .codemodrc.json} | 0 .../0/remove-import/{.codemod/DESCRIPTION.md => README.md} | 0 .../0/remove-to-js/{.codemod/config.json => .codemodrc.json} | 0 .../0/remove-to-js/{.codemod/DESCRIPTION.md => README.md} | 0 .../0/replace-get-in/{.codemod/config.json => .codemodrc.json} | 0 .../0/replace-get-in/{.codemod/DESCRIPTION.md => README.md} | 0 .../0/replace-get/{.codemod/config.json => .codemodrc.json} | 0 .../0/replace-get/{.codemod/DESCRIPTION.md => README.md} | 0 .../0/replace-merge/{.codemod/config.json => .codemodrc.json} | 0 .../0/replace-merge/{.codemod/DESCRIPTION.md => README.md} | 0 .../0/replace-set-in/{.codemod/config.json => .codemodrc.json} | 0 .../0/replace-set-in/{.codemod/DESCRIPTION.md => README.md} | 0 .../0/replace-set/{.codemod/config.json => .codemodrc.json} | 0 .../0/replace-set/{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../{.codemod/DESCRIPTION.md => README.md} | 0 .../4/map-to-array/{.codemod/config.json => .codemodrc.json} | 0 .../4/map-to-array/{.codemod/DESCRIPTION.md => README.md} | 0 .../4/rename-to-seq/{.codemod/config.json => .codemodrc.json} | 0 .../4/rename-to-seq/{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../{.codemod/DESCRIPTION.md => README.md} | 0 .../jest/vitest/{.codemod/config.json => .codemodrc.json} | 0 .../codemods/jest/vitest/{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../migrate-configuration/{.codemod/DESCRIPTION.md => README.md} | 0 .../migrate-tests/{.codemod/config.json => .codemodrc.json} | 0 .../vitest/migrate-tests/{.codemod/DESCRIPTION.md => README.md} | 0 .../mocha/vitest/recipe/{.codemod/config.json => .codemodrc.json} | 0 .../mocha/vitest/recipe/{.codemod/DESCRIPTION.md => README.md} | 0 .../callback-signature/{.codemod/config.json => .codemodrc.json} | 0 .../2/callback-signature/{.codemod/DESCRIPTION.md => README.md} | 0 .../msw/2/ctx-fetch/{.codemod/config.json => .codemodrc.json} | 0 .../msw/2/ctx-fetch/{.codemod/DESCRIPTION.md => README.md} | 0 .../msw/2/imports/{.codemod/config.json => .codemodrc.json} | 0 .../codemods/msw/2/imports/{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../{.codemod/DESCRIPTION.md => README.md} | 0 .../msw/2/print-handler/{.codemod/config.json => .codemodrc.json} | 0 .../msw/2/print-handler/{.codemod/DESCRIPTION.md => README.md} | 0 .../2/req-passthrough/{.codemod/config.json => .codemodrc.json} | 0 .../msw/2/req-passthrough/{.codemod/DESCRIPTION.md => README.md} | 0 .../2/request-changes/{.codemod/config.json => .codemodrc.json} | 0 .../msw/2/request-changes/{.codemod/DESCRIPTION.md => README.md} | 0 .../2/response-usages/{.codemod/config.json => .codemodrc.json} | 0 .../msw/2/response-usages/{.codemod/DESCRIPTION.md => README.md} | 0 .../msw/2/type-args/{.codemod/config.json => .codemodrc.json} | 0 .../msw/2/type-args/{.codemod/DESCRIPTION.md => README.md} | 0 .../2/upgrade-recipe/{.codemod/config.json => .codemodrc.json} | 0 .../msw/2/upgrade-recipe/{.codemod/DESCRIPTION.md => README.md} | 0 .../core-styles-import/{.codemod/config.json => .codemodrc.json} | 0 .../5/core-styles-import/{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../addBuildEventContext/{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../addBuildEventHandler/{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../{.codemod/DESCRIPTION.md => README.md} | 0 .../0.8.1/exportZod/{.codemod/config.json => .codemodrc.json} | 0 .../0.8.1/exportZod/{.codemod/DESCRIPTION.md => README.md} | 0 .../0.8.4/addApiHandler/{.codemod/config.json => .codemodrc.json} | 0 .../0.8.4/addApiHandler/{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../createOrUpdateVariable/{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../{.codemod/DESCRIPTION.md => README.md} | 0 .../copy-keys/{.codemod/config.json => .codemodrc.json} | 0 .../next-i18next/copy-keys/{.codemod/DESCRIPTION.md => README.md} | 0 .../next/13/ab-test/{.codemod/config.json => .codemodrc.json} | 0 .../next/13/ab-test/{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../{.codemod/DESCRIPTION.md => README.md} | 0 .../app-router-recipe/{.codemod/config.json => .codemodrc.json} | 0 .../13/app-router-recipe/{.codemod/DESCRIPTION.md => README.md} | 0 .../built-in-next-font/{.codemod/config.json => .codemodrc.json} | 0 .../13/built-in-next-font/{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../move-css-in-js-styles/{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../new-image-experimental/{.codemod/DESCRIPTION.md => README.md} | 0 .../next/13/new-link/{.codemod/config.json => .codemodrc.json} | 0 .../next/13/new-link/{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../{.codemod/DESCRIPTION.md => README.md} | 0 .../remove-next-export/{.codemod/config.json => .codemodrc.json} | 0 .../13/remove-next-export/{.codemod/DESCRIPTION.md => README.md} | 0 .../replace-api-routes/{.codemod/config.json => .codemodrc.json} | 0 .../13/replace-api-routes/{.codemod/DESCRIPTION.md => README.md} | 0 .../replace-next-head/{.codemod/config.json => .codemodrc.json} | 0 .../13/replace-next-head/{.codemod/DESCRIPTION.md => README.md} | 0 .../replace-next-router/{.codemod/config.json => .codemodrc.json} | 0 .../13/replace-next-router/{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../{.codemod/DESCRIPTION.md => README.md} | 0 .../14/next-og-import/{.codemod/config.json => .codemodrc.json} | 0 .../next/14/next-og-import/{.codemod/DESCRIPTION.md => README.md} | 0 .../0/add-state-type/{.codemod/config.json => .codemodrc.json} | 0 .../0/add-state-type/{.codemod/DESCRIPTION.md => README.md} | 0 .../4/add-exact-prop/{.codemod/config.json => .codemodrc.json} | 0 .../4/add-exact-prop/{.codemod/DESCRIPTION.md => README.md} | 0 .../create-hash-history/{.codemod/config.json => .codemodrc.json} | 0 .../4/create-hash-history/{.codemod/DESCRIPTION.md => README.md} | 0 .../4/hash-router/{.codemod/config.json => .codemodrc.json} | 0 .../4/hash-router/{.codemod/DESCRIPTION.md => README.md} | 0 .../4/index-route/{.codemod/config.json => .codemodrc.json} | 0 .../4/index-route/{.codemod/DESCRIPTION.md => README.md} | 0 .../4/remove-with-props/{.codemod/config.json => .codemodrc.json} | 0 .../4/remove-with-props/{.codemod/DESCRIPTION.md => README.md} | 0 .../4/rename-imports/{.codemod/config.json => .codemodrc.json} | 0 .../4/rename-imports/{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../replace-location-query/{.codemod/DESCRIPTION.md => README.md} | 0 .../replace-param-prop/{.codemod/config.json => .codemodrc.json} | 0 .../4/replace-param-prop/{.codemod/DESCRIPTION.md => README.md} | 0 .../4/wrap-with-switch/{.codemod/config.json => .codemodrc.json} | 0 .../4/wrap-with-switch/{.codemod/DESCRIPTION.md => README.md} | 0 .../6/compat-route/{.codemod/config.json => .codemodrc.json} | 0 .../6/compat-route/{.codemod/DESCRIPTION.md => README.md} | 0 .../6/compat-router/{.codemod/config.json => .codemodrc.json} | 0 .../6/compat-router/{.codemod/DESCRIPTION.md => README.md} | 0 .../6/link-to-props/{.codemod/config.json => .codemodrc.json} | 0 .../6/link-to-props/{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../6/match-path-arguments/{.codemod/DESCRIPTION.md => README.md} | 0 .../6/navlink-exact-end/{.codemod/config.json => .codemodrc.json} | 0 .../6/navlink-exact-end/{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../6/redirect-to-navigate/{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../{.codemod/DESCRIPTION.md => README.md} | 0 .../remove-active-style/{.codemod/config.json => .codemodrc.json} | 0 .../6/remove-active-style/{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../6/remove-compat-router/{.codemod/DESCRIPTION.md => README.md} | 0 .../6/remove-go-hooks/{.codemod/config.json => .codemodrc.json} | 0 .../6/remove-go-hooks/{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../rename-compat-imports/{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../static-router-imports/{.codemod/DESCRIPTION.md => README.md} | 0 .../6/use-location/{.codemod/config.json => .codemodrc.json} | 0 .../6/use-location/{.codemod/DESCRIPTION.md => README.md} | 0 .../6/use-navigate/{.codemod/config.json => .codemodrc.json} | 0 .../6/use-navigate/{.codemod/DESCRIPTION.md => README.md} | 0 .../6/use-params/{.codemod/config.json => .codemodrc.json} | 0 .../6/use-params/{.codemod/DESCRIPTION.md => README.md} | 0 .../6/use-route-match/{.codemod/config.json => .codemodrc.json} | 0 .../6/use-route-match/{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../{.codemod/DESCRIPTION.md => README.md} | 0 .../remove-forward-ref/{.codemod/config.json => .codemodrc.json} | 0 .../19/remove-forward-ref/{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../{.codemod/DESCRIPTION.md => README.md} | 0 .../19/use-context-hook/{.codemod/config.json => .codemodrc.json} | 0 .../19/use-context-hook/{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../prop-types-typescript/{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../{.codemod/DESCRIPTION.md => README.md} | 0 .../core/4/auth-decoder/{.codemod/config.json => .codemodrc.json} | 0 .../core/4/auth-decoder/{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../{.codemod/DESCRIPTION.md => README.md} | 0 .../4/router-use-auth/{.codemod/config.json => .codemodrc.json} | 0 .../core/4/router-use-auth/{.codemod/DESCRIPTION.md => README.md} | 0 .../core/4/use-armor/{.codemod/config.json => .codemodrc.json} | 0 .../core/4/use-armor/{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../remove-public-modifier/{.codemod/DESCRIPTION.md => README.md} | 0 .../{.codemod/config.json => .codemodrc.json} | 0 .../use-template-literals/{.codemod/DESCRIPTION.md => README.md} | 0 265 files changed, 0 insertions(+), 0 deletions(-) rename apps/registry/codemods/Feature Flags/remove-unused-feature-flags/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/Feature Flags/remove-unused-feature-flags/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/Go/remove-unnecessary-nested-block/{config.json => .codemodrc.json} (100%) rename apps/registry/codemods/Java/delete-unused-fields/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/Java/delete-unused-fields/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/antd/5/props-changed-migration/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/antd/5/props-changed-migration/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/antd/5/remove-style-import/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/antd/5/remove-style-import/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/antd/5/removed-component-migration/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/antd/5/removed-component-migration/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/antd/5/removed-static-method-migration/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/antd/5/removed-static-method-migration/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/bull/bullmq/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/bull/bullmq/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/cal.com/app-directory-boilerplate-calcom/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/cal.com/app-directory-boilerplate-calcom/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/cal.com/generate-metadata-tests-calcom/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/cal.com/generate-metadata-tests-calcom/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/cal.com/generate-url-patterns/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/cal.com/generate-url-patterns/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/ember/5/app-controller-router-props/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/ember/5/app-controller-router-props/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/ember/5/array-wrapper/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/ember/5/array-wrapper/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/ember/5/convert-module-for-to-setup-test/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/ember/5/convert-module-for-to-setup-test/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/ember/5/cp-property-map/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/ember/5/cp-property-map/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/ember/5/cp-property/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/ember/5/cp-property/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/ember/5/cp-volatile/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/ember/5/cp-volatile/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/ember/5/deprecate-merge/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/ember/5/deprecate-merge/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/ember/5/deprecate-router-events/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/ember/5/deprecate-router-events/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/ember/5/ember-jquery-legacy/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/ember/5/ember-jquery-legacy/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/ember/5/es5-getter-ember-codemod/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/ember/5/es5-getter-ember-codemod/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/ember/5/fpe-computed/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/ember/5/fpe-computed/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/ember/5/fpe-observes/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/ember/5/fpe-observes/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/ember/5/fpe-on/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/ember/5/fpe-on/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/ember/5/jquery-apis/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/ember/5/jquery-apis/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/ember/5/jquery-event/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/ember/5/jquery-event/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/ember/5/notify-property-change/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/ember/5/notify-property-change/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/ember/5/object-new-constructor/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/ember/5/object-new-constructor/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/eslint/biome/migrate-rules/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/eslint/biome/migrate-rules/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/i18n/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/i18n/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/immutable/0/add-deprecation-comment/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/immutable/0/add-deprecation-comment/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/immutable/0/nest-from-js/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/immutable/0/nest-from-js/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/immutable/0/remove-from-js/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/immutable/0/remove-from-js/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/immutable/0/remove-import/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/immutable/0/remove-import/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/immutable/0/remove-to-js/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/immutable/0/remove-to-js/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/immutable/0/replace-get-in/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/immutable/0/replace-get-in/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/immutable/0/replace-get/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/immutable/0/replace-get/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/immutable/0/replace-merge/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/immutable/0/replace-merge/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/immutable/0/replace-set-in/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/immutable/0/replace-set-in/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/immutable/0/replace-set/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/immutable/0/replace-set/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/immutable/4/isterable-to-iscollection/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/immutable/4/isterable-to-iscollection/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/immutable/4/map-to-array/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/immutable/4/map-to-array/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/immutable/4/rename-to-seq/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/immutable/4/rename-to-seq/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/intuita/migrate-codemod-registry/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/intuita/migrate-codemod-registry/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/jest/vitest/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/jest/vitest/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/mocha/vitest/migrate-configuration/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/mocha/vitest/migrate-configuration/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/mocha/vitest/migrate-tests/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/mocha/vitest/migrate-tests/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/mocha/vitest/recipe/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/mocha/vitest/recipe/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/msw/2/callback-signature/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/msw/2/callback-signature/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/msw/2/ctx-fetch/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/msw/2/ctx-fetch/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/msw/2/imports/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/msw/2/imports/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/msw/2/lifecycle-events-signature/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/msw/2/lifecycle-events-signature/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/msw/2/print-handler/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/msw/2/print-handler/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/msw/2/req-passthrough/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/msw/2/req-passthrough/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/msw/2/request-changes/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/msw/2/request-changes/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/msw/2/response-usages/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/msw/2/response-usages/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/msw/2/type-args/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/msw/2/type-args/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/msw/2/upgrade-recipe/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/msw/2/upgrade-recipe/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/mui/5/core-styles-import/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/mui/5/core-styles-import/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventContext/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventContext/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventHandler/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventHandler/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/netlify-sdk/0.8.1/disableBuildEventHandlers/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/netlify-sdk/0.8.1/disableBuildEventHandlers/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/netlify-sdk/0.8.1/enableBuildEventHandlers/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/netlify-sdk/0.8.1/enableBuildEventHandlers/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/netlify-sdk/0.8.1/exportZod/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/netlify-sdk/0.8.1/exportZod/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/netlify-sdk/0.8.4/addApiHandler/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/netlify-sdk/0.8.4/addApiHandler/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/netlify-sdk/0.8.5/createEnvironmentVariable/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/netlify-sdk/0.8.5/createEnvironmentVariable/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariable/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariable/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariables/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariables/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariable/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariable/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariables/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariables/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/netlify-sdk/0.8.5/getEnvironmentVariables/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/netlify-sdk/0.8.5/getEnvironmentVariables/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/netlify-sdk/0.8.5/netlify-sdk-0.8.5-recipe/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/netlify-sdk/0.8.5/netlify-sdk-0.8.5-recipe/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/netlify-sdk/0.8.5/patchEnvironmentVariable/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/netlify-sdk/0.8.5/patchEnvironmentVariable/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/netlify-sdk/0.8.5/updateEnvironmentVariable/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/netlify-sdk/0.8.5/updateEnvironmentVariable/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/next-i18next/copy-keys/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/next-i18next/copy-keys/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/next/13/ab-test/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/next/13/ab-test/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/next/13/app-directory-boilerplate/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/next/13/app-directory-boilerplate/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/next/13/app-router-recipe/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/next/13/app-router-recipe/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/next/13/built-in-next-font/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/next/13/built-in-next-font/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/next/13/comment-deletable-files/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/next/13/comment-deletable-files/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/next/13/move-css-in-js-styles/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/next/13/move-css-in-js-styles/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/next/13/new-image-experimental/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/next/13/new-image-experimental/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/next/13/new-link/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/next/13/new-link/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/next/13/next-image-to-legacy-image/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/next/13/next-image-to-legacy-image/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/next/13/remove-get-static-props/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/next/13/remove-get-static-props/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/next/13/remove-next-export/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/next/13/remove-next-export/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/next/13/replace-api-routes/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/next/13/replace-api-routes/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/next/13/replace-next-head/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/next/13/replace-next-head/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/next/13/replace-next-router/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/next/13/replace-next-router/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/next/13/replace-use-search-params/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/next/13/replace-use-search-params/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/next/13/upsert-use-client-directive/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/next/13/upsert-use-client-directive/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/next/14/metadata-to-viewport-export/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/next/14/metadata-to-viewport-export/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/next/14/next-og-import/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/next/14/next-og-import/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/react-redux/0/add-state-type/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/react-redux/0/add-state-type/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/react-router/4/add-exact-prop/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/react-router/4/add-exact-prop/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/react-router/4/create-hash-history/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/react-router/4/create-hash-history/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/react-router/4/hash-router/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/react-router/4/hash-router/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/react-router/4/index-route/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/react-router/4/index-route/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/react-router/4/remove-with-props/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/react-router/4/remove-with-props/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/react-router/4/rename-imports/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/react-router/4/rename-imports/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/react-router/4/replace-location-query/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/react-router/4/replace-location-query/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/react-router/4/replace-param-prop/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/react-router/4/replace-param-prop/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/react-router/4/wrap-with-switch/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/react-router/4/wrap-with-switch/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/react-router/6/compat-route/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/react-router/6/compat-route/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/react-router/6/compat-router/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/react-router/6/compat-router/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/react-router/6/link-to-props/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/react-router/6/link-to-props/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/react-router/6/match-path-arguments/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/react-router/6/match-path-arguments/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/react-router/6/navlink-exact-end/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/react-router/6/navlink-exact-end/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/react-router/6/redirect-to-navigate/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/react-router/6/redirect-to-navigate/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/react-router/6/remove-active-classname/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/react-router/6/remove-active-classname/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/react-router/6/remove-active-style/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/react-router/6/remove-active-style/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/react-router/6/remove-compat-router/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/react-router/6/remove-compat-router/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/react-router/6/remove-go-hooks/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/react-router/6/remove-go-hooks/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/react-router/6/remove-redirect-inside-switch/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/react-router/6/remove-redirect-inside-switch/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/react-router/6/rename-compat-imports/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/react-router/6/rename-compat-imports/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/react-router/6/static-router-imports/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/react-router/6/static-router-imports/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/react-router/6/use-location/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/react-router/6/use-location/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/react-router/6/use-navigate/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/react-router/6/use-navigate/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/react-router/6/use-params/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/react-router/6/use-params/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/react-router/6/use-route-match/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/react-router/6/use-route-match/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/react/19/remove-context-provider/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/react/19/remove-context-provider/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/react/19/remove-forward-ref/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/react/19/remove-forward-ref/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/react/19/remove-memoization-hooks/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/react/19/remove-memoization-hooks/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/react/19/use-context-hook/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/react/19/use-context-hook/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/react/prop-types-typescript/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/react/prop-types-typescript/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/react/replace-react-fc-typescript/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/react/replace-react-fc-typescript/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/redwoodjs/core/4/auth-decoder/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/redwoodjs/core/4/auth-decoder/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/redwoodjs/core/4/redwood-apollo-provider/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/redwoodjs/core/4/redwood-apollo-provider/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/redwoodjs/core/4/router-use-auth/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/redwoodjs/core/4/router-use-auth/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/redwoodjs/core/4/use-armor/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/redwoodjs/core/4/use-armor/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/remove-unused-feature-flags-2/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/remove-unused-feature-flags-2/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/typescript/remove-public-modifier/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/typescript/remove-public-modifier/{.codemod/DESCRIPTION.md => README.md} (100%) rename apps/registry/codemods/typescript/use-template-literals/{.codemod/config.json => .codemodrc.json} (100%) rename apps/registry/codemods/typescript/use-template-literals/{.codemod/DESCRIPTION.md => README.md} (100%) diff --git a/apps/registry/codemods/Feature Flags/remove-unused-feature-flags/.codemod/config.json b/apps/registry/codemods/Feature Flags/remove-unused-feature-flags/.codemodrc.json similarity index 100% rename from apps/registry/codemods/Feature Flags/remove-unused-feature-flags/.codemod/config.json rename to apps/registry/codemods/Feature Flags/remove-unused-feature-flags/.codemodrc.json diff --git a/apps/registry/codemods/Feature Flags/remove-unused-feature-flags/.codemod/DESCRIPTION.md b/apps/registry/codemods/Feature Flags/remove-unused-feature-flags/README.md similarity index 100% rename from apps/registry/codemods/Feature Flags/remove-unused-feature-flags/.codemod/DESCRIPTION.md rename to apps/registry/codemods/Feature Flags/remove-unused-feature-flags/README.md diff --git a/apps/registry/codemods/Go/remove-unnecessary-nested-block/config.json b/apps/registry/codemods/Go/remove-unnecessary-nested-block/.codemodrc.json similarity index 100% rename from apps/registry/codemods/Go/remove-unnecessary-nested-block/config.json rename to apps/registry/codemods/Go/remove-unnecessary-nested-block/.codemodrc.json diff --git a/apps/registry/codemods/Java/delete-unused-fields/.codemod/config.json b/apps/registry/codemods/Java/delete-unused-fields/.codemodrc.json similarity index 100% rename from apps/registry/codemods/Java/delete-unused-fields/.codemod/config.json rename to apps/registry/codemods/Java/delete-unused-fields/.codemodrc.json diff --git a/apps/registry/codemods/Java/delete-unused-fields/.codemod/DESCRIPTION.md b/apps/registry/codemods/Java/delete-unused-fields/README.md similarity index 100% rename from apps/registry/codemods/Java/delete-unused-fields/.codemod/DESCRIPTION.md rename to apps/registry/codemods/Java/delete-unused-fields/README.md diff --git a/apps/registry/codemods/antd/5/props-changed-migration/.codemod/config.json b/apps/registry/codemods/antd/5/props-changed-migration/.codemodrc.json similarity index 100% rename from apps/registry/codemods/antd/5/props-changed-migration/.codemod/config.json rename to apps/registry/codemods/antd/5/props-changed-migration/.codemodrc.json diff --git a/apps/registry/codemods/antd/5/props-changed-migration/.codemod/DESCRIPTION.md b/apps/registry/codemods/antd/5/props-changed-migration/README.md similarity index 100% rename from apps/registry/codemods/antd/5/props-changed-migration/.codemod/DESCRIPTION.md rename to apps/registry/codemods/antd/5/props-changed-migration/README.md diff --git a/apps/registry/codemods/antd/5/remove-style-import/.codemod/config.json b/apps/registry/codemods/antd/5/remove-style-import/.codemodrc.json similarity index 100% rename from apps/registry/codemods/antd/5/remove-style-import/.codemod/config.json rename to apps/registry/codemods/antd/5/remove-style-import/.codemodrc.json diff --git a/apps/registry/codemods/antd/5/remove-style-import/.codemod/DESCRIPTION.md b/apps/registry/codemods/antd/5/remove-style-import/README.md similarity index 100% rename from apps/registry/codemods/antd/5/remove-style-import/.codemod/DESCRIPTION.md rename to apps/registry/codemods/antd/5/remove-style-import/README.md diff --git a/apps/registry/codemods/antd/5/removed-component-migration/.codemod/config.json b/apps/registry/codemods/antd/5/removed-component-migration/.codemodrc.json similarity index 100% rename from apps/registry/codemods/antd/5/removed-component-migration/.codemod/config.json rename to apps/registry/codemods/antd/5/removed-component-migration/.codemodrc.json diff --git a/apps/registry/codemods/antd/5/removed-component-migration/.codemod/DESCRIPTION.md b/apps/registry/codemods/antd/5/removed-component-migration/README.md similarity index 100% rename from apps/registry/codemods/antd/5/removed-component-migration/.codemod/DESCRIPTION.md rename to apps/registry/codemods/antd/5/removed-component-migration/README.md diff --git a/apps/registry/codemods/antd/5/removed-static-method-migration/.codemod/config.json b/apps/registry/codemods/antd/5/removed-static-method-migration/.codemodrc.json similarity index 100% rename from apps/registry/codemods/antd/5/removed-static-method-migration/.codemod/config.json rename to apps/registry/codemods/antd/5/removed-static-method-migration/.codemodrc.json diff --git a/apps/registry/codemods/antd/5/removed-static-method-migration/.codemod/DESCRIPTION.md b/apps/registry/codemods/antd/5/removed-static-method-migration/README.md similarity index 100% rename from apps/registry/codemods/antd/5/removed-static-method-migration/.codemod/DESCRIPTION.md rename to apps/registry/codemods/antd/5/removed-static-method-migration/README.md diff --git a/apps/registry/codemods/bull/bullmq/.codemod/config.json b/apps/registry/codemods/bull/bullmq/.codemodrc.json similarity index 100% rename from apps/registry/codemods/bull/bullmq/.codemod/config.json rename to apps/registry/codemods/bull/bullmq/.codemodrc.json diff --git a/apps/registry/codemods/bull/bullmq/.codemod/DESCRIPTION.md b/apps/registry/codemods/bull/bullmq/README.md similarity index 100% rename from apps/registry/codemods/bull/bullmq/.codemod/DESCRIPTION.md rename to apps/registry/codemods/bull/bullmq/README.md diff --git a/apps/registry/codemods/cal.com/app-directory-boilerplate-calcom/.codemod/config.json b/apps/registry/codemods/cal.com/app-directory-boilerplate-calcom/.codemodrc.json similarity index 100% rename from apps/registry/codemods/cal.com/app-directory-boilerplate-calcom/.codemod/config.json rename to apps/registry/codemods/cal.com/app-directory-boilerplate-calcom/.codemodrc.json diff --git a/apps/registry/codemods/cal.com/app-directory-boilerplate-calcom/.codemod/DESCRIPTION.md b/apps/registry/codemods/cal.com/app-directory-boilerplate-calcom/README.md similarity index 100% rename from apps/registry/codemods/cal.com/app-directory-boilerplate-calcom/.codemod/DESCRIPTION.md rename to apps/registry/codemods/cal.com/app-directory-boilerplate-calcom/README.md diff --git a/apps/registry/codemods/cal.com/generate-metadata-tests-calcom/.codemod/config.json b/apps/registry/codemods/cal.com/generate-metadata-tests-calcom/.codemodrc.json similarity index 100% rename from apps/registry/codemods/cal.com/generate-metadata-tests-calcom/.codemod/config.json rename to apps/registry/codemods/cal.com/generate-metadata-tests-calcom/.codemodrc.json diff --git a/apps/registry/codemods/cal.com/generate-metadata-tests-calcom/.codemod/DESCRIPTION.md b/apps/registry/codemods/cal.com/generate-metadata-tests-calcom/README.md similarity index 100% rename from apps/registry/codemods/cal.com/generate-metadata-tests-calcom/.codemod/DESCRIPTION.md rename to apps/registry/codemods/cal.com/generate-metadata-tests-calcom/README.md diff --git a/apps/registry/codemods/cal.com/generate-url-patterns/.codemod/config.json b/apps/registry/codemods/cal.com/generate-url-patterns/.codemodrc.json similarity index 100% rename from apps/registry/codemods/cal.com/generate-url-patterns/.codemod/config.json rename to apps/registry/codemods/cal.com/generate-url-patterns/.codemodrc.json diff --git a/apps/registry/codemods/cal.com/generate-url-patterns/.codemod/DESCRIPTION.md b/apps/registry/codemods/cal.com/generate-url-patterns/README.md similarity index 100% rename from apps/registry/codemods/cal.com/generate-url-patterns/.codemod/DESCRIPTION.md rename to apps/registry/codemods/cal.com/generate-url-patterns/README.md diff --git a/apps/registry/codemods/ember/5/app-controller-router-props/.codemod/config.json b/apps/registry/codemods/ember/5/app-controller-router-props/.codemodrc.json similarity index 100% rename from apps/registry/codemods/ember/5/app-controller-router-props/.codemod/config.json rename to apps/registry/codemods/ember/5/app-controller-router-props/.codemodrc.json diff --git a/apps/registry/codemods/ember/5/app-controller-router-props/.codemod/DESCRIPTION.md b/apps/registry/codemods/ember/5/app-controller-router-props/README.md similarity index 100% rename from apps/registry/codemods/ember/5/app-controller-router-props/.codemod/DESCRIPTION.md rename to apps/registry/codemods/ember/5/app-controller-router-props/README.md diff --git a/apps/registry/codemods/ember/5/array-wrapper/.codemod/config.json b/apps/registry/codemods/ember/5/array-wrapper/.codemodrc.json similarity index 100% rename from apps/registry/codemods/ember/5/array-wrapper/.codemod/config.json rename to apps/registry/codemods/ember/5/array-wrapper/.codemodrc.json diff --git a/apps/registry/codemods/ember/5/array-wrapper/.codemod/DESCRIPTION.md b/apps/registry/codemods/ember/5/array-wrapper/README.md similarity index 100% rename from apps/registry/codemods/ember/5/array-wrapper/.codemod/DESCRIPTION.md rename to apps/registry/codemods/ember/5/array-wrapper/README.md diff --git a/apps/registry/codemods/ember/5/convert-module-for-to-setup-test/.codemod/config.json b/apps/registry/codemods/ember/5/convert-module-for-to-setup-test/.codemodrc.json similarity index 100% rename from apps/registry/codemods/ember/5/convert-module-for-to-setup-test/.codemod/config.json rename to apps/registry/codemods/ember/5/convert-module-for-to-setup-test/.codemodrc.json diff --git a/apps/registry/codemods/ember/5/convert-module-for-to-setup-test/.codemod/DESCRIPTION.md b/apps/registry/codemods/ember/5/convert-module-for-to-setup-test/README.md similarity index 100% rename from apps/registry/codemods/ember/5/convert-module-for-to-setup-test/.codemod/DESCRIPTION.md rename to apps/registry/codemods/ember/5/convert-module-for-to-setup-test/README.md diff --git a/apps/registry/codemods/ember/5/cp-property-map/.codemod/config.json b/apps/registry/codemods/ember/5/cp-property-map/.codemodrc.json similarity index 100% rename from apps/registry/codemods/ember/5/cp-property-map/.codemod/config.json rename to apps/registry/codemods/ember/5/cp-property-map/.codemodrc.json diff --git a/apps/registry/codemods/ember/5/cp-property-map/.codemod/DESCRIPTION.md b/apps/registry/codemods/ember/5/cp-property-map/README.md similarity index 100% rename from apps/registry/codemods/ember/5/cp-property-map/.codemod/DESCRIPTION.md rename to apps/registry/codemods/ember/5/cp-property-map/README.md diff --git a/apps/registry/codemods/ember/5/cp-property/.codemod/config.json b/apps/registry/codemods/ember/5/cp-property/.codemodrc.json similarity index 100% rename from apps/registry/codemods/ember/5/cp-property/.codemod/config.json rename to apps/registry/codemods/ember/5/cp-property/.codemodrc.json diff --git a/apps/registry/codemods/ember/5/cp-property/.codemod/DESCRIPTION.md b/apps/registry/codemods/ember/5/cp-property/README.md similarity index 100% rename from apps/registry/codemods/ember/5/cp-property/.codemod/DESCRIPTION.md rename to apps/registry/codemods/ember/5/cp-property/README.md diff --git a/apps/registry/codemods/ember/5/cp-volatile/.codemod/config.json b/apps/registry/codemods/ember/5/cp-volatile/.codemodrc.json similarity index 100% rename from apps/registry/codemods/ember/5/cp-volatile/.codemod/config.json rename to apps/registry/codemods/ember/5/cp-volatile/.codemodrc.json diff --git a/apps/registry/codemods/ember/5/cp-volatile/.codemod/DESCRIPTION.md b/apps/registry/codemods/ember/5/cp-volatile/README.md similarity index 100% rename from apps/registry/codemods/ember/5/cp-volatile/.codemod/DESCRIPTION.md rename to apps/registry/codemods/ember/5/cp-volatile/README.md diff --git a/apps/registry/codemods/ember/5/deprecate-merge/.codemod/config.json b/apps/registry/codemods/ember/5/deprecate-merge/.codemodrc.json similarity index 100% rename from apps/registry/codemods/ember/5/deprecate-merge/.codemod/config.json rename to apps/registry/codemods/ember/5/deprecate-merge/.codemodrc.json diff --git a/apps/registry/codemods/ember/5/deprecate-merge/.codemod/DESCRIPTION.md b/apps/registry/codemods/ember/5/deprecate-merge/README.md similarity index 100% rename from apps/registry/codemods/ember/5/deprecate-merge/.codemod/DESCRIPTION.md rename to apps/registry/codemods/ember/5/deprecate-merge/README.md diff --git a/apps/registry/codemods/ember/5/deprecate-router-events/.codemod/config.json b/apps/registry/codemods/ember/5/deprecate-router-events/.codemodrc.json similarity index 100% rename from apps/registry/codemods/ember/5/deprecate-router-events/.codemod/config.json rename to apps/registry/codemods/ember/5/deprecate-router-events/.codemodrc.json diff --git a/apps/registry/codemods/ember/5/deprecate-router-events/.codemod/DESCRIPTION.md b/apps/registry/codemods/ember/5/deprecate-router-events/README.md similarity index 100% rename from apps/registry/codemods/ember/5/deprecate-router-events/.codemod/DESCRIPTION.md rename to apps/registry/codemods/ember/5/deprecate-router-events/README.md diff --git a/apps/registry/codemods/ember/5/ember-jquery-legacy/.codemod/config.json b/apps/registry/codemods/ember/5/ember-jquery-legacy/.codemodrc.json similarity index 100% rename from apps/registry/codemods/ember/5/ember-jquery-legacy/.codemod/config.json rename to apps/registry/codemods/ember/5/ember-jquery-legacy/.codemodrc.json diff --git a/apps/registry/codemods/ember/5/ember-jquery-legacy/.codemod/DESCRIPTION.md b/apps/registry/codemods/ember/5/ember-jquery-legacy/README.md similarity index 100% rename from apps/registry/codemods/ember/5/ember-jquery-legacy/.codemod/DESCRIPTION.md rename to apps/registry/codemods/ember/5/ember-jquery-legacy/README.md diff --git a/apps/registry/codemods/ember/5/es5-getter-ember-codemod/.codemod/config.json b/apps/registry/codemods/ember/5/es5-getter-ember-codemod/.codemodrc.json similarity index 100% rename from apps/registry/codemods/ember/5/es5-getter-ember-codemod/.codemod/config.json rename to apps/registry/codemods/ember/5/es5-getter-ember-codemod/.codemodrc.json diff --git a/apps/registry/codemods/ember/5/es5-getter-ember-codemod/.codemod/DESCRIPTION.md b/apps/registry/codemods/ember/5/es5-getter-ember-codemod/README.md similarity index 100% rename from apps/registry/codemods/ember/5/es5-getter-ember-codemod/.codemod/DESCRIPTION.md rename to apps/registry/codemods/ember/5/es5-getter-ember-codemod/README.md diff --git a/apps/registry/codemods/ember/5/fpe-computed/.codemod/config.json b/apps/registry/codemods/ember/5/fpe-computed/.codemodrc.json similarity index 100% rename from apps/registry/codemods/ember/5/fpe-computed/.codemod/config.json rename to apps/registry/codemods/ember/5/fpe-computed/.codemodrc.json diff --git a/apps/registry/codemods/ember/5/fpe-computed/.codemod/DESCRIPTION.md b/apps/registry/codemods/ember/5/fpe-computed/README.md similarity index 100% rename from apps/registry/codemods/ember/5/fpe-computed/.codemod/DESCRIPTION.md rename to apps/registry/codemods/ember/5/fpe-computed/README.md diff --git a/apps/registry/codemods/ember/5/fpe-observes/.codemod/config.json b/apps/registry/codemods/ember/5/fpe-observes/.codemodrc.json similarity index 100% rename from apps/registry/codemods/ember/5/fpe-observes/.codemod/config.json rename to apps/registry/codemods/ember/5/fpe-observes/.codemodrc.json diff --git a/apps/registry/codemods/ember/5/fpe-observes/.codemod/DESCRIPTION.md b/apps/registry/codemods/ember/5/fpe-observes/README.md similarity index 100% rename from apps/registry/codemods/ember/5/fpe-observes/.codemod/DESCRIPTION.md rename to apps/registry/codemods/ember/5/fpe-observes/README.md diff --git a/apps/registry/codemods/ember/5/fpe-on/.codemod/config.json b/apps/registry/codemods/ember/5/fpe-on/.codemodrc.json similarity index 100% rename from apps/registry/codemods/ember/5/fpe-on/.codemod/config.json rename to apps/registry/codemods/ember/5/fpe-on/.codemodrc.json diff --git a/apps/registry/codemods/ember/5/fpe-on/.codemod/DESCRIPTION.md b/apps/registry/codemods/ember/5/fpe-on/README.md similarity index 100% rename from apps/registry/codemods/ember/5/fpe-on/.codemod/DESCRIPTION.md rename to apps/registry/codemods/ember/5/fpe-on/README.md diff --git a/apps/registry/codemods/ember/5/jquery-apis/.codemod/config.json b/apps/registry/codemods/ember/5/jquery-apis/.codemodrc.json similarity index 100% rename from apps/registry/codemods/ember/5/jquery-apis/.codemod/config.json rename to apps/registry/codemods/ember/5/jquery-apis/.codemodrc.json diff --git a/apps/registry/codemods/ember/5/jquery-apis/.codemod/DESCRIPTION.md b/apps/registry/codemods/ember/5/jquery-apis/README.md similarity index 100% rename from apps/registry/codemods/ember/5/jquery-apis/.codemod/DESCRIPTION.md rename to apps/registry/codemods/ember/5/jquery-apis/README.md diff --git a/apps/registry/codemods/ember/5/jquery-event/.codemod/config.json b/apps/registry/codemods/ember/5/jquery-event/.codemodrc.json similarity index 100% rename from apps/registry/codemods/ember/5/jquery-event/.codemod/config.json rename to apps/registry/codemods/ember/5/jquery-event/.codemodrc.json diff --git a/apps/registry/codemods/ember/5/jquery-event/.codemod/DESCRIPTION.md b/apps/registry/codemods/ember/5/jquery-event/README.md similarity index 100% rename from apps/registry/codemods/ember/5/jquery-event/.codemod/DESCRIPTION.md rename to apps/registry/codemods/ember/5/jquery-event/README.md diff --git a/apps/registry/codemods/ember/5/notify-property-change/.codemod/config.json b/apps/registry/codemods/ember/5/notify-property-change/.codemodrc.json similarity index 100% rename from apps/registry/codemods/ember/5/notify-property-change/.codemod/config.json rename to apps/registry/codemods/ember/5/notify-property-change/.codemodrc.json diff --git a/apps/registry/codemods/ember/5/notify-property-change/.codemod/DESCRIPTION.md b/apps/registry/codemods/ember/5/notify-property-change/README.md similarity index 100% rename from apps/registry/codemods/ember/5/notify-property-change/.codemod/DESCRIPTION.md rename to apps/registry/codemods/ember/5/notify-property-change/README.md diff --git a/apps/registry/codemods/ember/5/object-new-constructor/.codemod/config.json b/apps/registry/codemods/ember/5/object-new-constructor/.codemodrc.json similarity index 100% rename from apps/registry/codemods/ember/5/object-new-constructor/.codemod/config.json rename to apps/registry/codemods/ember/5/object-new-constructor/.codemodrc.json diff --git a/apps/registry/codemods/ember/5/object-new-constructor/.codemod/DESCRIPTION.md b/apps/registry/codemods/ember/5/object-new-constructor/README.md similarity index 100% rename from apps/registry/codemods/ember/5/object-new-constructor/.codemod/DESCRIPTION.md rename to apps/registry/codemods/ember/5/object-new-constructor/README.md diff --git a/apps/registry/codemods/eslint/biome/migrate-rules/.codemod/config.json b/apps/registry/codemods/eslint/biome/migrate-rules/.codemodrc.json similarity index 100% rename from apps/registry/codemods/eslint/biome/migrate-rules/.codemod/config.json rename to apps/registry/codemods/eslint/biome/migrate-rules/.codemodrc.json diff --git a/apps/registry/codemods/eslint/biome/migrate-rules/.codemod/DESCRIPTION.md b/apps/registry/codemods/eslint/biome/migrate-rules/README.md similarity index 100% rename from apps/registry/codemods/eslint/biome/migrate-rules/.codemod/DESCRIPTION.md rename to apps/registry/codemods/eslint/biome/migrate-rules/README.md diff --git a/apps/registry/codemods/i18n/.codemod/config.json b/apps/registry/codemods/i18n/.codemodrc.json similarity index 100% rename from apps/registry/codemods/i18n/.codemod/config.json rename to apps/registry/codemods/i18n/.codemodrc.json diff --git a/apps/registry/codemods/i18n/.codemod/DESCRIPTION.md b/apps/registry/codemods/i18n/README.md similarity index 100% rename from apps/registry/codemods/i18n/.codemod/DESCRIPTION.md rename to apps/registry/codemods/i18n/README.md diff --git a/apps/registry/codemods/immutable/0/add-deprecation-comment/.codemod/config.json b/apps/registry/codemods/immutable/0/add-deprecation-comment/.codemodrc.json similarity index 100% rename from apps/registry/codemods/immutable/0/add-deprecation-comment/.codemod/config.json rename to apps/registry/codemods/immutable/0/add-deprecation-comment/.codemodrc.json diff --git a/apps/registry/codemods/immutable/0/add-deprecation-comment/.codemod/DESCRIPTION.md b/apps/registry/codemods/immutable/0/add-deprecation-comment/README.md similarity index 100% rename from apps/registry/codemods/immutable/0/add-deprecation-comment/.codemod/DESCRIPTION.md rename to apps/registry/codemods/immutable/0/add-deprecation-comment/README.md diff --git a/apps/registry/codemods/immutable/0/nest-from-js/.codemod/config.json b/apps/registry/codemods/immutable/0/nest-from-js/.codemodrc.json similarity index 100% rename from apps/registry/codemods/immutable/0/nest-from-js/.codemod/config.json rename to apps/registry/codemods/immutable/0/nest-from-js/.codemodrc.json diff --git a/apps/registry/codemods/immutable/0/nest-from-js/.codemod/DESCRIPTION.md b/apps/registry/codemods/immutable/0/nest-from-js/README.md similarity index 100% rename from apps/registry/codemods/immutable/0/nest-from-js/.codemod/DESCRIPTION.md rename to apps/registry/codemods/immutable/0/nest-from-js/README.md diff --git a/apps/registry/codemods/immutable/0/remove-from-js/.codemod/config.json b/apps/registry/codemods/immutable/0/remove-from-js/.codemodrc.json similarity index 100% rename from apps/registry/codemods/immutable/0/remove-from-js/.codemod/config.json rename to apps/registry/codemods/immutable/0/remove-from-js/.codemodrc.json diff --git a/apps/registry/codemods/immutable/0/remove-from-js/.codemod/DESCRIPTION.md b/apps/registry/codemods/immutable/0/remove-from-js/README.md similarity index 100% rename from apps/registry/codemods/immutable/0/remove-from-js/.codemod/DESCRIPTION.md rename to apps/registry/codemods/immutable/0/remove-from-js/README.md diff --git a/apps/registry/codemods/immutable/0/remove-import/.codemod/config.json b/apps/registry/codemods/immutable/0/remove-import/.codemodrc.json similarity index 100% rename from apps/registry/codemods/immutable/0/remove-import/.codemod/config.json rename to apps/registry/codemods/immutable/0/remove-import/.codemodrc.json diff --git a/apps/registry/codemods/immutable/0/remove-import/.codemod/DESCRIPTION.md b/apps/registry/codemods/immutable/0/remove-import/README.md similarity index 100% rename from apps/registry/codemods/immutable/0/remove-import/.codemod/DESCRIPTION.md rename to apps/registry/codemods/immutable/0/remove-import/README.md diff --git a/apps/registry/codemods/immutable/0/remove-to-js/.codemod/config.json b/apps/registry/codemods/immutable/0/remove-to-js/.codemodrc.json similarity index 100% rename from apps/registry/codemods/immutable/0/remove-to-js/.codemod/config.json rename to apps/registry/codemods/immutable/0/remove-to-js/.codemodrc.json diff --git a/apps/registry/codemods/immutable/0/remove-to-js/.codemod/DESCRIPTION.md b/apps/registry/codemods/immutable/0/remove-to-js/README.md similarity index 100% rename from apps/registry/codemods/immutable/0/remove-to-js/.codemod/DESCRIPTION.md rename to apps/registry/codemods/immutable/0/remove-to-js/README.md diff --git a/apps/registry/codemods/immutable/0/replace-get-in/.codemod/config.json b/apps/registry/codemods/immutable/0/replace-get-in/.codemodrc.json similarity index 100% rename from apps/registry/codemods/immutable/0/replace-get-in/.codemod/config.json rename to apps/registry/codemods/immutable/0/replace-get-in/.codemodrc.json diff --git a/apps/registry/codemods/immutable/0/replace-get-in/.codemod/DESCRIPTION.md b/apps/registry/codemods/immutable/0/replace-get-in/README.md similarity index 100% rename from apps/registry/codemods/immutable/0/replace-get-in/.codemod/DESCRIPTION.md rename to apps/registry/codemods/immutable/0/replace-get-in/README.md diff --git a/apps/registry/codemods/immutable/0/replace-get/.codemod/config.json b/apps/registry/codemods/immutable/0/replace-get/.codemodrc.json similarity index 100% rename from apps/registry/codemods/immutable/0/replace-get/.codemod/config.json rename to apps/registry/codemods/immutable/0/replace-get/.codemodrc.json diff --git a/apps/registry/codemods/immutable/0/replace-get/.codemod/DESCRIPTION.md b/apps/registry/codemods/immutable/0/replace-get/README.md similarity index 100% rename from apps/registry/codemods/immutable/0/replace-get/.codemod/DESCRIPTION.md rename to apps/registry/codemods/immutable/0/replace-get/README.md diff --git a/apps/registry/codemods/immutable/0/replace-merge/.codemod/config.json b/apps/registry/codemods/immutable/0/replace-merge/.codemodrc.json similarity index 100% rename from apps/registry/codemods/immutable/0/replace-merge/.codemod/config.json rename to apps/registry/codemods/immutable/0/replace-merge/.codemodrc.json diff --git a/apps/registry/codemods/immutable/0/replace-merge/.codemod/DESCRIPTION.md b/apps/registry/codemods/immutable/0/replace-merge/README.md similarity index 100% rename from apps/registry/codemods/immutable/0/replace-merge/.codemod/DESCRIPTION.md rename to apps/registry/codemods/immutable/0/replace-merge/README.md diff --git a/apps/registry/codemods/immutable/0/replace-set-in/.codemod/config.json b/apps/registry/codemods/immutable/0/replace-set-in/.codemodrc.json similarity index 100% rename from apps/registry/codemods/immutable/0/replace-set-in/.codemod/config.json rename to apps/registry/codemods/immutable/0/replace-set-in/.codemodrc.json diff --git a/apps/registry/codemods/immutable/0/replace-set-in/.codemod/DESCRIPTION.md b/apps/registry/codemods/immutable/0/replace-set-in/README.md similarity index 100% rename from apps/registry/codemods/immutable/0/replace-set-in/.codemod/DESCRIPTION.md rename to apps/registry/codemods/immutable/0/replace-set-in/README.md diff --git a/apps/registry/codemods/immutable/0/replace-set/.codemod/config.json b/apps/registry/codemods/immutable/0/replace-set/.codemodrc.json similarity index 100% rename from apps/registry/codemods/immutable/0/replace-set/.codemod/config.json rename to apps/registry/codemods/immutable/0/replace-set/.codemodrc.json diff --git a/apps/registry/codemods/immutable/0/replace-set/.codemod/DESCRIPTION.md b/apps/registry/codemods/immutable/0/replace-set/README.md similarity index 100% rename from apps/registry/codemods/immutable/0/replace-set/.codemod/DESCRIPTION.md rename to apps/registry/codemods/immutable/0/replace-set/README.md diff --git a/apps/registry/codemods/immutable/4/isterable-to-iscollection/.codemod/config.json b/apps/registry/codemods/immutable/4/isterable-to-iscollection/.codemodrc.json similarity index 100% rename from apps/registry/codemods/immutable/4/isterable-to-iscollection/.codemod/config.json rename to apps/registry/codemods/immutable/4/isterable-to-iscollection/.codemodrc.json diff --git a/apps/registry/codemods/immutable/4/isterable-to-iscollection/.codemod/DESCRIPTION.md b/apps/registry/codemods/immutable/4/isterable-to-iscollection/README.md similarity index 100% rename from apps/registry/codemods/immutable/4/isterable-to-iscollection/.codemod/DESCRIPTION.md rename to apps/registry/codemods/immutable/4/isterable-to-iscollection/README.md diff --git a/apps/registry/codemods/immutable/4/map-to-array/.codemod/config.json b/apps/registry/codemods/immutable/4/map-to-array/.codemodrc.json similarity index 100% rename from apps/registry/codemods/immutable/4/map-to-array/.codemod/config.json rename to apps/registry/codemods/immutable/4/map-to-array/.codemodrc.json diff --git a/apps/registry/codemods/immutable/4/map-to-array/.codemod/DESCRIPTION.md b/apps/registry/codemods/immutable/4/map-to-array/README.md similarity index 100% rename from apps/registry/codemods/immutable/4/map-to-array/.codemod/DESCRIPTION.md rename to apps/registry/codemods/immutable/4/map-to-array/README.md diff --git a/apps/registry/codemods/immutable/4/rename-to-seq/.codemod/config.json b/apps/registry/codemods/immutable/4/rename-to-seq/.codemodrc.json similarity index 100% rename from apps/registry/codemods/immutable/4/rename-to-seq/.codemod/config.json rename to apps/registry/codemods/immutable/4/rename-to-seq/.codemodrc.json diff --git a/apps/registry/codemods/immutable/4/rename-to-seq/.codemod/DESCRIPTION.md b/apps/registry/codemods/immutable/4/rename-to-seq/README.md similarity index 100% rename from apps/registry/codemods/immutable/4/rename-to-seq/.codemod/DESCRIPTION.md rename to apps/registry/codemods/immutable/4/rename-to-seq/README.md diff --git a/apps/registry/codemods/intuita/migrate-codemod-registry/.codemod/config.json b/apps/registry/codemods/intuita/migrate-codemod-registry/.codemodrc.json similarity index 100% rename from apps/registry/codemods/intuita/migrate-codemod-registry/.codemod/config.json rename to apps/registry/codemods/intuita/migrate-codemod-registry/.codemodrc.json diff --git a/apps/registry/codemods/intuita/migrate-codemod-registry/.codemod/DESCRIPTION.md b/apps/registry/codemods/intuita/migrate-codemod-registry/README.md similarity index 100% rename from apps/registry/codemods/intuita/migrate-codemod-registry/.codemod/DESCRIPTION.md rename to apps/registry/codemods/intuita/migrate-codemod-registry/README.md diff --git a/apps/registry/codemods/jest/vitest/.codemod/config.json b/apps/registry/codemods/jest/vitest/.codemodrc.json similarity index 100% rename from apps/registry/codemods/jest/vitest/.codemod/config.json rename to apps/registry/codemods/jest/vitest/.codemodrc.json diff --git a/apps/registry/codemods/jest/vitest/.codemod/DESCRIPTION.md b/apps/registry/codemods/jest/vitest/README.md similarity index 100% rename from apps/registry/codemods/jest/vitest/.codemod/DESCRIPTION.md rename to apps/registry/codemods/jest/vitest/README.md diff --git a/apps/registry/codemods/mocha/vitest/migrate-configuration/.codemod/config.json b/apps/registry/codemods/mocha/vitest/migrate-configuration/.codemodrc.json similarity index 100% rename from apps/registry/codemods/mocha/vitest/migrate-configuration/.codemod/config.json rename to apps/registry/codemods/mocha/vitest/migrate-configuration/.codemodrc.json diff --git a/apps/registry/codemods/mocha/vitest/migrate-configuration/.codemod/DESCRIPTION.md b/apps/registry/codemods/mocha/vitest/migrate-configuration/README.md similarity index 100% rename from apps/registry/codemods/mocha/vitest/migrate-configuration/.codemod/DESCRIPTION.md rename to apps/registry/codemods/mocha/vitest/migrate-configuration/README.md diff --git a/apps/registry/codemods/mocha/vitest/migrate-tests/.codemod/config.json b/apps/registry/codemods/mocha/vitest/migrate-tests/.codemodrc.json similarity index 100% rename from apps/registry/codemods/mocha/vitest/migrate-tests/.codemod/config.json rename to apps/registry/codemods/mocha/vitest/migrate-tests/.codemodrc.json diff --git a/apps/registry/codemods/mocha/vitest/migrate-tests/.codemod/DESCRIPTION.md b/apps/registry/codemods/mocha/vitest/migrate-tests/README.md similarity index 100% rename from apps/registry/codemods/mocha/vitest/migrate-tests/.codemod/DESCRIPTION.md rename to apps/registry/codemods/mocha/vitest/migrate-tests/README.md diff --git a/apps/registry/codemods/mocha/vitest/recipe/.codemod/config.json b/apps/registry/codemods/mocha/vitest/recipe/.codemodrc.json similarity index 100% rename from apps/registry/codemods/mocha/vitest/recipe/.codemod/config.json rename to apps/registry/codemods/mocha/vitest/recipe/.codemodrc.json diff --git a/apps/registry/codemods/mocha/vitest/recipe/.codemod/DESCRIPTION.md b/apps/registry/codemods/mocha/vitest/recipe/README.md similarity index 100% rename from apps/registry/codemods/mocha/vitest/recipe/.codemod/DESCRIPTION.md rename to apps/registry/codemods/mocha/vitest/recipe/README.md diff --git a/apps/registry/codemods/msw/2/callback-signature/.codemod/config.json b/apps/registry/codemods/msw/2/callback-signature/.codemodrc.json similarity index 100% rename from apps/registry/codemods/msw/2/callback-signature/.codemod/config.json rename to apps/registry/codemods/msw/2/callback-signature/.codemodrc.json diff --git a/apps/registry/codemods/msw/2/callback-signature/.codemod/DESCRIPTION.md b/apps/registry/codemods/msw/2/callback-signature/README.md similarity index 100% rename from apps/registry/codemods/msw/2/callback-signature/.codemod/DESCRIPTION.md rename to apps/registry/codemods/msw/2/callback-signature/README.md diff --git a/apps/registry/codemods/msw/2/ctx-fetch/.codemod/config.json b/apps/registry/codemods/msw/2/ctx-fetch/.codemodrc.json similarity index 100% rename from apps/registry/codemods/msw/2/ctx-fetch/.codemod/config.json rename to apps/registry/codemods/msw/2/ctx-fetch/.codemodrc.json diff --git a/apps/registry/codemods/msw/2/ctx-fetch/.codemod/DESCRIPTION.md b/apps/registry/codemods/msw/2/ctx-fetch/README.md similarity index 100% rename from apps/registry/codemods/msw/2/ctx-fetch/.codemod/DESCRIPTION.md rename to apps/registry/codemods/msw/2/ctx-fetch/README.md diff --git a/apps/registry/codemods/msw/2/imports/.codemod/config.json b/apps/registry/codemods/msw/2/imports/.codemodrc.json similarity index 100% rename from apps/registry/codemods/msw/2/imports/.codemod/config.json rename to apps/registry/codemods/msw/2/imports/.codemodrc.json diff --git a/apps/registry/codemods/msw/2/imports/.codemod/DESCRIPTION.md b/apps/registry/codemods/msw/2/imports/README.md similarity index 100% rename from apps/registry/codemods/msw/2/imports/.codemod/DESCRIPTION.md rename to apps/registry/codemods/msw/2/imports/README.md diff --git a/apps/registry/codemods/msw/2/lifecycle-events-signature/.codemod/config.json b/apps/registry/codemods/msw/2/lifecycle-events-signature/.codemodrc.json similarity index 100% rename from apps/registry/codemods/msw/2/lifecycle-events-signature/.codemod/config.json rename to apps/registry/codemods/msw/2/lifecycle-events-signature/.codemodrc.json diff --git a/apps/registry/codemods/msw/2/lifecycle-events-signature/.codemod/DESCRIPTION.md b/apps/registry/codemods/msw/2/lifecycle-events-signature/README.md similarity index 100% rename from apps/registry/codemods/msw/2/lifecycle-events-signature/.codemod/DESCRIPTION.md rename to apps/registry/codemods/msw/2/lifecycle-events-signature/README.md diff --git a/apps/registry/codemods/msw/2/print-handler/.codemod/config.json b/apps/registry/codemods/msw/2/print-handler/.codemodrc.json similarity index 100% rename from apps/registry/codemods/msw/2/print-handler/.codemod/config.json rename to apps/registry/codemods/msw/2/print-handler/.codemodrc.json diff --git a/apps/registry/codemods/msw/2/print-handler/.codemod/DESCRIPTION.md b/apps/registry/codemods/msw/2/print-handler/README.md similarity index 100% rename from apps/registry/codemods/msw/2/print-handler/.codemod/DESCRIPTION.md rename to apps/registry/codemods/msw/2/print-handler/README.md diff --git a/apps/registry/codemods/msw/2/req-passthrough/.codemod/config.json b/apps/registry/codemods/msw/2/req-passthrough/.codemodrc.json similarity index 100% rename from apps/registry/codemods/msw/2/req-passthrough/.codemod/config.json rename to apps/registry/codemods/msw/2/req-passthrough/.codemodrc.json diff --git a/apps/registry/codemods/msw/2/req-passthrough/.codemod/DESCRIPTION.md b/apps/registry/codemods/msw/2/req-passthrough/README.md similarity index 100% rename from apps/registry/codemods/msw/2/req-passthrough/.codemod/DESCRIPTION.md rename to apps/registry/codemods/msw/2/req-passthrough/README.md diff --git a/apps/registry/codemods/msw/2/request-changes/.codemod/config.json b/apps/registry/codemods/msw/2/request-changes/.codemodrc.json similarity index 100% rename from apps/registry/codemods/msw/2/request-changes/.codemod/config.json rename to apps/registry/codemods/msw/2/request-changes/.codemodrc.json diff --git a/apps/registry/codemods/msw/2/request-changes/.codemod/DESCRIPTION.md b/apps/registry/codemods/msw/2/request-changes/README.md similarity index 100% rename from apps/registry/codemods/msw/2/request-changes/.codemod/DESCRIPTION.md rename to apps/registry/codemods/msw/2/request-changes/README.md diff --git a/apps/registry/codemods/msw/2/response-usages/.codemod/config.json b/apps/registry/codemods/msw/2/response-usages/.codemodrc.json similarity index 100% rename from apps/registry/codemods/msw/2/response-usages/.codemod/config.json rename to apps/registry/codemods/msw/2/response-usages/.codemodrc.json diff --git a/apps/registry/codemods/msw/2/response-usages/.codemod/DESCRIPTION.md b/apps/registry/codemods/msw/2/response-usages/README.md similarity index 100% rename from apps/registry/codemods/msw/2/response-usages/.codemod/DESCRIPTION.md rename to apps/registry/codemods/msw/2/response-usages/README.md diff --git a/apps/registry/codemods/msw/2/type-args/.codemod/config.json b/apps/registry/codemods/msw/2/type-args/.codemodrc.json similarity index 100% rename from apps/registry/codemods/msw/2/type-args/.codemod/config.json rename to apps/registry/codemods/msw/2/type-args/.codemodrc.json diff --git a/apps/registry/codemods/msw/2/type-args/.codemod/DESCRIPTION.md b/apps/registry/codemods/msw/2/type-args/README.md similarity index 100% rename from apps/registry/codemods/msw/2/type-args/.codemod/DESCRIPTION.md rename to apps/registry/codemods/msw/2/type-args/README.md diff --git a/apps/registry/codemods/msw/2/upgrade-recipe/.codemod/config.json b/apps/registry/codemods/msw/2/upgrade-recipe/.codemodrc.json similarity index 100% rename from apps/registry/codemods/msw/2/upgrade-recipe/.codemod/config.json rename to apps/registry/codemods/msw/2/upgrade-recipe/.codemodrc.json diff --git a/apps/registry/codemods/msw/2/upgrade-recipe/.codemod/DESCRIPTION.md b/apps/registry/codemods/msw/2/upgrade-recipe/README.md similarity index 100% rename from apps/registry/codemods/msw/2/upgrade-recipe/.codemod/DESCRIPTION.md rename to apps/registry/codemods/msw/2/upgrade-recipe/README.md diff --git a/apps/registry/codemods/mui/5/core-styles-import/.codemod/config.json b/apps/registry/codemods/mui/5/core-styles-import/.codemodrc.json similarity index 100% rename from apps/registry/codemods/mui/5/core-styles-import/.codemod/config.json rename to apps/registry/codemods/mui/5/core-styles-import/.codemodrc.json diff --git a/apps/registry/codemods/mui/5/core-styles-import/.codemod/DESCRIPTION.md b/apps/registry/codemods/mui/5/core-styles-import/README.md similarity index 100% rename from apps/registry/codemods/mui/5/core-styles-import/.codemod/DESCRIPTION.md rename to apps/registry/codemods/mui/5/core-styles-import/README.md diff --git a/apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventContext/.codemod/config.json b/apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventContext/.codemodrc.json similarity index 100% rename from apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventContext/.codemod/config.json rename to apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventContext/.codemodrc.json diff --git a/apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventContext/.codemod/DESCRIPTION.md b/apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventContext/README.md similarity index 100% rename from apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventContext/.codemod/DESCRIPTION.md rename to apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventContext/README.md diff --git a/apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventHandler/.codemod/config.json b/apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventHandler/.codemodrc.json similarity index 100% rename from apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventHandler/.codemod/config.json rename to apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventHandler/.codemodrc.json diff --git a/apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventHandler/.codemod/DESCRIPTION.md b/apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventHandler/README.md similarity index 100% rename from apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventHandler/.codemod/DESCRIPTION.md rename to apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventHandler/README.md diff --git a/apps/registry/codemods/netlify-sdk/0.8.1/disableBuildEventHandlers/.codemod/config.json b/apps/registry/codemods/netlify-sdk/0.8.1/disableBuildEventHandlers/.codemodrc.json similarity index 100% rename from apps/registry/codemods/netlify-sdk/0.8.1/disableBuildEventHandlers/.codemod/config.json rename to apps/registry/codemods/netlify-sdk/0.8.1/disableBuildEventHandlers/.codemodrc.json diff --git a/apps/registry/codemods/netlify-sdk/0.8.1/disableBuildEventHandlers/.codemod/DESCRIPTION.md b/apps/registry/codemods/netlify-sdk/0.8.1/disableBuildEventHandlers/README.md similarity index 100% rename from apps/registry/codemods/netlify-sdk/0.8.1/disableBuildEventHandlers/.codemod/DESCRIPTION.md rename to apps/registry/codemods/netlify-sdk/0.8.1/disableBuildEventHandlers/README.md diff --git a/apps/registry/codemods/netlify-sdk/0.8.1/enableBuildEventHandlers/.codemod/config.json b/apps/registry/codemods/netlify-sdk/0.8.1/enableBuildEventHandlers/.codemodrc.json similarity index 100% rename from apps/registry/codemods/netlify-sdk/0.8.1/enableBuildEventHandlers/.codemod/config.json rename to apps/registry/codemods/netlify-sdk/0.8.1/enableBuildEventHandlers/.codemodrc.json diff --git a/apps/registry/codemods/netlify-sdk/0.8.1/enableBuildEventHandlers/.codemod/DESCRIPTION.md b/apps/registry/codemods/netlify-sdk/0.8.1/enableBuildEventHandlers/README.md similarity index 100% rename from apps/registry/codemods/netlify-sdk/0.8.1/enableBuildEventHandlers/.codemod/DESCRIPTION.md rename to apps/registry/codemods/netlify-sdk/0.8.1/enableBuildEventHandlers/README.md diff --git a/apps/registry/codemods/netlify-sdk/0.8.1/exportZod/.codemod/config.json b/apps/registry/codemods/netlify-sdk/0.8.1/exportZod/.codemodrc.json similarity index 100% rename from apps/registry/codemods/netlify-sdk/0.8.1/exportZod/.codemod/config.json rename to apps/registry/codemods/netlify-sdk/0.8.1/exportZod/.codemodrc.json diff --git a/apps/registry/codemods/netlify-sdk/0.8.1/exportZod/.codemod/DESCRIPTION.md b/apps/registry/codemods/netlify-sdk/0.8.1/exportZod/README.md similarity index 100% rename from apps/registry/codemods/netlify-sdk/0.8.1/exportZod/.codemod/DESCRIPTION.md rename to apps/registry/codemods/netlify-sdk/0.8.1/exportZod/README.md diff --git a/apps/registry/codemods/netlify-sdk/0.8.4/addApiHandler/.codemod/config.json b/apps/registry/codemods/netlify-sdk/0.8.4/addApiHandler/.codemodrc.json similarity index 100% rename from apps/registry/codemods/netlify-sdk/0.8.4/addApiHandler/.codemod/config.json rename to apps/registry/codemods/netlify-sdk/0.8.4/addApiHandler/.codemodrc.json diff --git a/apps/registry/codemods/netlify-sdk/0.8.4/addApiHandler/.codemod/DESCRIPTION.md b/apps/registry/codemods/netlify-sdk/0.8.4/addApiHandler/README.md similarity index 100% rename from apps/registry/codemods/netlify-sdk/0.8.4/addApiHandler/.codemod/DESCRIPTION.md rename to apps/registry/codemods/netlify-sdk/0.8.4/addApiHandler/README.md diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/createEnvironmentVariable/.codemod/config.json b/apps/registry/codemods/netlify-sdk/0.8.5/createEnvironmentVariable/.codemodrc.json similarity index 100% rename from apps/registry/codemods/netlify-sdk/0.8.5/createEnvironmentVariable/.codemod/config.json rename to apps/registry/codemods/netlify-sdk/0.8.5/createEnvironmentVariable/.codemodrc.json diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/createEnvironmentVariable/.codemod/DESCRIPTION.md b/apps/registry/codemods/netlify-sdk/0.8.5/createEnvironmentVariable/README.md similarity index 100% rename from apps/registry/codemods/netlify-sdk/0.8.5/createEnvironmentVariable/.codemod/DESCRIPTION.md rename to apps/registry/codemods/netlify-sdk/0.8.5/createEnvironmentVariable/README.md diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariable/.codemod/config.json b/apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariable/.codemodrc.json similarity index 100% rename from apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariable/.codemod/config.json rename to apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariable/.codemodrc.json diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariable/.codemod/DESCRIPTION.md b/apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariable/README.md similarity index 100% rename from apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariable/.codemod/DESCRIPTION.md rename to apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariable/README.md diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariables/.codemod/config.json b/apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariables/.codemodrc.json similarity index 100% rename from apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariables/.codemod/config.json rename to apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariables/.codemodrc.json diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariables/.codemod/DESCRIPTION.md b/apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariables/README.md similarity index 100% rename from apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariables/.codemod/DESCRIPTION.md rename to apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariables/README.md diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariable/.codemod/config.json b/apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariable/.codemodrc.json similarity index 100% rename from apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariable/.codemod/config.json rename to apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariable/.codemodrc.json diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariable/.codemod/DESCRIPTION.md b/apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariable/README.md similarity index 100% rename from apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariable/.codemod/DESCRIPTION.md rename to apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariable/README.md diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariables/.codemod/config.json b/apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariables/.codemodrc.json similarity index 100% rename from apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariables/.codemod/config.json rename to apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariables/.codemodrc.json diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariables/.codemod/DESCRIPTION.md b/apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariables/README.md similarity index 100% rename from apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariables/.codemod/DESCRIPTION.md rename to apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariables/README.md diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/getEnvironmentVariables/.codemod/config.json b/apps/registry/codemods/netlify-sdk/0.8.5/getEnvironmentVariables/.codemodrc.json similarity index 100% rename from apps/registry/codemods/netlify-sdk/0.8.5/getEnvironmentVariables/.codemod/config.json rename to apps/registry/codemods/netlify-sdk/0.8.5/getEnvironmentVariables/.codemodrc.json diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/getEnvironmentVariables/.codemod/DESCRIPTION.md b/apps/registry/codemods/netlify-sdk/0.8.5/getEnvironmentVariables/README.md similarity index 100% rename from apps/registry/codemods/netlify-sdk/0.8.5/getEnvironmentVariables/.codemod/DESCRIPTION.md rename to apps/registry/codemods/netlify-sdk/0.8.5/getEnvironmentVariables/README.md diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/netlify-sdk-0.8.5-recipe/.codemod/config.json b/apps/registry/codemods/netlify-sdk/0.8.5/netlify-sdk-0.8.5-recipe/.codemodrc.json similarity index 100% rename from apps/registry/codemods/netlify-sdk/0.8.5/netlify-sdk-0.8.5-recipe/.codemod/config.json rename to apps/registry/codemods/netlify-sdk/0.8.5/netlify-sdk-0.8.5-recipe/.codemodrc.json diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/netlify-sdk-0.8.5-recipe/.codemod/DESCRIPTION.md b/apps/registry/codemods/netlify-sdk/0.8.5/netlify-sdk-0.8.5-recipe/README.md similarity index 100% rename from apps/registry/codemods/netlify-sdk/0.8.5/netlify-sdk-0.8.5-recipe/.codemod/DESCRIPTION.md rename to apps/registry/codemods/netlify-sdk/0.8.5/netlify-sdk-0.8.5-recipe/README.md diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/patchEnvironmentVariable/.codemod/config.json b/apps/registry/codemods/netlify-sdk/0.8.5/patchEnvironmentVariable/.codemodrc.json similarity index 100% rename from apps/registry/codemods/netlify-sdk/0.8.5/patchEnvironmentVariable/.codemod/config.json rename to apps/registry/codemods/netlify-sdk/0.8.5/patchEnvironmentVariable/.codemodrc.json diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/patchEnvironmentVariable/.codemod/DESCRIPTION.md b/apps/registry/codemods/netlify-sdk/0.8.5/patchEnvironmentVariable/README.md similarity index 100% rename from apps/registry/codemods/netlify-sdk/0.8.5/patchEnvironmentVariable/.codemod/DESCRIPTION.md rename to apps/registry/codemods/netlify-sdk/0.8.5/patchEnvironmentVariable/README.md diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/updateEnvironmentVariable/.codemod/config.json b/apps/registry/codemods/netlify-sdk/0.8.5/updateEnvironmentVariable/.codemodrc.json similarity index 100% rename from apps/registry/codemods/netlify-sdk/0.8.5/updateEnvironmentVariable/.codemod/config.json rename to apps/registry/codemods/netlify-sdk/0.8.5/updateEnvironmentVariable/.codemodrc.json diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/updateEnvironmentVariable/.codemod/DESCRIPTION.md b/apps/registry/codemods/netlify-sdk/0.8.5/updateEnvironmentVariable/README.md similarity index 100% rename from apps/registry/codemods/netlify-sdk/0.8.5/updateEnvironmentVariable/.codemod/DESCRIPTION.md rename to apps/registry/codemods/netlify-sdk/0.8.5/updateEnvironmentVariable/README.md diff --git a/apps/registry/codemods/next-i18next/copy-keys/.codemod/config.json b/apps/registry/codemods/next-i18next/copy-keys/.codemodrc.json similarity index 100% rename from apps/registry/codemods/next-i18next/copy-keys/.codemod/config.json rename to apps/registry/codemods/next-i18next/copy-keys/.codemodrc.json diff --git a/apps/registry/codemods/next-i18next/copy-keys/.codemod/DESCRIPTION.md b/apps/registry/codemods/next-i18next/copy-keys/README.md similarity index 100% rename from apps/registry/codemods/next-i18next/copy-keys/.codemod/DESCRIPTION.md rename to apps/registry/codemods/next-i18next/copy-keys/README.md diff --git a/apps/registry/codemods/next/13/ab-test/.codemod/config.json b/apps/registry/codemods/next/13/ab-test/.codemodrc.json similarity index 100% rename from apps/registry/codemods/next/13/ab-test/.codemod/config.json rename to apps/registry/codemods/next/13/ab-test/.codemodrc.json diff --git a/apps/registry/codemods/next/13/ab-test/.codemod/DESCRIPTION.md b/apps/registry/codemods/next/13/ab-test/README.md similarity index 100% rename from apps/registry/codemods/next/13/ab-test/.codemod/DESCRIPTION.md rename to apps/registry/codemods/next/13/ab-test/README.md diff --git a/apps/registry/codemods/next/13/app-directory-boilerplate/.codemod/config.json b/apps/registry/codemods/next/13/app-directory-boilerplate/.codemodrc.json similarity index 100% rename from apps/registry/codemods/next/13/app-directory-boilerplate/.codemod/config.json rename to apps/registry/codemods/next/13/app-directory-boilerplate/.codemodrc.json diff --git a/apps/registry/codemods/next/13/app-directory-boilerplate/.codemod/DESCRIPTION.md b/apps/registry/codemods/next/13/app-directory-boilerplate/README.md similarity index 100% rename from apps/registry/codemods/next/13/app-directory-boilerplate/.codemod/DESCRIPTION.md rename to apps/registry/codemods/next/13/app-directory-boilerplate/README.md diff --git a/apps/registry/codemods/next/13/app-router-recipe/.codemod/config.json b/apps/registry/codemods/next/13/app-router-recipe/.codemodrc.json similarity index 100% rename from apps/registry/codemods/next/13/app-router-recipe/.codemod/config.json rename to apps/registry/codemods/next/13/app-router-recipe/.codemodrc.json diff --git a/apps/registry/codemods/next/13/app-router-recipe/.codemod/DESCRIPTION.md b/apps/registry/codemods/next/13/app-router-recipe/README.md similarity index 100% rename from apps/registry/codemods/next/13/app-router-recipe/.codemod/DESCRIPTION.md rename to apps/registry/codemods/next/13/app-router-recipe/README.md diff --git a/apps/registry/codemods/next/13/built-in-next-font/.codemod/config.json b/apps/registry/codemods/next/13/built-in-next-font/.codemodrc.json similarity index 100% rename from apps/registry/codemods/next/13/built-in-next-font/.codemod/config.json rename to apps/registry/codemods/next/13/built-in-next-font/.codemodrc.json diff --git a/apps/registry/codemods/next/13/built-in-next-font/.codemod/DESCRIPTION.md b/apps/registry/codemods/next/13/built-in-next-font/README.md similarity index 100% rename from apps/registry/codemods/next/13/built-in-next-font/.codemod/DESCRIPTION.md rename to apps/registry/codemods/next/13/built-in-next-font/README.md diff --git a/apps/registry/codemods/next/13/comment-deletable-files/.codemod/config.json b/apps/registry/codemods/next/13/comment-deletable-files/.codemodrc.json similarity index 100% rename from apps/registry/codemods/next/13/comment-deletable-files/.codemod/config.json rename to apps/registry/codemods/next/13/comment-deletable-files/.codemodrc.json diff --git a/apps/registry/codemods/next/13/comment-deletable-files/.codemod/DESCRIPTION.md b/apps/registry/codemods/next/13/comment-deletable-files/README.md similarity index 100% rename from apps/registry/codemods/next/13/comment-deletable-files/.codemod/DESCRIPTION.md rename to apps/registry/codemods/next/13/comment-deletable-files/README.md diff --git a/apps/registry/codemods/next/13/move-css-in-js-styles/.codemod/config.json b/apps/registry/codemods/next/13/move-css-in-js-styles/.codemodrc.json similarity index 100% rename from apps/registry/codemods/next/13/move-css-in-js-styles/.codemod/config.json rename to apps/registry/codemods/next/13/move-css-in-js-styles/.codemodrc.json diff --git a/apps/registry/codemods/next/13/move-css-in-js-styles/.codemod/DESCRIPTION.md b/apps/registry/codemods/next/13/move-css-in-js-styles/README.md similarity index 100% rename from apps/registry/codemods/next/13/move-css-in-js-styles/.codemod/DESCRIPTION.md rename to apps/registry/codemods/next/13/move-css-in-js-styles/README.md diff --git a/apps/registry/codemods/next/13/new-image-experimental/.codemod/config.json b/apps/registry/codemods/next/13/new-image-experimental/.codemodrc.json similarity index 100% rename from apps/registry/codemods/next/13/new-image-experimental/.codemod/config.json rename to apps/registry/codemods/next/13/new-image-experimental/.codemodrc.json diff --git a/apps/registry/codemods/next/13/new-image-experimental/.codemod/DESCRIPTION.md b/apps/registry/codemods/next/13/new-image-experimental/README.md similarity index 100% rename from apps/registry/codemods/next/13/new-image-experimental/.codemod/DESCRIPTION.md rename to apps/registry/codemods/next/13/new-image-experimental/README.md diff --git a/apps/registry/codemods/next/13/new-link/.codemod/config.json b/apps/registry/codemods/next/13/new-link/.codemodrc.json similarity index 100% rename from apps/registry/codemods/next/13/new-link/.codemod/config.json rename to apps/registry/codemods/next/13/new-link/.codemodrc.json diff --git a/apps/registry/codemods/next/13/new-link/.codemod/DESCRIPTION.md b/apps/registry/codemods/next/13/new-link/README.md similarity index 100% rename from apps/registry/codemods/next/13/new-link/.codemod/DESCRIPTION.md rename to apps/registry/codemods/next/13/new-link/README.md diff --git a/apps/registry/codemods/next/13/next-image-to-legacy-image/.codemod/config.json b/apps/registry/codemods/next/13/next-image-to-legacy-image/.codemodrc.json similarity index 100% rename from apps/registry/codemods/next/13/next-image-to-legacy-image/.codemod/config.json rename to apps/registry/codemods/next/13/next-image-to-legacy-image/.codemodrc.json diff --git a/apps/registry/codemods/next/13/next-image-to-legacy-image/.codemod/DESCRIPTION.md b/apps/registry/codemods/next/13/next-image-to-legacy-image/README.md similarity index 100% rename from apps/registry/codemods/next/13/next-image-to-legacy-image/.codemod/DESCRIPTION.md rename to apps/registry/codemods/next/13/next-image-to-legacy-image/README.md diff --git a/apps/registry/codemods/next/13/remove-get-static-props/.codemod/config.json b/apps/registry/codemods/next/13/remove-get-static-props/.codemodrc.json similarity index 100% rename from apps/registry/codemods/next/13/remove-get-static-props/.codemod/config.json rename to apps/registry/codemods/next/13/remove-get-static-props/.codemodrc.json diff --git a/apps/registry/codemods/next/13/remove-get-static-props/.codemod/DESCRIPTION.md b/apps/registry/codemods/next/13/remove-get-static-props/README.md similarity index 100% rename from apps/registry/codemods/next/13/remove-get-static-props/.codemod/DESCRIPTION.md rename to apps/registry/codemods/next/13/remove-get-static-props/README.md diff --git a/apps/registry/codemods/next/13/remove-next-export/.codemod/config.json b/apps/registry/codemods/next/13/remove-next-export/.codemodrc.json similarity index 100% rename from apps/registry/codemods/next/13/remove-next-export/.codemod/config.json rename to apps/registry/codemods/next/13/remove-next-export/.codemodrc.json diff --git a/apps/registry/codemods/next/13/remove-next-export/.codemod/DESCRIPTION.md b/apps/registry/codemods/next/13/remove-next-export/README.md similarity index 100% rename from apps/registry/codemods/next/13/remove-next-export/.codemod/DESCRIPTION.md rename to apps/registry/codemods/next/13/remove-next-export/README.md diff --git a/apps/registry/codemods/next/13/replace-api-routes/.codemod/config.json b/apps/registry/codemods/next/13/replace-api-routes/.codemodrc.json similarity index 100% rename from apps/registry/codemods/next/13/replace-api-routes/.codemod/config.json rename to apps/registry/codemods/next/13/replace-api-routes/.codemodrc.json diff --git a/apps/registry/codemods/next/13/replace-api-routes/.codemod/DESCRIPTION.md b/apps/registry/codemods/next/13/replace-api-routes/README.md similarity index 100% rename from apps/registry/codemods/next/13/replace-api-routes/.codemod/DESCRIPTION.md rename to apps/registry/codemods/next/13/replace-api-routes/README.md diff --git a/apps/registry/codemods/next/13/replace-next-head/.codemod/config.json b/apps/registry/codemods/next/13/replace-next-head/.codemodrc.json similarity index 100% rename from apps/registry/codemods/next/13/replace-next-head/.codemod/config.json rename to apps/registry/codemods/next/13/replace-next-head/.codemodrc.json diff --git a/apps/registry/codemods/next/13/replace-next-head/.codemod/DESCRIPTION.md b/apps/registry/codemods/next/13/replace-next-head/README.md similarity index 100% rename from apps/registry/codemods/next/13/replace-next-head/.codemod/DESCRIPTION.md rename to apps/registry/codemods/next/13/replace-next-head/README.md diff --git a/apps/registry/codemods/next/13/replace-next-router/.codemod/config.json b/apps/registry/codemods/next/13/replace-next-router/.codemodrc.json similarity index 100% rename from apps/registry/codemods/next/13/replace-next-router/.codemod/config.json rename to apps/registry/codemods/next/13/replace-next-router/.codemodrc.json diff --git a/apps/registry/codemods/next/13/replace-next-router/.codemod/DESCRIPTION.md b/apps/registry/codemods/next/13/replace-next-router/README.md similarity index 100% rename from apps/registry/codemods/next/13/replace-next-router/.codemod/DESCRIPTION.md rename to apps/registry/codemods/next/13/replace-next-router/README.md diff --git a/apps/registry/codemods/next/13/replace-use-search-params/.codemod/config.json b/apps/registry/codemods/next/13/replace-use-search-params/.codemodrc.json similarity index 100% rename from apps/registry/codemods/next/13/replace-use-search-params/.codemod/config.json rename to apps/registry/codemods/next/13/replace-use-search-params/.codemodrc.json diff --git a/apps/registry/codemods/next/13/replace-use-search-params/.codemod/DESCRIPTION.md b/apps/registry/codemods/next/13/replace-use-search-params/README.md similarity index 100% rename from apps/registry/codemods/next/13/replace-use-search-params/.codemod/DESCRIPTION.md rename to apps/registry/codemods/next/13/replace-use-search-params/README.md diff --git a/apps/registry/codemods/next/13/upsert-use-client-directive/.codemod/config.json b/apps/registry/codemods/next/13/upsert-use-client-directive/.codemodrc.json similarity index 100% rename from apps/registry/codemods/next/13/upsert-use-client-directive/.codemod/config.json rename to apps/registry/codemods/next/13/upsert-use-client-directive/.codemodrc.json diff --git a/apps/registry/codemods/next/13/upsert-use-client-directive/.codemod/DESCRIPTION.md b/apps/registry/codemods/next/13/upsert-use-client-directive/README.md similarity index 100% rename from apps/registry/codemods/next/13/upsert-use-client-directive/.codemod/DESCRIPTION.md rename to apps/registry/codemods/next/13/upsert-use-client-directive/README.md diff --git a/apps/registry/codemods/next/14/metadata-to-viewport-export/.codemod/config.json b/apps/registry/codemods/next/14/metadata-to-viewport-export/.codemodrc.json similarity index 100% rename from apps/registry/codemods/next/14/metadata-to-viewport-export/.codemod/config.json rename to apps/registry/codemods/next/14/metadata-to-viewport-export/.codemodrc.json diff --git a/apps/registry/codemods/next/14/metadata-to-viewport-export/.codemod/DESCRIPTION.md b/apps/registry/codemods/next/14/metadata-to-viewport-export/README.md similarity index 100% rename from apps/registry/codemods/next/14/metadata-to-viewport-export/.codemod/DESCRIPTION.md rename to apps/registry/codemods/next/14/metadata-to-viewport-export/README.md diff --git a/apps/registry/codemods/next/14/next-og-import/.codemod/config.json b/apps/registry/codemods/next/14/next-og-import/.codemodrc.json similarity index 100% rename from apps/registry/codemods/next/14/next-og-import/.codemod/config.json rename to apps/registry/codemods/next/14/next-og-import/.codemodrc.json diff --git a/apps/registry/codemods/next/14/next-og-import/.codemod/DESCRIPTION.md b/apps/registry/codemods/next/14/next-og-import/README.md similarity index 100% rename from apps/registry/codemods/next/14/next-og-import/.codemod/DESCRIPTION.md rename to apps/registry/codemods/next/14/next-og-import/README.md diff --git a/apps/registry/codemods/react-redux/0/add-state-type/.codemod/config.json b/apps/registry/codemods/react-redux/0/add-state-type/.codemodrc.json similarity index 100% rename from apps/registry/codemods/react-redux/0/add-state-type/.codemod/config.json rename to apps/registry/codemods/react-redux/0/add-state-type/.codemodrc.json diff --git a/apps/registry/codemods/react-redux/0/add-state-type/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-redux/0/add-state-type/README.md similarity index 100% rename from apps/registry/codemods/react-redux/0/add-state-type/.codemod/DESCRIPTION.md rename to apps/registry/codemods/react-redux/0/add-state-type/README.md diff --git a/apps/registry/codemods/react-router/4/add-exact-prop/.codemod/config.json b/apps/registry/codemods/react-router/4/add-exact-prop/.codemodrc.json similarity index 100% rename from apps/registry/codemods/react-router/4/add-exact-prop/.codemod/config.json rename to apps/registry/codemods/react-router/4/add-exact-prop/.codemodrc.json diff --git a/apps/registry/codemods/react-router/4/add-exact-prop/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-router/4/add-exact-prop/README.md similarity index 100% rename from apps/registry/codemods/react-router/4/add-exact-prop/.codemod/DESCRIPTION.md rename to apps/registry/codemods/react-router/4/add-exact-prop/README.md diff --git a/apps/registry/codemods/react-router/4/create-hash-history/.codemod/config.json b/apps/registry/codemods/react-router/4/create-hash-history/.codemodrc.json similarity index 100% rename from apps/registry/codemods/react-router/4/create-hash-history/.codemod/config.json rename to apps/registry/codemods/react-router/4/create-hash-history/.codemodrc.json diff --git a/apps/registry/codemods/react-router/4/create-hash-history/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-router/4/create-hash-history/README.md similarity index 100% rename from apps/registry/codemods/react-router/4/create-hash-history/.codemod/DESCRIPTION.md rename to apps/registry/codemods/react-router/4/create-hash-history/README.md diff --git a/apps/registry/codemods/react-router/4/hash-router/.codemod/config.json b/apps/registry/codemods/react-router/4/hash-router/.codemodrc.json similarity index 100% rename from apps/registry/codemods/react-router/4/hash-router/.codemod/config.json rename to apps/registry/codemods/react-router/4/hash-router/.codemodrc.json diff --git a/apps/registry/codemods/react-router/4/hash-router/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-router/4/hash-router/README.md similarity index 100% rename from apps/registry/codemods/react-router/4/hash-router/.codemod/DESCRIPTION.md rename to apps/registry/codemods/react-router/4/hash-router/README.md diff --git a/apps/registry/codemods/react-router/4/index-route/.codemod/config.json b/apps/registry/codemods/react-router/4/index-route/.codemodrc.json similarity index 100% rename from apps/registry/codemods/react-router/4/index-route/.codemod/config.json rename to apps/registry/codemods/react-router/4/index-route/.codemodrc.json diff --git a/apps/registry/codemods/react-router/4/index-route/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-router/4/index-route/README.md similarity index 100% rename from apps/registry/codemods/react-router/4/index-route/.codemod/DESCRIPTION.md rename to apps/registry/codemods/react-router/4/index-route/README.md diff --git a/apps/registry/codemods/react-router/4/remove-with-props/.codemod/config.json b/apps/registry/codemods/react-router/4/remove-with-props/.codemodrc.json similarity index 100% rename from apps/registry/codemods/react-router/4/remove-with-props/.codemod/config.json rename to apps/registry/codemods/react-router/4/remove-with-props/.codemodrc.json diff --git a/apps/registry/codemods/react-router/4/remove-with-props/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-router/4/remove-with-props/README.md similarity index 100% rename from apps/registry/codemods/react-router/4/remove-with-props/.codemod/DESCRIPTION.md rename to apps/registry/codemods/react-router/4/remove-with-props/README.md diff --git a/apps/registry/codemods/react-router/4/rename-imports/.codemod/config.json b/apps/registry/codemods/react-router/4/rename-imports/.codemodrc.json similarity index 100% rename from apps/registry/codemods/react-router/4/rename-imports/.codemod/config.json rename to apps/registry/codemods/react-router/4/rename-imports/.codemodrc.json diff --git a/apps/registry/codemods/react-router/4/rename-imports/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-router/4/rename-imports/README.md similarity index 100% rename from apps/registry/codemods/react-router/4/rename-imports/.codemod/DESCRIPTION.md rename to apps/registry/codemods/react-router/4/rename-imports/README.md diff --git a/apps/registry/codemods/react-router/4/replace-location-query/.codemod/config.json b/apps/registry/codemods/react-router/4/replace-location-query/.codemodrc.json similarity index 100% rename from apps/registry/codemods/react-router/4/replace-location-query/.codemod/config.json rename to apps/registry/codemods/react-router/4/replace-location-query/.codemodrc.json diff --git a/apps/registry/codemods/react-router/4/replace-location-query/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-router/4/replace-location-query/README.md similarity index 100% rename from apps/registry/codemods/react-router/4/replace-location-query/.codemod/DESCRIPTION.md rename to apps/registry/codemods/react-router/4/replace-location-query/README.md diff --git a/apps/registry/codemods/react-router/4/replace-param-prop/.codemod/config.json b/apps/registry/codemods/react-router/4/replace-param-prop/.codemodrc.json similarity index 100% rename from apps/registry/codemods/react-router/4/replace-param-prop/.codemod/config.json rename to apps/registry/codemods/react-router/4/replace-param-prop/.codemodrc.json diff --git a/apps/registry/codemods/react-router/4/replace-param-prop/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-router/4/replace-param-prop/README.md similarity index 100% rename from apps/registry/codemods/react-router/4/replace-param-prop/.codemod/DESCRIPTION.md rename to apps/registry/codemods/react-router/4/replace-param-prop/README.md diff --git a/apps/registry/codemods/react-router/4/wrap-with-switch/.codemod/config.json b/apps/registry/codemods/react-router/4/wrap-with-switch/.codemodrc.json similarity index 100% rename from apps/registry/codemods/react-router/4/wrap-with-switch/.codemod/config.json rename to apps/registry/codemods/react-router/4/wrap-with-switch/.codemodrc.json diff --git a/apps/registry/codemods/react-router/4/wrap-with-switch/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-router/4/wrap-with-switch/README.md similarity index 100% rename from apps/registry/codemods/react-router/4/wrap-with-switch/.codemod/DESCRIPTION.md rename to apps/registry/codemods/react-router/4/wrap-with-switch/README.md diff --git a/apps/registry/codemods/react-router/6/compat-route/.codemod/config.json b/apps/registry/codemods/react-router/6/compat-route/.codemodrc.json similarity index 100% rename from apps/registry/codemods/react-router/6/compat-route/.codemod/config.json rename to apps/registry/codemods/react-router/6/compat-route/.codemodrc.json diff --git a/apps/registry/codemods/react-router/6/compat-route/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-router/6/compat-route/README.md similarity index 100% rename from apps/registry/codemods/react-router/6/compat-route/.codemod/DESCRIPTION.md rename to apps/registry/codemods/react-router/6/compat-route/README.md diff --git a/apps/registry/codemods/react-router/6/compat-router/.codemod/config.json b/apps/registry/codemods/react-router/6/compat-router/.codemodrc.json similarity index 100% rename from apps/registry/codemods/react-router/6/compat-router/.codemod/config.json rename to apps/registry/codemods/react-router/6/compat-router/.codemodrc.json diff --git a/apps/registry/codemods/react-router/6/compat-router/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-router/6/compat-router/README.md similarity index 100% rename from apps/registry/codemods/react-router/6/compat-router/.codemod/DESCRIPTION.md rename to apps/registry/codemods/react-router/6/compat-router/README.md diff --git a/apps/registry/codemods/react-router/6/link-to-props/.codemod/config.json b/apps/registry/codemods/react-router/6/link-to-props/.codemodrc.json similarity index 100% rename from apps/registry/codemods/react-router/6/link-to-props/.codemod/config.json rename to apps/registry/codemods/react-router/6/link-to-props/.codemodrc.json diff --git a/apps/registry/codemods/react-router/6/link-to-props/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-router/6/link-to-props/README.md similarity index 100% rename from apps/registry/codemods/react-router/6/link-to-props/.codemod/DESCRIPTION.md rename to apps/registry/codemods/react-router/6/link-to-props/README.md diff --git a/apps/registry/codemods/react-router/6/match-path-arguments/.codemod/config.json b/apps/registry/codemods/react-router/6/match-path-arguments/.codemodrc.json similarity index 100% rename from apps/registry/codemods/react-router/6/match-path-arguments/.codemod/config.json rename to apps/registry/codemods/react-router/6/match-path-arguments/.codemodrc.json diff --git a/apps/registry/codemods/react-router/6/match-path-arguments/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-router/6/match-path-arguments/README.md similarity index 100% rename from apps/registry/codemods/react-router/6/match-path-arguments/.codemod/DESCRIPTION.md rename to apps/registry/codemods/react-router/6/match-path-arguments/README.md diff --git a/apps/registry/codemods/react-router/6/navlink-exact-end/.codemod/config.json b/apps/registry/codemods/react-router/6/navlink-exact-end/.codemodrc.json similarity index 100% rename from apps/registry/codemods/react-router/6/navlink-exact-end/.codemod/config.json rename to apps/registry/codemods/react-router/6/navlink-exact-end/.codemodrc.json diff --git a/apps/registry/codemods/react-router/6/navlink-exact-end/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-router/6/navlink-exact-end/README.md similarity index 100% rename from apps/registry/codemods/react-router/6/navlink-exact-end/.codemod/DESCRIPTION.md rename to apps/registry/codemods/react-router/6/navlink-exact-end/README.md diff --git a/apps/registry/codemods/react-router/6/redirect-to-navigate/.codemod/config.json b/apps/registry/codemods/react-router/6/redirect-to-navigate/.codemodrc.json similarity index 100% rename from apps/registry/codemods/react-router/6/redirect-to-navigate/.codemod/config.json rename to apps/registry/codemods/react-router/6/redirect-to-navigate/.codemodrc.json diff --git a/apps/registry/codemods/react-router/6/redirect-to-navigate/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-router/6/redirect-to-navigate/README.md similarity index 100% rename from apps/registry/codemods/react-router/6/redirect-to-navigate/.codemod/DESCRIPTION.md rename to apps/registry/codemods/react-router/6/redirect-to-navigate/README.md diff --git a/apps/registry/codemods/react-router/6/remove-active-classname/.codemod/config.json b/apps/registry/codemods/react-router/6/remove-active-classname/.codemodrc.json similarity index 100% rename from apps/registry/codemods/react-router/6/remove-active-classname/.codemod/config.json rename to apps/registry/codemods/react-router/6/remove-active-classname/.codemodrc.json diff --git a/apps/registry/codemods/react-router/6/remove-active-classname/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-router/6/remove-active-classname/README.md similarity index 100% rename from apps/registry/codemods/react-router/6/remove-active-classname/.codemod/DESCRIPTION.md rename to apps/registry/codemods/react-router/6/remove-active-classname/README.md diff --git a/apps/registry/codemods/react-router/6/remove-active-style/.codemod/config.json b/apps/registry/codemods/react-router/6/remove-active-style/.codemodrc.json similarity index 100% rename from apps/registry/codemods/react-router/6/remove-active-style/.codemod/config.json rename to apps/registry/codemods/react-router/6/remove-active-style/.codemodrc.json diff --git a/apps/registry/codemods/react-router/6/remove-active-style/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-router/6/remove-active-style/README.md similarity index 100% rename from apps/registry/codemods/react-router/6/remove-active-style/.codemod/DESCRIPTION.md rename to apps/registry/codemods/react-router/6/remove-active-style/README.md diff --git a/apps/registry/codemods/react-router/6/remove-compat-router/.codemod/config.json b/apps/registry/codemods/react-router/6/remove-compat-router/.codemodrc.json similarity index 100% rename from apps/registry/codemods/react-router/6/remove-compat-router/.codemod/config.json rename to apps/registry/codemods/react-router/6/remove-compat-router/.codemodrc.json diff --git a/apps/registry/codemods/react-router/6/remove-compat-router/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-router/6/remove-compat-router/README.md similarity index 100% rename from apps/registry/codemods/react-router/6/remove-compat-router/.codemod/DESCRIPTION.md rename to apps/registry/codemods/react-router/6/remove-compat-router/README.md diff --git a/apps/registry/codemods/react-router/6/remove-go-hooks/.codemod/config.json b/apps/registry/codemods/react-router/6/remove-go-hooks/.codemodrc.json similarity index 100% rename from apps/registry/codemods/react-router/6/remove-go-hooks/.codemod/config.json rename to apps/registry/codemods/react-router/6/remove-go-hooks/.codemodrc.json diff --git a/apps/registry/codemods/react-router/6/remove-go-hooks/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-router/6/remove-go-hooks/README.md similarity index 100% rename from apps/registry/codemods/react-router/6/remove-go-hooks/.codemod/DESCRIPTION.md rename to apps/registry/codemods/react-router/6/remove-go-hooks/README.md diff --git a/apps/registry/codemods/react-router/6/remove-redirect-inside-switch/.codemod/config.json b/apps/registry/codemods/react-router/6/remove-redirect-inside-switch/.codemodrc.json similarity index 100% rename from apps/registry/codemods/react-router/6/remove-redirect-inside-switch/.codemod/config.json rename to apps/registry/codemods/react-router/6/remove-redirect-inside-switch/.codemodrc.json diff --git a/apps/registry/codemods/react-router/6/remove-redirect-inside-switch/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-router/6/remove-redirect-inside-switch/README.md similarity index 100% rename from apps/registry/codemods/react-router/6/remove-redirect-inside-switch/.codemod/DESCRIPTION.md rename to apps/registry/codemods/react-router/6/remove-redirect-inside-switch/README.md diff --git a/apps/registry/codemods/react-router/6/rename-compat-imports/.codemod/config.json b/apps/registry/codemods/react-router/6/rename-compat-imports/.codemodrc.json similarity index 100% rename from apps/registry/codemods/react-router/6/rename-compat-imports/.codemod/config.json rename to apps/registry/codemods/react-router/6/rename-compat-imports/.codemodrc.json diff --git a/apps/registry/codemods/react-router/6/rename-compat-imports/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-router/6/rename-compat-imports/README.md similarity index 100% rename from apps/registry/codemods/react-router/6/rename-compat-imports/.codemod/DESCRIPTION.md rename to apps/registry/codemods/react-router/6/rename-compat-imports/README.md diff --git a/apps/registry/codemods/react-router/6/static-router-imports/.codemod/config.json b/apps/registry/codemods/react-router/6/static-router-imports/.codemodrc.json similarity index 100% rename from apps/registry/codemods/react-router/6/static-router-imports/.codemod/config.json rename to apps/registry/codemods/react-router/6/static-router-imports/.codemodrc.json diff --git a/apps/registry/codemods/react-router/6/static-router-imports/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-router/6/static-router-imports/README.md similarity index 100% rename from apps/registry/codemods/react-router/6/static-router-imports/.codemod/DESCRIPTION.md rename to apps/registry/codemods/react-router/6/static-router-imports/README.md diff --git a/apps/registry/codemods/react-router/6/use-location/.codemod/config.json b/apps/registry/codemods/react-router/6/use-location/.codemodrc.json similarity index 100% rename from apps/registry/codemods/react-router/6/use-location/.codemod/config.json rename to apps/registry/codemods/react-router/6/use-location/.codemodrc.json diff --git a/apps/registry/codemods/react-router/6/use-location/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-router/6/use-location/README.md similarity index 100% rename from apps/registry/codemods/react-router/6/use-location/.codemod/DESCRIPTION.md rename to apps/registry/codemods/react-router/6/use-location/README.md diff --git a/apps/registry/codemods/react-router/6/use-navigate/.codemod/config.json b/apps/registry/codemods/react-router/6/use-navigate/.codemodrc.json similarity index 100% rename from apps/registry/codemods/react-router/6/use-navigate/.codemod/config.json rename to apps/registry/codemods/react-router/6/use-navigate/.codemodrc.json diff --git a/apps/registry/codemods/react-router/6/use-navigate/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-router/6/use-navigate/README.md similarity index 100% rename from apps/registry/codemods/react-router/6/use-navigate/.codemod/DESCRIPTION.md rename to apps/registry/codemods/react-router/6/use-navigate/README.md diff --git a/apps/registry/codemods/react-router/6/use-params/.codemod/config.json b/apps/registry/codemods/react-router/6/use-params/.codemodrc.json similarity index 100% rename from apps/registry/codemods/react-router/6/use-params/.codemod/config.json rename to apps/registry/codemods/react-router/6/use-params/.codemodrc.json diff --git a/apps/registry/codemods/react-router/6/use-params/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-router/6/use-params/README.md similarity index 100% rename from apps/registry/codemods/react-router/6/use-params/.codemod/DESCRIPTION.md rename to apps/registry/codemods/react-router/6/use-params/README.md diff --git a/apps/registry/codemods/react-router/6/use-route-match/.codemod/config.json b/apps/registry/codemods/react-router/6/use-route-match/.codemodrc.json similarity index 100% rename from apps/registry/codemods/react-router/6/use-route-match/.codemod/config.json rename to apps/registry/codemods/react-router/6/use-route-match/.codemodrc.json diff --git a/apps/registry/codemods/react-router/6/use-route-match/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-router/6/use-route-match/README.md similarity index 100% rename from apps/registry/codemods/react-router/6/use-route-match/.codemod/DESCRIPTION.md rename to apps/registry/codemods/react-router/6/use-route-match/README.md diff --git a/apps/registry/codemods/react/19/remove-context-provider/.codemod/config.json b/apps/registry/codemods/react/19/remove-context-provider/.codemodrc.json similarity index 100% rename from apps/registry/codemods/react/19/remove-context-provider/.codemod/config.json rename to apps/registry/codemods/react/19/remove-context-provider/.codemodrc.json diff --git a/apps/registry/codemods/react/19/remove-context-provider/.codemod/DESCRIPTION.md b/apps/registry/codemods/react/19/remove-context-provider/README.md similarity index 100% rename from apps/registry/codemods/react/19/remove-context-provider/.codemod/DESCRIPTION.md rename to apps/registry/codemods/react/19/remove-context-provider/README.md diff --git a/apps/registry/codemods/react/19/remove-forward-ref/.codemod/config.json b/apps/registry/codemods/react/19/remove-forward-ref/.codemodrc.json similarity index 100% rename from apps/registry/codemods/react/19/remove-forward-ref/.codemod/config.json rename to apps/registry/codemods/react/19/remove-forward-ref/.codemodrc.json diff --git a/apps/registry/codemods/react/19/remove-forward-ref/.codemod/DESCRIPTION.md b/apps/registry/codemods/react/19/remove-forward-ref/README.md similarity index 100% rename from apps/registry/codemods/react/19/remove-forward-ref/.codemod/DESCRIPTION.md rename to apps/registry/codemods/react/19/remove-forward-ref/README.md diff --git a/apps/registry/codemods/react/19/remove-memoization-hooks/.codemod/config.json b/apps/registry/codemods/react/19/remove-memoization-hooks/.codemodrc.json similarity index 100% rename from apps/registry/codemods/react/19/remove-memoization-hooks/.codemod/config.json rename to apps/registry/codemods/react/19/remove-memoization-hooks/.codemodrc.json diff --git a/apps/registry/codemods/react/19/remove-memoization-hooks/.codemod/DESCRIPTION.md b/apps/registry/codemods/react/19/remove-memoization-hooks/README.md similarity index 100% rename from apps/registry/codemods/react/19/remove-memoization-hooks/.codemod/DESCRIPTION.md rename to apps/registry/codemods/react/19/remove-memoization-hooks/README.md diff --git a/apps/registry/codemods/react/19/use-context-hook/.codemod/config.json b/apps/registry/codemods/react/19/use-context-hook/.codemodrc.json similarity index 100% rename from apps/registry/codemods/react/19/use-context-hook/.codemod/config.json rename to apps/registry/codemods/react/19/use-context-hook/.codemodrc.json diff --git a/apps/registry/codemods/react/19/use-context-hook/.codemod/DESCRIPTION.md b/apps/registry/codemods/react/19/use-context-hook/README.md similarity index 100% rename from apps/registry/codemods/react/19/use-context-hook/.codemod/DESCRIPTION.md rename to apps/registry/codemods/react/19/use-context-hook/README.md diff --git a/apps/registry/codemods/react/prop-types-typescript/.codemod/config.json b/apps/registry/codemods/react/prop-types-typescript/.codemodrc.json similarity index 100% rename from apps/registry/codemods/react/prop-types-typescript/.codemod/config.json rename to apps/registry/codemods/react/prop-types-typescript/.codemodrc.json diff --git a/apps/registry/codemods/react/prop-types-typescript/.codemod/DESCRIPTION.md b/apps/registry/codemods/react/prop-types-typescript/README.md similarity index 100% rename from apps/registry/codemods/react/prop-types-typescript/.codemod/DESCRIPTION.md rename to apps/registry/codemods/react/prop-types-typescript/README.md diff --git a/apps/registry/codemods/react/replace-react-fc-typescript/.codemod/config.json b/apps/registry/codemods/react/replace-react-fc-typescript/.codemodrc.json similarity index 100% rename from apps/registry/codemods/react/replace-react-fc-typescript/.codemod/config.json rename to apps/registry/codemods/react/replace-react-fc-typescript/.codemodrc.json diff --git a/apps/registry/codemods/react/replace-react-fc-typescript/.codemod/DESCRIPTION.md b/apps/registry/codemods/react/replace-react-fc-typescript/README.md similarity index 100% rename from apps/registry/codemods/react/replace-react-fc-typescript/.codemod/DESCRIPTION.md rename to apps/registry/codemods/react/replace-react-fc-typescript/README.md diff --git a/apps/registry/codemods/redwoodjs/core/4/auth-decoder/.codemod/config.json b/apps/registry/codemods/redwoodjs/core/4/auth-decoder/.codemodrc.json similarity index 100% rename from apps/registry/codemods/redwoodjs/core/4/auth-decoder/.codemod/config.json rename to apps/registry/codemods/redwoodjs/core/4/auth-decoder/.codemodrc.json diff --git a/apps/registry/codemods/redwoodjs/core/4/auth-decoder/.codemod/DESCRIPTION.md b/apps/registry/codemods/redwoodjs/core/4/auth-decoder/README.md similarity index 100% rename from apps/registry/codemods/redwoodjs/core/4/auth-decoder/.codemod/DESCRIPTION.md rename to apps/registry/codemods/redwoodjs/core/4/auth-decoder/README.md diff --git a/apps/registry/codemods/redwoodjs/core/4/redwood-apollo-provider/.codemod/config.json b/apps/registry/codemods/redwoodjs/core/4/redwood-apollo-provider/.codemodrc.json similarity index 100% rename from apps/registry/codemods/redwoodjs/core/4/redwood-apollo-provider/.codemod/config.json rename to apps/registry/codemods/redwoodjs/core/4/redwood-apollo-provider/.codemodrc.json diff --git a/apps/registry/codemods/redwoodjs/core/4/redwood-apollo-provider/.codemod/DESCRIPTION.md b/apps/registry/codemods/redwoodjs/core/4/redwood-apollo-provider/README.md similarity index 100% rename from apps/registry/codemods/redwoodjs/core/4/redwood-apollo-provider/.codemod/DESCRIPTION.md rename to apps/registry/codemods/redwoodjs/core/4/redwood-apollo-provider/README.md diff --git a/apps/registry/codemods/redwoodjs/core/4/router-use-auth/.codemod/config.json b/apps/registry/codemods/redwoodjs/core/4/router-use-auth/.codemodrc.json similarity index 100% rename from apps/registry/codemods/redwoodjs/core/4/router-use-auth/.codemod/config.json rename to apps/registry/codemods/redwoodjs/core/4/router-use-auth/.codemodrc.json diff --git a/apps/registry/codemods/redwoodjs/core/4/router-use-auth/.codemod/DESCRIPTION.md b/apps/registry/codemods/redwoodjs/core/4/router-use-auth/README.md similarity index 100% rename from apps/registry/codemods/redwoodjs/core/4/router-use-auth/.codemod/DESCRIPTION.md rename to apps/registry/codemods/redwoodjs/core/4/router-use-auth/README.md diff --git a/apps/registry/codemods/redwoodjs/core/4/use-armor/.codemod/config.json b/apps/registry/codemods/redwoodjs/core/4/use-armor/.codemodrc.json similarity index 100% rename from apps/registry/codemods/redwoodjs/core/4/use-armor/.codemod/config.json rename to apps/registry/codemods/redwoodjs/core/4/use-armor/.codemodrc.json diff --git a/apps/registry/codemods/redwoodjs/core/4/use-armor/.codemod/DESCRIPTION.md b/apps/registry/codemods/redwoodjs/core/4/use-armor/README.md similarity index 100% rename from apps/registry/codemods/redwoodjs/core/4/use-armor/.codemod/DESCRIPTION.md rename to apps/registry/codemods/redwoodjs/core/4/use-armor/README.md diff --git a/apps/registry/codemods/remove-unused-feature-flags-2/.codemod/config.json b/apps/registry/codemods/remove-unused-feature-flags-2/.codemodrc.json similarity index 100% rename from apps/registry/codemods/remove-unused-feature-flags-2/.codemod/config.json rename to apps/registry/codemods/remove-unused-feature-flags-2/.codemodrc.json diff --git a/apps/registry/codemods/remove-unused-feature-flags-2/.codemod/DESCRIPTION.md b/apps/registry/codemods/remove-unused-feature-flags-2/README.md similarity index 100% rename from apps/registry/codemods/remove-unused-feature-flags-2/.codemod/DESCRIPTION.md rename to apps/registry/codemods/remove-unused-feature-flags-2/README.md diff --git a/apps/registry/codemods/typescript/remove-public-modifier/.codemod/config.json b/apps/registry/codemods/typescript/remove-public-modifier/.codemodrc.json similarity index 100% rename from apps/registry/codemods/typescript/remove-public-modifier/.codemod/config.json rename to apps/registry/codemods/typescript/remove-public-modifier/.codemodrc.json diff --git a/apps/registry/codemods/typescript/remove-public-modifier/.codemod/DESCRIPTION.md b/apps/registry/codemods/typescript/remove-public-modifier/README.md similarity index 100% rename from apps/registry/codemods/typescript/remove-public-modifier/.codemod/DESCRIPTION.md rename to apps/registry/codemods/typescript/remove-public-modifier/README.md diff --git a/apps/registry/codemods/typescript/use-template-literals/.codemod/config.json b/apps/registry/codemods/typescript/use-template-literals/.codemodrc.json similarity index 100% rename from apps/registry/codemods/typescript/use-template-literals/.codemod/config.json rename to apps/registry/codemods/typescript/use-template-literals/.codemodrc.json diff --git a/apps/registry/codemods/typescript/use-template-literals/.codemod/DESCRIPTION.md b/apps/registry/codemods/typescript/use-template-literals/README.md similarity index 100% rename from apps/registry/codemods/typescript/use-template-literals/.codemod/DESCRIPTION.md rename to apps/registry/codemods/typescript/use-template-literals/README.md From 8b8572384e1635301fd0a6b8cd7ee51d71937273 Mon Sep 17 00:00:00 2001 From: Benny Joo Date: Tue, 5 Mar 2024 12:46:33 +0000 Subject: [PATCH 05/11] [Registry] Add missing DESCRIPTION.md for react router codemods - CDMD-2718 (#121) --- .../codemods/react-router/4/add-exact-prop/README.md | 5 +++++ .../codemods/react-router/4/create-hash-history/README.md | 4 ++++ apps/registry/codemods/react-router/4/hash-router/README.md | 5 +++++ apps/registry/codemods/react-router/4/index-route/README.md | 5 +++++ .../codemods/react-router/4/remove-with-props/README.md | 4 ++++ .../codemods/react-router/4/rename-imports/README.md | 5 +++++ .../codemods/react-router/4/wrap-with-switch/README.md | 4 ++++ apps/registry/codemods/react-router/6/compat-route/README.md | 4 ++++ .../registry/codemods/react-router/6/compat-router/README.md | 4 ++++ .../registry/codemods/react-router/6/link-to-props/README.md | 4 ++++ .../codemods/react-router/6/match-path-arguments/README.md | 4 ++++ .../codemods/react-router/6/navlink-exact-end/README.md | 4 ++++ .../codemods/react-router/6/redirect-to-navigate/README.md | 4 ++++ .../react-router/6/remove-active-classname/README.md | 4 ++++ .../codemods/react-router/6/remove-active-style/README.md | 4 ++++ .../codemods/react-router/6/remove-compat-router/README.md | 4 ++++ .../codemods/react-router/6/remove-go-hooks/README.md | 4 ++++ .../react-router/6/remove-redirect-inside-switch/README.md | 4 ++++ .../codemods/react-router/6/rename-compat-imports/README.md | 4 ++++ .../codemods/react-router/6/static-router-imports/README.md | 4 ++++ apps/registry/codemods/react-router/6/use-location/README.md | 4 ++++ apps/registry/codemods/react-router/6/use-navigate/README.md | 4 ++++ apps/registry/codemods/react-router/6/use-params/README.md | 4 ++++ .../codemods/react-router/6/use-route-match/README.md | 4 ++++ 24 files changed, 100 insertions(+) diff --git a/apps/registry/codemods/react-router/4/add-exact-prop/README.md b/apps/registry/codemods/react-router/4/add-exact-prop/README.md index e69de29bb..8763b2fc2 100644 --- a/apps/registry/codemods/react-router/4/add-exact-prop/README.md +++ b/apps/registry/codemods/react-router/4/add-exact-prop/README.md @@ -0,0 +1,5 @@ +# Add Exact Prop + +## Description + +Add `exact` prop to all instances of `Route` component. \ No newline at end of file diff --git a/apps/registry/codemods/react-router/4/create-hash-history/README.md b/apps/registry/codemods/react-router/4/create-hash-history/README.md index e69de29bb..eca13e973 100644 --- a/apps/registry/codemods/react-router/4/create-hash-history/README.md +++ b/apps/registry/codemods/react-router/4/create-hash-history/README.md @@ -0,0 +1,4 @@ +# Create Hash History + +## Description + diff --git a/apps/registry/codemods/react-router/4/hash-router/README.md b/apps/registry/codemods/react-router/4/hash-router/README.md index e69de29bb..eaf9a957d 100644 --- a/apps/registry/codemods/react-router/4/hash-router/README.md +++ b/apps/registry/codemods/react-router/4/hash-router/README.md @@ -0,0 +1,5 @@ +# Hash Router + +## Description + +Run this codemod to replace `Router` using `hashHistory` to `HashRouter` in v4. \ No newline at end of file diff --git a/apps/registry/codemods/react-router/4/index-route/README.md b/apps/registry/codemods/react-router/4/index-route/README.md index e69de29bb..556564542 100644 --- a/apps/registry/codemods/react-router/4/index-route/README.md +++ b/apps/registry/codemods/react-router/4/index-route/README.md @@ -0,0 +1,5 @@ +# Hash Router + +## Description + +Replace `IndexRoute` with `Route` having `exact` prop set to `true`. \ No newline at end of file diff --git a/apps/registry/codemods/react-router/4/remove-with-props/README.md b/apps/registry/codemods/react-router/4/remove-with-props/README.md index e69de29bb..c3b16bf02 100644 --- a/apps/registry/codemods/react-router/4/remove-with-props/README.md +++ b/apps/registry/codemods/react-router/4/remove-with-props/README.md @@ -0,0 +1,4 @@ +# Remove With Props + +## Description + diff --git a/apps/registry/codemods/react-router/4/rename-imports/README.md b/apps/registry/codemods/react-router/4/rename-imports/README.md index e69de29bb..47dfc9f6b 100644 --- a/apps/registry/codemods/react-router/4/rename-imports/README.md +++ b/apps/registry/codemods/react-router/4/rename-imports/README.md @@ -0,0 +1,5 @@ +# Rename Imports + +## Description + +Replace `react-router` import source with `react-router-dom`. \ No newline at end of file diff --git a/apps/registry/codemods/react-router/4/wrap-with-switch/README.md b/apps/registry/codemods/react-router/4/wrap-with-switch/README.md index e69de29bb..53fd34cd2 100644 --- a/apps/registry/codemods/react-router/4/wrap-with-switch/README.md +++ b/apps/registry/codemods/react-router/4/wrap-with-switch/README.md @@ -0,0 +1,4 @@ +# Wrap With Switch + +## Description + diff --git a/apps/registry/codemods/react-router/6/compat-route/README.md b/apps/registry/codemods/react-router/6/compat-route/README.md index e69de29bb..bbfa8f802 100644 --- a/apps/registry/codemods/react-router/6/compat-route/README.md +++ b/apps/registry/codemods/react-router/6/compat-route/README.md @@ -0,0 +1,4 @@ +# Compat Route + +## Description + diff --git a/apps/registry/codemods/react-router/6/compat-router/README.md b/apps/registry/codemods/react-router/6/compat-router/README.md index e69de29bb..cc83dff9e 100644 --- a/apps/registry/codemods/react-router/6/compat-router/README.md +++ b/apps/registry/codemods/react-router/6/compat-router/README.md @@ -0,0 +1,4 @@ +# Compat Router + +## Description + diff --git a/apps/registry/codemods/react-router/6/link-to-props/README.md b/apps/registry/codemods/react-router/6/link-to-props/README.md index e69de29bb..9915d625d 100644 --- a/apps/registry/codemods/react-router/6/link-to-props/README.md +++ b/apps/registry/codemods/react-router/6/link-to-props/README.md @@ -0,0 +1,4 @@ +# Link To Props + +## Description + diff --git a/apps/registry/codemods/react-router/6/match-path-arguments/README.md b/apps/registry/codemods/react-router/6/match-path-arguments/README.md index e69de29bb..0bac27fed 100644 --- a/apps/registry/codemods/react-router/6/match-path-arguments/README.md +++ b/apps/registry/codemods/react-router/6/match-path-arguments/README.md @@ -0,0 +1,4 @@ +# Match Path Arguments + +## Description + diff --git a/apps/registry/codemods/react-router/6/navlink-exact-end/README.md b/apps/registry/codemods/react-router/6/navlink-exact-end/README.md index e69de29bb..d43bbf84f 100644 --- a/apps/registry/codemods/react-router/6/navlink-exact-end/README.md +++ b/apps/registry/codemods/react-router/6/navlink-exact-end/README.md @@ -0,0 +1,4 @@ +# Navlink Exact End + +## Description + diff --git a/apps/registry/codemods/react-router/6/redirect-to-navigate/README.md b/apps/registry/codemods/react-router/6/redirect-to-navigate/README.md index e69de29bb..1c95ef363 100644 --- a/apps/registry/codemods/react-router/6/redirect-to-navigate/README.md +++ b/apps/registry/codemods/react-router/6/redirect-to-navigate/README.md @@ -0,0 +1,4 @@ +# Redirect To Navigate + +## Description + diff --git a/apps/registry/codemods/react-router/6/remove-active-classname/README.md b/apps/registry/codemods/react-router/6/remove-active-classname/README.md index e69de29bb..8da5d8332 100644 --- a/apps/registry/codemods/react-router/6/remove-active-classname/README.md +++ b/apps/registry/codemods/react-router/6/remove-active-classname/README.md @@ -0,0 +1,4 @@ +# Remove Active Classname + +## Description + diff --git a/apps/registry/codemods/react-router/6/remove-active-style/README.md b/apps/registry/codemods/react-router/6/remove-active-style/README.md index e69de29bb..5b3274925 100644 --- a/apps/registry/codemods/react-router/6/remove-active-style/README.md +++ b/apps/registry/codemods/react-router/6/remove-active-style/README.md @@ -0,0 +1,4 @@ +# Remove Active Style + +## Description + diff --git a/apps/registry/codemods/react-router/6/remove-compat-router/README.md b/apps/registry/codemods/react-router/6/remove-compat-router/README.md index e69de29bb..2cc379948 100644 --- a/apps/registry/codemods/react-router/6/remove-compat-router/README.md +++ b/apps/registry/codemods/react-router/6/remove-compat-router/README.md @@ -0,0 +1,4 @@ +# Remove Compat Router + +## Description + diff --git a/apps/registry/codemods/react-router/6/remove-go-hooks/README.md b/apps/registry/codemods/react-router/6/remove-go-hooks/README.md index e69de29bb..259a3722a 100644 --- a/apps/registry/codemods/react-router/6/remove-go-hooks/README.md +++ b/apps/registry/codemods/react-router/6/remove-go-hooks/README.md @@ -0,0 +1,4 @@ +# Remove Go Hooks + +## Description + diff --git a/apps/registry/codemods/react-router/6/remove-redirect-inside-switch/README.md b/apps/registry/codemods/react-router/6/remove-redirect-inside-switch/README.md index e69de29bb..4d18e940f 100644 --- a/apps/registry/codemods/react-router/6/remove-redirect-inside-switch/README.md +++ b/apps/registry/codemods/react-router/6/remove-redirect-inside-switch/README.md @@ -0,0 +1,4 @@ +# Remove Redirect Inside Switch + +## Description + diff --git a/apps/registry/codemods/react-router/6/rename-compat-imports/README.md b/apps/registry/codemods/react-router/6/rename-compat-imports/README.md index e69de29bb..6050c8bab 100644 --- a/apps/registry/codemods/react-router/6/rename-compat-imports/README.md +++ b/apps/registry/codemods/react-router/6/rename-compat-imports/README.md @@ -0,0 +1,4 @@ +# Remove Compat Imports + +## Description + diff --git a/apps/registry/codemods/react-router/6/static-router-imports/README.md b/apps/registry/codemods/react-router/6/static-router-imports/README.md index e69de29bb..7d6aa9ead 100644 --- a/apps/registry/codemods/react-router/6/static-router-imports/README.md +++ b/apps/registry/codemods/react-router/6/static-router-imports/README.md @@ -0,0 +1,4 @@ +# Static Router Imports + +## Description + diff --git a/apps/registry/codemods/react-router/6/use-location/README.md b/apps/registry/codemods/react-router/6/use-location/README.md index e69de29bb..2c65e5d52 100644 --- a/apps/registry/codemods/react-router/6/use-location/README.md +++ b/apps/registry/codemods/react-router/6/use-location/README.md @@ -0,0 +1,4 @@ +# Use Location + +## Description + diff --git a/apps/registry/codemods/react-router/6/use-navigate/README.md b/apps/registry/codemods/react-router/6/use-navigate/README.md index e69de29bb..8d6334730 100644 --- a/apps/registry/codemods/react-router/6/use-navigate/README.md +++ b/apps/registry/codemods/react-router/6/use-navigate/README.md @@ -0,0 +1,4 @@ +# Use Navigate + +## Description + diff --git a/apps/registry/codemods/react-router/6/use-params/README.md b/apps/registry/codemods/react-router/6/use-params/README.md index e69de29bb..5681c54ff 100644 --- a/apps/registry/codemods/react-router/6/use-params/README.md +++ b/apps/registry/codemods/react-router/6/use-params/README.md @@ -0,0 +1,4 @@ +# Use Params + +## Description + diff --git a/apps/registry/codemods/react-router/6/use-route-match/README.md b/apps/registry/codemods/react-router/6/use-route-match/README.md index e69de29bb..0796c1ad5 100644 --- a/apps/registry/codemods/react-router/6/use-route-match/README.md +++ b/apps/registry/codemods/react-router/6/use-route-match/README.md @@ -0,0 +1,4 @@ +# Use Route Match + +## Description + From 80979fb67b6c9a7a3712d2174602d513e9adbf0b Mon Sep 17 00:00:00 2001 From: Benny Joo Date: Tue, 5 Mar 2024 12:46:47 +0000 Subject: [PATCH 06/11] [CLI] Remove file limit arg (#119) --- apps/cli/src/buildOptions.ts | 6 ------ apps/cli/src/constants.ts | 1 - apps/cli/src/runCodemod.ts | 14 ++------------ apps/cli/src/schemata/flowSettingsSchema.ts | 2 -- apps/cli/test/runner.test.ts | 1 - apps/docs/deploying-codemods/cli.mdx | 9 --------- apps/vsce/package.json | 6 ------ apps/vsce/src/components/buildArguments.ts | 1 - apps/vsce/src/configuration.ts | 3 --- 9 files changed, 2 insertions(+), 41 deletions(-) diff --git a/apps/cli/src/buildOptions.ts b/apps/cli/src/buildOptions.ts index 82c92bc1c..e0a583ed6 100644 --- a/apps/cli/src/buildOptions.ts +++ b/apps/cli/src/buildOptions.ts @@ -68,12 +68,6 @@ export const buildOptions = >(y: Argv) => { description: 'The engine to use with the local codemod: "jscodeshift", "ts-morph", "filemod"', }) - .option("limit", { - alias: "f", - type: "number", - description: "File limit for processing", - default: 1000, - }) .option("raw", { alias: "r", type: "boolean", diff --git a/apps/cli/src/constants.ts b/apps/cli/src/constants.ts index 45b81a42e..b86365a3c 100644 --- a/apps/cli/src/constants.ts +++ b/apps/cli/src/constants.ts @@ -1,7 +1,6 @@ export const DEFAULT_INCLUDE_PATTERNS = ["**/*.*"]; export const DEFAULT_EXCLUDE_PATTERNS = ["**/node_modules/**/*.*"]; export const DEFAULT_INPUT_DIRECTORY_PATH = process.cwd(); -export const DEFAULT_FILE_LIMIT = 7_000; export const DEFAULT_DISABLE_PRETTIER = false; export const DEFAULT_NO_CACHE = false; export const DEFAULT_USE_JSON = false; diff --git a/apps/cli/src/runCodemod.ts b/apps/cli/src/runCodemod.ts index bf9bc7cd2..e59aff4e6 100644 --- a/apps/cli/src/runCodemod.ts +++ b/apps/cli/src/runCodemod.ts @@ -57,9 +57,7 @@ export const buildPaths = async ( dot: true, }); - return filemodPaths - .filter((path) => flowPaths.includes(path)) - .slice(0, flowSettings.limit); + return filemodPaths.filter((path) => flowPaths.includes(path)); } const paths = await glob(patterns.slice(), { @@ -71,7 +69,7 @@ export const buildPaths = async ( dot: true, }); - return paths.slice(0, flowSettings.limit); + return paths; }; async function* buildPathGenerator( @@ -93,16 +91,8 @@ async function* buildPathGenerator( dot: true, }); - let fileCount = 0; - for await (const chunk of stream) { - if (fileCount >= flowSettings.limit) { - break; - } - yield chunk.toString(); - - ++fileCount; } stream.emit("close"); diff --git a/apps/cli/src/schemata/flowSettingsSchema.ts b/apps/cli/src/schemata/flowSettingsSchema.ts index 869018557..d853ce916 100644 --- a/apps/cli/src/schemata/flowSettingsSchema.ts +++ b/apps/cli/src/schemata/flowSettingsSchema.ts @@ -13,7 +13,6 @@ import { import { DEFAULT_DISABLE_PRETTIER, DEFAULT_EXCLUDE_PATTERNS, - DEFAULT_FILE_LIMIT, DEFAULT_INCLUDE_PATTERNS, DEFAULT_INPUT_DIRECTORY_PATH, DEFAULT_NO_CACHE, @@ -26,7 +25,6 @@ export const flowSettingsSchema = object({ exclude: optional(array(string()), DEFAULT_EXCLUDE_PATTERNS), target: optional(string()), files: optional(array(string())), - limit: optional(number([minValue(0), integer()]), DEFAULT_FILE_LIMIT), raw: optional(boolean(), DEFAULT_DISABLE_PRETTIER), "no-cache": optional(boolean(), DEFAULT_NO_CACHE), noCache: optional(boolean(), DEFAULT_NO_CACHE), diff --git a/apps/cli/test/runner.test.ts b/apps/cli/test/runner.test.ts index 8fc94c525..6201baaea 100644 --- a/apps/cli/test/runner.test.ts +++ b/apps/cli/test/runner.test.ts @@ -98,7 +98,6 @@ describe("Runner", () => { exclude: [], target: "/code", files: ["/code/a.ts", "/code/b.ts", "/code/c.ts"], - limit: 3, raw: true, "no-cache": false, noCache: false, diff --git a/apps/docs/deploying-codemods/cli.mdx b/apps/docs/deploying-codemods/cli.mdx index 6837b231c..c88245c80 100644 --- a/apps/docs/deploying-codemods/cli.mdx +++ b/apps/docs/deploying-codemods/cli.mdx @@ -152,15 +152,6 @@ codemod --source [path] --engine [codemod engine] This option is used when running a local codemod using the `--source` option. - - Can be used to specify a limit to the number of files targeted by the codemod. - -```bash -codemod [codemod name] --limit [number] -``` - - - Can be used to disable prettier formatting to the files affected by the codemod. diff --git a/apps/vsce/package.json b/apps/vsce/package.json index 27accaa33..7e618269c 100644 --- a/apps/vsce/package.json +++ b/apps/vsce/package.json @@ -84,12 +84,6 @@ "configuration": { "title": "Codemod VSCode Extension Configuration", "properties": { - "codemod.fileLimit": { - "order": 1, - "type": "number", - "default": 2000, - "description": "The maximum number of files to execute any codemod over" - }, "codemod.workerThreadCount": { "order": 2, "type": "number", diff --git a/apps/vsce/src/components/buildArguments.ts b/apps/vsce/src/components/buildArguments.ts index dd8777e00..2c45d9cb9 100644 --- a/apps/vsce/src/components/buildArguments.ts +++ b/apps/vsce/src/components/buildArguments.ts @@ -66,7 +66,6 @@ export const buildArguments = ( } args.push("--threads", String(configuration.workerThreadCount)); - args.push("--limit", String(configuration.fileLimit)); if (!configuration.formatWithPrettier) { args.push("--raw"); diff --git a/apps/vsce/src/configuration.ts b/apps/vsce/src/configuration.ts index abd8d3583..815fa70ef 100644 --- a/apps/vsce/src/configuration.ts +++ b/apps/vsce/src/configuration.ts @@ -3,8 +3,6 @@ import * as vscode from "vscode"; export const getConfiguration = () => { const configuration = vscode.workspace.getConfiguration("codemod"); - const fileLimit = configuration.get("fileLimit") ?? 100; - const workerThreadCount = configuration.get("workerThreadCount") ?? 4; const includePatterns = configuration.get("include") ?? [ @@ -18,7 +16,6 @@ export const getConfiguration = () => { configuration.get("formatWithPrettier") ?? false; return { - fileLimit, workerThreadCount, includePatterns, excludePatterns, From 27b66d3573c7db24d7ac1c8ea9b4a7806ffa7676 Mon Sep 17 00:00:00 2001 From: Benny Joo Date: Tue, 5 Mar 2024 17:04:52 +0000 Subject: [PATCH 07/11] Fix codemod login (#127) --- apps/studio/src/api/getAccessToken.ts | 4 +++- apps/studio/src/env.ts | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/apps/studio/src/api/getAccessToken.ts b/apps/studio/src/api/getAccessToken.ts index 0e54a1bc2..3bc27315e 100644 --- a/apps/studio/src/api/getAccessToken.ts +++ b/apps/studio/src/api/getAccessToken.ts @@ -1,9 +1,11 @@ import { type AxiosError } from "axios"; +import { env } from "~/env"; import { BUILD_ACCESS_TOKEN } from "../constants"; import { Either } from "../utils/Either"; import apiClient from "./client"; -const X_CODEMODCOM_ACCESS_TOKEN = process.env.X_CODEMODCOM_ACCESS_TOKEN ?? ""; +const X_CODEMODCOM_ACCESS_TOKEN = + env.NEXT_PUBLIC_X_CODEMODCOM_ACCESS_TOKEN ?? ""; const getAccessToken = async ({ clerkToken, }: { diff --git a/apps/studio/src/env.ts b/apps/studio/src/env.ts index 24da3ddf2..cca8ebc6b 100644 --- a/apps/studio/src/env.ts +++ b/apps/studio/src/env.ts @@ -16,6 +16,7 @@ export const env = createEnv({ client: { NEXT_PUBLIC_API_URL: z.string(), NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY: z.string(), + NEXT_PUBLIC_X_CODEMODCOM_ACCESS_TOKEN: z.string(), }, /** @@ -27,5 +28,7 @@ export const env = createEnv({ NEXT_PUBLIC_API_URL: process.env.NEXT_PUBLIC_API_URL, NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY: process.env.NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY, + NEXT_PUBLIC_X_CODEMODCOM_ACCESS_TOKEN: + process.env.NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY, }, }); From ba6637f9cb85eb8e7e92406afe136c906d5a34a5 Mon Sep 17 00:00:00 2001 From: Sasha Date: Tue, 5 Mar 2024 18:44:03 +0100 Subject: [PATCH 08/11] [Global] fix: Use `.codemodrc.json` and `README.md` (#125) --- .github/workflows/build-and-upload-to-s3.yml | 22 +- apps/cli/package.json | 4 +- apps/cli/src/buildCodemodOptions.ts | 6 +- apps/cli/src/downloadCodemod.ts | 4 +- apps/cli/src/handleListCliCommand.ts | 4 +- apps/cli/src/handlePublishCliCommand.ts | 22 +- apps/cli/src/repositoryConfiguration.ts | 2 - apps/cli/src/schemata/argumentsSchema.ts | 3 + apps/cli/src/schemata/codemodConfigSchema.ts | 135 ++++++++---- apps/cli/test/registry.tar.gz | Bin 44604 -> 138906 bytes apps/cli/test/runner.test.ts | 3 +- apps/cli/test/tarService.test.ts | 10 +- apps/registry/builder/index.ts | 204 ++++++++++++------ apps/registry/builder/package.json | 6 +- .../remove-unused-feature-flags/package.json | 4 +- .../package.json | 2 +- .../Java/delete-unused-fields/package.json | 2 +- .../5/props-changed-migration/package.json | 4 +- .../antd/5/remove-style-import/package.json | 4 +- .../removed-component-migration/package.json | 4 +- .../package.json | 4 +- .../codemods/bull/bullmq/package.json | 4 +- .../package.json | 4 +- .../package.json | 4 +- .../generate-url-patterns/package.json | 4 +- .../app-controller-router-props/package.json | 4 +- .../ember/5/array-wrapper/package.json | 4 +- .../package.json | 4 +- .../ember/5/cp-property-map/package.json | 4 +- .../codemods/ember/5/cp-property/package.json | 4 +- .../codemods/ember/5/cp-volatile/package.json | 4 +- .../ember/5/deprecate-merge/package.json | 4 +- .../5/deprecate-router-events/package.json | 4 +- .../ember/5/ember-jquery-legacy/package.json | 4 +- .../5/es5-getter-ember-codemod/package.json | 4 +- .../ember/5/fpe-computed/package.json | 4 +- .../ember/5/fpe-observes/package.json | 4 +- .../codemods/ember/5/fpe-on/package.json | 4 +- .../codemods/ember/5/jquery-apis/package.json | 4 +- .../ember/5/jquery-event/package.json | 4 +- .../5/notify-property-change/package.json | 4 +- .../5/object-new-constructor/package.json | 4 +- .../eslint/biome/migrate-rules/README.md | 8 +- .../eslint/biome/migrate-rules/package.json | 4 +- .../eslint/biome/migrate-rules/test/test.ts | 8 +- apps/registry/codemods/i18n/package.json | 4 +- .../0/add-deprecation-comment/package.json | 4 +- .../immutable/0/nest-from-js/package.json | 4 +- .../immutable/0/remove-from-js/package.json | 4 +- .../immutable/0/remove-import/package.json | 4 +- .../immutable/0/remove-to-js/package.json | 4 +- .../immutable/0/replace-get-in/package.json | 4 +- .../immutable/0/replace-get/package.json | 4 +- .../immutable/0/replace-merge/package.json | 4 +- .../immutable/0/replace-set-in/package.json | 4 +- .../immutable/0/replace-set/package.json | 4 +- .../4/isterable-to-iscollection/package.json | 4 +- .../immutable/4/map-to-array/package.json | 4 +- .../immutable/4/rename-to-seq/package.json | 4 +- .../migrate-codemod-registry/.codemodrc.json | 1 + .../migrate-codemod-registry/package.json | 4 +- .../migrate-codemod-registry/src/index.ts | 4 +- .../codemods/jest/vitest/package.json | 4 +- .../vitest/migrate-configuration/README.md | 4 +- .../vitest/migrate-configuration/package.json | 4 +- .../vitest/migrate-configuration/test/test.ts | 8 +- .../mocha/vitest/migrate-tests/package.json | 4 +- .../codemods/mocha/vitest/recipe/package.json | 2 +- .../msw/2/callback-signature/package.json | 4 +- .../codemods/msw/2/ctx-fetch/package.json | 4 +- .../codemods/msw/2/imports/package.json | 4 +- .../2/lifecycle-events-signature/package.json | 4 +- .../codemods/msw/2/print-handler/package.json | 4 +- .../msw/2/req-passthrough/package.json | 4 +- .../msw/2/request-changes/package.json | 4 +- .../msw/2/response-usages/package.json | 4 +- .../codemods/msw/2/type-args/package.json | 4 +- .../msw/2/upgrade-recipe/package.json | 2 +- .../mui/5/core-styles-import/package.json | 4 +- .../0.8.1/addBuildEventContext/package.json | 4 +- .../0.8.1/addBuildEventHandler/package.json | 4 +- .../disableBuildEventHandlers/package.json | 4 +- .../enableBuildEventHandlers/package.json | 4 +- .../netlify-sdk/0.8.1/exportZod/package.json | 4 +- .../0.8.4/addApiHandler/package.json | 4 +- .../createEnvironmentVariable/package.json | 4 +- .../0.8.5/createOrUpdateVariable/package.json | 4 +- .../createOrUpdateVariables/package.json | 4 +- .../deleteEnvironmentVariable/package.json | 4 +- .../deleteEnvironmentVariables/package.json | 4 +- .../getEnvironmentVariables/package.json | 4 +- .../netlify-sdk-0.8.5-recipe/package.json | 2 +- .../patchEnvironmentVariable/package.json | 4 +- .../updateEnvironmentVariable/package.json | 4 +- .../next-i18next/copy-keys/package.json | 4 +- .../codemods/next/13/ab-test/package.json | 4 +- .../13/app-directory-boilerplate/package.json | 4 +- .../next/13/app-router-recipe/package.json | 2 +- .../next/13/built-in-next-font/package.json | 4 +- .../13/comment-deletable-files/package.json | 4 +- .../13/move-css-in-js-styles/package.json | 4 +- .../13/new-image-experimental/package.json | 4 +- .../codemods/next/13/new-link/package.json | 4 +- .../next-image-to-legacy-image/package.json | 4 +- .../13/remove-get-static-props/package.json | 4 +- .../next/13/remove-next-export/package.json | 4 +- .../next/13/remove-next-export/test/test.ts | 8 +- .../next/13/replace-api-routes/package.json | 4 +- .../next/13/replace-next-head/package.json | 4 +- .../next/13/replace-next-router/package.json | 4 +- .../13/replace-use-search-params/package.json | 4 +- .../upsert-use-client-directive/package.json | 4 +- .../metadata-to-viewport-export/package.json | 4 +- .../next/14/next-og-import/package.json | 4 +- .../codemods/pull_request_template.md | 2 +- .../react-redux/0/add-state-type/package.json | 4 +- .../4/add-exact-prop/package.json | 4 +- .../4/create-hash-history/package.json | 4 +- .../react-router/4/hash-router/package.json | 4 +- .../react-router/4/index-route/package.json | 4 +- .../4/remove-with-props/package.json | 4 +- .../4/rename-imports/package.json | 4 +- .../4/replace-location-query/package.json | 4 +- .../4/replace-param-prop/package.json | 4 +- .../4/wrap-with-switch/package.json | 4 +- .../react-router/6/compat-route/package.json | 4 +- .../react-router/6/compat-router/package.json | 4 +- .../react-router/6/link-to-props/package.json | 4 +- .../6/match-path-arguments/package.json | 4 +- .../6/navlink-exact-end/package.json | 4 +- .../6/redirect-to-navigate/package.json | 4 +- .../6/remove-active-classname/package.json | 4 +- .../6/remove-active-style/package.json | 4 +- .../6/remove-compat-router/package.json | 4 +- .../6/remove-go-hooks/package.json | 4 +- .../package.json | 4 +- .../6/rename-compat-imports/package.json | 4 +- .../6/static-router-imports/package.json | 4 +- .../react-router/6/use-location/package.json | 4 +- .../react-router/6/use-navigate/package.json | 4 +- .../react-router/6/use-params/package.json | 4 +- .../6/use-route-match/package.json | 4 +- .../19/remove-context-provider/package.json | 4 +- .../react/19/remove-forward-ref/package.json | 4 +- .../19/remove-memoization-hooks/package.json | 4 +- .../react/19/use-context-hook/package.json | 4 +- .../react/prop-types-typescript/package.json | 4 +- .../replace-react-fc-typescript/package.json | 4 +- .../core/4/auth-decoder/package.json | 4 +- .../4/redwood-apollo-provider/package.json | 4 +- .../core/4/router-use-auth/package.json | 4 +- .../redwoodjs/core/4/use-armor/package.json | 4 +- .../package.json | 4 +- .../remove-public-modifier/package.json | 4 +- .../use-template-literals/package.json | 4 +- apps/registry/creator/buildPackageJsonData.ts | 2 +- apps/registry/creator/index.ts | 2 +- apps/studio-backend/src/publishHandler.ts | 6 +- apps/studio/src/utils/download.ts | 8 +- apps/vsce/src/components/engineService.ts | 4 +- apps/vsce/src/extension.ts | 2 +- pnpm-lock.yaml | 91 ++------ 162 files changed, 591 insertions(+), 512 deletions(-) diff --git a/.github/workflows/build-and-upload-to-s3.yml b/.github/workflows/build-and-upload-to-s3.yml index df4c8e31d..424024b75 100644 --- a/.github/workflows/build-and-upload-to-s3.yml +++ b/.github/workflows/build-and-upload-to-s3.yml @@ -27,14 +27,14 @@ jobs: env: NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY: 'YOUR_CLERK_PUBLISHABLE_KEY' NEXT_PUBLIC_API_URL: 'http://localhost:5173' - - name: Upload to S3 - uses: jakejarvis/s3-sync-action@master - with: - args: --acl public-read --follow-symlinks - env: - AWS_S3_BUCKET: ${{ secrets.AWS_S3_BUCKET }} - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - AWS_REGION: 'us-west-1' - DEST_DIR: 'codemod-registry' - SOURCE_DIR: 'apps/registry/builder/dist' + # - name: Upload to S3 + # uses: jakejarvis/s3-sync-action@master + # with: + # args: --acl public-read --follow-symlinks + # env: + # AWS_S3_BUCKET: ${{ secrets.AWS_S3_BUCKET }} + # AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + # AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + # AWS_REGION: 'us-west-1' + # DEST_DIR: 'codemod-registry' + # SOURCE_DIR: 'apps/registry/builder/dist' diff --git a/apps/cli/package.json b/apps/cli/package.json index 6e8d4e70f..2b9373ad7 100644 --- a/apps/cli/package.json +++ b/apps/cli/package.json @@ -40,6 +40,7 @@ "@types/columnify": "^1.5.4", "@types/js-yaml": "4.0.9", "@types/jscodeshift": "^0.11.5", + "@types/ms": "^0.7.34", "@types/node": "18.11.9", "@types/sinon": "^10.0.20", "@types/tar": "^6.1.5", @@ -97,6 +98,7 @@ "access": "public" }, "dependencies": { - "js-yaml": "4.1.0" + "js-yaml": "4.1.0", + "ms": "^2.1.3" } } diff --git a/apps/cli/src/buildCodemodOptions.ts b/apps/cli/src/buildCodemodOptions.ts index b087ca944..132af01c4 100644 --- a/apps/cli/src/buildCodemodOptions.ts +++ b/apps/cli/src/buildCodemodOptions.ts @@ -71,7 +71,7 @@ export const buildSourcedCodemodOptions = async ( } if ( - !["config.json", "package.json"] + ![".codemodrc.json", "package.json"] .map((lookedupFilePath) => path.join(codemodOptions.source, lookedupFilePath), ) @@ -100,12 +100,12 @@ export const buildSourcedCodemodOptions = async ( const engine = await extractEngine( fs, - path.join(codemodOptions.source, "config.json"), + path.join(codemodOptions.source, ".codemodrc.json"), ); if (engine === null) { throw new Error( - `Engine specified in config.json at ${codemodOptions.source} is not a JavaScript codemod engine or does not exist.`, + `Engine specified in .codemodrc.json at ${codemodOptions.source} is not a JavaScript codemod engine or does not exist.`, ); } diff --git a/apps/cli/src/downloadCodemod.ts b/apps/cli/src/downloadCodemod.ts index 3413a14c7..f73a970f7 100644 --- a/apps/cli/src/downloadCodemod.ts +++ b/apps/cli/src/downloadCodemod.ts @@ -86,10 +86,10 @@ export class CodemodDownloader implements CodemodDownloaderBlueprint { try { // download the config - const configPath = join(directoryPath, "config.json"); + const configPath = join(directoryPath, ".codemodrc.json"); const buffer = await this._fileDownloadService.download( - `${CODEMOD_REGISTRY_URL}/${hashDigest}/config.json`, + `${CODEMOD_REGISTRY_URL}/${hashDigest}/.codemodrc.json`, configPath, ); diff --git a/apps/cli/src/handleListCliCommand.ts b/apps/cli/src/handleListCliCommand.ts index dc4a049b8..e6fc160f5 100644 --- a/apps/cli/src/handleListCliCommand.ts +++ b/apps/cli/src/handleListCliCommand.ts @@ -21,7 +21,7 @@ const configJsonSchema = v.object({ export const getConfigFiles = async () => { const configurationDirectoryPath = join(homedir(), ".codemod"); - const configFiles = await glob("**/config.json", { + const configFiles = await glob("**/.codemodrc.json", { absolute: true, cwd: configurationDirectoryPath, fs, @@ -55,7 +55,7 @@ export const getConfigFiles = async () => { export const handleListNamesCommand = async ( printer: PrinterBlueprint, - short: boolean, + short?: boolean, ) => { const configObjects = await getConfigFiles(); diff --git a/apps/cli/src/handlePublishCliCommand.ts b/apps/cli/src/handlePublishCliCommand.ts index 0a8788bcf..f5ed3e8ff 100644 --- a/apps/cli/src/handlePublishCliCommand.ts +++ b/apps/cli/src/handlePublishCliCommand.ts @@ -7,6 +7,7 @@ import { mkdir, writeFile } from "fs/promises"; import { object, optional, parse, string } from "valibot"; import { publish, validateAccessToken } from "./apis.js"; import type { PrinterBlueprint } from "./printer.js"; +import { codemodConfigSchema } from "./schemata/codemodConfigSchema.js"; import { boldText, colorizeText } from "./utils.js"; const packageJsonSchema = object({ @@ -15,12 +16,6 @@ const packageJsonSchema = object({ license: optional(string()), }); -const configJsonSchema = object({ - schemaVersion: string(), - name: string(), - engine: string(), -}); - const getToken = (): Promise => { const configurationDirectoryPath = join(homedir(), ".codemod"); const tokenTxtPath = join(configurationDirectoryPath, "token.txt"); @@ -83,16 +78,16 @@ export const handlePublishCliCommand = async ( }); const configJsonData = await fs.promises.readFile( - join(source, "config.json"), + join(source, ".codemodrc.json"), { encoding: "utf-8", }, ); - const configJson = parse(configJsonSchema, JSON.parse(configJsonData)); + const configJson = parse(codemodConfigSchema, JSON.parse(configJsonData)); - if (configJson.name !== pkg.name) { + if (!("name" in configJson) || configJson.name !== pkg.name) { throw new Error( - `The "name" field in package.json must match with that in config.json.\nIt must must start with your GitHub username with a slash ("@${username}/") and contain allowed characters (a-z, A-Z, 0-9, _, / or -).`, + `The "name" field in package.json must match with that in .codemodrc.json.\nIt must must start with your GitHub username with a slash ("@${username}/") and contain allowed characters (a-z, A-Z, 0-9, _, / or -).`, ); } @@ -113,7 +108,7 @@ export const handlePublishCliCommand = async ( const formData = new FormData(); formData.append("index.cjs", Buffer.from(indexCjsData)); - formData.append("config.json", Buffer.from(configJsonData)); + formData.append(".codemodrc.json", Buffer.from(configJsonData)); if (descriptionMdData) { formData.append("description.md", descriptionMdData); @@ -144,7 +139,10 @@ export const handlePublishCliCommand = async ( await mkdir(codemodDirectoryPath, { recursive: true }); try { - await writeFile(join(codemodDirectoryPath, "config.json"), configJsonData); + await writeFile( + join(codemodDirectoryPath, ".codemodrc.json"), + configJsonData, + ); await writeFile(join(codemodDirectoryPath, "index.cjs"), indexCjsData); if (descriptionMdData) { await writeFile( diff --git a/apps/cli/src/repositoryConfiguration.ts b/apps/cli/src/repositoryConfiguration.ts index 5ef8b9cb6..f7c96db2e 100644 --- a/apps/cli/src/repositoryConfiguration.ts +++ b/apps/cli/src/repositoryConfiguration.ts @@ -25,7 +25,6 @@ const preCommitCodemodSchema = union([ ]); const repositoryConfigurationSchema = object({ - schemaVersion: optional(literal("1.0.0"), "1.0.0"), preCommitCodemods: optional(array(preCommitCodemodSchema), []), }); @@ -40,7 +39,6 @@ export const parseRepositoryConfiguration = ( return parse(repositoryConfigurationSchema, i); } catch (error) { return { - schemaVersion: "1.0.0", preCommitCodemods: [], }; } diff --git a/apps/cli/src/schemata/argumentsSchema.ts b/apps/cli/src/schemata/argumentsSchema.ts index ebf3fe4ca..3188b695d 100644 --- a/apps/cli/src/schemata/argumentsSchema.ts +++ b/apps/cli/src/schemata/argumentsSchema.ts @@ -15,16 +15,19 @@ export const argumentsSchema = array( object({ name: string(), kind: literal("string"), + required: optional(boolean(), false), default: optional(string()), }), object({ name: string(), kind: literal("number"), + required: optional(boolean(), false), default: optional(number()), }), object({ name: string(), kind: literal("boolean"), + required: optional(boolean(), false), default: optional(boolean()), }), ]), diff --git a/apps/cli/src/schemata/codemodConfigSchema.ts b/apps/cli/src/schemata/codemodConfigSchema.ts index c3791f2bb..8dd9b6f5d 100644 --- a/apps/cli/src/schemata/codemodConfigSchema.ts +++ b/apps/cli/src/schemata/codemodConfigSchema.ts @@ -1,16 +1,22 @@ +import ms from "ms"; import { - type Output, + Output, array, + boolean, + coerce, + custom, literal, + merge, + number, object, optional, + regex, string, + tuple, union, } from "valibot"; import { argumentsSchema } from "./argumentsSchema.js"; -const optionalArgumentsSchema = optional(argumentsSchema, []); - const PIRANHA_LANGUAGES = [ "java", "kt", @@ -22,43 +28,96 @@ const PIRANHA_LANGUAGES = [ "scala", ] as const; -const piranhaLanguageSchema = union( - PIRANHA_LANGUAGES.map((language) => literal(language)), -); +// Source: https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string +const semVerRegex = + /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/; -export const codemodConfigSchema = union([ - object({ - schemaVersion: literal("1.0.0"), - engine: literal("piranha"), - language: piranhaLanguageSchema, - arguments: optionalArgumentsSchema, - }), - object({ - schemaVersion: literal("1.0.0"), - engine: literal("jscodeshift"), - arguments: optionalArgumentsSchema, - }), - object({ - schemaVersion: literal("1.0.0"), - engine: literal("ts-morph"), - arguments: optionalArgumentsSchema, - }), - object({ - schemaVersion: literal("1.0.0"), - engine: union([literal("repomod-engine"), literal("filemod")]), - arguments: optionalArgumentsSchema, - }), - object({ - schemaVersion: literal("1.0.0"), - engine: literal("recipe"), - names: array(string()), - arguments: optionalArgumentsSchema, - }), - object({ - schemaVersion: literal("1.0.0"), - engine: literal("ast-grep"), - arguments: optionalArgumentsSchema, +const knownEngines = [ + literal("jscodeshift"), + literal("repomod-engine"), + literal("filemod"), + literal("ts-morph"), + literal("ast-grep"), +]; + +const versionValidator = union([ + // react < 18.0.2 (preferred) + string([regex(semVerRegex)]), + // react < 18 (for example, when no latest version of a given major is out yet) + coerce(number(), (input) => Number(input)), +]); + +const configJsonBaseSchema = object({ + description: optional(string()), + version: versionValidator, + // We should detect the owner when user publishes. This is for backwards compatibility. + owner: optional(string()), + // We should have custom logic for this in our code. For orgs, we default to private, for users, we default to public + // just as npm does. + private: optional(boolean()), + // Array of tuples: [libName, versionOperator, version] + applicability: optional( + array( + tuple([ + string(), + union([ + literal("<"), + literal(">"), + literal("="), + literal("<="), + literal(">="), + ]), + versionValidator, + ]), + ), + [], + ), + deps: optional(array(string())), + engine: union([...knownEngines, literal("recipe"), literal("piranha")]), + arguments: optional(argumentsSchema, []), + meta: object({ + type: union([ + literal("migration"), + literal("best practices"), + literal("cleanup"), + literal("code mining"), + literal("other"), + ]), + changeType: union([literal("assistive"), literal("autonomous")]), + timeSave: string([ + custom( + // Returns undefined if input is not valid. We will use the same lib to get the time later in the code. + (input) => !!ms(input), + "The timeSave field does not match the expected format. See https://www.npmjs.com/package/ms for format reference.", + ), + ]), + git: optional(string()), }), +}); + +export const codemodConfigSchema = union([ + merge([ + configJsonBaseSchema, + object({ + engine: union(knownEngines), + name: string(), + }), + ]), + merge([ + configJsonBaseSchema, + object({ + engine: literal("recipe"), + names: array(string()), + }), + ]), + merge([ + configJsonBaseSchema, + object({ + engine: literal("piranha"), + name: string(), + language: union(PIRANHA_LANGUAGES.map((language) => literal(language))), + }), + ]), ]); export type CodemodConfig = Output; diff --git a/apps/cli/test/registry.tar.gz b/apps/cli/test/registry.tar.gz index 49c1365c84fa9d929e182c8df70e218d7d87c907..d1f6fcc5a68ce6d351f78005afc7611fc7931188 100644 GIT binary patch literal 138906 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

eQNlihK^J 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 DqV1@T literal 44604 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 { { name: "argA", kind: "number", + required: false, }, { name: "argB", kind: "number", + required: false, }, ], }; @@ -68,7 +70,6 @@ describe("Runner", () => { const loadRepositoryConfiguration = () => Promise.resolve({ - schemaVersion: "1.0.0", preCommitCodemods: [ { source: "registry", diff --git a/apps/cli/test/tarService.test.ts b/apps/cli/test/tarService.test.ts index a873c45ae..8d3d452a4 100644 --- a/apps/cli/test/tarService.test.ts +++ b/apps/cli/test/tarService.test.ts @@ -24,15 +24,15 @@ describe("TarService", () => { { const stats = await ifs.promises.stat("/home/user/.codemod/names.json"); - equal(stats.size.toString(), 1814); + equal(stats.size.toString(), 4258); } { const stats = await ifs.promises.stat( - "/home/user/.codemod/-wqkAQr7ILgYeTRozWTEgiUvmSY/config.json", + "/home/user/.codemod/-wqkAQr7ILgYeTRozWTEgiUvmSY/.codemodrc.json", ); - equal(stats.size.toString(), 45); + equal(stats.size.toString(), 337); } { @@ -40,7 +40,7 @@ describe("TarService", () => { "/home/user/.codemod/-wqkAQr7ILgYeTRozWTEgiUvmSY/index.cjs", ); - equal(stats.size.toString(), 18020); + equal(stats.size.toString(), 15810); } // do it again to simulate another command invocation @@ -49,7 +49,7 @@ describe("TarService", () => { { const stats = await ifs.promises.stat("/home/user/.codemod/names.json"); - equal(stats.size.toString(), 1814); + equal(stats.size.toString(), 4258); } }); }); diff --git a/apps/registry/builder/index.ts b/apps/registry/builder/index.ts index 056a29d61..83a0b9692 100644 --- a/apps/registry/builder/index.ts +++ b/apps/registry/builder/index.ts @@ -1,3 +1,22 @@ +import ms from "ms"; +import { + Output, + array, + boolean, + coerce, + custom, + literal, + merge, + number, + object, + optional, + parse, + regex, + string, + tuple, + union, +} from "valibot"; + import { createHash } from "node:crypto"; import { constants } from "node:fs"; import { @@ -16,41 +35,35 @@ import { dirname, join } from "node:path"; import { fileURLToPath } from "node:url"; import { promisify } from "node:util"; import { deflate } from "node:zlib"; -import * as S from "@effect/schema/Schema"; import glob from "fast-glob"; import * as tar from "tar"; const promisifiedDeflate = promisify(deflate); -const argumentsSchema = S.array( - S.union( - S.struct({ - name: S.string, - kind: S.literal("string"), - default: S.optional(S.string), - description: S.optional(S.string).withDefault(() => ""), - required: S.optional(S.boolean).withDefault(() => false), +export const argumentsSchema = array( + union([ + object({ + name: string(), + kind: literal("string"), + required: optional(boolean(), false), + default: optional(string()), }), - S.struct({ - name: S.string, - kind: S.literal("number"), - default: S.optional(S.number), - description: S.optional(S.string).withDefault(() => ""), - required: S.optional(S.boolean).withDefault(() => false), + object({ + name: string(), + kind: literal("number"), + required: optional(boolean(), false), + default: optional(number()), }), - S.struct({ - name: S.string, - kind: S.literal("boolean"), - default: S.optional(S.boolean), - description: S.optional(S.string).withDefault(() => ""), - required: S.optional(S.boolean).withDefault(() => false), + object({ + name: string(), + kind: literal("boolean"), + required: optional(boolean(), false), + default: optional(boolean()), }), - ), + ]), ); -const optionalArgumentsSchema = S.optional(argumentsSchema).withDefault( - () => [], -); +export type Arguments = Output; export const PIRANHA_LANGUAGES = [ "java", @@ -63,41 +76,101 @@ export const PIRANHA_LANGUAGES = [ "scala", ] as const; -const piranhaLanguageSchema = S.union( - ...PIRANHA_LANGUAGES.map((language) => S.literal(language)), -); - -const codemodConfigSchema = S.union( - S.struct({ - schemaVersion: S.literal("1.0.0"), - engine: S.literal("piranha"), - language: piranhaLanguageSchema, - arguments: optionalArgumentsSchema, - }), - S.struct({ - schemaVersion: S.literal("1.0.0"), - engine: S.literal("jscodeshift"), - arguments: optionalArgumentsSchema, - }), - S.struct({ - schemaVersion: S.literal("1.0.0"), - engine: S.literal("ts-morph"), - arguments: optionalArgumentsSchema, - }), - S.struct({ - schemaVersion: S.literal("1.0.0"), - engine: S.literal("filemod"), - arguments: optionalArgumentsSchema, - }), - S.struct({ - schemaVersion: S.literal("1.0.0"), - engine: S.literal("recipe"), - names: S.array(S.string), - arguments: optionalArgumentsSchema, +// Source: https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string +const semVerRegex = + /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/; + +const knownEngines = [ + literal("jscodeshift"), + literal("repomod-engine"), + literal("filemod"), + literal("ts-morph"), + literal("ast-grep"), +]; + +const versionValidator = union([ + // react < 18.0.2 (preferred) + string([regex(semVerRegex)]), + // react < 18 (for example, when no latest version of a given major is out yet) + coerce(number(), (input) => Number(input)), +]); + +const configJsonBaseSchema = object({ + description: optional(string()), + version: versionValidator, + // We should detect the owner when user publishes. This is for backwards compatibility. + owner: optional(string()), + // We should have custom logic for this in our code. For orgs, we default to private, for users, we default to public + // just as npm does. + private: optional(boolean()), + // Array of tuples: [libName, versionOperator, version] + applicability: optional( + array( + tuple([ + string(), + union([ + literal("<"), + literal(">"), + literal("="), + literal("<="), + literal(">="), + ]), + versionValidator, + ]), + ), + [], + ), + deps: optional(array(string())), + engine: union([...knownEngines, literal("recipe"), literal("piranha")]), + arguments: optional(argumentsSchema, []), + meta: object({ + type: union([ + literal("migration"), + literal("best practices"), + literal("cleanup"), + literal("code mining"), + literal("other"), + ]), + changeType: union([literal("assistive"), literal("autonomous")]), + timeSave: string([ + custom( + // Returns undefined if input is not valid. We will use the same lib to get the time later in the code. + (input) => !!ms(input), + "The timeSave field does not match the expected format. See https://www.npmjs.com/package/ms for format reference.", + ), + ]), + git: optional(string()), }), -); +}); + +export const codemodConfigSchema = union([ + merge([ + configJsonBaseSchema, + object({ + engine: union(knownEngines), + name: string(), + }), + ]), + merge([ + configJsonBaseSchema, + object({ + engine: literal("recipe"), + names: array(string()), + }), + ]), + merge([ + configJsonBaseSchema, + object({ + engine: literal("piranha"), + name: string(), + language: union(PIRANHA_LANGUAGES.map((language) => literal(language))), + }), + ]), +]); -const parseCodemodConfigSchema = S.parseSync(codemodConfigSchema); +export type CodemodConfig = Output; + +const parseCodemodConfigSchema = (i: unknown) => parse(codemodConfigSchema, i); const removeDirectoryContents = async (directoryPath: string) => { const paths = await readdir(directoryPath); @@ -128,7 +201,7 @@ const build = async () => { const codemodsDirectoryPath = join(cwd, "./codemods"); - const configFilePaths = await glob("./**/config.json", { + const configFilePaths = await glob("./**/.codemodrc.json", { cwd: codemodsDirectoryPath, dot: false, ignore: ["**/node_modules/**", "**/build/**"], @@ -160,13 +233,16 @@ const build = async () => { await mkdir(codemodDirectoryPath, { recursive: true }); - const configPath = join(codemodsDirectoryPath, name, "config.json"); + const configPath = join(codemodsDirectoryPath, name, ".codemodrc.json"); const data = await readFile(configPath, { encoding: "utf8" }); - const config = parseCodemodConfigSchema(JSON.parse(data), { - onExcessProperty: "ignore", - }); + let config: CodemodConfig; + try { + config = parseCodemodConfigSchema(JSON.parse(data)); + } catch (err) { + continue; + } { const configWithName = { @@ -174,7 +250,7 @@ const build = async () => { name, }; - const buildConfigPath = join(codemodDirectoryPath, "config.json"); + const buildConfigPath = join(codemodDirectoryPath, ".codemodrc.json"); writeFile(buildConfigPath, JSON.stringify(configWithName)); } diff --git a/apps/registry/builder/package.json b/apps/registry/builder/package.json index 6c3ce88ad..33f020552 100644 --- a/apps/registry/builder/package.json +++ b/apps/registry/builder/package.json @@ -2,11 +2,13 @@ "name": "@codemod-com/builder", "type": "module", "dependencies": { - "@effect/schema": "^0.48.4", "fast-glob": "3.3.2", - "tar": "^6.2.0" + "ms": "^2.1.3", + "tar": "^6.2.0", + "valibot": "^0.24.1" }, "devDependencies": { + "@types/ms": "^0.7.34", "@types/node": "^20.9.2", "@types/tar": "^6.1.9", "tsx": "^4.7.0", diff --git a/apps/registry/codemods/Feature Flags/remove-unused-feature-flags/package.json b/apps/registry/codemods/Feature Flags/remove-unused-feature-flags/package.json index 8bb5f6ccd..6ba884978 100644 --- a/apps/registry/codemods/Feature Flags/remove-unused-feature-flags/package.json +++ b/apps/registry/codemods/Feature Flags/remove-unused-feature-flags/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/Go/remove-unnecessary-nested-block/package.json b/apps/registry/codemods/Go/remove-unnecessary-nested-block/package.json index d05a9f560..4c20ed6a3 100644 --- a/apps/registry/codemods/Go/remove-unnecessary-nested-block/package.json +++ b/apps/registry/codemods/Go/remove-unnecessary-nested-block/package.json @@ -1,5 +1,5 @@ { "name": "@codemod-com/codemod-go-remove-unnecessary-nested-block", - "files": ["./.codemod/DESCRIPTION.md", "./.codemod/config.json"], + "files": ["./README.md", "./.codemodrc.json"], "type": "module" } diff --git a/apps/registry/codemods/Java/delete-unused-fields/package.json b/apps/registry/codemods/Java/delete-unused-fields/package.json index 352a989a8..47ee3803a 100644 --- a/apps/registry/codemods/Java/delete-unused-fields/package.json +++ b/apps/registry/codemods/Java/delete-unused-fields/package.json @@ -1,5 +1,5 @@ { "name": "@codemod-com/codemod-java-delete-unused-fields", - "files": ["./.codemod/DESCRIPTION.md", "./.codemod/config.json"], + "files": ["./README.md", "./.codemodrc.json"], "type": "module" } diff --git a/apps/registry/codemods/antd/5/props-changed-migration/package.json b/apps/registry/codemods/antd/5/props-changed-migration/package.json index cabae490a..28a86c48b 100644 --- a/apps/registry/codemods/antd/5/props-changed-migration/package.json +++ b/apps/registry/codemods/antd/5/props-changed-migration/package.json @@ -14,8 +14,8 @@ "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/antd/5/remove-style-import/package.json b/apps/registry/codemods/antd/5/remove-style-import/package.json index c4e7102eb..1d34164d1 100644 --- a/apps/registry/codemods/antd/5/remove-style-import/package.json +++ b/apps/registry/codemods/antd/5/remove-style-import/package.json @@ -14,8 +14,8 @@ "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.js" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/antd/5/removed-component-migration/package.json b/apps/registry/codemods/antd/5/removed-component-migration/package.json index 6d8b120a4..fd551b35b 100644 --- a/apps/registry/codemods/antd/5/removed-component-migration/package.json +++ b/apps/registry/codemods/antd/5/removed-component-migration/package.json @@ -13,8 +13,8 @@ "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.js" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/antd/5/removed-static-method-migration/package.json b/apps/registry/codemods/antd/5/removed-static-method-migration/package.json index e84d855e7..89bd452a6 100644 --- a/apps/registry/codemods/antd/5/removed-static-method-migration/package.json +++ b/apps/registry/codemods/antd/5/removed-static-method-migration/package.json @@ -13,8 +13,8 @@ "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.js" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/bull/bullmq/package.json b/apps/registry/codemods/bull/bullmq/package.json index 32c5fa07f..6d0d8dbc7 100644 --- a/apps/registry/codemods/bull/bullmq/package.json +++ b/apps/registry/codemods/bull/bullmq/package.json @@ -16,8 +16,8 @@ "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/cal.com/app-directory-boilerplate-calcom/package.json b/apps/registry/codemods/cal.com/app-directory-boilerplate-calcom/package.json index fcb4a22cf..2487825a9 100644 --- a/apps/registry/codemods/cal.com/app-directory-boilerplate-calcom/package.json +++ b/apps/registry/codemods/cal.com/app-directory-boilerplate-calcom/package.json @@ -30,8 +30,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/cal.com/generate-metadata-tests-calcom/package.json b/apps/registry/codemods/cal.com/generate-metadata-tests-calcom/package.json index 3712cf0e7..49c381ec2 100644 --- a/apps/registry/codemods/cal.com/generate-metadata-tests-calcom/package.json +++ b/apps/registry/codemods/cal.com/generate-metadata-tests-calcom/package.json @@ -24,8 +24,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/cal.com/generate-url-patterns/package.json b/apps/registry/codemods/cal.com/generate-url-patterns/package.json index 98ad4b488..cfc8057d4 100644 --- a/apps/registry/codemods/cal.com/generate-url-patterns/package.json +++ b/apps/registry/codemods/cal.com/generate-url-patterns/package.json @@ -24,8 +24,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/ember/5/app-controller-router-props/package.json b/apps/registry/codemods/ember/5/app-controller-router-props/package.json index 07def523a..a87ccf371 100644 --- a/apps/registry/codemods/ember/5/app-controller-router-props/package.json +++ b/apps/registry/codemods/ember/5/app-controller-router-props/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/ember/5/array-wrapper/package.json b/apps/registry/codemods/ember/5/array-wrapper/package.json index edd12f402..ea428180a 100644 --- a/apps/registry/codemods/ember/5/array-wrapper/package.json +++ b/apps/registry/codemods/ember/5/array-wrapper/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/ember/5/convert-module-for-to-setup-test/package.json b/apps/registry/codemods/ember/5/convert-module-for-to-setup-test/package.json index b02fe1bde..cf34d190f 100644 --- a/apps/registry/codemods/ember/5/convert-module-for-to-setup-test/package.json +++ b/apps/registry/codemods/ember/5/convert-module-for-to-setup-test/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/ember/5/cp-property-map/package.json b/apps/registry/codemods/ember/5/cp-property-map/package.json index a315efc6f..98e5178b3 100644 --- a/apps/registry/codemods/ember/5/cp-property-map/package.json +++ b/apps/registry/codemods/ember/5/cp-property-map/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/ember/5/cp-property/package.json b/apps/registry/codemods/ember/5/cp-property/package.json index 4dd8776ef..2f13fae11 100644 --- a/apps/registry/codemods/ember/5/cp-property/package.json +++ b/apps/registry/codemods/ember/5/cp-property/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/ember/5/cp-volatile/package.json b/apps/registry/codemods/ember/5/cp-volatile/package.json index eab3f7a43..c112fee4a 100644 --- a/apps/registry/codemods/ember/5/cp-volatile/package.json +++ b/apps/registry/codemods/ember/5/cp-volatile/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/ember/5/deprecate-merge/package.json b/apps/registry/codemods/ember/5/deprecate-merge/package.json index 27485514b..219fb4e38 100644 --- a/apps/registry/codemods/ember/5/deprecate-merge/package.json +++ b/apps/registry/codemods/ember/5/deprecate-merge/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/ember/5/deprecate-router-events/package.json b/apps/registry/codemods/ember/5/deprecate-router-events/package.json index 7410bd041..0cab81435 100644 --- a/apps/registry/codemods/ember/5/deprecate-router-events/package.json +++ b/apps/registry/codemods/ember/5/deprecate-router-events/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/ember/5/ember-jquery-legacy/package.json b/apps/registry/codemods/ember/5/ember-jquery-legacy/package.json index ad770e972..3d12bc64f 100644 --- a/apps/registry/codemods/ember/5/ember-jquery-legacy/package.json +++ b/apps/registry/codemods/ember/5/ember-jquery-legacy/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/ember/5/es5-getter-ember-codemod/package.json b/apps/registry/codemods/ember/5/es5-getter-ember-codemod/package.json index 7228ba3b0..0b3a9fd18 100644 --- a/apps/registry/codemods/ember/5/es5-getter-ember-codemod/package.json +++ b/apps/registry/codemods/ember/5/es5-getter-ember-codemod/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/ember/5/fpe-computed/package.json b/apps/registry/codemods/ember/5/fpe-computed/package.json index 2b0e69392..f3692f3b4 100644 --- a/apps/registry/codemods/ember/5/fpe-computed/package.json +++ b/apps/registry/codemods/ember/5/fpe-computed/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/ember/5/fpe-observes/package.json b/apps/registry/codemods/ember/5/fpe-observes/package.json index 3c4cfaa5d..ce878263f 100644 --- a/apps/registry/codemods/ember/5/fpe-observes/package.json +++ b/apps/registry/codemods/ember/5/fpe-observes/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/ember/5/fpe-on/package.json b/apps/registry/codemods/ember/5/fpe-on/package.json index af98c152b..3d3f1456a 100644 --- a/apps/registry/codemods/ember/5/fpe-on/package.json +++ b/apps/registry/codemods/ember/5/fpe-on/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/ember/5/jquery-apis/package.json b/apps/registry/codemods/ember/5/jquery-apis/package.json index e82697190..da2d7dcd8 100644 --- a/apps/registry/codemods/ember/5/jquery-apis/package.json +++ b/apps/registry/codemods/ember/5/jquery-apis/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/ember/5/jquery-event/package.json b/apps/registry/codemods/ember/5/jquery-event/package.json index 810e950c9..57b270cf2 100644 --- a/apps/registry/codemods/ember/5/jquery-event/package.json +++ b/apps/registry/codemods/ember/5/jquery-event/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/ember/5/notify-property-change/package.json b/apps/registry/codemods/ember/5/notify-property-change/package.json index b1f7a5f6b..ce188a3fa 100644 --- a/apps/registry/codemods/ember/5/notify-property-change/package.json +++ b/apps/registry/codemods/ember/5/notify-property-change/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/ember/5/object-new-constructor/package.json b/apps/registry/codemods/ember/5/object-new-constructor/package.json index acc03c4cc..b2ab51259 100644 --- a/apps/registry/codemods/ember/5/object-new-constructor/package.json +++ b/apps/registry/codemods/ember/5/object-new-constructor/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/eslint/biome/migrate-rules/README.md b/apps/registry/codemods/eslint/biome/migrate-rules/README.md index 1d70ef1f3..a84d03cd7 100644 --- a/apps/registry/codemods/eslint/biome/migrate-rules/README.md +++ b/apps/registry/codemods/eslint/biome/migrate-rules/README.md @@ -48,8 +48,8 @@ This codemod requires internet connection. "eslintIgnore": ["ignore-key"], "files": [ "prettier-test-no-replace", - "DESCRIPTION.md", - "config.json", + "README.md", + ".codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], @@ -82,8 +82,8 @@ This codemod requires internet connection. }, "files": [ "prettier-test-no-replace", - "DESCRIPTION.md", - "config.json", + "README.md", + ".codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/eslint/biome/migrate-rules/package.json b/apps/registry/codemods/eslint/biome/migrate-rules/package.json index 4a1500bea..950eb05bb 100644 --- a/apps/registry/codemods/eslint/biome/migrate-rules/package.json +++ b/apps/registry/codemods/eslint/biome/migrate-rules/package.json @@ -24,8 +24,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/eslint/biome/migrate-rules/test/test.ts b/apps/registry/codemods/eslint/biome/migrate-rules/test/test.ts index dbc907348..270ccfcc0 100644 --- a/apps/registry/codemods/eslint/biome/migrate-rules/test/test.ts +++ b/apps/registry/codemods/eslint/biome/migrate-rules/test/test.ts @@ -67,8 +67,8 @@ describe("eslint and prettier to biome migration", () => { "eslintIgnore": ["ignore-key"], "files": [ "prettier-test-no-replace", - "DESCRIPTION.md", - "config.json", + "README.md", + ".codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], @@ -163,8 +163,8 @@ describe("eslint and prettier to biome migration", () => { }, "files": [ "prettier-test-no-replace", - "DESCRIPTION.md", - "config.json", + "README.md", + ".codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/i18n/package.json b/apps/registry/codemods/i18n/package.json index c4f4eeed9..4a84c8b25 100644 --- a/apps/registry/codemods/i18n/package.json +++ b/apps/registry/codemods/i18n/package.json @@ -24,8 +24,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/immutable/0/add-deprecation-comment/package.json b/apps/registry/codemods/immutable/0/add-deprecation-comment/package.json index 36e6d7327..61bcec3e7 100644 --- a/apps/registry/codemods/immutable/0/add-deprecation-comment/package.json +++ b/apps/registry/codemods/immutable/0/add-deprecation-comment/package.json @@ -16,8 +16,8 @@ "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/immutable/0/nest-from-js/package.json b/apps/registry/codemods/immutable/0/nest-from-js/package.json index b601201c3..bcc1f047c 100644 --- a/apps/registry/codemods/immutable/0/nest-from-js/package.json +++ b/apps/registry/codemods/immutable/0/nest-from-js/package.json @@ -16,8 +16,8 @@ "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/immutable/0/remove-from-js/package.json b/apps/registry/codemods/immutable/0/remove-from-js/package.json index aa11a65ec..1a32620c5 100644 --- a/apps/registry/codemods/immutable/0/remove-from-js/package.json +++ b/apps/registry/codemods/immutable/0/remove-from-js/package.json @@ -16,8 +16,8 @@ "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/immutable/0/remove-import/package.json b/apps/registry/codemods/immutable/0/remove-import/package.json index 27a39a285..3324332fa 100644 --- a/apps/registry/codemods/immutable/0/remove-import/package.json +++ b/apps/registry/codemods/immutable/0/remove-import/package.json @@ -16,8 +16,8 @@ "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/immutable/0/remove-to-js/package.json b/apps/registry/codemods/immutable/0/remove-to-js/package.json index f0b83b752..d5ffa3594 100644 --- a/apps/registry/codemods/immutable/0/remove-to-js/package.json +++ b/apps/registry/codemods/immutable/0/remove-to-js/package.json @@ -16,8 +16,8 @@ "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/immutable/0/replace-get-in/package.json b/apps/registry/codemods/immutable/0/replace-get-in/package.json index 8ff0336be..b61b6a8a0 100644 --- a/apps/registry/codemods/immutable/0/replace-get-in/package.json +++ b/apps/registry/codemods/immutable/0/replace-get-in/package.json @@ -16,8 +16,8 @@ "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/immutable/0/replace-get/package.json b/apps/registry/codemods/immutable/0/replace-get/package.json index 4b3919dea..8ead31687 100644 --- a/apps/registry/codemods/immutable/0/replace-get/package.json +++ b/apps/registry/codemods/immutable/0/replace-get/package.json @@ -16,8 +16,8 @@ "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/immutable/0/replace-merge/package.json b/apps/registry/codemods/immutable/0/replace-merge/package.json index d458ab583..c84c15ca0 100644 --- a/apps/registry/codemods/immutable/0/replace-merge/package.json +++ b/apps/registry/codemods/immutable/0/replace-merge/package.json @@ -16,8 +16,8 @@ "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/immutable/0/replace-set-in/package.json b/apps/registry/codemods/immutable/0/replace-set-in/package.json index 6453c9bcd..56e378282 100644 --- a/apps/registry/codemods/immutable/0/replace-set-in/package.json +++ b/apps/registry/codemods/immutable/0/replace-set-in/package.json @@ -16,8 +16,8 @@ "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/immutable/0/replace-set/package.json b/apps/registry/codemods/immutable/0/replace-set/package.json index 4384eeac7..be5f16ba8 100644 --- a/apps/registry/codemods/immutable/0/replace-set/package.json +++ b/apps/registry/codemods/immutable/0/replace-set/package.json @@ -16,8 +16,8 @@ "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/immutable/4/isterable-to-iscollection/package.json b/apps/registry/codemods/immutable/4/isterable-to-iscollection/package.json index bba31dff7..e4ef458b0 100644 --- a/apps/registry/codemods/immutable/4/isterable-to-iscollection/package.json +++ b/apps/registry/codemods/immutable/4/isterable-to-iscollection/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/immutable/4/map-to-array/package.json b/apps/registry/codemods/immutable/4/map-to-array/package.json index 79523a927..23e8404ee 100644 --- a/apps/registry/codemods/immutable/4/map-to-array/package.json +++ b/apps/registry/codemods/immutable/4/map-to-array/package.json @@ -16,8 +16,8 @@ "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.js" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/immutable/4/rename-to-seq/package.json b/apps/registry/codemods/immutable/4/rename-to-seq/package.json index b4b122c6f..3341ceb28 100644 --- a/apps/registry/codemods/immutable/4/rename-to-seq/package.json +++ b/apps/registry/codemods/immutable/4/rename-to-seq/package.json @@ -16,8 +16,8 @@ "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.js" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/intuita/migrate-codemod-registry/.codemodrc.json b/apps/registry/codemods/intuita/migrate-codemod-registry/.codemodrc.json index e9b9d9f19..fd51c8a14 100644 --- a/apps/registry/codemods/intuita/migrate-codemod-registry/.codemodrc.json +++ b/apps/registry/codemods/intuita/migrate-codemod-registry/.codemodrc.json @@ -1,5 +1,6 @@ { "version": "1.0.0", + "name": "migrate-codemod-registry", "private": false, "engine": "filemod", "meta": { diff --git a/apps/registry/codemods/intuita/migrate-codemod-registry/package.json b/apps/registry/codemods/intuita/migrate-codemod-registry/package.json index c9e01f7a7..daf81fd42 100644 --- a/apps/registry/codemods/intuita/migrate-codemod-registry/package.json +++ b/apps/registry/codemods/intuita/migrate-codemod-registry/package.json @@ -19,8 +19,8 @@ "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/intuita/migrate-codemod-registry/src/index.ts b/apps/registry/codemods/intuita/migrate-codemod-registry/src/index.ts index e4edeb01a..1aec5efb1 100644 --- a/apps/registry/codemods/intuita/migrate-codemod-registry/src/index.ts +++ b/apps/registry/codemods/intuita/migrate-codemod-registry/src/index.ts @@ -108,7 +108,7 @@ const handleFile: HandleFile = async ( }, ]; - if (parsedPath.base === "config.json") { + if (parsedPath.base === ".codemodrc.json") { const parsedData = JSON.parse(data); const { engine } = parsedData; @@ -325,7 +325,7 @@ const handleData: HandleData = async ( scripts.test = "mocha"; } - const files: string[] = ["DESCRIPTION.md", "config.json"]; + const files: string[] = ["README.md", ".codemodrc.json"]; if (jsEngineUsed) { files.push("./dist/index.cjs", "./index.d.ts"); diff --git a/apps/registry/codemods/jest/vitest/package.json b/apps/registry/codemods/jest/vitest/package.json index c3699ccb0..ba4b0d1c8 100644 --- a/apps/registry/codemods/jest/vitest/package.json +++ b/apps/registry/codemods/jest/vitest/package.json @@ -16,8 +16,8 @@ "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/mocha/vitest/migrate-configuration/README.md b/apps/registry/codemods/mocha/vitest/migrate-configuration/README.md index 0bd5b2798..ad6c9d13e 100644 --- a/apps/registry/codemods/mocha/vitest/migrate-configuration/README.md +++ b/apps/registry/codemods/mocha/vitest/migrate-configuration/README.md @@ -30,7 +30,7 @@ Run this codemod to upgrade configuration files that need to be changed after mi "mocha": { "config-key": "config-value" }, - "files": ["DESCRIPTION.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": ["README.md", ".codemodrc.json", "./dist/index.cjs", "./index.d.ts"], "type": "module" } ``` @@ -52,7 +52,7 @@ Run this codemod to upgrade configuration files that need to be changed after mi "test": "vitest run", "coverage": "vitest run --coverage" }, - "files": ["DESCRIPTION.md", "config.json", "./dist/index.cjs", "./index.d.ts"], + "files": ["README.md", ".codemodrc.json", "./dist/index.cjs", "./index.d.ts"], "type": "module" } ``` diff --git a/apps/registry/codemods/mocha/vitest/migrate-configuration/package.json b/apps/registry/codemods/mocha/vitest/migrate-configuration/package.json index c7f53846e..f39849bff 100644 --- a/apps/registry/codemods/mocha/vitest/migrate-configuration/package.json +++ b/apps/registry/codemods/mocha/vitest/migrate-configuration/package.json @@ -23,8 +23,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/mocha/vitest/migrate-configuration/test/test.ts b/apps/registry/codemods/mocha/vitest/migrate-configuration/test/test.ts index f529b81b4..b620db266 100644 --- a/apps/registry/codemods/mocha/vitest/migrate-configuration/test/test.ts +++ b/apps/registry/codemods/mocha/vitest/migrate-configuration/test/test.ts @@ -42,8 +42,8 @@ describe("mocha config-files", () => { "config-key": "config-value" }, "files": [ - "DESCRIPTION.md", - "config.json", + "README.md", + ".codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], @@ -146,8 +146,8 @@ describe("mocha config-files", () => { "coverage": "vitest run --coverage" }, "files": [ - "DESCRIPTION.md", - "config.json", + "README.md", + ".codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/mocha/vitest/migrate-tests/package.json b/apps/registry/codemods/mocha/vitest/migrate-tests/package.json index 688292e2a..7e32d60e9 100644 --- a/apps/registry/codemods/mocha/vitest/migrate-tests/package.json +++ b/apps/registry/codemods/mocha/vitest/migrate-tests/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/mocha/vitest/recipe/package.json b/apps/registry/codemods/mocha/vitest/recipe/package.json index c494013c1..1d749ebd3 100644 --- a/apps/registry/codemods/mocha/vitest/recipe/package.json +++ b/apps/registry/codemods/mocha/vitest/recipe/package.json @@ -1,5 +1,5 @@ { "name": "@codemod-com/codemod-mocha-vitest-recipe", - "files": ["./.codemod/DESCRIPTION.md", "./.codemod/config.json"], + "files": ["./README.md", "./.codemodrc.json"], "type": "module" } diff --git a/apps/registry/codemods/msw/2/callback-signature/package.json b/apps/registry/codemods/msw/2/callback-signature/package.json index b19310076..a2f2d958f 100644 --- a/apps/registry/codemods/msw/2/callback-signature/package.json +++ b/apps/registry/codemods/msw/2/callback-signature/package.json @@ -15,8 +15,8 @@ "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/msw/2/ctx-fetch/package.json b/apps/registry/codemods/msw/2/ctx-fetch/package.json index 1412ad081..a324a6ec5 100644 --- a/apps/registry/codemods/msw/2/ctx-fetch/package.json +++ b/apps/registry/codemods/msw/2/ctx-fetch/package.json @@ -15,8 +15,8 @@ "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/msw/2/imports/package.json b/apps/registry/codemods/msw/2/imports/package.json index e1ef0ed00..0791dd6ea 100644 --- a/apps/registry/codemods/msw/2/imports/package.json +++ b/apps/registry/codemods/msw/2/imports/package.json @@ -15,8 +15,8 @@ "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/msw/2/lifecycle-events-signature/package.json b/apps/registry/codemods/msw/2/lifecycle-events-signature/package.json index 78da9eda1..75d55d36c 100644 --- a/apps/registry/codemods/msw/2/lifecycle-events-signature/package.json +++ b/apps/registry/codemods/msw/2/lifecycle-events-signature/package.json @@ -15,8 +15,8 @@ "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/msw/2/print-handler/package.json b/apps/registry/codemods/msw/2/print-handler/package.json index 0b67ed254..dd9cc0388 100644 --- a/apps/registry/codemods/msw/2/print-handler/package.json +++ b/apps/registry/codemods/msw/2/print-handler/package.json @@ -15,8 +15,8 @@ "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/msw/2/req-passthrough/package.json b/apps/registry/codemods/msw/2/req-passthrough/package.json index 0ea7ef452..e0f2372d1 100644 --- a/apps/registry/codemods/msw/2/req-passthrough/package.json +++ b/apps/registry/codemods/msw/2/req-passthrough/package.json @@ -15,8 +15,8 @@ "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/msw/2/request-changes/package.json b/apps/registry/codemods/msw/2/request-changes/package.json index adb954157..1517ca59a 100644 --- a/apps/registry/codemods/msw/2/request-changes/package.json +++ b/apps/registry/codemods/msw/2/request-changes/package.json @@ -15,8 +15,8 @@ "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/msw/2/response-usages/package.json b/apps/registry/codemods/msw/2/response-usages/package.json index b3183ee44..f01c2ad65 100644 --- a/apps/registry/codemods/msw/2/response-usages/package.json +++ b/apps/registry/codemods/msw/2/response-usages/package.json @@ -15,8 +15,8 @@ "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/msw/2/type-args/package.json b/apps/registry/codemods/msw/2/type-args/package.json index 7eb2d283b..ea62c5b30 100644 --- a/apps/registry/codemods/msw/2/type-args/package.json +++ b/apps/registry/codemods/msw/2/type-args/package.json @@ -15,8 +15,8 @@ "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/msw/2/upgrade-recipe/package.json b/apps/registry/codemods/msw/2/upgrade-recipe/package.json index c584ea0a7..4e18a02c0 100644 --- a/apps/registry/codemods/msw/2/upgrade-recipe/package.json +++ b/apps/registry/codemods/msw/2/upgrade-recipe/package.json @@ -1,5 +1,5 @@ { "name": "@codemod-com/codemod-msw-2-upgrade-recipe", - "files": ["./.codemod/DESCRIPTION.md", "./.codemod/config.json"], + "files": ["./README.md", "./.codemodrc.json"], "type": "module" } diff --git a/apps/registry/codemods/mui/5/core-styles-import/package.json b/apps/registry/codemods/mui/5/core-styles-import/package.json index f33c92a83..fbf47f79e 100644 --- a/apps/registry/codemods/mui/5/core-styles-import/package.json +++ b/apps/registry/codemods/mui/5/core-styles-import/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventContext/package.json b/apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventContext/package.json index 05ad01577..957b13e3f 100644 --- a/apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventContext/package.json +++ b/apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventContext/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventHandler/package.json b/apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventHandler/package.json index 93b4d7028..4fddc4c34 100644 --- a/apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventHandler/package.json +++ b/apps/registry/codemods/netlify-sdk/0.8.1/addBuildEventHandler/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/netlify-sdk/0.8.1/disableBuildEventHandlers/package.json b/apps/registry/codemods/netlify-sdk/0.8.1/disableBuildEventHandlers/package.json index db282c94b..3a380c1c8 100644 --- a/apps/registry/codemods/netlify-sdk/0.8.1/disableBuildEventHandlers/package.json +++ b/apps/registry/codemods/netlify-sdk/0.8.1/disableBuildEventHandlers/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/netlify-sdk/0.8.1/enableBuildEventHandlers/package.json b/apps/registry/codemods/netlify-sdk/0.8.1/enableBuildEventHandlers/package.json index b60c6611d..81102ec82 100644 --- a/apps/registry/codemods/netlify-sdk/0.8.1/enableBuildEventHandlers/package.json +++ b/apps/registry/codemods/netlify-sdk/0.8.1/enableBuildEventHandlers/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/netlify-sdk/0.8.1/exportZod/package.json b/apps/registry/codemods/netlify-sdk/0.8.1/exportZod/package.json index f404c9f70..7a4c8b0c2 100644 --- a/apps/registry/codemods/netlify-sdk/0.8.1/exportZod/package.json +++ b/apps/registry/codemods/netlify-sdk/0.8.1/exportZod/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/netlify-sdk/0.8.4/addApiHandler/package.json b/apps/registry/codemods/netlify-sdk/0.8.4/addApiHandler/package.json index f1100612c..4ec4bf696 100644 --- a/apps/registry/codemods/netlify-sdk/0.8.4/addApiHandler/package.json +++ b/apps/registry/codemods/netlify-sdk/0.8.4/addApiHandler/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/createEnvironmentVariable/package.json b/apps/registry/codemods/netlify-sdk/0.8.5/createEnvironmentVariable/package.json index cf2f7016e..051db9474 100644 --- a/apps/registry/codemods/netlify-sdk/0.8.5/createEnvironmentVariable/package.json +++ b/apps/registry/codemods/netlify-sdk/0.8.5/createEnvironmentVariable/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariable/package.json b/apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariable/package.json index b762dc2b4..ab9a7e685 100644 --- a/apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariable/package.json +++ b/apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariable/package.json @@ -16,8 +16,8 @@ "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariables/package.json b/apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariables/package.json index 10ef4daf0..723052f51 100644 --- a/apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariables/package.json +++ b/apps/registry/codemods/netlify-sdk/0.8.5/createOrUpdateVariables/package.json @@ -16,8 +16,8 @@ "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariable/package.json b/apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariable/package.json index 90094cc4d..96fe10e2f 100644 --- a/apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariable/package.json +++ b/apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariable/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariables/package.json b/apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariables/package.json index 8fee5c5ba..d74588cda 100644 --- a/apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariables/package.json +++ b/apps/registry/codemods/netlify-sdk/0.8.5/deleteEnvironmentVariables/package.json @@ -16,8 +16,8 @@ "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/getEnvironmentVariables/package.json b/apps/registry/codemods/netlify-sdk/0.8.5/getEnvironmentVariables/package.json index 19a29a918..a803aad3c 100644 --- a/apps/registry/codemods/netlify-sdk/0.8.5/getEnvironmentVariables/package.json +++ b/apps/registry/codemods/netlify-sdk/0.8.5/getEnvironmentVariables/package.json @@ -16,8 +16,8 @@ "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/netlify-sdk-0.8.5-recipe/package.json b/apps/registry/codemods/netlify-sdk/0.8.5/netlify-sdk-0.8.5-recipe/package.json index a639585d3..131b27496 100644 --- a/apps/registry/codemods/netlify-sdk/0.8.5/netlify-sdk-0.8.5-recipe/package.json +++ b/apps/registry/codemods/netlify-sdk/0.8.5/netlify-sdk-0.8.5-recipe/package.json @@ -1,5 +1,5 @@ { "name": "@codemod-com/codemod-netlify-sdk-0.8.5-netlify-sdk-0.8.5-recipe", - "files": ["./.codemod/DESCRIPTION.md", "./.codemod/config.json"], + "files": ["./README.md", "./.codemodrc.json"], "type": "module" } diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/patchEnvironmentVariable/package.json b/apps/registry/codemods/netlify-sdk/0.8.5/patchEnvironmentVariable/package.json index 0bed2ddf3..bad769a45 100644 --- a/apps/registry/codemods/netlify-sdk/0.8.5/patchEnvironmentVariable/package.json +++ b/apps/registry/codemods/netlify-sdk/0.8.5/patchEnvironmentVariable/package.json @@ -16,8 +16,8 @@ "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/netlify-sdk/0.8.5/updateEnvironmentVariable/package.json b/apps/registry/codemods/netlify-sdk/0.8.5/updateEnvironmentVariable/package.json index 23efdfc9a..ade6b81cc 100644 --- a/apps/registry/codemods/netlify-sdk/0.8.5/updateEnvironmentVariable/package.json +++ b/apps/registry/codemods/netlify-sdk/0.8.5/updateEnvironmentVariable/package.json @@ -16,8 +16,8 @@ "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/next-i18next/copy-keys/package.json b/apps/registry/codemods/next-i18next/copy-keys/package.json index f681ff96b..097e5ed24 100644 --- a/apps/registry/codemods/next-i18next/copy-keys/package.json +++ b/apps/registry/codemods/next-i18next/copy-keys/package.json @@ -24,8 +24,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/next/13/ab-test/package.json b/apps/registry/codemods/next/13/ab-test/package.json index 9e12c10ec..f292ceff6 100644 --- a/apps/registry/codemods/next/13/ab-test/package.json +++ b/apps/registry/codemods/next/13/ab-test/package.json @@ -24,8 +24,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/next/13/app-directory-boilerplate/package.json b/apps/registry/codemods/next/13/app-directory-boilerplate/package.json index add5021be..cf2b72e7c 100644 --- a/apps/registry/codemods/next/13/app-directory-boilerplate/package.json +++ b/apps/registry/codemods/next/13/app-directory-boilerplate/package.json @@ -30,8 +30,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/next/13/app-router-recipe/package.json b/apps/registry/codemods/next/13/app-router-recipe/package.json index f334989a7..3177cf76f 100644 --- a/apps/registry/codemods/next/13/app-router-recipe/package.json +++ b/apps/registry/codemods/next/13/app-router-recipe/package.json @@ -1,5 +1,5 @@ { "name": "@codemod-com/codemod-next-13-app-router-recipe", - "files": ["./.codemod/DESCRIPTION.md", "./.codemod/config.json"], + "files": ["./README.md", "./.codemodrc.json"], "type": "module" } diff --git a/apps/registry/codemods/next/13/built-in-next-font/package.json b/apps/registry/codemods/next/13/built-in-next-font/package.json index 921a8fe5d..4b27ebcf6 100644 --- a/apps/registry/codemods/next/13/built-in-next-font/package.json +++ b/apps/registry/codemods/next/13/built-in-next-font/package.json @@ -16,8 +16,8 @@ "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/next/13/comment-deletable-files/package.json b/apps/registry/codemods/next/13/comment-deletable-files/package.json index 4654de5ef..ff8e5d01d 100644 --- a/apps/registry/codemods/next/13/comment-deletable-files/package.json +++ b/apps/registry/codemods/next/13/comment-deletable-files/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/next/13/move-css-in-js-styles/package.json b/apps/registry/codemods/next/13/move-css-in-js-styles/package.json index 7034a55d6..744030c7b 100644 --- a/apps/registry/codemods/next/13/move-css-in-js-styles/package.json +++ b/apps/registry/codemods/next/13/move-css-in-js-styles/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/next/13/new-image-experimental/package.json b/apps/registry/codemods/next/13/new-image-experimental/package.json index 057499d9f..b05c2bfa1 100644 --- a/apps/registry/codemods/next/13/new-image-experimental/package.json +++ b/apps/registry/codemods/next/13/new-image-experimental/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/next/13/new-link/package.json b/apps/registry/codemods/next/13/new-link/package.json index 5c18988f9..6a734dcf6 100644 --- a/apps/registry/codemods/next/13/new-link/package.json +++ b/apps/registry/codemods/next/13/new-link/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/next/13/next-image-to-legacy-image/package.json b/apps/registry/codemods/next/13/next-image-to-legacy-image/package.json index 035a9b54f..3966697a1 100644 --- a/apps/registry/codemods/next/13/next-image-to-legacy-image/package.json +++ b/apps/registry/codemods/next/13/next-image-to-legacy-image/package.json @@ -16,8 +16,8 @@ "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/next/13/remove-get-static-props/package.json b/apps/registry/codemods/next/13/remove-get-static-props/package.json index 29cf6efca..998ea9071 100644 --- a/apps/registry/codemods/next/13/remove-get-static-props/package.json +++ b/apps/registry/codemods/next/13/remove-get-static-props/package.json @@ -24,8 +24,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/next/13/remove-next-export/package.json b/apps/registry/codemods/next/13/remove-next-export/package.json index f474dad36..3a5d9a33b 100644 --- a/apps/registry/codemods/next/13/remove-next-export/package.json +++ b/apps/registry/codemods/next/13/remove-next-export/package.json @@ -24,8 +24,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/next/13/remove-next-export/test/test.ts b/apps/registry/codemods/next/13/remove-next-export/test/test.ts index 269eb2cd4..92201fcb3 100644 --- a/apps/registry/codemods/next/13/remove-next-export/test/test.ts +++ b/apps/registry/codemods/next/13/remove-next-export/test/test.ts @@ -32,7 +32,7 @@ const SCRIPT_SH_C = ` npx next export `; -const DESCRIPTION_MD = ` +const README_MD = ` # Header next export -o public `; @@ -43,8 +43,8 @@ const transform = async () => { "/opt/project/pages/script_a.sh": SCRIPT_SH_A, "/opt/project/pages/script_b.sh": SCRIPT_SH_B, "/opt/project/pages/script_c.sh": SCRIPT_SH_C, - "/opt/project/pages/DESCRIPTION.md": DESCRIPTION_MD, - "/opt/project/pages/DESCRIPTION.notmd": DESCRIPTION_MD, + "/opt/project/pages/README.md": README_MD, + "/opt/project/pages/README.notmd": README_MD, "/opt/project/pages/next.config.js": NEXT_CONFIG_JSON, }); @@ -78,7 +78,7 @@ describe("next 13 remove-next-export", () => { }, { kind: "upsertFile", - path: "/opt/project/pages/DESCRIPTION.md", + path: "/opt/project/pages/README.md", data: "\n# Header\n", }, { diff --git a/apps/registry/codemods/next/13/replace-api-routes/package.json b/apps/registry/codemods/next/13/replace-api-routes/package.json index 1d55f12c9..f14cccccc 100644 --- a/apps/registry/codemods/next/13/replace-api-routes/package.json +++ b/apps/registry/codemods/next/13/replace-api-routes/package.json @@ -24,8 +24,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/next/13/replace-next-head/package.json b/apps/registry/codemods/next/13/replace-next-head/package.json index 7358f6997..7b9b76a3c 100644 --- a/apps/registry/codemods/next/13/replace-next-head/package.json +++ b/apps/registry/codemods/next/13/replace-next-head/package.json @@ -31,8 +31,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/next/13/replace-next-router/package.json b/apps/registry/codemods/next/13/replace-next-router/package.json index a5b403c5f..d3700bb19 100644 --- a/apps/registry/codemods/next/13/replace-next-router/package.json +++ b/apps/registry/codemods/next/13/replace-next-router/package.json @@ -20,8 +20,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/next/13/replace-use-search-params/package.json b/apps/registry/codemods/next/13/replace-use-search-params/package.json index d0e1449a6..cfa56fd8f 100644 --- a/apps/registry/codemods/next/13/replace-use-search-params/package.json +++ b/apps/registry/codemods/next/13/replace-use-search-params/package.json @@ -24,8 +24,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/next/13/upsert-use-client-directive/package.json b/apps/registry/codemods/next/13/upsert-use-client-directive/package.json index a2fce9400..b8115d41e 100644 --- a/apps/registry/codemods/next/13/upsert-use-client-directive/package.json +++ b/apps/registry/codemods/next/13/upsert-use-client-directive/package.json @@ -20,8 +20,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/next/14/metadata-to-viewport-export/package.json b/apps/registry/codemods/next/14/metadata-to-viewport-export/package.json index 9d23003a7..67a497cb1 100644 --- a/apps/registry/codemods/next/14/metadata-to-viewport-export/package.json +++ b/apps/registry/codemods/next/14/metadata-to-viewport-export/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/next/14/next-og-import/package.json b/apps/registry/codemods/next/14/next-og-import/package.json index b6a85a371..cd20c3303 100644 --- a/apps/registry/codemods/next/14/next-og-import/package.json +++ b/apps/registry/codemods/next/14/next-og-import/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/pull_request_template.md b/apps/registry/codemods/pull_request_template.md index f6e9f9bd2..129227b62 100644 --- a/apps/registry/codemods/pull_request_template.md +++ b/apps/registry/codemods/pull_request_template.md @@ -10,7 +10,7 @@ For your codemod pull request to be compatible with the Codemod.com platform, it │ ├── . ├── test │ ├── test.ts # containts tests -├── config.json # contains the codemod's metadata; refer to existing codemods for the config file structure. +├── .codemodrc.json # contains the codemod's metadata; refer to existing codemods for the config file structure. ├── index.d.ts ├── package.json ├── tsconfig.json diff --git a/apps/registry/codemods/react-redux/0/add-state-type/package.json b/apps/registry/codemods/react-redux/0/add-state-type/package.json index d5c81e968..623bc3b9b 100644 --- a/apps/registry/codemods/react-redux/0/add-state-type/package.json +++ b/apps/registry/codemods/react-redux/0/add-state-type/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/react-router/4/add-exact-prop/package.json b/apps/registry/codemods/react-router/4/add-exact-prop/package.json index 249034c30..fd10ff1f0 100644 --- a/apps/registry/codemods/react-router/4/add-exact-prop/package.json +++ b/apps/registry/codemods/react-router/4/add-exact-prop/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/react-router/4/create-hash-history/package.json b/apps/registry/codemods/react-router/4/create-hash-history/package.json index 30c97b53c..49053a0d0 100644 --- a/apps/registry/codemods/react-router/4/create-hash-history/package.json +++ b/apps/registry/codemods/react-router/4/create-hash-history/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/react-router/4/hash-router/package.json b/apps/registry/codemods/react-router/4/hash-router/package.json index d9d2ff81a..c96c94678 100644 --- a/apps/registry/codemods/react-router/4/hash-router/package.json +++ b/apps/registry/codemods/react-router/4/hash-router/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/react-router/4/index-route/package.json b/apps/registry/codemods/react-router/4/index-route/package.json index 8ddd27f07..f81e34b48 100644 --- a/apps/registry/codemods/react-router/4/index-route/package.json +++ b/apps/registry/codemods/react-router/4/index-route/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/react-router/4/remove-with-props/package.json b/apps/registry/codemods/react-router/4/remove-with-props/package.json index ad760eefe..1f66cb6d0 100644 --- a/apps/registry/codemods/react-router/4/remove-with-props/package.json +++ b/apps/registry/codemods/react-router/4/remove-with-props/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/react-router/4/rename-imports/package.json b/apps/registry/codemods/react-router/4/rename-imports/package.json index bea54873d..1abac4900 100644 --- a/apps/registry/codemods/react-router/4/rename-imports/package.json +++ b/apps/registry/codemods/react-router/4/rename-imports/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/react-router/4/replace-location-query/package.json b/apps/registry/codemods/react-router/4/replace-location-query/package.json index f82bdc653..1a931f226 100644 --- a/apps/registry/codemods/react-router/4/replace-location-query/package.json +++ b/apps/registry/codemods/react-router/4/replace-location-query/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/react-router/4/replace-param-prop/package.json b/apps/registry/codemods/react-router/4/replace-param-prop/package.json index a0a5140de..f6f45c730 100644 --- a/apps/registry/codemods/react-router/4/replace-param-prop/package.json +++ b/apps/registry/codemods/react-router/4/replace-param-prop/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/react-router/4/wrap-with-switch/package.json b/apps/registry/codemods/react-router/4/wrap-with-switch/package.json index 0beed6a88..8dace3eca 100644 --- a/apps/registry/codemods/react-router/4/wrap-with-switch/package.json +++ b/apps/registry/codemods/react-router/4/wrap-with-switch/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/react-router/6/compat-route/package.json b/apps/registry/codemods/react-router/6/compat-route/package.json index 8425c2a22..12ad64b9f 100644 --- a/apps/registry/codemods/react-router/6/compat-route/package.json +++ b/apps/registry/codemods/react-router/6/compat-route/package.json @@ -16,8 +16,8 @@ "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/react-router/6/compat-router/package.json b/apps/registry/codemods/react-router/6/compat-router/package.json index 979517ec1..043ec708c 100644 --- a/apps/registry/codemods/react-router/6/compat-router/package.json +++ b/apps/registry/codemods/react-router/6/compat-router/package.json @@ -16,8 +16,8 @@ "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/react-router/6/link-to-props/package.json b/apps/registry/codemods/react-router/6/link-to-props/package.json index 6bad8fb9d..2780e8cc3 100644 --- a/apps/registry/codemods/react-router/6/link-to-props/package.json +++ b/apps/registry/codemods/react-router/6/link-to-props/package.json @@ -16,8 +16,8 @@ "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/react-router/6/match-path-arguments/package.json b/apps/registry/codemods/react-router/6/match-path-arguments/package.json index cf7fe323c..671acd9c7 100644 --- a/apps/registry/codemods/react-router/6/match-path-arguments/package.json +++ b/apps/registry/codemods/react-router/6/match-path-arguments/package.json @@ -16,8 +16,8 @@ "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/react-router/6/navlink-exact-end/package.json b/apps/registry/codemods/react-router/6/navlink-exact-end/package.json index f751da707..a761123fb 100644 --- a/apps/registry/codemods/react-router/6/navlink-exact-end/package.json +++ b/apps/registry/codemods/react-router/6/navlink-exact-end/package.json @@ -16,8 +16,8 @@ "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/react-router/6/redirect-to-navigate/package.json b/apps/registry/codemods/react-router/6/redirect-to-navigate/package.json index 7b6824cde..c3d1c85f0 100644 --- a/apps/registry/codemods/react-router/6/redirect-to-navigate/package.json +++ b/apps/registry/codemods/react-router/6/redirect-to-navigate/package.json @@ -16,8 +16,8 @@ "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/react-router/6/remove-active-classname/package.json b/apps/registry/codemods/react-router/6/remove-active-classname/package.json index e559a286c..6bc6b4632 100644 --- a/apps/registry/codemods/react-router/6/remove-active-classname/package.json +++ b/apps/registry/codemods/react-router/6/remove-active-classname/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/react-router/6/remove-active-style/package.json b/apps/registry/codemods/react-router/6/remove-active-style/package.json index a9f590d93..8406df957 100644 --- a/apps/registry/codemods/react-router/6/remove-active-style/package.json +++ b/apps/registry/codemods/react-router/6/remove-active-style/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/react-router/6/remove-compat-router/package.json b/apps/registry/codemods/react-router/6/remove-compat-router/package.json index 71bec7fac..7f04cc04e 100644 --- a/apps/registry/codemods/react-router/6/remove-compat-router/package.json +++ b/apps/registry/codemods/react-router/6/remove-compat-router/package.json @@ -16,8 +16,8 @@ "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/react-router/6/remove-go-hooks/package.json b/apps/registry/codemods/react-router/6/remove-go-hooks/package.json index 5b5d95b25..3d86febda 100644 --- a/apps/registry/codemods/react-router/6/remove-go-hooks/package.json +++ b/apps/registry/codemods/react-router/6/remove-go-hooks/package.json @@ -16,8 +16,8 @@ "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/react-router/6/remove-redirect-inside-switch/package.json b/apps/registry/codemods/react-router/6/remove-redirect-inside-switch/package.json index 8ca876098..640aa4fe2 100644 --- a/apps/registry/codemods/react-router/6/remove-redirect-inside-switch/package.json +++ b/apps/registry/codemods/react-router/6/remove-redirect-inside-switch/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/react-router/6/rename-compat-imports/package.json b/apps/registry/codemods/react-router/6/rename-compat-imports/package.json index 079f024b4..2fd39e2ae 100644 --- a/apps/registry/codemods/react-router/6/rename-compat-imports/package.json +++ b/apps/registry/codemods/react-router/6/rename-compat-imports/package.json @@ -16,8 +16,8 @@ "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/react-router/6/static-router-imports/package.json b/apps/registry/codemods/react-router/6/static-router-imports/package.json index c7afe5228..41d0d160e 100644 --- a/apps/registry/codemods/react-router/6/static-router-imports/package.json +++ b/apps/registry/codemods/react-router/6/static-router-imports/package.json @@ -16,8 +16,8 @@ "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.ts" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/react-router/6/use-location/package.json b/apps/registry/codemods/react-router/6/use-location/package.json index d39ccd06f..88ab2bf8b 100644 --- a/apps/registry/codemods/react-router/6/use-location/package.json +++ b/apps/registry/codemods/react-router/6/use-location/package.json @@ -16,8 +16,8 @@ "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.js" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/react-router/6/use-navigate/package.json b/apps/registry/codemods/react-router/6/use-navigate/package.json index 1469ccf77..443498e5a 100644 --- a/apps/registry/codemods/react-router/6/use-navigate/package.json +++ b/apps/registry/codemods/react-router/6/use-navigate/package.json @@ -16,8 +16,8 @@ "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.js" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/react-router/6/use-params/package.json b/apps/registry/codemods/react-router/6/use-params/package.json index 1772a2d22..7af1afbd9 100644 --- a/apps/registry/codemods/react-router/6/use-params/package.json +++ b/apps/registry/codemods/react-router/6/use-params/package.json @@ -16,8 +16,8 @@ "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.js" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/react-router/6/use-route-match/package.json b/apps/registry/codemods/react-router/6/use-route-match/package.json index 4c83a6a59..75b31e178 100644 --- a/apps/registry/codemods/react-router/6/use-route-match/package.json +++ b/apps/registry/codemods/react-router/6/use-route-match/package.json @@ -16,8 +16,8 @@ "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.js" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/react/19/remove-context-provider/package.json b/apps/registry/codemods/react/19/remove-context-provider/package.json index b24528ded..12f8b3ccf 100644 --- a/apps/registry/codemods/react/19/remove-context-provider/package.json +++ b/apps/registry/codemods/react/19/remove-context-provider/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/react/19/remove-forward-ref/package.json b/apps/registry/codemods/react/19/remove-forward-ref/package.json index f0f7753fb..8117d63a7 100644 --- a/apps/registry/codemods/react/19/remove-forward-ref/package.json +++ b/apps/registry/codemods/react/19/remove-forward-ref/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/react/19/remove-memoization-hooks/package.json b/apps/registry/codemods/react/19/remove-memoization-hooks/package.json index eaf57b96a..6471ccc76 100644 --- a/apps/registry/codemods/react/19/remove-memoization-hooks/package.json +++ b/apps/registry/codemods/react/19/remove-memoization-hooks/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/react/19/use-context-hook/package.json b/apps/registry/codemods/react/19/use-context-hook/package.json index 58a44b525..c61115550 100644 --- a/apps/registry/codemods/react/19/use-context-hook/package.json +++ b/apps/registry/codemods/react/19/use-context-hook/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/react/prop-types-typescript/package.json b/apps/registry/codemods/react/prop-types-typescript/package.json index 75536ccee..6404e663a 100644 --- a/apps/registry/codemods/react/prop-types-typescript/package.json +++ b/apps/registry/codemods/react/prop-types-typescript/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/react/replace-react-fc-typescript/package.json b/apps/registry/codemods/react/replace-react-fc-typescript/package.json index 98cd7216c..5ae88eb1d 100644 --- a/apps/registry/codemods/react/replace-react-fc-typescript/package.json +++ b/apps/registry/codemods/react/replace-react-fc-typescript/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/redwoodjs/core/4/auth-decoder/package.json b/apps/registry/codemods/redwoodjs/core/4/auth-decoder/package.json index ae7ce9c75..cc25cb9be 100644 --- a/apps/registry/codemods/redwoodjs/core/4/auth-decoder/package.json +++ b/apps/registry/codemods/redwoodjs/core/4/auth-decoder/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/redwoodjs/core/4/redwood-apollo-provider/package.json b/apps/registry/codemods/redwoodjs/core/4/redwood-apollo-provider/package.json index 6dc5cfcde..9ebc746e9 100644 --- a/apps/registry/codemods/redwoodjs/core/4/redwood-apollo-provider/package.json +++ b/apps/registry/codemods/redwoodjs/core/4/redwood-apollo-provider/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/redwoodjs/core/4/router-use-auth/package.json b/apps/registry/codemods/redwoodjs/core/4/router-use-auth/package.json index 6c258483e..9e502d59e 100644 --- a/apps/registry/codemods/redwoodjs/core/4/router-use-auth/package.json +++ b/apps/registry/codemods/redwoodjs/core/4/router-use-auth/package.json @@ -21,8 +21,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/redwoodjs/core/4/use-armor/package.json b/apps/registry/codemods/redwoodjs/core/4/use-armor/package.json index 47c905667..f0dde0455 100644 --- a/apps/registry/codemods/redwoodjs/core/4/use-armor/package.json +++ b/apps/registry/codemods/redwoodjs/core/4/use-armor/package.json @@ -16,8 +16,8 @@ "types": "/dist/index.d.ts", "scripts": { "build:cjs": "cjs-builder ./src/index.js" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/remove-unused-feature-flags-2/package.json b/apps/registry/codemods/remove-unused-feature-flags-2/package.json index 22d111839..b3de58f32 100644 --- a/apps/registry/codemods/remove-unused-feature-flags-2/package.json +++ b/apps/registry/codemods/remove-unused-feature-flags-2/package.json @@ -24,8 +24,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/typescript/remove-public-modifier/package.json b/apps/registry/codemods/typescript/remove-public-modifier/package.json index 4d2b60a9b..30ed50659 100644 --- a/apps/registry/codemods/typescript/remove-public-modifier/package.json +++ b/apps/registry/codemods/typescript/remove-public-modifier/package.json @@ -22,8 +22,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/codemods/typescript/use-template-literals/package.json b/apps/registry/codemods/typescript/use-template-literals/package.json index be7438129..9bdc5cc71 100644 --- a/apps/registry/codemods/typescript/use-template-literals/package.json +++ b/apps/registry/codemods/typescript/use-template-literals/package.json @@ -22,8 +22,8 @@ "coverage": "vitest run --coverage" }, "files": [ - "./.codemod/DESCRIPTION.md", - "./.codemod/config.json", + "./README.md", + "./.codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], diff --git a/apps/registry/creator/buildPackageJsonData.ts b/apps/registry/creator/buildPackageJsonData.ts index 1cf9f90cd..92f98e3df 100644 --- a/apps/registry/creator/buildPackageJsonData.ts +++ b/apps/registry/creator/buildPackageJsonData.ts @@ -54,7 +54,7 @@ export const buildPackageJsonData = (argv: ArgvSchema): string => { } : undefined; - const files: string[] = ["README.md", "config.json"]; + const files: string[] = ["README.md", ".codemodrc.json"]; if (jsEngineUsed) { files.push("./dist/index.cjs", "./index.d.ts"); diff --git a/apps/registry/creator/index.ts b/apps/registry/creator/index.ts index 1e2beb2e3..68da6aef5 100644 --- a/apps/registry/creator/index.ts +++ b/apps/registry/creator/index.ts @@ -105,7 +105,7 @@ const main = async () => { { const data = buildConfigJsonData(argv); - await writeFile(join(codemodDirectoryPath, "./config.json"), data); + await writeFile(join(codemodDirectoryPath, "./.codemodrc.json"), data); } { diff --git a/apps/studio-backend/src/publishHandler.ts b/apps/studio-backend/src/publishHandler.ts index 7c8ddf1c4..134d2e656 100644 --- a/apps/studio-backend/src/publishHandler.ts +++ b/apps/studio-backend/src/publishHandler.ts @@ -56,7 +56,7 @@ export const publishHandler = for await (const multipartFile of request.files()) { const buffer = await multipartFile.toBuffer(); - if (multipartFile.fieldname === "config.json") { + if (multipartFile.fieldname === ".codemodrc.json") { configJsonBuffer = buffer; const configJson = JSON.parse(configJsonBuffer.toString("utf8")); @@ -86,7 +86,7 @@ export const publishHandler = if (configJsonBuffer === null || indexCjsBuffer === null || name === null) { throw new Error( - "Could not find either the config.json or the index.cjs file", + "Could not find either the .codemodrc.json or the index.cjs file", ); } @@ -105,7 +105,7 @@ export const publishHandler = await client.send( new PutObjectCommand({ Bucket: "codemod-public", - Key: `codemod-registry/${hashDigest}/config.json`, + Key: `codemod-registry/${hashDigest}/.codemodrc.json`, Body: configJsonBuffer, }), { diff --git a/apps/studio/src/utils/download.ts b/apps/studio/src/utils/download.ts index 236c6b5a9..9cfddb9c6 100644 --- a/apps/studio/src/utils/download.ts +++ b/apps/studio/src/utils/download.ts @@ -230,8 +230,8 @@ const packageJson = ({ }, "license": "MIT", "files": [ - "DESCRIPTION.md", - "config.json", + "README.md", + ".codemodrc.json", "./dist/index.cjs", "./index.d.ts" ], @@ -482,7 +482,7 @@ export const downloadProject = async (input: ProjectDownloadInput) => { `/*! @license\n${licenseContent}\n*/\n${compiled}`, ); - zip.file("DESCRIPTION.md", description(input)); + zip.file("README.md", description(input)); zip.file("build.ts", buildScript()); zip.file("vitest.config.ts", vitestConfig()); @@ -490,7 +490,7 @@ export const downloadProject = async (input: ProjectDownloadInput) => { zip.file("package.json", packageJson(input)); zip.file("tsconfig.json", tsconfigJson()); - zip.file("config.json", configJson(input)); + zip.file(".codemodrc.json", configJson(input)); zip.file(".gitignore", "node_modules\ndist\nbuild.ts"); diff --git a/apps/vsce/src/components/engineService.ts b/apps/vsce/src/components/engineService.ts index f0a7b81d7..2f7939c40 100644 --- a/apps/vsce/src/components/engineService.ts +++ b/apps/vsce/src/components/engineService.ts @@ -375,7 +375,7 @@ export class EngineService { homedir(), ".codemod", hashDigest, - "config.json", + ".codemodrc.json", ); if (!existsSync(configPath)) { @@ -443,7 +443,7 @@ export class EngineService { const { names } = parsePrivateCodemodsEnvelope(json); for (const hash of names) { - const configPath = join(globalStoragePath, hash, "config.json"); + const configPath = join(globalStoragePath, hash, ".codemodrc.json"); if (!existsSync(configPath)) { continue; diff --git a/apps/vsce/src/extension.ts b/apps/vsce/src/extension.ts index 92da881a4..cd173bbf2 100644 --- a/apps/vsce/src/extension.ts +++ b/apps/vsce/src/extension.ts @@ -960,7 +960,7 @@ export async function activate(context: vscode.ExtensionContext) { const codemodDirectoryPath = join(globalStoragePath, codemodHash); await mkdir(codemodDirectoryPath, { recursive: true }); - const buildConfigPath = join(codemodDirectoryPath, "config.json"); + const buildConfigPath = join(codemodDirectoryPath, ".codemodrc.json"); await writeFile( buildConfigPath, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a0ea19cee..4de6cdc4c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -53,6 +53,9 @@ importers: js-yaml: specifier: 4.1.0 version: 4.1.0 + ms: + specifier: ^2.1.3 + version: 2.1.3 devDependencies: '@babel/core': specifier: ^7.20.2 @@ -90,6 +93,9 @@ importers: '@types/jscodeshift': specifier: ^0.11.5 version: 0.11.11 + '@types/ms': + specifier: ^0.7.34 + version: 0.7.34 '@types/node': specifier: 18.11.9 version: 18.11.9 @@ -226,16 +232,22 @@ importers: apps/registry/builder: dependencies: - '@effect/schema': - specifier: ^0.48.4 - version: 0.48.4(effect@2.0.0-next.55)(fast-check@3.15.1) fast-glob: specifier: 3.3.2 version: 3.3.2 + ms: + specifier: ^2.1.3 + version: 2.1.3 tar: specifier: ^6.2.0 version: 6.2.0 + valibot: + specifier: ^0.24.1 + version: 0.24.1 devDependencies: + '@types/ms': + specifier: ^0.7.34 + version: 0.7.34 '@types/node': specifier: ^20.9.2 version: 20.10.4 @@ -4266,43 +4278,6 @@ importers: specifier: ^5.2.2 version: 5.3.3 - apps/registry/readme-parser: - dependencies: - js-yaml: - specifier: 4.1.0 - version: 4.1.0 - mdast-util-from-markdown: - specifier: 2.0.0 - version: 2.0.0 - simple-git: - specifier: ^3.21.0 - version: 3.22.0 - valibot: - specifier: ^0.24.1 - version: 0.24.1 - devDependencies: - '@types/js-yaml': - specifier: 4.0.9 - version: 4.0.9 - '@types/mdast': - specifier: 4.0.3 - version: 4.0.3 - '@types/node': - specifier: 20.10.4 - version: 20.10.4 - esbuild: - specifier: ^0.19.7 - version: 0.19.12 - tsx: - specifier: ^4.7.0 - version: 4.7.0 - typescript: - specifier: 5.3.3 - version: 5.3.3 - vitest: - specifier: 1.0.4 - version: 1.0.4(@types/node@20.10.4) - apps/studio: dependencies: '@babel/parser': @@ -7866,16 +7841,6 @@ packages: fast-check: 3.15.1 dev: false - /@effect/schema@0.48.4(effect@2.0.0-next.55)(fast-check@3.15.1): - resolution: {integrity: sha512-V+1eY8VvYuEZs+vU0JWPoh30gNdBtDnabOJrE2tNuoMKcw9LgjQFaPoVR4Jw7Swm0TmdfRHuIkhWjK4i7XyGiA==} - peerDependencies: - effect: 2.0.0-next.55 - fast-check: ^3.13.2 - dependencies: - effect: 2.0.0-next.55 - fast-check: 3.15.1 - dev: false - /@effect/schema@0.49.4(effect@2.0.0-next.56)(fast-check@3.15.1): resolution: {integrity: sha512-Em5qFV7kXfHpt6n89B2Zwd0ccGgfFpZbBAfQuGPdw/zY18k01Tl3ufKfBA6fFphKQiWrU6JS9btTlq1+/WRRIg==} peerDependencies: @@ -9218,18 +9183,6 @@ packages: resolution: {integrity: sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==} dev: true - /@kwsites/file-exists@1.1.1: - resolution: {integrity: sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==} - dependencies: - debug: 4.3.4(supports-color@5.5.0) - transitivePeerDependencies: - - supports-color - dev: false - - /@kwsites/promise-deferred@1.1.1: - resolution: {integrity: sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==} - dev: false - /@langchain/community@0.0.29(@aws-sdk/credential-provider-node@3.515.0)(chromadb@1.7.2)(pg@8.11.3)(replicate@0.25.2): resolution: {integrity: sha512-7KCr6JjmWfX26eNGYoDcsSx2PqFcrCt7g3Zy3YwFrjaCIob9ivsx59IXiOd4TgvKJmTiP3RjMTz55cDj7Es63g==} engines: {node: '>=18'} @@ -16074,10 +16027,6 @@ packages: /ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - /effect@2.0.0-next.55: - resolution: {integrity: sha512-kNOB/HaDSdaFSDVXK2gyf4XcTKbKKlllyoS871uDyoJskcc+024sSOHnNioXZPgkqaz55a3mad4DFfLUIETwYQ==} - dev: false - /effect@2.0.0-next.56: resolution: {integrity: sha512-Z6L9rf78OveZorl4pC82hUM/kNhQ8epChuCBVNIjVsookbb6iqTuP9goi3qi6CR7xUZE+HnOKF2bzMIdOOP+Vw==} dev: false @@ -24903,16 +24852,6 @@ packages: once: 1.4.0 simple-concat: 1.0.1 - /simple-git@3.22.0: - resolution: {integrity: sha512-6JujwSs0ac82jkGjMHiCnTifvf1crOiY/+tfs/Pqih6iow7VrpNKRRNdWm6RtaXpvvv/JGNYhlUtLhGFqHF+Yw==} - dependencies: - '@kwsites/file-exists': 1.1.1 - '@kwsites/promise-deferred': 1.1.1 - debug: 4.3.4(supports-color@5.5.0) - transitivePeerDependencies: - - supports-color - dev: false - /simple-html-tokenizer@0.5.11: resolution: {integrity: sha512-C2WEK/Z3HoSFbYq8tI7ni3eOo/NneSPRoPpcM7WdLjFOArFuyXEjAoCdOC3DgMfRyziZQ1hCNR4mrNdWEvD0og==} dev: false From c1957c46c062a3326598ad00448271923f9e0372 Mon Sep 17 00:00:00 2001 From: Benny Joo Date: Tue, 5 Mar 2024 17:52:37 +0000 Subject: [PATCH 09/11] Codemod login fix attempt (#129) --- apps/studio/src/api/getAccessToken.ts | 3 +-- apps/studio/src/env.ts | 3 --- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/apps/studio/src/api/getAccessToken.ts b/apps/studio/src/api/getAccessToken.ts index 3bc27315e..671240916 100644 --- a/apps/studio/src/api/getAccessToken.ts +++ b/apps/studio/src/api/getAccessToken.ts @@ -4,8 +4,7 @@ import { BUILD_ACCESS_TOKEN } from "../constants"; import { Either } from "../utils/Either"; import apiClient from "./client"; -const X_CODEMODCOM_ACCESS_TOKEN = - env.NEXT_PUBLIC_X_CODEMODCOM_ACCESS_TOKEN ?? ""; +const X_CODEMODCOM_ACCESS_TOKEN = "x-codemod-access-token"; const getAccessToken = async ({ clerkToken, }: { diff --git a/apps/studio/src/env.ts b/apps/studio/src/env.ts index cca8ebc6b..24da3ddf2 100644 --- a/apps/studio/src/env.ts +++ b/apps/studio/src/env.ts @@ -16,7 +16,6 @@ export const env = createEnv({ client: { NEXT_PUBLIC_API_URL: z.string(), NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY: z.string(), - NEXT_PUBLIC_X_CODEMODCOM_ACCESS_TOKEN: z.string(), }, /** @@ -28,7 +27,5 @@ export const env = createEnv({ NEXT_PUBLIC_API_URL: process.env.NEXT_PUBLIC_API_URL, NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY: process.env.NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY, - NEXT_PUBLIC_X_CODEMODCOM_ACCESS_TOKEN: - process.env.NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY, }, }); From 7587e1b72a3e250f1c5a24a4581b75f50b107150 Mon Sep 17 00:00:00 2001 From: Benny Joo Date: Wed, 6 Mar 2024 14:53:10 +0000 Subject: [PATCH 10/11] [Codemod] Use BrowserRouter (#120) --- .../4/browser-router/.codemod/DESCRIPTION.md | 5 ++ .../4/browser-router/.codemod/config.json | 15 ++++++ .../react-router/4/browser-router/index.d.ts | 3 ++ .../4/browser-router/package.json | 30 ++++++++++++ .../4/browser-router/src/index.ts | 48 +++++++++++++++++++ .../4/browser-router/test/test.ts | 39 +++++++++++++++ .../4/browser-router/tsconfig.json | 9 ++++ pnpm-lock.yaml | 37 +++++++++++--- 8 files changed, 180 insertions(+), 6 deletions(-) create mode 100644 apps/registry/codemods/react-router/4/browser-router/.codemod/DESCRIPTION.md create mode 100644 apps/registry/codemods/react-router/4/browser-router/.codemod/config.json create mode 100644 apps/registry/codemods/react-router/4/browser-router/index.d.ts create mode 100644 apps/registry/codemods/react-router/4/browser-router/package.json create mode 100644 apps/registry/codemods/react-router/4/browser-router/src/index.ts create mode 100644 apps/registry/codemods/react-router/4/browser-router/test/test.ts create mode 100644 apps/registry/codemods/react-router/4/browser-router/tsconfig.json diff --git a/apps/registry/codemods/react-router/4/browser-router/.codemod/DESCRIPTION.md b/apps/registry/codemods/react-router/4/browser-router/.codemod/DESCRIPTION.md new file mode 100644 index 000000000..cda9635d3 --- /dev/null +++ b/apps/registry/codemods/react-router/4/browser-router/.codemod/DESCRIPTION.md @@ -0,0 +1,5 @@ +# Browser Router + +## Description + +Run this codemod to replace `Router` using `browserHistory` to `BrowserRouter` in v4. \ No newline at end of file diff --git a/apps/registry/codemods/react-router/4/browser-router/.codemod/config.json b/apps/registry/codemods/react-router/4/browser-router/.codemod/config.json new file mode 100644 index 000000000..c0d0b12cf --- /dev/null +++ b/apps/registry/codemods/react-router/4/browser-router/.codemod/config.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0", + "private": false, + "name": "react-router/5/browser-router", + "deps": ["vitest@latest"], + "owner": "codemod.com", + "engine": "jscodeshift", + "extensions": ["js*", "ts*"], + "applicability": [["react-router", "<", "4.0.0"]], + "meta": { + "type": "migration", + "changeType": "autonomous", + "timeSave": "5m" + } +} diff --git a/apps/registry/codemods/react-router/4/browser-router/index.d.ts b/apps/registry/codemods/react-router/4/browser-router/index.d.ts new file mode 100644 index 000000000..e10deea54 --- /dev/null +++ b/apps/registry/codemods/react-router/4/browser-router/index.d.ts @@ -0,0 +1,3 @@ +import type { API, FileInfo } from 'jscodeshift'; + +export default function transform(file: FileInfo, api: API): string; diff --git a/apps/registry/codemods/react-router/4/browser-router/package.json b/apps/registry/codemods/react-router/4/browser-router/package.json new file mode 100644 index 000000000..cba32d08f --- /dev/null +++ b/apps/registry/codemods/react-router/4/browser-router/package.json @@ -0,0 +1,30 @@ +{ + "name": "@codemod-com/codemod-react-router-5-browser-router", + "dependencies": {}, + "devDependencies": { + "@codemod-com/utilities": "workspace:*", + "@codemod-com/registry-cjs-builder": "workspace:*", + "typescript": "^5.2.2", + "esbuild": "0.19.5", + "ts-node": "^10.9.1", + "jscodeshift": "^0.15.1", + "@types/jscodeshift": "^0.11.10", + "vitest": "^1.0.1", + "@vitest/coverage-v8": "^1.0.1" + }, + "main": "./dist/index.cjs", + "types": "/dist/index.d.ts", + "scripts": { + "build:cjs": "cjs-builder ./src/index.ts", + "test": "vitest run", + "test:watch": "vitest watch", + "coverage": "vitest run --coverage" + }, + "files": [ + "./.codemod/DESCRIPTION.md", + "./.codemod/config.json", + "./dist/index.cjs", + "./index.d.ts" + ], + "type": "module" +} diff --git a/apps/registry/codemods/react-router/4/browser-router/src/index.ts b/apps/registry/codemods/react-router/4/browser-router/src/index.ts new file mode 100644 index 000000000..6f07ecdc2 --- /dev/null +++ b/apps/registry/codemods/react-router/4/browser-router/src/index.ts @@ -0,0 +1,48 @@ +import type { API, FileInfo } from "jscodeshift"; + +function transform(file: FileInfo, api: API): string | undefined { + const j = api.jscodeshift; + + const root = j(file.source); + + root + .find(j.JSXElement, { + openingElement: { name: { name: "Router" } }, + }) + .forEach((path) => { + const attrs = path.value.openingElement.attributes; + + const historyAttr = + attrs?.filter((a) => ("name" in a ? a.name.name === "history" : false)) + .length ?? false; + + if (attrs && historyAttr) { + if ("name" in path.value.openingElement.name) { + path.value.openingElement.name.name = "BrowserRouter"; + } + + if ( + path.value.closingElement && + "name" in path.value.closingElement.name + ) { + path.value.closingElement.name.name = "BrowserRouter"; + } + + path.value.openingElement.attributes = attrs.filter((a) => + "name" in a ? a.name.name !== "history" : false, + ); + } + + const computedImport = j.importDeclaration( + [j.importSpecifier(j.identifier("BrowserRouter"))], + j.literal("react-router-dom"), + ); + + const body = root.get().value.program.body; + body.unshift(computedImport); + }); + + return root.toSource(); +} + +export default transform; diff --git a/apps/registry/codemods/react-router/4/browser-router/test/test.ts b/apps/registry/codemods/react-router/4/browser-router/test/test.ts new file mode 100644 index 000000000..6b94b4965 --- /dev/null +++ b/apps/registry/codemods/react-router/4/browser-router/test/test.ts @@ -0,0 +1,39 @@ +import assert from "node:assert/strict"; +import { buildApi, trimLicense } from "@codemod-com/utilities"; +import type { FileInfo } from "jscodeshift"; +import { describe, it } from "vitest"; +import transform from "../src/index.js"; + +describe("react-router v5 browser-router", () => { + it("should replace Router component with BrowserRouter, add BrowserRouter import", async () => { + const input = ` + import { Router, browserHistory } from 'react-router'; + const MyApp = () => ( + + + + ); + `; + + const output = ` + import { BrowserRouter } from 'react-router-dom'; + import { Router, browserHistory } from 'react-router'; + const MyApp = () => ( + + + + ); + `; + const fileInfo: FileInfo = { + path: "index.js", + source: trimLicense(input), + }; + + const actualOutput = transform(fileInfo, buildApi("js")); + + assert.deepEqual( + actualOutput?.replace(/\W/gm, ""), + trimLicense(output).replace(/\W/gm, ""), + ); + }); +}); diff --git a/apps/registry/codemods/react-router/4/browser-router/tsconfig.json b/apps/registry/codemods/react-router/4/browser-router/tsconfig.json new file mode 100644 index 000000000..5107bd222 --- /dev/null +++ b/apps/registry/codemods/react-router/4/browser-router/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "@codemod-com/tsconfig/codemod.json", + "include": [ + "./src/**/*.ts", + "./src/**/*.js", + "./test/**/*.ts", + "./test/**/*.js" + ] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4de6cdc4c..c63c7363a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -3095,6 +3095,36 @@ importers: specifier: ^1.0.1 version: 1.0.4(@types/node@20.10.5) + apps/registry/codemods/react-router/4/browser-router: + devDependencies: + '@codemod-com/registry-cjs-builder': + specifier: workspace:* + version: link:../../../../cjs-builder + '@codemod-com/utilities': + specifier: workspace:* + version: link:../../../../../../packages/utilities + '@types/jscodeshift': + specifier: ^0.11.10 + version: 0.11.11 + '@vitest/coverage-v8': + specifier: ^1.0.1 + version: 1.2.2(vitest@1.1.0) + esbuild: + specifier: 0.19.5 + version: 0.19.5 + jscodeshift: + specifier: ^0.15.1 + version: 0.15.1(@babel/preset-env@7.23.9) + ts-node: + specifier: ^10.9.1 + version: 10.9.2(@types/node@20.10.5)(typescript@5.3.3) + typescript: + specifier: ^5.2.2 + version: 5.3.3 + vitest: + specifier: ^1.0.1 + version: 1.1.0(@types/node@20.10.5) + apps/registry/codemods/react-router/4/create-hash-history: devDependencies: '@codemod-com/registry-cjs-builder': @@ -4679,8 +4709,6 @@ importers: specifier: 1.1.0 version: 1.1.0(@types/node@20.10.5) - apps/studio-backend/build-ncc: {} - apps/vsce: dependencies: '@effect/schema': @@ -13099,7 +13127,7 @@ packages: std-env: 3.7.0 test-exclude: 6.0.0 v8-to-istanbul: 9.2.0 - vitest: 1.0.4(@types/node@20.10.4) + vitest: 1.0.4(@types/node@18.11.9) transitivePeerDependencies: - supports-color dev: true @@ -25115,9 +25143,6 @@ packages: /sqlite3@5.1.7: resolution: {integrity: sha512-GGIyOiFaG+TUra3JIfkI/zGP8yZYLPQ0pl1bH+ODjiX57sPhrLU5sQJn1y9bDKZUFYkX1crlrPfSYt0BKKdkog==} requiresBuild: true - peerDependenciesMeta: - node-gyp: - optional: true dependencies: bindings: 1.5.0 node-addon-api: 7.1.0 From 67293244b13f343eb6ddd5919b80357881a7188c Mon Sep 17 00:00:00 2001 From: Sasha Date: Wed, 6 Mar 2024 17:32:23 +0100 Subject: [PATCH 11/11] [Backend] Codemod table, Prisma integration, Dockerfile tweaks, seeding script (CDMD-2634, CDMD-2637, CDMD-2693) (#109) --- .gitignore | 2 +- apps/studio-backend/.gitignore | 4 + apps/studio-backend/Dockerfile | 27 +- apps/studio-backend/development.Dockerfile | 14 +- apps/studio-backend/docker-compose.yml | 9 +- apps/studio-backend/esbuild.config.js | 16 + apps/studio-backend/package.json | 41 +- apps/studio-backend/pnpm-lock.yaml | 6455 ----------------- .../20240229145752_init/migration.sql | 39 + .../prisma/migrations/migration_lock.toml | 3 + apps/studio-backend/prisma/schema.prisma | 52 + apps/studio-backend/prisma/seed.ts | 55 + apps/studio-backend/src/chroma.ts | 2 +- .../buildTokenMetadataRepository.ts | 0 .../buildTokenRevocationsRepository.ts | 0 .../dataAccessLayer.ts | 0 apps/studio-backend/src/db/prisma.ts | 3 + .../src/{dataAccessLayer => db}/schemata.ts | 0 apps/studio-backend/src/index.ts | 39 - apps/studio-backend/src/publishHandler.ts | 2 +- apps/studio-backend/src/runServer.ts | 495 -- apps/studio-backend/src/schemata/env.ts | 49 + apps/studio-backend/src/schemata/query.ts | 28 + .../src/{ => schemata}/schema.ts | 27 - apps/studio-backend/src/server.ts | 541 ++ .../src/services/tokenService.test.ts | 2 +- .../src/services/tokenService.ts | 6 +- apps/studio-backend/src/util.ts | 2 +- packages/tsconfig/base.json | 1 + pnpm-lock.yaml | 1215 ++-- 30 files changed, 1544 insertions(+), 7585 deletions(-) create mode 100644 apps/studio-backend/.gitignore create mode 100644 apps/studio-backend/esbuild.config.js delete mode 100644 apps/studio-backend/pnpm-lock.yaml create mode 100644 apps/studio-backend/prisma/migrations/20240229145752_init/migration.sql create mode 100644 apps/studio-backend/prisma/migrations/migration_lock.toml create mode 100644 apps/studio-backend/prisma/schema.prisma create mode 100644 apps/studio-backend/prisma/seed.ts rename apps/studio-backend/src/{dataAccessLayer => db}/buildTokenMetadataRepository.ts (100%) rename apps/studio-backend/src/{dataAccessLayer => db}/buildTokenRevocationsRepository.ts (100%) rename apps/studio-backend/src/{dataAccessLayer => db}/dataAccessLayer.ts (100%) create mode 100644 apps/studio-backend/src/db/prisma.ts rename apps/studio-backend/src/{dataAccessLayer => db}/schemata.ts (100%) delete mode 100644 apps/studio-backend/src/index.ts delete mode 100644 apps/studio-backend/src/runServer.ts create mode 100644 apps/studio-backend/src/schemata/env.ts create mode 100644 apps/studio-backend/src/schemata/query.ts rename apps/studio-backend/src/{ => schemata}/schema.ts (54%) create mode 100644 apps/studio-backend/src/server.ts diff --git a/.gitignore b/.gitignore index f0be87758..7ea60f863 100644 --- a/.gitignore +++ b/.gitignore @@ -31,4 +31,4 @@ yarn-debug.log* .vercel # Backend -build-ncc \ No newline at end of file +build diff --git a/apps/studio-backend/.gitignore b/apps/studio-backend/.gitignore new file mode 100644 index 000000000..2d50b5940 --- /dev/null +++ b/apps/studio-backend/.gitignore @@ -0,0 +1,4 @@ +node_modules +prisma/generated +# Keep environment variables out of version control +.env diff --git a/apps/studio-backend/Dockerfile b/apps/studio-backend/Dockerfile index ba85e00c7..eedadd6e2 100644 --- a/apps/studio-backend/Dockerfile +++ b/apps/studio-backend/Dockerfile @@ -1,26 +1,27 @@ -# stage0 -FROM node:19-alpine3.16 as stage0 +FROM node:19-alpine3.16 -WORKDIR /opt/studio-backend +WORKDIR /app/ RUN npm install -g pnpm -COPY ./package.json ./pnpm-lock.yaml /opt/studio-backend/ +COPY ./apps/studio-backend/package.json ./apps/studio-backend/pnpm-lock.yaml /app/apps/studio-backend/ +COPY ./pnpm-workspace.yaml /app/ +COPY ./packages /app/packages/ RUN pnpm install -COPY ./tsconfig.json /opt/studio-backend/ -COPY ./src /opt/studio-backend/src +COPY ./apps/studio-backend/prisma /app/apps/studio-backend/prisma/ +COPY ./apps/studio-backend/.env /app/apps/studio-backend/ +COPY ./apps/studio-backend/tsconfig.json /app/apps/studio-backend/ +COPY ./apps/studio-backend/esbuild.config.js /app/apps/studio-backend/ +COPY ./apps/studio-backend/src /app/apps/studio-backend/src/ -RUN pnpm run build:ncc +WORKDIR /app/apps/studio-backend -# stage 1 -FROM node:19-alpine3.16 as stage1 +RUN pnpm db:generate -WORKDIR /opt/studio-backend - -COPY --from=stage0 /opt/studio-backend/build-ncc/ /opt/studio-backend +RUN pnpm build EXPOSE 8081 -CMD ["node", "./index.js"] +CMD ["node", "./build/server.js"] diff --git a/apps/studio-backend/development.Dockerfile b/apps/studio-backend/development.Dockerfile index eed34019c..91538033d 100644 --- a/apps/studio-backend/development.Dockerfile +++ b/apps/studio-backend/development.Dockerfile @@ -1,13 +1,19 @@ FROM node:19-alpine3.16 -WORKDIR /opt/studio-backend +WORKDIR /app/ RUN npm install -g pnpm -COPY ./package.json ./pnpm-lock.yaml /opt/studio-backend/ +COPY ./apps/studio-backend/package.json ./apps/studio-backend/pnpm-lock.yaml /app/apps/studio-backend/ +COPY ./pnpm-workspace.yaml /app/ +COPY ./packages /app/packages/ RUN pnpm install -COPY ./tsconfig.json /opt/studio-backend/ -COPY ./src /opt/studio-backend/src +COPY ./apps/studio-backend/prisma /app/apps/studio-backend/prisma/ +COPY ./apps/studio-backend/tsconfig.json /app/apps/studio-backend/ +COPY ./apps/studio-backend/src /app/apps/studio-backend/src/ +# WORKDIR /app/studio-backend + +CMD pnpm --filter studio-backend watch diff --git a/apps/studio-backend/docker-compose.yml b/apps/studio-backend/docker-compose.yml index 2ec3b6e14..cfb2699ea 100644 --- a/apps/studio-backend/docker-compose.yml +++ b/apps/studio-backend/docker-compose.yml @@ -12,19 +12,18 @@ services: - 'codemod-local-network' studio-backend: build: - context: . - dockerfile: development.Dockerfile + context: ../.. + dockerfile: apps/studio-backend/development.Dockerfile environment: PORT: '8081' CLERK_DISABLED: 'true' - DATABASE_URL: 'postgres://postgres:postgres@studio-database:5432/studio' + DATABASE_URI: 'postgres://postgres:postgres@studio-database:5432/studio' ports: - '8081:8081' networks: - 'codemod-local-network' - command: ['pnpm', 'watch'] volumes: - - ./src:/opt/studio-backend/src + - ./src:/app/studio-backend/src networks: codemod-local-network: diff --git a/apps/studio-backend/esbuild.config.js b/apps/studio-backend/esbuild.config.js new file mode 100644 index 000000000..8866c137e --- /dev/null +++ b/apps/studio-backend/esbuild.config.js @@ -0,0 +1,16 @@ +import esbuild from "esbuild"; + +esbuild + .build({ + entryPoints: ["src/server.ts"], + bundle: true, + minify: true, + platform: "node", + outfile: "build/server.js", + external: ["@prisma/client", "pg-hstore"], + banner: { + js: `import { createRequire } from 'module';\nconst require = createRequire(import.meta.url);`, + }, + format: "esm", + }) + .catch(() => process.exit(1)); diff --git a/apps/studio-backend/package.json b/apps/studio-backend/package.json index af040a269..521d2d724 100644 --- a/apps/studio-backend/package.json +++ b/apps/studio-backend/package.json @@ -2,39 +2,51 @@ "name": "studio-backend", "version": "1.0.0", "scripts": { - "start:ncc": "node ./build-ncc/index.js", + "build": "node esbuild.config.js", + "start": "node build/server.js", "test": "vitest --run", - "watch": "nodemon --exec ./node_modules/.bin/ts-node --esm ./src/index.ts", - "build:ncc": "ncc build ./src/index.ts -m -o ./build-ncc" + "watch": "pnpm db:generate && nodemon --exec ./node_modules/.bin/ts-node --esm ./src/server.ts", + "db:push": "prisma db push", + "db:generate": "prisma generate", + "db:migrate:generate": "prisma migrate dev --name", + "db:migrate:apply": "prisma migrate deploy", + "db:seed": "tsx prisma/seed.ts", + "db:studio": "prisma studio" }, "author": "Codemod inc.", "private": true, "devDependencies": { + "@biomejs/biome": "1.5.3", + "@codemod-com/tsconfig": "workspace:*", + "@faker-js/faker": "^8.4.1", "@types/node": "20.10.5", "@types/parse-github-url": "1.0.3", - "@vercel/ncc": "0.38.1", + "@types/pg": "^8.11.2", + "esbuild": "^0.19.12", "fastify-plugin": "4.5.1", "nodemon": "3.0.2", "sqlite3": "^5.1.7", "ts-node": "10.9.2", + "tsx": "^4.7.1", "typescript": "5.3.3", - "vitest": "1.1.0", - "@biomejs/biome": "1.5.3" + "vitest": "1.1.0" }, "dependencies": { - "@aws-sdk/client-s3": "^3.478.0", - "@clerk/fastify": "0.6.27", + "@aws-sdk/client-s3": "^3.525.0", "@clerk/backend": "0.36.0", + "@clerk/fastify": "0.6.27", "@effect/schema": "0.54.0", - "@fastify/busboy": "^2.1.0", + "@fastify/busboy": "^2.1.1", "@fastify/cors": "8.5.0", - "@fastify/multipart": "^8.0.0", + "@fastify/multipart": "^8.1.0", "@fastify/rate-limit": "9.0.1", - "@types/tar": "^6.1.10", + "@prisma/client": "5.10.2", + "@types/tar": "^6.1.11", "ai": "2.2.29", "axios": "1.6.2", "chatgpt": "5.2.5", "chromadb": "1.7.2", + "dotenv": "^16.4.5", "fastify": "4.25.1", "langchain": "0.0.209", "lru-cache": "10.1.0", @@ -42,10 +54,13 @@ "openai-edge": "1.2.2", "parse-github-url": "1.0.2", "pg": "^8.11.3", + "prisma": "^5.10.2", "replicate": "0.25.2", - "sequelize": "^6.36.0", + "sequelize": "^6.37.1", "tar": "^6.2.0", - "valibot": "^0.24.1" + "valibot": "^0.24.1", + "zod": "3.21.4", + "zod-prisma-types": "^3.1.6" }, "type": "module", "peerDependencies": { diff --git a/apps/studio-backend/pnpm-lock.yaml b/apps/studio-backend/pnpm-lock.yaml deleted file mode 100644 index 61e9f604c..000000000 --- a/apps/studio-backend/pnpm-lock.yaml +++ /dev/null @@ -1,6455 +0,0 @@ -lockfileVersion: '6.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -dependencies: - '@aws-sdk/client-s3': - specifier: ^3.478.0 - version: 3.478.0 - '@clerk/backend': - specifier: 0.36.0 - version: 0.36.0(react@18.2.0) - '@clerk/fastify': - specifier: 0.6.27 - version: 0.6.27(fastify-plugin@4.5.1)(fastify@4.25.1)(react@18.2.0) - '@effect/schema': - specifier: 0.54.0 - version: 0.54.0(effect@2.0.0-next.61)(fast-check@3.15.0) - '@fastify/busboy': - specifier: ^2.1.0 - version: 2.1.0 - '@fastify/cors': - specifier: 8.5.0 - version: 8.5.0 - '@fastify/multipart': - specifier: ^8.0.0 - version: 8.0.0 - '@fastify/rate-limit': - specifier: 9.0.1 - version: 9.0.1 - '@types/tar': - specifier: ^6.1.10 - version: 6.1.10 - ai: - specifier: 2.2.29 - version: 2.2.29(react@18.2.0)(solid-js@1.7.11)(svelte@4.2.0)(vue@3.3.4) - axios: - specifier: 1.6.2 - version: 1.6.2 - chatgpt: - specifier: 5.2.5 - version: 5.2.5 - chromadb: - specifier: 1.7.2 - version: 1.7.2(openai@4.23.0) - fastify: - specifier: 4.25.1 - version: 4.25.1 - langchain: - specifier: 0.0.209 - version: 0.0.209(@aws-sdk/client-s3@3.478.0)(axios@1.6.2)(chromadb@1.7.2)(pg@8.11.3)(replicate@0.25.2) - lru-cache: - specifier: 10.1.0 - version: 10.1.0 - openai: - specifier: 4.23.0 - version: 4.23.0 - openai-edge: - specifier: 1.2.2 - version: 1.2.2 - parse-github-url: - specifier: 1.0.2 - version: 1.0.2 - pg: - specifier: ^8.11.3 - version: 8.11.3 - replicate: - specifier: 0.25.2 - version: 0.25.2 - sequelize: - specifier: ^6.36.0 - version: 6.36.0(pg@8.11.3)(sqlite3@5.1.7) - tar: - specifier: ^6.2.0 - version: 6.2.0 - valibot: - specifier: ^0.24.1 - version: 0.24.1 - -devDependencies: - '@types/node': - specifier: 20.10.5 - version: 20.10.5 - '@types/parse-github-url': - specifier: 1.0.3 - version: 1.0.3 - '@typescript-eslint/eslint-plugin': - specifier: ^5.59.5 - version: 5.59.5(@typescript-eslint/parser@5.59.5)(eslint@8.40.0)(typescript@5.3.3) - '@typescript-eslint/parser': - specifier: ^5.59.5 - version: 5.59.5(eslint@8.40.0)(typescript@5.3.3) - '@vercel/ncc': - specifier: 0.38.1 - version: 0.38.1 - eslint: - specifier: ^8.40.0 - version: 8.40.0 - eslint-config-prettier: - specifier: ^8.8.0 - version: 8.8.0(eslint@8.40.0) - eslint-plugin-prettier: - specifier: ^4.2.1 - version: 4.2.1(eslint-config-prettier@8.8.0)(eslint@8.40.0)(prettier@2.8.8) - fastify-plugin: - specifier: 4.5.1 - version: 4.5.1 - nodemon: - specifier: 3.0.2 - version: 3.0.2 - prettier: - specifier: ^2.8.8 - version: 2.8.8 - sqlite3: - specifier: ^5.1.7 - version: 5.1.7 - ts-node: - specifier: 10.9.2 - version: 10.9.2(@types/node@20.10.5)(typescript@5.3.3) - typescript: - specifier: 5.3.3 - version: 5.3.3 - vitest: - specifier: 1.1.0 - version: 1.1.0(@types/node@20.10.5) - -packages: - - /@ampproject/remapping@2.2.1: - resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} - engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.19 - dev: false - - /@anthropic-ai/sdk@0.9.1: - resolution: {integrity: sha512-wa1meQ2WSfoY8Uor3EdrJq0jTiZJoKoSii2ZVWRY1oN4Tlr5s59pADg9T79FTbPe1/se5c3pBeZgJL63wmuoBA==} - dependencies: - '@types/node': 18.16.7 - '@types/node-fetch': 2.6.4 - abort-controller: 3.0.0 - agentkeepalive: 4.5.0 - digest-fetch: 1.3.0 - form-data-encoder: 1.7.2 - formdata-node: 4.4.1 - node-fetch: 2.6.12 - web-streams-polyfill: 3.2.1 - transitivePeerDependencies: - - encoding - dev: false - - /@aws-crypto/crc32@3.0.0: - resolution: {integrity: sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA==} - dependencies: - '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.468.0 - tslib: 1.14.1 - dev: false - - /@aws-crypto/crc32c@3.0.0: - resolution: {integrity: sha512-ENNPPManmnVJ4BTXlOjAgD7URidbAznURqD0KvfREyc4o20DPYdEldU1f5cQ7Jbj0CJJSPaMIk/9ZshdB3210w==} - dependencies: - '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.468.0 - tslib: 1.14.1 - dev: false - - /@aws-crypto/ie11-detection@3.0.0: - resolution: {integrity: sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q==} - dependencies: - tslib: 1.14.1 - dev: false - - /@aws-crypto/sha1-browser@3.0.0: - resolution: {integrity: sha512-NJth5c997GLHs6nOYTzFKTbYdMNA6/1XlKVgnZoaZcQ7z7UJlOgj2JdbHE8tiYLS3fzXNCguct77SPGat2raSw==} - dependencies: - '@aws-crypto/ie11-detection': 3.0.0 - '@aws-crypto/supports-web-crypto': 3.0.0 - '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.468.0 - '@aws-sdk/util-locate-window': 3.465.0 - '@aws-sdk/util-utf8-browser': 3.259.0 - tslib: 1.14.1 - dev: false - - /@aws-crypto/sha256-browser@3.0.0: - resolution: {integrity: sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ==} - dependencies: - '@aws-crypto/ie11-detection': 3.0.0 - '@aws-crypto/sha256-js': 3.0.0 - '@aws-crypto/supports-web-crypto': 3.0.0 - '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.468.0 - '@aws-sdk/util-locate-window': 3.465.0 - '@aws-sdk/util-utf8-browser': 3.259.0 - tslib: 1.14.1 - dev: false - - /@aws-crypto/sha256-js@3.0.0: - resolution: {integrity: sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ==} - dependencies: - '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.468.0 - tslib: 1.14.1 - dev: false - - /@aws-crypto/supports-web-crypto@3.0.0: - resolution: {integrity: sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg==} - dependencies: - tslib: 1.14.1 - dev: false - - /@aws-crypto/util@3.0.0: - resolution: {integrity: sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w==} - dependencies: - '@aws-sdk/types': 3.468.0 - '@aws-sdk/util-utf8-browser': 3.259.0 - tslib: 1.14.1 - dev: false - - /@aws-sdk/client-s3@3.478.0: - resolution: {integrity: sha512-OUpbCCnK71lQQ07BohJOx9ZER0rPqRAGOVIIVhNEkeN0uYFLzB7/o5a7+FEPUQXEd5rZRZgbxN5xEmnNW/0Waw==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-crypto/sha1-browser': 3.0.0 - '@aws-crypto/sha256-browser': 3.0.0 - '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/client-sts': 3.478.0 - '@aws-sdk/core': 3.477.0 - '@aws-sdk/credential-provider-node': 3.478.0 - '@aws-sdk/middleware-bucket-endpoint': 3.470.0 - '@aws-sdk/middleware-expect-continue': 3.468.0 - '@aws-sdk/middleware-flexible-checksums': 3.468.0 - '@aws-sdk/middleware-host-header': 3.468.0 - '@aws-sdk/middleware-location-constraint': 3.468.0 - '@aws-sdk/middleware-logger': 3.468.0 - '@aws-sdk/middleware-recursion-detection': 3.468.0 - '@aws-sdk/middleware-sdk-s3': 3.474.0 - '@aws-sdk/middleware-signing': 3.468.0 - '@aws-sdk/middleware-ssec': 3.468.0 - '@aws-sdk/middleware-user-agent': 3.478.0 - '@aws-sdk/region-config-resolver': 3.470.0 - '@aws-sdk/signature-v4-multi-region': 3.474.0 - '@aws-sdk/types': 3.468.0 - '@aws-sdk/util-endpoints': 3.478.0 - '@aws-sdk/util-user-agent-browser': 3.468.0 - '@aws-sdk/util-user-agent-node': 3.470.0 - '@aws-sdk/xml-builder': 3.472.0 - '@smithy/config-resolver': 2.0.21 - '@smithy/core': 1.2.0 - '@smithy/eventstream-serde-browser': 2.0.15 - '@smithy/eventstream-serde-config-resolver': 2.0.15 - '@smithy/eventstream-serde-node': 2.0.15 - '@smithy/fetch-http-handler': 2.3.1 - '@smithy/hash-blob-browser': 2.0.16 - '@smithy/hash-node': 2.0.17 - '@smithy/hash-stream-node': 2.0.17 - '@smithy/invalid-dependency': 2.0.15 - '@smithy/md5-js': 2.0.17 - '@smithy/middleware-content-length': 2.0.17 - '@smithy/middleware-endpoint': 2.2.3 - '@smithy/middleware-retry': 2.0.24 - '@smithy/middleware-serde': 2.0.15 - '@smithy/middleware-stack': 2.0.9 - '@smithy/node-config-provider': 2.1.8 - '@smithy/node-http-handler': 2.2.1 - '@smithy/protocol-http': 3.0.11 - '@smithy/smithy-client': 2.1.18 - '@smithy/types': 2.7.0 - '@smithy/url-parser': 2.0.15 - '@smithy/util-base64': 2.0.1 - '@smithy/util-body-length-browser': 2.0.1 - '@smithy/util-body-length-node': 2.1.0 - '@smithy/util-defaults-mode-browser': 2.0.22 - '@smithy/util-defaults-mode-node': 2.0.29 - '@smithy/util-endpoints': 1.0.7 - '@smithy/util-retry': 2.0.8 - '@smithy/util-stream': 2.0.23 - '@smithy/util-utf8': 2.0.2 - '@smithy/util-waiter': 2.0.15 - fast-xml-parser: 4.2.5 - tslib: 2.6.2 - transitivePeerDependencies: - - aws-crt - dev: false - - /@aws-sdk/client-sso@3.478.0: - resolution: {integrity: sha512-Jxy9cE1JMkPR0PklCpq3cORHnZq/Z4klhSTNGgZNeBWovMa+plor52kyh8iUNHKl3XEJvTbHM7V+dvrr/x0P1g==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-crypto/sha256-browser': 3.0.0 - '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/core': 3.477.0 - '@aws-sdk/middleware-host-header': 3.468.0 - '@aws-sdk/middleware-logger': 3.468.0 - '@aws-sdk/middleware-recursion-detection': 3.468.0 - '@aws-sdk/middleware-user-agent': 3.478.0 - '@aws-sdk/region-config-resolver': 3.470.0 - '@aws-sdk/types': 3.468.0 - '@aws-sdk/util-endpoints': 3.478.0 - '@aws-sdk/util-user-agent-browser': 3.468.0 - '@aws-sdk/util-user-agent-node': 3.470.0 - '@smithy/config-resolver': 2.0.21 - '@smithy/core': 1.2.0 - '@smithy/fetch-http-handler': 2.3.1 - '@smithy/hash-node': 2.0.17 - '@smithy/invalid-dependency': 2.0.15 - '@smithy/middleware-content-length': 2.0.17 - '@smithy/middleware-endpoint': 2.2.3 - '@smithy/middleware-retry': 2.0.24 - '@smithy/middleware-serde': 2.0.15 - '@smithy/middleware-stack': 2.0.9 - '@smithy/node-config-provider': 2.1.8 - '@smithy/node-http-handler': 2.2.1 - '@smithy/protocol-http': 3.0.11 - '@smithy/smithy-client': 2.1.18 - '@smithy/types': 2.7.0 - '@smithy/url-parser': 2.0.15 - '@smithy/util-base64': 2.0.1 - '@smithy/util-body-length-browser': 2.0.1 - '@smithy/util-body-length-node': 2.1.0 - '@smithy/util-defaults-mode-browser': 2.0.22 - '@smithy/util-defaults-mode-node': 2.0.29 - '@smithy/util-endpoints': 1.0.7 - '@smithy/util-retry': 2.0.8 - '@smithy/util-utf8': 2.0.2 - tslib: 2.6.2 - transitivePeerDependencies: - - aws-crt - dev: false - - /@aws-sdk/client-sts@3.478.0: - resolution: {integrity: sha512-D+QID0dYzmn9dcxgKP3/nMndUqiQbDLsqI0Zf2pG4MW5gPhVNKlDGIV3Ztz8SkMjzGJExNOLW2L569o8jshJVw==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-crypto/sha256-browser': 3.0.0 - '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/core': 3.477.0 - '@aws-sdk/credential-provider-node': 3.478.0 - '@aws-sdk/middleware-host-header': 3.468.0 - '@aws-sdk/middleware-logger': 3.468.0 - '@aws-sdk/middleware-recursion-detection': 3.468.0 - '@aws-sdk/middleware-user-agent': 3.478.0 - '@aws-sdk/region-config-resolver': 3.470.0 - '@aws-sdk/types': 3.468.0 - '@aws-sdk/util-endpoints': 3.478.0 - '@aws-sdk/util-user-agent-browser': 3.468.0 - '@aws-sdk/util-user-agent-node': 3.470.0 - '@smithy/config-resolver': 2.0.21 - '@smithy/core': 1.2.0 - '@smithy/fetch-http-handler': 2.3.1 - '@smithy/hash-node': 2.0.17 - '@smithy/invalid-dependency': 2.0.15 - '@smithy/middleware-content-length': 2.0.17 - '@smithy/middleware-endpoint': 2.2.3 - '@smithy/middleware-retry': 2.0.24 - '@smithy/middleware-serde': 2.0.15 - '@smithy/middleware-stack': 2.0.9 - '@smithy/node-config-provider': 2.1.8 - '@smithy/node-http-handler': 2.2.1 - '@smithy/protocol-http': 3.0.11 - '@smithy/smithy-client': 2.1.18 - '@smithy/types': 2.7.0 - '@smithy/url-parser': 2.0.15 - '@smithy/util-base64': 2.0.1 - '@smithy/util-body-length-browser': 2.0.1 - '@smithy/util-body-length-node': 2.1.0 - '@smithy/util-defaults-mode-browser': 2.0.22 - '@smithy/util-defaults-mode-node': 2.0.29 - '@smithy/util-endpoints': 1.0.7 - '@smithy/util-middleware': 2.0.8 - '@smithy/util-retry': 2.0.8 - '@smithy/util-utf8': 2.0.2 - fast-xml-parser: 4.2.5 - tslib: 2.6.2 - transitivePeerDependencies: - - aws-crt - dev: false - - /@aws-sdk/core@3.477.0: - resolution: {integrity: sha512-o0434EH+d1BxHZvgG7z8vph2SYefciQ5RnJw2MgvETGnthgqsnI4nnNJLSw0FVeqCeS18n6vRtzqlGYR2YPCNg==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/core': 1.2.0 - '@smithy/protocol-http': 3.0.11 - '@smithy/signature-v4': 2.0.18 - '@smithy/smithy-client': 2.1.18 - '@smithy/types': 2.7.0 - tslib: 2.6.2 - dev: false - - /@aws-sdk/credential-provider-env@3.468.0: - resolution: {integrity: sha512-k/1WHd3KZn0EQYjadooj53FC0z24/e4dUZhbSKTULgmxyO62pwh9v3Brvw4WRa/8o2wTffU/jo54tf4vGuP/ZA==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.468.0 - '@smithy/property-provider': 2.0.16 - '@smithy/types': 2.7.0 - tslib: 2.6.2 - dev: false - - /@aws-sdk/credential-provider-ini@3.478.0: - resolution: {integrity: sha512-SsrYEYUvTG9ZoPC+zB19AnVoOKID+QIEHJDIi1GCZXW5kTVyr1saTVm4orG2TjYvbHQMddsWtHOvGYXZWAYMbw==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/credential-provider-env': 3.468.0 - '@aws-sdk/credential-provider-process': 3.468.0 - '@aws-sdk/credential-provider-sso': 3.478.0 - '@aws-sdk/credential-provider-web-identity': 3.468.0 - '@aws-sdk/types': 3.468.0 - '@smithy/credential-provider-imds': 2.1.4 - '@smithy/property-provider': 2.0.16 - '@smithy/shared-ini-file-loader': 2.2.7 - '@smithy/types': 2.7.0 - tslib: 2.6.2 - transitivePeerDependencies: - - aws-crt - dev: false - - /@aws-sdk/credential-provider-node@3.478.0: - resolution: {integrity: sha512-nwDutJYeHiIZCQDgKIUrsgwAWTil0mNe+cbd+j8fi+wwxkWUzip+F0+z02molJ8WrUUKNRhqB1V5aVx7IranuA==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/credential-provider-env': 3.468.0 - '@aws-sdk/credential-provider-ini': 3.478.0 - '@aws-sdk/credential-provider-process': 3.468.0 - '@aws-sdk/credential-provider-sso': 3.478.0 - '@aws-sdk/credential-provider-web-identity': 3.468.0 - '@aws-sdk/types': 3.468.0 - '@smithy/credential-provider-imds': 2.1.4 - '@smithy/property-provider': 2.0.16 - '@smithy/shared-ini-file-loader': 2.2.7 - '@smithy/types': 2.7.0 - tslib: 2.6.2 - transitivePeerDependencies: - - aws-crt - dev: false - - /@aws-sdk/credential-provider-process@3.468.0: - resolution: {integrity: sha512-OYSn1A/UsyPJ7Z8Q2cNhTf55O36shPmSsvOfND04nSfu1nPaR+VUvvsP7v+brhGpwC/GAKTIdGAo4blH31BS6A==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.468.0 - '@smithy/property-provider': 2.0.16 - '@smithy/shared-ini-file-loader': 2.2.7 - '@smithy/types': 2.7.0 - tslib: 2.6.2 - dev: false - - /@aws-sdk/credential-provider-sso@3.478.0: - resolution: {integrity: sha512-LsDShG51X/q+s5ZFN7kHVqrd8ZHdyEyHqdhoocmRvvw2Dif50M0AqQfvCrW1ndj5CNzXO4x/eH8EK5ZOVlS6Sg==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/client-sso': 3.478.0 - '@aws-sdk/token-providers': 3.478.0 - '@aws-sdk/types': 3.468.0 - '@smithy/property-provider': 2.0.16 - '@smithy/shared-ini-file-loader': 2.2.7 - '@smithy/types': 2.7.0 - tslib: 2.6.2 - transitivePeerDependencies: - - aws-crt - dev: false - - /@aws-sdk/credential-provider-web-identity@3.468.0: - resolution: {integrity: sha512-rexymPmXjtkwCPfhnUq3EjO1rSkf39R4Jz9CqiM7OsqK2qlT5Y/V3gnMKn0ZMXsYaQOMfM3cT5xly5R+OKDHlw==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.468.0 - '@smithy/property-provider': 2.0.16 - '@smithy/types': 2.7.0 - tslib: 2.6.2 - dev: false - - /@aws-sdk/middleware-bucket-endpoint@3.470.0: - resolution: {integrity: sha512-vLXXNWtsRmEIwzJ9HUQfIuTNAsEzvCv0Icsnkvt2BiBZXnmHdp2vIC3e3+kfy1D7dVQloXqMmnfcLu/BUMu2Jw==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.468.0 - '@aws-sdk/util-arn-parser': 3.465.0 - '@smithy/node-config-provider': 2.1.8 - '@smithy/protocol-http': 3.0.11 - '@smithy/types': 2.7.0 - '@smithy/util-config-provider': 2.0.0 - tslib: 2.6.2 - dev: false - - /@aws-sdk/middleware-expect-continue@3.468.0: - resolution: {integrity: sha512-/wmLjmfgeulxhhmnxX3X3N933TvGsYckVIFjAtDSpLjqkbwzEcNiLq7AdmNJ4BfxG0MCMgcht561DCCD19x8Bg==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.468.0 - '@smithy/protocol-http': 3.0.11 - '@smithy/types': 2.7.0 - tslib: 2.6.2 - dev: false - - /@aws-sdk/middleware-flexible-checksums@3.468.0: - resolution: {integrity: sha512-LQwL/N5MCj3Y5keLLewHTqeAXUIMsHFZyxDXRm/uxrOon9ufLKDvGvzAmfwn1/CuSUo66ZfT8VPSA4BsC90RtA==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-crypto/crc32': 3.0.0 - '@aws-crypto/crc32c': 3.0.0 - '@aws-sdk/types': 3.468.0 - '@smithy/is-array-buffer': 2.0.0 - '@smithy/protocol-http': 3.0.11 - '@smithy/types': 2.7.0 - '@smithy/util-utf8': 2.0.2 - tslib: 2.6.2 - dev: false - - /@aws-sdk/middleware-host-header@3.468.0: - resolution: {integrity: sha512-gwQ+/QhX+lhof304r6zbZ/V5l5cjhGRxLL3CjH1uJPMcOAbw9wUlMdl+ibr8UwBZ5elfKFGiB1cdW/0uMchw0w==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.468.0 - '@smithy/protocol-http': 3.0.11 - '@smithy/types': 2.7.0 - tslib: 2.6.2 - dev: false - - /@aws-sdk/middleware-location-constraint@3.468.0: - resolution: {integrity: sha512-0gBX/lDynQr4YIhM9h1dVnkVWqrg+34iOCVIUq8jHxzUzgZWglGkG9lHGGg0r1xkLTmegeoo1OKH8wrQ6n33Cg==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.468.0 - '@smithy/types': 2.7.0 - tslib: 2.6.2 - dev: false - - /@aws-sdk/middleware-logger@3.468.0: - resolution: {integrity: sha512-X5XHKV7DHRXI3f29SAhJPe/OxWRFgDWDMMCALfzhmJfCi6Jfh0M14cJKoC+nl+dk9lB+36+jKjhjETZaL2bPlA==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.468.0 - '@smithy/types': 2.7.0 - tslib: 2.6.2 - dev: false - - /@aws-sdk/middleware-recursion-detection@3.468.0: - resolution: {integrity: sha512-vch9IQib2Ng9ucSyRW2eKNQXHUPb5jUPCLA5otTW/8nGjcOU37LxQG4WrxO7uaJ9Oe8hjHO+hViE3P0KISUhtA==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.468.0 - '@smithy/protocol-http': 3.0.11 - '@smithy/types': 2.7.0 - tslib: 2.6.2 - dev: false - - /@aws-sdk/middleware-sdk-s3@3.474.0: - resolution: {integrity: sha512-62aAo/8u5daIabeJ+gseYeHeShe9eYH6mH+kfWmLsHybXCCv1EaD/ZkdXWNhL0HZ3bUI1z1SF1p8jjTAWALnwA==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.468.0 - '@aws-sdk/util-arn-parser': 3.465.0 - '@smithy/node-config-provider': 2.1.8 - '@smithy/protocol-http': 3.0.11 - '@smithy/signature-v4': 2.0.18 - '@smithy/smithy-client': 2.1.18 - '@smithy/types': 2.7.0 - '@smithy/util-config-provider': 2.0.0 - tslib: 2.6.2 - dev: false - - /@aws-sdk/middleware-signing@3.468.0: - resolution: {integrity: sha512-s+7fSB1gdnnTj5O0aCCarX3z5Vppop8kazbNSZADdkfHIDWCN80IH4ZNjY3OWqaAz0HmR4LNNrovdR304ojb4Q==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.468.0 - '@smithy/property-provider': 2.0.16 - '@smithy/protocol-http': 3.0.11 - '@smithy/signature-v4': 2.0.18 - '@smithy/types': 2.7.0 - '@smithy/util-middleware': 2.0.8 - tslib: 2.6.2 - dev: false - - /@aws-sdk/middleware-ssec@3.468.0: - resolution: {integrity: sha512-y1qLW24wRkOGBTK5d6eJXf6d8HYo4rzT4a1mNDN1rd18NSffwQ6Yke5qeUiIaxa0y/l+FvvNYErbhYtij2rJoQ==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.468.0 - '@smithy/types': 2.7.0 - tslib: 2.6.2 - dev: false - - /@aws-sdk/middleware-user-agent@3.478.0: - resolution: {integrity: sha512-Rec+nAPIzzwxgHPW+xqY6tooJGFOytpYg/xSRv8/IXl3xKGhmpMGs6gDWzmMBv/qy5nKTvLph/csNWJ98GWXCw==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.468.0 - '@aws-sdk/util-endpoints': 3.478.0 - '@smithy/protocol-http': 3.0.11 - '@smithy/types': 2.7.0 - tslib: 2.6.2 - dev: false - - /@aws-sdk/region-config-resolver@3.470.0: - resolution: {integrity: sha512-C1o1J06iIw8cyAAOvHqT4Bbqf+PgQ/RDlSyjt2gFfP2OovDpc2o2S90dE8f8iZdSGpg70N5MikT1DBhW9NbhtQ==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/node-config-provider': 2.1.8 - '@smithy/types': 2.7.0 - '@smithy/util-config-provider': 2.0.0 - '@smithy/util-middleware': 2.0.8 - tslib: 2.6.2 - dev: false - - /@aws-sdk/signature-v4-multi-region@3.474.0: - resolution: {integrity: sha512-93OWRQgTJZASXLrlUNX7mmXknNkYxFYldRLARmYQccONmnIqgYQW0lQj8BFwqkHJTzSMik3/UsU0SHKwZ9ynYA==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/middleware-sdk-s3': 3.474.0 - '@aws-sdk/types': 3.468.0 - '@smithy/protocol-http': 3.0.11 - '@smithy/signature-v4': 2.0.18 - '@smithy/types': 2.7.0 - tslib: 2.6.2 - dev: false - - /@aws-sdk/token-providers@3.478.0: - resolution: {integrity: sha512-7b5tj1y/wGHZIZ+ckjOUKgKrMuCJMF/G1UKZKIqqdekeEsjcThbvoxAMeY0FEowu2ODVk/ggOmpBFxcu0iYd6A==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-crypto/sha256-browser': 3.0.0 - '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/middleware-host-header': 3.468.0 - '@aws-sdk/middleware-logger': 3.468.0 - '@aws-sdk/middleware-recursion-detection': 3.468.0 - '@aws-sdk/middleware-user-agent': 3.478.0 - '@aws-sdk/region-config-resolver': 3.470.0 - '@aws-sdk/types': 3.468.0 - '@aws-sdk/util-endpoints': 3.478.0 - '@aws-sdk/util-user-agent-browser': 3.468.0 - '@aws-sdk/util-user-agent-node': 3.470.0 - '@smithy/config-resolver': 2.0.21 - '@smithy/fetch-http-handler': 2.3.1 - '@smithy/hash-node': 2.0.17 - '@smithy/invalid-dependency': 2.0.15 - '@smithy/middleware-content-length': 2.0.17 - '@smithy/middleware-endpoint': 2.2.3 - '@smithy/middleware-retry': 2.0.24 - '@smithy/middleware-serde': 2.0.15 - '@smithy/middleware-stack': 2.0.9 - '@smithy/node-config-provider': 2.1.8 - '@smithy/node-http-handler': 2.2.1 - '@smithy/property-provider': 2.0.16 - '@smithy/protocol-http': 3.0.11 - '@smithy/shared-ini-file-loader': 2.2.7 - '@smithy/smithy-client': 2.1.18 - '@smithy/types': 2.7.0 - '@smithy/url-parser': 2.0.15 - '@smithy/util-base64': 2.0.1 - '@smithy/util-body-length-browser': 2.0.1 - '@smithy/util-body-length-node': 2.1.0 - '@smithy/util-defaults-mode-browser': 2.0.22 - '@smithy/util-defaults-mode-node': 2.0.29 - '@smithy/util-endpoints': 1.0.7 - '@smithy/util-retry': 2.0.8 - '@smithy/util-utf8': 2.0.2 - tslib: 2.6.2 - transitivePeerDependencies: - - aws-crt - dev: false - - /@aws-sdk/types@3.468.0: - resolution: {integrity: sha512-rx/9uHI4inRbp2tw3Y4Ih4PNZkVj32h7WneSg3MVgVjAoVD5Zti9KhS5hkvsBxfgmQmg0AQbE+b1sy5WGAgntA==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/types': 2.7.0 - tslib: 2.6.2 - dev: false - - /@aws-sdk/util-arn-parser@3.465.0: - resolution: {integrity: sha512-zOJ82vzDJFqBX9yZBlNeHHrul/kpx/DCoxzW5UBbZeb26kfV53QhMSoEmY8/lEbBqlqargJ/sgRC845GFhHNQw==} - engines: {node: '>=14.0.0'} - dependencies: - tslib: 2.6.2 - dev: false - - /@aws-sdk/util-endpoints@3.478.0: - resolution: {integrity: sha512-u9Mcg3euGJGs5clPt9mBuhBjHiEKiD0PnfvArhfq9i+dcY5mbCq/i1Dezp3iv1fZH9xxQt7hPXDfSpt1yUSM6g==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.468.0 - '@smithy/util-endpoints': 1.0.7 - tslib: 2.6.2 - dev: false - - /@aws-sdk/util-locate-window@3.465.0: - resolution: {integrity: sha512-f+QNcWGswredzC1ExNAB/QzODlxwaTdXkNT5cvke2RLX8SFU5pYk6h4uCtWC0vWPELzOfMfloBrJefBzlarhsw==} - engines: {node: '>=14.0.0'} - dependencies: - tslib: 2.6.2 - dev: false - - /@aws-sdk/util-user-agent-browser@3.468.0: - resolution: {integrity: sha512-OJyhWWsDEizR3L+dCgMXSUmaCywkiZ7HSbnQytbeKGwokIhD69HTiJcibF/sgcM5gk4k3Mq3puUhGnEZ46GIig==} - dependencies: - '@aws-sdk/types': 3.468.0 - '@smithy/types': 2.7.0 - bowser: 2.11.0 - tslib: 2.6.2 - dev: false - - /@aws-sdk/util-user-agent-node@3.470.0: - resolution: {integrity: sha512-QxsZ9iVHcBB/XRdYvwfM5AMvNp58HfqkIrH88mY0cmxuvtlIGDfWjczdDrZMJk9y0vIq+cuoCHsGXHu7PyiEAQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - aws-crt: '>=1.0.0' - peerDependenciesMeta: - aws-crt: - optional: true - dependencies: - '@aws-sdk/types': 3.468.0 - '@smithy/node-config-provider': 2.1.8 - '@smithy/types': 2.7.0 - tslib: 2.6.2 - dev: false - - /@aws-sdk/util-utf8-browser@3.259.0: - resolution: {integrity: sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw==} - dependencies: - tslib: 2.6.2 - dev: false - - /@aws-sdk/xml-builder@3.472.0: - resolution: {integrity: sha512-PwjVxz1hr9up8QkddabuScPZ/d5aDHgvHYgK4acHYzltXL4wngfvimi5ZqXTzVWF2QANxHmWnHUr45QJX71oJQ==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/types': 2.7.0 - tslib: 2.6.2 - dev: false - - /@babel/code-frame@7.22.13: - resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/highlight': 7.22.20 - chalk: 2.4.2 - dev: false - - /@babel/helper-string-parser@7.22.5: - resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} - engines: {node: '>=6.9.0'} - dev: false - - /@babel/helper-validator-identifier@7.22.20: - resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} - engines: {node: '>=6.9.0'} - dev: false - - /@babel/highlight@7.22.20: - resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': 7.22.20 - chalk: 2.4.2 - js-tokens: 4.0.0 - dev: false - - /@babel/parser@7.22.16: - resolution: {integrity: sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA==} - engines: {node: '>=6.0.0'} - hasBin: true - dependencies: - '@babel/types': 7.22.19 - dev: false - - /@babel/types@7.22.19: - resolution: {integrity: sha512-P7LAw/LbojPzkgp5oznjE6tQEIWbp4PkkfrZDINTro9zgBRtI324/EYsiSI7lhPbpIQ+DCeR2NNmMWANGGfZsg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-string-parser': 7.22.5 - '@babel/helper-validator-identifier': 7.22.20 - to-fast-properties: 2.0.0 - dev: false - - /@clerk/backend@0.36.0(react@18.2.0): - resolution: {integrity: sha512-iJTASBSitQqdgIUANzifwsRURmS+zaXJ2vtD/j3r/Ir/nmJWm1PwY9eGKWyE6rlk8iAnh+OoUmBJB1tz1SpXkw==} - engines: {node: '>=14'} - dependencies: - '@clerk/shared': 1.1.1(react@18.2.0) - '@clerk/types': 3.60.0 - '@peculiar/webcrypto': 1.4.1 - '@types/node': 16.18.6 - cookie: 0.5.0 - deepmerge: 4.2.2 - node-fetch-native: 1.0.1 - snakecase-keys: 5.4.4 - tslib: 2.4.1 - transitivePeerDependencies: - - react - dev: false - - /@clerk/fastify@0.6.27(fastify-plugin@4.5.1)(fastify@4.25.1)(react@18.2.0): - resolution: {integrity: sha512-JqPnD+q8hjSC+KX+fOHgfPQRAYmmCEFApL8ouZhY6UCuvZlZo0zIL05JDtmG8YWQV4H94gNLg99X+9l3QvizAg==} - engines: {node: '>=14'} - peerDependencies: - fastify: '>=4' - fastify-plugin: ^4.5.0 - dependencies: - '@clerk/backend': 0.36.0(react@18.2.0) - '@clerk/shared': 1.1.1(react@18.2.0) - '@clerk/types': 3.60.0 - cookies: 0.8.0 - fastify: 4.25.1 - fastify-plugin: 4.5.1 - transitivePeerDependencies: - - react - dev: false - - /@clerk/shared@1.1.1(react@18.2.0): - resolution: {integrity: sha512-pEzhalD1Yo/gGsOE2BQugVQTjlIl2aYmoeRld3BDXHRDV1jnk+yUE2CFOw6bojgFWN9sbeN/ph/47UWvvoCSOg==} - peerDependencies: - react: '>=16' - peerDependenciesMeta: - react: - optional: true - dependencies: - glob-to-regexp: 0.4.1 - js-cookie: 3.0.1 - react: 18.2.0 - swr: 2.2.0(react@18.2.0) - dev: false - - /@clerk/types@3.60.0: - resolution: {integrity: sha512-f1A16wFh5MtikxEo7o6vAVX7FxpqC1YmzA6c4ugwq5MH8J2mvIM/LwNVIHgNpZkn/s/G+BUhBcJJmUXqajDK2Q==} - engines: {node: '>=14'} - dependencies: - csstype: 3.1.1 - dev: false - - /@cspotcode/source-map-support@0.8.1: - resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} - engines: {node: '>=12'} - dependencies: - '@jridgewell/trace-mapping': 0.3.9 - dev: true - - /@effect/schema@0.54.0(effect@2.0.0-next.61)(fast-check@3.15.0): - resolution: {integrity: sha512-RdiAOIgmjOVihyGUGd0TS3iM92bvQ55A3dPh6OeOZPDr+MEYWhSDqaxt+TK6tUdaQ+sBRmgc6cFlW1OAt+BBwg==} - peerDependencies: - effect: 2.0.0-next.61 - fast-check: ^3.13.2 - dependencies: - effect: 2.0.0-next.61 - fast-check: 3.15.0 - dev: false - - /@esbuild/aix-ppc64@0.19.10: - resolution: {integrity: sha512-Q+mk96KJ+FZ30h9fsJl+67IjNJm3x2eX+GBWGmocAKgzp27cowCOOqSdscX80s0SpdFXZnIv/+1xD1EctFx96Q==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-arm64@0.19.10: - resolution: {integrity: sha512-1X4CClKhDgC3by7k8aOWZeBXQX8dHT5QAMCAQDArCLaYfkppoARvh0fit3X2Qs+MXDngKcHv6XXyQCpY0hkK1Q==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-arm@0.19.10: - resolution: {integrity: sha512-7W0bK7qfkw1fc2viBfrtAEkDKHatYfHzr/jKAHNr9BvkYDXPcC6bodtm8AyLJNNuqClLNaeTLuwURt4PRT9d7w==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-x64@0.19.10: - resolution: {integrity: sha512-O/nO/g+/7NlitUxETkUv/IvADKuZXyH4BHf/g/7laqKC4i/7whLpB0gvpPc2zpF0q9Q6FXS3TS75QHac9MvVWw==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/darwin-arm64@0.19.10: - resolution: {integrity: sha512-YSRRs2zOpwypck+6GL3wGXx2gNP7DXzetmo5pHXLrY/VIMsS59yKfjPizQ4lLt5vEI80M41gjm2BxrGZ5U+VMA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@esbuild/darwin-x64@0.19.10: - resolution: {integrity: sha512-alfGtT+IEICKtNE54hbvPg13xGBe4GkVxyGWtzr+yHO7HIiRJppPDhOKq3zstTcVf8msXb/t4eavW3jCDpMSmA==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@esbuild/freebsd-arm64@0.19.10: - resolution: {integrity: sha512-dMtk1wc7FSH8CCkE854GyGuNKCewlh+7heYP/sclpOG6Cectzk14qdUIY5CrKDbkA/OczXq9WesqnPl09mj5dg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/freebsd-x64@0.19.10: - resolution: {integrity: sha512-G5UPPspryHu1T3uX8WiOEUa6q6OlQh6gNl4CO4Iw5PS+Kg5bVggVFehzXBJY6X6RSOMS8iXDv2330VzaObm4Ag==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-arm64@0.19.10: - resolution: {integrity: sha512-QxaouHWZ+2KWEj7cGJmvTIHVALfhpGxo3WLmlYfJ+dA5fJB6lDEIg+oe/0//FuyVHuS3l79/wyBxbHr0NgtxJQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-arm@0.19.10: - resolution: {integrity: sha512-j6gUW5aAaPgD416Hk9FHxn27On28H4eVI9rJ4az7oCGTFW48+LcgNDBN+9f8rKZz7EEowo889CPKyeaD0iw9Kg==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-ia32@0.19.10: - resolution: {integrity: sha512-4ub1YwXxYjj9h1UIZs2hYbnTZBtenPw5NfXCRgEkGb0b6OJ2gpkMvDqRDYIDRjRdWSe/TBiZltm3Y3Q8SN1xNg==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-loong64@0.19.10: - resolution: {integrity: sha512-lo3I9k+mbEKoxtoIbM0yC/MZ1i2wM0cIeOejlVdZ3D86LAcFXFRdeuZmh91QJvUTW51bOK5W2BznGNIl4+mDaA==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-mips64el@0.19.10: - resolution: {integrity: sha512-J4gH3zhHNbdZN0Bcr1QUGVNkHTdpijgx5VMxeetSk6ntdt+vR1DqGmHxQYHRmNb77tP6GVvD+K0NyO4xjd7y4A==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-ppc64@0.19.10: - resolution: {integrity: sha512-tgT/7u+QhV6ge8wFMzaklOY7KqiyitgT1AUHMApau32ZlvTB/+efeCtMk4eXS+uEymYK249JsoiklZN64xt6oQ==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-riscv64@0.19.10: - resolution: {integrity: sha512-0f/spw0PfBMZBNqtKe5FLzBDGo0SKZKvMl5PHYQr3+eiSscfJ96XEknCe+JoOayybWUFQbcJTrk946i3j9uYZA==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-s390x@0.19.10: - resolution: {integrity: sha512-pZFe0OeskMHzHa9U38g+z8Yx5FNCLFtUnJtQMpwhS+r4S566aK2ci3t4NCP4tjt6d5j5uo4h7tExZMjeKoehAA==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-x64@0.19.10: - resolution: {integrity: sha512-SpYNEqg/6pZYoc+1zLCjVOYvxfZVZj6w0KROZ3Fje/QrM3nfvT2llI+wmKSrWuX6wmZeTapbarvuNNK/qepSgA==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/netbsd-x64@0.19.10: - resolution: {integrity: sha512-ACbZ0vXy9zksNArWlk2c38NdKg25+L9pr/mVaj9SUq6lHZu/35nx2xnQVRGLrC1KKQqJKRIB0q8GspiHI3J80Q==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/openbsd-x64@0.19.10: - resolution: {integrity: sha512-PxcgvjdSjtgPMiPQrM3pwSaG4kGphP+bLSb+cihuP0LYdZv1epbAIecHVl5sD3npkfYBZ0ZnOjR878I7MdJDFg==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/sunos-x64@0.19.10: - resolution: {integrity: sha512-ZkIOtrRL8SEJjr+VHjmW0znkPs+oJXhlJbNwfI37rvgeMtk3sxOQevXPXjmAPZPigVTncvFqLMd+uV0IBSEzqA==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-arm64@0.19.10: - resolution: {integrity: sha512-+Sa4oTDbpBfGpl3Hn3XiUe4f8TU2JF7aX8cOfqFYMMjXp6ma6NJDztl5FDG8Ezx0OjwGikIHw+iA54YLDNNVfw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-ia32@0.19.10: - resolution: {integrity: sha512-EOGVLK1oWMBXgfttJdPHDTiivYSjX6jDNaATeNOaCOFEVcfMjtbx7WVQwPSE1eIfCp/CaSF2nSrDtzc4I9f8TQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-x64@0.19.10: - resolution: {integrity: sha512-whqLG6Sc70AbU73fFYvuYzaE4MNMBIlR1Y/IrUeOXFrWHxBEjjbZaQ3IXIQS8wJdAzue2GwYZCjOrgrU1oUHoA==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@eslint-community/eslint-utils@4.4.0(eslint@8.40.0): - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - dependencies: - eslint: 8.40.0 - eslint-visitor-keys: 3.4.1 - dev: true - - /@eslint-community/regexpp@4.5.1: - resolution: {integrity: sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - dev: true - - /@eslint/eslintrc@2.0.3: - resolution: {integrity: sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - ajv: 6.12.6 - debug: 4.3.4(supports-color@5.5.0) - espree: 9.5.2 - globals: 13.20.0 - ignore: 5.2.4 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - dev: true - - /@eslint/js@8.40.0: - resolution: {integrity: sha512-ElyB54bJIhXQYVKjDSvCkPO1iU1tSAeVQJbllWJq1XQSmmA4dgFk8CbiBGpiOPxleE48vDogxCtmMYku4HSVLA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true - - /@fastify/accept-negotiator@1.1.0: - resolution: {integrity: sha512-OIHZrb2ImZ7XG85HXOONLcJWGosv7sIvM2ifAPQVhg9Lv7qdmMBNVaai4QTdyuaqbKM5eO6sLSQOYI7wEQeCJQ==} - engines: {node: '>=14'} - dev: false - - /@fastify/ajv-compiler@3.5.0: - resolution: {integrity: sha512-ebbEtlI7dxXF5ziNdr05mOY8NnDiPB1XvAlLHctRt/Rc+C3LCOVW5imUVX+mhvUhnNzmPBHewUkOFgGlCxgdAA==} - dependencies: - ajv: 8.12.0 - ajv-formats: 2.1.1(ajv@8.12.0) - fast-uri: 2.2.0 - dev: false - - /@fastify/busboy@1.2.1: - resolution: {integrity: sha512-7PQA7EH43S0CxcOa9OeAnaeA0oQ+e/DHNPZwSQM9CQHW76jle5+OvLdibRp/Aafs9KXbLhxyjOTkRjWUbQEd3Q==} - engines: {node: '>=14'} - dependencies: - text-decoding: 1.0.0 - dev: false - - /@fastify/busboy@2.1.0: - resolution: {integrity: sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==} - engines: {node: '>=14'} - dev: false - - /@fastify/cors@8.5.0: - resolution: {integrity: sha512-/oZ1QSb02XjP0IK1U0IXktEsw/dUBTxJOW7IpIeO8c/tNalw/KjoNSJv1Sf6eqoBPO+TDGkifq6ynFK3v68HFQ==} - dependencies: - fastify-plugin: 4.5.1 - mnemonist: 0.39.6 - dev: false - - /@fastify/deepmerge@1.3.0: - resolution: {integrity: sha512-J8TOSBq3SoZbDhM9+R/u77hP93gz/rajSA+K2kGyijPpORPWUXHUpTaleoj+92As0S9uPRP7Oi8IqMf0u+ro6A==} - dev: false - - /@fastify/error@3.4.1: - resolution: {integrity: sha512-wWSvph+29GR783IhmvdwWnN4bUxTD01Vm5Xad4i7i1VuAOItLvbPAb69sb0IQ2N57yprvhNIwAP5B6xfKTmjmQ==} - dev: false - - /@fastify/fast-json-stringify-compiler@4.3.0: - resolution: {integrity: sha512-aZAXGYo6m22Fk1zZzEUKBvut/CIIQe/BapEORnxiD5Qr0kPHqqI69NtEMCme74h+at72sPhbkb4ZrLd1W3KRLA==} - dependencies: - fast-json-stringify: 5.9.1 - dev: false - - /@fastify/multipart@8.0.0: - resolution: {integrity: sha512-xaH1pGIqYnIJjYs5qG6ryhPSFnWuJIfSXYqEUtzmcyREkMk0SwONd2y+SZ9JXfDmETAC/Ogtc/SRbz+AjZhCkw==} - dependencies: - '@fastify/busboy': 1.2.1 - '@fastify/deepmerge': 1.3.0 - '@fastify/error': 3.4.1 - '@fastify/swagger': 8.12.1 - '@fastify/swagger-ui': 1.10.2 - fastify-plugin: 4.5.1 - secure-json-parse: 2.7.0 - stream-wormhole: 1.1.0 - transitivePeerDependencies: - - supports-color - dev: false - - /@fastify/rate-limit@9.0.1: - resolution: {integrity: sha512-BNKWtMHyJV+f3TUAQxWacq8dVfJLeTzBOthKpTpkYEBdBRY0cYn2UTPGpHglwZ84o0V+U7pS3wfO4mzF8eXFzg==} - dependencies: - '@lukeed/ms': 2.0.2 - fastify-plugin: 4.5.1 - toad-cache: 3.4.1 - dev: false - - /@fastify/send@2.1.0: - resolution: {integrity: sha512-yNYiY6sDkexoJR0D8IDy3aRP3+L4wdqCpvx5WP+VtEU58sn7USmKynBzDQex5X42Zzvw2gNzzYgP90UfWShLFA==} - dependencies: - '@lukeed/ms': 2.0.2 - escape-html: 1.0.3 - fast-decode-uri-component: 1.0.1 - http-errors: 2.0.0 - mime: 3.0.0 - dev: false - - /@fastify/static@6.12.0: - resolution: {integrity: sha512-KK1B84E6QD/FcQWxDI2aiUCwHxMJBI1KeCUzm1BwYpPY1b742+jeKruGHP2uOluuM6OkBPI8CIANrXcCRtC2oQ==} - dependencies: - '@fastify/accept-negotiator': 1.1.0 - '@fastify/send': 2.1.0 - content-disposition: 0.5.4 - fastify-plugin: 4.5.1 - glob: 8.1.0 - p-limit: 3.1.0 - dev: false - - /@fastify/swagger-ui@1.10.2: - resolution: {integrity: sha512-f2mRqtblm6eRAFQ3e8zSngxVNEtiYY7rISKQVjPA++ZsWc5WYlPVTb6Bx0G/zy0BIoucNqDr/Q2Vb/kTYkOq1A==} - dependencies: - '@fastify/static': 6.12.0 - fastify-plugin: 4.5.1 - openapi-types: 12.1.3 - rfdc: 1.3.0 - yaml: 2.3.1 - dev: false - - /@fastify/swagger@8.12.1: - resolution: {integrity: sha512-0GATwS+a1QHHhTYtyZfoIpRD5lL1XlDSiV2DqsTVMQxKpL18kx5o6oMz0l0rtFr4883XIGiRuvTv2rxFRIxp4Q==} - dependencies: - fastify-plugin: 4.5.1 - json-schema-resolver: 2.0.0 - openapi-types: 12.1.3 - rfdc: 1.3.0 - yaml: 2.3.1 - transitivePeerDependencies: - - supports-color - dev: false - - /@gar/promisify@1.1.3: - resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} - requiresBuild: true - optional: true - - /@humanwhocodes/config-array@0.11.8: - resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==} - engines: {node: '>=10.10.0'} - dependencies: - '@humanwhocodes/object-schema': 1.2.1 - debug: 4.3.4(supports-color@5.5.0) - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - dev: true - - /@humanwhocodes/module-importer@1.0.1: - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} - dev: true - - /@humanwhocodes/object-schema@1.2.1: - resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} - dev: true - - /@jest/schemas@29.6.3: - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@sinclair/typebox': 0.27.8 - dev: true - - /@jridgewell/gen-mapping@0.3.3: - resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} - engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/set-array': 1.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.19 - dev: false - - /@jridgewell/resolve-uri@3.1.1: - resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} - engines: {node: '>=6.0.0'} - - /@jridgewell/set-array@1.1.2: - resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} - engines: {node: '>=6.0.0'} - dev: false - - /@jridgewell/sourcemap-codec@1.4.15: - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - - /@jridgewell/trace-mapping@0.3.19: - resolution: {integrity: sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==} - dependencies: - '@jridgewell/resolve-uri': 3.1.1 - '@jridgewell/sourcemap-codec': 1.4.15 - dev: false - - /@jridgewell/trace-mapping@0.3.9: - resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - dependencies: - '@jridgewell/resolve-uri': 3.1.1 - '@jridgewell/sourcemap-codec': 1.4.15 - dev: true - - /@langchain/community@0.0.7(chromadb@1.7.2)(pg@8.11.3)(replicate@0.25.2): - resolution: {integrity: sha512-4O41IF8Cirqbb/SC7xNecxUIjuHX7HZkOlEgj98Zex+UuBF4aggPawUAJnP7+ak30PfOxH7NymnIWcs4MqRfxg==} - engines: {node: '>=18'} - peerDependencies: - '@aws-crypto/sha256-js': ^5.0.0 - '@aws-sdk/client-bedrock-runtime': ^3.422.0 - '@aws-sdk/client-dynamodb': ^3.310.0 - '@aws-sdk/client-kendra': ^3.352.0 - '@aws-sdk/client-lambda': ^3.310.0 - '@aws-sdk/client-sagemaker-runtime': ^3.310.0 - '@aws-sdk/client-sfn': ^3.310.0 - '@aws-sdk/credential-provider-node': ^3.388.0 - '@clickhouse/client': ^0.2.5 - '@cloudflare/ai': ^1.0.12 - '@elastic/elasticsearch': ^8.4.0 - '@getmetal/metal-sdk': '*' - '@getzep/zep-js': ^0.9.0 - '@gomomento/sdk': ^1.51.1 - '@gomomento/sdk-core': ^1.51.1 - '@google-ai/generativelanguage': ^0.2.1 - '@gradientai/nodejs-sdk': ^1.2.0 - '@huggingface/inference': ^2.6.4 - '@mozilla/readability': '*' - '@opensearch-project/opensearch': '*' - '@pinecone-database/pinecone': ^1.1.0 - '@planetscale/database': ^1.8.0 - '@qdrant/js-client-rest': ^1.2.0 - '@raycast/api': ^1.55.2 - '@rockset/client': ^0.9.1 - '@smithy/eventstream-codec': ^2.0.5 - '@smithy/protocol-http': ^3.0.6 - '@smithy/signature-v4': ^2.0.10 - '@smithy/util-utf8': ^2.0.0 - '@supabase/postgrest-js': ^1.1.1 - '@supabase/supabase-js': ^2.10.0 - '@tensorflow-models/universal-sentence-encoder': '*' - '@tensorflow/tfjs-converter': '*' - '@tensorflow/tfjs-core': '*' - '@upstash/redis': ^1.20.6 - '@vercel/kv': ^0.2.3 - '@vercel/postgres': ^0.5.0 - '@writerai/writer-sdk': ^0.40.2 - '@xata.io/client': ^0.28.0 - '@xenova/transformers': ^2.5.4 - '@zilliz/milvus2-sdk-node': '>=2.2.7' - cassandra-driver: ^4.7.2 - chromadb: '*' - closevector-common: 0.1.0-alpha.1 - closevector-node: 0.1.0-alpha.10 - closevector-web: 0.1.0-alpha.16 - cohere-ai: '>=6.0.0' - convex: ^1.3.1 - discord.js: ^14.14.1 - faiss-node: ^0.5.1 - firebase-admin: ^11.9.0 - google-auth-library: ^8.9.0 - googleapis: ^126.0.1 - hnswlib-node: ^1.4.2 - html-to-text: ^9.0.5 - ioredis: ^5.3.2 - jsdom: '*' - llmonitor: ^0.5.9 - lodash: ^4.17.21 - mongodb: ^5.2.0 - mysql2: ^3.3.3 - neo4j-driver: '*' - node-llama-cpp: '*' - pg: ^8.11.0 - pg-copy-streams: ^6.0.5 - pickleparser: ^0.2.1 - portkey-ai: ^0.1.11 - redis: ^4.6.4 - replicate: ^0.18.0 - typeorm: ^0.3.12 - typesense: ^1.5.3 - usearch: ^1.1.1 - vectordb: ^0.1.4 - voy-search: 0.6.2 - weaviate-ts-client: ^1.4.0 - web-auth-library: ^1.0.3 - ws: ^8.14.2 - peerDependenciesMeta: - '@aws-crypto/sha256-js': - optional: true - '@aws-sdk/client-bedrock-runtime': - optional: true - '@aws-sdk/client-dynamodb': - optional: true - '@aws-sdk/client-kendra': - optional: true - '@aws-sdk/client-lambda': - optional: true - '@aws-sdk/client-sagemaker-runtime': - optional: true - '@aws-sdk/client-sfn': - optional: true - '@aws-sdk/credential-provider-node': - optional: true - '@clickhouse/client': - optional: true - '@cloudflare/ai': - optional: true - '@elastic/elasticsearch': - optional: true - '@getmetal/metal-sdk': - optional: true - '@getzep/zep-js': - optional: true - '@gomomento/sdk': - optional: true - '@gomomento/sdk-core': - optional: true - '@google-ai/generativelanguage': - optional: true - '@gradientai/nodejs-sdk': - optional: true - '@huggingface/inference': - optional: true - '@mozilla/readability': - optional: true - '@opensearch-project/opensearch': - optional: true - '@pinecone-database/pinecone': - optional: true - '@planetscale/database': - optional: true - '@qdrant/js-client-rest': - optional: true - '@raycast/api': - optional: true - '@rockset/client': - optional: true - '@smithy/eventstream-codec': - optional: true - '@smithy/protocol-http': - optional: true - '@smithy/signature-v4': - optional: true - '@smithy/util-utf8': - optional: true - '@supabase/postgrest-js': - optional: true - '@supabase/supabase-js': - optional: true - '@tensorflow-models/universal-sentence-encoder': - optional: true - '@tensorflow/tfjs-converter': - optional: true - '@tensorflow/tfjs-core': - optional: true - '@upstash/redis': - optional: true - '@vercel/kv': - optional: true - '@vercel/postgres': - optional: true - '@writerai/writer-sdk': - optional: true - '@xata.io/client': - optional: true - '@xenova/transformers': - optional: true - '@zilliz/milvus2-sdk-node': - optional: true - cassandra-driver: - optional: true - chromadb: - optional: true - closevector-common: - optional: true - closevector-node: - optional: true - closevector-web: - optional: true - cohere-ai: - optional: true - convex: - optional: true - discord.js: - optional: true - faiss-node: - optional: true - firebase-admin: - optional: true - google-auth-library: - optional: true - googleapis: - optional: true - hnswlib-node: - optional: true - html-to-text: - optional: true - ioredis: - optional: true - jsdom: - optional: true - llmonitor: - optional: true - lodash: - optional: true - mongodb: - optional: true - mysql2: - optional: true - neo4j-driver: - optional: true - node-llama-cpp: - optional: true - pg: - optional: true - pg-copy-streams: - optional: true - pickleparser: - optional: true - portkey-ai: - optional: true - redis: - optional: true - replicate: - optional: true - typeorm: - optional: true - typesense: - optional: true - usearch: - optional: true - vectordb: - optional: true - voy-search: - optional: true - weaviate-ts-client: - optional: true - web-auth-library: - optional: true - ws: - optional: true - dependencies: - '@langchain/core': 0.1.2 - '@langchain/openai': 0.0.6 - chromadb: 1.7.2(openai@4.23.0) - flat: 5.0.2 - langsmith: 0.0.52 - pg: 8.11.3 - replicate: 0.25.2 - uuid: 9.0.0 - zod: 3.22.4 - transitivePeerDependencies: - - encoding - dev: false - - /@langchain/core@0.1.2: - resolution: {integrity: sha512-BX9vBovUi+FQLsUy+kh32kGtNU3Iv5GIBDB63xfCvAPefrt/WnqdsqwYnaXMB2MohBcZavIVMewHymsgiEYNcQ==} - engines: {node: '>=18'} - dependencies: - ansi-styles: 5.2.0 - camelcase: 6.3.0 - decamelize: 1.2.0 - js-tiktoken: 1.0.8 - langsmith: 0.0.52 - ml-distance: 4.0.1 - p-queue: 6.6.2 - p-retry: 4.6.2 - uuid: 9.0.0 - zod: 3.22.4 - dev: false - - /@langchain/openai@0.0.6: - resolution: {integrity: sha512-t4ZzBAPfBCHk56MyS/BlSzEHyXEJ6LLhw3QTjqt8+QKfl8U31pSKDOe3xuVveM2YqpaoVAqWY27DHUKNTZ0gNg==} - engines: {node: '>=18'} - dependencies: - '@langchain/core': 0.1.2 - js-tiktoken: 1.0.7 - openai: 4.23.0 - zod: 3.22.4 - zod-to-json-schema: 3.20.3(zod@3.22.4) - transitivePeerDependencies: - - encoding - dev: false - - /@lukeed/ms@2.0.2: - resolution: {integrity: sha512-9I2Zn6+NJLfaGoz9jN3lpwDgAYvfGeNYdbAIjJOqzs4Tpc+VU3Jqq4IofSUBKajiDS8k9fZIg18/z13mpk1bsA==} - engines: {node: '>=8'} - dev: false - - /@nodelib/fs.scandir@2.1.5: - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - dev: true - - /@nodelib/fs.stat@2.0.5: - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - dev: true - - /@nodelib/fs.walk@1.2.8: - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.15.0 - dev: true - - /@npmcli/fs@1.1.1: - resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==} - requiresBuild: true - dependencies: - '@gar/promisify': 1.1.3 - semver: 7.5.4 - optional: true - - /@npmcli/move-file@1.1.2: - resolution: {integrity: sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==} - engines: {node: '>=10'} - deprecated: This functionality has been moved to @npmcli/fs - requiresBuild: true - dependencies: - mkdirp: 1.0.4 - rimraf: 3.0.2 - optional: true - - /@peculiar/asn1-schema@2.3.6: - resolution: {integrity: sha512-izNRxPoaeJeg/AyH8hER6s+H7p4itk+03QCa4sbxI3lNdseQYCuxzgsuNK8bTXChtLTjpJz6NmXKA73qLa3rCA==} - dependencies: - asn1js: 3.0.5 - pvtsutils: 1.3.2 - tslib: 2.6.2 - dev: false - - /@peculiar/json-schema@1.1.12: - resolution: {integrity: sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==} - engines: {node: '>=8.0.0'} - dependencies: - tslib: 2.6.2 - dev: false - - /@peculiar/webcrypto@1.4.1: - resolution: {integrity: sha512-eK4C6WTNYxoI7JOabMoZICiyqRRtJB220bh0Mbj5RwRycleZf9BPyZoxsTvpP0FpmVS2aS13NKOuh5/tN3sIRw==} - engines: {node: '>=10.12.0'} - dependencies: - '@peculiar/asn1-schema': 2.3.6 - '@peculiar/json-schema': 1.1.12 - pvtsutils: 1.3.2 - tslib: 2.6.2 - webcrypto-core: 1.7.7 - dev: false - - /@rollup/rollup-android-arm-eabi@4.9.1: - resolution: {integrity: sha512-6vMdBZqtq1dVQ4CWdhFwhKZL6E4L1dV6jUjuBvsavvNJSppzi6dLBbuV+3+IyUREaj9ZFvQefnQm28v4OCXlig==} - cpu: [arm] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-android-arm64@4.9.1: - resolution: {integrity: sha512-Jto9Fl3YQ9OLsTDWtLFPtaIMSL2kwGyGoVCmPC8Gxvym9TCZm4Sie+cVeblPO66YZsYH8MhBKDMGZ2NDxuk/XQ==} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-darwin-arm64@4.9.1: - resolution: {integrity: sha512-LtYcLNM+bhsaKAIGwVkh5IOWhaZhjTfNOkGzGqdHvhiCUVuJDalvDxEdSnhFzAn+g23wgsycmZk1vbnaibZwwA==} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-darwin-x64@4.9.1: - resolution: {integrity: sha512-KyP/byeXu9V+etKO6Lw3E4tW4QdcnzDG/ake031mg42lob5tN+5qfr+lkcT/SGZaH2PdW4Z1NX9GHEkZ8xV7og==} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-arm-gnueabihf@4.9.1: - resolution: {integrity: sha512-Yqz/Doumf3QTKplwGNrCHe/B2p9xqDghBZSlAY0/hU6ikuDVQuOUIpDP/YcmoT+447tsZTmirmjgG3znvSCR0Q==} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-arm64-gnu@4.9.1: - resolution: {integrity: sha512-u3XkZVvxcvlAOlQJ3UsD1rFvLWqu4Ef/Ggl40WAVCuogf4S1nJPHh5RTgqYFpCOvuGJ7H5yGHabjFKEZGExk5Q==} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-arm64-musl@4.9.1: - resolution: {integrity: sha512-0XSYN/rfWShW+i+qjZ0phc6vZ7UWI8XWNz4E/l+6edFt+FxoEghrJHjX1EY/kcUGCnZzYYRCl31SNdfOi450Aw==} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-riscv64-gnu@4.9.1: - resolution: {integrity: sha512-LmYIO65oZVfFt9t6cpYkbC4d5lKHLYv5B4CSHRpnANq0VZUQXGcCPXHzbCXCz4RQnx7jvlYB1ISVNCE/omz5cw==} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-x64-gnu@4.9.1: - resolution: {integrity: sha512-kr8rEPQ6ns/Lmr/hiw8sEVj9aa07gh1/tQF2Y5HrNCCEPiCBGnBUt9tVusrcBBiJfIt1yNaXN6r1CCmpbFEDpg==} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-x64-musl@4.9.1: - resolution: {integrity: sha512-t4QSR7gN+OEZLG0MiCgPqMWZGwmeHhsM4AkegJ0Kiy6TnJ9vZ8dEIwHw1LcZKhbHxTY32hp9eVCMdR3/I8MGRw==} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-win32-arm64-msvc@4.9.1: - resolution: {integrity: sha512-7XI4ZCBN34cb+BH557FJPmh0kmNz2c25SCQeT9OiFWEgf8+dL6ZwJ8f9RnUIit+j01u07Yvrsuu1rZGxJCc51g==} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-win32-ia32-msvc@4.9.1: - resolution: {integrity: sha512-yE5c2j1lSWOH5jp+Q0qNL3Mdhr8WuqCNVjc6BxbVfS5cAS6zRmdiw7ktb8GNpDCEUJphILY6KACoFoRtKoqNQg==} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-win32-x64-msvc@4.9.1: - resolution: {integrity: sha512-PyJsSsafjmIhVgaI1Zdj7m8BB8mMckFah/xbpplObyHfiXzKcI5UOUXRyOdHW7nz4DpMCuzLnF7v5IWHenCwYA==} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@sinclair/typebox@0.27.8: - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - dev: true - - /@smithy/abort-controller@2.0.15: - resolution: {integrity: sha512-JkS36PIS3/UCbq/MaozzV7jECeL+BTt4R75bwY8i+4RASys4xOyUS1HsRyUNSqUXFP4QyCz5aNnh3ltuaxv+pw==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/types': 2.7.0 - tslib: 2.6.2 - dev: false - - /@smithy/chunked-blob-reader-native@2.0.1: - resolution: {integrity: sha512-N2oCZRglhWKm7iMBu7S6wDzXirjAofi7tAd26cxmgibRYOBS4D3hGfmkwCpHdASZzwZDD8rluh0Rcqw1JeZDRw==} - dependencies: - '@smithy/util-base64': 2.0.1 - tslib: 2.6.2 - dev: false - - /@smithy/chunked-blob-reader@2.0.0: - resolution: {integrity: sha512-k+J4GHJsMSAIQPChGBrjEmGS+WbPonCXesoqP9fynIqjn7rdOThdH8FAeCmokP9mxTYKQAKoHCLPzNlm6gh7Wg==} - dependencies: - tslib: 2.6.2 - dev: false - - /@smithy/config-resolver@2.0.21: - resolution: {integrity: sha512-rlLIGT+BeqjnA6C2FWumPRJS1UW07iU5ZxDHtFuyam4W65gIaOFMjkB90ofKCIh+0mLVQrQFrl/VLtQT/6FWTA==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/node-config-provider': 2.1.8 - '@smithy/types': 2.7.0 - '@smithy/util-config-provider': 2.0.0 - '@smithy/util-middleware': 2.0.8 - tslib: 2.6.2 - dev: false - - /@smithy/core@1.2.0: - resolution: {integrity: sha512-l8R89X7+hlt2FEFg+OrNq29LP3h9DfGPmO6ObwT9IXWHD6V7ycpj5u2rVQyIis26ovrgOYakl6nfgmPMm8m1IQ==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/middleware-endpoint': 2.2.3 - '@smithy/middleware-retry': 2.0.24 - '@smithy/middleware-serde': 2.0.15 - '@smithy/protocol-http': 3.0.11 - '@smithy/smithy-client': 2.1.18 - '@smithy/types': 2.7.0 - '@smithy/util-middleware': 2.0.8 - tslib: 2.6.2 - dev: false - - /@smithy/credential-provider-imds@2.1.4: - resolution: {integrity: sha512-cwPJN1fa1YOQzhBlTXRavABEYRRchci1X79QRwzaNLySnIMJfztyv1Zkst0iZPLMnpn8+CnHu3wOHS11J5Dr3A==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/node-config-provider': 2.1.8 - '@smithy/property-provider': 2.0.16 - '@smithy/types': 2.7.0 - '@smithy/url-parser': 2.0.15 - tslib: 2.6.2 - dev: false - - /@smithy/eventstream-codec@2.0.15: - resolution: {integrity: sha512-crjvz3j1gGPwA0us6cwS7+5gAn35CTmqu/oIxVbYJo2Qm/sGAye6zGJnMDk3BKhWZw5kcU1G4MxciTkuBpOZPg==} - dependencies: - '@aws-crypto/crc32': 3.0.0 - '@smithy/types': 2.7.0 - '@smithy/util-hex-encoding': 2.0.0 - tslib: 2.6.2 - dev: false - - /@smithy/eventstream-serde-browser@2.0.15: - resolution: {integrity: sha512-WiFG5N9j3jmS5P0z5Xev6dO0c3lf7EJYC2Ncb0xDnWFvShwXNn741AF71ABr5EcZw8F4rQma0362MMjAwJeZog==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/eventstream-serde-universal': 2.0.15 - '@smithy/types': 2.7.0 - tslib: 2.6.2 - dev: false - - /@smithy/eventstream-serde-config-resolver@2.0.15: - resolution: {integrity: sha512-o65d2LRjgCbWYH+VVNlWXtmsI231SO99ZTOL4UuIPa6WTjbSHWtlXvUcJG9libhEKWmEV9DIUiH2IqyPWi7ubA==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/types': 2.7.0 - tslib: 2.6.2 - dev: false - - /@smithy/eventstream-serde-node@2.0.15: - resolution: {integrity: sha512-9OOXiIhHq1VeOG6xdHkn2ZayfMYM3vzdUTV3zhcCnt+tMqA3BJK3XXTJFRR2BV28rtRM778DzqbBTf+hqwQPTg==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/eventstream-serde-universal': 2.0.15 - '@smithy/types': 2.7.0 - tslib: 2.6.2 - dev: false - - /@smithy/eventstream-serde-universal@2.0.15: - resolution: {integrity: sha512-dP8AQp/pXlWBjvL0TaPBJC3rM0GoYv7O0Uim8d/7UKZ2Wo13bFI3/BhQfY/1DeiP1m23iCHFNFtOQxfQNBB8rQ==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/eventstream-codec': 2.0.15 - '@smithy/types': 2.7.0 - tslib: 2.6.2 - dev: false - - /@smithy/fetch-http-handler@2.3.1: - resolution: {integrity: sha512-6MNk16fqb8EwcYY8O8WxB3ArFkLZ2XppsSNo1h7SQcFdDDwIumiJeO6wRzm7iB68xvsOQzsdQKbdtTieS3hfSQ==} - dependencies: - '@smithy/protocol-http': 3.0.11 - '@smithy/querystring-builder': 2.0.15 - '@smithy/types': 2.7.0 - '@smithy/util-base64': 2.0.1 - tslib: 2.6.2 - dev: false - - /@smithy/hash-blob-browser@2.0.16: - resolution: {integrity: sha512-cSYRi05LA7DZDwjB1HL0BP8B56eUNNeLglVH147QTXFyuXJq/7erAIiLRfsyXB8+GfFHkSS5BHbc76a7k/AYPA==} - dependencies: - '@smithy/chunked-blob-reader': 2.0.0 - '@smithy/chunked-blob-reader-native': 2.0.1 - '@smithy/types': 2.7.0 - tslib: 2.6.2 - dev: false - - /@smithy/hash-node@2.0.17: - resolution: {integrity: sha512-Il6WuBcI1nD+e2DM7tTADMf01wEPGK8PAhz4D+YmDUVaoBqlA+CaH2uDJhiySifmuKBZj748IfygXty81znKhw==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/types': 2.7.0 - '@smithy/util-buffer-from': 2.0.0 - '@smithy/util-utf8': 2.0.2 - tslib: 2.6.2 - dev: false - - /@smithy/hash-stream-node@2.0.17: - resolution: {integrity: sha512-ey8DtnATzp1mOXgS7rqMwSmAki6iJA+jgNucKcxRkhMB1rrICfHg+rhmIF50iLPDHUhTcS5pBMOrLzzpZftvNQ==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/types': 2.7.0 - '@smithy/util-utf8': 2.0.2 - tslib: 2.6.2 - dev: false - - /@smithy/invalid-dependency@2.0.15: - resolution: {integrity: sha512-dlEKBFFwVfzA5QroHlBS94NpgYjXhwN/bFfun+7w3rgxNvVy79SK0w05iGc7UAeC5t+D7gBxrzdnD6hreZnDVQ==} - dependencies: - '@smithy/types': 2.7.0 - tslib: 2.6.2 - dev: false - - /@smithy/is-array-buffer@2.0.0: - resolution: {integrity: sha512-z3PjFjMyZNI98JFRJi/U0nGoLWMSJlDjAW4QUX2WNZLas5C0CmVV6LJ01JI0k90l7FvpmixjWxPFmENSClQ7ug==} - engines: {node: '>=14.0.0'} - dependencies: - tslib: 2.6.2 - dev: false - - /@smithy/md5-js@2.0.17: - resolution: {integrity: sha512-jmISTCnEkOnm2oCNx/rMkvBT/eQh3aA6nktevkzbmn/VYqYEuc5Z2n5sTTqsciMSO01Lvf56wG1A4twDqovYeQ==} - dependencies: - '@smithy/types': 2.7.0 - '@smithy/util-utf8': 2.0.2 - tslib: 2.6.2 - dev: false - - /@smithy/middleware-content-length@2.0.17: - resolution: {integrity: sha512-OyadvMcKC7lFXTNBa8/foEv7jOaqshQZkjWS9coEXPRZnNnihU/Ls+8ZuJwGNCOrN2WxXZFmDWhegbnM4vak8w==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/protocol-http': 3.0.11 - '@smithy/types': 2.7.0 - tslib: 2.6.2 - dev: false - - /@smithy/middleware-endpoint@2.2.3: - resolution: {integrity: sha512-nYfxuq0S/xoAjdLbyn1ixeVB6cyH9wYCMtbbOCpcCRYR5u2mMtqUtVjjPAZ/DIdlK3qe0tpB0Q76szFGNuz+kQ==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/middleware-serde': 2.0.15 - '@smithy/node-config-provider': 2.1.8 - '@smithy/shared-ini-file-loader': 2.2.7 - '@smithy/types': 2.7.0 - '@smithy/url-parser': 2.0.15 - '@smithy/util-middleware': 2.0.8 - tslib: 2.6.2 - dev: false - - /@smithy/middleware-retry@2.0.24: - resolution: {integrity: sha512-q2SvHTYu96N7lYrn3VSuX3vRpxXHR/Cig6MJpGWxd0BWodUQUWlKvXpWQZA+lTaFJU7tUvpKhRd4p4MU3PbeJg==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/node-config-provider': 2.1.8 - '@smithy/protocol-http': 3.0.11 - '@smithy/service-error-classification': 2.0.8 - '@smithy/smithy-client': 2.1.18 - '@smithy/types': 2.7.0 - '@smithy/util-middleware': 2.0.8 - '@smithy/util-retry': 2.0.8 - tslib: 2.6.2 - uuid: 8.3.2 - dev: false - - /@smithy/middleware-serde@2.0.15: - resolution: {integrity: sha512-FOZRFk/zN4AT4wzGuBY+39XWe+ZnCFd0gZtyw3f9Okn2CJPixl9GyWe98TIaljeZdqWkgrzGyPre20AcW2UMHQ==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/types': 2.7.0 - tslib: 2.6.2 - dev: false - - /@smithy/middleware-stack@2.0.9: - resolution: {integrity: sha512-bCB5dUtGQ5wh7QNL2ELxmDc6g7ih7jWU3Kx6MYH1h4mZbv9xL3WyhKHojRltThCB1arLPyTUFDi+x6fB/oabtA==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/types': 2.7.0 - tslib: 2.6.2 - dev: false - - /@smithy/node-config-provider@2.1.8: - resolution: {integrity: sha512-+w26OKakaBUGp+UG+dxYZtFb5fs3tgHg3/QrRrmUZj+rl3cIuw840vFUXX35cVPTUCQIiTqmz7CpVF7+hdINdQ==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/property-provider': 2.0.16 - '@smithy/shared-ini-file-loader': 2.2.7 - '@smithy/types': 2.7.0 - tslib: 2.6.2 - dev: false - - /@smithy/node-http-handler@2.2.1: - resolution: {integrity: sha512-8iAKQrC8+VFHPAT8pg4/j6hlsTQh+NKOWlctJBrYtQa4ExcxX7aSg3vdQ2XLoYwJotFUurg/NLqFCmZaPRrogw==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/abort-controller': 2.0.15 - '@smithy/protocol-http': 3.0.11 - '@smithy/querystring-builder': 2.0.15 - '@smithy/types': 2.7.0 - tslib: 2.6.2 - dev: false - - /@smithy/property-provider@2.0.16: - resolution: {integrity: sha512-28Ky0LlOqtEjwg5CdHmwwaDRHcTWfPRzkT6HrhwOSRS2RryAvuDfJrZpM+BMcrdeCyEg1mbcgIMoqTla+rdL8Q==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/types': 2.7.0 - tslib: 2.6.2 - dev: false - - /@smithy/protocol-http@3.0.11: - resolution: {integrity: sha512-3ziB8fHuXIRamV/akp/sqiWmNPR6X+9SB8Xxnozzj+Nq7hSpyKdFHd1FLpBkgfGFUTzzcBJQlDZPSyxzmdcx5A==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/types': 2.7.0 - tslib: 2.6.2 - dev: false - - /@smithy/querystring-builder@2.0.15: - resolution: {integrity: sha512-e1q85aT6HutvouOdN+dMsN0jcdshp50PSCvxDvo6aIM57LqeXimjfONUEgfqQ4IFpYWAtVixptyIRE5frMp/2A==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/types': 2.7.0 - '@smithy/util-uri-escape': 2.0.0 - tslib: 2.6.2 - dev: false - - /@smithy/querystring-parser@2.0.15: - resolution: {integrity: sha512-jbBvoK3cc81Cj1c1TH1qMYxNQKHrYQ2DoTntN9FBbtUWcGhc+T4FP6kCKYwRLXyU4AajwGIZstvNAmIEgUUNTQ==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/types': 2.7.0 - tslib: 2.6.2 - dev: false - - /@smithy/service-error-classification@2.0.8: - resolution: {integrity: sha512-jCw9+005im8tsfYvwwSc4TTvd29kXRFkH9peQBg5R/4DD03ieGm6v6Hpv9nIAh98GwgYg1KrztcINC1s4o7/hg==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/types': 2.7.0 - dev: false - - /@smithy/shared-ini-file-loader@2.2.7: - resolution: {integrity: sha512-0Qt5CuiogIuvQIfK+be7oVHcPsayLgfLJGkPlbgdbl0lD28nUKu4p11L+UG3SAEsqc9UsazO+nErPXw7+IgDpQ==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/types': 2.7.0 - tslib: 2.6.2 - dev: false - - /@smithy/signature-v4@2.0.18: - resolution: {integrity: sha512-SJRAj9jT/l9ocm8D0GojMbnA1sp7I4JeStOQ4lEXI8A5eHE73vbjlzlqIFB7cLvIgau0oUl4cGVpF9IGCrvjlw==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/eventstream-codec': 2.0.15 - '@smithy/is-array-buffer': 2.0.0 - '@smithy/types': 2.7.0 - '@smithy/util-hex-encoding': 2.0.0 - '@smithy/util-middleware': 2.0.8 - '@smithy/util-uri-escape': 2.0.0 - '@smithy/util-utf8': 2.0.2 - tslib: 2.6.2 - dev: false - - /@smithy/smithy-client@2.1.18: - resolution: {integrity: sha512-7FqdbaJiVaHJDD9IfDhmzhSDbpjyx+ZsfdYuOpDJF09rl8qlIAIlZNoSaflKrQ3cEXZN2YxGPaNWGhbYimyIRQ==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/middleware-stack': 2.0.9 - '@smithy/types': 2.7.0 - '@smithy/util-stream': 2.0.23 - tslib: 2.6.2 - dev: false - - /@smithy/types@2.7.0: - resolution: {integrity: sha512-1OIFyhK+vOkMbu4aN2HZz/MomREkrAC/HqY5mlJMUJfGrPRwijJDTeiN8Rnj9zUaB8ogXAfIOtZrrgqZ4w7Wnw==} - engines: {node: '>=14.0.0'} - dependencies: - tslib: 2.6.2 - dev: false - - /@smithy/url-parser@2.0.15: - resolution: {integrity: sha512-sADUncUj9rNbOTrdDGm4EXlUs0eQ9dyEo+V74PJoULY4jSQxS+9gwEgsPYyiu8PUOv16JC/MpHonOgqP/IEDZA==} - dependencies: - '@smithy/querystring-parser': 2.0.15 - '@smithy/types': 2.7.0 - tslib: 2.6.2 - dev: false - - /@smithy/util-base64@2.0.1: - resolution: {integrity: sha512-DlI6XFYDMsIVN+GH9JtcRp3j02JEVuWIn/QOZisVzpIAprdsxGveFed0bjbMRCqmIFe8uetn5rxzNrBtIGrPIQ==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/util-buffer-from': 2.0.0 - tslib: 2.6.2 - dev: false - - /@smithy/util-body-length-browser@2.0.1: - resolution: {integrity: sha512-NXYp3ttgUlwkaug4bjBzJ5+yIbUbUx8VsSLuHZROQpoik+gRkIBeEG9MPVYfvPNpuXb/puqodeeUXcKFe7BLOQ==} - dependencies: - tslib: 2.6.2 - dev: false - - /@smithy/util-body-length-node@2.1.0: - resolution: {integrity: sha512-/li0/kj/y3fQ3vyzn36NTLGmUwAICb7Jbe/CsWCktW363gh1MOcpEcSO3mJ344Gv2dqz8YJCLQpb6hju/0qOWw==} - engines: {node: '>=14.0.0'} - dependencies: - tslib: 2.6.2 - dev: false - - /@smithy/util-buffer-from@2.0.0: - resolution: {integrity: sha512-/YNnLoHsR+4W4Vf2wL5lGv0ksg8Bmk3GEGxn2vEQt52AQaPSCuaO5PM5VM7lP1K9qHRKHwrPGktqVoAHKWHxzw==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/is-array-buffer': 2.0.0 - tslib: 2.6.2 - dev: false - - /@smithy/util-config-provider@2.0.0: - resolution: {integrity: sha512-xCQ6UapcIWKxXHEU4Mcs2s7LcFQRiU3XEluM2WcCjjBtQkUN71Tb+ydGmJFPxMUrW/GWMgQEEGipLym4XG0jZg==} - engines: {node: '>=14.0.0'} - dependencies: - tslib: 2.6.2 - dev: false - - /@smithy/util-defaults-mode-browser@2.0.22: - resolution: {integrity: sha512-qcF20IHHH96FlktvBRICDXDhLPtpVmtksHmqNGtotb9B0DYWXsC6jWXrkhrrwF7tH26nj+npVTqh9isiFV1gdA==} - engines: {node: '>= 10.0.0'} - dependencies: - '@smithy/property-provider': 2.0.16 - '@smithy/smithy-client': 2.1.18 - '@smithy/types': 2.7.0 - bowser: 2.11.0 - tslib: 2.6.2 - dev: false - - /@smithy/util-defaults-mode-node@2.0.29: - resolution: {integrity: sha512-+uG/15VoUh6JV2fdY9CM++vnSuMQ1VKZ6BdnkUM7R++C/vLjnlg+ToiSR1FqKZbMmKBXmsr8c/TsDWMAYvxbxQ==} - engines: {node: '>= 10.0.0'} - dependencies: - '@smithy/config-resolver': 2.0.21 - '@smithy/credential-provider-imds': 2.1.4 - '@smithy/node-config-provider': 2.1.8 - '@smithy/property-provider': 2.0.16 - '@smithy/smithy-client': 2.1.18 - '@smithy/types': 2.7.0 - tslib: 2.6.2 - dev: false - - /@smithy/util-endpoints@1.0.7: - resolution: {integrity: sha512-Q2gEind3jxoLk6hdKWyESMU7LnXz8aamVwM+VeVjOYzYT1PalGlY/ETa48hv2YpV4+YV604y93YngyzzzQ4IIA==} - engines: {node: '>= 14.0.0'} - dependencies: - '@smithy/node-config-provider': 2.1.8 - '@smithy/types': 2.7.0 - tslib: 2.6.2 - dev: false - - /@smithy/util-hex-encoding@2.0.0: - resolution: {integrity: sha512-c5xY+NUnFqG6d7HFh1IFfrm3mGl29lC+vF+geHv4ToiuJCBmIfzx6IeHLg+OgRdPFKDXIw6pvi+p3CsscaMcMA==} - engines: {node: '>=14.0.0'} - dependencies: - tslib: 2.6.2 - dev: false - - /@smithy/util-middleware@2.0.8: - resolution: {integrity: sha512-qkvqQjM8fRGGA8P2ydWylMhenCDP8VlkPn8kiNuFEaFz9xnUKC2irfqsBSJrfrOB9Qt6pQsI58r3zvvumhFMkw==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/types': 2.7.0 - tslib: 2.6.2 - dev: false - - /@smithy/util-retry@2.0.8: - resolution: {integrity: sha512-cQTPnVaVFMjjS6cb44WV2yXtHVyXDC5icKyIbejMarJEApYeJWpBU3LINTxHqp/tyLI+MZOUdosr2mZ3sdziNg==} - engines: {node: '>= 14.0.0'} - dependencies: - '@smithy/service-error-classification': 2.0.8 - '@smithy/types': 2.7.0 - tslib: 2.6.2 - dev: false - - /@smithy/util-stream@2.0.23: - resolution: {integrity: sha512-OJMWq99LAZJUzUwTk+00plyxX3ESktBaGPhqNIEVab+53gLULiWN9B/8bRABLg0K6R6Xg4t80uRdhk3B/LZqMQ==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/fetch-http-handler': 2.3.1 - '@smithy/node-http-handler': 2.2.1 - '@smithy/types': 2.7.0 - '@smithy/util-base64': 2.0.1 - '@smithy/util-buffer-from': 2.0.0 - '@smithy/util-hex-encoding': 2.0.0 - '@smithy/util-utf8': 2.0.2 - tslib: 2.6.2 - dev: false - - /@smithy/util-uri-escape@2.0.0: - resolution: {integrity: sha512-ebkxsqinSdEooQduuk9CbKcI+wheijxEb3utGXkCoYQkJnwTnLbH1JXGimJtUkQwNQbsbuYwG2+aFVyZf5TLaw==} - engines: {node: '>=14.0.0'} - dependencies: - tslib: 2.6.2 - dev: false - - /@smithy/util-utf8@2.0.2: - resolution: {integrity: sha512-qOiVORSPm6Ce4/Yu6hbSgNHABLP2VMv8QOC3tTDNHHlWY19pPyc++fBTbZPtx6egPXi4HQxKDnMxVxpbtX2GoA==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/util-buffer-from': 2.0.0 - tslib: 2.6.2 - dev: false - - /@smithy/util-waiter@2.0.15: - resolution: {integrity: sha512-9Y+btzzB7MhLADW7xgD6SjvmoYaRkrb/9SCbNGmNdfO47v38rxb90IGXyDtAK0Shl9bMthTmLgjlfYc+vtz2Qw==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/abort-controller': 2.0.15 - '@smithy/types': 2.7.0 - tslib: 2.6.2 - dev: false - - /@tootallnate/once@1.1.2: - resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} - engines: {node: '>= 6'} - requiresBuild: true - optional: true - - /@tsconfig/node10@1.0.9: - resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} - dev: true - - /@tsconfig/node12@1.0.11: - resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} - dev: true - - /@tsconfig/node14@1.0.3: - resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} - dev: true - - /@tsconfig/node16@1.0.4: - resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} - dev: true - - /@types/debug@4.1.12: - resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} - dependencies: - '@types/ms': 0.7.34 - dev: false - - /@types/estree@1.0.1: - resolution: {integrity: sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==} - dev: false - - /@types/json-schema@7.0.11: - resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} - dev: true - - /@types/ms@0.7.34: - resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} - dev: false - - /@types/node-fetch@2.6.4: - resolution: {integrity: sha512-1ZX9fcN4Rvkvgv4E6PAY5WXUFWFcRWxZa3EW83UjycOB9ljJCedb2CupIP4RZMEwF/M3eTcCihbBRgwtGbg5Rg==} - dependencies: - '@types/node': 20.10.5 - form-data: 3.0.1 - dev: false - - /@types/node@16.18.6: - resolution: {integrity: sha512-vmYJF0REqDyyU0gviezF/KHq/fYaUbFhkcNbQCuPGFQj6VTbXuHZoxs/Y7mutWe73C8AC6l9fFu8mSYiBAqkGA==} - dev: false - - /@types/node@18.16.7: - resolution: {integrity: sha512-MFg7ua/bRtnA1hYE3pVyWxGd/r7aMqjNOdHvlSsXV3n8iaeGKkOaPzpJh6/ovf4bEXWcojkeMJpTsq3mzXW4IQ==} - dev: false - - /@types/node@20.10.5: - resolution: {integrity: sha512-nNPsNE65wjMxEKI93yOP+NPGGBJz/PoN3kZsVLee0XMiJolxSekEVD8wRwBUBqkwc7UWop0edW50yrCQW4CyRw==} - dependencies: - undici-types: 5.26.5 - - /@types/normalize-package-data@2.4.1: - resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} - dev: false - - /@types/parse-github-url@1.0.3: - resolution: {integrity: sha512-7sTbCVmSVzK/iAsHGIxoqiyAnqix9opZm68lOvaU6DBx9EQ9kHMSp0y7Criu2OCsZ9wDllEyCRU+LU4hPRxXUA==} - dependencies: - '@types/node': 20.10.5 - dev: true - - /@types/retry@0.12.0: - resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} - dev: false - - /@types/semver@7.5.0: - resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} - dev: true - - /@types/tar@6.1.10: - resolution: {integrity: sha512-60ZO+W0tRKJ3ggdzJKp75xKVlNogKYMqGvr2bMH/+k3T0BagfYTnbmVDFMJB1BFttz6yRgP5MDGP27eh7brrqw==} - dependencies: - '@types/node': 20.10.5 - minipass: 4.2.8 - dev: false - - /@types/uuid@9.0.2: - resolution: {integrity: sha512-kNnC1GFBLuhImSnV7w4njQkUiJi0ZXUycu1rUaouPqiKlXkh77JKgdRnTAp1x5eBwcIwbtI+3otwzuIDEuDoxQ==} - dev: false - - /@types/validator@13.11.8: - resolution: {integrity: sha512-c/hzNDBh7eRF+KbCf+OoZxKbnkpaK/cKp9iLQWqB7muXtM+MtL9SUUH8vCFcLn6dH1Qm05jiexK0ofWY7TfOhQ==} - dev: false - - /@typescript-eslint/eslint-plugin@5.59.5(@typescript-eslint/parser@5.59.5)(eslint@8.40.0)(typescript@5.3.3): - resolution: {integrity: sha512-feA9xbVRWJZor+AnLNAr7A8JRWeZqHUf4T9tlP+TN04b05pFVhO5eN7/O93Y/1OUlLMHKbnJisgDURs/qvtqdg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - '@typescript-eslint/parser': ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@eslint-community/regexpp': 4.5.1 - '@typescript-eslint/parser': 5.59.5(eslint@8.40.0)(typescript@5.3.3) - '@typescript-eslint/scope-manager': 5.59.5 - '@typescript-eslint/type-utils': 5.59.5(eslint@8.40.0)(typescript@5.3.3) - '@typescript-eslint/utils': 5.59.5(eslint@8.40.0)(typescript@5.3.3) - debug: 4.3.4(supports-color@5.5.0) - eslint: 8.40.0 - grapheme-splitter: 1.0.4 - ignore: 5.2.4 - natural-compare-lite: 1.4.0 - semver: 7.5.0 - tsutils: 3.21.0(typescript@5.3.3) - typescript: 5.3.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/parser@5.59.5(eslint@8.40.0)(typescript@5.3.3): - resolution: {integrity: sha512-NJXQC4MRnF9N9yWqQE2/KLRSOLvrrlZb48NGVfBa+RuPMN6B7ZcK5jZOvhuygv4D64fRKnZI4L4p8+M+rfeQuw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/scope-manager': 5.59.5 - '@typescript-eslint/types': 5.59.5 - '@typescript-eslint/typescript-estree': 5.59.5(typescript@5.3.3) - debug: 4.3.4(supports-color@5.5.0) - eslint: 8.40.0 - typescript: 5.3.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/scope-manager@5.59.5: - resolution: {integrity: sha512-jVecWwnkX6ZgutF+DovbBJirZcAxgxC0EOHYt/niMROf8p4PwxxG32Qdhj/iIQQIuOflLjNkxoXyArkcIP7C3A==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.59.5 - '@typescript-eslint/visitor-keys': 5.59.5 - dev: true - - /@typescript-eslint/type-utils@5.59.5(eslint@8.40.0)(typescript@5.3.3): - resolution: {integrity: sha512-4eyhS7oGym67/pSxA2mmNq7X164oqDYNnZCUayBwJZIRVvKpBCMBzFnFxjeoDeShjtO6RQBHBuwybuX3POnDqg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: '*' - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/typescript-estree': 5.59.5(typescript@5.3.3) - '@typescript-eslint/utils': 5.59.5(eslint@8.40.0)(typescript@5.3.3) - debug: 4.3.4(supports-color@5.5.0) - eslint: 8.40.0 - tsutils: 3.21.0(typescript@5.3.3) - typescript: 5.3.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/types@5.59.5: - resolution: {integrity: sha512-xkfRPHbqSH4Ggx4eHRIO/eGL8XL4Ysb4woL8c87YuAo8Md7AUjyWKa9YMwTL519SyDPrfEgKdewjkxNCVeJW7w==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true - - /@typescript-eslint/typescript-estree@5.59.5(typescript@5.3.3): - resolution: {integrity: sha512-+XXdLN2CZLZcD/mO7mQtJMvCkzRfmODbeSKuMY/yXbGkzvA9rJyDY5qDYNoiz2kP/dmyAxXquL2BvLQLJFPQIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/types': 5.59.5 - '@typescript-eslint/visitor-keys': 5.59.5 - debug: 4.3.4(supports-color@5.5.0) - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.5.0 - tsutils: 3.21.0(typescript@5.3.3) - typescript: 5.3.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/utils@5.59.5(eslint@8.40.0)(typescript@5.3.3): - resolution: {integrity: sha512-sCEHOiw+RbyTii9c3/qN74hYDPNORb8yWCoPLmB7BIflhplJ65u2PBpdRla12e3SSTJ2erRkPjz7ngLHhUegxA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.40.0) - '@types/json-schema': 7.0.11 - '@types/semver': 7.5.0 - '@typescript-eslint/scope-manager': 5.59.5 - '@typescript-eslint/types': 5.59.5 - '@typescript-eslint/typescript-estree': 5.59.5(typescript@5.3.3) - eslint: 8.40.0 - eslint-scope: 5.1.1 - semver: 7.5.0 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - - /@typescript-eslint/visitor-keys@5.59.5: - resolution: {integrity: sha512-qL+Oz+dbeBRTeyJTIy0eniD3uvqU7x+y1QceBismZ41hd4aBSRh8UAw4pZP0+XzLuPZmx4raNMq/I+59W2lXKA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.59.5 - eslint-visitor-keys: 3.4.1 - dev: true - - /@vercel/ncc@0.38.1: - resolution: {integrity: sha512-IBBb+iI2NLu4VQn3Vwldyi2QwaXt5+hTyh58ggAMoCGE6DJmPvwL3KPBWcJl1m9LYPChBLE980Jw+CS4Wokqxw==} - hasBin: true - dev: true - - /@vitest/expect@1.1.0: - resolution: {integrity: sha512-9IE2WWkcJo2BR9eqtY5MIo3TPmS50Pnwpm66A6neb2hvk/QSLfPXBz2qdiwUOQkwyFuuXEUj5380CbwfzW4+/w==} - dependencies: - '@vitest/spy': 1.1.0 - '@vitest/utils': 1.1.0 - chai: 4.3.10 - dev: true - - /@vitest/runner@1.1.0: - resolution: {integrity: sha512-zdNLJ00pm5z/uhbWF6aeIJCGMSyTyWImy3Fcp9piRGvueERFlQFbUwCpzVce79OLm2UHk9iwaMSOaU9jVHgNVw==} - dependencies: - '@vitest/utils': 1.1.0 - p-limit: 5.0.0 - pathe: 1.1.1 - dev: true - - /@vitest/snapshot@1.1.0: - resolution: {integrity: sha512-5O/wyZg09V5qmNmAlUgCBqflvn2ylgsWJRRuPrnHEfDNT6tQpQ8O1isNGgo+VxofISHqz961SG3iVvt3SPK/QQ==} - dependencies: - magic-string: 0.30.5 - pathe: 1.1.1 - pretty-format: 29.7.0 - dev: true - - /@vitest/spy@1.1.0: - resolution: {integrity: sha512-sNOVSU/GE+7+P76qYo+VXdXhXffzWZcYIPQfmkiRxaNCSPiLANvQx5Mx6ZURJ/ndtEkUJEpvKLXqAYTKEY+lTg==} - dependencies: - tinyspy: 2.2.0 - dev: true - - /@vitest/utils@1.1.0: - resolution: {integrity: sha512-z+s510fKmYz4Y41XhNs3vcuFTFhcij2YF7F8VQfMEYAAUfqQh0Zfg7+w9xdgFGhPf3tX3TicAe+8BDITk6ampQ==} - dependencies: - diff-sequences: 29.6.3 - loupe: 2.3.7 - pretty-format: 29.7.0 - dev: true - - /@vue/compiler-core@3.3.4: - resolution: {integrity: sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==} - dependencies: - '@babel/parser': 7.22.16 - '@vue/shared': 3.3.4 - estree-walker: 2.0.2 - source-map-js: 1.0.2 - dev: false - - /@vue/compiler-dom@3.3.4: - resolution: {integrity: sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==} - dependencies: - '@vue/compiler-core': 3.3.4 - '@vue/shared': 3.3.4 - dev: false - - /@vue/compiler-sfc@3.3.4: - resolution: {integrity: sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==} - dependencies: - '@babel/parser': 7.22.16 - '@vue/compiler-core': 3.3.4 - '@vue/compiler-dom': 3.3.4 - '@vue/compiler-ssr': 3.3.4 - '@vue/reactivity-transform': 3.3.4 - '@vue/shared': 3.3.4 - estree-walker: 2.0.2 - magic-string: 0.30.5 - postcss: 8.4.32 - source-map-js: 1.0.2 - dev: false - - /@vue/compiler-ssr@3.3.4: - resolution: {integrity: sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==} - dependencies: - '@vue/compiler-dom': 3.3.4 - '@vue/shared': 3.3.4 - dev: false - - /@vue/reactivity-transform@3.3.4: - resolution: {integrity: sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==} - dependencies: - '@babel/parser': 7.22.16 - '@vue/compiler-core': 3.3.4 - '@vue/shared': 3.3.4 - estree-walker: 2.0.2 - magic-string: 0.30.5 - dev: false - - /@vue/reactivity@3.3.4: - resolution: {integrity: sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==} - dependencies: - '@vue/shared': 3.3.4 - dev: false - - /@vue/runtime-core@3.3.4: - resolution: {integrity: sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==} - dependencies: - '@vue/reactivity': 3.3.4 - '@vue/shared': 3.3.4 - dev: false - - /@vue/runtime-dom@3.3.4: - resolution: {integrity: sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==} - dependencies: - '@vue/runtime-core': 3.3.4 - '@vue/shared': 3.3.4 - csstype: 3.1.1 - dev: false - - /@vue/server-renderer@3.3.4(vue@3.3.4): - resolution: {integrity: sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==} - peerDependencies: - vue: 3.3.4 - dependencies: - '@vue/compiler-ssr': 3.3.4 - '@vue/shared': 3.3.4 - vue: 3.3.4 - dev: false - - /@vue/shared@3.3.4: - resolution: {integrity: sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==} - dev: false - - /abbrev@1.1.1: - resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} - - /abort-controller@3.0.0: - resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} - engines: {node: '>=6.5'} - dependencies: - event-target-shim: 5.0.1 - dev: false - - /abstract-logging@2.0.1: - resolution: {integrity: sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==} - dev: false - - /acorn-jsx@5.3.2(acorn@8.8.2): - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - acorn: 8.8.2 - dev: true - - /acorn-walk@8.3.1: - resolution: {integrity: sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==} - engines: {node: '>=0.4.0'} - dev: true - - /acorn@8.10.0: - resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} - engines: {node: '>=0.4.0'} - hasBin: true - - /acorn@8.8.2: - resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} - engines: {node: '>=0.4.0'} - hasBin: true - dev: true - - /agent-base@6.0.2: - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} - engines: {node: '>= 6.0.0'} - requiresBuild: true - dependencies: - debug: 4.3.4(supports-color@5.5.0) - transitivePeerDependencies: - - supports-color - optional: true - - /agentkeepalive@4.5.0: - resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} - engines: {node: '>= 8.0.0'} - dependencies: - humanize-ms: 1.2.1 - - /aggregate-error@3.1.0: - resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} - engines: {node: '>=8'} - requiresBuild: true - dependencies: - clean-stack: 2.2.0 - indent-string: 4.0.0 - optional: true - - /ai@2.2.29(react@18.2.0)(solid-js@1.7.11)(svelte@4.2.0)(vue@3.3.4): - resolution: {integrity: sha512-/zzSTTKF5LxMGQuNVUnNjs7X6PWYfb6M88Zn74gCUnM3KCYgh0CiAWhLyhKP6UtK0H5mHSmXgt0ZkZYUecRp0w==} - engines: {node: '>=14.6'} - peerDependencies: - react: ^18.2.0 - solid-js: ^1.7.7 - svelte: ^3.0.0 || ^4.0.0 - vue: ^3.3.4 - peerDependenciesMeta: - react: - optional: true - solid-js: - optional: true - svelte: - optional: true - vue: - optional: true - dependencies: - eventsource-parser: 1.0.0 - nanoid: 3.3.6 - react: 18.2.0 - solid-js: 1.7.11 - solid-swr-store: 0.10.7(solid-js@1.7.11)(swr-store@0.10.6) - sswr: 2.0.0(svelte@4.2.0) - svelte: 4.2.0 - swr: 2.2.0(react@18.2.0) - swr-store: 0.10.6 - swrv: 1.0.4(vue@3.3.4) - vue: 3.3.4 - dev: false - - /ajv-formats@2.1.1(ajv@8.12.0): - resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} - peerDependencies: - ajv: ^8.0.0 - peerDependenciesMeta: - ajv: - optional: true - dependencies: - ajv: 8.12.0 - dev: false - - /ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - dev: true - - /ajv@8.12.0: - resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} - dependencies: - fast-deep-equal: 3.1.3 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - uri-js: 4.4.1 - dev: false - - /ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - - /ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - dependencies: - color-convert: 1.9.3 - dev: false - - /ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - dependencies: - color-convert: 2.0.1 - - /ansi-styles@5.2.0: - resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} - engines: {node: '>=10'} - - /anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - dev: true - - /aproba@2.0.0: - resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} - requiresBuild: true - optional: true - - /archy@1.0.0: - resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==} - dev: false - - /are-we-there-yet@3.0.1: - resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - requiresBuild: true - dependencies: - delegates: 1.0.0 - readable-stream: 3.6.2 - optional: true - - /arg@4.1.3: - resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} - dev: true - - /argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - - /aria-query@5.3.0: - resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} - dependencies: - dequal: 2.0.3 - dev: false - - /array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - dev: true - - /asn1js@3.0.5: - resolution: {integrity: sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==} - engines: {node: '>=12.0.0'} - dependencies: - pvtsutils: 1.3.2 - pvutils: 1.1.3 - tslib: 2.6.2 - dev: false - - /assertion-error@1.1.0: - resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} - dev: true - - /asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - dev: false - - /atomic-sleep@1.0.0: - resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} - engines: {node: '>=8.0.0'} - dev: false - - /atomically@2.0.1: - resolution: {integrity: sha512-sxBhVZUFBFhqSAsYMM3X2oaUi2NVDJ8U026FsIusM8gYXls9AYs/eXzgGrufs1Qjpkxi9zunds+75QUFz+m7UQ==} - dependencies: - stubborn-fs: 1.2.4 - when-exit: 2.1.0 - dev: false - - /avvio@8.2.1: - resolution: {integrity: sha512-TAlMYvOuwGyLK3PfBb5WKBXZmXz2fVCgv23d6zZFdle/q3gPjmxBaeuC0pY0Dzs5PWMSgfqqEZkrye19GlDTgw==} - dependencies: - archy: 1.0.0 - debug: 4.3.4(supports-color@5.5.0) - fastq: 1.15.0 - transitivePeerDependencies: - - supports-color - dev: false - - /axios@1.6.2: - resolution: {integrity: sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==} - dependencies: - follow-redirects: 1.15.2 - form-data: 4.0.0 - proxy-from-env: 1.1.0 - transitivePeerDependencies: - - debug - dev: false - - /axobject-query@3.2.1: - resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} - dependencies: - dequal: 2.0.3 - dev: false - - /balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - - /base-64@0.1.0: - resolution: {integrity: sha512-Y5gU45svrR5tI2Vt/X9GPd3L0HNIKzGu202EjxrXMpuc2V2CiKgemAbUUsqYmZJvPtCXoUKjNZwBJzsNScUbXA==} - dev: false - - /base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - - /binary-extensions@2.2.0: - resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} - engines: {node: '>=8'} - - /binary-search@1.3.6: - resolution: {integrity: sha512-nbE1WxOTTrUWIfsfZ4aHGYu5DOuNkbxGokjV6Z2kxfJK3uaAb8zNK1muzOeipoLHZjInT4Br88BHpzevc681xA==} - dev: false - - /bindings@1.5.0: - resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} - dependencies: - file-uri-to-path: 1.0.0 - - /bl@4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} - dependencies: - buffer: 5.7.1 - inherits: 2.0.4 - readable-stream: 3.6.2 - - /bowser@2.11.0: - resolution: {integrity: sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==} - dev: false - - /brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - - /brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - dependencies: - balanced-match: 1.0.2 - dev: false - - /braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} - engines: {node: '>=8'} - dependencies: - fill-range: 7.0.1 - dev: true - - /buffer-writer@2.0.0: - resolution: {integrity: sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==} - engines: {node: '>=4'} - dev: false - - /buffer@5.7.1: - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - - /buffer@6.0.3: - resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} - requiresBuild: true - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - dev: false - - /cac@6.7.14: - resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} - engines: {node: '>=8'} - - /cacache@15.3.0: - resolution: {integrity: sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==} - engines: {node: '>= 10'} - requiresBuild: true - dependencies: - '@npmcli/fs': 1.1.1 - '@npmcli/move-file': 1.1.2 - chownr: 2.0.0 - fs-minipass: 2.1.0 - glob: 7.2.3 - infer-owner: 1.0.4 - lru-cache: 6.0.0 - minipass: 3.3.6 - minipass-collect: 1.0.2 - minipass-flush: 1.0.5 - minipass-pipeline: 1.2.4 - mkdirp: 1.0.4 - p-map: 4.0.0 - promise-inflight: 1.0.1 - rimraf: 3.0.2 - ssri: 8.0.1 - tar: 6.2.0 - unique-filename: 1.1.1 - transitivePeerDependencies: - - bluebird - optional: true - - /callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - dev: true - - /camelcase@6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} - dev: false - - /chai@4.3.10: - resolution: {integrity: sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==} - engines: {node: '>=4'} - dependencies: - assertion-error: 1.1.0 - check-error: 1.0.3 - deep-eql: 4.1.3 - get-func-name: 2.0.2 - loupe: 2.3.7 - pathval: 1.1.1 - type-detect: 4.0.8 - dev: true - - /chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 - dev: false - - /chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - dev: true - - /charenc@0.0.2: - resolution: {integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==} - dev: false - - /chatgpt@5.2.5: - resolution: {integrity: sha512-DNhBzPb2zTDjJADY44XfngMvsvrvHRq1md2VPXLmnKeP1UCeA1B6pV3s9ZRwlcgjVT0RyM77fRj1xj5V11Vctg==} - engines: {node: '>=14'} - hasBin: true - dependencies: - cac: 6.7.14 - conf: 11.0.1 - eventsource-parser: 1.0.0 - js-tiktoken: 1.0.7 - keyv: 4.5.2 - p-timeout: 6.1.1 - quick-lru: 6.1.1 - read-pkg-up: 9.1.0 - uuid: 9.0.0 - dev: false - - /check-error@1.0.3: - resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} - dependencies: - get-func-name: 2.0.2 - dev: true - - /chokidar@3.5.3: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} - engines: {node: '>= 8.10.0'} - dependencies: - anymatch: 3.1.3 - braces: 3.0.2 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.3 - dev: true - - /chownr@1.1.4: - resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} - - /chownr@2.0.0: - resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} - engines: {node: '>=10'} - - /chromadb@1.7.2(openai@4.23.0): - resolution: {integrity: sha512-Zf+opwc4uHfDu2gfWx3Uk/yak7KXiS1ThA9SzdaREh9wh5EXytkAhuJ9EPY4vOcp5qNriZ6Ep5+rr4YPSrw6vA==} - engines: {node: '>=14.17.0'} - peerDependencies: - '@google/generative-ai': ^0.1.1 - cohere-ai: ^5.0.0 || ^6.0.0 - openai: ^3.0.0 || ^4.0.0 - peerDependenciesMeta: - '@google/generative-ai': - optional: true - cohere-ai: - optional: true - openai: - optional: true - dependencies: - cliui: 8.0.1 - isomorphic-fetch: 3.0.0 - openai: 4.23.0 - transitivePeerDependencies: - - encoding - dev: false - - /clean-stack@2.2.0: - resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} - engines: {node: '>=6'} - requiresBuild: true - optional: true - - /cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - dev: false - - /code-red@1.0.4: - resolution: {integrity: sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==} - dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 - '@types/estree': 1.0.1 - acorn: 8.10.0 - estree-walker: 3.0.3 - periscopic: 3.1.0 - dev: false - - /color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - dependencies: - color-name: 1.1.3 - dev: false - - /color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - dependencies: - color-name: 1.1.4 - - /color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - dev: false - - /color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - - /color-support@1.1.3: - resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} - hasBin: true - requiresBuild: true - optional: true - - /combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} - dependencies: - delayed-stream: 1.0.0 - dev: false - - /commander@10.0.1: - resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} - engines: {node: '>=14'} - dev: false - - /concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - - /conf@11.0.1: - resolution: {integrity: sha512-WlLiQboEjKx0bYx2IIRGedBgNjLAxtwPaCSnsjWPST5xR0DB4q8lcsO/bEH9ZRYNcj63Y9vj/JG/5Fg6uWzI0Q==} - engines: {node: '>=14.16'} - dependencies: - ajv: 8.12.0 - ajv-formats: 2.1.1(ajv@8.12.0) - atomically: 2.0.1 - debounce-fn: 5.1.2 - dot-prop: 7.2.0 - env-paths: 3.0.0 - json-schema-typed: 8.0.1 - semver: 7.5.0 - dev: false - - /console-control-strings@1.1.0: - resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} - requiresBuild: true - optional: true - - /content-disposition@0.5.4: - resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} - engines: {node: '>= 0.6'} - dependencies: - safe-buffer: 5.2.1 - dev: false - - /cookie@0.5.0: - resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} - engines: {node: '>= 0.6'} - dev: false - - /cookies@0.8.0: - resolution: {integrity: sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==} - engines: {node: '>= 0.8'} - dependencies: - depd: 2.0.0 - keygrip: 1.1.0 - dev: false - - /create-require@1.1.1: - resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - dev: true - - /cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - dev: true - - /crypt@0.0.2: - resolution: {integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==} - dev: false - - /css-tree@2.3.1: - resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} - dependencies: - mdn-data: 2.0.30 - source-map-js: 1.0.2 - dev: false - - /csstype@3.1.1: - resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==} - dev: false - - /debounce-fn@5.1.2: - resolution: {integrity: sha512-Sr4SdOZ4vw6eQDvPYNxHogvrxmCIld/VenC5JbNrFwMiwd7lY/Z18ZFfo+EWNG4DD9nFlAujWAo/wGuOPHmy5A==} - engines: {node: '>=12'} - dependencies: - mimic-fn: 4.0.0 - dev: false - - /debug@4.3.4(supports-color@5.5.0): - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.1.2 - supports-color: 5.5.0 - - /decamelize@1.2.0: - resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} - engines: {node: '>=0.10.0'} - dev: false - - /decompress-response@6.0.0: - resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} - engines: {node: '>=10'} - dependencies: - mimic-response: 3.1.0 - - /deep-eql@4.1.3: - resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} - engines: {node: '>=6'} - dependencies: - type-detect: 4.0.8 - dev: true - - /deep-extend@0.6.0: - resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} - engines: {node: '>=4.0.0'} - - /deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - dev: true - - /deepmerge@4.2.2: - resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==} - engines: {node: '>=0.10.0'} - dev: false - - /delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} - dev: false - - /delegates@1.0.0: - resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} - requiresBuild: true - optional: true - - /depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} - engines: {node: '>= 0.8'} - dev: false - - /dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} - engines: {node: '>=6'} - dev: false - - /detect-libc@2.0.2: - resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==} - engines: {node: '>=8'} - - /diff-sequences@29.6.3: - resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dev: true - - /diff@4.0.2: - resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} - engines: {node: '>=0.3.1'} - dev: true - - /digest-fetch@1.3.0: - resolution: {integrity: sha512-CGJuv6iKNM7QyZlM2T3sPAdZWd/p9zQiRNS9G+9COUCwzWFTs0Xp8NF5iePx7wtvhDykReiRRrSeNb4oMmB8lA==} - dependencies: - base-64: 0.1.0 - md5: 2.3.0 - dev: false - - /dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} - dependencies: - path-type: 4.0.0 - dev: true - - /doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - dependencies: - esutils: 2.0.3 - dev: true - - /dot-case@3.0.4: - resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} - dependencies: - no-case: 3.0.4 - tslib: 2.6.2 - dev: false - - /dot-prop@7.2.0: - resolution: {integrity: sha512-Ol/IPXUARn9CSbkrdV4VJo7uCy1I3VuSiWCaFSg+8BdUOzF9n3jefIpcgAydvUZbTdEBZs2vEiTiS9m61ssiDA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - type-fest: 2.19.0 - dev: false - - /dottie@2.0.6: - resolution: {integrity: sha512-iGCHkfUc5kFekGiqhe8B/mdaurD+lakO9txNnTvKtA6PISrw86LgqHvRzWYPyoE2Ph5aMIrCw9/uko6XHTKCwA==} - dev: false - - /effect@2.0.0-next.61: - resolution: {integrity: sha512-BuRr9SEwYdMVLQunATRjm3MAkTgWI21Tyn5ooWVZnTeXj0lUqSV0fjaqNFksEymssmwJ1ucogbuYQ/3RLmwxgA==} - dev: false - - /emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - - /encoding@0.1.13: - resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} - requiresBuild: true - dependencies: - iconv-lite: 0.6.3 - optional: true - - /end-of-stream@1.4.4: - resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} - dependencies: - once: 1.4.0 - - /env-paths@2.2.1: - resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} - engines: {node: '>=6'} - requiresBuild: true - optional: true - - /env-paths@3.0.0: - resolution: {integrity: sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: false - - /err-code@2.0.3: - resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} - requiresBuild: true - optional: true - - /error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - dependencies: - is-arrayish: 0.2.1 - dev: false - - /esbuild@0.19.10: - resolution: {integrity: sha512-S1Y27QGt/snkNYrRcswgRFqZjaTG5a5xM3EQo97uNBnH505pdzSNe/HLBq1v0RO7iK/ngdbhJB6mDAp0OK+iUA==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/aix-ppc64': 0.19.10 - '@esbuild/android-arm': 0.19.10 - '@esbuild/android-arm64': 0.19.10 - '@esbuild/android-x64': 0.19.10 - '@esbuild/darwin-arm64': 0.19.10 - '@esbuild/darwin-x64': 0.19.10 - '@esbuild/freebsd-arm64': 0.19.10 - '@esbuild/freebsd-x64': 0.19.10 - '@esbuild/linux-arm': 0.19.10 - '@esbuild/linux-arm64': 0.19.10 - '@esbuild/linux-ia32': 0.19.10 - '@esbuild/linux-loong64': 0.19.10 - '@esbuild/linux-mips64el': 0.19.10 - '@esbuild/linux-ppc64': 0.19.10 - '@esbuild/linux-riscv64': 0.19.10 - '@esbuild/linux-s390x': 0.19.10 - '@esbuild/linux-x64': 0.19.10 - '@esbuild/netbsd-x64': 0.19.10 - '@esbuild/openbsd-x64': 0.19.10 - '@esbuild/sunos-x64': 0.19.10 - '@esbuild/win32-arm64': 0.19.10 - '@esbuild/win32-ia32': 0.19.10 - '@esbuild/win32-x64': 0.19.10 - dev: true - - /escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - dev: false - - /escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - dev: false - - /escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - dev: true - - /eslint-config-prettier@8.8.0(eslint@8.40.0): - resolution: {integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' - dependencies: - eslint: 8.40.0 - dev: true - - /eslint-plugin-prettier@4.2.1(eslint-config-prettier@8.8.0)(eslint@8.40.0)(prettier@2.8.8): - resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} - engines: {node: '>=12.0.0'} - peerDependencies: - eslint: '>=7.28.0' - eslint-config-prettier: '*' - prettier: '>=2.0.0' - peerDependenciesMeta: - eslint-config-prettier: - optional: true - dependencies: - eslint: 8.40.0 - eslint-config-prettier: 8.8.0(eslint@8.40.0) - prettier: 2.8.8 - prettier-linter-helpers: 1.0.0 - dev: true - - /eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} - dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 - dev: true - - /eslint-scope@7.2.0: - resolution: {integrity: sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - dev: true - - /eslint-visitor-keys@3.4.1: - resolution: {integrity: sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true - - /eslint@8.40.0: - resolution: {integrity: sha512-bvR+TsP9EHL3TqNtj9sCNJVAFK3fBN8Q7g5waghxyRsPLIMwL73XSKnZFK0hk/O2ANC+iAoq6PWMQ+IfBAJIiQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - hasBin: true - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.40.0) - '@eslint-community/regexpp': 4.5.1 - '@eslint/eslintrc': 2.0.3 - '@eslint/js': 8.40.0 - '@humanwhocodes/config-array': 0.11.8 - '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.4(supports-color@5.5.0) - doctrine: 3.0.0 - escape-string-regexp: 4.0.0 - eslint-scope: 7.2.0 - eslint-visitor-keys: 3.4.1 - espree: 9.5.2 - esquery: 1.5.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - find-up: 5.0.0 - glob-parent: 6.0.2 - globals: 13.20.0 - grapheme-splitter: 1.0.4 - ignore: 5.2.4 - import-fresh: 3.3.0 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-sdsl: 4.4.0 - js-yaml: 4.1.0 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.1 - strip-ansi: 6.0.1 - strip-json-comments: 3.1.1 - text-table: 0.2.0 - transitivePeerDependencies: - - supports-color - dev: true - - /espree@9.5.2: - resolution: {integrity: sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - acorn: 8.8.2 - acorn-jsx: 5.3.2(acorn@8.8.2) - eslint-visitor-keys: 3.4.1 - dev: true - - /esquery@1.5.0: - resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} - engines: {node: '>=0.10'} - dependencies: - estraverse: 5.3.0 - dev: true - - /esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} - dependencies: - estraverse: 5.3.0 - dev: true - - /estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} - dev: true - - /estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - dev: true - - /estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - dev: false - - /estree-walker@3.0.3: - resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} - dependencies: - '@types/estree': 1.0.1 - dev: false - - /esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - dev: true - - /event-target-shim@5.0.1: - resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} - engines: {node: '>=6'} - dev: false - - /eventemitter3@4.0.7: - resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} - dev: false - - /events@3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} - engines: {node: '>=0.8.x'} - requiresBuild: true - dev: false - - /eventsource-parser@1.0.0: - resolution: {integrity: sha512-9jgfSCa3dmEme2ES3mPByGXfgZ87VbP97tng1G2nWwWx6bV2nYxm2AWCrbQjXToSe+yYlqaZNtxffR9IeQr95g==} - engines: {node: '>=14.18'} - dev: false - - /execa@8.0.1: - resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} - engines: {node: '>=16.17'} - dependencies: - cross-spawn: 7.0.3 - get-stream: 8.0.1 - human-signals: 5.0.0 - is-stream: 3.0.0 - merge-stream: 2.0.0 - npm-run-path: 5.1.0 - onetime: 6.0.0 - signal-exit: 4.1.0 - strip-final-newline: 3.0.0 - dev: true - - /expand-template@2.0.3: - resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} - engines: {node: '>=6'} - - /expr-eval@2.0.2: - resolution: {integrity: sha512-4EMSHGOPSwAfBiibw3ndnP0AvjDWLsMvGOvWEZ2F96IGk0bIVdjQisOHxReSkE13mHcfbuCiXw+G4y0zv6N8Eg==} - dev: false - - /fast-check@3.15.0: - resolution: {integrity: sha512-iBz6c+EXL6+nI931x/sbZs1JYTZtLG6Cko0ouS8LRTikhDR7+wZk4TYzdRavlnByBs2G6+nuuJ7NYL9QplNt8Q==} - engines: {node: '>=8.0.0'} - dependencies: - pure-rand: 6.0.2 - dev: false - - /fast-content-type-parse@1.1.0: - resolution: {integrity: sha512-fBHHqSTFLVnR61C+gltJuE5GkVQMV0S2nqUO8TJ+5Z3qAKG8vAx4FKai1s5jq/inV1+sREynIWSuQ6HgoSXpDQ==} - dev: false - - /fast-decode-uri-component@1.0.1: - resolution: {integrity: sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==} - dev: false - - /fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - - /fast-diff@1.2.0: - resolution: {integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==} - dev: true - - /fast-glob@3.2.12: - resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} - engines: {node: '>=8.6.0'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.5 - dev: true - - /fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - dev: true - - /fast-json-stringify@5.9.1: - resolution: {integrity: sha512-NMrf+uU9UJnTzfxaumMDXK1NWqtPCfGoM9DYIE+ESlaTQqjlANFBy0VAbsm6FB88Mx0nceyi18zTo5kIEUlzxg==} - dependencies: - '@fastify/deepmerge': 1.3.0 - ajv: 8.12.0 - ajv-formats: 2.1.1(ajv@8.12.0) - fast-deep-equal: 3.1.3 - fast-uri: 2.2.0 - json-schema-ref-resolver: 1.0.1 - rfdc: 1.3.0 - dev: false - - /fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - dev: true - - /fast-querystring@1.1.1: - resolution: {integrity: sha512-qR2r+e3HvhEFmpdHMv//U8FnFlnYjaC6QKDuaXALDkw2kvHO8WDjxH+f/rHGR4Me4pnk8p9JAkRNTjYHAKRn2Q==} - dependencies: - fast-decode-uri-component: 1.0.1 - dev: false - - /fast-redact@3.1.2: - resolution: {integrity: sha512-+0em+Iya9fKGfEQGcd62Yv6onjBmmhV1uh86XVfOU8VwAe6kaFdQCWI9s0/Nnugx5Vd9tdbZ7e6gE2tR9dzXdw==} - engines: {node: '>=6'} - dev: false - - /fast-uri@2.2.0: - resolution: {integrity: sha512-cIusKBIt/R/oI6z/1nyfe2FvGKVTohVRfvkOhvx0nCEW+xf5NoCXjAHcWp93uOUBchzYcsvPlrapAdX1uW+YGg==} - dev: false - - /fast-xml-parser@4.2.5: - resolution: {integrity: sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==} - hasBin: true - dependencies: - strnum: 1.0.5 - dev: false - - /fastify-plugin@4.5.1: - resolution: {integrity: sha512-stRHYGeuqpEZTL1Ef0Ovr2ltazUT9g844X5z/zEBFLG8RYlpDiOCIG+ATvYEp+/zmc7sN29mcIMp8gvYplYPIQ==} - - /fastify@4.25.1: - resolution: {integrity: sha512-D8d0rv61TwqoAS7lom2tvIlgVMlx88lLsiwXyWNjA7CU/LC/mx/Gp2WAlC0S/ABq19U+y/aRvYFG5xLUu2aMrg==} - dependencies: - '@fastify/ajv-compiler': 3.5.0 - '@fastify/error': 3.4.1 - '@fastify/fast-json-stringify-compiler': 4.3.0 - abstract-logging: 2.0.1 - avvio: 8.2.1 - fast-content-type-parse: 1.1.0 - fast-json-stringify: 5.9.1 - find-my-way: 7.7.0 - light-my-request: 5.11.0 - pino: 8.17.1 - process-warning: 3.0.0 - proxy-addr: 2.0.7 - rfdc: 1.3.0 - secure-json-parse: 2.7.0 - semver: 7.5.4 - toad-cache: 3.4.1 - transitivePeerDependencies: - - supports-color - dev: false - - /fastq@1.15.0: - resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} - dependencies: - reusify: 1.0.4 - - /file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} - dependencies: - flat-cache: 3.0.4 - dev: true - - /file-uri-to-path@1.0.0: - resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} - - /fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} - engines: {node: '>=8'} - dependencies: - to-regex-range: 5.0.1 - dev: true - - /find-my-way@7.7.0: - resolution: {integrity: sha512-+SrHpvQ52Q6W9f3wJoJBbAQULJuNEEQwBvlvYwACDhBTLOTMiQ0HYWh4+vC3OivGP2ENcTI1oKlFA2OepJNjhQ==} - engines: {node: '>=14'} - dependencies: - fast-deep-equal: 3.1.3 - fast-querystring: 1.1.1 - safe-regex2: 2.0.0 - dev: false - - /find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} - dependencies: - locate-path: 6.0.0 - path-exists: 4.0.0 - dev: true - - /find-up@6.3.0: - resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - locate-path: 7.2.0 - path-exists: 5.0.0 - dev: false - - /flat-cache@3.0.4: - resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} - engines: {node: ^10.12.0 || >=12.0.0} - dependencies: - flatted: 3.2.7 - rimraf: 3.0.2 - dev: true - - /flat@5.0.2: - resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} - hasBin: true - dev: false - - /flatted@3.2.7: - resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} - dev: true - - /follow-redirects@1.15.2: - resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - dev: false - - /form-data-encoder@1.7.2: - resolution: {integrity: sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==} - dev: false - - /form-data@3.0.1: - resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==} - engines: {node: '>= 6'} - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.35 - dev: false - - /form-data@4.0.0: - resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} - engines: {node: '>= 6'} - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.35 - dev: false - - /formdata-node@4.4.1: - resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==} - engines: {node: '>= 12.20'} - dependencies: - node-domexception: 1.0.0 - web-streams-polyfill: 4.0.0-beta.3 - dev: false - - /forwarded@0.2.0: - resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} - engines: {node: '>= 0.6'} - dev: false - - /fs-constants@1.0.0: - resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} - - /fs-minipass@2.1.0: - resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} - engines: {node: '>= 8'} - dependencies: - minipass: 3.3.6 - - /fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - - /fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /function-bind@1.1.1: - resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} - dev: false - - /gauge@4.0.4: - resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - requiresBuild: true - dependencies: - aproba: 2.0.0 - color-support: 1.1.3 - console-control-strings: 1.1.0 - has-unicode: 2.0.1 - signal-exit: 3.0.7 - string-width: 4.2.3 - strip-ansi: 6.0.1 - wide-align: 1.1.5 - optional: true - - /get-func-name@2.0.2: - resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} - dev: true - - /get-stream@8.0.1: - resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} - engines: {node: '>=16'} - dev: true - - /github-from-package@0.0.0: - resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} - - /glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - dependencies: - is-glob: 4.0.3 - dev: true - - /glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} - dependencies: - is-glob: 4.0.3 - dev: true - - /glob-to-regexp@0.4.1: - resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - dev: false - - /glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - requiresBuild: true - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - - /glob@8.1.0: - resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} - engines: {node: '>=12'} - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 5.1.6 - once: 1.4.0 - dev: false - - /globals@13.20.0: - resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} - engines: {node: '>=8'} - dependencies: - type-fest: 0.20.2 - dev: true - - /globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} - dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.2.12 - ignore: 5.2.4 - merge2: 1.4.1 - slash: 3.0.0 - dev: true - - /graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - requiresBuild: true - optional: true - - /grapheme-splitter@1.0.4: - resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} - dev: true - - /has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} - - /has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - dev: true - - /has-unicode@2.0.1: - resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} - requiresBuild: true - optional: true - - /has@1.0.3: - resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} - engines: {node: '>= 0.4.0'} - dependencies: - function-bind: 1.1.1 - dev: false - - /hosted-git-info@4.1.0: - resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} - engines: {node: '>=10'} - dependencies: - lru-cache: 6.0.0 - dev: false - - /http-cache-semantics@4.1.1: - resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} - requiresBuild: true - optional: true - - /http-errors@2.0.0: - resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} - engines: {node: '>= 0.8'} - dependencies: - depd: 2.0.0 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: 2.0.1 - toidentifier: 1.0.1 - dev: false - - /http-proxy-agent@4.0.1: - resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} - engines: {node: '>= 6'} - requiresBuild: true - dependencies: - '@tootallnate/once': 1.1.2 - agent-base: 6.0.2 - debug: 4.3.4(supports-color@5.5.0) - transitivePeerDependencies: - - supports-color - optional: true - - /https-proxy-agent@5.0.1: - resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} - engines: {node: '>= 6'} - requiresBuild: true - dependencies: - agent-base: 6.0.2 - debug: 4.3.4(supports-color@5.5.0) - transitivePeerDependencies: - - supports-color - optional: true - - /human-signals@5.0.0: - resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} - engines: {node: '>=16.17.0'} - dev: true - - /humanize-ms@1.2.1: - resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} - dependencies: - ms: 2.1.3 - - /iconv-lite@0.6.3: - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} - engines: {node: '>=0.10.0'} - requiresBuild: true - dependencies: - safer-buffer: 2.1.2 - optional: true - - /ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - requiresBuild: true - - /ignore-by-default@1.0.1: - resolution: {integrity: sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==} - dev: true - - /ignore@5.2.4: - resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} - engines: {node: '>= 4'} - dev: true - - /import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - dev: true - - /imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - - /indent-string@4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} - engines: {node: '>=8'} - requiresBuild: true - optional: true - - /infer-owner@1.0.4: - resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} - requiresBuild: true - optional: true - - /inflection@1.13.4: - resolution: {integrity: sha512-6I/HUDeYFfuNCVS3td055BaXBwKYuzw7K3ExVMStBowKo9oOAMJIXIHvdyR3iboTCp1b+1i5DSkIZTcwIktuDw==} - engines: {'0': node >= 0.4.0} - dev: false - - /inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - - /inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - - /ini@1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - - /ip@2.0.0: - resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==} - requiresBuild: true - optional: true - - /ipaddr.js@1.9.1: - resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} - engines: {node: '>= 0.10'} - dev: false - - /is-any-array@2.0.1: - resolution: {integrity: sha512-UtilS7hLRu++wb/WBAw9bNuP1Eg04Ivn1vERJck8zJthEvXCBEBpGR/33u/xLKWEQf95803oalHrVDptcAvFdQ==} - dev: false - - /is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - dev: false - - /is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - dependencies: - binary-extensions: 2.2.0 - dev: true - - /is-buffer@1.1.6: - resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} - dev: false - - /is-core-module@2.12.0: - resolution: {integrity: sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==} - dependencies: - has: 1.0.3 - dev: false - - /is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - dev: true - - /is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - - /is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - dependencies: - is-extglob: 2.1.1 - dev: true - - /is-lambda@1.0.1: - resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} - requiresBuild: true - optional: true - - /is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - dev: true - - /is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - dev: true - - /is-reference@3.0.1: - resolution: {integrity: sha512-baJJdQLiYaJdvFbJqXrcGv3WU3QCzBlUcI5QhbesIm6/xPsvmO+2CDoi/GMOFBQEQm+PXkwOPrp9KK5ozZsp2w==} - dependencies: - '@types/estree': 1.0.1 - dev: false - - /is-stream@3.0.0: - resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true - - /isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - - /isomorphic-fetch@3.0.0: - resolution: {integrity: sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==} - dependencies: - node-fetch: 2.6.12 - whatwg-fetch: 3.6.17 - transitivePeerDependencies: - - encoding - dev: false - - /js-cookie@3.0.1: - resolution: {integrity: sha512-+0rgsUXZu4ncpPxRL+lNEptWMOWl9etvPHc/koSRp6MPwpRYAhmk0dUG00J4bxVV3r9uUzfo24wW0knS07SKSw==} - engines: {node: '>=12'} - dev: false - - /js-sdsl@4.4.0: - resolution: {integrity: sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==} - dev: true - - /js-tiktoken@1.0.7: - resolution: {integrity: sha512-biba8u/clw7iesNEWLOLwrNGoBP2lA+hTaBLs/D45pJdUPFXyxD6nhcDVtADChghv4GgyAiMKYMiRx7x6h7Biw==} - dependencies: - base64-js: 1.5.1 - dev: false - - /js-tiktoken@1.0.8: - resolution: {integrity: sha512-r7XK3E9/I+SOrbAGqb39pyO/rHAS1diAOSRAvaaLfHgXjkUSK9AiSd+r84Vn2f/GvXJYRAxKj8NHrUvqlaH5qg==} - dependencies: - base64-js: 1.5.1 - dev: false - - /js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - dev: false - - /js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true - dependencies: - argparse: 2.0.1 - - /json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - dev: false - - /json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - dev: false - - /json-schema-ref-resolver@1.0.1: - resolution: {integrity: sha512-EJAj1pgHc1hxF6vo2Z3s69fMjO1INq6eGHXZ8Z6wCQeldCuwxGK9Sxf4/cScGn3FZubCVUehfWtcDM/PLteCQw==} - dependencies: - fast-deep-equal: 3.1.3 - dev: false - - /json-schema-resolver@2.0.0: - resolution: {integrity: sha512-pJ4XLQP4Q9HTxl6RVDLJ8Cyh1uitSs0CzDBAz1uoJ4sRD/Bk7cFSXL1FUXDW3zJ7YnfliJx6eu8Jn283bpZ4Yg==} - engines: {node: '>=10'} - dependencies: - debug: 4.3.4(supports-color@5.5.0) - rfdc: 1.3.0 - uri-js: 4.4.1 - transitivePeerDependencies: - - supports-color - dev: false - - /json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - dev: true - - /json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - dev: false - - /json-schema-typed@8.0.1: - resolution: {integrity: sha512-XQmWYj2Sm4kn4WeTYvmpKEbyPsL7nBsb647c7pMe6l02/yx2+Jfc4dT6UZkEXnIUb5LhD55r2HPsJ1milQ4rDg==} - dev: false - - /json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - dev: true - - /jsonc-parser@3.2.0: - resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} - dev: true - - /jsonpointer@5.0.1: - resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} - engines: {node: '>=0.10.0'} - dev: false - - /keygrip@1.1.0: - resolution: {integrity: sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==} - engines: {node: '>= 0.6'} - dependencies: - tsscmp: 1.0.6 - dev: false - - /keyv@4.5.2: - resolution: {integrity: sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==} - dependencies: - json-buffer: 3.0.1 - dev: false - - /langchain@0.0.209(@aws-sdk/client-s3@3.478.0)(axios@1.6.2)(chromadb@1.7.2)(pg@8.11.3)(replicate@0.25.2): - resolution: {integrity: sha512-5+ixk2z6XP7NiPqAinrolwd4LKA4b+gWDiFHGaMnk3AHeOnquUHEEqDXghuQrMpr93p8egwO9AgmpKpAIvznFg==} - engines: {node: '>=18'} - peerDependencies: - '@aws-sdk/client-s3': ^3.310.0 - '@aws-sdk/client-sagemaker-runtime': ^3.310.0 - '@aws-sdk/client-sfn': ^3.310.0 - '@aws-sdk/credential-provider-node': ^3.388.0 - '@azure/storage-blob': ^12.15.0 - '@gomomento/sdk': ^1.51.1 - '@gomomento/sdk-core': ^1.51.1 - '@gomomento/sdk-web': ^1.51.1 - '@google-ai/generativelanguage': ^0.2.1 - '@google-cloud/storage': ^6.10.1 - '@notionhq/client': ^2.2.10 - '@pinecone-database/pinecone': ^1.1.0 - '@supabase/supabase-js': ^2.10.0 - '@vercel/kv': ^0.2.3 - '@xata.io/client': ^0.28.0 - apify-client: ^2.7.1 - assemblyai: ^4.0.0 - axios: '*' - cheerio: ^1.0.0-rc.12 - chromadb: '*' - convex: ^1.3.1 - d3-dsv: ^2.0.0 - epub2: ^3.0.1 - faiss-node: '*' - fast-xml-parser: ^4.2.7 - google-auth-library: ^8.9.0 - googleapis: ^126.0.1 - html-to-text: ^9.0.5 - ignore: ^5.2.0 - ioredis: ^5.3.2 - jsdom: '*' - mammoth: '*' - mongodb: ^5.2.0 - node-llama-cpp: '*' - notion-to-md: ^3.1.0 - officeparser: ^4.0.4 - pdf-parse: 1.1.1 - peggy: ^3.0.2 - playwright: ^1.32.1 - puppeteer: ^19.7.2 - pyodide: ^0.24.1 - redis: ^4.6.4 - sonix-speech-recognition: ^2.1.1 - srt-parser-2: ^1.2.2 - typeorm: ^0.3.12 - vectordb: ^0.1.4 - weaviate-ts-client: ^1.4.0 - web-auth-library: ^1.0.3 - ws: ^8.14.2 - youtube-transcript: ^1.0.6 - youtubei.js: ^5.8.0 - peerDependenciesMeta: - '@aws-sdk/client-s3': - optional: true - '@aws-sdk/client-sagemaker-runtime': - optional: true - '@aws-sdk/client-sfn': - optional: true - '@aws-sdk/credential-provider-node': - optional: true - '@azure/storage-blob': - optional: true - '@gomomento/sdk': - optional: true - '@gomomento/sdk-core': - optional: true - '@gomomento/sdk-web': - optional: true - '@google-ai/generativelanguage': - optional: true - '@google-cloud/storage': - optional: true - '@notionhq/client': - optional: true - '@pinecone-database/pinecone': - optional: true - '@supabase/supabase-js': - optional: true - '@vercel/kv': - optional: true - '@xata.io/client': - optional: true - apify-client: - optional: true - assemblyai: - optional: true - axios: - optional: true - cheerio: - optional: true - chromadb: - optional: true - convex: - optional: true - d3-dsv: - optional: true - epub2: - optional: true - faiss-node: - optional: true - fast-xml-parser: - optional: true - google-auth-library: - optional: true - googleapis: - optional: true - html-to-text: - optional: true - ignore: - optional: true - ioredis: - optional: true - jsdom: - optional: true - mammoth: - optional: true - mongodb: - optional: true - node-llama-cpp: - optional: true - notion-to-md: - optional: true - officeparser: - optional: true - pdf-parse: - optional: true - peggy: - optional: true - playwright: - optional: true - puppeteer: - optional: true - pyodide: - optional: true - redis: - optional: true - sonix-speech-recognition: - optional: true - srt-parser-2: - optional: true - typeorm: - optional: true - vectordb: - optional: true - weaviate-ts-client: - optional: true - web-auth-library: - optional: true - ws: - optional: true - youtube-transcript: - optional: true - youtubei.js: - optional: true - dependencies: - '@anthropic-ai/sdk': 0.9.1 - '@aws-sdk/client-s3': 3.478.0 - '@langchain/community': 0.0.7(chromadb@1.7.2)(pg@8.11.3)(replicate@0.25.2) - '@langchain/core': 0.1.2 - '@langchain/openai': 0.0.6 - axios: 1.6.2 - binary-extensions: 2.2.0 - chromadb: 1.7.2(openai@4.23.0) - expr-eval: 2.0.2 - js-tiktoken: 1.0.7 - js-yaml: 4.1.0 - jsonpointer: 5.0.1 - langchainhub: 0.0.6 - langsmith: 0.0.52 - ml-distance: 4.0.1 - openapi-types: 12.1.3 - p-retry: 4.6.2 - uuid: 9.0.0 - yaml: 2.3.1 - zod: 3.22.4 - zod-to-json-schema: 3.20.3(zod@3.22.4) - transitivePeerDependencies: - - '@aws-crypto/sha256-js' - - '@aws-sdk/client-bedrock-runtime' - - '@aws-sdk/client-dynamodb' - - '@aws-sdk/client-kendra' - - '@aws-sdk/client-lambda' - - '@clickhouse/client' - - '@cloudflare/ai' - - '@elastic/elasticsearch' - - '@getmetal/metal-sdk' - - '@getzep/zep-js' - - '@gradientai/nodejs-sdk' - - '@huggingface/inference' - - '@mozilla/readability' - - '@opensearch-project/opensearch' - - '@planetscale/database' - - '@qdrant/js-client-rest' - - '@raycast/api' - - '@rockset/client' - - '@smithy/eventstream-codec' - - '@smithy/protocol-http' - - '@smithy/signature-v4' - - '@smithy/util-utf8' - - '@supabase/postgrest-js' - - '@tensorflow-models/universal-sentence-encoder' - - '@tensorflow/tfjs-converter' - - '@tensorflow/tfjs-core' - - '@upstash/redis' - - '@vercel/postgres' - - '@writerai/writer-sdk' - - '@xenova/transformers' - - '@zilliz/milvus2-sdk-node' - - cassandra-driver - - closevector-common - - closevector-node - - closevector-web - - cohere-ai - - discord.js - - encoding - - firebase-admin - - hnswlib-node - - llmonitor - - lodash - - mysql2 - - neo4j-driver - - pg - - pg-copy-streams - - pickleparser - - portkey-ai - - replicate - - typesense - - usearch - - voy-search - dev: false - - /langchainhub@0.0.6: - resolution: {integrity: sha512-SW6105T+YP1cTe0yMf//7kyshCgvCTyFBMTgH2H3s9rTAR4e+78DA/BBrUL/Mt4Q5eMWui7iGuAYb3pgGsdQ9w==} - dev: false - - /langsmith@0.0.52: - resolution: {integrity: sha512-xfEi2gpXvPgCBR4x3MqFHXmAJ5sFpfrcsb2QduXj2gylk6V+8CG5AONgvo0Y1Wx/nue+6EZjmcDjjH+aDi8NIA==} - hasBin: true - dependencies: - '@types/uuid': 9.0.2 - commander: 10.0.1 - p-queue: 6.6.2 - p-retry: 4.6.2 - uuid: 9.0.0 - dev: false - - /levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 - dev: true - - /light-my-request@5.11.0: - resolution: {integrity: sha512-qkFCeloXCOMpmEdZ/MV91P8AT4fjwFXWaAFz3lUeStM8RcoM1ks4J/F8r1b3r6y/H4u3ACEJ1T+Gv5bopj7oDA==} - dependencies: - cookie: 0.5.0 - process-warning: 2.2.0 - set-cookie-parser: 2.6.0 - dev: false - - /lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - dev: false - - /local-pkg@0.5.0: - resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} - engines: {node: '>=14'} - dependencies: - mlly: 1.4.2 - pkg-types: 1.0.3 - dev: true - - /locate-character@3.0.0: - resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} - dev: false - - /locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} - dependencies: - p-locate: 5.0.0 - dev: true - - /locate-path@7.2.0: - resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - p-locate: 6.0.0 - dev: false - - /lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - dev: true - - /lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - dev: false - - /loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true - dependencies: - js-tokens: 4.0.0 - dev: false - - /loupe@2.3.7: - resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} - dependencies: - get-func-name: 2.0.2 - dev: true - - /lower-case@2.0.2: - resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} - dependencies: - tslib: 2.6.2 - dev: false - - /lru-cache@10.1.0: - resolution: {integrity: sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==} - engines: {node: 14 || >=16.14} - dev: false - - /lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - dependencies: - yallist: 4.0.0 - - /magic-string@0.30.5: - resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} - engines: {node: '>=12'} - dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 - - /make-error@1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - dev: true - - /make-fetch-happen@9.1.0: - resolution: {integrity: sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==} - engines: {node: '>= 10'} - requiresBuild: true - dependencies: - agentkeepalive: 4.5.0 - cacache: 15.3.0 - http-cache-semantics: 4.1.1 - http-proxy-agent: 4.0.1 - https-proxy-agent: 5.0.1 - is-lambda: 1.0.1 - lru-cache: 6.0.0 - minipass: 3.3.6 - minipass-collect: 1.0.2 - minipass-fetch: 1.4.1 - minipass-flush: 1.0.5 - minipass-pipeline: 1.2.4 - negotiator: 0.6.3 - promise-retry: 2.0.1 - socks-proxy-agent: 6.2.1 - ssri: 8.0.1 - transitivePeerDependencies: - - bluebird - - supports-color - optional: true - - /map-obj@4.3.0: - resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} - engines: {node: '>=8'} - dev: false - - /md5@2.3.0: - resolution: {integrity: sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==} - dependencies: - charenc: 0.0.2 - crypt: 0.0.2 - is-buffer: 1.1.6 - dev: false - - /mdn-data@2.0.30: - resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} - dev: false - - /merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - dev: true - - /merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - dev: true - - /micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} - engines: {node: '>=8.6'} - dependencies: - braces: 3.0.2 - picomatch: 2.3.1 - dev: true - - /mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} - dev: false - - /mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} - dependencies: - mime-db: 1.52.0 - dev: false - - /mime@3.0.0: - resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} - engines: {node: '>=10.0.0'} - hasBin: true - dev: false - - /mimic-fn@4.0.0: - resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} - engines: {node: '>=12'} - - /mimic-response@3.1.0: - resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} - engines: {node: '>=10'} - - /minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - dependencies: - brace-expansion: 1.1.11 - - /minimatch@5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} - engines: {node: '>=10'} - dependencies: - brace-expansion: 2.0.1 - dev: false - - /minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - - /minipass-collect@1.0.2: - resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==} - engines: {node: '>= 8'} - requiresBuild: true - dependencies: - minipass: 3.3.6 - optional: true - - /minipass-fetch@1.4.1: - resolution: {integrity: sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==} - engines: {node: '>=8'} - requiresBuild: true - dependencies: - minipass: 3.3.6 - minipass-sized: 1.0.3 - minizlib: 2.1.2 - optionalDependencies: - encoding: 0.1.13 - optional: true - - /minipass-flush@1.0.5: - resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} - engines: {node: '>= 8'} - requiresBuild: true - dependencies: - minipass: 3.3.6 - optional: true - - /minipass-pipeline@1.2.4: - resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} - engines: {node: '>=8'} - requiresBuild: true - dependencies: - minipass: 3.3.6 - optional: true - - /minipass-sized@1.0.3: - resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} - engines: {node: '>=8'} - requiresBuild: true - dependencies: - minipass: 3.3.6 - optional: true - - /minipass@3.3.6: - resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} - engines: {node: '>=8'} - dependencies: - yallist: 4.0.0 - - /minipass@4.2.8: - resolution: {integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==} - engines: {node: '>=8'} - dev: false - - /minipass@5.0.0: - resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} - engines: {node: '>=8'} - - /minizlib@2.1.2: - resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} - engines: {node: '>= 8'} - dependencies: - minipass: 3.3.6 - yallist: 4.0.0 - - /mkdirp-classic@0.5.3: - resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} - - /mkdirp@1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} - engines: {node: '>=10'} - hasBin: true - - /ml-array-mean@1.1.6: - resolution: {integrity: sha512-MIdf7Zc8HznwIisyiJGRH9tRigg3Yf4FldW8DxKxpCCv/g5CafTw0RRu51nojVEOXuCQC7DRVVu5c7XXO/5joQ==} - dependencies: - ml-array-sum: 1.1.6 - dev: false - - /ml-array-sum@1.1.6: - resolution: {integrity: sha512-29mAh2GwH7ZmiRnup4UyibQZB9+ZLyMShvt4cH4eTK+cL2oEMIZFnSyB3SS8MlsTh6q/w/yh48KmqLxmovN4Dw==} - dependencies: - is-any-array: 2.0.1 - dev: false - - /ml-distance-euclidean@2.0.0: - resolution: {integrity: sha512-yC9/2o8QF0A3m/0IXqCTXCzz2pNEzvmcE/9HFKOZGnTjatvBbsn4lWYJkxENkA4Ug2fnYl7PXQxnPi21sgMy/Q==} - dev: false - - /ml-distance@4.0.1: - resolution: {integrity: sha512-feZ5ziXs01zhyFUUUeZV5hwc0f5JW0Sh0ckU1koZe/wdVkJdGxcP06KNQuF0WBTj8FttQUzcvQcpcrOp/XrlEw==} - dependencies: - ml-array-mean: 1.1.6 - ml-distance-euclidean: 2.0.0 - ml-tree-similarity: 1.0.0 - dev: false - - /ml-tree-similarity@1.0.0: - resolution: {integrity: sha512-XJUyYqjSuUQkNQHMscr6tcjldsOoAekxADTplt40QKfwW6nd++1wHWV9AArl0Zvw/TIHgNaZZNvr8QGvE8wLRg==} - dependencies: - binary-search: 1.3.6 - num-sort: 2.1.0 - dev: false - - /mlly@1.4.2: - resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==} - dependencies: - acorn: 8.10.0 - pathe: 1.1.1 - pkg-types: 1.0.3 - ufo: 1.3.2 - dev: true - - /mnemonist@0.39.6: - resolution: {integrity: sha512-A/0v5Z59y63US00cRSLiloEIw3t5G+MiKz4BhX21FI+YBJXBOGW0ohFxTxO08dsOYlzxo87T7vGfZKYp2bcAWA==} - dependencies: - obliterator: 2.0.4 - dev: false - - /moment-timezone@0.5.45: - resolution: {integrity: sha512-HIWmqA86KcmCAhnMAN0wuDOARV/525R2+lOLotuGFzn4HO+FH+/645z2wx0Dt3iDv6/p61SIvKnDstISainhLQ==} - dependencies: - moment: 2.30.1 - dev: false - - /moment@2.30.1: - resolution: {integrity: sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==} - dev: false - - /ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - - /ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - - /nanoid@3.3.6: - resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - dev: false - - /nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - - /napi-build-utils@1.0.2: - resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} - - /natural-compare-lite@1.4.0: - resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} - dev: true - - /natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - dev: true - - /negotiator@0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} - engines: {node: '>= 0.6'} - requiresBuild: true - optional: true - - /no-case@3.0.4: - resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} - dependencies: - lower-case: 2.0.2 - tslib: 2.6.2 - dev: false - - /node-abi@3.54.0: - resolution: {integrity: sha512-p7eGEiQil0YUV3ItH4/tBb781L5impVmmx2E9FRKF7d18XXzp4PGT2tdYMFY6wQqgxD0IwNZOiSJ0/K0fSi/OA==} - engines: {node: '>=10'} - dependencies: - semver: 7.5.4 - - /node-addon-api@7.1.0: - resolution: {integrity: sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==} - engines: {node: ^16 || ^18 || >= 20} - - /node-domexception@1.0.0: - resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} - engines: {node: '>=10.5.0'} - dev: false - - /node-fetch-native@1.0.1: - resolution: {integrity: sha512-VzW+TAk2wE4X9maiKMlT+GsPU4OMmR1U9CrHSmd3DFLn2IcZ9VJ6M6BBugGfYUnPCLSYxXdZy17M0BEJyhUTwg==} - dev: false - - /node-fetch@2.6.12: - resolution: {integrity: sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - dependencies: - whatwg-url: 5.0.0 - dev: false - - /node-gyp@8.4.1: - resolution: {integrity: sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==} - engines: {node: '>= 10.12.0'} - hasBin: true - requiresBuild: true - dependencies: - env-paths: 2.2.1 - glob: 7.2.3 - graceful-fs: 4.2.11 - make-fetch-happen: 9.1.0 - nopt: 5.0.0 - npmlog: 6.0.2 - rimraf: 3.0.2 - semver: 7.5.4 - tar: 6.2.0 - which: 2.0.2 - transitivePeerDependencies: - - bluebird - - supports-color - optional: true - - /nodemon@3.0.2: - resolution: {integrity: sha512-9qIN2LNTrEzpOPBaWHTm4Asy1LxXLSickZStAQ4IZe7zsoIpD/A7LWxhZV3t4Zu352uBcqVnRsDXSMR2Sc3lTA==} - engines: {node: '>=10'} - hasBin: true - dependencies: - chokidar: 3.5.3 - debug: 4.3.4(supports-color@5.5.0) - ignore-by-default: 1.0.1 - minimatch: 3.1.2 - pstree.remy: 1.1.8 - semver: 7.5.4 - simple-update-notifier: 2.0.0 - supports-color: 5.5.0 - touch: 3.1.0 - undefsafe: 2.0.5 - dev: true - - /nopt@1.0.10: - resolution: {integrity: sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==} - hasBin: true - dependencies: - abbrev: 1.1.1 - dev: true - - /nopt@5.0.0: - resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} - engines: {node: '>=6'} - hasBin: true - requiresBuild: true - dependencies: - abbrev: 1.1.1 - optional: true - - /normalize-package-data@3.0.3: - resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} - engines: {node: '>=10'} - dependencies: - hosted-git-info: 4.1.0 - is-core-module: 2.12.0 - semver: 7.5.4 - validate-npm-package-license: 3.0.4 - dev: false - - /normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - dev: true - - /npm-run-path@5.1.0: - resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - path-key: 4.0.0 - dev: true - - /npmlog@6.0.2: - resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - requiresBuild: true - dependencies: - are-we-there-yet: 3.0.1 - console-control-strings: 1.1.0 - gauge: 4.0.4 - set-blocking: 2.0.0 - optional: true - - /num-sort@2.1.0: - resolution: {integrity: sha512-1MQz1Ed8z2yckoBeSfkQHHO9K1yDRxxtotKSJ9yvcTUUxSvfvzEq5GwBrjjHEpMlq/k5gvXdmJ1SbYxWtpNoVg==} - engines: {node: '>=8'} - dev: false - - /obliterator@2.0.4: - resolution: {integrity: sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ==} - dev: false - - /on-exit-leak-free@2.1.0: - resolution: {integrity: sha512-VuCaZZAjReZ3vUwgOB8LxAosIurDiAW0s13rI1YwmaP++jvcxP77AWoQvenZebpCA2m8WC1/EosPYPMjnRAp/w==} - dev: false - - /once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - dependencies: - wrappy: 1.0.2 - - /onetime@6.0.0: - resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} - engines: {node: '>=12'} - dependencies: - mimic-fn: 4.0.0 - dev: true - - /openai-edge@1.2.2: - resolution: {integrity: sha512-C3/Ao9Hkx5uBPv9YFBpX/x59XMPgPUU4dyGg/0J2sOJ7O9D98kD+lfdOc7v/60oYo5xzMGct80uFkYLH+X2qgw==} - engines: {node: '>=18'} - dev: false - - /openai@4.23.0: - resolution: {integrity: sha512-ey2CXh1OTcTUa0AWZWuTpgA9t5GuAG3DVU1MofCRUI7fQJij8XJ3Sr0VtgxoAE69C9wbHBMCux8Z/IQZfSwHiA==} - hasBin: true - dependencies: - '@types/node': 18.16.7 - '@types/node-fetch': 2.6.4 - abort-controller: 3.0.0 - agentkeepalive: 4.5.0 - digest-fetch: 1.3.0 - form-data-encoder: 1.7.2 - formdata-node: 4.4.1 - node-fetch: 2.6.12 - web-streams-polyfill: 3.2.1 - transitivePeerDependencies: - - encoding - dev: false - - /openapi-types@12.1.3: - resolution: {integrity: sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==} - dev: false - - /optionator@0.9.1: - resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} - engines: {node: '>= 0.8.0'} - dependencies: - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.4.1 - prelude-ls: 1.2.1 - type-check: 0.4.0 - word-wrap: 1.2.3 - dev: true - - /p-finally@1.0.0: - resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} - engines: {node: '>=4'} - dev: false - - /p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} - dependencies: - yocto-queue: 0.1.0 - - /p-limit@4.0.0: - resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - yocto-queue: 1.0.0 - dev: false - - /p-limit@5.0.0: - resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} - engines: {node: '>=18'} - dependencies: - yocto-queue: 1.0.0 - dev: true - - /p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} - dependencies: - p-limit: 3.1.0 - dev: true - - /p-locate@6.0.0: - resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - p-limit: 4.0.0 - dev: false - - /p-map@4.0.0: - resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} - engines: {node: '>=10'} - requiresBuild: true - dependencies: - aggregate-error: 3.1.0 - optional: true - - /p-queue@6.6.2: - resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} - engines: {node: '>=8'} - dependencies: - eventemitter3: 4.0.7 - p-timeout: 3.2.0 - dev: false - - /p-retry@4.6.2: - resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} - engines: {node: '>=8'} - dependencies: - '@types/retry': 0.12.0 - retry: 0.13.1 - dev: false - - /p-timeout@3.2.0: - resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} - engines: {node: '>=8'} - dependencies: - p-finally: 1.0.0 - dev: false - - /p-timeout@6.1.1: - resolution: {integrity: sha512-yqz2Wi4fiFRpMmK0L2pGAU49naSUaP23fFIQL2Y6YT+qDGPoFwpvgQM/wzc6F8JoenUkIlAFa4Ql7NguXBxI7w==} - engines: {node: '>=14.16'} - dev: false - - /packet-reader@1.0.0: - resolution: {integrity: sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==} - dev: false - - /parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} - dependencies: - callsites: 3.1.0 - dev: true - - /parse-github-url@1.0.2: - resolution: {integrity: sha512-kgBf6avCbO3Cn6+RnzRGLkUsv4ZVqv/VfAYkRsyBcgkshNvVBkRn1FEZcW0Jb+npXQWm2vHPnnOqFteZxRRGNw==} - engines: {node: '>=0.10.0'} - hasBin: true - dev: false - - /parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} - dependencies: - '@babel/code-frame': 7.22.13 - error-ex: 1.3.2 - json-parse-even-better-errors: 2.3.1 - lines-and-columns: 1.2.4 - dev: false - - /path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - dev: true - - /path-exists@5.0.0: - resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: false - - /path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - requiresBuild: true - - /path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - dev: true - - /path-key@4.0.0: - resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} - engines: {node: '>=12'} - dev: true - - /path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - dev: true - - /pathe@1.1.1: - resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==} - dev: true - - /pathval@1.1.1: - resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} - dev: true - - /periscopic@3.1.0: - resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} - dependencies: - '@types/estree': 1.0.1 - estree-walker: 3.0.3 - is-reference: 3.0.1 - dev: false - - /pg-cloudflare@1.1.1: - resolution: {integrity: sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==} - requiresBuild: true - dev: false - optional: true - - /pg-connection-string@2.6.2: - resolution: {integrity: sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==} - dev: false - - /pg-int8@1.0.1: - resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} - engines: {node: '>=4.0.0'} - dev: false - - /pg-pool@3.6.1(pg@8.11.3): - resolution: {integrity: sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og==} - peerDependencies: - pg: '>=8.0' - dependencies: - pg: 8.11.3 - dev: false - - /pg-protocol@1.6.0: - resolution: {integrity: sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==} - dev: false - - /pg-types@2.2.0: - resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==} - engines: {node: '>=4'} - dependencies: - pg-int8: 1.0.1 - postgres-array: 2.0.0 - postgres-bytea: 1.0.0 - postgres-date: 1.0.7 - postgres-interval: 1.2.0 - dev: false - - /pg@8.11.3: - resolution: {integrity: sha512-+9iuvG8QfaaUrrph+kpF24cXkH1YOOUeArRNYIxq1viYHZagBxrTno7cecY1Fa44tJeZvaoG+Djpkc3JwehN5g==} - engines: {node: '>= 8.0.0'} - peerDependencies: - pg-native: '>=3.0.1' - peerDependenciesMeta: - pg-native: - optional: true - dependencies: - buffer-writer: 2.0.0 - packet-reader: 1.0.0 - pg-connection-string: 2.6.2 - pg-pool: 3.6.1(pg@8.11.3) - pg-protocol: 1.6.0 - pg-types: 2.2.0 - pgpass: 1.0.5 - optionalDependencies: - pg-cloudflare: 1.1.1 - dev: false - - /pgpass@1.0.5: - resolution: {integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==} - dependencies: - split2: 4.2.0 - dev: false - - /picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - - /picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - dev: true - - /pino-abstract-transport@1.1.0: - resolution: {integrity: sha512-lsleG3/2a/JIWUtf9Q5gUNErBqwIu1tUKTT3dUzaf5DySw9ra1wcqKjJjLX1VTY64Wk1eEOYsVGSaGfCK85ekA==} - dependencies: - readable-stream: 4.4.0 - split2: 4.2.0 - dev: false - - /pino-std-serializers@6.2.1: - resolution: {integrity: sha512-wHuWB+CvSVb2XqXM0W/WOYUkVSPbiJb9S5fNB7TBhd8s892Xq910bRxwHtC4l71hgztObTjXL6ZheZXFjhDrDQ==} - dev: false - - /pino@8.17.1: - resolution: {integrity: sha512-YoN7/NJgnsJ+fkADZqjhRt96iepWBndQHeClmSBH0sQWCb8zGD74t00SK4eOtKFi/f8TUmQnfmgglEhd2kI1RQ==} - hasBin: true - dependencies: - atomic-sleep: 1.0.0 - fast-redact: 3.1.2 - on-exit-leak-free: 2.1.0 - pino-abstract-transport: 1.1.0 - pino-std-serializers: 6.2.1 - process-warning: 2.2.0 - quick-format-unescaped: 4.0.4 - real-require: 0.2.0 - safe-stable-stringify: 2.4.3 - sonic-boom: 3.7.0 - thread-stream: 2.3.0 - dev: false - - /pkg-types@1.0.3: - resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} - dependencies: - jsonc-parser: 3.2.0 - mlly: 1.4.2 - pathe: 1.1.1 - dev: true - - /postcss@8.4.32: - resolution: {integrity: sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==} - engines: {node: ^10 || ^12 || >=14} - dependencies: - nanoid: 3.3.7 - picocolors: 1.0.0 - source-map-js: 1.0.2 - - /postgres-array@2.0.0: - resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} - engines: {node: '>=4'} - dev: false - - /postgres-bytea@1.0.0: - resolution: {integrity: sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==} - engines: {node: '>=0.10.0'} - dev: false - - /postgres-date@1.0.7: - resolution: {integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==} - engines: {node: '>=0.10.0'} - dev: false - - /postgres-interval@1.2.0: - resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} - engines: {node: '>=0.10.0'} - dependencies: - xtend: 4.0.2 - dev: false - - /prebuild-install@7.1.1: - resolution: {integrity: sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==} - engines: {node: '>=10'} - hasBin: true - dependencies: - detect-libc: 2.0.2 - expand-template: 2.0.3 - github-from-package: 0.0.0 - minimist: 1.2.8 - mkdirp-classic: 0.5.3 - napi-build-utils: 1.0.2 - node-abi: 3.54.0 - pump: 3.0.0 - rc: 1.2.8 - simple-get: 4.0.1 - tar-fs: 2.1.1 - tunnel-agent: 0.6.0 - - /prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - dev: true - - /prettier-linter-helpers@1.0.0: - resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} - engines: {node: '>=6.0.0'} - dependencies: - fast-diff: 1.2.0 - dev: true - - /prettier@2.8.8: - resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} - engines: {node: '>=10.13.0'} - hasBin: true - dev: true - - /pretty-format@29.7.0: - resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/schemas': 29.6.3 - ansi-styles: 5.2.0 - react-is: 18.2.0 - dev: true - - /process-warning@2.2.0: - resolution: {integrity: sha512-/1WZ8+VQjR6avWOgHeEPd7SDQmFQ1B5mC1eRXsCm5TarlNmx/wCsa5GEaxGm05BORRtyG/Ex/3xq3TuRvq57qg==} - dev: false - - /process-warning@3.0.0: - resolution: {integrity: sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==} - dev: false - - /process@0.11.10: - resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} - engines: {node: '>= 0.6.0'} - requiresBuild: true - dev: false - - /promise-inflight@1.0.1: - resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} - requiresBuild: true - peerDependencies: - bluebird: '*' - peerDependenciesMeta: - bluebird: - optional: true - optional: true - - /promise-retry@2.0.1: - resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} - engines: {node: '>=10'} - requiresBuild: true - dependencies: - err-code: 2.0.3 - retry: 0.12.0 - optional: true - - /proxy-addr@2.0.7: - resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} - engines: {node: '>= 0.10'} - dependencies: - forwarded: 0.2.0 - ipaddr.js: 1.9.1 - dev: false - - /proxy-from-env@1.1.0: - resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} - dev: false - - /pstree.remy@1.1.8: - resolution: {integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==} - dev: true - - /pump@3.0.0: - resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} - dependencies: - end-of-stream: 1.4.4 - once: 1.4.0 - - /punycode@2.3.0: - resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} - engines: {node: '>=6'} - - /pure-rand@6.0.2: - resolution: {integrity: sha512-6Yg0ekpKICSjPswYOuC5sku/TSWaRYlA0qsXqJgM/d/4pLPHPuTxK7Nbf7jFKzAeedUhR8C7K9Uv63FBsSo8xQ==} - dev: false - - /pvtsutils@1.3.2: - resolution: {integrity: sha512-+Ipe2iNUyrZz+8K/2IOo+kKikdtfhRKzNpQbruF2URmqPtoqAs8g3xS7TJvFF2GcPXjh7DkqMnpVveRFq4PgEQ==} - dependencies: - tslib: 2.6.2 - dev: false - - /pvutils@1.1.3: - resolution: {integrity: sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==} - engines: {node: '>=6.0.0'} - dev: false - - /queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - dev: true - - /quick-format-unescaped@4.0.4: - resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} - dev: false - - /quick-lru@6.1.1: - resolution: {integrity: sha512-S27GBT+F0NTRiehtbrgaSE1idUAJ5bX8dPAQTdylEyNlrdcH5X4Lz7Edz3DYzecbsCluD5zO8ZNEe04z3D3u6Q==} - engines: {node: '>=12'} - dev: false - - /rc@1.2.8: - resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} - hasBin: true - dependencies: - deep-extend: 0.6.0 - ini: 1.3.8 - minimist: 1.2.8 - strip-json-comments: 2.0.1 - - /react-is@18.2.0: - resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} - dev: true - - /react@18.2.0: - resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} - engines: {node: '>=0.10.0'} - dependencies: - loose-envify: 1.4.0 - dev: false - - /read-pkg-up@9.1.0: - resolution: {integrity: sha512-vaMRR1AC1nrd5CQM0PhlRsO5oc2AAigqr7cCrZ/MW/Rsaflz4RlgzkpL4qoU/z1F6wrbd85iFv1OQj/y5RdGvg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - find-up: 6.3.0 - read-pkg: 7.1.0 - type-fest: 2.19.0 - dev: false - - /read-pkg@7.1.0: - resolution: {integrity: sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==} - engines: {node: '>=12.20'} - dependencies: - '@types/normalize-package-data': 2.4.1 - normalize-package-data: 3.0.3 - parse-json: 5.2.0 - type-fest: 2.19.0 - dev: false - - /readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} - dependencies: - inherits: 2.0.4 - string_decoder: 1.3.0 - util-deprecate: 1.0.2 - - /readable-stream@4.4.0: - resolution: {integrity: sha512-kDMOq0qLtxV9f/SQv522h8cxZBqNZXuXNyjyezmfAAuribMyVXziljpQ/uQhfE1XLg2/TLTW2DsnoE4VAi/krg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - abort-controller: 3.0.0 - buffer: 6.0.3 - events: 3.3.0 - process: 0.11.10 - dev: false - - /readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - dependencies: - picomatch: 2.3.1 - dev: true - - /real-require@0.2.0: - resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} - engines: {node: '>= 12.13.0'} - dev: false - - /replicate@0.25.2: - resolution: {integrity: sha512-c5otBJ5E66XLS0X196pBCsyy85b03ZBLeV/lbKfU8cqfkt3Qd6NGEiPwTtxtsQ4AznggMJNn2Qq68t/bV85M2w==} - engines: {git: '>=2.11.0', node: '>=18.0.0', npm: '>=7.19.0', yarn: '>=1.7.0'} - optionalDependencies: - readable-stream: 4.4.0 - dev: false - - /require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} - dev: false - - /resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - dev: true - - /ret@0.2.2: - resolution: {integrity: sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ==} - engines: {node: '>=4'} - dev: false - - /retry-as-promised@7.0.4: - resolution: {integrity: sha512-XgmCoxKWkDofwH8WddD0w85ZfqYz+ZHlr5yo+3YUCfycWawU56T5ckWXsScsj5B8tqUcIG67DxXByo3VUgiAdA==} - dev: false - - /retry@0.12.0: - resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} - engines: {node: '>= 4'} - requiresBuild: true - optional: true - - /retry@0.13.1: - resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} - engines: {node: '>= 4'} - dev: false - - /reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - - /rfdc@1.3.0: - resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} - dev: false - - /rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - hasBin: true - dependencies: - glob: 7.2.3 - - /rollup@4.9.1: - resolution: {integrity: sha512-pgPO9DWzLoW/vIhlSoDByCzcpX92bKEorbgXuZrqxByte3JFk2xSW2JEeAcyLc9Ru9pqcNNW+Ob7ntsk2oT/Xw==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.9.1 - '@rollup/rollup-android-arm64': 4.9.1 - '@rollup/rollup-darwin-arm64': 4.9.1 - '@rollup/rollup-darwin-x64': 4.9.1 - '@rollup/rollup-linux-arm-gnueabihf': 4.9.1 - '@rollup/rollup-linux-arm64-gnu': 4.9.1 - '@rollup/rollup-linux-arm64-musl': 4.9.1 - '@rollup/rollup-linux-riscv64-gnu': 4.9.1 - '@rollup/rollup-linux-x64-gnu': 4.9.1 - '@rollup/rollup-linux-x64-musl': 4.9.1 - '@rollup/rollup-win32-arm64-msvc': 4.9.1 - '@rollup/rollup-win32-ia32-msvc': 4.9.1 - '@rollup/rollup-win32-x64-msvc': 4.9.1 - fsevents: 2.3.3 - dev: true - - /run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - dependencies: - queue-microtask: 1.2.3 - dev: true - - /safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - - /safe-regex2@2.0.0: - resolution: {integrity: sha512-PaUSFsUaNNuKwkBijoAPHAK6/eM6VirvyPWlZ7BAQy4D+hCvh4B6lIG+nPdhbFfIbP+gTGBcrdsOaUs0F+ZBOQ==} - dependencies: - ret: 0.2.2 - dev: false - - /safe-stable-stringify@2.4.3: - resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} - engines: {node: '>=10'} - dev: false - - /safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - requiresBuild: true - optional: true - - /secure-json-parse@2.7.0: - resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==} - dev: false - - /semver@7.5.0: - resolution: {integrity: sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==} - engines: {node: '>=10'} - hasBin: true - dependencies: - lru-cache: 6.0.0 - - /semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} - engines: {node: '>=10'} - hasBin: true - dependencies: - lru-cache: 6.0.0 - - /sequelize-pool@7.1.0: - resolution: {integrity: sha512-G9c0qlIWQSK29pR/5U2JF5dDQeqqHRragoyahj/Nx4KOOQ3CPPfzxnfqFPCSB7x5UgjOgnZ61nSxz+fjDpRlJg==} - engines: {node: '>= 10.0.0'} - dev: false - - /sequelize@6.36.0(pg@8.11.3)(sqlite3@5.1.7): - resolution: {integrity: sha512-PqOa11EHwA/zLmGDU4aynbsavbHJUlgRvFuC/2cA4LhOuV6NHKcQ0IXB+hNdFrGT3rULmvc4kdIwnfCNsrECMQ==} - engines: {node: '>=10.0.0'} - peerDependencies: - ibm_db: '*' - mariadb: '*' - mysql2: '*' - oracledb: '*' - pg: '*' - pg-hstore: '*' - snowflake-sdk: '*' - sqlite3: '*' - tedious: '*' - peerDependenciesMeta: - ibm_db: - optional: true - mariadb: - optional: true - mysql2: - optional: true - oracledb: - optional: true - pg: - optional: true - pg-hstore: - optional: true - snowflake-sdk: - optional: true - sqlite3: - optional: true - tedious: - optional: true - dependencies: - '@types/debug': 4.1.12 - '@types/validator': 13.11.8 - debug: 4.3.4(supports-color@5.5.0) - dottie: 2.0.6 - inflection: 1.13.4 - lodash: 4.17.21 - moment: 2.30.1 - moment-timezone: 0.5.45 - pg: 8.11.3 - pg-connection-string: 2.6.2 - retry-as-promised: 7.0.4 - semver: 7.5.4 - sequelize-pool: 7.1.0 - sqlite3: 5.1.7 - toposort-class: 1.0.1 - uuid: 8.3.2 - validator: 13.11.0 - wkx: 0.5.0 - transitivePeerDependencies: - - supports-color - dev: false - - /seroval@0.5.1: - resolution: {integrity: sha512-ZfhQVB59hmIauJG5Ydynupy8KHyr5imGNtdDhbZG68Ufh1Ynkv9KOYOAABf71oVbQxJ8VkWnMHAjEHE7fWkH5g==} - engines: {node: '>=10'} - dev: false - - /set-blocking@2.0.0: - resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} - requiresBuild: true - optional: true - - /set-cookie-parser@2.6.0: - resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==} - dev: false - - /setprototypeof@1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - dev: false - - /shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - dependencies: - shebang-regex: 3.0.0 - dev: true - - /shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - dev: true - - /siginfo@2.0.0: - resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} - dev: true - - /signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - requiresBuild: true - optional: true - - /signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} - dev: true - - /simple-concat@1.0.1: - resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} - - /simple-get@4.0.1: - resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} - dependencies: - decompress-response: 6.0.0 - once: 1.4.0 - simple-concat: 1.0.1 - - /simple-update-notifier@2.0.0: - resolution: {integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==} - engines: {node: '>=10'} - dependencies: - semver: 7.5.4 - dev: true - - /slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - dev: true - - /smart-buffer@4.2.0: - resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} - engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} - requiresBuild: true - optional: true - - /snake-case@3.0.4: - resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} - dependencies: - dot-case: 3.0.4 - tslib: 2.6.2 - dev: false - - /snakecase-keys@5.4.4: - resolution: {integrity: sha512-YTywJG93yxwHLgrYLZjlC75moVEX04LZM4FHfihjHe1FCXm+QaLOFfSf535aXOAd0ArVQMWUAe8ZPm4VtWyXaA==} - engines: {node: '>=12'} - dependencies: - map-obj: 4.3.0 - snake-case: 3.0.4 - type-fest: 2.19.0 - dev: false - - /socks-proxy-agent@6.2.1: - resolution: {integrity: sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==} - engines: {node: '>= 10'} - requiresBuild: true - dependencies: - agent-base: 6.0.2 - debug: 4.3.4(supports-color@5.5.0) - socks: 2.7.1 - transitivePeerDependencies: - - supports-color - optional: true - - /socks@2.7.1: - resolution: {integrity: sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==} - engines: {node: '>= 10.13.0', npm: '>= 3.0.0'} - requiresBuild: true - dependencies: - ip: 2.0.0 - smart-buffer: 4.2.0 - optional: true - - /solid-js@1.7.11: - resolution: {integrity: sha512-JkuvsHt8jqy7USsy9xJtT18aF9r2pFO+GB8JQ2XGTvtF49rGTObB46iebD25sE3qVNvIbwglXOXdALnJq9IHtQ==} - dependencies: - csstype: 3.1.1 - seroval: 0.5.1 - dev: false - - /solid-swr-store@0.10.7(solid-js@1.7.11)(swr-store@0.10.6): - resolution: {integrity: sha512-A6d68aJmRP471aWqKKPE2tpgOiR5fH4qXQNfKIec+Vap+MGQm3tvXlT8n0I8UgJSlNAsSAUuw2VTviH2h3Vv5g==} - engines: {node: '>=10'} - peerDependencies: - solid-js: ^1.2 - swr-store: ^0.10 - dependencies: - solid-js: 1.7.11 - swr-store: 0.10.6 - dev: false - - /sonic-boom@3.7.0: - resolution: {integrity: sha512-IudtNvSqA/ObjN97tfgNmOKyDOs4dNcg4cUUsHDebqsgb8wGBBwb31LIgShNO8fye0dFI52X1+tFoKKI6Rq1Gg==} - dependencies: - atomic-sleep: 1.0.0 - dev: false - - /source-map-js@1.0.2: - resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} - engines: {node: '>=0.10.0'} - - /spdx-correct@3.2.0: - resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} - dependencies: - spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.13 - dev: false - - /spdx-exceptions@2.3.0: - resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} - dev: false - - /spdx-expression-parse@3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - dependencies: - spdx-exceptions: 2.3.0 - spdx-license-ids: 3.0.13 - dev: false - - /spdx-license-ids@3.0.13: - resolution: {integrity: sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==} - dev: false - - /split2@4.2.0: - resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} - engines: {node: '>= 10.x'} - dev: false - - /sqlite3@5.1.7: - resolution: {integrity: sha512-GGIyOiFaG+TUra3JIfkI/zGP8yZYLPQ0pl1bH+ODjiX57sPhrLU5sQJn1y9bDKZUFYkX1crlrPfSYt0BKKdkog==} - requiresBuild: true - peerDependenciesMeta: - node-gyp: - optional: true - dependencies: - bindings: 1.5.0 - node-addon-api: 7.1.0 - prebuild-install: 7.1.1 - tar: 6.2.0 - optionalDependencies: - node-gyp: 8.4.1 - transitivePeerDependencies: - - bluebird - - supports-color - - /ssri@8.0.1: - resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==} - engines: {node: '>= 8'} - requiresBuild: true - dependencies: - minipass: 3.3.6 - optional: true - - /sswr@2.0.0(svelte@4.2.0): - resolution: {integrity: sha512-mV0kkeBHcjcb0M5NqKtKVg/uTIYNlIIniyDfSGrSfxpEdM9C365jK0z55pl9K0xAkNTJi2OAOVFQpgMPUk+V0w==} - peerDependencies: - svelte: ^4.0.0 - dependencies: - svelte: 4.2.0 - swrev: 4.0.0 - dev: false - - /stackback@0.0.2: - resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} - dev: true - - /statuses@2.0.1: - resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} - engines: {node: '>= 0.8'} - dev: false - - /std-env@3.6.0: - resolution: {integrity: sha512-aFZ19IgVmhdB2uX599ve2kE6BIE3YMnQ6Gp6BURhW/oIzpXGKr878TQfAQZn1+i0Flcc/UKUy1gOlcfaUBCryg==} - dev: true - - /stream-wormhole@1.1.0: - resolution: {integrity: sha512-gHFfL3px0Kctd6Po0M8TzEvt3De/xu6cnRrjlfYNhwbhLPLwigI2t1nc6jrzNuaYg5C4YF78PPFuQPzRiqn9ew==} - engines: {node: '>=4.0.0'} - dev: false - - /string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 - - /string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - requiresBuild: true - dependencies: - safe-buffer: 5.2.1 - - /strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - dependencies: - ansi-regex: 5.0.1 - - /strip-final-newline@3.0.0: - resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} - engines: {node: '>=12'} - dev: true - - /strip-json-comments@2.0.1: - resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} - engines: {node: '>=0.10.0'} - - /strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - dev: true - - /strip-literal@1.3.0: - resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} - dependencies: - acorn: 8.10.0 - dev: true - - /strnum@1.0.5: - resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} - dev: false - - /stubborn-fs@1.2.4: - resolution: {integrity: sha512-KRa4nIRJ8q6uApQbPwYZVhOof8979fw4xbajBWa5kPJFa4nyY3aFaMWVyIVCDnkNCCG/3HLipUZ4QaNlYsmX1w==} - dev: false - - /supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} - dependencies: - has-flag: 3.0.0 - - /supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - dependencies: - has-flag: 4.0.0 - dev: true - - /svelte@4.2.0: - resolution: {integrity: sha512-kVsdPjDbLrv74SmLSUzAsBGquMs4MPgWGkGLpH+PjOYnFOziAvENVzgJmyOCV2gntxE32aNm8/sqNKD6LbIpeQ==} - engines: {node: '>=16'} - dependencies: - '@ampproject/remapping': 2.2.1 - '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.19 - acorn: 8.10.0 - aria-query: 5.3.0 - axobject-query: 3.2.1 - code-red: 1.0.4 - css-tree: 2.3.1 - estree-walker: 3.0.3 - is-reference: 3.0.1 - locate-character: 3.0.0 - magic-string: 0.30.5 - periscopic: 3.1.0 - dev: false - - /swr-store@0.10.6: - resolution: {integrity: sha512-xPjB1hARSiRaNNlUQvWSVrG5SirCjk2TmaUyzzvk69SZQan9hCJqw/5rG9iL7xElHU784GxRPISClq4488/XVw==} - engines: {node: '>=10'} - dependencies: - dequal: 2.0.3 - dev: false - - /swr@2.2.0(react@18.2.0): - resolution: {integrity: sha512-AjqHOv2lAhkuUdIiBu9xbuettzAzWXmCEcLONNKJRba87WAefz8Ca9d6ds/SzrPc235n1IxWYdhJ2zF3MNUaoQ==} - peerDependencies: - react: ^16.11.0 || ^17.0.0 || ^18.0.0 - dependencies: - react: 18.2.0 - use-sync-external-store: 1.2.0(react@18.2.0) - dev: false - - /swrev@4.0.0: - resolution: {integrity: sha512-LqVcOHSB4cPGgitD1riJ1Hh4vdmITOp+BkmfmXRh4hSF/t7EnS4iD+SOTmq7w5pPm/SiPeto4ADbKS6dHUDWFA==} - dev: false - - /swrv@1.0.4(vue@3.3.4): - resolution: {integrity: sha512-zjEkcP8Ywmj+xOJW3lIT65ciY/4AL4e/Or7Gj0MzU3zBJNMdJiT8geVZhINavnlHRMMCcJLHhraLTAiDOTmQ9g==} - peerDependencies: - vue: '>=3.2.26 < 4' - dependencies: - vue: 3.3.4 - dev: false - - /tar-fs@2.1.1: - resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} - dependencies: - chownr: 1.1.4 - mkdirp-classic: 0.5.3 - pump: 3.0.0 - tar-stream: 2.2.0 - - /tar-stream@2.2.0: - resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} - engines: {node: '>=6'} - dependencies: - bl: 4.1.0 - end-of-stream: 1.4.4 - fs-constants: 1.0.0 - inherits: 2.0.4 - readable-stream: 3.6.2 - - /tar@6.2.0: - resolution: {integrity: sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==} - engines: {node: '>=10'} - dependencies: - chownr: 2.0.0 - fs-minipass: 2.1.0 - minipass: 5.0.0 - minizlib: 2.1.2 - mkdirp: 1.0.4 - yallist: 4.0.0 - - /text-decoding@1.0.0: - resolution: {integrity: sha512-/0TJD42KDnVwKmDK6jj3xP7E2MG7SHAOG4tyTgyUCRPdHwvkquYNLEQltmdMa3owq3TkddCVcTsoctJI8VQNKA==} - dev: false - - /text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - dev: true - - /thread-stream@2.3.0: - resolution: {integrity: sha512-kaDqm1DET9pp3NXwR8382WHbnpXnRkN9xGN9dQt3B2+dmXiW8X1SOwmFOxAErEQ47ObhZ96J6yhZNXuyCOL7KA==} - dependencies: - real-require: 0.2.0 - dev: false - - /tinybench@2.5.1: - resolution: {integrity: sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==} - dev: true - - /tinypool@0.8.1: - resolution: {integrity: sha512-zBTCK0cCgRROxvs9c0CGK838sPkeokNGdQVUUwHAbynHFlmyJYj825f/oRs528HaIJ97lo0pLIlDUzwN+IorWg==} - engines: {node: '>=14.0.0'} - dev: true - - /tinyspy@2.2.0: - resolution: {integrity: sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==} - engines: {node: '>=14.0.0'} - dev: true - - /to-fast-properties@2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} - dev: false - - /to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - dependencies: - is-number: 7.0.0 - dev: true - - /toad-cache@3.4.1: - resolution: {integrity: sha512-T0m3MxP3wcqW0LaV3dF1mHBU294sgYSm4FOpa5eEJaYO7PqJZBOjZEQI1y4YaKNnih1FXCEYTWDS9osCoTUefg==} - engines: {node: '>=12'} - dev: false - - /toidentifier@1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} - engines: {node: '>=0.6'} - dev: false - - /toposort-class@1.0.1: - resolution: {integrity: sha512-OsLcGGbYF3rMjPUf8oKktyvCiUxSbqMMS39m33MAjLTC1DVIH6x3WSt63/M77ihI09+Sdfk1AXvfhCEeUmC7mg==} - dev: false - - /touch@3.1.0: - resolution: {integrity: sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==} - hasBin: true - dependencies: - nopt: 1.0.10 - dev: true - - /tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - dev: false - - /ts-node@10.9.2(@types/node@20.10.5)(typescript@5.3.3): - resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} - hasBin: true - peerDependencies: - '@swc/core': '>=1.2.50' - '@swc/wasm': '>=1.2.50' - '@types/node': '*' - typescript: '>=2.7' - peerDependenciesMeta: - '@swc/core': - optional: true - '@swc/wasm': - optional: true - dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.9 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.4 - '@types/node': 20.10.5 - acorn: 8.10.0 - acorn-walk: 8.3.1 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 5.3.3 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - dev: true - - /tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - - /tslib@2.4.1: - resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==} - dev: false - - /tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - dev: false - - /tsscmp@1.0.6: - resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==} - engines: {node: '>=0.6.x'} - dev: false - - /tsutils@3.21.0(typescript@5.3.3): - resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} - engines: {node: '>= 6'} - peerDependencies: - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' - dependencies: - tslib: 1.14.1 - typescript: 5.3.3 - dev: true - - /tunnel-agent@0.6.0: - resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} - dependencies: - safe-buffer: 5.2.1 - - /type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.2.1 - dev: true - - /type-detect@4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} - dev: true - - /type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - dev: true - - /type-fest@2.19.0: - resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} - engines: {node: '>=12.20'} - dev: false - - /typescript@5.3.3: - resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} - engines: {node: '>=14.17'} - hasBin: true - dev: true - - /ufo@1.3.2: - resolution: {integrity: sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==} - dev: true - - /undefsafe@2.0.5: - resolution: {integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==} - dev: true - - /undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - - /unique-filename@1.1.1: - resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==} - requiresBuild: true - dependencies: - unique-slug: 2.0.2 - optional: true - - /unique-slug@2.0.2: - resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==} - requiresBuild: true - dependencies: - imurmurhash: 0.1.4 - optional: true - - /uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - dependencies: - punycode: 2.3.0 - - /use-sync-external-store@1.2.0(react@18.2.0): - resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - dependencies: - react: 18.2.0 - dev: false - - /util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - requiresBuild: true - - /uuid@8.3.2: - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} - hasBin: true - dev: false - - /uuid@9.0.0: - resolution: {integrity: sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==} - hasBin: true - dev: false - - /v8-compile-cache-lib@3.0.1: - resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} - dev: true - - /valibot@0.24.1: - resolution: {integrity: sha512-Toclbuy20XsECZiueh2dkQ63he2AGaBIj/FJRDAFti2kueFldm9bjJzSYvPaL5CE1HXDMRhq7olak8at7xCz5A==} - dev: false - - /validate-npm-package-license@3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} - dependencies: - spdx-correct: 3.2.0 - spdx-expression-parse: 3.0.1 - dev: false - - /validator@13.11.0: - resolution: {integrity: sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==} - engines: {node: '>= 0.10'} - dev: false - - /vite-node@1.1.0(@types/node@20.10.5): - resolution: {integrity: sha512-jV48DDUxGLEBdHCQvxL1mEh7+naVy+nhUUUaPAZLd3FJgXuxQiewHcfeZebbJ6onDqNGkP4r3MhQ342PRlG81Q==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - dependencies: - cac: 6.7.14 - debug: 4.3.4(supports-color@5.5.0) - pathe: 1.1.1 - picocolors: 1.0.0 - vite: 5.0.10(@types/node@20.10.5) - transitivePeerDependencies: - - '@types/node' - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - dev: true - - /vite@5.0.10(@types/node@20.10.5): - resolution: {integrity: sha512-2P8J7WWgmc355HUMlFrwofacvr98DAjoE52BfdbwQtyLH06XKwaL/FMnmKM2crF0iX4MpmMKoDlNCB1ok7zHCw==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - dependencies: - '@types/node': 20.10.5 - esbuild: 0.19.10 - postcss: 8.4.32 - rollup: 4.9.1 - optionalDependencies: - fsevents: 2.3.3 - dev: true - - /vitest@1.1.0(@types/node@20.10.5): - resolution: {integrity: sha512-oDFiCrw7dd3Jf06HoMtSRARivvyjHJaTxikFxuqJjO76U436PqlVw1uLn7a8OSPrhSfMGVaRakKpA2lePdw79A==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@edge-runtime/vm': '*' - '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': ^1.0.0 - '@vitest/ui': ^1.0.0 - happy-dom: '*' - jsdom: '*' - peerDependenciesMeta: - '@edge-runtime/vm': - optional: true - '@types/node': - optional: true - '@vitest/browser': - optional: true - '@vitest/ui': - optional: true - happy-dom: - optional: true - jsdom: - optional: true - dependencies: - '@types/node': 20.10.5 - '@vitest/expect': 1.1.0 - '@vitest/runner': 1.1.0 - '@vitest/snapshot': 1.1.0 - '@vitest/spy': 1.1.0 - '@vitest/utils': 1.1.0 - acorn-walk: 8.3.1 - cac: 6.7.14 - chai: 4.3.10 - debug: 4.3.4(supports-color@5.5.0) - execa: 8.0.1 - local-pkg: 0.5.0 - magic-string: 0.30.5 - pathe: 1.1.1 - picocolors: 1.0.0 - std-env: 3.6.0 - strip-literal: 1.3.0 - tinybench: 2.5.1 - tinypool: 0.8.1 - vite: 5.0.10(@types/node@20.10.5) - vite-node: 1.1.0(@types/node@20.10.5) - why-is-node-running: 2.2.2 - transitivePeerDependencies: - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - dev: true - - /vue@3.3.4: - resolution: {integrity: sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==} - dependencies: - '@vue/compiler-dom': 3.3.4 - '@vue/compiler-sfc': 3.3.4 - '@vue/runtime-dom': 3.3.4 - '@vue/server-renderer': 3.3.4(vue@3.3.4) - '@vue/shared': 3.3.4 - dev: false - - /web-streams-polyfill@3.2.1: - resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==} - engines: {node: '>= 8'} - dev: false - - /web-streams-polyfill@4.0.0-beta.3: - resolution: {integrity: sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==} - engines: {node: '>= 14'} - dev: false - - /webcrypto-core@1.7.7: - resolution: {integrity: sha512-7FjigXNsBfopEj+5DV2nhNpfic2vumtjjgPmeDKk45z+MJwXKKfhPB7118Pfzrmh4jqOMST6Ch37iPAHoImg5g==} - dependencies: - '@peculiar/asn1-schema': 2.3.6 - '@peculiar/json-schema': 1.1.12 - asn1js: 3.0.5 - pvtsutils: 1.3.2 - tslib: 2.6.2 - dev: false - - /webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - dev: false - - /whatwg-fetch@3.6.17: - resolution: {integrity: sha512-c4ghIvG6th0eudYwKZY5keb81wtFz9/WeAHAoy8+r18kcWlitUIrmGFQ2rWEl4UCKUilD3zCLHOIPheHx5ypRQ==} - dev: false - - /whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - dependencies: - tr46: 0.0.3 - webidl-conversions: 3.0.1 - dev: false - - /when-exit@2.1.0: - resolution: {integrity: sha512-H85ulNwUBU1e6PGxkWUDgxnbohSXD++ah6Xw1VHAN7CtypcbZaC4aYjQ+C2PMVaDkURDuOinNAT+Lnz3utWXxQ==} - dev: false - - /which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - dependencies: - isexe: 2.0.0 - - /why-is-node-running@2.2.2: - resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} - engines: {node: '>=8'} - hasBin: true - dependencies: - siginfo: 2.0.0 - stackback: 0.0.2 - dev: true - - /wide-align@1.1.5: - resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} - requiresBuild: true - dependencies: - string-width: 4.2.3 - optional: true - - /wkx@0.5.0: - resolution: {integrity: sha512-Xng/d4Ichh8uN4l0FToV/258EjMGU9MGcA0HV2d9B/ZpZB3lqQm7nkOdZdm5GhKtLLhAE7PiVQwN4eN+2YJJUg==} - dependencies: - '@types/node': 20.10.5 - dev: false - - /word-wrap@1.2.3: - resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} - engines: {node: '>=0.10.0'} - dev: true - - /wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - dev: false - - /wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - requiresBuild: true - - /xtend@4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} - dev: false - - /yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - - /yaml@2.3.1: - resolution: {integrity: sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==} - engines: {node: '>= 14'} - dev: false - - /yn@3.1.1: - resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} - engines: {node: '>=6'} - dev: true - - /yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - - /yocto-queue@1.0.0: - resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} - engines: {node: '>=12.20'} - - /zod-to-json-schema@3.20.3(zod@3.22.4): - resolution: {integrity: sha512-/Q3wnyxAfCt94ZcrGiXXoiAfRqasxl9CX64LZ9fj+4dKH68zulUtU0uk1WMxQPfAxQ0ZI70dKzcoW7hHj+DwSQ==} - peerDependencies: - zod: ^3.20.0 - dependencies: - zod: 3.22.4 - dev: false - - /zod@3.22.4: - resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} - dev: false diff --git a/apps/studio-backend/prisma/migrations/20240229145752_init/migration.sql b/apps/studio-backend/prisma/migrations/20240229145752_init/migration.sql new file mode 100644 index 000000000..f51aa0332 --- /dev/null +++ b/apps/studio-backend/prisma/migrations/20240229145752_init/migration.sql @@ -0,0 +1,39 @@ +-- CreateEnum +CREATE TYPE "Type" AS ENUM ('recipe', 'codemod'); + +-- CreateTable +CREATE TABLE "Codemod" ( + "id" SERIAL NOT NULL, + "slug" VARCHAR(255) NOT NULL, + "name" VARCHAR(255) NOT NULL, + "shortDescription" TEXT NOT NULL, + "private" BOOLEAN NOT NULL, + "type" "Type" NOT NULL, + "featured" BOOLEAN NOT NULL DEFAULT false, + "verified" BOOLEAN NOT NULL, + "author" VARCHAR(255) NOT NULL, + "engine" VARCHAR(255) NOT NULL, + "version" VARCHAR(255) NOT NULL, + "command" VARCHAR(255) NOT NULL, + "vsCodeLink" VARCHAR(255) NOT NULL, + "codemodStudioExampleLink" VARCHAR(255) NOT NULL, + "testProjectCommand" VARCHAR(255) NOT NULL, + "sourceRepo" VARCHAR(255) NOT NULL, + "amountOfUses" INTEGER NOT NULL DEFAULT 0, + "totalTimeSaved" INTEGER NOT NULL DEFAULT 0, + "openedPrs" INTEGER NOT NULL DEFAULT 0, + "labels" TEXT[] DEFAULT ARRAY[]::TEXT[], + "readmeLink" VARCHAR(255) NOT NULL, + "indexTsLink" VARCHAR(255) NOT NULL, + "framework" VARCHAR(255), + "frameworkVersion" VARCHAR(255), + "userStories" VARCHAR(255), + "requirements" VARCHAR(255), + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "lastUpdate" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + + CONSTRAINT "Codemod_pkey" PRIMARY KEY ("id") +); + +-- CreateIndex +CREATE UNIQUE INDEX "Codemod_slug_key" ON "Codemod"("slug"); diff --git a/apps/studio-backend/prisma/migrations/migration_lock.toml b/apps/studio-backend/prisma/migrations/migration_lock.toml new file mode 100644 index 000000000..fbffa92c2 --- /dev/null +++ b/apps/studio-backend/prisma/migrations/migration_lock.toml @@ -0,0 +1,3 @@ +# Please do not edit this file manually +# It should be added in your version-control system (i.e. Git) +provider = "postgresql" \ No newline at end of file diff --git a/apps/studio-backend/prisma/schema.prisma b/apps/studio-backend/prisma/schema.prisma new file mode 100644 index 000000000..b9132e435 --- /dev/null +++ b/apps/studio-backend/prisma/schema.prisma @@ -0,0 +1,52 @@ +generator client { + provider = "prisma-client-js" + binaryTargets = ["native", "linux-musl"] +} + +generator zod { + provider = "zod-prisma-types" + createOptionalDefaultValuesTypes = true +} + +datasource db { + provider = "postgresql" + url = env("DATABASE_URI") +} + +enum CodemodType { + recipe + codemod +} + +model Codemod { + id Int @id @default(autoincrement()) + slug String @unique @db.VarChar(255) + name String @db.VarChar(255) + shortDescription String @db.Text + type CodemodType + private Boolean + featured Boolean @default(false) + verified Boolean + author String @db.VarChar(255) + engine String @db.VarChar(255) + version String @db.VarChar(255) + command String @db.VarChar(255) + vsCodeLink String @db.VarChar(255) + codemodStudioExampleLink String @db.VarChar(255) + testProjectCommand String @db.VarChar(255) + sourceRepo String @db.VarChar(255) + amountOfUses Int @default(0) + totalTimeSaved Int @default(0) + openedPrs Int @default(0) + labels String[] @default([]) + readmeLink String @db.VarChar(255) + indexTsLink String @db.VarChar(255) + + framework String? @db.VarChar(255) + frameworkVersion String? @db.VarChar(255) + userStories String? @db.VarChar(255) + requirements String? @db.VarChar(255) + + createdAt DateTime @default(now()) + lastUpdate DateTime @default(now()) @updatedAt +} diff --git a/apps/studio-backend/prisma/seed.ts b/apps/studio-backend/prisma/seed.ts new file mode 100644 index 000000000..f214cdf08 --- /dev/null +++ b/apps/studio-backend/prisma/seed.ts @@ -0,0 +1,55 @@ +import "dotenv/config"; + +import { faker } from "@faker-js/faker"; +import { CodemodType, PrismaClient } from "@prisma/client"; +import { z } from "zod"; +import { CodemodCreateInputSchema } from "./generated/zod"; + +if (!("DATABASE_URI" in process.env)) { + throw new Error("DATABASE_URI not found in .env"); +} + +const prisma = new PrismaClient(); + +async function main() { + const data: z.infer[] = []; + + for (let i = 0; i < 10; i++) { + data.push({ + slug: faker.string.alpha(10), + name: faker.lorem.words(2), + shortDescription: faker.lorem.words(10), + type: faker.helpers.arrayElement(Object.values(CodemodType)), + featured: faker.datatype.boolean(), + verified: faker.datatype.boolean(), + framework: faker.lorem.word(), + frameworkVersion: faker.system.semver(), + author: faker.lorem.word(), + engine: faker.helpers.arrayElement(["jscodeshift", "ts-morph"]), + requirements: faker.lorem.words(3), + version: faker.system.semver(), + lastUpdate: faker.date.recent(), + command: faker.lorem.words(2), + vsCodeLink: faker.internet.url(), + codemodStudioExampleLink: faker.internet.url(), + testProjectCommand: faker.lorem.words(2), + sourceRepo: faker.internet.url(), + readmeLink: faker.internet.url(), + indexTsLink: faker.internet.url(), + private: faker.datatype.boolean(), + }); + } + + await prisma.codemod.createMany({ data }); + console.log({ data }); +} + +main() + .then(async () => { + await prisma.$disconnect(); + }) + .catch(async (e) => { + console.error(e); + await prisma.$disconnect(); + process.exit(1); + }); diff --git a/apps/studio-backend/src/chroma.ts b/apps/studio-backend/src/chroma.ts index 1741fba16..e4697163b 100644 --- a/apps/studio-backend/src/chroma.ts +++ b/apps/studio-backend/src/chroma.ts @@ -5,7 +5,7 @@ import { OpenAI } from "langchain/llms/openai"; import { Chroma } from "langchain/vectorstores/chroma"; import { findFunctionComponent } from "./chromaSnippets/findFunctionComponent.js"; import { findPositionAfterImports } from "./chromaSnippets/findPositionAfterImports.js"; -import { Environment } from "./schema.js"; +import { Environment } from "./schemata/env.js"; const buildChromaService = async (environment: Environment) => { if (environment.OPEN_AI_API_KEY === undefined) { diff --git a/apps/studio-backend/src/dataAccessLayer/buildTokenMetadataRepository.ts b/apps/studio-backend/src/db/buildTokenMetadataRepository.ts similarity index 100% rename from apps/studio-backend/src/dataAccessLayer/buildTokenMetadataRepository.ts rename to apps/studio-backend/src/db/buildTokenMetadataRepository.ts diff --git a/apps/studio-backend/src/dataAccessLayer/buildTokenRevocationsRepository.ts b/apps/studio-backend/src/db/buildTokenRevocationsRepository.ts similarity index 100% rename from apps/studio-backend/src/dataAccessLayer/buildTokenRevocationsRepository.ts rename to apps/studio-backend/src/db/buildTokenRevocationsRepository.ts diff --git a/apps/studio-backend/src/dataAccessLayer/dataAccessLayer.ts b/apps/studio-backend/src/db/dataAccessLayer.ts similarity index 100% rename from apps/studio-backend/src/dataAccessLayer/dataAccessLayer.ts rename to apps/studio-backend/src/db/dataAccessLayer.ts diff --git a/apps/studio-backend/src/db/prisma.ts b/apps/studio-backend/src/db/prisma.ts new file mode 100644 index 000000000..901f3a0d9 --- /dev/null +++ b/apps/studio-backend/src/db/prisma.ts @@ -0,0 +1,3 @@ +import { PrismaClient } from "@prisma/client"; + +export const prisma = new PrismaClient(); diff --git a/apps/studio-backend/src/dataAccessLayer/schemata.ts b/apps/studio-backend/src/db/schemata.ts similarity index 100% rename from apps/studio-backend/src/dataAccessLayer/schemata.ts rename to apps/studio-backend/src/db/schemata.ts diff --git a/apps/studio-backend/src/index.ts b/apps/studio-backend/src/index.ts deleted file mode 100644 index 47116d25e..000000000 --- a/apps/studio-backend/src/index.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { runServer } from "./runServer.js"; -import { parseEnvironment } from "./schema.js"; - -let callback: (() => void) | undefined; - -const handleProcessExit = (code: 0 | 1) => { - callback?.(); - - setTimeout(() => { - process.exit(code); - }, 1000).unref(); -}; - -process.on("uncaughtException", (error) => { - console.error(error); - - process.exit(1); -}); -process.on("unhandledRejection", (reason) => { - console.error(reason); - - handleProcessExit(1); -}); -process.on("SIGTERM", (signal) => { - console.log(signal); - - handleProcessExit(0); -}); -process.on("SIGINT", (signal) => { - console.log(signal); - - handleProcessExit(0); -}); - -const environment = parseEnvironment(process.env); - -runServer(environment).then((close) => { - callback = close; -}); diff --git a/apps/studio-backend/src/publishHandler.ts b/apps/studio-backend/src/publishHandler.ts index 134d2e656..51437d601 100644 --- a/apps/studio-backend/src/publishHandler.ts +++ b/apps/studio-backend/src/publishHandler.ts @@ -3,7 +3,7 @@ import { PutObjectCommand, S3Client } from "@aws-sdk/client-s3"; import { createClerkClient } from "@clerk/fastify"; import { RouteHandlerMethod } from "fastify"; import { literal, object, parse, string } from "valibot"; -import { Environment } from "./schema.js"; +import { Environment } from "./schemata/env.js"; import { CLAIM_PUBLISHING, TokenService } from "./services/tokenService.js"; import { areClerkKeysSet, getCustomAccessToken } from "./util.js"; diff --git a/apps/studio-backend/src/runServer.ts b/apps/studio-backend/src/runServer.ts deleted file mode 100644 index 6c02b3882..000000000 --- a/apps/studio-backend/src/runServer.ts +++ /dev/null @@ -1,495 +0,0 @@ -import { OutgoingHttpHeaders } from "node:http"; -import { clerkPlugin, createClerkClient, getAuth } from "@clerk/fastify"; -import cors, { FastifyCorsOptions } from "@fastify/cors"; -import fastifyMultipart from "@fastify/multipart"; -import fastifyRateLimit from "@fastify/rate-limit"; -import { OpenAIStream } from "ai"; -import Fastify, { RouteHandlerMethod } from "fastify"; -import * as openAiEdge from "openai-edge"; -import { buildSafeChromaService } from "./chroma.js"; -import { ClaudeService } from "./claudeService.js"; -import { COMPLETION_PARAMS } from "./constants.js"; -import { - CustomHandler, - ForbiddenError, - UnauthorizedError, -} from "./customHandler.js"; -import { buildDataAccessLayer } from "./dataAccessLayer/dataAccessLayer.js"; -import { buildAccessTokenHandler } from "./handlers/buildAccessTokenHandler.js"; -import { revokeTokenHandler } from "./handlers/revokeTokenHandler.js"; -import { validationHandler } from "./handlers/validationHandler.js"; -import { publishHandler } from "./publishHandler.js"; -import { ReplicateService } from "./replicateService.js"; -import { - Environment, - parseCreateIssueBody, - parseCreateIssueParams, - parseSendChatBody, - parseSendMessageBody, -} from "./schema.js"; -import { Auth } from "./services/Auth.js"; -import { GithubProvider } from "./services/GithubProvider.js"; -import { SourceControl } from "./services/SourceControl.js"; -import { - CLAIM_ISSUE_CREATION, - TokenExpiredError, - TokenInsufficientClaimsError, - TokenNotFoundError, - TokenNotVerifiedError, - TokenRevokedError, - TokenService, -} from "./services/tokenService.js"; -import { areClerkKeysSet, getCustomAccessToken } from "./util.js"; - -const getSourceControlProvider = ( - provider: "github", - repo: string, - oAuthToken: string, -) => { - switch (provider) { - case "github": { - return new GithubProvider(repo, oAuthToken); - } - } -}; - -export const runServer = async (environment: Environment) => { - const port = parseInt(environment.PORT, 10); - const X_CODEMOD_ACCESS_TOKEN = ( - environment.X_CODEMOD_ACCESS_TOKEN ?? "" - ).toLocaleLowerCase(); - const X_INTUITA_ACCESS_TOKEN = ( - environment.X_INTUITA_ACCESS_TOKEN ?? "" - ).toLocaleLowerCase(); - - if (Number.isNaN(port)) { - throw new Error(`Invalid port ${environment.PORT}`); - } - - const dataAccessLayer = await buildDataAccessLayer( - environment.DATABASE_URI ?? "sqlite::memory:", - ); - - const { ChatGPTAPI } = await import("chatgpt"); - - const chromaService = await buildSafeChromaService(environment); - - const sourceControl = new SourceControl(); - const auth = environment.CLERK_SECRET_KEY - ? new Auth(environment.CLERK_SECRET_KEY) - : null; - - const chatGptApi = - environment.OPEN_AI_API_KEY !== undefined - ? new ChatGPTAPI({ - apiKey: environment.OPEN_AI_API_KEY, - completionParams: { - ...COMPLETION_PARAMS, - }, - }) - : null; - - const openAiEdgeApi = - environment.OPEN_AI_API_KEY !== undefined - ? new openAiEdge.OpenAIApi( - new openAiEdge.Configuration({ - apiKey: environment.OPEN_AI_API_KEY, - }), - ) - : null; - - const fastify = Fastify({ - logger: true, - }); - - await fastify.register(cors, { - origin: (origin, cb) => { - if (!origin) { - cb(null, true); - return; - } - - const hostname = new URL(origin).hostname.replace(/^www\./, ""); - - if (hostname === "localhost" || hostname === "codemod.studio") { - cb(null, true); - return; - } - - cb(new Error("Not allowed"), false); - }, - methods: ["POST", "PUT", "PATCH", "GET", "DELETE", "OPTIONS"], - exposedHeaders: [ - X_CODEMOD_ACCESS_TOKEN, - // TODO deprecated - X_INTUITA_ACCESS_TOKEN, - "x-clerk-auth-reason", - "x-clerk-auth-message", - ], - allowedHeaders: [ - X_CODEMOD_ACCESS_TOKEN, - // TODO deprecated - X_INTUITA_ACCESS_TOKEN, - "Content-Type", - "Authorization", - ], - } satisfies FastifyCorsOptions); - - await fastify.register(fastifyRateLimit.default, { - max: 20, - timeWindow: 60 * 1000, // 1 minute - }); - - await fastify.register(fastifyMultipart); - - const tokenService = new TokenService( - dataAccessLayer, - environment.ENCRYPTION_KEY ?? "", - environment.SIGNATURE_PRIVATE_KEY ?? "", - environment.PEPPER ?? "", - ); - - const clerkClient = areClerkKeysSet(environment) - ? createClerkClient({ - publishableKey: environment.CLERK_PUBLISH_KEY, - secretKey: environment.CLERK_SECRET_KEY, - jwtKey: environment.CLERK_JWT_KEY, - }) - : null; - - const wrapRequestHandlerMethod = - (handler: CustomHandler): RouteHandlerMethod => - async (request, reply) => { - const getAccessTokenOrThrow = () => { - const accessToken = getCustomAccessToken(environment, request.headers); - - if (accessToken === null) { - throw new UnauthorizedError(); - } - - return accessToken; - }; - - const setAccessToken = (accessToken: string) => { - reply.header(X_INTUITA_ACCESS_TOKEN, accessToken); - reply.header(X_CODEMOD_ACCESS_TOKEN, accessToken); - }; - - const getClerkUserId = async (): Promise => { - const { userId } = getAuth(request); - - if (!userId) { - throw new UnauthorizedError(); - } - - return userId; - }; - - const now = () => Date.now(); - - try { - const data = await handler({ - tokenService, - getAccessTokenOrThrow, - setAccessToken, - clerkClient, - getClerkUserId, - now, - }); - - reply.type("application/json").code(200); - - return data; - } catch (error) { - if (error instanceof TokenExpiredError) { - reply.type("application/json").code(400); - - return { - error: "Token expired", - }; - } - - if (error instanceof TokenRevokedError) { - reply.type("application/json").code(400); - return { - error: "Token revoked", - }; - } - if (error instanceof TokenNotFoundError) { - reply.type("application/json").code(400); - return { - error: "Token not found", - }; - } - if (error instanceof TokenInsufficientClaimsError) { - reply.type("application/json").code(400); - return { - error: "Token has insufficient claims", - }; - } - if (error instanceof TokenNotVerifiedError) { - reply.type("application/json").code(400); - return { - error: "Token not verified", - }; - } - - if (error instanceof UnauthorizedError) { - reply.code(401).send(); - return; - } - - if (error instanceof ForbiddenError) { - reply.code(403).send(); - return; - } - - reply.code(500).send(); - return; - } - }; - - const publicRoutes: Fastify.FastifyPluginCallback = ( - instance, - _opts, - done, - ) => { - instance.get("/", async (_, reply) => { - reply.type("application/json").code(200); - return { data: {} }; - }); - - instance.post( - "/validateAccessToken", - wrapRequestHandlerMethod(validationHandler), - ); - - instance.delete( - "/revokeToken", - wrapRequestHandlerMethod(revokeTokenHandler), - ); - - instance.post("/sourceControl/:provider/issues", async (request, reply) => { - if (!auth) { - throw new Error("This endpoint requires auth configuration."); - } - - const { provider } = parseCreateIssueParams(request.params); - - const { repo, title, body } = parseCreateIssueBody(request.body); - - const accessToken = getCustomAccessToken(environment, request.headers); - - if (accessToken === null) { - return reply.code(401).send(); - } - - const userId = await tokenService.findUserIdMetadataFromToken( - accessToken, - Date.now(), - CLAIM_ISSUE_CREATION, - ); - - const oAuthToken = await auth.getOAuthToken(userId, provider); - - const sourceControlProvider = getSourceControlProvider( - provider, - repo, - oAuthToken, - ); - - const result = await sourceControl.createIssue(sourceControlProvider, { - title, - body, - }); - - reply.type("application/json").code(200); - return result; - }); - - done(); - }; - const protectedRoutes: Fastify.FastifyPluginCallback = ( - instance, - _opts, - done, - ) => { - if (areClerkKeysSet(environment)) { - const clerkOptions = { - publishableKey: environment.CLERK_PUBLISH_KEY, - secretKey: environment.CLERK_SECRET_KEY, - jwtKey: environment.CLERK_JWT_KEY, - }; - - instance.register(clerkPlugin, clerkOptions); - } else { - console.warn("No Clerk keys set. Authentication is disabled."); - } - - const claudeService = new ClaudeService( - environment.CLAUDE_API_KEY ?? null, - 1024, - ); - - const replicateService = new ReplicateService( - environment.REPLICATE_API_KEY ?? null, - ); - - instance.post( - "/buildAccessToken", - wrapRequestHandlerMethod(buildAccessTokenHandler), - ); - - instance.post("/sendMessage", async (request, reply) => { - if (areClerkKeysSet(environment)) { - const { userId } = getAuth(request); - if (!userId) { - return reply.code(401).send(); - } - } else { - console.warn("No Clerk keys set. Authentication is disabled."); - } - - if (chatGptApi === null) { - throw new Error("The Chat GPT API requires the authentication key"); - } - - const { message, parentMessageId } = parseSendMessageBody(request.body); - - const options: { - parentMessageId?: string; - } = {}; - - if (parentMessageId) { - options.parentMessageId = parentMessageId; - } - - const result = await chatGptApi.sendMessage(message, options); - - reply.type("application/json").code(200); - return result; - }); - - instance.post("/sendChat", async (request, reply) => { - if (areClerkKeysSet(environment)) { - const { userId } = getAuth(request); - if (!userId) { - return reply.code(401).send(); - } - } else { - console.warn("No Clerk keys set. Authentication is disabled."); - } - - const { messages, engine } = parseSendChatBody(request.body); - - if (!messages[0]) { - return reply.code(400).send(); - } - - if (engine === "claude-2.0" || engine === "claude-instant-1.2") { - const completion = await claudeService.complete( - engine, - messages[0].content, - ); - - reply.type("text/plain; charset=utf-8").code(200); - - return completion ?? ""; - } - - if (engine === "replit-code-v1-3b") { - const completion = await replicateService.complete(messages[0].content); - - reply.type("text/plain; charset=utf-8").code(200); - - return completion ?? ""; - } - - if (engine === "gpt-4-with-chroma") { - // chat history is not supported. passing all messages as single prompt. - const prompt = messages - .map(({ content, role }) => `${role}: ${content}`) - .join("\n"); - - const completion = await chromaService.complete(prompt); - - reply.type("text/plain; charset=utf-8").code(200); - - return completion ?? ""; - } - - if (openAiEdgeApi === null) { - throw new Error( - "You need to provide the OPEN_AI_API_KEY to use this endpoint", - ); - } - - const response = await openAiEdgeApi.createChatCompletion({ - ...COMPLETION_PARAMS, - messages: messages.slice(), - stream: true, - }); - - const stream = OpenAIStream(response); - - // the following code is inspired by the implementation of the streamToResponse function - // available here: https://github.com/vercel-labs/ai/blob/164b33d963250a53bbaaabb7b68d143f81541a7a/packages/core/streams/streaming-text-response.ts#L22C17-L22C33 - - reply.hijack(); - - const replyHeaders = reply.getHeaders(); - - const headers: OutgoingHttpHeaders = {}; - - Object.keys(replyHeaders).forEach((key) => { - const value = replyHeaders[key]; - - if (value === undefined || typeof value === "number") { - return; - } - - headers[key] = value; - }); - - headers["Content-Type"] = "text/plain; charset=utf-8"; - - reply.raw.writeHead(200, headers); - - const reader = stream.getReader(); - - const writeToReplyRaw = async () => { - const { done, value } = await reader.read(); - - if (done) { - reply.raw.end(); - return; - } - - reply.raw.write(value); - - await writeToReplyRaw(); - }; - - await writeToReplyRaw(); - - return; - }); - - instance.post("/publish", publishHandler(environment, tokenService)); - - done(); - }; - - // @ts-expect-error setup a display name not to trigger require.cache down the line - protectedRoutes[Symbol.for("fastify.display-name")] = "protectedRoutes"; - // @ts-expect-error setup a display name not to trigger require.cache down the line - publicRoutes[Symbol.for("fastify.display-name")] = "publicRoutes"; - - fastify.register(protectedRoutes); - fastify.register(publicRoutes); - await fastify.listen({ port, host: "0.0.0.0" }); - - return () => { - return fastify.close(); - }; -}; diff --git a/apps/studio-backend/src/schemata/env.ts b/apps/studio-backend/src/schemata/env.ts new file mode 100644 index 000000000..e09805741 --- /dev/null +++ b/apps/studio-backend/src/schemata/env.ts @@ -0,0 +1,49 @@ +import { + Output, + ValiError, + coerce, + literal, + number, + object, + optional, + parse, + string, +} from "valibot"; + +export const environmentSchema = object({ + PORT: coerce(number(), (input) => Number(input)), + DATA: optional(string()), + X_CODEMOD_ACCESS_TOKEN: optional(string()), + X_INTUITA_ACCESS_TOKEN: optional(string()), + CLERK_DISABLED: optional(literal("true")), + // unused start + ENCRYPTION_KEY: optional(string()), + SIGNATURE_PRIVATE_KEY: optional(string()), + PEPPER: optional(string()), + AWS_ACCESS_KEY_ID: optional(string()), + AWS_SECRET_ACCESS_KEY: optional(string()), + DATABASE_URI: string(), + // unused end + OPEN_AI_API_KEY: optional(string()), + CHROMA_BACKEND_URL: optional(string()), + CLAUDE_API_KEY: optional(string()), + CLERK_PUBLISH_KEY: optional(string()), + CLERK_SECRET_KEY: optional(string()), + CLERK_JWT_KEY: optional(string()), + REPLICATE_API_KEY: optional(string()), +}); + +export type Environment = Output; + +export const parseEnvironment = (input: unknown) => { + try { + return parse(environmentSchema, input); + } catch (err) { + console.log((err as ValiError).issues[0].path); + throw new Error( + `Invalid environment: ${(err as ValiError).issues + .map((i) => i.path?.join(".")) + .join(", ")}`, + ); + } +}; diff --git a/apps/studio-backend/src/schemata/query.ts b/apps/studio-backend/src/schemata/query.ts new file mode 100644 index 000000000..b896bc53c --- /dev/null +++ b/apps/studio-backend/src/schemata/query.ts @@ -0,0 +1,28 @@ +import { + Output, + boolean, + coerce, + literal, + number, + object, + optional, + parse, + string, + union, +} from "valibot"; + +export const getCodemodsQuerySchema = object({ + featured: optional(coerce(boolean(), (input) => input === "true")), + verified: optional(coerce(boolean(), (input) => input === "true")), + private: optional(coerce(boolean(), (input) => input === "true")), +}); +export type GetCodemodsQuery = Output; +export const parseGetCodemodsQuery = (input: unknown) => + parse(getCodemodsQuerySchema, input); + +export const getCodemodBySlugParamsSchema = object({ + slug: string(), +}); +export type GetCodemodBySlug = Output; +export const parseGetCodemodBySlugParams = (input: unknown) => + parse(getCodemodBySlugParamsSchema, input); diff --git a/apps/studio-backend/src/schema.ts b/apps/studio-backend/src/schemata/schema.ts similarity index 54% rename from apps/studio-backend/src/schema.ts rename to apps/studio-backend/src/schemata/schema.ts index 758e33515..7800fead7 100644 --- a/apps/studio-backend/src/schema.ts +++ b/apps/studio-backend/src/schemata/schema.ts @@ -1,32 +1,5 @@ import * as S from "@effect/schema/Schema"; -export const environmentSchema = S.struct({ - PORT: S.string, - DATA: S.optional(S.string), - X_CODEMOD_ACCESS_TOKEN: S.optional(S.string), - X_INTUITA_ACCESS_TOKEN: S.optional(S.string), - CLERK_DISABLED: S.optional(S.literal("true")), - // unused start - ENCRYPTION_KEY: S.optional(S.string), - SIGNATURE_PRIVATE_KEY: S.optional(S.string), - PEPPER: S.optional(S.string), - AWS_ACCESS_KEY_ID: S.optional(S.string), - AWS_SECRET_ACCESS_KEY: S.optional(S.string), - DATABASE_URI: S.optional(S.string), - // unused end - OPEN_AI_API_KEY: S.optional(S.string), - CHROMA_BACKEND_URL: S.optional(S.string), - CLAUDE_API_KEY: S.optional(S.string), - CLERK_PUBLISH_KEY: S.optional(S.string), - CLERK_SECRET_KEY: S.optional(S.string), - CLERK_JWT_KEY: S.optional(S.string), - REPLICATE_API_KEY: S.optional(S.string), -}); - -export type Environment = S.Schema.To; - -export const parseEnvironment = S.parseSync(environmentSchema); - const engineSchema = S.union( S.literal("gpt-4"), S.literal("claude-2.0"), diff --git a/apps/studio-backend/src/server.ts b/apps/studio-backend/src/server.ts new file mode 100644 index 000000000..915b9751b --- /dev/null +++ b/apps/studio-backend/src/server.ts @@ -0,0 +1,541 @@ +import "dotenv/config"; + +import { OutgoingHttpHeaders } from "node:http"; +import { clerkPlugin, createClerkClient, getAuth } from "@clerk/fastify"; +import cors, { FastifyCorsOptions } from "@fastify/cors"; +import fastifyMultipart from "@fastify/multipart"; +import fastifyRateLimit from "@fastify/rate-limit"; +import { OpenAIStream } from "ai"; +import Fastify, { FastifyPluginCallback, RouteHandlerMethod } from "fastify"; +import * as openAiEdge from "openai-edge"; +import { buildSafeChromaService } from "./chroma.js"; +import { ClaudeService } from "./claudeService.js"; +import { COMPLETION_PARAMS } from "./constants.js"; +import { + CustomHandler, + ForbiddenError, + UnauthorizedError, +} from "./customHandler.js"; +import { buildDataAccessLayer } from "./db/dataAccessLayer.js"; +import { prisma } from "./db/prisma.js"; +import { buildAccessTokenHandler } from "./handlers/buildAccessTokenHandler.js"; +import { revokeTokenHandler } from "./handlers/revokeTokenHandler.js"; +import { validationHandler } from "./handlers/validationHandler.js"; +import { publishHandler } from "./publishHandler.js"; +import { ReplicateService } from "./replicateService.js"; +import { parseEnvironment } from "./schemata/env.js"; +import { + parseGetCodemodBySlugParams, + parseGetCodemodsQuery, +} from "./schemata/query.js"; +import { + parseCreateIssueBody, + parseCreateIssueParams, + parseSendChatBody, + parseSendMessageBody, +} from "./schemata/schema.js"; +import { Auth } from "./services/Auth.js"; +import { GithubProvider } from "./services/GithubProvider.js"; +import { SourceControl } from "./services/SourceControl.js"; +import { + CLAIM_ISSUE_CREATION, + TokenExpiredError, + TokenInsufficientClaimsError, + TokenNotFoundError, + TokenNotVerifiedError, + TokenRevokedError, + TokenService, +} from "./services/tokenService.js"; +import { areClerkKeysSet, getCustomAccessToken } from "./util.js"; + +const getSourceControlProvider = ( + provider: "github", + repo: string, + oAuthToken: string, +) => { + switch (provider) { + case "github": { + return new GithubProvider(repo, oAuthToken); + } + } +}; + +const environment = parseEnvironment(process.env); + +const X_CODEMOD_ACCESS_TOKEN = ( + environment.X_CODEMOD_ACCESS_TOKEN ?? "" +).toLocaleLowerCase(); +const X_INTUITA_ACCESS_TOKEN = ( + environment.X_INTUITA_ACCESS_TOKEN ?? "" +).toLocaleLowerCase(); + +const initApp = async (toRegister: FastifyPluginCallback[]) => { + const { PORT: port } = environment; + if (Number.isNaN(port)) { + throw new Error(`Invalid port ${port}`); + } + + const fastify = Fastify({ + logger: true, + }); + + const handleProcessExit = (code: 0 | 1) => { + fastify.close(); + + setTimeout(() => { + process.exit(code); + }, 1000).unref(); + }; + + process.on("uncaughtException", (error) => { + console.error(error); + handleProcessExit(1); + }); + process.on("unhandledRejection", (reason) => { + console.error(reason); + handleProcessExit(1); + }); + process.on("SIGTERM", (signal) => { + console.log(signal); + handleProcessExit(0); + }); + process.on("SIGINT", (signal) => { + console.log(signal); + handleProcessExit(0); + }); + + await fastify.register(cors, { + origin: (origin, cb) => { + if (!origin) { + cb(null, true); + return; + } + + const hostname = new URL(origin).hostname.replace(/^www\./, ""); + + if (hostname === "localhost" || hostname === "codemod.studio") { + cb(null, true); + return; + } + + cb(new Error("Not allowed"), false); + }, + methods: ["POST", "PUT", "PATCH", "GET", "DELETE", "OPTIONS"], + exposedHeaders: [ + X_CODEMOD_ACCESS_TOKEN, + // TODO deprecated + X_INTUITA_ACCESS_TOKEN, + "x-clerk-auth-reason", + "x-clerk-auth-message", + ], + allowedHeaders: [ + X_CODEMOD_ACCESS_TOKEN, + // TODO deprecated + X_INTUITA_ACCESS_TOKEN, + "Content-Type", + "Authorization", + ], + } satisfies FastifyCorsOptions); + + await fastify.register(fastifyRateLimit, { + max: 20, + timeWindow: 60 * 1000, // 1 minute + }); + + await fastify.register(fastifyMultipart); + + for (const plugin of toRegister) { + await fastify.register(plugin); + } + + await fastify.listen({ port, host: "0.0.0.0" }); +}; + +const dataAccessLayer = await buildDataAccessLayer(environment.DATABASE_URI); + +const { ChatGPTAPI } = await import("chatgpt"); + +const chromaService = await buildSafeChromaService(environment); + +const sourceControl = new SourceControl(); +const auth = environment.CLERK_SECRET_KEY + ? new Auth(environment.CLERK_SECRET_KEY) + : null; + +const chatGptApi = + environment.OPEN_AI_API_KEY !== undefined + ? new ChatGPTAPI({ + apiKey: environment.OPEN_AI_API_KEY, + completionParams: { + ...COMPLETION_PARAMS, + }, + }) + : null; + +const openAiEdgeApi = + environment.OPEN_AI_API_KEY !== undefined + ? new openAiEdge.OpenAIApi( + new openAiEdge.Configuration({ + apiKey: environment.OPEN_AI_API_KEY, + }), + ) + : null; + +const tokenService = new TokenService( + dataAccessLayer, + environment.ENCRYPTION_KEY ?? "", + environment.SIGNATURE_PRIVATE_KEY ?? "", + environment.PEPPER ?? "", +); + +const clerkClient = areClerkKeysSet(environment) + ? createClerkClient({ + publishableKey: environment.CLERK_PUBLISH_KEY, + secretKey: environment.CLERK_SECRET_KEY, + jwtKey: environment.CLERK_JWT_KEY, + }) + : null; + +const wrapRequestHandlerMethod = + (handler: CustomHandler): RouteHandlerMethod => + async (request, reply) => { + const getAccessTokenOrThrow = () => { + const accessToken = getCustomAccessToken(environment, request.headers); + + if (accessToken === null) { + throw new UnauthorizedError(); + } + + return accessToken; + }; + + const setAccessToken = (accessToken: string) => { + reply.header(X_INTUITA_ACCESS_TOKEN, accessToken); + reply.header(X_CODEMOD_ACCESS_TOKEN, accessToken); + }; + + const getClerkUserId = async (): Promise => { + const { userId } = getAuth(request); + + if (!userId) { + throw new UnauthorizedError(); + } + + return userId; + }; + + const now = () => Date.now(); + + try { + const data = await handler({ + tokenService, + getAccessTokenOrThrow, + setAccessToken, + clerkClient, + getClerkUserId, + now, + }); + + reply.type("application/json").code(200); + + return data; + } catch (error) { + if (error instanceof TokenExpiredError) { + reply.type("application/json").code(400); + + return { + error: "Token expired", + }; + } + + if (error instanceof TokenRevokedError) { + reply.type("application/json").code(400); + return { + error: "Token revoked", + }; + } + if (error instanceof TokenNotFoundError) { + reply.type("application/json").code(400); + return { + error: "Token not found", + }; + } + if (error instanceof TokenInsufficientClaimsError) { + reply.type("application/json").code(400); + return { + error: "Token has insufficient claims", + }; + } + if (error instanceof TokenNotVerifiedError) { + reply.type("application/json").code(400); + return { + error: "Token not verified", + }; + } + + if (error instanceof UnauthorizedError) { + reply.code(401).send(); + return; + } + + if (error instanceof ForbiddenError) { + reply.code(403).send(); + return; + } + + reply.code(500).send(); + return; + } + }; + +const publicRoutes: FastifyPluginCallback = (instance, _opts, done) => { + instance.get("/", async (_, reply) => { + reply.type("application/json").code(200); + return { data: {} }; + }); + + instance.get("/codemods", async (request, reply) => { + const query = parseGetCodemodsQuery(request.query); + + reply.type("application/json").code(200); + return prisma.codemod.findMany({ + where: { + featured: query.featured, + verified: query.verified, + private: query.private, + }, + }); + }); + + instance.get("/codemods/:slug", async (request, reply) => { + const { slug } = parseGetCodemodBySlugParams(request.params); + + reply.type("application/json").code(200); + return prisma.codemod.findFirst({ + where: { + slug, + }, + }); + }); + + instance.post( + "/validateAccessToken", + wrapRequestHandlerMethod(validationHandler), + ); + + instance.delete("/revokeToken", wrapRequestHandlerMethod(revokeTokenHandler)); + + instance.post("/sourceControl/:provider/issues", async (request, reply) => { + if (!auth) { + throw new Error("This endpoint requires auth configuration."); + } + + const { provider } = parseCreateIssueParams(request.params); + + const { repo, title, body } = parseCreateIssueBody(request.body); + + const accessToken = getCustomAccessToken(environment, request.headers); + + if (accessToken === null) { + return reply.code(401).send(); + } + + const userId = await tokenService.findUserIdMetadataFromToken( + accessToken, + Date.now(), + CLAIM_ISSUE_CREATION, + ); + + const oAuthToken = await auth.getOAuthToken(userId, provider); + + const sourceControlProvider = getSourceControlProvider( + provider, + repo, + oAuthToken, + ); + + const result = await sourceControl.createIssue(sourceControlProvider, { + title, + body, + }); + + reply.type("application/json").code(200); + return result; + }); + + done(); +}; + +const protectedRoutes: FastifyPluginCallback = (instance, _opts, done) => { + if (areClerkKeysSet(environment)) { + const clerkOptions = { + publishableKey: environment.CLERK_PUBLISH_KEY, + secretKey: environment.CLERK_SECRET_KEY, + jwtKey: environment.CLERK_JWT_KEY, + }; + + instance.register(clerkPlugin, clerkOptions); + } else { + console.warn("No Clerk keys set. Authentication is disabled."); + } + + const claudeService = new ClaudeService( + environment.CLAUDE_API_KEY ?? null, + 1024, + ); + + const replicateService = new ReplicateService( + environment.REPLICATE_API_KEY ?? null, + ); + + instance.post( + "/buildAccessToken", + wrapRequestHandlerMethod(buildAccessTokenHandler), + ); + + instance.post("/sendMessage", async (request, reply) => { + if (areClerkKeysSet(environment)) { + const { userId } = getAuth(request); + if (!userId) { + return reply.code(401).send(); + } + } else { + console.warn("No Clerk keys set. Authentication is disabled."); + } + + if (chatGptApi === null) { + throw new Error("The Chat GPT API requires the authentication key"); + } + + const { message, parentMessageId } = parseSendMessageBody(request.body); + + const options: { + parentMessageId?: string; + } = {}; + + if (parentMessageId) { + options.parentMessageId = parentMessageId; + } + + const result = await chatGptApi.sendMessage(message, options); + + reply.type("application/json").code(200); + return result; + }); + + instance.post("/sendChat", async (request, reply) => { + if (areClerkKeysSet(environment)) { + const { userId } = getAuth(request); + if (!userId) { + return reply.code(401).send(); + } + } else { + console.warn("No Clerk keys set. Authentication is disabled."); + } + + const { messages, engine } = parseSendChatBody(request.body); + + if (!messages[0]) { + return reply.code(400).send(); + } + + if (engine === "claude-2.0" || engine === "claude-instant-1.2") { + const completion = await claudeService.complete( + engine, + messages[0].content, + ); + + reply.type("text/plain; charset=utf-8").code(200); + + return completion ?? ""; + } + + if (engine === "replit-code-v1-3b") { + const completion = await replicateService.complete(messages[0].content); + + reply.type("text/plain; charset=utf-8").code(200); + + return completion ?? ""; + } + + if (engine === "gpt-4-with-chroma") { + // chat history is not supported. passing all messages as single prompt. + const prompt = messages + .map(({ content, role }) => `${role}: ${content}`) + .join("\n"); + + const completion = await chromaService.complete(prompt); + + reply.type("text/plain; charset=utf-8").code(200); + + return completion ?? ""; + } + + if (openAiEdgeApi === null) { + throw new Error( + "You need to provide the OPEN_AI_API_KEY to use this endpoint", + ); + } + + const response = await openAiEdgeApi.createChatCompletion({ + ...COMPLETION_PARAMS, + messages: messages.slice(), + stream: true, + }); + + const stream = OpenAIStream(response); + + // the following code is inspired by the implementation of the streamToResponse function + // available here: https://github.com/vercel-labs/ai/blob/164b33d963250a53bbaaabb7b68d143f81541a7a/packages/core/streams/streaming-text-response.ts#L22C17-L22C33 + + reply.hijack(); + + const replyHeaders = reply.getHeaders(); + + const headers: OutgoingHttpHeaders = {}; + + Object.keys(replyHeaders).forEach((key) => { + const value = replyHeaders[key]; + + if (value === undefined || typeof value === "number") { + return; + } + + headers[key] = value; + }); + + headers["Content-Type"] = "text/plain; charset=utf-8"; + + reply.raw.writeHead(200, headers); + + const reader = stream.getReader(); + + const writeToReplyRaw = async () => { + const { done, value } = await reader.read(); + + if (done) { + reply.raw.end(); + return; + } + + reply.raw.write(value); + + await writeToReplyRaw(); + }; + + await writeToReplyRaw(); + + return; + }); + + instance.post("/publish", publishHandler(environment, tokenService)); + + done(); +}; + +// @ts-expect-error setup a display name not to trigger require.cache down the line +protectedRoutes[Symbol.for("fastify.display-name")] = "protectedRoutes"; +// @ts-expect-error setup a display name not to trigger require.cache down the line +publicRoutes[Symbol.for("fastify.display-name")] = "publicRoutes"; + +await initApp([publicRoutes, protectedRoutes]); diff --git a/apps/studio-backend/src/services/tokenService.test.ts b/apps/studio-backend/src/services/tokenService.test.ts index e9c4fcb42..fcfb748dc 100644 --- a/apps/studio-backend/src/services/tokenService.test.ts +++ b/apps/studio-backend/src/services/tokenService.test.ts @@ -1,5 +1,5 @@ import { describe, expect, test } from "vitest"; -import { buildDataAccessLayer } from "../dataAccessLayer/dataAccessLayer.js"; +import { buildDataAccessLayer } from "../db/dataAccessLayer.js"; import { TokenNotFoundError, TokenRevokedError, diff --git a/apps/studio-backend/src/services/tokenService.ts b/apps/studio-backend/src/services/tokenService.ts index 6f9d04337..39b4d1cd3 100644 --- a/apps/studio-backend/src/services/tokenService.ts +++ b/apps/studio-backend/src/services/tokenService.ts @@ -7,9 +7,9 @@ import { sign, verifyTokenMetadata, } from "../crypto/crypto.js"; -import { TokenMetadata } from "../dataAccessLayer/buildTokenMetadataRepository.js"; -import { TokenRevocation } from "../dataAccessLayer/buildTokenRevocationsRepository.js"; -import { DataAccessLayer } from "../dataAccessLayer/dataAccessLayer.js"; +import { TokenMetadata } from "../db/buildTokenMetadataRepository.js"; +import { TokenRevocation } from "../db/buildTokenRevocationsRepository.js"; +import { DataAccessLayer } from "../db/dataAccessLayer.js"; export const CLAIM_PUBLISHING = 0x1; export const CLAIM_ISSUE_CREATION = 0x2; diff --git a/apps/studio-backend/src/util.ts b/apps/studio-backend/src/util.ts index a327de2a0..e0216d471 100644 --- a/apps/studio-backend/src/util.ts +++ b/apps/studio-backend/src/util.ts @@ -1,5 +1,5 @@ import { IncomingHttpHeaders } from "node:http"; -import { Environment } from "./schema.js"; +import { Environment } from "./schemata/env.js"; export const areClerkKeysSet = ( environment: Environment, diff --git a/packages/tsconfig/base.json b/packages/tsconfig/base.json index c47a9d0f7..314368a22 100644 --- a/packages/tsconfig/base.json +++ b/packages/tsconfig/base.json @@ -19,6 +19,7 @@ "noUnusedParameters": false, "preserveWatchOutput": true, "strict": true, + "strictNullChecks": true, "module": "esnext", "incremental": true, "noUncheckedIndexedAccess": true, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c63c7363a..43adddfa1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4606,8 +4606,8 @@ importers: apps/studio-backend: dependencies: '@aws-sdk/client-s3': - specifier: ^3.478.0 - version: 3.515.0 + specifier: ^3.525.0 + version: 3.525.0 '@clerk/backend': specifier: 0.36.0 version: 0.36.0(react@18.2.0) @@ -4618,19 +4618,22 @@ importers: specifier: 0.54.0 version: 0.54.0(effect@2.0.0-next.61)(fast-check@3.15.1) '@fastify/busboy': - specifier: ^2.1.0 - version: 2.1.0 + specifier: ^2.1.1 + version: 2.1.1 '@fastify/cors': specifier: 8.5.0 version: 8.5.0 '@fastify/multipart': - specifier: ^8.0.0 + specifier: ^8.1.0 version: 8.1.0 '@fastify/rate-limit': specifier: 9.0.1 version: 9.0.1 + '@prisma/client': + specifier: 5.10.2 + version: 5.10.2(prisma@5.10.2) '@types/tar': - specifier: ^6.1.10 + specifier: ^6.1.11 version: 6.1.11 ai: specifier: 2.2.29 @@ -4644,12 +4647,15 @@ importers: chromadb: specifier: 1.7.2 version: 1.7.2(openai@4.23.0) + dotenv: + specifier: ^16.4.5 + version: 16.4.5 fastify: specifier: 4.25.1 version: 4.25.1 langchain: specifier: 0.0.209 - version: 0.0.209(@aws-sdk/client-s3@3.515.0)(@aws-sdk/credential-provider-node@3.515.0)(axios@1.6.2)(chromadb@1.7.2)(pg@8.11.3)(replicate@0.25.2) + version: 0.0.209(@aws-sdk/client-s3@3.525.0)(@aws-sdk/credential-provider-node@3.525.0)(axios@1.6.2)(chromadb@1.7.2)(pg@8.11.3)(replicate@0.25.2) lru-cache: specifier: 10.1.0 version: 10.1.0 @@ -4665,31 +4671,49 @@ importers: pg: specifier: ^8.11.3 version: 8.11.3 + prisma: + specifier: ^5.10.2 + version: 5.10.2 replicate: specifier: 0.25.2 version: 0.25.2 sequelize: - specifier: ^6.36.0 - version: 6.37.0(pg@8.11.3)(sqlite3@5.1.7) + specifier: ^6.37.1 + version: 6.37.1(pg@8.11.3)(sqlite3@5.1.7) tar: specifier: ^6.2.0 version: 6.2.0 valibot: specifier: ^0.24.1 version: 0.24.1 + zod: + specifier: 3.21.4 + version: 3.21.4 + zod-prisma-types: + specifier: ^3.1.6 + version: 3.1.6 devDependencies: '@biomejs/biome': specifier: 1.5.3 version: 1.5.3 + '@codemod-com/tsconfig': + specifier: workspace:* + version: link:../../packages/tsconfig + '@faker-js/faker': + specifier: ^8.4.1 + version: 8.4.1 '@types/node': specifier: 20.10.5 version: 20.10.5 '@types/parse-github-url': specifier: 1.0.3 version: 1.0.3 - '@vercel/ncc': - specifier: 0.38.1 - version: 0.38.1 + '@types/pg': + specifier: ^8.11.2 + version: 8.11.2 + esbuild: + specifier: ^0.19.12 + version: 0.19.12 fastify-plugin: specifier: 4.5.1 version: 4.5.1 @@ -4702,6 +4726,9 @@ importers: ts-node: specifier: 10.9.2 version: 10.9.2(@types/node@20.10.5)(typescript@5.3.3) + tsx: + specifier: ^4.7.1 + version: 4.7.1 typescript: specifier: 5.3.3 version: 5.3.3 @@ -5072,7 +5099,7 @@ packages: resolution: {integrity: sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA==} dependencies: '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.515.0 + '@aws-sdk/types': 3.523.0 tslib: 1.14.1 dev: false @@ -5080,7 +5107,7 @@ packages: resolution: {integrity: sha512-ENNPPManmnVJ4BTXlOjAgD7URidbAznURqD0KvfREyc4o20DPYdEldU1f5cQ7Jbj0CJJSPaMIk/9ZshdB3210w==} dependencies: '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.515.0 + '@aws-sdk/types': 3.523.0 tslib: 1.14.1 dev: false @@ -5096,7 +5123,7 @@ packages: '@aws-crypto/ie11-detection': 3.0.0 '@aws-crypto/supports-web-crypto': 3.0.0 '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.515.0 + '@aws-sdk/types': 3.523.0 '@aws-sdk/util-locate-window': 3.495.0 '@aws-sdk/util-utf8-browser': 3.259.0 tslib: 1.14.1 @@ -5109,7 +5136,7 @@ packages: '@aws-crypto/sha256-js': 3.0.0 '@aws-crypto/supports-web-crypto': 3.0.0 '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.515.0 + '@aws-sdk/types': 3.523.0 '@aws-sdk/util-locate-window': 3.495.0 '@aws-sdk/util-utf8-browser': 3.259.0 tslib: 1.14.1 @@ -5119,7 +5146,7 @@ packages: resolution: {integrity: sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ==} dependencies: '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.515.0 + '@aws-sdk/types': 3.523.0 tslib: 1.14.1 dev: false @@ -5132,216 +5159,216 @@ packages: /@aws-crypto/util@3.0.0: resolution: {integrity: sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w==} dependencies: - '@aws-sdk/types': 3.515.0 + '@aws-sdk/types': 3.523.0 '@aws-sdk/util-utf8-browser': 3.259.0 tslib: 1.14.1 dev: false - /@aws-sdk/client-s3@3.515.0: - resolution: {integrity: sha512-K527n83hrMUdosxOYTzL63wtlJtmN5SUJZnGY1sUR6UyOrnOr9lS6t3AB6BgHqLFRFZJqSqmhflv2cOD7P1UPg==} + /@aws-sdk/client-s3@3.525.0: + resolution: {integrity: sha512-hoMGH8G9rezZDiJPsMjsyRVNfVHHa4u6lcZ09SQMmtFHWK0FUcC0DIKR5ripV5qGDbnV54i2JotXlLzAv0aNCQ==} engines: {node: '>=14.0.0'} dependencies: '@aws-crypto/sha1-browser': 3.0.0 '@aws-crypto/sha256-browser': 3.0.0 '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/client-sts': 3.515.0(@aws-sdk/credential-provider-node@3.515.0) - '@aws-sdk/core': 3.513.0 - '@aws-sdk/credential-provider-node': 3.515.0 - '@aws-sdk/middleware-bucket-endpoint': 3.515.0 - '@aws-sdk/middleware-expect-continue': 3.515.0 - '@aws-sdk/middleware-flexible-checksums': 3.515.0 - '@aws-sdk/middleware-host-header': 3.515.0 - '@aws-sdk/middleware-location-constraint': 3.515.0 - '@aws-sdk/middleware-logger': 3.515.0 - '@aws-sdk/middleware-recursion-detection': 3.515.0 - '@aws-sdk/middleware-sdk-s3': 3.515.0 - '@aws-sdk/middleware-signing': 3.515.0 - '@aws-sdk/middleware-ssec': 3.515.0 - '@aws-sdk/middleware-user-agent': 3.515.0 - '@aws-sdk/region-config-resolver': 3.515.0 - '@aws-sdk/signature-v4-multi-region': 3.515.0 - '@aws-sdk/types': 3.515.0 - '@aws-sdk/util-endpoints': 3.515.0 - '@aws-sdk/util-user-agent-browser': 3.515.0 - '@aws-sdk/util-user-agent-node': 3.515.0 - '@aws-sdk/xml-builder': 3.496.0 - '@smithy/config-resolver': 2.1.1 - '@smithy/core': 1.3.2 - '@smithy/eventstream-serde-browser': 2.1.1 - '@smithy/eventstream-serde-config-resolver': 2.1.1 - '@smithy/eventstream-serde-node': 2.1.1 - '@smithy/fetch-http-handler': 2.4.1 - '@smithy/hash-blob-browser': 2.1.1 - '@smithy/hash-node': 2.1.1 - '@smithy/hash-stream-node': 2.1.1 - '@smithy/invalid-dependency': 2.1.1 - '@smithy/md5-js': 2.1.1 - '@smithy/middleware-content-length': 2.1.1 - '@smithy/middleware-endpoint': 2.4.1 - '@smithy/middleware-retry': 2.1.1 - '@smithy/middleware-serde': 2.1.1 - '@smithy/middleware-stack': 2.1.1 - '@smithy/node-config-provider': 2.2.1 - '@smithy/node-http-handler': 2.3.1 - '@smithy/protocol-http': 3.1.1 - '@smithy/smithy-client': 2.3.1 - '@smithy/types': 2.9.1 - '@smithy/url-parser': 2.1.1 + '@aws-sdk/client-sts': 3.525.0(@aws-sdk/credential-provider-node@3.525.0) + '@aws-sdk/core': 3.525.0 + '@aws-sdk/credential-provider-node': 3.525.0 + '@aws-sdk/middleware-bucket-endpoint': 3.525.0 + '@aws-sdk/middleware-expect-continue': 3.523.0 + '@aws-sdk/middleware-flexible-checksums': 3.523.0 + '@aws-sdk/middleware-host-header': 3.523.0 + '@aws-sdk/middleware-location-constraint': 3.523.0 + '@aws-sdk/middleware-logger': 3.523.0 + '@aws-sdk/middleware-recursion-detection': 3.523.0 + '@aws-sdk/middleware-sdk-s3': 3.525.0 + '@aws-sdk/middleware-signing': 3.523.0 + '@aws-sdk/middleware-ssec': 3.523.0 + '@aws-sdk/middleware-user-agent': 3.525.0 + '@aws-sdk/region-config-resolver': 3.525.0 + '@aws-sdk/signature-v4-multi-region': 3.525.0 + '@aws-sdk/types': 3.523.0 + '@aws-sdk/util-endpoints': 3.525.0 + '@aws-sdk/util-user-agent-browser': 3.523.0 + '@aws-sdk/util-user-agent-node': 3.525.0 + '@aws-sdk/xml-builder': 3.523.0 + '@smithy/config-resolver': 2.1.4 + '@smithy/core': 1.3.5 + '@smithy/eventstream-serde-browser': 2.1.3 + '@smithy/eventstream-serde-config-resolver': 2.1.3 + '@smithy/eventstream-serde-node': 2.1.3 + '@smithy/fetch-http-handler': 2.4.3 + '@smithy/hash-blob-browser': 2.1.3 + '@smithy/hash-node': 2.1.3 + '@smithy/hash-stream-node': 2.1.3 + '@smithy/invalid-dependency': 2.1.3 + '@smithy/md5-js': 2.1.3 + '@smithy/middleware-content-length': 2.1.3 + '@smithy/middleware-endpoint': 2.4.4 + '@smithy/middleware-retry': 2.1.4 + '@smithy/middleware-serde': 2.1.3 + '@smithy/middleware-stack': 2.1.3 + '@smithy/node-config-provider': 2.2.4 + '@smithy/node-http-handler': 2.4.1 + '@smithy/protocol-http': 3.2.1 + '@smithy/smithy-client': 2.4.2 + '@smithy/types': 2.10.1 + '@smithy/url-parser': 2.1.3 '@smithy/util-base64': 2.1.1 '@smithy/util-body-length-browser': 2.1.1 '@smithy/util-body-length-node': 2.2.1 - '@smithy/util-defaults-mode-browser': 2.1.1 - '@smithy/util-defaults-mode-node': 2.2.0 - '@smithy/util-endpoints': 1.1.1 - '@smithy/util-retry': 2.1.1 - '@smithy/util-stream': 2.1.1 + '@smithy/util-defaults-mode-browser': 2.1.4 + '@smithy/util-defaults-mode-node': 2.2.3 + '@smithy/util-endpoints': 1.1.4 + '@smithy/util-retry': 2.1.3 + '@smithy/util-stream': 2.1.3 '@smithy/util-utf8': 2.1.1 - '@smithy/util-waiter': 2.1.1 + '@smithy/util-waiter': 2.1.3 fast-xml-parser: 4.2.5 tslib: 2.6.2 transitivePeerDependencies: - aws-crt dev: false - /@aws-sdk/client-sso-oidc@3.515.0(@aws-sdk/credential-provider-node@3.515.0): - resolution: {integrity: sha512-zACa8LNlPUdlNUBqQRf5a3MfouLNtcBfm84v2c8M976DwJrMGONPe1QjyLLsD38uESQiXiVQRruj/b000iMXNw==} + /@aws-sdk/client-sso-oidc@3.525.0(@aws-sdk/credential-provider-node@3.525.0): + resolution: {integrity: sha512-zz13k/6RkjPSLmReSeGxd8wzGiiZa4Odr2Tv3wTcxClM4wOjD+zOgGv4Fe32b9AMqaueiCdjbvdu7AKcYxFA4A==} engines: {node: '>=14.0.0'} peerDependencies: - '@aws-sdk/credential-provider-node': ^3.515.0 + '@aws-sdk/credential-provider-node': ^3.525.0 dependencies: '@aws-crypto/sha256-browser': 3.0.0 '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/client-sts': 3.515.0(@aws-sdk/credential-provider-node@3.515.0) - '@aws-sdk/core': 3.513.0 - '@aws-sdk/credential-provider-node': 3.515.0 - '@aws-sdk/middleware-host-header': 3.515.0 - '@aws-sdk/middleware-logger': 3.515.0 - '@aws-sdk/middleware-recursion-detection': 3.515.0 - '@aws-sdk/middleware-user-agent': 3.515.0 - '@aws-sdk/region-config-resolver': 3.515.0 - '@aws-sdk/types': 3.515.0 - '@aws-sdk/util-endpoints': 3.515.0 - '@aws-sdk/util-user-agent-browser': 3.515.0 - '@aws-sdk/util-user-agent-node': 3.515.0 - '@smithy/config-resolver': 2.1.1 - '@smithy/core': 1.3.2 - '@smithy/fetch-http-handler': 2.4.1 - '@smithy/hash-node': 2.1.1 - '@smithy/invalid-dependency': 2.1.1 - '@smithy/middleware-content-length': 2.1.1 - '@smithy/middleware-endpoint': 2.4.1 - '@smithy/middleware-retry': 2.1.1 - '@smithy/middleware-serde': 2.1.1 - '@smithy/middleware-stack': 2.1.1 - '@smithy/node-config-provider': 2.2.1 - '@smithy/node-http-handler': 2.3.1 - '@smithy/protocol-http': 3.1.1 - '@smithy/smithy-client': 2.3.1 - '@smithy/types': 2.9.1 - '@smithy/url-parser': 2.1.1 + '@aws-sdk/client-sts': 3.525.0(@aws-sdk/credential-provider-node@3.525.0) + '@aws-sdk/core': 3.525.0 + '@aws-sdk/credential-provider-node': 3.525.0 + '@aws-sdk/middleware-host-header': 3.523.0 + '@aws-sdk/middleware-logger': 3.523.0 + '@aws-sdk/middleware-recursion-detection': 3.523.0 + '@aws-sdk/middleware-user-agent': 3.525.0 + '@aws-sdk/region-config-resolver': 3.525.0 + '@aws-sdk/types': 3.523.0 + '@aws-sdk/util-endpoints': 3.525.0 + '@aws-sdk/util-user-agent-browser': 3.523.0 + '@aws-sdk/util-user-agent-node': 3.525.0 + '@smithy/config-resolver': 2.1.4 + '@smithy/core': 1.3.5 + '@smithy/fetch-http-handler': 2.4.3 + '@smithy/hash-node': 2.1.3 + '@smithy/invalid-dependency': 2.1.3 + '@smithy/middleware-content-length': 2.1.3 + '@smithy/middleware-endpoint': 2.4.4 + '@smithy/middleware-retry': 2.1.4 + '@smithy/middleware-serde': 2.1.3 + '@smithy/middleware-stack': 2.1.3 + '@smithy/node-config-provider': 2.2.4 + '@smithy/node-http-handler': 2.4.1 + '@smithy/protocol-http': 3.2.1 + '@smithy/smithy-client': 2.4.2 + '@smithy/types': 2.10.1 + '@smithy/url-parser': 2.1.3 '@smithy/util-base64': 2.1.1 '@smithy/util-body-length-browser': 2.1.1 '@smithy/util-body-length-node': 2.2.1 - '@smithy/util-defaults-mode-browser': 2.1.1 - '@smithy/util-defaults-mode-node': 2.2.0 - '@smithy/util-endpoints': 1.1.1 - '@smithy/util-middleware': 2.1.1 - '@smithy/util-retry': 2.1.1 + '@smithy/util-defaults-mode-browser': 2.1.4 + '@smithy/util-defaults-mode-node': 2.2.3 + '@smithy/util-endpoints': 1.1.4 + '@smithy/util-middleware': 2.1.3 + '@smithy/util-retry': 2.1.3 '@smithy/util-utf8': 2.1.1 tslib: 2.6.2 transitivePeerDependencies: - aws-crt dev: false - /@aws-sdk/client-sso@3.515.0: - resolution: {integrity: sha512-4oGBLW476zmkdN98lAns3bObRNO+DLOfg4MDUSR6l6GYBV/zGAtoy2O/FhwYKgA2L5h2ZtElGopLlk/1Q0ePLw==} + /@aws-sdk/client-sso@3.525.0: + resolution: {integrity: sha512-6KwGQWFoNLH1UupdWPFdKPfTgjSz1kN8/r8aCzuvvXBe4Pz+iDUZ6FEJzGWNc9AapjvZDNO1hs23slomM9rTaA==} engines: {node: '>=14.0.0'} dependencies: '@aws-crypto/sha256-browser': 3.0.0 '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/core': 3.513.0 - '@aws-sdk/middleware-host-header': 3.515.0 - '@aws-sdk/middleware-logger': 3.515.0 - '@aws-sdk/middleware-recursion-detection': 3.515.0 - '@aws-sdk/middleware-user-agent': 3.515.0 - '@aws-sdk/region-config-resolver': 3.515.0 - '@aws-sdk/types': 3.515.0 - '@aws-sdk/util-endpoints': 3.515.0 - '@aws-sdk/util-user-agent-browser': 3.515.0 - '@aws-sdk/util-user-agent-node': 3.515.0 - '@smithy/config-resolver': 2.1.1 - '@smithy/core': 1.3.2 - '@smithy/fetch-http-handler': 2.4.1 - '@smithy/hash-node': 2.1.1 - '@smithy/invalid-dependency': 2.1.1 - '@smithy/middleware-content-length': 2.1.1 - '@smithy/middleware-endpoint': 2.4.1 - '@smithy/middleware-retry': 2.1.1 - '@smithy/middleware-serde': 2.1.1 - '@smithy/middleware-stack': 2.1.1 - '@smithy/node-config-provider': 2.2.1 - '@smithy/node-http-handler': 2.3.1 - '@smithy/protocol-http': 3.1.1 - '@smithy/smithy-client': 2.3.1 - '@smithy/types': 2.9.1 - '@smithy/url-parser': 2.1.1 + '@aws-sdk/core': 3.525.0 + '@aws-sdk/middleware-host-header': 3.523.0 + '@aws-sdk/middleware-logger': 3.523.0 + '@aws-sdk/middleware-recursion-detection': 3.523.0 + '@aws-sdk/middleware-user-agent': 3.525.0 + '@aws-sdk/region-config-resolver': 3.525.0 + '@aws-sdk/types': 3.523.0 + '@aws-sdk/util-endpoints': 3.525.0 + '@aws-sdk/util-user-agent-browser': 3.523.0 + '@aws-sdk/util-user-agent-node': 3.525.0 + '@smithy/config-resolver': 2.1.4 + '@smithy/core': 1.3.5 + '@smithy/fetch-http-handler': 2.4.3 + '@smithy/hash-node': 2.1.3 + '@smithy/invalid-dependency': 2.1.3 + '@smithy/middleware-content-length': 2.1.3 + '@smithy/middleware-endpoint': 2.4.4 + '@smithy/middleware-retry': 2.1.4 + '@smithy/middleware-serde': 2.1.3 + '@smithy/middleware-stack': 2.1.3 + '@smithy/node-config-provider': 2.2.4 + '@smithy/node-http-handler': 2.4.1 + '@smithy/protocol-http': 3.2.1 + '@smithy/smithy-client': 2.4.2 + '@smithy/types': 2.10.1 + '@smithy/url-parser': 2.1.3 '@smithy/util-base64': 2.1.1 '@smithy/util-body-length-browser': 2.1.1 '@smithy/util-body-length-node': 2.2.1 - '@smithy/util-defaults-mode-browser': 2.1.1 - '@smithy/util-defaults-mode-node': 2.2.0 - '@smithy/util-endpoints': 1.1.1 - '@smithy/util-middleware': 2.1.1 - '@smithy/util-retry': 2.1.1 + '@smithy/util-defaults-mode-browser': 2.1.4 + '@smithy/util-defaults-mode-node': 2.2.3 + '@smithy/util-endpoints': 1.1.4 + '@smithy/util-middleware': 2.1.3 + '@smithy/util-retry': 2.1.3 '@smithy/util-utf8': 2.1.1 tslib: 2.6.2 transitivePeerDependencies: - aws-crt dev: false - /@aws-sdk/client-sts@3.515.0(@aws-sdk/credential-provider-node@3.515.0): - resolution: {integrity: sha512-ScYuvaIDgip3atOJIA1FU2n0gJkEdveu1KrrCPathoUCV5zpK8qQmO/n+Fj/7hKFxeKdFbB+4W4CsJWYH94nlg==} + /@aws-sdk/client-sts@3.525.0(@aws-sdk/credential-provider-node@3.525.0): + resolution: {integrity: sha512-a8NUGRvO6rkfTZCbMaCsjDjLbERCwIUU9dIywFYcRgbFhkupJ7fSaZz3Het98U51M9ZbTEpaTa3fz0HaJv8VJw==} engines: {node: '>=14.0.0'} peerDependencies: - '@aws-sdk/credential-provider-node': ^3.515.0 + '@aws-sdk/credential-provider-node': ^3.525.0 dependencies: '@aws-crypto/sha256-browser': 3.0.0 '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/core': 3.513.0 - '@aws-sdk/credential-provider-node': 3.515.0 - '@aws-sdk/middleware-host-header': 3.515.0 - '@aws-sdk/middleware-logger': 3.515.0 - '@aws-sdk/middleware-recursion-detection': 3.515.0 - '@aws-sdk/middleware-user-agent': 3.515.0 - '@aws-sdk/region-config-resolver': 3.515.0 - '@aws-sdk/types': 3.515.0 - '@aws-sdk/util-endpoints': 3.515.0 - '@aws-sdk/util-user-agent-browser': 3.515.0 - '@aws-sdk/util-user-agent-node': 3.515.0 - '@smithy/config-resolver': 2.1.1 - '@smithy/core': 1.3.2 - '@smithy/fetch-http-handler': 2.4.1 - '@smithy/hash-node': 2.1.1 - '@smithy/invalid-dependency': 2.1.1 - '@smithy/middleware-content-length': 2.1.1 - '@smithy/middleware-endpoint': 2.4.1 - '@smithy/middleware-retry': 2.1.1 - '@smithy/middleware-serde': 2.1.1 - '@smithy/middleware-stack': 2.1.1 - '@smithy/node-config-provider': 2.2.1 - '@smithy/node-http-handler': 2.3.1 - '@smithy/protocol-http': 3.1.1 - '@smithy/smithy-client': 2.3.1 - '@smithy/types': 2.9.1 - '@smithy/url-parser': 2.1.1 + '@aws-sdk/core': 3.525.0 + '@aws-sdk/credential-provider-node': 3.525.0 + '@aws-sdk/middleware-host-header': 3.523.0 + '@aws-sdk/middleware-logger': 3.523.0 + '@aws-sdk/middleware-recursion-detection': 3.523.0 + '@aws-sdk/middleware-user-agent': 3.525.0 + '@aws-sdk/region-config-resolver': 3.525.0 + '@aws-sdk/types': 3.523.0 + '@aws-sdk/util-endpoints': 3.525.0 + '@aws-sdk/util-user-agent-browser': 3.523.0 + '@aws-sdk/util-user-agent-node': 3.525.0 + '@smithy/config-resolver': 2.1.4 + '@smithy/core': 1.3.5 + '@smithy/fetch-http-handler': 2.4.3 + '@smithy/hash-node': 2.1.3 + '@smithy/invalid-dependency': 2.1.3 + '@smithy/middleware-content-length': 2.1.3 + '@smithy/middleware-endpoint': 2.4.4 + '@smithy/middleware-retry': 2.1.4 + '@smithy/middleware-serde': 2.1.3 + '@smithy/middleware-stack': 2.1.3 + '@smithy/node-config-provider': 2.2.4 + '@smithy/node-http-handler': 2.4.1 + '@smithy/protocol-http': 3.2.1 + '@smithy/smithy-client': 2.4.2 + '@smithy/types': 2.10.1 + '@smithy/url-parser': 2.1.3 '@smithy/util-base64': 2.1.1 '@smithy/util-body-length-browser': 2.1.1 '@smithy/util-body-length-node': 2.2.1 - '@smithy/util-defaults-mode-browser': 2.1.1 - '@smithy/util-defaults-mode-node': 2.2.0 - '@smithy/util-endpoints': 1.1.1 - '@smithy/util-middleware': 2.1.1 - '@smithy/util-retry': 2.1.1 + '@smithy/util-defaults-mode-browser': 2.1.4 + '@smithy/util-defaults-mode-node': 2.2.3 + '@smithy/util-endpoints': 1.1.4 + '@smithy/util-middleware': 2.1.3 + '@smithy/util-retry': 2.1.3 '@smithy/util-utf8': 2.1.1 fast-xml-parser: 4.2.5 tslib: 2.6.2 @@ -5349,291 +5376,291 @@ packages: - aws-crt dev: false - /@aws-sdk/core@3.513.0: - resolution: {integrity: sha512-L+9DL4apWuqNKVOMJ8siAuWoRM9rZf9w1iPv8S2o83WO2jVK7E/m+rNW1dFo9HsA5V1ccDl2H2qLXx24HiHmOw==} + /@aws-sdk/core@3.525.0: + resolution: {integrity: sha512-E3LtEtMWCriQOFZpVKpLYzbdw/v2PAOEAMhn2VRRZ1g0/g1TXzQrfhEU2yd8l/vQEJaCJ82ooGGg7YECviBUxA==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/core': 1.3.2 - '@smithy/protocol-http': 3.1.1 - '@smithy/signature-v4': 2.1.1 - '@smithy/smithy-client': 2.3.1 - '@smithy/types': 2.9.1 + '@smithy/core': 1.3.5 + '@smithy/protocol-http': 3.2.1 + '@smithy/signature-v4': 2.1.3 + '@smithy/smithy-client': 2.4.2 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false - /@aws-sdk/credential-provider-env@3.515.0: - resolution: {integrity: sha512-45vxdyqhTAaUMERYVWOziG3K8L2TV9G4ryQS/KZ84o7NAybE9GMdoZRVmGHAO7mJJ1wQiYCM/E+i5b3NW9JfNA==} + /@aws-sdk/credential-provider-env@3.523.0: + resolution: {integrity: sha512-Y6DWdH6/OuMDoNKVzZlNeBc6f1Yjk1lYMjANKpIhMbkRCvLJw/PYZKOZa8WpXbTYdgg9XLjKybnLIb3ww3uuzA==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.515.0 - '@smithy/property-provider': 2.1.1 - '@smithy/types': 2.9.1 + '@aws-sdk/types': 3.523.0 + '@smithy/property-provider': 2.1.3 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false - /@aws-sdk/credential-provider-http@3.515.0: - resolution: {integrity: sha512-Ba6FXK77vU4WyheiamNjEuTFmir0eAXuJGPO27lBaA8g+V/seXGHScsbOG14aQGDOr2P02OPwKGZrWWA7BFpfQ==} + /@aws-sdk/credential-provider-http@3.525.0: + resolution: {integrity: sha512-RNWQGuSBQZhl3iqklOslUEfQ4br1V3DCPboMpeqFtddUWJV3m2u2extFur9/4Uy+1EHVF120IwZUKtd8dF+ibw==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.515.0 - '@smithy/fetch-http-handler': 2.4.1 - '@smithy/node-http-handler': 2.3.1 - '@smithy/property-provider': 2.1.1 - '@smithy/protocol-http': 3.1.1 - '@smithy/smithy-client': 2.3.1 - '@smithy/types': 2.9.1 - '@smithy/util-stream': 2.1.1 + '@aws-sdk/types': 3.523.0 + '@smithy/fetch-http-handler': 2.4.3 + '@smithy/node-http-handler': 2.4.1 + '@smithy/property-provider': 2.1.3 + '@smithy/protocol-http': 3.2.1 + '@smithy/smithy-client': 2.4.2 + '@smithy/types': 2.10.1 + '@smithy/util-stream': 2.1.3 tslib: 2.6.2 dev: false - /@aws-sdk/credential-provider-ini@3.515.0(@aws-sdk/credential-provider-node@3.515.0): - resolution: {integrity: sha512-ouDlNZdv2TKeVEA/YZk2+XklTXyAAGdbWnl4IgN9ItaodWI+lZjdIoNC8BAooVH+atIV/cZgoGTGQL7j2TxJ9A==} + /@aws-sdk/credential-provider-ini@3.525.0(@aws-sdk/credential-provider-node@3.525.0): + resolution: {integrity: sha512-JDnccfK5JRb9jcgpc9lirL9PyCwGIqY0nKdw3LlX5WL5vTpTG4E1q7rLAlpNh7/tFD1n66Itarfv2tsyHMIqCw==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/client-sts': 3.515.0(@aws-sdk/credential-provider-node@3.515.0) - '@aws-sdk/credential-provider-env': 3.515.0 - '@aws-sdk/credential-provider-process': 3.515.0 - '@aws-sdk/credential-provider-sso': 3.515.0(@aws-sdk/credential-provider-node@3.515.0) - '@aws-sdk/credential-provider-web-identity': 3.515.0(@aws-sdk/credential-provider-node@3.515.0) - '@aws-sdk/types': 3.515.0 - '@smithy/credential-provider-imds': 2.2.1 - '@smithy/property-provider': 2.1.1 - '@smithy/shared-ini-file-loader': 2.3.1 - '@smithy/types': 2.9.1 + '@aws-sdk/client-sts': 3.525.0(@aws-sdk/credential-provider-node@3.525.0) + '@aws-sdk/credential-provider-env': 3.523.0 + '@aws-sdk/credential-provider-process': 3.523.0 + '@aws-sdk/credential-provider-sso': 3.525.0(@aws-sdk/credential-provider-node@3.525.0) + '@aws-sdk/credential-provider-web-identity': 3.525.0(@aws-sdk/credential-provider-node@3.525.0) + '@aws-sdk/types': 3.523.0 + '@smithy/credential-provider-imds': 2.2.4 + '@smithy/property-provider': 2.1.3 + '@smithy/shared-ini-file-loader': 2.3.4 + '@smithy/types': 2.10.1 tslib: 2.6.2 transitivePeerDependencies: - '@aws-sdk/credential-provider-node' - aws-crt dev: false - /@aws-sdk/credential-provider-node@3.515.0: - resolution: {integrity: sha512-Y4kHSpbxksiCZZNcvsiKUd8Fb2XlyUuONEwqWFNL82ZH6TCCjBGS31wJQCSxBHqYcOL3tiORUEJkoO7uS30uQA==} + /@aws-sdk/credential-provider-node@3.525.0: + resolution: {integrity: sha512-RJXlO8goGXpnoHQAyrCcJ0QtWEOFa34LSbfdqBIjQX/fwnjUuEmiGdXTV3AZmwYQ7juk49tfBneHbtOP3AGqsQ==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/credential-provider-env': 3.515.0 - '@aws-sdk/credential-provider-http': 3.515.0 - '@aws-sdk/credential-provider-ini': 3.515.0(@aws-sdk/credential-provider-node@3.515.0) - '@aws-sdk/credential-provider-process': 3.515.0 - '@aws-sdk/credential-provider-sso': 3.515.0(@aws-sdk/credential-provider-node@3.515.0) - '@aws-sdk/credential-provider-web-identity': 3.515.0(@aws-sdk/credential-provider-node@3.515.0) - '@aws-sdk/types': 3.515.0 - '@smithy/credential-provider-imds': 2.2.1 - '@smithy/property-provider': 2.1.1 - '@smithy/shared-ini-file-loader': 2.3.1 - '@smithy/types': 2.9.1 + '@aws-sdk/credential-provider-env': 3.523.0 + '@aws-sdk/credential-provider-http': 3.525.0 + '@aws-sdk/credential-provider-ini': 3.525.0(@aws-sdk/credential-provider-node@3.525.0) + '@aws-sdk/credential-provider-process': 3.523.0 + '@aws-sdk/credential-provider-sso': 3.525.0(@aws-sdk/credential-provider-node@3.525.0) + '@aws-sdk/credential-provider-web-identity': 3.525.0(@aws-sdk/credential-provider-node@3.525.0) + '@aws-sdk/types': 3.523.0 + '@smithy/credential-provider-imds': 2.2.4 + '@smithy/property-provider': 2.1.3 + '@smithy/shared-ini-file-loader': 2.3.4 + '@smithy/types': 2.10.1 tslib: 2.6.2 transitivePeerDependencies: - aws-crt dev: false - /@aws-sdk/credential-provider-process@3.515.0: - resolution: {integrity: sha512-pSjiOA2FM63LHRKNDvEpBRp80FVGT0Mw/gzgbqFXP+sewk0WVonYbEcMDTJptH3VsLPGzqH/DQ1YL/aEIBuXFQ==} + /@aws-sdk/credential-provider-process@3.523.0: + resolution: {integrity: sha512-f0LP9KlFmMvPWdKeUKYlZ6FkQAECUeZMmISsv6NKtvPCI9e4O4cLTeR09telwDK8P0HrgcRuZfXM7E30m8re0Q==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.515.0 - '@smithy/property-provider': 2.1.1 - '@smithy/shared-ini-file-loader': 2.3.1 - '@smithy/types': 2.9.1 + '@aws-sdk/types': 3.523.0 + '@smithy/property-provider': 2.1.3 + '@smithy/shared-ini-file-loader': 2.3.4 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false - /@aws-sdk/credential-provider-sso@3.515.0(@aws-sdk/credential-provider-node@3.515.0): - resolution: {integrity: sha512-j7vUkiSmuhpBvZYoPTRTI4ePnQbiZMFl6TNhg9b9DprC1zHkucsZnhRhqjOVlrw/H6J4jmcPGcHHTZ5WQNI5xQ==} + /@aws-sdk/credential-provider-sso@3.525.0(@aws-sdk/credential-provider-node@3.525.0): + resolution: {integrity: sha512-7V7ybtufxdD3plxeIeB6aqHZeFIUlAyPphXIUgXrGY10iNcosL970rQPBeggsohe4gCM6UvY2TfMeEcr+ZE8FA==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/client-sso': 3.515.0 - '@aws-sdk/token-providers': 3.515.0(@aws-sdk/credential-provider-node@3.515.0) - '@aws-sdk/types': 3.515.0 - '@smithy/property-provider': 2.1.1 - '@smithy/shared-ini-file-loader': 2.3.1 - '@smithy/types': 2.9.1 + '@aws-sdk/client-sso': 3.525.0 + '@aws-sdk/token-providers': 3.525.0(@aws-sdk/credential-provider-node@3.525.0) + '@aws-sdk/types': 3.523.0 + '@smithy/property-provider': 2.1.3 + '@smithy/shared-ini-file-loader': 2.3.4 + '@smithy/types': 2.10.1 tslib: 2.6.2 transitivePeerDependencies: - '@aws-sdk/credential-provider-node' - aws-crt dev: false - /@aws-sdk/credential-provider-web-identity@3.515.0(@aws-sdk/credential-provider-node@3.515.0): - resolution: {integrity: sha512-66+2g4z3fWwdoGReY8aUHvm6JrKZMTRxjuizljVmMyOBttKPeBYXvUTop/g3ZGUx1f8j+C5qsGK52viYBvtjuQ==} + /@aws-sdk/credential-provider-web-identity@3.525.0(@aws-sdk/credential-provider-node@3.525.0): + resolution: {integrity: sha512-sAukOjR1oKb2JXG4nPpuBFpSwGUhrrY17PG/xbTy8NAoLLhrqRwnErcLfdTfmj6tH+3094k6ws/Sh8a35ae7fA==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/client-sts': 3.515.0(@aws-sdk/credential-provider-node@3.515.0) - '@aws-sdk/types': 3.515.0 - '@smithy/property-provider': 2.1.1 - '@smithy/types': 2.9.1 + '@aws-sdk/client-sts': 3.525.0(@aws-sdk/credential-provider-node@3.525.0) + '@aws-sdk/types': 3.523.0 + '@smithy/property-provider': 2.1.3 + '@smithy/types': 2.10.1 tslib: 2.6.2 transitivePeerDependencies: - '@aws-sdk/credential-provider-node' - aws-crt dev: false - /@aws-sdk/middleware-bucket-endpoint@3.515.0: - resolution: {integrity: sha512-Vm423j3udFrhKPaKiXtie+6aF05efjX8lhAu5VOruIvbam7olvdWNdkH7sGWlz1ko3CVa7PwOYjGHiOOhxpEOA==} + /@aws-sdk/middleware-bucket-endpoint@3.525.0: + resolution: {integrity: sha512-nYfQ2Xspfef7j8mZO7varUWLPH6HQlXateH7tBVtBNUAazyQE4UJEvC0fbQ+Y01e+FKlirim/m2umkdMXqAlTg==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.515.0 + '@aws-sdk/types': 3.523.0 '@aws-sdk/util-arn-parser': 3.495.0 - '@smithy/node-config-provider': 2.2.1 - '@smithy/protocol-http': 3.1.1 - '@smithy/types': 2.9.1 + '@smithy/node-config-provider': 2.2.4 + '@smithy/protocol-http': 3.2.1 + '@smithy/types': 2.10.1 '@smithy/util-config-provider': 2.2.1 tslib: 2.6.2 dev: false - /@aws-sdk/middleware-expect-continue@3.515.0: - resolution: {integrity: sha512-TWCXulivab4reOMx/vxa/IwnPX78fLwI9NUoAxjsqB6W9qjmSnPD43BSVeGvbbl/YNmgk7XfMbZb6IgxW7RyzA==} + /@aws-sdk/middleware-expect-continue@3.523.0: + resolution: {integrity: sha512-E5DyRAHU39VHaAlQLqXYS/IKpgk3vsryuU6kkOcIIK8Dgw0a2tjoh5AOCaNa8pD+KgAGrFp35JIMSX1zui5diA==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.515.0 - '@smithy/protocol-http': 3.1.1 - '@smithy/types': 2.9.1 + '@aws-sdk/types': 3.523.0 + '@smithy/protocol-http': 3.2.1 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false - /@aws-sdk/middleware-flexible-checksums@3.515.0: - resolution: {integrity: sha512-ydGjnqNeYlJaAkmQeQnS4pZRAAvzefdm8c234Qh0Fg55xRwHTNLp7uYsdfkTjrdAlj6YIO3Zr6vK6VJ6MGCwug==} + /@aws-sdk/middleware-flexible-checksums@3.523.0: + resolution: {integrity: sha512-lIa1TdWY9q4zsDFarfSnYcdrwPR+nypaU4n6hb95i620/1F5M5s6H8P0hYtwTNNvx+slrR8F3VBML9pjBtzAHw==} engines: {node: '>=14.0.0'} dependencies: '@aws-crypto/crc32': 3.0.0 '@aws-crypto/crc32c': 3.0.0 - '@aws-sdk/types': 3.515.0 + '@aws-sdk/types': 3.523.0 '@smithy/is-array-buffer': 2.1.1 - '@smithy/protocol-http': 3.1.1 - '@smithy/types': 2.9.1 + '@smithy/protocol-http': 3.2.1 + '@smithy/types': 2.10.1 '@smithy/util-utf8': 2.1.1 tslib: 2.6.2 dev: false - /@aws-sdk/middleware-host-header@3.515.0: - resolution: {integrity: sha512-I1MwWPzdRKM1luvdDdjdGsDjNVPhj9zaIytEchjTY40NcKOg+p2evLD2y69ozzg8pyXK63r8DdvDGOo9QPuh0A==} + /@aws-sdk/middleware-host-header@3.523.0: + resolution: {integrity: sha512-4g3q7Ta9sdD9TMUuohBAkbx/e3I/juTqfKi7TPgP+8jxcYX72MOsgemAMHuP6CX27eyj4dpvjH+w4SIVDiDSmg==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.515.0 - '@smithy/protocol-http': 3.1.1 - '@smithy/types': 2.9.1 + '@aws-sdk/types': 3.523.0 + '@smithy/protocol-http': 3.2.1 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false - /@aws-sdk/middleware-location-constraint@3.515.0: - resolution: {integrity: sha512-ORFC5oijjTJsHhUXy9o52/vl5Irf6e83bE/8tBp+sVVx81+E8zTTWZbysoa41c0B5Ycd0H3wCWutvjdXT16ydQ==} + /@aws-sdk/middleware-location-constraint@3.523.0: + resolution: {integrity: sha512-1QAUXX3U0jkARnU0yyjk81EO4Uw5dCeQOtvUY5s3bUOHatR3ThosQeIr6y9BCsbXHzNnDe1ytCjqAPyo8r/bYw==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.515.0 - '@smithy/types': 2.9.1 + '@aws-sdk/types': 3.523.0 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false - /@aws-sdk/middleware-logger@3.515.0: - resolution: {integrity: sha512-qXomJzg2m/5seQOxHi/yOXOKfSjwrrJSmEmfwJKJyQgdMbBcjz3Cz0H/1LyC6c5hHm6a/SZgSTzDAbAoUmyL+Q==} + /@aws-sdk/middleware-logger@3.523.0: + resolution: {integrity: sha512-PeDNJNhfiaZx54LBaLTXzUaJ9LXFwDFFIksipjqjvxMafnoVcQwKbkoPUWLe5ytT4nnL1LogD3s55mERFUsnwg==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.515.0 - '@smithy/types': 2.9.1 + '@aws-sdk/types': 3.523.0 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false - /@aws-sdk/middleware-recursion-detection@3.515.0: - resolution: {integrity: sha512-dokHLbTV3IHRIBrw9mGoxcNTnQsjlm7TpkJhPdGT9T4Mq399EyQo51u6IsVMm07RXLl2Zw7u+u9p+qWBFzmFRA==} + /@aws-sdk/middleware-recursion-detection@3.523.0: + resolution: {integrity: sha512-nZ3Vt7ehfSDYnrcg/aAfjjvpdE+61B3Zk68i6/hSUIegT3IH9H1vSW67NDKVp+50hcEfzWwM2HMPXxlzuyFyrw==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.515.0 - '@smithy/protocol-http': 3.1.1 - '@smithy/types': 2.9.1 + '@aws-sdk/types': 3.523.0 + '@smithy/protocol-http': 3.2.1 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false - /@aws-sdk/middleware-sdk-s3@3.515.0: - resolution: {integrity: sha512-vB8JwiTEAqm1UT9xfugnCgl0H0dtBLUQQK99JwQEWjHPZmQ3HQuVkykmJRY3X0hzKMEgqXodz0hZOvf3Hq1mvQ==} + /@aws-sdk/middleware-sdk-s3@3.525.0: + resolution: {integrity: sha512-ewFyyFM6wdFTOqCiId5GQNi7owDdLEonQhB4h8tF6r3HV52bRlDvZA4aDos+ft6N/XY2J6L0qlFTFq+/oiurXw==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.515.0 + '@aws-sdk/types': 3.523.0 '@aws-sdk/util-arn-parser': 3.495.0 - '@smithy/node-config-provider': 2.2.1 - '@smithy/protocol-http': 3.1.1 - '@smithy/signature-v4': 2.1.1 - '@smithy/smithy-client': 2.3.1 - '@smithy/types': 2.9.1 + '@smithy/node-config-provider': 2.2.4 + '@smithy/protocol-http': 3.2.1 + '@smithy/signature-v4': 2.1.3 + '@smithy/smithy-client': 2.4.2 + '@smithy/types': 2.10.1 '@smithy/util-config-provider': 2.2.1 tslib: 2.6.2 dev: false - /@aws-sdk/middleware-signing@3.515.0: - resolution: {integrity: sha512-SdjCyQCL702I07KhCiBFcoh6+NYtnruHJQIzWwMpBteuYHnCHW1k9uZ6pqacsS+Y6qpAKfTVNpQx2zP2s6QoHA==} + /@aws-sdk/middleware-signing@3.523.0: + resolution: {integrity: sha512-pFXV4don6qcmew/OvEjLUr2foVjzoJ8o5k57Oz9yAHz8INx3RHK8MP/K4mVhHo6n0SquRcWrm4kY/Tw+89gkEA==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.515.0 - '@smithy/property-provider': 2.1.1 - '@smithy/protocol-http': 3.1.1 - '@smithy/signature-v4': 2.1.1 - '@smithy/types': 2.9.1 - '@smithy/util-middleware': 2.1.1 + '@aws-sdk/types': 3.523.0 + '@smithy/property-provider': 2.1.3 + '@smithy/protocol-http': 3.2.1 + '@smithy/signature-v4': 2.1.3 + '@smithy/types': 2.10.1 + '@smithy/util-middleware': 2.1.3 tslib: 2.6.2 dev: false - /@aws-sdk/middleware-ssec@3.515.0: - resolution: {integrity: sha512-0qLjKiorosVBzzaV/o7MEyS9xqLLu02qGbP564Z/FZY74JUQEpBNedgveMUbb6lqr85RnOuwZ0GZ0cBRfH2brQ==} + /@aws-sdk/middleware-ssec@3.523.0: + resolution: {integrity: sha512-FaqAZQeF5cQzZLOIboIJRaWVOQ2F2pJZAXGF5D7nJsxYNFChotA0O0iWimBRxU35RNn7yirVxz35zQzs20ddIw==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.515.0 - '@smithy/types': 2.9.1 + '@aws-sdk/types': 3.523.0 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false - /@aws-sdk/middleware-user-agent@3.515.0: - resolution: {integrity: sha512-nOqZjGA/GkjuJ5fUshec9Fv6HFd7ovOTxMJbw3MfAhqXuVZ6dKF41lpVJ4imNsgyFt3shUg9WDY8zGFjlYMB3g==} + /@aws-sdk/middleware-user-agent@3.525.0: + resolution: {integrity: sha512-4al/6uO+t/QIYXK2OgqzDKQzzLAYJza1vWFS+S0lJ3jLNGyLB5BMU5KqWjDzevYZ4eCnz2Nn7z0FveUTNz8YdQ==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.515.0 - '@aws-sdk/util-endpoints': 3.515.0 - '@smithy/protocol-http': 3.1.1 - '@smithy/types': 2.9.1 + '@aws-sdk/types': 3.523.0 + '@aws-sdk/util-endpoints': 3.525.0 + '@smithy/protocol-http': 3.2.1 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false - /@aws-sdk/region-config-resolver@3.515.0: - resolution: {integrity: sha512-RIRx9loxMgEAc/r1wPfnfShOuzn4RBi8pPPv6/jhhITEeMnJe6enAh2k5y9DdiVDDgCWZgVFSv0YkAIfzAFsnQ==} + /@aws-sdk/region-config-resolver@3.525.0: + resolution: {integrity: sha512-8kFqXk6UyKgTMi7N7QlhA6qM4pGPWbiUXqEY2RgUWngtxqNFGeM9JTexZeuavQI+qLLe09VPShPNX71fEDcM6w==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.515.0 - '@smithy/node-config-provider': 2.2.1 - '@smithy/types': 2.9.1 + '@aws-sdk/types': 3.523.0 + '@smithy/node-config-provider': 2.2.4 + '@smithy/types': 2.10.1 '@smithy/util-config-provider': 2.2.1 - '@smithy/util-middleware': 2.1.1 + '@smithy/util-middleware': 2.1.3 tslib: 2.6.2 dev: false - /@aws-sdk/signature-v4-multi-region@3.515.0: - resolution: {integrity: sha512-5lrCn4DSE0zL41k0L6moqcdExZhWdAnV0/oMEagrISzQYoia+aNTEeyVD3xqJhRbEW4gCj3Uoyis6c8muf7b9g==} + /@aws-sdk/signature-v4-multi-region@3.525.0: + resolution: {integrity: sha512-j8gkdfiokaherRgokfZBl2azYBMHlegT7pOnR/3Y79TSz6G+bJeIkuNk8aUbJArr6R8nvAM1j4dt1rBM+efolQ==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/middleware-sdk-s3': 3.515.0 - '@aws-sdk/types': 3.515.0 - '@smithy/protocol-http': 3.1.1 - '@smithy/signature-v4': 2.1.1 - '@smithy/types': 2.9.1 + '@aws-sdk/middleware-sdk-s3': 3.525.0 + '@aws-sdk/types': 3.523.0 + '@smithy/protocol-http': 3.2.1 + '@smithy/signature-v4': 2.1.3 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false - /@aws-sdk/token-providers@3.515.0(@aws-sdk/credential-provider-node@3.515.0): - resolution: {integrity: sha512-MQuf04rIcTXqwDzmyHSpFPF1fKEzRl64oXtCRUF3ddxTdK6wxXkePfK6wNCuL+GEbEcJAoCtIGIRpzGPJvQjHA==} + /@aws-sdk/token-providers@3.525.0(@aws-sdk/credential-provider-node@3.525.0): + resolution: {integrity: sha512-puVjbxuK0Dq7PTQ2HdddHy2eQjOH8GZbump74yWJa6JVpRW84LlOcNmP+79x4Kscvz2ldWB8XDFw/pcCiSDe5A==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/client-sso-oidc': 3.515.0(@aws-sdk/credential-provider-node@3.515.0) - '@aws-sdk/types': 3.515.0 - '@smithy/property-provider': 2.1.1 - '@smithy/shared-ini-file-loader': 2.3.1 - '@smithy/types': 2.9.1 + '@aws-sdk/client-sso-oidc': 3.525.0(@aws-sdk/credential-provider-node@3.525.0) + '@aws-sdk/types': 3.523.0 + '@smithy/property-provider': 2.1.3 + '@smithy/shared-ini-file-loader': 2.3.4 + '@smithy/types': 2.10.1 tslib: 2.6.2 transitivePeerDependencies: - '@aws-sdk/credential-provider-node' - aws-crt dev: false - /@aws-sdk/types@3.515.0: - resolution: {integrity: sha512-B3gUpiMlpT6ERaLvZZ61D0RyrQPsFYDkCncLPVkZOKkCOoFU46zi1o6T5JcYiz8vkx1q9RGloQ5exh79s5pU/w==} + /@aws-sdk/types@3.523.0: + resolution: {integrity: sha512-AqGIu4u+SxPiUuNBp2acCVcq80KDUFjxe6e3cMTvKWTzCbrVk1AXv0dAaJnCmdkWIha6zJDWxpIk/aL4EGhZ9A==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.9.1 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false @@ -5644,13 +5671,13 @@ packages: tslib: 2.6.2 dev: false - /@aws-sdk/util-endpoints@3.515.0: - resolution: {integrity: sha512-UJi+jdwcGFV/F7d3+e2aQn5yZOVpDiAgfgNhPnEtgV0WozJ5/ZUeZBgWvSc/K415N4A4D/9cbBc7+I+35qzcDQ==} + /@aws-sdk/util-endpoints@3.525.0: + resolution: {integrity: sha512-DIW7WWU5tIGkeeKX6NJUyrEIdWMiqjLQG3XBzaUj+ufIENwNjdAHhlD8l2vX7Yr3JZRT6yN/84wBCj7Tw1xd1g==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.515.0 - '@smithy/types': 2.9.1 - '@smithy/util-endpoints': 1.1.1 + '@aws-sdk/types': 3.523.0 + '@smithy/types': 2.10.1 + '@smithy/util-endpoints': 1.1.4 tslib: 2.6.2 dev: false @@ -5661,17 +5688,17 @@ packages: tslib: 2.6.2 dev: false - /@aws-sdk/util-user-agent-browser@3.515.0: - resolution: {integrity: sha512-pTWQb0JCafTmLHLDv3Qqs/nAAJghcPdGQIBpsCStb0YEzg3At/dOi2AIQ683yYnXmeOxLXJDzmlsovfVObJScw==} + /@aws-sdk/util-user-agent-browser@3.523.0: + resolution: {integrity: sha512-6ZRNdGHX6+HQFqTbIA5+i8RWzxFyxsZv8D3soRfpdyWIKkzhSz8IyRKXRciwKBJDaC7OX2jzGE90wxRQft27nA==} dependencies: - '@aws-sdk/types': 3.515.0 - '@smithy/types': 2.9.1 + '@aws-sdk/types': 3.523.0 + '@smithy/types': 2.10.1 bowser: 2.11.0 tslib: 2.6.2 dev: false - /@aws-sdk/util-user-agent-node@3.515.0: - resolution: {integrity: sha512-A/KJ+/HTohHyVXLH+t/bO0Z2mPrQgELbQO8tX+B2nElo8uklj70r5cT7F8ETsI9oOy+HDVpiL5/v45ZgpUOiPg==} + /@aws-sdk/util-user-agent-node@3.525.0: + resolution: {integrity: sha512-88Wjt4efyUSBGcyIuh1dvoMqY1k15jpJc5A/3yi67clBQEFsu9QCodQCQPqmRjV3VRcMtBOk+jeCTiUzTY5dRQ==} engines: {node: '>=14.0.0'} peerDependencies: aws-crt: '>=1.0.0' @@ -5679,9 +5706,9 @@ packages: aws-crt: optional: true dependencies: - '@aws-sdk/types': 3.515.0 - '@smithy/node-config-provider': 2.2.1 - '@smithy/types': 2.9.1 + '@aws-sdk/types': 3.523.0 + '@smithy/node-config-provider': 2.2.4 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false @@ -5691,11 +5718,11 @@ packages: tslib: 2.4.1 dev: false - /@aws-sdk/xml-builder@3.496.0: - resolution: {integrity: sha512-GvEjh537IIeOw1ZkZuB37sV12u+ipS5Z1dwjEC/HAvhl5ac23ULtTr1/n+U1gLNN+BAKSWjKiQ2ksj8DiUzeyw==} + /@aws-sdk/xml-builder@3.523.0: + resolution: {integrity: sha512-wfvyVymj2TUw7SuDor9IuFcAzJZvWRBZotvY/wQJOlYa3UP3Oezzecy64N4FWfBJEsZdrTN+HOZFl+IzTWWnUA==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.9.1 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false @@ -8733,6 +8760,11 @@ packages: resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@faker-js/faker@8.4.1: + resolution: {integrity: sha512-XQ3cU+Q8Uqmrbf2e0cIC/QN43sTBSC8KF12u29Mb47tWrt2hAgBXSgpZMj4Ao8Uk0iJcU99QsOCaIL8934obCg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0, npm: '>=6.14.13'} + dev: true + /@fastify/ajv-compiler@3.5.0: resolution: {integrity: sha512-ebbEtlI7dxXF5ziNdr05mOY8NnDiPB1XvAlLHctRt/Rc+C3LCOVW5imUVX+mhvUhnNzmPBHewUkOFgGlCxgdAA==} dependencies: @@ -8748,8 +8780,8 @@ packages: text-decoding: 1.0.0 dev: false - /@fastify/busboy@2.1.0: - resolution: {integrity: sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==} + /@fastify/busboy@2.1.1: + resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} engines: {node: '>=14'} dev: false @@ -9211,7 +9243,7 @@ packages: resolution: {integrity: sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==} dev: true - /@langchain/community@0.0.29(@aws-sdk/credential-provider-node@3.515.0)(chromadb@1.7.2)(pg@8.11.3)(replicate@0.25.2): + /@langchain/community@0.0.29(@aws-sdk/credential-provider-node@3.525.0)(chromadb@1.7.2)(pg@8.11.3)(replicate@0.25.2): resolution: {integrity: sha512-7KCr6JjmWfX26eNGYoDcsSx2PqFcrCt7g3Zy3YwFrjaCIob9ivsx59IXiOd4TgvKJmTiP3RjMTz55cDj7Es63g==} engines: {node: '>=18'} peerDependencies: @@ -9469,7 +9501,7 @@ packages: ws: optional: true dependencies: - '@aws-sdk/credential-provider-node': 3.515.0 + '@aws-sdk/credential-provider-node': 3.525.0 '@langchain/core': 0.1.29 '@langchain/openai': 0.0.14 chromadb: 1.7.2(openai@4.23.0) @@ -9997,6 +10029,57 @@ packages: - supports-color dev: true + /@prisma/client@5.10.2(prisma@5.10.2): + resolution: {integrity: sha512-ef49hzB2yJZCvM5gFHMxSFL9KYrIP9udpT5rYo0CsHD4P9IKj473MbhU1gjKKftiwWBTIyrt9jukprzZXazyag==} + engines: {node: '>=16.13'} + requiresBuild: true + peerDependencies: + prisma: '*' + peerDependenciesMeta: + prisma: + optional: true + dependencies: + prisma: 5.10.2 + dev: false + + /@prisma/debug@5.10.2: + resolution: {integrity: sha512-bkBOmH9dpEBbMKFJj8V+Zp8IZHIBjy3fSyhLhxj4FmKGb/UBSt9doyfA6k1UeUREsMJft7xgPYBbHSOYBr8XCA==} + dev: false + + /@prisma/engines-version@5.10.0-34.5a9203d0590c951969e85a7d07215503f4672eb9: + resolution: {integrity: sha512-uCy/++3Jx/O3ufM+qv2H1L4tOemTNqcP/gyEVOlZqTpBvYJUe0tWtW0y3o2Ueq04mll4aM5X3f6ugQftOSLdFQ==} + dev: false + + /@prisma/engines@5.10.2: + resolution: {integrity: sha512-HkSJvix6PW8YqEEt3zHfCYYJY69CXsNdhU+wna+4Y7EZ+AwzeupMnUThmvaDA7uqswiHkgm5/SZ6/4CStjaGmw==} + requiresBuild: true + dependencies: + '@prisma/debug': 5.10.2 + '@prisma/engines-version': 5.10.0-34.5a9203d0590c951969e85a7d07215503f4672eb9 + '@prisma/fetch-engine': 5.10.2 + '@prisma/get-platform': 5.10.2 + dev: false + + /@prisma/fetch-engine@5.10.2: + resolution: {integrity: sha512-dSmXcqSt6DpTmMaLQ9K8ZKzVAMH3qwGCmYEZr/uVnzVhxRJ1EbT/w2MMwIdBNq1zT69Rvh0h75WMIi0mrIw7Hg==} + dependencies: + '@prisma/debug': 5.10.2 + '@prisma/engines-version': 5.10.0-34.5a9203d0590c951969e85a7d07215503f4672eb9 + '@prisma/get-platform': 5.10.2 + dev: false + + /@prisma/generator-helper@5.10.2: + resolution: {integrity: sha512-U1W5fBJubLMKbcfwKZHACTIw38JEl8t92BZTzSDeDvhgWPpHRtzRcCVAAqFqjpaqmrXJZ7KeFCaAfsyllliVvA==} + dependencies: + '@prisma/debug': 5.10.2 + dev: false + + /@prisma/get-platform@5.10.2: + resolution: {integrity: sha512-nqXP6vHiY2PIsebBAuDeWiUYg8h8mfjBckHh6Jezuwej0QJNnjDiOq30uesmg+JXxGk99nqyG3B7wpcOODzXvg==} + dependencies: + '@prisma/debug': 5.10.2 + dev: false + /@radix-ui/number@1.0.1: resolution: {integrity: sha512-T5gIdVO2mmPW3NNhjNgEP3cqMXjXL9UbO0BzWcXfvdBs+BohbQxvd/K5hSVKmn9/lbTdsQVKbUcP5WLCwvUbBg==} dependencies: @@ -11178,11 +11261,11 @@ packages: /@sinonjs/text-encoding@0.7.2: resolution: {integrity: sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==} - /@smithy/abort-controller@2.1.1: - resolution: {integrity: sha512-1+qdrUqLhaALYL0iOcN43EP6yAXXQ2wWZ6taf4S2pNGowmOc5gx+iMQv+E42JizNJjB0+gEadOXeV1Bf7JWL1Q==} + /@smithy/abort-controller@2.1.3: + resolution: {integrity: sha512-c2aYH2Wu1RVE3rLlVgg2kQOBJGM0WbjReQi5DnPTm2Zb7F0gk7J2aeQeaX2u/lQZoHl6gv8Oac7mt9alU3+f4A==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.9.1 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false @@ -11199,128 +11282,128 @@ packages: tslib: 2.6.2 dev: false - /@smithy/config-resolver@2.1.1: - resolution: {integrity: sha512-lxfLDpZm+AWAHPFZps5JfDoO9Ux1764fOgvRUBpHIO8HWHcSN1dkgsago1qLRVgm1BZ8RCm8cgv99QvtaOWIhw==} + /@smithy/config-resolver@2.1.4: + resolution: {integrity: sha512-AW2WUZmBAzgO3V3ovKtsUbI3aBNMeQKFDumoqkNxaVDWF/xfnxAWqBKDr/NuG7c06N2Rm4xeZLPiJH/d+na0HA==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/node-config-provider': 2.2.1 - '@smithy/types': 2.9.1 + '@smithy/node-config-provider': 2.2.4 + '@smithy/types': 2.10.1 '@smithy/util-config-provider': 2.2.1 - '@smithy/util-middleware': 2.1.1 + '@smithy/util-middleware': 2.1.3 tslib: 2.6.2 dev: false - /@smithy/core@1.3.2: - resolution: {integrity: sha512-tYDmTp0f2TZVE18jAOH1PnmkngLQ+dOGUlMd1u67s87ieueNeyqhja6z/Z4MxhybEiXKOWFOmGjfTZWFxljwJw==} + /@smithy/core@1.3.5: + resolution: {integrity: sha512-Rrc+e2Jj6Gu7Xbn0jvrzZlSiP2CZocIOfZ9aNUA82+1sa6GBnxqL9+iZ9EKHeD9aqD1nU8EK4+oN2EiFpSv7Yw==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/middleware-endpoint': 2.4.1 - '@smithy/middleware-retry': 2.1.1 - '@smithy/middleware-serde': 2.1.1 - '@smithy/protocol-http': 3.1.1 - '@smithy/smithy-client': 2.3.1 - '@smithy/types': 2.9.1 - '@smithy/util-middleware': 2.1.1 + '@smithy/middleware-endpoint': 2.4.4 + '@smithy/middleware-retry': 2.1.4 + '@smithy/middleware-serde': 2.1.3 + '@smithy/protocol-http': 3.2.1 + '@smithy/smithy-client': 2.4.2 + '@smithy/types': 2.10.1 + '@smithy/util-middleware': 2.1.3 tslib: 2.6.2 dev: false - /@smithy/credential-provider-imds@2.2.1: - resolution: {integrity: sha512-7XHjZUxmZYnONheVQL7j5zvZXga+EWNgwEAP6OPZTi7l8J4JTeNh9aIOfE5fKHZ/ee2IeNOh54ZrSna+Vc6TFA==} + /@smithy/credential-provider-imds@2.2.4: + resolution: {integrity: sha512-DdatjmBZQnhGe1FhI8gO98f7NmvQFSDiZTwC3WMvLTCKQUY+Y1SVkhJqIuLu50Eb7pTheoXQmK+hKYUgpUWsNA==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/node-config-provider': 2.2.1 - '@smithy/property-provider': 2.1.1 - '@smithy/types': 2.9.1 - '@smithy/url-parser': 2.1.1 + '@smithy/node-config-provider': 2.2.4 + '@smithy/property-provider': 2.1.3 + '@smithy/types': 2.10.1 + '@smithy/url-parser': 2.1.3 tslib: 2.6.2 dev: false - /@smithy/eventstream-codec@2.1.1: - resolution: {integrity: sha512-E8KYBxBIuU4c+zrpR22VsVrOPoEDzk35bQR3E+xm4k6Pa6JqzkDOdMyf9Atac5GPNKHJBdVaQ4JtjdWX2rl/nw==} + /@smithy/eventstream-codec@2.1.3: + resolution: {integrity: sha512-rGlCVuwSDv6qfKH4/lRxFjcZQnIE0LZ3D4lkMHg7ZSltK9rA74r0VuGSvWVQ4N/d70VZPaniFhp4Z14QYZsa+A==} dependencies: '@aws-crypto/crc32': 3.0.0 - '@smithy/types': 2.9.1 + '@smithy/types': 2.10.1 '@smithy/util-hex-encoding': 2.1.1 tslib: 2.6.2 dev: false - /@smithy/eventstream-serde-browser@2.1.1: - resolution: {integrity: sha512-JvEdCmGlZUay5VtlT8/kdR6FlvqTDUiJecMjXsBb0+k1H/qc9ME5n2XKPo8q/MZwEIA1GmGgYMokKGjVvMiDow==} + /@smithy/eventstream-serde-browser@2.1.3: + resolution: {integrity: sha512-qAgKbZ9m2oBfSyJWWurX/MvQFRPrYypj79cDSleEgDwBoez6Tfd+FTpu2L/j3ZeC3mDlDHIKWksoeaXZpLLAHw==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/eventstream-serde-universal': 2.1.1 - '@smithy/types': 2.9.1 + '@smithy/eventstream-serde-universal': 2.1.3 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false - /@smithy/eventstream-serde-config-resolver@2.1.1: - resolution: {integrity: sha512-EqNqXYp3+dk//NmW3NAgQr9bEQ7fsu/CcxQmTiq07JlaIcne/CBWpMZETyXm9w5LXkhduBsdXdlMscfDUDn2fA==} + /@smithy/eventstream-serde-config-resolver@2.1.3: + resolution: {integrity: sha512-48rvsNv/MgAFCxOE0qwR7ZwKhaEdDoTxqH5HM+T6SDxICmPGb7gEuQzjTxQhcieCPgqyXeZFW8cU0QJxdowuIg==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.9.1 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false - /@smithy/eventstream-serde-node@2.1.1: - resolution: {integrity: sha512-LF882q/aFidFNDX7uROAGxq3H0B7rjyPkV6QDn6/KDQ+CG7AFkRccjxRf1xqajq/Pe4bMGGr+VKAaoF6lELIQw==} + /@smithy/eventstream-serde-node@2.1.3: + resolution: {integrity: sha512-RPJWWDhj8isk3NtGfm3Xt1WdHyX9ZE42V+m1nLU1I0zZ1hEol/oawHsTnhva/VR5bn+bJ2zscx+BYr0cEPRtmg==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/eventstream-serde-universal': 2.1.1 - '@smithy/types': 2.9.1 + '@smithy/eventstream-serde-universal': 2.1.3 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false - /@smithy/eventstream-serde-universal@2.1.1: - resolution: {integrity: sha512-LR0mMT+XIYTxk4k2fIxEA1BPtW3685QlqufUEUAX1AJcfFfxNDKEvuCRZbO8ntJb10DrIFVJR9vb0MhDCi0sAQ==} + /@smithy/eventstream-serde-universal@2.1.3: + resolution: {integrity: sha512-ssvSMk1LX2jRhiOVgVLGfNJXdB8SvyjieKcJDHq698Gi3LOog6g/+l7ggrN+hZxyjUiDF4cUxgKaZTBUghzhLw==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/eventstream-codec': 2.1.1 - '@smithy/types': 2.9.1 + '@smithy/eventstream-codec': 2.1.3 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false - /@smithy/fetch-http-handler@2.4.1: - resolution: {integrity: sha512-VYGLinPsFqH68lxfRhjQaSkjXM7JysUOJDTNjHBuN/ykyRb2f1gyavN9+VhhPTWCy32L4yZ2fdhpCs/nStEicg==} + /@smithy/fetch-http-handler@2.4.3: + resolution: {integrity: sha512-Fn/KYJFo6L5I4YPG8WQb2hOmExgRmNpVH5IK2zU3JKrY5FKW7y9ar5e0BexiIC9DhSKqKX+HeWq/Y18fq7Dkpw==} dependencies: - '@smithy/protocol-http': 3.1.1 - '@smithy/querystring-builder': 2.1.1 - '@smithy/types': 2.9.1 + '@smithy/protocol-http': 3.2.1 + '@smithy/querystring-builder': 2.1.3 + '@smithy/types': 2.10.1 '@smithy/util-base64': 2.1.1 tslib: 2.6.2 dev: false - /@smithy/hash-blob-browser@2.1.1: - resolution: {integrity: sha512-jizu1+2PAUjiGIfRtlPEU8Yo6zn+d78ti/ZHDesdf1SUn2BuZW433JlPoCOLH3dBoEEvTgLvQ8tUGSoTTALA+A==} + /@smithy/hash-blob-browser@2.1.3: + resolution: {integrity: sha512-sHLTM5xQYw5Wxz07DFo+eh1PVC6P5+kazQRF1k5nsvOhZG5VnkIy4LZ7N0ZNWqJx16g9otGd5MvqUOpb3WWtgA==} dependencies: '@smithy/chunked-blob-reader': 2.1.1 '@smithy/chunked-blob-reader-native': 2.1.1 - '@smithy/types': 2.9.1 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false - /@smithy/hash-node@2.1.1: - resolution: {integrity: sha512-Qhoq0N8f2OtCnvUpCf+g1vSyhYQrZjhSwvJ9qvR8BUGOtTXiyv2x1OD2e6jVGmlpC4E4ax1USHoyGfV9JFsACg==} + /@smithy/hash-node@2.1.3: + resolution: {integrity: sha512-FsAPCUj7VNJIdHbSxMd5uiZiF20G2zdSDgrgrDrHqIs/VMxK85Vqk5kMVNNDMCZmMezp6UKnac0B4nAyx7HJ9g==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.9.1 + '@smithy/types': 2.10.1 '@smithy/util-buffer-from': 2.1.1 '@smithy/util-utf8': 2.1.1 tslib: 2.6.2 dev: false - /@smithy/hash-stream-node@2.1.1: - resolution: {integrity: sha512-VgDaKcfCy0iHcmtAZgZ3Yw9g37Gkn2JsQiMtFQXUh8Wmo3GfNgDwLOtdhJ272pOT7DStzpe9cNr+eV5Au8KfQA==} + /@smithy/hash-stream-node@2.1.3: + resolution: {integrity: sha512-fWpUx2ca/u5lcD5RhNJogEG5FD7H0RDDpYmfQgxFqIUv3Ow7bZsapMukh8uzQPVO8R+NDAvSdxmgXoy4Hz8sFw==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.9.1 + '@smithy/types': 2.10.1 '@smithy/util-utf8': 2.1.1 tslib: 2.6.2 dev: false - /@smithy/invalid-dependency@2.1.1: - resolution: {integrity: sha512-7WTgnKw+VPg8fxu2v9AlNOQ5yaz6RA54zOVB4f6vQuR0xFKd+RzlCpt0WidYTsye7F+FYDIaS/RnJW4pxjNInw==} + /@smithy/invalid-dependency@2.1.3: + resolution: {integrity: sha512-wkra7d/G4CbngV4xsjYyAYOvdAhahQje/WymuQdVEnXFExJopEu7fbL5AEAlBPgWHXwu94VnCSG00gVzRfExyg==} dependencies: - '@smithy/types': 2.9.1 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false @@ -11331,174 +11414,174 @@ packages: tslib: 2.6.2 dev: false - /@smithy/md5-js@2.1.1: - resolution: {integrity: sha512-L3MbIYBIdLlT+MWTYrdVSv/dow1+6iZ1Ad7xS0OHxTTs17d753ZcpOV4Ro7M7tRAVWML/sg2IAp/zzCb6aAttg==} + /@smithy/md5-js@2.1.3: + resolution: {integrity: sha512-zmn3M6+mP4IJlSmXBN9964AztgkIO8b5lRzAgdJn9AdCFwA6xLkcW2B6uEnpBjvotxtQMmXTUP19tIO7NmFPpw==} dependencies: - '@smithy/types': 2.9.1 + '@smithy/types': 2.10.1 '@smithy/util-utf8': 2.1.1 tslib: 2.6.2 dev: false - /@smithy/middleware-content-length@2.1.1: - resolution: {integrity: sha512-rSr9ezUl9qMgiJR0UVtVOGEZElMdGFyl8FzWEF5iEKTlcWxGr2wTqGfDwtH3LAB7h+FPkxqv4ZU4cpuCN9Kf/g==} + /@smithy/middleware-content-length@2.1.3: + resolution: {integrity: sha512-aJduhkC+dcXxdnv5ZpM3uMmtGmVFKx412R1gbeykS5HXDmRU6oSsyy2SoHENCkfOGKAQOjVE2WVqDJibC0d21g==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/protocol-http': 3.1.1 - '@smithy/types': 2.9.1 + '@smithy/protocol-http': 3.2.1 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false - /@smithy/middleware-endpoint@2.4.1: - resolution: {integrity: sha512-XPZTb1E2Oav60Ven3n2PFx+rX9EDsU/jSTA8VDamt7FXks67ekjPY/XrmmPDQaFJOTUHJNKjd8+kZxVO5Ael4Q==} + /@smithy/middleware-endpoint@2.4.4: + resolution: {integrity: sha512-4yjHyHK2Jul4JUDBo2sTsWY9UshYUnXeb/TAK/MTaPEb8XQvDmpwSFnfIRDU45RY1a6iC9LCnmJNg/yHyfxqkw==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/middleware-serde': 2.1.1 - '@smithy/node-config-provider': 2.2.1 - '@smithy/shared-ini-file-loader': 2.3.1 - '@smithy/types': 2.9.1 - '@smithy/url-parser': 2.1.1 - '@smithy/util-middleware': 2.1.1 + '@smithy/middleware-serde': 2.1.3 + '@smithy/node-config-provider': 2.2.4 + '@smithy/shared-ini-file-loader': 2.3.4 + '@smithy/types': 2.10.1 + '@smithy/url-parser': 2.1.3 + '@smithy/util-middleware': 2.1.3 tslib: 2.6.2 dev: false - /@smithy/middleware-retry@2.1.1: - resolution: {integrity: sha512-eMIHOBTXro6JZ+WWzZWd/8fS8ht5nS5KDQjzhNMHNRcG5FkNTqcKpYhw7TETMYzbLfhO5FYghHy1vqDWM4FLDA==} + /@smithy/middleware-retry@2.1.4: + resolution: {integrity: sha512-Cyolv9YckZTPli1EkkaS39UklonxMd08VskiuMhURDjC0HHa/AD6aK/YoD21CHv9s0QLg0WMLvk9YeLTKkXaFQ==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/node-config-provider': 2.2.1 - '@smithy/protocol-http': 3.1.1 - '@smithy/service-error-classification': 2.1.1 - '@smithy/smithy-client': 2.3.1 - '@smithy/types': 2.9.1 - '@smithy/util-middleware': 2.1.1 - '@smithy/util-retry': 2.1.1 + '@smithy/node-config-provider': 2.2.4 + '@smithy/protocol-http': 3.2.1 + '@smithy/service-error-classification': 2.1.3 + '@smithy/smithy-client': 2.4.2 + '@smithy/types': 2.10.1 + '@smithy/util-middleware': 2.1.3 + '@smithy/util-retry': 2.1.3 tslib: 2.6.2 uuid: 8.3.2 dev: false - /@smithy/middleware-serde@2.1.1: - resolution: {integrity: sha512-D8Gq0aQBeE1pxf3cjWVkRr2W54t+cdM2zx78tNrVhqrDykRA7asq8yVJij1u5NDtKzKqzBSPYh7iW0svUKg76g==} + /@smithy/middleware-serde@2.1.3: + resolution: {integrity: sha512-s76LId+TwASrHhUa9QS4k/zeXDUAuNuddKklQzRgumbzge5BftVXHXIqL4wQxKGLocPwfgAOXWx+HdWhQk9hTg==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.9.1 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false - /@smithy/middleware-stack@2.1.1: - resolution: {integrity: sha512-KPJhRlhsl8CjgGXK/DoDcrFGfAqoqvuwlbxy+uOO4g2Azn1dhH+GVfC3RAp+6PoL5PWPb+vt6Z23FP+Mr6qeCw==} + /@smithy/middleware-stack@2.1.3: + resolution: {integrity: sha512-opMFufVQgvBSld/b7mD7OOEBxF6STyraVr1xel1j0abVILM8ALJvRoFbqSWHGmaDlRGIiV9Q5cGbWi0sdiEaLQ==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.9.1 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false - /@smithy/node-config-provider@2.2.1: - resolution: {integrity: sha512-epzK3x1xNxA9oJgHQ5nz+2j6DsJKdHfieb+YgJ7ATWxzNcB7Hc+Uya2TUck5MicOPhDV8HZImND7ZOecVr+OWg==} + /@smithy/node-config-provider@2.2.4: + resolution: {integrity: sha512-nqazHCp8r4KHSFhRQ+T0VEkeqvA0U+RhehBSr1gunUuNW3X7j0uDrWBxB2gE9eutzy6kE3Y7L+Dov/UXT871vg==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/property-provider': 2.1.1 - '@smithy/shared-ini-file-loader': 2.3.1 - '@smithy/types': 2.9.1 + '@smithy/property-provider': 2.1.3 + '@smithy/shared-ini-file-loader': 2.3.4 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false - /@smithy/node-http-handler@2.3.1: - resolution: {integrity: sha512-gLA8qK2nL9J0Rk/WEZSvgin4AppvuCYRYg61dcUo/uKxvMZsMInL5I5ZdJTogOvdfVug3N2dgI5ffcUfS4S9PA==} + /@smithy/node-http-handler@2.4.1: + resolution: {integrity: sha512-HCkb94soYhJMxPCa61wGKgmeKpJ3Gftx1XD6bcWEB2wMV1L9/SkQu/6/ysKBnbOzWRE01FGzwrTxucHypZ8rdg==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/abort-controller': 2.1.1 - '@smithy/protocol-http': 3.1.1 - '@smithy/querystring-builder': 2.1.1 - '@smithy/types': 2.9.1 + '@smithy/abort-controller': 2.1.3 + '@smithy/protocol-http': 3.2.1 + '@smithy/querystring-builder': 2.1.3 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false - /@smithy/property-provider@2.1.1: - resolution: {integrity: sha512-FX7JhhD/o5HwSwg6GLK9zxrMUrGnb3PzNBrcthqHKBc3dH0UfgEAU24xnJ8F0uow5mj17UeBEOI6o3CF2k7Mhw==} + /@smithy/property-provider@2.1.3: + resolution: {integrity: sha512-bMz3se+ySKWNrgm7eIiQMa2HO/0fl2D0HvLAdg9pTMcpgp4SqOAh6bz7Ik6y7uQqSrk4rLjIKgbQ6yzYgGehCQ==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.9.1 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false - /@smithy/protocol-http@3.1.1: - resolution: {integrity: sha512-6ZRTSsaXuSL9++qEwH851hJjUA0OgXdQFCs+VDw4tGH256jQ3TjYY/i34N4vd24RV3nrjNsgd1yhb57uMoKbzQ==} + /@smithy/protocol-http@3.2.1: + resolution: {integrity: sha512-KLrQkEw4yJCeAmAH7hctE8g9KwA7+H2nSJwxgwIxchbp/L0B5exTdOQi9D5HinPLlothoervGmhpYKelZ6AxIA==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.9.1 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false - /@smithy/querystring-builder@2.1.1: - resolution: {integrity: sha512-C/ko/CeEa8jdYE4gt6nHO5XDrlSJ3vdCG0ZAc6nD5ZIE7LBp0jCx4qoqp7eoutBu7VrGMXERSRoPqwi1WjCPbg==} + /@smithy/querystring-builder@2.1.3: + resolution: {integrity: sha512-kFD3PnNqKELe6m9GRHQw/ftFFSZpnSeQD4qvgDB6BQN6hREHELSosVFUMPN4M3MDKN2jAwk35vXHLoDrNfKu0A==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.9.1 + '@smithy/types': 2.10.1 '@smithy/util-uri-escape': 2.1.1 tslib: 2.6.2 dev: false - /@smithy/querystring-parser@2.1.1: - resolution: {integrity: sha512-H4+6jKGVhG1W4CIxfBaSsbm98lOO88tpDWmZLgkJpt8Zkk/+uG0FmmqMuCAc3HNM2ZDV+JbErxr0l5BcuIf/XQ==} + /@smithy/querystring-parser@2.1.3: + resolution: {integrity: sha512-3+CWJoAqcBMR+yvz6D+Fc5VdoGFtfenW6wqSWATWajrRMGVwJGPT3Vy2eb2bnMktJc4HU4bpjeovFa566P3knQ==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.9.1 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false - /@smithy/service-error-classification@2.1.1: - resolution: {integrity: sha512-txEdZxPUgM1PwGvDvHzqhXisrc5LlRWYCf2yyHfvITWioAKat7srQvpjMAvgzf0t6t7j8yHrryXU9xt7RZqFpw==} + /@smithy/service-error-classification@2.1.3: + resolution: {integrity: sha512-iUrpSsem97bbXHHT/v3s7vaq8IIeMo6P6cXdeYHrx0wOJpMeBGQF7CB0mbJSiTm3//iq3L55JiEm8rA7CTVI8A==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.9.1 + '@smithy/types': 2.10.1 dev: false - /@smithy/shared-ini-file-loader@2.3.1: - resolution: {integrity: sha512-2E2kh24igmIznHLB6H05Na4OgIEilRu0oQpYXo3LCNRrawHAcfDKq9004zJs+sAMt2X5AbY87CUCJ7IpqpSgdw==} + /@smithy/shared-ini-file-loader@2.3.4: + resolution: {integrity: sha512-CiZmPg9GeDKbKmJGEFvJBsJcFnh0AQRzOtQAzj1XEa8N/0/uSN/v1LYzgO7ry8hhO8+9KB7+DhSW0weqBra4Aw==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.9.1 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false - /@smithy/signature-v4@2.1.1: - resolution: {integrity: sha512-Hb7xub0NHuvvQD3YwDSdanBmYukoEkhqBjqoxo+bSdC0ryV9cTfgmNjuAQhTPYB6yeU7hTR+sPRiFMlxqv6kmg==} + /@smithy/signature-v4@2.1.3: + resolution: {integrity: sha512-Jq4iPPdCmJojZTsPePn4r1ULShh6ONkokLuxp1Lnk4Sq7r7rJp4HlA1LbPBq4bD64TIzQezIpr1X+eh5NYkNxw==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/eventstream-codec': 2.1.1 + '@smithy/eventstream-codec': 2.1.3 '@smithy/is-array-buffer': 2.1.1 - '@smithy/types': 2.9.1 + '@smithy/types': 2.10.1 '@smithy/util-hex-encoding': 2.1.1 - '@smithy/util-middleware': 2.1.1 + '@smithy/util-middleware': 2.1.3 '@smithy/util-uri-escape': 2.1.1 '@smithy/util-utf8': 2.1.1 tslib: 2.6.2 dev: false - /@smithy/smithy-client@2.3.1: - resolution: {integrity: sha512-YsTdU8xVD64r2pLEwmltrNvZV6XIAC50LN6ivDopdt+YiF/jGH6PY9zUOu0CXD/d8GMB8gbhnpPsdrjAXHS9QA==} + /@smithy/smithy-client@2.4.2: + resolution: {integrity: sha512-ntAFYN51zu3N3mCd95YFcFi/8rmvm//uX+HnK24CRbI6k5Rjackn0JhgKz5zOx/tbNvOpgQIwhSX+1EvEsBLbA==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/middleware-endpoint': 2.4.1 - '@smithy/middleware-stack': 2.1.1 - '@smithy/protocol-http': 3.1.1 - '@smithy/types': 2.9.1 - '@smithy/util-stream': 2.1.1 + '@smithy/middleware-endpoint': 2.4.4 + '@smithy/middleware-stack': 2.1.3 + '@smithy/protocol-http': 3.2.1 + '@smithy/types': 2.10.1 + '@smithy/util-stream': 2.1.3 tslib: 2.6.2 dev: false - /@smithy/types@2.9.1: - resolution: {integrity: sha512-vjXlKNXyprDYDuJ7UW5iobdmyDm6g8dDG+BFUncAg/3XJaN45Gy5RWWWUVgrzIK7S4R1KWgIX5LeJcfvSI24bw==} + /@smithy/types@2.10.1: + resolution: {integrity: sha512-hjQO+4ru4cQ58FluQvKKiyMsFg0A6iRpGm2kqdH8fniyNd2WyanoOsYJfMX/IFLuLxEoW6gnRkNZy1y6fUUhtA==} engines: {node: '>=14.0.0'} dependencies: tslib: 2.6.2 dev: false - /@smithy/url-parser@2.1.1: - resolution: {integrity: sha512-qC9Bv8f/vvFIEkHsiNrUKYNl8uKQnn4BdhXl7VzQRP774AwIjiSMMwkbT+L7Fk8W8rzYVifzJNYxv1HwvfBo3Q==} + /@smithy/url-parser@2.1.3: + resolution: {integrity: sha512-X1NRA4WzK/ihgyzTpeGvI9Wn45y8HmqF4AZ/FazwAv8V203Ex+4lXqcYI70naX9ETqbqKVzFk88W6WJJzCggTQ==} dependencies: - '@smithy/querystring-parser': 2.1.1 - '@smithy/types': 2.9.1 + '@smithy/querystring-parser': 2.1.3 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false @@ -11538,36 +11621,36 @@ packages: tslib: 2.6.2 dev: false - /@smithy/util-defaults-mode-browser@2.1.1: - resolution: {integrity: sha512-lqLz/9aWRO6mosnXkArtRuQqqZBhNpgI65YDpww4rVQBuUT7qzKbDLG5AmnQTCiU4rOquaZO/Kt0J7q9Uic7MA==} + /@smithy/util-defaults-mode-browser@2.1.4: + resolution: {integrity: sha512-J6XAVY+/g7jf03QMnvqPyU+8jqGrrtXoKWFVOS+n1sz0Lg8HjHJ1ANqaDN+KTTKZRZlvG8nU5ZrJOUL6VdwgcQ==} engines: {node: '>= 10.0.0'} dependencies: - '@smithy/property-provider': 2.1.1 - '@smithy/smithy-client': 2.3.1 - '@smithy/types': 2.9.1 + '@smithy/property-provider': 2.1.3 + '@smithy/smithy-client': 2.4.2 + '@smithy/types': 2.10.1 bowser: 2.11.0 tslib: 2.6.2 dev: false - /@smithy/util-defaults-mode-node@2.2.0: - resolution: {integrity: sha512-iFJp/N4EtkanFpBUtSrrIbtOIBf69KNuve03ic1afhJ9/korDxdM0c6cCH4Ehj/smI9pDCfVv+bqT3xZjF2WaA==} + /@smithy/util-defaults-mode-node@2.2.3: + resolution: {integrity: sha512-ttUISrv1uVOjTlDa3nznX33f0pthoUlP+4grhTvOzcLhzArx8qHB94/untGACOG3nlf8vU20nI2iWImfzoLkYA==} engines: {node: '>= 10.0.0'} dependencies: - '@smithy/config-resolver': 2.1.1 - '@smithy/credential-provider-imds': 2.2.1 - '@smithy/node-config-provider': 2.2.1 - '@smithy/property-provider': 2.1.1 - '@smithy/smithy-client': 2.3.1 - '@smithy/types': 2.9.1 + '@smithy/config-resolver': 2.1.4 + '@smithy/credential-provider-imds': 2.2.4 + '@smithy/node-config-provider': 2.2.4 + '@smithy/property-provider': 2.1.3 + '@smithy/smithy-client': 2.4.2 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false - /@smithy/util-endpoints@1.1.1: - resolution: {integrity: sha512-sI4d9rjoaekSGEtq3xSb2nMjHMx8QXcz2cexnVyRWsy4yQ9z3kbDpX+7fN0jnbdOp0b3KSTZJZ2Yb92JWSanLw==} + /@smithy/util-endpoints@1.1.4: + resolution: {integrity: sha512-/qAeHmK5l4yQ4/bCIJ9p49wDe9rwWtOzhPHblu386fwPNT3pxmodgcs9jDCV52yK9b4rB8o9Sj31P/7Vzka1cg==} engines: {node: '>= 14.0.0'} dependencies: - '@smithy/node-config-provider': 2.2.1 - '@smithy/types': 2.9.1 + '@smithy/node-config-provider': 2.2.4 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false @@ -11578,30 +11661,30 @@ packages: tslib: 2.6.2 dev: false - /@smithy/util-middleware@2.1.1: - resolution: {integrity: sha512-mKNrk8oz5zqkNcbcgAAepeJbmfUW6ogrT2Z2gDbIUzVzNAHKJQTYmH9jcy0jbWb+m7ubrvXKb6uMjkSgAqqsFA==} + /@smithy/util-middleware@2.1.3: + resolution: {integrity: sha512-/+2fm7AZ2ozl5h8wM++ZP0ovE9/tiUUAHIbCfGfb3Zd3+Dyk17WODPKXBeJ/TnK5U+x743QmA0xHzlSm8I/qhw==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.9.1 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false - /@smithy/util-retry@2.1.1: - resolution: {integrity: sha512-Mg+xxWPTeSPrthpC5WAamJ6PW4Kbo01Fm7lWM1jmGRvmrRdsd3192Gz2fBXAMURyXpaNxyZf6Hr/nQ4q70oVEA==} + /@smithy/util-retry@2.1.3: + resolution: {integrity: sha512-Kbvd+GEMuozbNUU3B89mb99tbufwREcyx2BOX0X2+qHjq6Gvsah8xSDDgxISDwcOHoDqUWO425F0Uc/QIRhYkg==} engines: {node: '>= 14.0.0'} dependencies: - '@smithy/service-error-classification': 2.1.1 - '@smithy/types': 2.9.1 + '@smithy/service-error-classification': 2.1.3 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false - /@smithy/util-stream@2.1.1: - resolution: {integrity: sha512-J7SMIpUYvU4DQN55KmBtvaMc7NM3CZ2iWICdcgaovtLzseVhAqFRYqloT3mh0esrFw+3VEK6nQFteFsTqZSECQ==} + /@smithy/util-stream@2.1.3: + resolution: {integrity: sha512-HvpEQbP8raTy9n86ZfXiAkf3ezp1c3qeeO//zGqwZdrfaoOpGKQgF2Sv1IqZp7wjhna7pvczWaGUHjcOPuQwKw==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/fetch-http-handler': 2.4.1 - '@smithy/node-http-handler': 2.3.1 - '@smithy/types': 2.9.1 + '@smithy/fetch-http-handler': 2.4.3 + '@smithy/node-http-handler': 2.4.1 + '@smithy/types': 2.10.1 '@smithy/util-base64': 2.1.1 '@smithy/util-buffer-from': 2.1.1 '@smithy/util-hex-encoding': 2.1.1 @@ -11624,12 +11707,12 @@ packages: tslib: 2.6.2 dev: false - /@smithy/util-waiter@2.1.1: - resolution: {integrity: sha512-kYy6BLJJNif+uqNENtJqWdXcpqo1LS+nj1AfXcDhOpqpSHJSAkVySLyZV9fkmuVO21lzGoxjvd1imGGJHph/IA==} + /@smithy/util-waiter@2.1.3: + resolution: {integrity: sha512-3R0wNFAQQoH9e4m+bVLDYNOst2qNxtxFgq03WoNHWTBOqQT3jFnOBRj1W51Rf563xDA5kwqjziksxn6RKkHB+Q==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/abort-controller': 2.1.1 - '@smithy/types': 2.9.1 + '@smithy/abort-controller': 2.1.3 + '@smithy/types': 2.10.1 tslib: 2.6.2 dev: false @@ -12439,7 +12522,7 @@ packages: resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==} dependencies: '@types/minimatch': 5.1.2 - '@types/node': 20.10.4 + '@types/node': 20.10.5 dev: true /@types/graceful-fs@4.1.9: @@ -12641,6 +12724,14 @@ packages: /@types/parse-json@4.0.2: resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} + /@types/pg@8.11.2: + resolution: {integrity: sha512-G2Mjygf2jFMU/9hCaTYxJrwdObdcnuQde1gndooZSOHsNSaCehAuwc7EIuSA34Do8Jx2yZ19KtvW8P0j4EuUXw==} + dependencies: + '@types/node': 20.10.5 + pg-protocol: 1.6.0 + pg-types: 4.0.2 + dev: true + /@types/prettier@2.7.3: resolution: {integrity: sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==} @@ -13088,11 +13179,6 @@ packages: server-only: 0.0.1 dev: false - /@vercel/ncc@0.38.1: - resolution: {integrity: sha512-IBBb+iI2NLu4VQn3Vwldyi2QwaXt5+hTyh58ggAMoCGE6DJmPvwL3KPBWcJl1m9LYPChBLE980Jw+CS4Wokqxw==} - hasBin: true - dev: true - /@vitejs/plugin-react@4.2.1(vite@4.5.2): resolution: {integrity: sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==} engines: {node: ^14.18.0 || >=16.0.0} @@ -16031,6 +16117,11 @@ packages: resolution: {integrity: sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==} engines: {node: '>=10'} + /dotenv@16.4.5: + resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} + engines: {node: '>=12'} + dev: false + /dottie@2.0.6: resolution: {integrity: sha512-iGCHkfUc5kFekGiqhe8B/mdaurD+lakO9txNnTvKtA6PISrw86LgqHvRzWYPyoE2Ph5aMIrCw9/uko6XHTKCwA==} dev: false @@ -19473,7 +19564,7 @@ packages: resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} dev: true - /langchain@0.0.209(@aws-sdk/client-s3@3.515.0)(@aws-sdk/credential-provider-node@3.515.0)(axios@1.6.2)(chromadb@1.7.2)(pg@8.11.3)(replicate@0.25.2): + /langchain@0.0.209(@aws-sdk/client-s3@3.525.0)(@aws-sdk/credential-provider-node@3.525.0)(axios@1.6.2)(chromadb@1.7.2)(pg@8.11.3)(replicate@0.25.2): resolution: {integrity: sha512-5+ixk2z6XP7NiPqAinrolwd4LKA4b+gWDiFHGaMnk3AHeOnquUHEEqDXghuQrMpr93p8egwO9AgmpKpAIvznFg==} engines: {node: '>=18'} peerDependencies: @@ -19633,9 +19724,9 @@ packages: optional: true dependencies: '@anthropic-ai/sdk': 0.9.1 - '@aws-sdk/client-s3': 3.515.0 - '@aws-sdk/credential-provider-node': 3.515.0 - '@langchain/community': 0.0.29(@aws-sdk/credential-provider-node@3.515.0)(chromadb@1.7.2)(pg@8.11.3)(replicate@0.25.2) + '@aws-sdk/client-s3': 3.525.0 + '@aws-sdk/credential-provider-node': 3.525.0 + '@langchain/community': 0.0.29(@aws-sdk/credential-provider-node@3.525.0)(chromadb@1.7.2)(pg@8.11.3)(replicate@0.25.2) '@langchain/core': 0.1.29 '@langchain/openai': 0.0.14 axios: 1.6.2 @@ -22032,7 +22123,11 @@ packages: /pg-int8@1.0.1: resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} engines: {node: '>=4.0.0'} - dev: false + + /pg-numeric@1.0.2: + resolution: {integrity: sha512-BM/Thnrw5jm2kKLE5uJkXqqExRUY/toLHda65XgFTBTFYZyopbKjBe29Ii3RbkvlsMoFwD+tHeGaCjjv0gHlyw==} + engines: {node: '>=4'} + dev: true /pg-pool@3.6.1(pg@8.11.3): resolution: {integrity: sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og==} @@ -22044,7 +22139,6 @@ packages: /pg-protocol@1.6.0: resolution: {integrity: sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==} - dev: false /pg-types@2.2.0: resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==} @@ -22057,6 +22151,19 @@ packages: postgres-interval: 1.2.0 dev: false + /pg-types@4.0.2: + resolution: {integrity: sha512-cRL3JpS3lKMGsKaWndugWQoLOCoP+Cic8oseVcbr0qhPzYD5DWXK+RZ9LY9wxRf7RQia4SCwQlXk0q6FCPrVng==} + engines: {node: '>=10'} + dependencies: + pg-int8: 1.0.1 + pg-numeric: 1.0.2 + postgres-array: 3.0.2 + postgres-bytea: 3.0.0 + postgres-date: 2.1.0 + postgres-interval: 3.0.0 + postgres-range: 1.1.4 + dev: true + /pg@8.11.3: resolution: {integrity: sha512-+9iuvG8QfaaUrrph+kpF24cXkH1YOOUeArRNYIxq1viYHZagBxrTno7cecY1Fa44tJeZvaoG+Djpkc3JwehN5g==} engines: {node: '>= 8.0.0'} @@ -22884,16 +22991,33 @@ packages: engines: {node: '>=4'} dev: false + /postgres-array@3.0.2: + resolution: {integrity: sha512-6faShkdFugNQCLwucjPcY5ARoW1SlbnrZjmGl0IrrqewpvxvhSLHimCVzqeuULCbG0fQv7Dtk1yDbG3xv7Veog==} + engines: {node: '>=12'} + dev: true + /postgres-bytea@1.0.0: resolution: {integrity: sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==} engines: {node: '>=0.10.0'} dev: false + /postgres-bytea@3.0.0: + resolution: {integrity: sha512-CNd4jim9RFPkObHSjVHlVrxoVQXz7quwNFpz7RY1okNNme49+sVyiTvTRobiLV548Hx/hb1BG+iE7h9493WzFw==} + engines: {node: '>= 6'} + dependencies: + obuf: 1.1.2 + dev: true + /postgres-date@1.0.7: resolution: {integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==} engines: {node: '>=0.10.0'} dev: false + /postgres-date@2.1.0: + resolution: {integrity: sha512-K7Juri8gtgXVcDfZttFKVmhglp7epKb1K4pgrkLxehjqkrgPhfG6OO8LHLkfaqkbpjNRnra018XwAr1yQFWGcA==} + engines: {node: '>=12'} + dev: true + /postgres-interval@1.2.0: resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} engines: {node: '>=0.10.0'} @@ -22901,6 +23025,15 @@ packages: xtend: 4.0.2 dev: false + /postgres-interval@3.0.0: + resolution: {integrity: sha512-BSNDnbyZCXSxgA+1f5UU2GmwhoI0aU5yMxRGO8CdFEcY2BQF9xm/7MqKnYoM1nJDk8nONNWDk9WeSmePFhQdlw==} + engines: {node: '>=12'} + dev: true + + /postgres-range@1.1.4: + resolution: {integrity: sha512-i/hbxIE9803Alj/6ytL7UHQxRvZkI9O4Sy+J3HGc4F4oo/2eQAjTSNJ0bfxyse3bH0nuVesCk+3IRLaMtG3H6w==} + dev: true + /preact-compat@3.19.0(preact@10.19.3): resolution: {integrity: sha512-f83A4hIhH8Uzhb9GbIcGk8SM19ffWlwP9mDaYwQdRnMdekZwcCA7eIAbeV4EMQaV9C0Yuy8iKgBAtyTKPZQt/Q==} peerDependencies: @@ -23015,6 +23148,15 @@ packages: resolution: {integrity: sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew==} dev: false + /prisma@5.10.2: + resolution: {integrity: sha512-hqb/JMz9/kymRE25pMWCxkdyhbnIWrq+h7S6WysJpdnCvhstbJSNP/S6mScEcqiB8Qv2F+0R3yG+osRaWqZacQ==} + engines: {node: '>=16.13'} + hasBin: true + requiresBuild: true + dependencies: + '@prisma/engines': 5.10.2 + dev: false + /prismjs@1.27.0: resolution: {integrity: sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==} engines: {node: '>=6'} @@ -24681,8 +24823,8 @@ packages: engines: {node: '>= 10.0.0'} dev: false - /sequelize@6.37.0(pg@8.11.3)(sqlite3@5.1.7): - resolution: {integrity: sha512-MS6j6aXqWzB3fe9FhmfpQMgVC16bBdYroJCqIqR0l9M2ko8pZdKoi/0PiNWgMyFQDXUHxXyAOG3K07CbnOhteQ==} + /sequelize@6.37.1(pg@8.11.3)(sqlite3@5.1.7): + resolution: {integrity: sha512-vIKKzQ9dGp2aBOxQRD1FmUYViuQiKXSJ8yah8TsaBx4U3BokJt+Y2A0qz2C4pj08uX59qpWxRqSLEfRmVOEgQw==} engines: {node: '>=10.0.0'} peerDependencies: ibm_db: '*' @@ -26238,6 +26380,17 @@ packages: fsevents: 2.3.3 dev: true + /tsx@4.7.1: + resolution: {integrity: sha512-8d6VuibXHtlN5E3zFkgY8u4DX7Y3Z27zvvPKVmLon/D4AjuKzarkUBTLDBgj9iTQ0hg5xM7c/mYiRVM+HETf0g==} + engines: {node: '>=18.0.0'} + hasBin: true + dependencies: + esbuild: 0.19.12 + get-tsconfig: 4.7.2 + optionalDependencies: + fsevents: 2.3.3 + dev: true + /tunnel-agent@0.6.0: resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} requiresBuild: true @@ -28461,6 +28614,16 @@ packages: resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} engines: {node: '>=12.20'} + /zod-prisma-types@3.1.6: + resolution: {integrity: sha512-ySaG91RraTm4J19zfvuX6S3OxhDMlK4dTfYWM4rS+4AlEGqDqGu5BbIn2trjTDt8OiCMBHoIjZmRXPKQCyNApA==} + hasBin: true + dependencies: + '@prisma/generator-helper': 5.10.2 + code-block-writer: 12.0.0 + lodash: 4.17.21 + zod: 3.22.4 + dev: false + /zod-to-json-schema@3.20.3(zod@3.22.4): resolution: {integrity: sha512-/Q3wnyxAfCt94ZcrGiXXoiAfRqasxl9CX64LZ9fj+4dKH68zulUtU0uk1WMxQPfAxQ0ZI70dKzcoW7hHj+DwSQ==} peerDependencies: