@mastra/codemod 0.0.0-main-test-05-11-2025-2-20251106053353 → 0.1.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/CHANGELOG.md +9 -1
  2. package/README.md +41 -24
  3. package/dist/codemods/chunk-JNFQ6J6B.js +21 -0
  4. package/dist/codemods/chunk-JNFQ6J6B.js.map +1 -0
  5. package/dist/codemods/chunk-LGW3NUAJ.js +32 -0
  6. package/dist/codemods/chunk-LGW3NUAJ.js.map +1 -0
  7. package/dist/codemods/chunk-PKCFDS7J.js +177 -0
  8. package/dist/codemods/chunk-PKCFDS7J.js.map +1 -0
  9. package/dist/codemods/lib/add-comment.js +6 -54
  10. package/dist/codemods/lib/add-comment.js.map +1 -1
  11. package/dist/codemods/lib/create-transformer.js +5 -43
  12. package/dist/codemods/lib/create-transformer.js.map +1 -1
  13. package/dist/codemods/lib/utils.js +23 -0
  14. package/dist/codemods/lib/utils.js.map +1 -0
  15. package/dist/codemods/v1/agent-abort-signal.js +61 -0
  16. package/dist/codemods/v1/agent-abort-signal.js.map +1 -0
  17. package/dist/codemods/v1/agent-generate-stream-v-next.js +13 -70
  18. package/dist/codemods/v1/agent-generate-stream-v-next.js.map +1 -1
  19. package/dist/codemods/v1/agent-processor-methods.js +14 -71
  20. package/dist/codemods/v1/agent-processor-methods.js.map +1 -1
  21. package/dist/codemods/v1/agent-property-access.js +11 -50
  22. package/dist/codemods/v1/agent-property-access.js.map +1 -1
  23. package/dist/codemods/v1/agent-voice.js +10 -49
  24. package/dist/codemods/v1/agent-voice.js.map +1 -1
  25. package/dist/codemods/v1/client-get-memory-thread.js +58 -0
  26. package/dist/codemods/v1/client-get-memory-thread.js.map +1 -0
  27. package/dist/codemods/v1/client-offset-limit.js +49 -0
  28. package/dist/codemods/v1/client-offset-limit.js.map +1 -0
  29. package/dist/codemods/v1/client-sdk-types.js +56 -0
  30. package/dist/codemods/v1/client-sdk-types.js.map +1 -0
  31. package/dist/codemods/v1/client-to-ai-sdk-format.js +20 -0
  32. package/dist/codemods/v1/client-to-ai-sdk-format.js.map +1 -0
  33. package/dist/codemods/v1/evals-prebuilt-imports.js +24 -0
  34. package/dist/codemods/v1/evals-prebuilt-imports.js.map +1 -0
  35. package/dist/codemods/v1/evals-run-experiment.js +20 -0
  36. package/dist/codemods/v1/evals-run-experiment.js.map +1 -0
  37. package/dist/codemods/v1/evals-scorer-by-name.js +22 -0
  38. package/dist/codemods/v1/evals-scorer-by-name.js.map +1 -0
  39. package/dist/codemods/v1/experimental-auth.js +7 -43
  40. package/dist/codemods/v1/experimental-auth.js.map +1 -1
  41. package/dist/codemods/v1/mastra-core-imports.js +8 -44
  42. package/dist/codemods/v1/mastra-core-imports.js.map +1 -1
  43. package/dist/codemods/v1/mastra-plural-apis.js +31 -0
  44. package/dist/codemods/v1/mastra-plural-apis.js.map +1 -0
  45. package/dist/codemods/v1/mcp-get-tools.js +14 -66
  46. package/dist/codemods/v1/mcp-get-tools.js.map +1 -1
  47. package/dist/codemods/v1/mcp-get-toolsets.js +14 -66
  48. package/dist/codemods/v1/mcp-get-toolsets.js.map +1 -1
  49. package/dist/codemods/v1/memory-message-v2-type.js +50 -0
  50. package/dist/codemods/v1/memory-message-v2-type.js.map +1 -0
  51. package/dist/codemods/v1/memory-query-to-recall.js +22 -0
  52. package/dist/codemods/v1/memory-query-to-recall.js.map +1 -0
  53. package/dist/codemods/v1/memory-vector-search-param.js +31 -0
  54. package/dist/codemods/v1/memory-vector-search-param.js.map +1 -0
  55. package/dist/codemods/v1/not-implemented/agent-format-parameter.js +53 -0
  56. package/dist/codemods/v1/not-implemented/agent-format-parameter.js.map +1 -0
  57. package/dist/codemods/v1/not-implemented/agent-to-step.js +54 -0
  58. package/dist/codemods/v1/not-implemented/agent-to-step.js.map +1 -0
  59. package/dist/codemods/v1/not-implemented/mastra-memory.js +50 -0
  60. package/dist/codemods/v1/not-implemented/mastra-memory.js.map +1 -0
  61. package/dist/codemods/v1/not-implemented/mastra-required-id.js +112 -0
  62. package/dist/codemods/v1/not-implemented/mastra-required-id.js.map +1 -0
  63. package/dist/codemods/v1/runtime-context.js +6 -42
  64. package/dist/codemods/v1/runtime-context.js.map +1 -1
  65. package/dist/codemods/v1/storage-get-messages-paginated.js +41 -0
  66. package/dist/codemods/v1/storage-get-messages-paginated.js.map +1 -0
  67. package/dist/codemods/v1/storage-get-threads-by-resource.js +23 -0
  68. package/dist/codemods/v1/storage-get-threads-by-resource.js.map +1 -0
  69. package/dist/codemods/v1/storage-list-messages-by-id.js +23 -0
  70. package/dist/codemods/v1/storage-list-messages-by-id.js.map +1 -0
  71. package/dist/codemods/v1/storage-list-workflow-runs.js +23 -0
  72. package/dist/codemods/v1/storage-list-workflow-runs.js.map +1 -0
  73. package/dist/codemods/v1/storage-postgres-schema-name.js +20 -0
  74. package/dist/codemods/v1/storage-postgres-schema-name.js.map +1 -0
  75. package/dist/codemods/v1/vector-pg-constructor.js +27 -0
  76. package/dist/codemods/v1/vector-pg-constructor.js.map +1 -0
  77. package/dist/codemods/v1/voice-property-names.js +12 -48
  78. package/dist/codemods/v1/voice-property-names.js.map +1 -1
  79. package/dist/codemods/v1/workflow-create-run-async.js +22 -0
  80. package/dist/codemods/v1/workflow-create-run-async.js.map +1 -0
  81. package/dist/codemods/v1/workflow-list-runs.js +22 -0
  82. package/dist/codemods/v1/workflow-list-runs.js.map +1 -0
  83. package/dist/codemods/v1/workflow-run-count.js +53 -0
  84. package/dist/codemods/v1/workflow-run-count.js.map +1 -0
  85. package/dist/index.js +66 -46
  86. package/dist/index.js.map +1 -1
  87. package/package.json +4 -3
  88. package/dist/codemods/v1/agent-get-agents.js +0 -74
  89. package/dist/codemods/v1/agent-get-agents.js.map +0 -1
  90. package/dist/codemods/v1/evals-get-scorers.js +0 -74
  91. package/dist/codemods/v1/evals-get-scorers.js.map +0 -1
  92. package/dist/codemods/v1/mcp-get-mcp-servers.js +0 -74
  93. package/dist/codemods/v1/mcp-get-mcp-servers.js.map +0 -1
  94. package/dist/codemods/v1/workflows-get-workflows.js +0 -74
  95. package/dist/codemods/v1/workflows-get-workflows.js.map +0 -1
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/lib/transform.ts","../src/lib/bundle.ts","../src/lib/upgrade.ts","../src/index.ts"],"names":["debug","path","fs","transform","execSync","log","error","progress","Command"],"mappings":"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","file":"index.js","sourcesContent":["// Adjusted from https://github.com/vercel/ai/blob/main/packages/codemod/src/lib/transform.ts\n// License: Apache-2.0\n\nimport { execSync } from 'child_process';\nimport fs from 'fs';\nimport path from 'path';\nimport debug from 'debug';\n\ninterface TransformOptions {\n dry?: boolean;\n print?: boolean;\n verbose?: boolean;\n jscodeshift?: string;\n}\n\nconst log = debug('codemod:transform');\nconst error = debug('codemod:transform:error');\n\nfunction getJscodeshift(): string {\n const localJscodeshift = path.resolve(__dirname, '../node_modules/.bin/jscodeshift');\n return fs.existsSync(localJscodeshift) ? localJscodeshift : 'jscodeshift';\n}\n\nfunction buildCommand(codemodPath: string, targetPath: string, jscodeshift: string, options: TransformOptions): string {\n // Ignoring everything under `.*/` covers `.mastra/` along with any other\n // framework build related or otherwise intended-to-be-hidden directories.\n let command = `${jscodeshift} -t ${codemodPath} ${targetPath} \\\n --parser tsx \\\n --ignore-pattern=\"**/node_modules/**\" \\\n --ignore-pattern=\"**/.*/**\" \\\n --ignore-pattern=\"**/dist/**\" \\\n --ignore-pattern=\"**/build/**\" \\\n --ignore-pattern=\"**/*.min.js\" \\\n --ignore-pattern=\"**/*.bundle.js\"`;\n\n if (options.dry) {\n command += ' --dry';\n }\n\n if (options.print) {\n command += ' --print';\n }\n\n if (options.verbose) {\n command += ' --verbose';\n }\n\n if (options.jscodeshift) {\n command += ` ${options.jscodeshift}`;\n }\n\n return command;\n}\n\nexport type TransformErrors = {\n transform: string;\n filename: string;\n summary: string;\n}[];\n\nfunction parseErrors(transform: string, output: string): TransformErrors {\n const errors: TransformErrors = [];\n const errorRegex = /ERR (.+) Transformation error/g;\n const syntaxErrorRegex = /SyntaxError: .+/g;\n\n let match;\n while ((match = errorRegex.exec(output)) !== null) {\n const filename = match[1]!;\n const syntaxErrorMatch = syntaxErrorRegex.exec(output);\n if (syntaxErrorMatch) {\n const summary = syntaxErrorMatch[0];\n errors.push({ transform, filename, summary });\n }\n }\n\n return errors;\n}\n\nfunction parseNotImplementedErrors(transform: string, output: string): TransformErrors {\n const notImplementedErrors: TransformErrors = [];\n const notImplementedRegex = /Not Implemented (.+): (.+)/g;\n\n let match;\n while ((match = notImplementedRegex.exec(output)) !== null) {\n const filename = match[1]!;\n const summary = match[2]!;\n notImplementedErrors.push({ transform, filename, summary });\n }\n\n return notImplementedErrors;\n}\n\nexport function transform(\n codemod: string,\n source: string,\n transformOptions: TransformOptions,\n options: { logStatus: boolean } = { logStatus: true },\n): { errors: TransformErrors; notImplementedErrors: TransformErrors } {\n if (options.logStatus) {\n log(`Applying codemod '${codemod}': ${source}`);\n }\n const codemodPath = path.resolve(__dirname, `./codemods/${codemod}.js`);\n const targetPath = path.resolve(source);\n const jscodeshift = getJscodeshift();\n const command = buildCommand(codemodPath, targetPath, jscodeshift, transformOptions);\n const stdout = execSync(command, { encoding: 'utf8', stdio: 'pipe' });\n const errors = parseErrors(codemod, stdout);\n const notImplementedErrors = parseNotImplementedErrors(codemod, stdout);\n if (options.logStatus) {\n if (errors.length > 0) {\n errors.forEach(({ transform, filename, summary }) => {\n error(`Error applying codemod [codemod=${transform}, path=${filename}, summary=${summary}]`);\n });\n }\n\n if (notImplementedErrors.length > 0) {\n log(\n `Some files require manual changes. Please search your codebase for \\`FIXME(mastra): \\` comments and follow the instructions to complete the upgrade.`,\n );\n notImplementedErrors.forEach(({ transform, filename, summary }) => {\n log(`Not Implemented [codemod=${transform}, path=${filename}, summary=${summary}]`);\n });\n }\n }\n\n return { errors, notImplementedErrors };\n}\n","// List of all codemods\nexport const BUNDLE = [\n 'v1/mastra-core-imports',\n 'v1/runtime-context',\n 'v1/experimental-auth',\n 'v1/agent-property-access',\n 'v1/agent-voice',\n 'v1/agent-processor-methods',\n 'v1/agent-generate-stream-v-next',\n 'v1/voice-property-names',\n 'v1/agent-get-agents',\n 'v1/evals-get-scorers',\n 'v1/mcp-get-mcp-servers',\n 'v1/mcp-get-tools',\n 'v1/mcp-get-toolsets',\n 'v1/workflows-get-workflows',\n];\n","import { progress } from '@clack/prompts';\nimport debug from 'debug';\nimport { BUNDLE } from './bundle';\nimport type { TransformErrors } from './transform';\nimport { transform } from './transform';\n\ninterface TransformOptions {\n dry?: true;\n print?: true;\n verbose?: true;\n jscodeshift?: string;\n}\n\nconst log = debug('codemod:upgrade');\nconst error = debug('codemod:upgrade:error');\n\n// Extract v1 codemods from the bundle\nconst v1Bundle = BUNDLE.filter(codemod => codemod.startsWith('v1/'));\n\nfunction runCodemods(codemods: string[], options: TransformOptions, versionLabel: string) {\n const cwd = process.cwd();\n log(`Starting ${versionLabel} codemods...`);\n const modCount = codemods.length;\n const p = progress({ size: modCount });\n\n p.start('Starting...');\n\n const allErrors: TransformErrors = [];\n let notImplementedAvailable = false;\n for (const [_, codemod] of codemods.entries()) {\n const { errors, notImplementedErrors } = transform(codemod, cwd, options, {\n logStatus: false,\n });\n allErrors.push(...errors);\n if (notImplementedErrors.length > 0) {\n notImplementedAvailable = true;\n }\n p.advance(1, `Codemod: ${codemod}`);\n }\n p.stop('Ran all codemods.');\n\n if (allErrors.length > 0) {\n log(`Some ${versionLabel} codemods did not apply successfully to all files. Details:`);\n allErrors.forEach(({ transform, filename, summary }) => {\n error(`codemod=${transform}, path=${filename}, summary=${summary}`);\n });\n }\n\n if (notImplementedAvailable) {\n log(\n `Some ${versionLabel} codemods require manual changes. Please search your codebase for \\`FIXME(mastra): \\` comments and follow the instructions to complete the upgrade.`,\n );\n }\n\n log(`${versionLabel} codemods complete.`);\n}\n\nexport function upgradeV1(options: TransformOptions) {\n runCodemods(v1Bundle, options, 'v1');\n}\n","#! /usr/bin/env node\n\nimport { Command } from 'commander';\nimport debug from 'debug';\nimport { transform } from './lib/transform';\nimport { upgradeV1 } from './lib/upgrade';\n\nconst error = debug('codemod:error');\ndebug.enable('codemod:*');\n\nconst program = new Command();\n\nprogram\n .name('codemod')\n .description('CLI for running Mastra codemods')\n .argument('<codemod>', 'Codemod to run')\n .argument('<source>', 'Path to source files or directory')\n .option('-d, --dry', 'Dry run (no changes are made to files)')\n .option('-p, --print', 'Print transformed files to stdout')\n .option('--verbose', 'Show more information about the transform process')\n .option('-j, --jscodeshift <options>', 'Pass options directly to jscodeshift')\n .action((codemod, source, options) => {\n try {\n transform(codemod, source, options);\n } catch (err: any) {\n error(`Error transforming: ${err}`);\n process.exit(1);\n }\n });\n\nprogram\n .command('v1')\n .description('Apply all v1 codemods (v0.x to v1)')\n .option('-d, --dry', 'Dry run (no changes are made to files)')\n .option('-p, --print', 'Print transformed files to stdout')\n .option('--verbose', 'Show more information about the transform process')\n .option('-j, --jscodeshift <options>', 'Pass options directly to jscodeshift')\n .action(options => {\n try {\n upgradeV1(options);\n } catch (err: any) {\n error(`Error transforming: ${err}`);\n process.exit(1);\n }\n });\n\nprogram.parse(process.argv);\n"]}
1
+ {"version":3,"sources":["../src/lib/transform.ts","../src/lib/bundle.ts","../src/lib/upgrade.ts","../src/index.ts"],"names":["transform","log","debug","error"],"mappings":"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","file":"index.js","sourcesContent":["import fs from 'fs';\nimport child_process from 'node:child_process';\nimport { fileURLToPath } from 'node:url';\nimport util from 'node:util';\nimport path from 'path';\nimport debug from 'debug';\n\nconst exec = util.promisify(child_process.exec);\n\ninterface TransformOptions {\n dry?: boolean;\n print?: boolean;\n verbose?: boolean;\n jscodeshift?: string;\n}\n\nconst log = debug('codemod:transform');\nconst error = debug('codemod:transform:error');\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\n\nfunction getJscodeshift(): string {\n const localJscodeshift = path.resolve(__dirname, '../node_modules/.bin/jscodeshift');\n return fs.existsSync(localJscodeshift) ? localJscodeshift : 'jscodeshift';\n}\n\nfunction buildCommand(codemodPath: string, targetPath: string, jscodeshift: string, options: TransformOptions): string {\n // Ignoring everything under `.*/` covers `.mastra/` along with any other\n // framework build related or otherwise intended-to-be-hidden directories.\n let command = `${jscodeshift} -t ${codemodPath} ${targetPath} \\\n --parser tsx \\\n --ignore-pattern=\"**/node_modules/**\" \\\n --ignore-pattern=\"**/.*/**\" \\\n --ignore-pattern=\"**/dist/**\" \\\n --ignore-pattern=\"**/build/**\" \\\n --ignore-pattern=\"**/*.min.js\" \\\n --ignore-pattern=\"**/*.bundle.js\"`;\n\n if (options.dry) {\n command += ' --dry';\n }\n\n if (options.print) {\n command += ' --print';\n }\n\n if (options.verbose) {\n command += ' --verbose';\n }\n\n if (options.jscodeshift) {\n command += ` ${options.jscodeshift}`;\n }\n\n return command;\n}\n\nexport type TransformErrors = {\n transform: string;\n filename: string;\n summary: string;\n}[];\n\nfunction parseErrors(transform: string, output: string): TransformErrors {\n const errors: TransformErrors = [];\n const errorRegex = /ERR (.+) Transformation error/g;\n const syntaxErrorRegex = /SyntaxError: .+/g;\n\n let match;\n while ((match = errorRegex.exec(output)) !== null) {\n const filename = match[1]!;\n const syntaxErrorMatch = syntaxErrorRegex.exec(output);\n if (syntaxErrorMatch) {\n const summary = syntaxErrorMatch[0];\n errors.push({ transform, filename, summary });\n }\n }\n\n return errors;\n}\n\nfunction parseNotImplementedErrors(transform: string, output: string): TransformErrors {\n const notImplementedErrors: TransformErrors = [];\n const notImplementedRegex = /Not Implemented (.+): (.+)/g;\n\n let match;\n while ((match = notImplementedRegex.exec(output)) !== null) {\n const filename = match[1]!;\n const summary = match[2]!;\n notImplementedErrors.push({ transform, filename, summary });\n }\n\n return notImplementedErrors;\n}\n\nexport async function transform(\n codemod: string,\n source: string,\n transformOptions: TransformOptions,\n options: { logStatus: boolean } = { logStatus: true },\n): Promise<{ errors: TransformErrors; notImplementedErrors: TransformErrors }> {\n if (options.logStatus) {\n log(`Applying codemod '${codemod}': ${source}`);\n }\n const codemodPath = path.resolve(__dirname, `./codemods/${codemod}.js`);\n const targetPath = path.resolve(source);\n const jscodeshift = getJscodeshift();\n const command = buildCommand(codemodPath, targetPath, jscodeshift, transformOptions);\n const { stdout } = await exec(command, { encoding: 'utf8' });\n const errors = parseErrors(codemod, stdout);\n const notImplementedErrors = parseNotImplementedErrors(codemod, stdout);\n if (options.logStatus) {\n if (errors.length > 0) {\n errors.forEach(({ transform, filename, summary }) => {\n error(`Error applying codemod [codemod=${transform}, path=${filename}, summary=${summary}]`);\n });\n }\n\n if (notImplementedErrors.length > 0) {\n log(\n `Some files require manual changes. Please search your codebase for \\`FIXME(mastra): \\` comments and follow the instructions to complete the upgrade.`,\n );\n notImplementedErrors.forEach(({ transform, filename, summary }) => {\n log(`Not Implemented [codemod=${transform}, path=${filename}, summary=${summary}]`);\n });\n }\n }\n\n return { errors, notImplementedErrors };\n}\n","// List of all codemods\nexport const BUNDLE = [\n 'v1/mastra-core-imports',\n 'v1/runtime-context',\n 'v1/not-implemented/mastra-memory',\n 'v1/mastra-plural-apis',\n 'v1/not-implemented/mastra-required-id',\n 'v1/agent-property-access',\n 'v1/agent-voice',\n 'v1/agent-processor-methods',\n 'v1/agent-generate-stream-v-next',\n 'v1/agent-abort-signal',\n 'v1/not-implemented/agent-format-parameter',\n 'v1/not-implemented/agent-to-step',\n 'v1/voice-property-names',\n 'v1/mcp-get-tools',\n 'v1/mcp-get-toolsets',\n 'v1/client-sdk-types',\n 'v1/client-to-ai-sdk-format',\n 'v1/client-offset-limit',\n 'v1/client-get-memory-thread',\n 'v1/experimental-auth',\n 'v1/evals-run-experiment',\n 'v1/evals-scorer-by-name',\n 'v1/evals-prebuilt-imports',\n 'v1/workflow-create-run-async',\n 'v1/workflow-run-count',\n 'v1/workflow-list-runs',\n 'v1/memory-query-to-recall',\n 'v1/memory-vector-search-param',\n 'v1/memory-message-v2-type',\n 'v1/storage-get-threads-by-resource',\n 'v1/storage-list-messages-by-id',\n 'v1/storage-postgres-schema-name',\n 'v1/storage-get-messages-paginated',\n 'v1/storage-list-workflow-runs',\n 'v1/vector-pg-constructor',\n];\n","import { spinner, intro, outro } from '@clack/prompts';\nimport debug from 'debug';\nimport { BUNDLE } from './bundle';\nimport type { TransformErrors } from './transform';\nimport { transform } from './transform';\n\ninterface TransformOptions {\n dry?: true;\n print?: true;\n verbose?: true;\n jscodeshift?: string;\n}\n\nconst log = debug('codemod:upgrade');\nconst error = debug('codemod:upgrade:error');\n\n// Extract v1 codemods from the bundle\nconst v1Bundle = BUNDLE.filter(codemod => codemod.startsWith('v1/'));\n\nasync function runCodemods(codemods: string[], options: TransformOptions, versionLabel: string) {\n const cwd = process.cwd();\n intro(`Starting ${versionLabel} codemods`);\n const modCount = codemods.length;\n const s = spinner();\n\n s.start(`Running ${modCount} ${versionLabel} codemods`);\n\n const allErrors: TransformErrors = [];\n let notImplementedAvailable = false;\n let count = 0;\n for (const [_, codemod] of codemods.entries()) {\n const { errors, notImplementedErrors } = await transform(codemod, cwd, options, {\n logStatus: false,\n });\n allErrors.push(...errors);\n if (notImplementedErrors.length > 0) {\n notImplementedAvailable = true;\n }\n count++;\n s.message(`Codemod ${count}/${modCount} (${codemod})`);\n }\n s.stop(`Ran ${count}/${modCount} codemods.`);\n\n if (allErrors.length > 0) {\n log(`Some ${versionLabel} codemods did not apply successfully to all files. Details:`);\n allErrors.forEach(({ transform, filename, summary }) => {\n error(`codemod=${transform}, path=${filename}, summary=${summary}`);\n });\n }\n\n if (notImplementedAvailable) {\n log(\n `Some ${versionLabel} codemods require manual changes. Please search your codebase for \\`FIXME(mastra): \\` comments and follow the instructions to complete the upgrade.`,\n );\n }\n\n outro(`${versionLabel} codemods complete.`);\n}\n\nexport async function upgradeV1(options: TransformOptions) {\n await runCodemods(v1Bundle, options, 'v1');\n}\n","#! /usr/bin/env node\n\nimport { Command } from 'commander';\nimport debug from 'debug';\nimport { transform } from './lib/transform';\nimport { upgradeV1 } from './lib/upgrade';\n\nconst error = debug('codemod:error');\ndebug.enable('codemod:*');\n\nconst program = new Command();\n\nprogram\n .name('codemod')\n .description('CLI for running Mastra codemods')\n .argument('<codemod>', 'Codemod to run')\n .argument('<source>', 'Path to source files or directory')\n .option('-d, --dry', 'Dry run (no changes are made to files)')\n .option('-p, --print', 'Print transformed files to stdout')\n .option('--verbose', 'Show more information about the transform process')\n .option('-j, --jscodeshift <options>', 'Pass options directly to jscodeshift')\n .action(async (codemod, source, options) => {\n try {\n await transform(codemod, source, options);\n } catch (err: any) {\n error(`Error transforming: ${err}`);\n process.exit(1);\n }\n });\n\nprogram\n .command('v1')\n .description('Apply all v1 codemods (v0.x to v1)')\n .option('-d, --dry', 'Dry run (no changes are made to files)')\n .option('-p, --print', 'Print transformed files to stdout')\n .option('--verbose', 'Show more information about the transform process')\n .option('-j, --jscodeshift <options>', 'Pass options directly to jscodeshift')\n .action(async options => {\n try {\n await upgradeV1(options);\n } catch (err: any) {\n error(`Error transforming: ${err}`);\n process.exit(1);\n }\n });\n\nprogram.parse(process.argv);\n"]}
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@mastra/codemod",
3
- "version": "0.0.0-main-test-05-11-2025-2-20251106053353",
3
+ "type": "module",
4
+ "version": "0.1.0-beta.1",
4
5
  "license": "Apache-2.0",
5
6
  "description": "Codemod CLI for Mastra",
6
7
  "bin": {
@@ -31,7 +32,7 @@
31
32
  "tsup": "^8.5.0",
32
33
  "typescript": "^5.8.3",
33
34
  "vitest": "^3.2.4",
34
- "@internal/lint": "0.0.0-main-test-05-11-2025-2-20251106053353"
35
+ "@internal/lint": "0.0.53"
35
36
  },
36
37
  "homepage": "https://mastra.ai",
37
38
  "repository": {
@@ -43,7 +44,7 @@
43
44
  "url": "https://github.com/mastra-ai/mastra/issues"
44
45
  },
45
46
  "engines": {
46
- "node": ">=20"
47
+ "node": ">=22.13.0"
47
48
  },
48
49
  "scripts": {
49
50
  "dev": "tsup --watch",
@@ -1,74 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/codemods/v1/agent-get-agents.ts
21
- var agent_get_agents_exports = {};
22
- __export(agent_get_agents_exports, {
23
- default: () => agent_get_agents_default
24
- });
25
- module.exports = __toCommonJS(agent_get_agents_exports);
26
-
27
- // src/codemods/lib/create-transformer.ts
28
- function createTransformer(transformFn) {
29
- return function transformer(fileInfo, api, options) {
30
- const j = api.jscodeshift;
31
- const root = j(fileInfo.source);
32
- const context = {
33
- j,
34
- root,
35
- hasChanges: false,
36
- messages: []
37
- };
38
- transformFn(fileInfo, api, options, context);
39
- context.messages.forEach((message) => api.report(message));
40
- return context.hasChanges ? root.toSource({ quote: "single" }) : null;
41
- };
42
- }
43
-
44
- // src/codemods/v1/agent-get-agents.ts
45
- var agent_get_agents_default = createTransformer((fileInfo, api, options, context) => {
46
- const { j, root } = context;
47
- const mastraVariables = /* @__PURE__ */ new Set();
48
- root.find(j.VariableDeclarator).forEach((path) => {
49
- const node = path.node;
50
- if (node.init && node.init.type === "NewExpression" && node.init.callee.type === "Identifier" && node.init.callee.name === "Mastra" && node.id.type === "Identifier") {
51
- mastraVariables.add(node.id.name);
52
- }
53
- });
54
- if (mastraVariables.size === 0) return;
55
- root.find(j.CallExpression).forEach((path) => {
56
- const node = path.node;
57
- if (node.callee.type !== "MemberExpression") {
58
- return;
59
- }
60
- const callee = node.callee;
61
- if (callee.object.type !== "Identifier" || !mastraVariables.has(callee.object.name)) {
62
- return;
63
- }
64
- if (callee.property.type !== "Identifier" || callee.property.name !== "getAgents") {
65
- return;
66
- }
67
- callee.property.name = "listAgents";
68
- context.hasChanges = true;
69
- });
70
- if (context.hasChanges) {
71
- context.messages.push(`Transformed Mastra method: getAgents \u2192 listAgents`);
72
- }
73
- });
74
- //# sourceMappingURL=agent-get-agents.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/codemods/v1/agent-get-agents.ts","../../../src/codemods/lib/create-transformer.ts"],"sourcesContent":["import { createTransformer } from '../lib/create-transformer';\n\n/**\n * Transforms Mastra getAgents method to listAgents:\n * - mastra.getAgents() → mastra.listAgents()\n *\n * Only transforms methods on variables that were instantiated with `new Mastra(...)`\n */\nexport default createTransformer((fileInfo, api, options, context) => {\n const { j, root } = context;\n\n // Track variable names that are Mastra instances\n const mastraVariables = new Set<string>();\n\n // Find all variable declarations with new Mastra() assignments\n root.find(j.VariableDeclarator).forEach(path => {\n const node = path.node;\n\n // Check if the init is a new Mastra() expression\n if (\n node.init &&\n node.init.type === 'NewExpression' &&\n node.init.callee.type === 'Identifier' &&\n node.init.callee.name === 'Mastra' &&\n node.id.type === 'Identifier'\n ) {\n mastraVariables.add(node.id.name);\n }\n });\n\n // Early return if no Mastra instances found\n if (mastraVariables.size === 0) return;\n\n // Find all call expressions where the callee is mastra.getAgents\n root.find(j.CallExpression).forEach(path => {\n const node = path.node;\n\n // Check if callee is a member expression (e.g., mastra.getAgents)\n if (node.callee.type !== 'MemberExpression') {\n return;\n }\n\n const callee = node.callee;\n\n // Check if the object is a Mastra variable\n if (callee.object.type !== 'Identifier' || !mastraVariables.has(callee.object.name)) {\n return;\n }\n\n // Check if the property is 'getAgents'\n if (callee.property.type !== 'Identifier' || callee.property.name !== 'getAgents') {\n return;\n }\n\n // Rename the method to 'listAgents'\n callee.property.name = 'listAgents';\n context.hasChanges = true;\n });\n\n if (context.hasChanges) {\n context.messages.push(`Transformed Mastra method: getAgents → listAgents`);\n }\n});\n","// Copied from https://github.com/vercel/ai/blob/main/packages/codemod/src/codemods/lib/create-transformer.ts\n// License: Apache-2.0\n\nimport type { FileInfo, API, JSCodeshift, Collection } from 'jscodeshift';\n\ntype TransformerFunction = (fileInfo: FileInfo, api: API, options: any, context: TransformContext) => void;\n\nexport interface TransformContext {\n /**\n * The jscodeshift API object.\n */\n j: JSCodeshift;\n\n /**\n * The root collection of the AST.\n */\n root: Collection<any>;\n\n /**\n * Codemods should set this to true if they make any changes to the AST.\n */\n hasChanges: boolean;\n\n /**\n * Codemods can append messages to this array to report information to the user.\n */\n messages: string[];\n}\n\nexport function createTransformer(transformFn: TransformerFunction) {\n // Note the return type of this function is explicitly designed to conform to\n // the signature expected by jscodeshift. For more see\n // https://github.com/facebook/jscodeshift\n return function transformer(fileInfo: FileInfo, api: API, options: any) {\n const j = api.jscodeshift;\n const root = j(fileInfo.source);\n const context: TransformContext = {\n j,\n root,\n hasChanges: false,\n messages: [],\n };\n\n // Execute the transformation\n transformFn(fileInfo, api, options, context);\n\n // Report any messages\n context.messages.forEach(message => api.report(message));\n\n // Return the transformed source code if changes were made\n return context.hasChanges ? root.toSource({ quote: 'single' }) : null;\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;AC6BO,SAAS,kBAAkB,aAAkC;AAIlE,SAAO,SAAS,YAAY,UAAoB,KAAU,SAAc;AACtE,UAAM,IAAI,IAAI;AACd,UAAM,OAAO,EAAE,SAAS,MAAM;AAC9B,UAAM,UAA4B;AAAA,MAChC;AAAA,MACA;AAAA,MACA,YAAY;AAAA,MACZ,UAAU,CAAC;AAAA,IACb;AAGA,gBAAY,UAAU,KAAK,SAAS,OAAO;AAG3C,YAAQ,SAAS,QAAQ,aAAW,IAAI,OAAO,OAAO,CAAC;AAGvD,WAAO,QAAQ,aAAa,KAAK,SAAS,EAAE,OAAO,SAAS,CAAC,IAAI;AAAA,EACnE;AACF;;;AD5CA,IAAO,2BAAQ,kBAAkB,CAAC,UAAU,KAAK,SAAS,YAAY;AACpE,QAAM,EAAE,GAAG,KAAK,IAAI;AAGpB,QAAM,kBAAkB,oBAAI,IAAY;AAGxC,OAAK,KAAK,EAAE,kBAAkB,EAAE,QAAQ,UAAQ;AAC9C,UAAM,OAAO,KAAK;AAGlB,QACE,KAAK,QACL,KAAK,KAAK,SAAS,mBACnB,KAAK,KAAK,OAAO,SAAS,gBAC1B,KAAK,KAAK,OAAO,SAAS,YAC1B,KAAK,GAAG,SAAS,cACjB;AACA,sBAAgB,IAAI,KAAK,GAAG,IAAI;AAAA,IAClC;AAAA,EACF,CAAC;AAGD,MAAI,gBAAgB,SAAS,EAAG;AAGhC,OAAK,KAAK,EAAE,cAAc,EAAE,QAAQ,UAAQ;AAC1C,UAAM,OAAO,KAAK;AAGlB,QAAI,KAAK,OAAO,SAAS,oBAAoB;AAC3C;AAAA,IACF;AAEA,UAAM,SAAS,KAAK;AAGpB,QAAI,OAAO,OAAO,SAAS,gBAAgB,CAAC,gBAAgB,IAAI,OAAO,OAAO,IAAI,GAAG;AACnF;AAAA,IACF;AAGA,QAAI,OAAO,SAAS,SAAS,gBAAgB,OAAO,SAAS,SAAS,aAAa;AACjF;AAAA,IACF;AAGA,WAAO,SAAS,OAAO;AACvB,YAAQ,aAAa;AAAA,EACvB,CAAC;AAED,MAAI,QAAQ,YAAY;AACtB,YAAQ,SAAS,KAAK,wDAAmD;AAAA,EAC3E;AACF,CAAC;","names":[]}
@@ -1,74 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/codemods/v1/evals-get-scorers.ts
21
- var evals_get_scorers_exports = {};
22
- __export(evals_get_scorers_exports, {
23
- default: () => evals_get_scorers_default
24
- });
25
- module.exports = __toCommonJS(evals_get_scorers_exports);
26
-
27
- // src/codemods/lib/create-transformer.ts
28
- function createTransformer(transformFn) {
29
- return function transformer(fileInfo, api, options) {
30
- const j = api.jscodeshift;
31
- const root = j(fileInfo.source);
32
- const context = {
33
- j,
34
- root,
35
- hasChanges: false,
36
- messages: []
37
- };
38
- transformFn(fileInfo, api, options, context);
39
- context.messages.forEach((message) => api.report(message));
40
- return context.hasChanges ? root.toSource({ quote: "single" }) : null;
41
- };
42
- }
43
-
44
- // src/codemods/v1/evals-get-scorers.ts
45
- var evals_get_scorers_default = createTransformer((fileInfo, api, options, context) => {
46
- const { j, root } = context;
47
- const mastraVariables = /* @__PURE__ */ new Set();
48
- root.find(j.VariableDeclarator).forEach((path) => {
49
- const node = path.node;
50
- if (node.init && node.init.type === "NewExpression" && node.init.callee.type === "Identifier" && node.init.callee.name === "Mastra" && node.id.type === "Identifier") {
51
- mastraVariables.add(node.id.name);
52
- }
53
- });
54
- if (mastraVariables.size === 0) return;
55
- root.find(j.CallExpression).forEach((path) => {
56
- const node = path.node;
57
- if (node.callee.type !== "MemberExpression") {
58
- return;
59
- }
60
- const callee = node.callee;
61
- if (callee.object.type !== "Identifier" || !mastraVariables.has(callee.object.name)) {
62
- return;
63
- }
64
- if (callee.property.type !== "Identifier" || callee.property.name !== "getScorers") {
65
- return;
66
- }
67
- callee.property.name = "listScorers";
68
- context.hasChanges = true;
69
- });
70
- if (context.hasChanges) {
71
- context.messages.push(`Transformed Mastra method: getScorers \u2192 listScorers`);
72
- }
73
- });
74
- //# sourceMappingURL=evals-get-scorers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/codemods/v1/evals-get-scorers.ts","../../../src/codemods/lib/create-transformer.ts"],"sourcesContent":["import { createTransformer } from '../lib/create-transformer';\n\n/**\n * Transforms Mastra getScorers method to listScorers:\n * - mastra.getScorers() → mastra.listScorers()\n *\n * Only transforms methods on variables that were instantiated with `new Mastra(...)`\n */\nexport default createTransformer((fileInfo, api, options, context) => {\n const { j, root } = context;\n\n // Track variable names that are Mastra instances\n const mastraVariables = new Set<string>();\n\n // Find all variable declarations with new Mastra() assignments\n root.find(j.VariableDeclarator).forEach(path => {\n const node = path.node;\n\n // Check if the init is a new Mastra() expression\n if (\n node.init &&\n node.init.type === 'NewExpression' &&\n node.init.callee.type === 'Identifier' &&\n node.init.callee.name === 'Mastra' &&\n node.id.type === 'Identifier'\n ) {\n mastraVariables.add(node.id.name);\n }\n });\n\n // Early return if no Mastra instances found\n if (mastraVariables.size === 0) return;\n\n // Find all call expressions where the callee is mastra.getScorers\n root.find(j.CallExpression).forEach(path => {\n const node = path.node;\n\n // Check if callee is a member expression (e.g., mastra.getScorers)\n if (node.callee.type !== 'MemberExpression') {\n return;\n }\n\n const callee = node.callee;\n\n // Check if the object is a Mastra variable\n if (callee.object.type !== 'Identifier' || !mastraVariables.has(callee.object.name)) {\n return;\n }\n\n // Check if the property is 'getScorers'\n if (callee.property.type !== 'Identifier' || callee.property.name !== 'getScorers') {\n return;\n }\n\n // Rename the method to 'listScorers'\n callee.property.name = 'listScorers';\n context.hasChanges = true;\n });\n\n if (context.hasChanges) {\n context.messages.push(`Transformed Mastra method: getScorers → listScorers`);\n }\n});\n","// Copied from https://github.com/vercel/ai/blob/main/packages/codemod/src/codemods/lib/create-transformer.ts\n// License: Apache-2.0\n\nimport type { FileInfo, API, JSCodeshift, Collection } from 'jscodeshift';\n\ntype TransformerFunction = (fileInfo: FileInfo, api: API, options: any, context: TransformContext) => void;\n\nexport interface TransformContext {\n /**\n * The jscodeshift API object.\n */\n j: JSCodeshift;\n\n /**\n * The root collection of the AST.\n */\n root: Collection<any>;\n\n /**\n * Codemods should set this to true if they make any changes to the AST.\n */\n hasChanges: boolean;\n\n /**\n * Codemods can append messages to this array to report information to the user.\n */\n messages: string[];\n}\n\nexport function createTransformer(transformFn: TransformerFunction) {\n // Note the return type of this function is explicitly designed to conform to\n // the signature expected by jscodeshift. For more see\n // https://github.com/facebook/jscodeshift\n return function transformer(fileInfo: FileInfo, api: API, options: any) {\n const j = api.jscodeshift;\n const root = j(fileInfo.source);\n const context: TransformContext = {\n j,\n root,\n hasChanges: false,\n messages: [],\n };\n\n // Execute the transformation\n transformFn(fileInfo, api, options, context);\n\n // Report any messages\n context.messages.forEach(message => api.report(message));\n\n // Return the transformed source code if changes were made\n return context.hasChanges ? root.toSource({ quote: 'single' }) : null;\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;AC6BO,SAAS,kBAAkB,aAAkC;AAIlE,SAAO,SAAS,YAAY,UAAoB,KAAU,SAAc;AACtE,UAAM,IAAI,IAAI;AACd,UAAM,OAAO,EAAE,SAAS,MAAM;AAC9B,UAAM,UAA4B;AAAA,MAChC;AAAA,MACA;AAAA,MACA,YAAY;AAAA,MACZ,UAAU,CAAC;AAAA,IACb;AAGA,gBAAY,UAAU,KAAK,SAAS,OAAO;AAG3C,YAAQ,SAAS,QAAQ,aAAW,IAAI,OAAO,OAAO,CAAC;AAGvD,WAAO,QAAQ,aAAa,KAAK,SAAS,EAAE,OAAO,SAAS,CAAC,IAAI;AAAA,EACnE;AACF;;;AD5CA,IAAO,4BAAQ,kBAAkB,CAAC,UAAU,KAAK,SAAS,YAAY;AACpE,QAAM,EAAE,GAAG,KAAK,IAAI;AAGpB,QAAM,kBAAkB,oBAAI,IAAY;AAGxC,OAAK,KAAK,EAAE,kBAAkB,EAAE,QAAQ,UAAQ;AAC9C,UAAM,OAAO,KAAK;AAGlB,QACE,KAAK,QACL,KAAK,KAAK,SAAS,mBACnB,KAAK,KAAK,OAAO,SAAS,gBAC1B,KAAK,KAAK,OAAO,SAAS,YAC1B,KAAK,GAAG,SAAS,cACjB;AACA,sBAAgB,IAAI,KAAK,GAAG,IAAI;AAAA,IAClC;AAAA,EACF,CAAC;AAGD,MAAI,gBAAgB,SAAS,EAAG;AAGhC,OAAK,KAAK,EAAE,cAAc,EAAE,QAAQ,UAAQ;AAC1C,UAAM,OAAO,KAAK;AAGlB,QAAI,KAAK,OAAO,SAAS,oBAAoB;AAC3C;AAAA,IACF;AAEA,UAAM,SAAS,KAAK;AAGpB,QAAI,OAAO,OAAO,SAAS,gBAAgB,CAAC,gBAAgB,IAAI,OAAO,OAAO,IAAI,GAAG;AACnF;AAAA,IACF;AAGA,QAAI,OAAO,SAAS,SAAS,gBAAgB,OAAO,SAAS,SAAS,cAAc;AAClF;AAAA,IACF;AAGA,WAAO,SAAS,OAAO;AACvB,YAAQ,aAAa;AAAA,EACvB,CAAC;AAED,MAAI,QAAQ,YAAY;AACtB,YAAQ,SAAS,KAAK,0DAAqD;AAAA,EAC7E;AACF,CAAC;","names":[]}
@@ -1,74 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/codemods/v1/mcp-get-mcp-servers.ts
21
- var mcp_get_mcp_servers_exports = {};
22
- __export(mcp_get_mcp_servers_exports, {
23
- default: () => mcp_get_mcp_servers_default
24
- });
25
- module.exports = __toCommonJS(mcp_get_mcp_servers_exports);
26
-
27
- // src/codemods/lib/create-transformer.ts
28
- function createTransformer(transformFn) {
29
- return function transformer(fileInfo, api, options) {
30
- const j = api.jscodeshift;
31
- const root = j(fileInfo.source);
32
- const context = {
33
- j,
34
- root,
35
- hasChanges: false,
36
- messages: []
37
- };
38
- transformFn(fileInfo, api, options, context);
39
- context.messages.forEach((message) => api.report(message));
40
- return context.hasChanges ? root.toSource({ quote: "single" }) : null;
41
- };
42
- }
43
-
44
- // src/codemods/v1/mcp-get-mcp-servers.ts
45
- var mcp_get_mcp_servers_default = createTransformer((fileInfo, api, options, context) => {
46
- const { j, root } = context;
47
- const mastraVariables = /* @__PURE__ */ new Set();
48
- root.find(j.VariableDeclarator).forEach((path) => {
49
- const node = path.node;
50
- if (node.init && node.init.type === "NewExpression" && node.init.callee.type === "Identifier" && node.init.callee.name === "Mastra" && node.id.type === "Identifier") {
51
- mastraVariables.add(node.id.name);
52
- }
53
- });
54
- if (mastraVariables.size === 0) return;
55
- root.find(j.CallExpression).forEach((path) => {
56
- const node = path.node;
57
- if (node.callee.type !== "MemberExpression") {
58
- return;
59
- }
60
- const callee = node.callee;
61
- if (callee.object.type !== "Identifier" || !mastraVariables.has(callee.object.name)) {
62
- return;
63
- }
64
- if (callee.property.type !== "Identifier" || callee.property.name !== "getMCPServers") {
65
- return;
66
- }
67
- callee.property.name = "listMCPServers";
68
- context.hasChanges = true;
69
- });
70
- if (context.hasChanges) {
71
- context.messages.push(`Transformed Mastra method: getMCPServers \u2192 listMCPServers`);
72
- }
73
- });
74
- //# sourceMappingURL=mcp-get-mcp-servers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/codemods/v1/mcp-get-mcp-servers.ts","../../../src/codemods/lib/create-transformer.ts"],"sourcesContent":["import { createTransformer } from '../lib/create-transformer';\n\n/**\n * Transforms Mastra getMCPServers method to listMCPServers:\n * - mastra.getMCPServers() → mastra.listMCPServers()\n *\n * Only transforms methods on variables that were instantiated with `new Mastra(...)`\n */\nexport default createTransformer((fileInfo, api, options, context) => {\n const { j, root } = context;\n\n // Track variable names that are Mastra instances\n const mastraVariables = new Set<string>();\n\n // Find all variable declarations with new Mastra() assignments\n root.find(j.VariableDeclarator).forEach(path => {\n const node = path.node;\n\n // Check if the init is a new Mastra() expression\n if (\n node.init &&\n node.init.type === 'NewExpression' &&\n node.init.callee.type === 'Identifier' &&\n node.init.callee.name === 'Mastra' &&\n node.id.type === 'Identifier'\n ) {\n mastraVariables.add(node.id.name);\n }\n });\n\n // Early return if no Mastra instances found\n if (mastraVariables.size === 0) return;\n\n // Find all call expressions where the callee is mastra.getMCPServers\n root.find(j.CallExpression).forEach(path => {\n const node = path.node;\n\n // Check if callee is a member expression (e.g., mastra.getMCPServers)\n if (node.callee.type !== 'MemberExpression') {\n return;\n }\n\n const callee = node.callee;\n\n // Check if the object is a Mastra variable\n if (callee.object.type !== 'Identifier' || !mastraVariables.has(callee.object.name)) {\n return;\n }\n\n // Check if the property is 'getMCPServers'\n if (callee.property.type !== 'Identifier' || callee.property.name !== 'getMCPServers') {\n return;\n }\n\n // Rename the method to 'listMCPServers'\n callee.property.name = 'listMCPServers';\n context.hasChanges = true;\n });\n\n if (context.hasChanges) {\n context.messages.push(`Transformed Mastra method: getMCPServers → listMCPServers`);\n }\n});\n","// Copied from https://github.com/vercel/ai/blob/main/packages/codemod/src/codemods/lib/create-transformer.ts\n// License: Apache-2.0\n\nimport type { FileInfo, API, JSCodeshift, Collection } from 'jscodeshift';\n\ntype TransformerFunction = (fileInfo: FileInfo, api: API, options: any, context: TransformContext) => void;\n\nexport interface TransformContext {\n /**\n * The jscodeshift API object.\n */\n j: JSCodeshift;\n\n /**\n * The root collection of the AST.\n */\n root: Collection<any>;\n\n /**\n * Codemods should set this to true if they make any changes to the AST.\n */\n hasChanges: boolean;\n\n /**\n * Codemods can append messages to this array to report information to the user.\n */\n messages: string[];\n}\n\nexport function createTransformer(transformFn: TransformerFunction) {\n // Note the return type of this function is explicitly designed to conform to\n // the signature expected by jscodeshift. For more see\n // https://github.com/facebook/jscodeshift\n return function transformer(fileInfo: FileInfo, api: API, options: any) {\n const j = api.jscodeshift;\n const root = j(fileInfo.source);\n const context: TransformContext = {\n j,\n root,\n hasChanges: false,\n messages: [],\n };\n\n // Execute the transformation\n transformFn(fileInfo, api, options, context);\n\n // Report any messages\n context.messages.forEach(message => api.report(message));\n\n // Return the transformed source code if changes were made\n return context.hasChanges ? root.toSource({ quote: 'single' }) : null;\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;AC6BO,SAAS,kBAAkB,aAAkC;AAIlE,SAAO,SAAS,YAAY,UAAoB,KAAU,SAAc;AACtE,UAAM,IAAI,IAAI;AACd,UAAM,OAAO,EAAE,SAAS,MAAM;AAC9B,UAAM,UAA4B;AAAA,MAChC;AAAA,MACA;AAAA,MACA,YAAY;AAAA,MACZ,UAAU,CAAC;AAAA,IACb;AAGA,gBAAY,UAAU,KAAK,SAAS,OAAO;AAG3C,YAAQ,SAAS,QAAQ,aAAW,IAAI,OAAO,OAAO,CAAC;AAGvD,WAAO,QAAQ,aAAa,KAAK,SAAS,EAAE,OAAO,SAAS,CAAC,IAAI;AAAA,EACnE;AACF;;;AD5CA,IAAO,8BAAQ,kBAAkB,CAAC,UAAU,KAAK,SAAS,YAAY;AACpE,QAAM,EAAE,GAAG,KAAK,IAAI;AAGpB,QAAM,kBAAkB,oBAAI,IAAY;AAGxC,OAAK,KAAK,EAAE,kBAAkB,EAAE,QAAQ,UAAQ;AAC9C,UAAM,OAAO,KAAK;AAGlB,QACE,KAAK,QACL,KAAK,KAAK,SAAS,mBACnB,KAAK,KAAK,OAAO,SAAS,gBAC1B,KAAK,KAAK,OAAO,SAAS,YAC1B,KAAK,GAAG,SAAS,cACjB;AACA,sBAAgB,IAAI,KAAK,GAAG,IAAI;AAAA,IAClC;AAAA,EACF,CAAC;AAGD,MAAI,gBAAgB,SAAS,EAAG;AAGhC,OAAK,KAAK,EAAE,cAAc,EAAE,QAAQ,UAAQ;AAC1C,UAAM,OAAO,KAAK;AAGlB,QAAI,KAAK,OAAO,SAAS,oBAAoB;AAC3C;AAAA,IACF;AAEA,UAAM,SAAS,KAAK;AAGpB,QAAI,OAAO,OAAO,SAAS,gBAAgB,CAAC,gBAAgB,IAAI,OAAO,OAAO,IAAI,GAAG;AACnF;AAAA,IACF;AAGA,QAAI,OAAO,SAAS,SAAS,gBAAgB,OAAO,SAAS,SAAS,iBAAiB;AACrF;AAAA,IACF;AAGA,WAAO,SAAS,OAAO;AACvB,YAAQ,aAAa;AAAA,EACvB,CAAC;AAED,MAAI,QAAQ,YAAY;AACtB,YAAQ,SAAS,KAAK,gEAA2D;AAAA,EACnF;AACF,CAAC;","names":[]}
@@ -1,74 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/codemods/v1/workflows-get-workflows.ts
21
- var workflows_get_workflows_exports = {};
22
- __export(workflows_get_workflows_exports, {
23
- default: () => workflows_get_workflows_default
24
- });
25
- module.exports = __toCommonJS(workflows_get_workflows_exports);
26
-
27
- // src/codemods/lib/create-transformer.ts
28
- function createTransformer(transformFn) {
29
- return function transformer(fileInfo, api, options) {
30
- const j = api.jscodeshift;
31
- const root = j(fileInfo.source);
32
- const context = {
33
- j,
34
- root,
35
- hasChanges: false,
36
- messages: []
37
- };
38
- transformFn(fileInfo, api, options, context);
39
- context.messages.forEach((message) => api.report(message));
40
- return context.hasChanges ? root.toSource({ quote: "single" }) : null;
41
- };
42
- }
43
-
44
- // src/codemods/v1/workflows-get-workflows.ts
45
- var workflows_get_workflows_default = createTransformer((fileInfo, api, options, context) => {
46
- const { j, root } = context;
47
- const mastraVariables = /* @__PURE__ */ new Set();
48
- root.find(j.VariableDeclarator).forEach((path) => {
49
- const node = path.node;
50
- if (node.init && node.init.type === "NewExpression" && node.init.callee.type === "Identifier" && node.init.callee.name === "Mastra" && node.id.type === "Identifier") {
51
- mastraVariables.add(node.id.name);
52
- }
53
- });
54
- if (mastraVariables.size === 0) return;
55
- root.find(j.CallExpression).forEach((path) => {
56
- const node = path.node;
57
- if (node.callee.type !== "MemberExpression") {
58
- return;
59
- }
60
- const callee = node.callee;
61
- if (callee.object.type !== "Identifier" || !mastraVariables.has(callee.object.name)) {
62
- return;
63
- }
64
- if (callee.property.type !== "Identifier" || callee.property.name !== "getWorkflows") {
65
- return;
66
- }
67
- callee.property.name = "listWorkflows";
68
- context.hasChanges = true;
69
- });
70
- if (context.hasChanges) {
71
- context.messages.push(`Transformed Mastra method: getWorkflows \u2192 listWorkflows`);
72
- }
73
- });
74
- //# sourceMappingURL=workflows-get-workflows.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/codemods/v1/workflows-get-workflows.ts","../../../src/codemods/lib/create-transformer.ts"],"sourcesContent":["import { createTransformer } from '../lib/create-transformer';\n\n/**\n * Transforms Mastra getWorkflows method to listWorkflows:\n * - mastra.getWorkflows() → mastra.listWorkflows()\n *\n * Only transforms methods on variables that were instantiated with `new Mastra(...)`\n */\nexport default createTransformer((fileInfo, api, options, context) => {\n const { j, root } = context;\n\n // Track variable names that are Mastra instances\n const mastraVariables = new Set<string>();\n\n // Find all variable declarations with new Mastra() assignments\n root.find(j.VariableDeclarator).forEach(path => {\n const node = path.node;\n\n // Check if the init is a new Mastra() expression\n if (\n node.init &&\n node.init.type === 'NewExpression' &&\n node.init.callee.type === 'Identifier' &&\n node.init.callee.name === 'Mastra' &&\n node.id.type === 'Identifier'\n ) {\n mastraVariables.add(node.id.name);\n }\n });\n\n // Early return if no Mastra instances found\n if (mastraVariables.size === 0) return;\n\n // Find all call expressions where the callee is mastra.getWorkflows\n root.find(j.CallExpression).forEach(path => {\n const node = path.node;\n\n // Check if callee is a member expression (e.g., mastra.getWorkflows)\n if (node.callee.type !== 'MemberExpression') {\n return;\n }\n\n const callee = node.callee;\n\n // Check if the object is a Mastra variable\n if (callee.object.type !== 'Identifier' || !mastraVariables.has(callee.object.name)) {\n return;\n }\n\n // Check if the property is 'getWorkflows'\n if (callee.property.type !== 'Identifier' || callee.property.name !== 'getWorkflows') {\n return;\n }\n\n // Rename the method to 'listWorkflows'\n callee.property.name = 'listWorkflows';\n context.hasChanges = true;\n });\n\n if (context.hasChanges) {\n context.messages.push(`Transformed Mastra method: getWorkflows → listWorkflows`);\n }\n});\n","// Copied from https://github.com/vercel/ai/blob/main/packages/codemod/src/codemods/lib/create-transformer.ts\n// License: Apache-2.0\n\nimport type { FileInfo, API, JSCodeshift, Collection } from 'jscodeshift';\n\ntype TransformerFunction = (fileInfo: FileInfo, api: API, options: any, context: TransformContext) => void;\n\nexport interface TransformContext {\n /**\n * The jscodeshift API object.\n */\n j: JSCodeshift;\n\n /**\n * The root collection of the AST.\n */\n root: Collection<any>;\n\n /**\n * Codemods should set this to true if they make any changes to the AST.\n */\n hasChanges: boolean;\n\n /**\n * Codemods can append messages to this array to report information to the user.\n */\n messages: string[];\n}\n\nexport function createTransformer(transformFn: TransformerFunction) {\n // Note the return type of this function is explicitly designed to conform to\n // the signature expected by jscodeshift. For more see\n // https://github.com/facebook/jscodeshift\n return function transformer(fileInfo: FileInfo, api: API, options: any) {\n const j = api.jscodeshift;\n const root = j(fileInfo.source);\n const context: TransformContext = {\n j,\n root,\n hasChanges: false,\n messages: [],\n };\n\n // Execute the transformation\n transformFn(fileInfo, api, options, context);\n\n // Report any messages\n context.messages.forEach(message => api.report(message));\n\n // Return the transformed source code if changes were made\n return context.hasChanges ? root.toSource({ quote: 'single' }) : null;\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;AC6BO,SAAS,kBAAkB,aAAkC;AAIlE,SAAO,SAAS,YAAY,UAAoB,KAAU,SAAc;AACtE,UAAM,IAAI,IAAI;AACd,UAAM,OAAO,EAAE,SAAS,MAAM;AAC9B,UAAM,UAA4B;AAAA,MAChC;AAAA,MACA;AAAA,MACA,YAAY;AAAA,MACZ,UAAU,CAAC;AAAA,IACb;AAGA,gBAAY,UAAU,KAAK,SAAS,OAAO;AAG3C,YAAQ,SAAS,QAAQ,aAAW,IAAI,OAAO,OAAO,CAAC;AAGvD,WAAO,QAAQ,aAAa,KAAK,SAAS,EAAE,OAAO,SAAS,CAAC,IAAI;AAAA,EACnE;AACF;;;AD5CA,IAAO,kCAAQ,kBAAkB,CAAC,UAAU,KAAK,SAAS,YAAY;AACpE,QAAM,EAAE,GAAG,KAAK,IAAI;AAGpB,QAAM,kBAAkB,oBAAI,IAAY;AAGxC,OAAK,KAAK,EAAE,kBAAkB,EAAE,QAAQ,UAAQ;AAC9C,UAAM,OAAO,KAAK;AAGlB,QACE,KAAK,QACL,KAAK,KAAK,SAAS,mBACnB,KAAK,KAAK,OAAO,SAAS,gBAC1B,KAAK,KAAK,OAAO,SAAS,YAC1B,KAAK,GAAG,SAAS,cACjB;AACA,sBAAgB,IAAI,KAAK,GAAG,IAAI;AAAA,IAClC;AAAA,EACF,CAAC;AAGD,MAAI,gBAAgB,SAAS,EAAG;AAGhC,OAAK,KAAK,EAAE,cAAc,EAAE,QAAQ,UAAQ;AAC1C,UAAM,OAAO,KAAK;AAGlB,QAAI,KAAK,OAAO,SAAS,oBAAoB;AAC3C;AAAA,IACF;AAEA,UAAM,SAAS,KAAK;AAGpB,QAAI,OAAO,OAAO,SAAS,gBAAgB,CAAC,gBAAgB,IAAI,OAAO,OAAO,IAAI,GAAG;AACnF;AAAA,IACF;AAGA,QAAI,OAAO,SAAS,SAAS,gBAAgB,OAAO,SAAS,SAAS,gBAAgB;AACpF;AAAA,IACF;AAGA,WAAO,SAAS,OAAO;AACvB,YAAQ,aAAa;AAAA,EACvB,CAAC;AAED,MAAI,QAAQ,YAAY;AACtB,YAAQ,SAAS,KAAK,8DAAyD;AAAA,EACjF;AACF,CAAC;","names":[]}