@mastra/deployer 1.52.0-alpha.3 → 1.52.0-alpha.8

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 (67) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/dist/build/analyze.cjs +2 -2
  3. package/dist/build/analyze.d.ts.map +1 -1
  4. package/dist/build/analyze.js +1 -1
  5. package/dist/build/babel/check-config-export.d.ts +2 -2
  6. package/dist/build/babel/check-config-export.d.ts.map +1 -1
  7. package/dist/build/babel/detect-pino-transports.d.ts +2 -2
  8. package/dist/build/babel/detect-pino-transports.d.ts.map +1 -1
  9. package/dist/build/babel/remove-all-options-except.d.ts +2 -2
  10. package/dist/build/babel/remove-all-options-except.d.ts.map +1 -1
  11. package/dist/build/babel/remove-deployer.d.ts +6 -2
  12. package/dist/build/babel/remove-deployer.d.ts.map +1 -1
  13. package/dist/build/babel/remove-non-referenced-nodes.d.ts +2 -2
  14. package/dist/build/babel/remove-non-referenced-nodes.d.ts.map +1 -1
  15. package/dist/build/bundler.cjs +5 -5
  16. package/dist/build/bundler.js +1 -1
  17. package/dist/build/index.cjs +22 -22
  18. package/dist/build/index.js +5 -5
  19. package/dist/build/plugins/remove-all-except.d.ts.map +1 -1
  20. package/dist/build/plugins/remove-deployer.d.ts.map +1 -1
  21. package/dist/build/plugins/remove-unused-references.d.ts.map +1 -1
  22. package/dist/bundler/index.cjs +3 -3
  23. package/dist/bundler/index.js +1 -1
  24. package/dist/{chunk-UFIOPABI.cjs → chunk-4XMRN3U4.cjs} +41 -54
  25. package/dist/chunk-4XMRN3U4.cjs.map +1 -0
  26. package/dist/{chunk-PLCERTF6.js → chunk-72CHYUGH.js} +6 -6
  27. package/dist/{chunk-PLCERTF6.js.map → chunk-72CHYUGH.js.map} +1 -1
  28. package/dist/{chunk-X2ZJLEWO.cjs → chunk-7CT7DAME.cjs} +13 -24
  29. package/dist/chunk-7CT7DAME.cjs.map +1 -0
  30. package/dist/{chunk-UY7KZXD2.js → chunk-CBK2CAL4.js} +7 -7
  31. package/dist/chunk-CBK2CAL4.js.map +1 -0
  32. package/dist/{chunk-VKAFARW6.cjs → chunk-FKKJQUGR.cjs} +4 -4
  33. package/dist/{chunk-VKAFARW6.cjs.map → chunk-FKKJQUGR.cjs.map} +1 -1
  34. package/dist/{chunk-SZ3KU5RT.cjs → chunk-GPKHP7J7.cjs} +12 -12
  35. package/dist/{chunk-SZ3KU5RT.cjs.map → chunk-GPKHP7J7.cjs.map} +1 -1
  36. package/dist/{chunk-S32IJ4F6.js → chunk-H6J5QQ45.js} +5 -5
  37. package/dist/{chunk-S32IJ4F6.js.map → chunk-H6J5QQ45.js.map} +1 -1
  38. package/dist/{chunk-5K7ECKKW.js → chunk-HPYZGYQL.js} +13 -25
  39. package/dist/chunk-HPYZGYQL.js.map +1 -0
  40. package/dist/{chunk-JTWXTX2D.js → chunk-PXUWQC3X.js} +37 -51
  41. package/dist/chunk-PXUWQC3X.js.map +1 -0
  42. package/dist/{chunk-2SUO6N5G.cjs → chunk-QGBVR3DR.cjs} +14 -14
  43. package/dist/{chunk-2SUO6N5G.cjs.map → chunk-QGBVR3DR.cjs.map} +1 -1
  44. package/dist/{chunk-7BDGRATY.cjs → chunk-XOP6IB66.cjs} +24 -24
  45. package/dist/chunk-XOP6IB66.cjs.map +1 -0
  46. package/dist/{chunk-ZL66GDLP.js → chunk-YUBKHO52.js} +2 -2
  47. package/dist/{chunk-ZL66GDLP.js.map → chunk-YUBKHO52.js.map} +1 -1
  48. package/dist/docs/SKILL.md +1 -1
  49. package/dist/docs/assets/SOURCE_MAP.json +5 -5
  50. package/dist/docs/references/docs-deployment-mastra-server.md +35 -0
  51. package/dist/docs/references/docs-deployment-monorepo.md +2 -0
  52. package/dist/docs/references/docs-deployment-overview.md +6 -0
  53. package/dist/index.cjs +11 -11
  54. package/dist/index.js +4 -4
  55. package/dist/server/index.cjs +9 -2
  56. package/dist/server/index.cjs.map +1 -1
  57. package/dist/server/index.js +9 -2
  58. package/dist/server/index.js.map +1 -1
  59. package/dist/services/index.cjs +4 -4
  60. package/dist/services/index.js +1 -1
  61. package/package.json +11 -13
  62. package/dist/chunk-5K7ECKKW.js.map +0 -1
  63. package/dist/chunk-7BDGRATY.cjs.map +0 -1
  64. package/dist/chunk-JTWXTX2D.js.map +0 -1
  65. package/dist/chunk-UFIOPABI.cjs.map +0 -1
  66. package/dist/chunk-UY7KZXD2.js.map +0 -1
  67. package/dist/chunk-X2ZJLEWO.cjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/build/babel/remove-all-options-except.ts","../src/build/plugins/remove-all-except.ts","../src/build/babel/remove-non-referenced-nodes.ts","../src/build/plugins/remove-unused-references.ts","../src/build/shared/extract-mastra-option.ts","../src/build/bundlerOptions.ts"],"names":["babel","path","babel2","result","babel4"],"mappings":"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","file":"chunk-JTWXTX2D.js","sourcesContent":["import babel from '@babel/core';\nimport type { NodePath, types } from '@babel/core';\nimport type { IMastraLogger } from '@mastra/core/logger';\nimport type { Config as MastraConfig } from '@mastra/core/mastra';\n\nexport function removeAllOptionsFromMastraExcept(\n result: { hasCustomConfig: boolean },\n option: keyof MastraConfig,\n logger?: IMastraLogger,\n) {\n const t = babel.types;\n\n return {\n name: 'remove-all-except-' + option + '-config',\n visitor: {\n ExportNamedDeclaration: {\n // remove all exports\n exit(path) {\n path.remove();\n },\n },\n\n NewExpression(path, state) {\n // is a variable declaration\n const varDeclaratorPath = path.findParent(path => t.isVariableDeclarator(path.node));\n if (!varDeclaratorPath) {\n return;\n }\n\n const parentNode = path.parentPath.node;\n // check if it's a const of mastra\n if (!t.isVariableDeclarator(parentNode) || !t.isIdentifier(parentNode.id) || parentNode.id.name !== 'mastra') {\n return;\n }\n\n let mastraArgs = t.objectExpression([]);\n if (t.isObjectExpression(path.node.arguments[0])) {\n mastraArgs = path.node.arguments[0];\n }\n\n // Find the config property, skipping SpreadElement nodes\n let configProperty = mastraArgs.properties.find(\n prop => t.isObjectProperty(prop) && t.isIdentifier(prop.key) && prop.key.name === option,\n );\n let configValue: types.Expression = t.objectExpression([]);\n\n const programPath = path.scope.getProgramParent().path as NodePath<types.Program> | undefined;\n if (!programPath) {\n return;\n }\n\n if (configProperty && t.isObjectProperty(configProperty) && t.isExpression(configProperty.value)) {\n result.hasCustomConfig = true;\n configValue = configProperty.value;\n\n if (t.isIdentifier(configProperty.value) && configProperty.value.name === option) {\n const configBinding = state.file.scope.getBinding(option)!;\n\n if (configBinding && t.isVariableDeclarator(configBinding.path.node)) {\n const id = path.scope.generateUidIdentifier(option);\n\n configBinding.path.replaceWith(t.variableDeclarator(id, configBinding.path.node.init!));\n configValue = id;\n }\n }\n }\n\n // add the deployer export\n const exportDeclaration = t.exportNamedDeclaration(\n t.variableDeclaration('const', [t.variableDeclarator(t.identifier(option), configValue)]),\n [],\n );\n\n programPath.node.body.push(exportDeclaration);\n },\n\n Program: {\n exit(path) {\n // Add a fallback export if no mastra configuration was found\n const hasExport = path.node.body.some(\n node => node.type === 'ExportNamedDeclaration' || node.type === 'ExportDefaultDeclaration',\n );\n\n if (!hasExport) {\n if (logger) {\n logger.warn('Mastra config could not be extracted', {\n option,\n details:\n 'Please make sure your entry file looks like this:\\nexport const mastra = new Mastra({\\n <option>: <value>\\n})',\n });\n }\n\n const fallbackExportDeclaration = t.exportNamedDeclaration(\n t.variableDeclaration('const', [t.variableDeclarator(t.identifier(option), t.objectExpression([]))]),\n [],\n );\n path.node.body.push(fallbackExportDeclaration);\n }\n },\n },\n },\n } as babel.PluginObj;\n}\n","import * as babel from '@babel/core';\nimport type { IMastraLogger } from '@mastra/core/logger';\nimport type { Config as MastraConfig } from '@mastra/core/mastra';\nimport type { Plugin } from 'rollup';\nimport { removeAllOptionsFromMastraExcept } from '../babel/remove-all-options-except';\n\nexport function removeAllOptionsFromMastraExceptPlugin(\n mastraEntry: string,\n name: keyof MastraConfig,\n result: { hasCustomConfig: boolean },\n options?: { sourcemap?: boolean; logger?: IMastraLogger },\n): Plugin {\n return {\n name: `remove-${name}`,\n transform(code, id) {\n if (id !== mastraEntry) {\n return;\n }\n\n return new Promise((resolve, reject) => {\n babel.transform(\n code,\n {\n babelrc: false,\n configFile: false,\n filename: id,\n plugins: [removeAllOptionsFromMastraExcept(result, name, options?.logger)],\n sourceMaps: options?.sourcemap,\n },\n (err, result) => {\n if (err) {\n return reject(err);\n }\n\n resolve({\n code: result!.code!,\n map: result!.map!,\n });\n },\n );\n });\n },\n } satisfies Plugin;\n}\n","import babel from '@babel/core';\n\nexport function removeNonReferencedNodes() {\n const t = babel.types;\n\n return {\n name: 'remove-non-referenced-nodes',\n visitor: {\n Program(path) {\n // Get the scope information\n const scope = path.scope;\n\n // Filter body to keep only referenced nodes\n const currentBody = path.get('body');\n const filteredBody = currentBody.filter(childPath => {\n if (childPath.isExportDeclaration()) {\n return true;\n }\n\n // For variable declarations, check if any declared variables are referenced\n if (childPath.isVariableDeclaration()) {\n return childPath.node.declarations.some(decl => {\n if (!t.isIdentifier(decl.id)) {\n return false;\n }\n\n const name = decl.id.name;\n const binding = scope.getBinding(name);\n // Keep if it has references or is exported\n return binding && (binding.referenced || binding.referencePaths.length > 0);\n });\n }\n\n // For function/class declarations, check if they're referenced\n if (childPath.isFunctionDeclaration() || childPath.isClassDeclaration()) {\n if (!t.isIdentifier(childPath.node.id)) {\n return false;\n }\n\n const name = childPath.node.id.name;\n const binding = scope.getBinding(name);\n return binding && (binding.referenced || binding.referencePaths.length > 0);\n }\n\n // For imports, check if any imported items are referenced\n if (childPath.isImportDeclaration()) {\n return childPath.node.specifiers.some(specifier => {\n const importedName = specifier.local.name;\n const binding = scope.getBinding(importedName);\n return binding && (binding.referenced || binding.referencePaths.length > 0);\n });\n }\n\n // Default to keeping other node types\n return false;\n });\n\n // Replace the program body with filtered nodes\n path.set(\n 'body',\n filteredBody.map(p => p.node),\n );\n },\n },\n } as babel.PluginObj;\n}\n","import * as babel from '@babel/core';\nimport { removeNonReferencedNodes } from '../babel/remove-non-referenced-nodes';\n\nexport function recursiveRemoveNonReferencedNodes(code: string) {\n return new Promise<{ code: string; map: any }>(async (resolve, reject) => {\n babel.transform(\n code,\n {\n babelrc: false,\n configFile: false,\n plugins: [removeNonReferencedNodes()],\n },\n (err, result) => {\n if (err) {\n return reject(err);\n }\n\n // keep looping until the code is not changed\n if (result && result.code! !== code) {\n return recursiveRemoveNonReferencedNodes(result!.code!).then(resolve, reject);\n }\n\n resolve({\n code: result!.code!,\n map: result!.map!,\n });\n },\n );\n });\n}\n","import { pathToFileURL } from 'node:url';\nimport type { IMastraLogger } from '@mastra/core/logger';\nimport type { Config as MastraConfig } from '@mastra/core/mastra';\nimport { optimizeLodashImports } from '@optimize-lodash/rollup-plugin';\nimport commonjs from '@rollup/plugin-commonjs';\nimport json from '@rollup/plugin-json';\nimport { rollup } from 'rollup';\nimport type { RollupOutput } from 'rollup';\nimport { esbuild } from '../plugins/esbuild';\nimport { removeAllOptionsFromMastraExceptPlugin } from '../plugins/remove-all-except';\nimport { recursiveRemoveNonReferencedNodes } from '../plugins/remove-unused-references';\nimport { tsConfigPaths } from '../plugins/tsconfig-paths';\n\nexport function extractMastraOptionBundler(\n name: keyof MastraConfig,\n entryFile: string,\n result: {\n hasCustomConfig: boolean;\n },\n logger?: IMastraLogger,\n) {\n return rollup({\n logLevel: 'silent',\n input: {\n [`${name}-config`]: entryFile,\n },\n treeshake: 'smallest',\n plugins: [\n tsConfigPaths(),\n // transpile typescript to something we understand\n esbuild(),\n optimizeLodashImports({\n include: '**/*.{js,ts,mjs,cjs}',\n }),\n commonjs({\n extensions: ['.js', '.ts'],\n strictRequires: 'strict',\n transformMixedEsModules: true,\n ignoreTryCatch: false,\n }),\n json(),\n removeAllOptionsFromMastraExceptPlugin(entryFile, name, result, { logger }),\n // let esbuild remove all unused imports\n esbuild(),\n {\n name: 'cleanup',\n transform(code, id) {\n if (id !== entryFile) {\n return;\n }\n\n return recursiveRemoveNonReferencedNodes(code);\n },\n },\n // let esbuild remove it once more\n esbuild(),\n ],\n });\n}\n\nexport async function extractMastraOption<T extends keyof MastraConfig>(\n name: T,\n entryFile: string,\n outputDir: string,\n logger?: IMastraLogger,\n): Promise<{\n bundleOutput: RollupOutput;\n getConfig: () => Promise<MastraConfig[T]>;\n} | null> {\n const result = {\n hasCustomConfig: false,\n };\n\n const bundler = await extractMastraOptionBundler(name, entryFile, result, logger);\n\n const output = await bundler.write({\n dir: outputDir,\n format: 'es',\n entryFileNames: '[name].mjs',\n });\n\n if (result.hasCustomConfig) {\n const configPath = `${outputDir}/${name}-config.mjs`;\n\n return {\n bundleOutput: output,\n getConfig: () => import(pathToFileURL(configPath).href).then(m => m[name] as MastraConfig[T]),\n };\n }\n\n return null;\n}\n","import type { IMastraLogger } from '@mastra/core/logger';\nimport type { Config } from '@mastra/core/mastra';\nimport { extractMastraOption, extractMastraOptionBundler } from './shared/extract-mastra-option';\n\nexport function getBundlerOptionsBundler(\n entryFile: string,\n result: {\n hasCustomConfig: false;\n },\n) {\n return extractMastraOptionBundler('bundler', entryFile, result);\n}\n\nexport async function getBundlerOptions(\n entryFile: string,\n outputDir: string,\n logger?: IMastraLogger,\n): Promise<Config['bundler'] | null> {\n const result = await extractMastraOption('bundler', entryFile, outputDir, logger);\n\n if (!result) {\n return null;\n }\n\n return result.getConfig();\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/build/babel/remove-all-options-except.ts","../src/build/plugins/remove-all-except.ts","../src/build/babel/remove-non-referenced-nodes.ts","../src/build/plugins/remove-unused-references.ts","../src/build/shared/extract-mastra-option.ts","../src/build/bundlerOptions.ts"],"names":["babel","path","babel2","result","babel4","rollup","tsConfigPaths","esbuild","optimizeLodashImports","commonjs","json","pathToFileURL"],"mappings":"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","file":"chunk-UFIOPABI.cjs","sourcesContent":["import babel from '@babel/core';\nimport type { NodePath, types } from '@babel/core';\nimport type { IMastraLogger } from '@mastra/core/logger';\nimport type { Config as MastraConfig } from '@mastra/core/mastra';\n\nexport function removeAllOptionsFromMastraExcept(\n result: { hasCustomConfig: boolean },\n option: keyof MastraConfig,\n logger?: IMastraLogger,\n) {\n const t = babel.types;\n\n return {\n name: 'remove-all-except-' + option + '-config',\n visitor: {\n ExportNamedDeclaration: {\n // remove all exports\n exit(path) {\n path.remove();\n },\n },\n\n NewExpression(path, state) {\n // is a variable declaration\n const varDeclaratorPath = path.findParent(path => t.isVariableDeclarator(path.node));\n if (!varDeclaratorPath) {\n return;\n }\n\n const parentNode = path.parentPath.node;\n // check if it's a const of mastra\n if (!t.isVariableDeclarator(parentNode) || !t.isIdentifier(parentNode.id) || parentNode.id.name !== 'mastra') {\n return;\n }\n\n let mastraArgs = t.objectExpression([]);\n if (t.isObjectExpression(path.node.arguments[0])) {\n mastraArgs = path.node.arguments[0];\n }\n\n // Find the config property, skipping SpreadElement nodes\n let configProperty = mastraArgs.properties.find(\n prop => t.isObjectProperty(prop) && t.isIdentifier(prop.key) && prop.key.name === option,\n );\n let configValue: types.Expression = t.objectExpression([]);\n\n const programPath = path.scope.getProgramParent().path as NodePath<types.Program> | undefined;\n if (!programPath) {\n return;\n }\n\n if (configProperty && t.isObjectProperty(configProperty) && t.isExpression(configProperty.value)) {\n result.hasCustomConfig = true;\n configValue = configProperty.value;\n\n if (t.isIdentifier(configProperty.value) && configProperty.value.name === option) {\n const configBinding = state.file.scope.getBinding(option)!;\n\n if (configBinding && t.isVariableDeclarator(configBinding.path.node)) {\n const id = path.scope.generateUidIdentifier(option);\n\n configBinding.path.replaceWith(t.variableDeclarator(id, configBinding.path.node.init!));\n configValue = id;\n }\n }\n }\n\n // add the deployer export\n const exportDeclaration = t.exportNamedDeclaration(\n t.variableDeclaration('const', [t.variableDeclarator(t.identifier(option), configValue)]),\n [],\n );\n\n programPath.node.body.push(exportDeclaration);\n },\n\n Program: {\n exit(path) {\n // Add a fallback export if no mastra configuration was found\n const hasExport = path.node.body.some(\n node => node.type === 'ExportNamedDeclaration' || node.type === 'ExportDefaultDeclaration',\n );\n\n if (!hasExport) {\n if (logger) {\n logger.warn('Mastra config could not be extracted', {\n option,\n details:\n 'Please make sure your entry file looks like this:\\nexport const mastra = new Mastra({\\n <option>: <value>\\n})',\n });\n }\n\n const fallbackExportDeclaration = t.exportNamedDeclaration(\n t.variableDeclaration('const', [t.variableDeclarator(t.identifier(option), t.objectExpression([]))]),\n [],\n );\n path.node.body.push(fallbackExportDeclaration);\n }\n },\n },\n },\n } as babel.PluginObj;\n}\n","import * as babel from '@babel/core';\nimport type { IMastraLogger } from '@mastra/core/logger';\nimport type { Config as MastraConfig } from '@mastra/core/mastra';\nimport type { Plugin } from 'rollup';\nimport { removeAllOptionsFromMastraExcept } from '../babel/remove-all-options-except';\n\nexport function removeAllOptionsFromMastraExceptPlugin(\n mastraEntry: string,\n name: keyof MastraConfig,\n result: { hasCustomConfig: boolean },\n options?: { sourcemap?: boolean; logger?: IMastraLogger },\n): Plugin {\n return {\n name: `remove-${name}`,\n transform(code, id) {\n if (id !== mastraEntry) {\n return;\n }\n\n return new Promise((resolve, reject) => {\n babel.transform(\n code,\n {\n babelrc: false,\n configFile: false,\n filename: id,\n plugins: [removeAllOptionsFromMastraExcept(result, name, options?.logger)],\n sourceMaps: options?.sourcemap,\n },\n (err, result) => {\n if (err) {\n return reject(err);\n }\n\n resolve({\n code: result!.code!,\n map: result!.map!,\n });\n },\n );\n });\n },\n } satisfies Plugin;\n}\n","import babel from '@babel/core';\n\nexport function removeNonReferencedNodes() {\n const t = babel.types;\n\n return {\n name: 'remove-non-referenced-nodes',\n visitor: {\n Program(path) {\n // Get the scope information\n const scope = path.scope;\n\n // Filter body to keep only referenced nodes\n const currentBody = path.get('body');\n const filteredBody = currentBody.filter(childPath => {\n if (childPath.isExportDeclaration()) {\n return true;\n }\n\n // For variable declarations, check if any declared variables are referenced\n if (childPath.isVariableDeclaration()) {\n return childPath.node.declarations.some(decl => {\n if (!t.isIdentifier(decl.id)) {\n return false;\n }\n\n const name = decl.id.name;\n const binding = scope.getBinding(name);\n // Keep if it has references or is exported\n return binding && (binding.referenced || binding.referencePaths.length > 0);\n });\n }\n\n // For function/class declarations, check if they're referenced\n if (childPath.isFunctionDeclaration() || childPath.isClassDeclaration()) {\n if (!t.isIdentifier(childPath.node.id)) {\n return false;\n }\n\n const name = childPath.node.id.name;\n const binding = scope.getBinding(name);\n return binding && (binding.referenced || binding.referencePaths.length > 0);\n }\n\n // For imports, check if any imported items are referenced\n if (childPath.isImportDeclaration()) {\n return childPath.node.specifiers.some(specifier => {\n const importedName = specifier.local.name;\n const binding = scope.getBinding(importedName);\n return binding && (binding.referenced || binding.referencePaths.length > 0);\n });\n }\n\n // Default to keeping other node types\n return false;\n });\n\n // Replace the program body with filtered nodes\n path.set(\n 'body',\n filteredBody.map(p => p.node),\n );\n },\n },\n } as babel.PluginObj;\n}\n","import * as babel from '@babel/core';\nimport { removeNonReferencedNodes } from '../babel/remove-non-referenced-nodes';\n\nexport function recursiveRemoveNonReferencedNodes(code: string) {\n return new Promise<{ code: string; map: any }>(async (resolve, reject) => {\n babel.transform(\n code,\n {\n babelrc: false,\n configFile: false,\n plugins: [removeNonReferencedNodes()],\n },\n (err, result) => {\n if (err) {\n return reject(err);\n }\n\n // keep looping until the code is not changed\n if (result && result.code! !== code) {\n return recursiveRemoveNonReferencedNodes(result!.code!).then(resolve, reject);\n }\n\n resolve({\n code: result!.code!,\n map: result!.map!,\n });\n },\n );\n });\n}\n","import { pathToFileURL } from 'node:url';\nimport type { IMastraLogger } from '@mastra/core/logger';\nimport type { Config as MastraConfig } from '@mastra/core/mastra';\nimport { optimizeLodashImports } from '@optimize-lodash/rollup-plugin';\nimport commonjs from '@rollup/plugin-commonjs';\nimport json from '@rollup/plugin-json';\nimport { rollup } from 'rollup';\nimport type { RollupOutput } from 'rollup';\nimport { esbuild } from '../plugins/esbuild';\nimport { removeAllOptionsFromMastraExceptPlugin } from '../plugins/remove-all-except';\nimport { recursiveRemoveNonReferencedNodes } from '../plugins/remove-unused-references';\nimport { tsConfigPaths } from '../plugins/tsconfig-paths';\n\nexport function extractMastraOptionBundler(\n name: keyof MastraConfig,\n entryFile: string,\n result: {\n hasCustomConfig: boolean;\n },\n logger?: IMastraLogger,\n) {\n return rollup({\n logLevel: 'silent',\n input: {\n [`${name}-config`]: entryFile,\n },\n treeshake: 'smallest',\n plugins: [\n tsConfigPaths(),\n // transpile typescript to something we understand\n esbuild(),\n optimizeLodashImports({\n include: '**/*.{js,ts,mjs,cjs}',\n }),\n commonjs({\n extensions: ['.js', '.ts'],\n strictRequires: 'strict',\n transformMixedEsModules: true,\n ignoreTryCatch: false,\n }),\n json(),\n removeAllOptionsFromMastraExceptPlugin(entryFile, name, result, { logger }),\n // let esbuild remove all unused imports\n esbuild(),\n {\n name: 'cleanup',\n transform(code, id) {\n if (id !== entryFile) {\n return;\n }\n\n return recursiveRemoveNonReferencedNodes(code);\n },\n },\n // let esbuild remove it once more\n esbuild(),\n ],\n });\n}\n\nexport async function extractMastraOption<T extends keyof MastraConfig>(\n name: T,\n entryFile: string,\n outputDir: string,\n logger?: IMastraLogger,\n): Promise<{\n bundleOutput: RollupOutput;\n getConfig: () => Promise<MastraConfig[T]>;\n} | null> {\n const result = {\n hasCustomConfig: false,\n };\n\n const bundler = await extractMastraOptionBundler(name, entryFile, result, logger);\n\n const output = await bundler.write({\n dir: outputDir,\n format: 'es',\n entryFileNames: '[name].mjs',\n });\n\n if (result.hasCustomConfig) {\n const configPath = `${outputDir}/${name}-config.mjs`;\n\n return {\n bundleOutput: output,\n getConfig: () => import(pathToFileURL(configPath).href).then(m => m[name] as MastraConfig[T]),\n };\n }\n\n return null;\n}\n","import type { IMastraLogger } from '@mastra/core/logger';\nimport type { Config } from '@mastra/core/mastra';\nimport { extractMastraOption, extractMastraOptionBundler } from './shared/extract-mastra-option';\n\nexport function getBundlerOptionsBundler(\n entryFile: string,\n result: {\n hasCustomConfig: false;\n },\n) {\n return extractMastraOptionBundler('bundler', entryFile, result);\n}\n\nexport async function getBundlerOptions(\n entryFile: string,\n outputDir: string,\n logger?: IMastraLogger,\n): Promise<Config['bundler'] | null> {\n const result = await extractMastraOption('bundler', entryFile, outputDir, logger);\n\n if (!result) {\n return null;\n }\n\n return result.getConfig();\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/stacktrace-parser/0.1.11/63406bc765474556691ebd1b24eaa0c5b032f058a26bbaff13797a2780d98220/node_modules/stacktrace-parser/dist/stack-trace-parser.esm.js","../src/bundler/workspaceDependencies.ts","../src/validator/validate.ts","../src/build/analyze/constants.ts","../src/build/analyze/analyzeEntry.ts","../src/build/plugins/hono-alias.ts","../src/build/plugins/module-resolve-map.ts","../src/build/plugins/node-gyp-detector.ts","../src/build/analyze/bundleExternals.ts","../src/build/babel/check-config-export.ts","../src/build/babel/detect-pino-transports.ts","../src/build/analyze.ts"],"names":["resolve","nodeSpawn","dirname","path","pathToFileURL","join","exports","getInputPlugins","pkg","virtual","commonjs","json","getPackageInfo","rollup","moduleResolveMap","o","t","babel","isAbsolute","ErrorDomain","ErrorCategory","basename","err","readFile"],"mappings":"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","file":"chunk-UY7KZXD2.js","sourcesContent":["var UNKNOWN_FUNCTION = '<unknown>';\n/**\n * This parses the different stack traces and puts them into one format\n * This borrows heavily from TraceKit (https://github.com/csnover/TraceKit)\n */\n\nfunction parse(stackString) {\n var lines = stackString.split('\\n');\n return lines.reduce(function (stack, line) {\n var parseResult = parseChrome(line) || parseWinjs(line) || parseGecko(line) || parseNode(line) || parseJSC(line);\n\n if (parseResult) {\n stack.push(parseResult);\n }\n\n return stack;\n }, []);\n}\nvar chromeRe = /^\\s*at (.*?) ?\\(((?:file|https?|blob|chrome-extension|native|eval|webpack|rsc|<anonymous>|\\/|[a-z]:\\\\|\\\\\\\\).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\nvar chromeEvalRe = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n\nfunction parseChrome(line) {\n var parts = chromeRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n var isNative = parts[2] && parts[2].indexOf('native') === 0; // start of line\n\n var isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n\n var submatch = chromeEvalRe.exec(parts[2]);\n\n if (isEval && submatch != null) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = submatch[1]; // url\n\n parts[3] = submatch[2]; // line\n\n parts[4] = submatch[3]; // column\n }\n\n return {\n file: !isNative ? parts[2] : null,\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: isNative ? [parts[2]] : [],\n lineNumber: parts[3] ? +parts[3] : null,\n column: parts[4] ? +parts[4] : null\n };\n}\n\nvar winjsRe = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|rsc|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nfunction parseWinjs(line) {\n var parts = winjsRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n return {\n file: parts[2],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: [],\n lineNumber: +parts[3],\n column: parts[4] ? +parts[4] : null\n };\n}\n\nvar geckoRe = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|rsc|resource|\\[native).*?|[^@]*bundle)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nvar geckoEvalRe = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\n\nfunction parseGecko(line) {\n var parts = geckoRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n var isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n var submatch = geckoEvalRe.exec(parts[3]);\n\n if (isEval && submatch != null) {\n // throw out eval line/column and use top-most line number\n parts[3] = submatch[1];\n parts[4] = submatch[2];\n parts[5] = null; // no column when eval\n }\n\n return {\n file: parts[3],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: parts[2] ? parts[2].split(',') : [],\n lineNumber: parts[4] ? +parts[4] : null,\n column: parts[5] ? +parts[5] : null\n };\n}\n\nvar javaScriptCoreRe = /^\\s*(?:([^@]*)(?:\\((.*?)\\))?@)?(\\S.*?):(\\d+)(?::(\\d+))?\\s*$/i;\n\nfunction parseJSC(line) {\n var parts = javaScriptCoreRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n return {\n file: parts[3],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: [],\n lineNumber: +parts[4],\n column: parts[5] ? +parts[5] : null\n };\n}\n\nvar nodeRe = /^\\s*at (?:((?:\\[object object\\])?[^\\\\/]+(?: \\[as \\S+\\])?) )?\\(?(.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nfunction parseNode(line) {\n var parts = nodeRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n return {\n file: parts[2],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: [],\n lineNumber: +parts[3],\n column: parts[4] ? +parts[4] : null\n };\n}\n\nexport { parse };\n","import { join, dirname } from 'node:path';\nimport type { IMastraLogger } from '@mastra/core/logger';\nimport slugify from '@sindresorhus/slugify';\nimport * as pkg from 'empathic/package';\nimport { findWorkspaces, findWorkspacesRoot, createWorkspacesCache } from 'find-workspaces';\nimport { ensureDir } from 'fs-extra';\nimport { slash } from '../build/utils';\nimport { DepsService } from '../services';\n\nexport type WorkspacePackageInfo = {\n location: string;\n dependencies: Record<string, string> | undefined;\n version: string | undefined;\n};\n\ntype TransitiveDependencyResult = {\n resolutions: Record<string, string>;\n usedWorkspacePackages: Set<string>;\n};\n\n/**\n * Create a shared cache for find-workspaces\n */\nconst workspacesCache = createWorkspacesCache();\n\n/**\n * A utility function around find-workspaces to get information about:\n * - Which workspace packages are available in the project\n * - What is the workspace root location\n * - Is the current package a workspace package\n *\n * Because `findWorkspacesRoot` only traverses up until it finds workspace information, but doesn't check if the current package is even part of the workspace. We rather want to return `null` for these cases because in other code paths we use `workspaceRoot || projectRoot` to determine the root of the project.\n *\n * @params dir - The directory to start searching from (default: `process.cwd()`)\n * @params location - The location of the current package (usually the directory containing the package.json)\n */\nexport async function getWorkspaceInformation({\n dir = process.cwd(),\n mastraEntryFile,\n}: {\n dir?: string;\n mastraEntryFile: string;\n}) {\n // 1) Get the location of the current package and its package.json\n const closestPkgJson = pkg.up({ cwd: dirname(mastraEntryFile) });\n const location = closestPkgJson ? dirname(slash(closestPkgJson)) : slash(process.cwd());\n\n // 2) Get all workspaces\n const workspaces = await findWorkspaces(dir, { cache: workspacesCache });\n const _workspaceMap = new Map(\n workspaces?.map(workspace => [\n workspace.package.name,\n {\n location: workspace.location,\n dependencies: workspace.package.dependencies,\n version: workspace.package.version,\n },\n ]) ?? [],\n );\n\n // 3) Check if the current package is part of the workspace\n const isWorkspacePackage = (workspaces ?? []).some(ws => ws.location === location);\n\n // 4) Get the workspace root only if the current package is part of the workspace\n const workspaceRoot = isWorkspacePackage ? findWorkspacesRoot(dir, { cache: workspacesCache })?.location : undefined;\n\n return {\n // If the current package is not part of the workspace, the bundling down the line shouldn't look at any workspace packages\n workspaceMap: isWorkspacePackage ? _workspaceMap : new Map<string, WorkspacePackageInfo>(),\n workspaceRoot,\n isWorkspacePackage,\n };\n}\n\n/**\n * Collects all transitive workspace dependencies and their TGZ paths\n */\nexport const collectTransitiveWorkspaceDependencies = ({\n workspaceMap,\n initialDependencies,\n logger,\n}: {\n workspaceMap: Map<string, WorkspacePackageInfo>;\n initialDependencies: Set<string>;\n logger: IMastraLogger;\n}): TransitiveDependencyResult => {\n const usedWorkspacePackages = new Set<string>();\n const queue: string[] = Array.from(initialDependencies);\n const resolutions: Record<string, string> = {};\n\n while (queue.length > 0) {\n const len = queue.length;\n for (let i = 0; i < len; i += 1) {\n const pkgName = queue.shift();\n if (!pkgName || usedWorkspacePackages.has(pkgName)) {\n continue;\n }\n\n const dep = workspaceMap.get(pkgName);\n if (!dep) continue;\n\n const root = findWorkspacesRoot();\n if (!root) {\n throw new Error('Could not find workspace root');\n }\n\n const depsService = new DepsService(root.location);\n depsService.__setLogger(logger);\n const sanitizedName = slugify(pkgName);\n\n const tgzPath = depsService.getWorkspaceDependencyPath({\n pkgName: sanitizedName,\n version: dep.version!,\n });\n resolutions[pkgName] = tgzPath;\n usedWorkspacePackages.add(pkgName);\n\n for (const [depName, _depVersion] of Object.entries(dep?.dependencies ?? {})) {\n if (!usedWorkspacePackages.has(depName) && workspaceMap.has(depName)) {\n queue.push(depName);\n }\n }\n }\n }\n\n return { resolutions, usedWorkspacePackages };\n};\n\n/**\n * Creates TGZ packages for workspace dependencies in the workspace-module directory\n */\nexport const packWorkspaceDependencies = async ({\n workspaceMap,\n usedWorkspacePackages,\n bundleOutputDir,\n logger,\n}: {\n workspaceMap: Map<string, WorkspacePackageInfo>;\n bundleOutputDir: string;\n logger: IMastraLogger;\n usedWorkspacePackages: Set<string>;\n}): Promise<void> => {\n const root = findWorkspacesRoot();\n if (!root) {\n throw new Error('Could not find workspace root');\n }\n\n const depsService = new DepsService(root.location);\n depsService.__setLogger(logger);\n\n // package all workspace dependencies\n if (usedWorkspacePackages.size > 0) {\n const workspaceDirPath = join(bundleOutputDir, 'workspace-module');\n await ensureDir(workspaceDirPath);\n\n logger.info('Packaging workspace dependencies', { count: usedWorkspacePackages.size });\n\n const batchSize = 5;\n const packages = Array.from(usedWorkspacePackages.values());\n\n for (let i = 0; i < packages.length; i += batchSize) {\n const batch = packages.slice(i, i + batchSize);\n logger.info(\n `Packaging batch ${Math.floor(i / batchSize) + 1}/${Math.ceil(packages.length / batchSize)}: ${batch.join(', ')}`,\n );\n await Promise.all(\n batch.map(async pkgName => {\n const dep = workspaceMap.get(pkgName);\n const sanitizedName = slugify(pkgName);\n if (!dep) return;\n\n await depsService.pack({ dir: dep.location, destination: workspaceDirPath, sanitizedName: sanitizedName });\n }),\n );\n }\n\n logger.info('Successfully packaged workspace dependencies', { count: usedWorkspacePackages.size });\n }\n};\n","import { spawn as nodeSpawn } from 'node:child_process';\nimport type { SpawnOptions } from 'node:child_process';\nimport { dirname } from 'node:path';\nimport { pathToFileURL } from 'node:url';\n\ntype ValidationArgs = {\n message: string;\n type: string;\n stack: string;\n};\n\nexport class ValidationError extends Error {\n public readonly type: string;\n public readonly stack: string;\n constructor(args: ValidationArgs) {\n super(args.message);\n this.type = args.type;\n this.stack = args.stack;\n }\n}\n\n/**\n * Promisified version of Node.js spawn function\n *\n * @param command - The command to run\n * @param args - List of string arguments\n * @param options - Spawn options\n * @returns Promise that resolves with the exit code when the process completes\n */\nfunction spawn(command: string, args: string[] = [], options: SpawnOptions = {}): Promise<void> {\n return new Promise((resolve, reject) => {\n let validationError: ValidationArgs | null = null;\n const childProcess = nodeSpawn(command, args, {\n stdio: ['ignore', 'ignore', 'pipe'],\n ...options,\n });\n\n childProcess.on('error', error => {\n reject(error);\n });\n\n let stderr = '';\n childProcess.stderr?.on('data', message => {\n try {\n validationError = JSON.parse(message.toString());\n } catch {\n stderr += message;\n }\n });\n\n childProcess.on('close', code => {\n if (code === 0) {\n resolve();\n } else {\n if (validationError) {\n reject(new ValidationError(validationError));\n } else {\n reject(new Error(stderr));\n }\n }\n });\n });\n}\n\nexport function validate(\n file: string,\n {\n injectESMShim = false,\n moduleResolveMapLocation,\n stubbedExternals = [],\n }: { injectESMShim?: boolean; moduleResolveMapLocation: string; stubbedExternals?: string[] },\n) {\n let prefixCode = '';\n if (injectESMShim) {\n prefixCode = `import { fileURLToPath } from 'url';\nimport { dirname } from 'path';\n\nglobalThis.__filename = fileURLToPath(import.meta.url);\nglobalThis.__dirname = dirname(__filename);\n `;\n }\n\n // Used to log a proper error we can parse instead of trying to do some fancy string grepping\n function errorHandler(err: Error) {\n console.error(\n JSON.stringify({\n type: err.name,\n message: err.message,\n stack: err.stack,\n }),\n );\n process.exit(1);\n }\n\n return spawn(\n process.execPath,\n [\n '--import',\n import.meta.resolve('@mastra/deployer/loader'),\n '--input-type=module',\n '--enable-source-maps',\n '-e',\n `${prefixCode};import('${pathToFileURL(file).href}').catch(err => {\n ${errorHandler.toString()}\n errorHandler(err);\n })`.replaceAll(/\\n/g, ''),\n ],\n {\n env: {\n ...process.env,\n MODULE_MAP: `${moduleResolveMapLocation}`,\n STUBBED_EXTERNALS: JSON.stringify(stubbedExternals),\n },\n cwd: dirname(file),\n },\n );\n}\n","export const DEPS_TO_IGNORE = ['#tools', 'execa'];\n\nexport const GLOBAL_EXTERNALS = [\n 'pino',\n 'pino-pretty',\n '@libsql/client',\n 'pg',\n 'libsql',\n '#tools',\n 'typescript',\n 'undici',\n 'readable-stream',\n 'bufferutil',\n 'utf-8-validate',\n 'execa',\n];\nexport const DEPRECATED_EXTERNALS = ['fastembed', 'nodemailer', 'jsdom', 'sqlite3'];\n","import type { IMastraLogger } from '@mastra/core/logger';\nimport commonjs from '@rollup/plugin-commonjs';\nimport json from '@rollup/plugin-json';\nimport virtual from '@rollup/plugin-virtual';\nimport { rollup } from 'rollup';\nimport type { OutputChunk, Plugin, SourceMap } from 'rollup';\nimport type { WorkspacePackageInfo } from '../../bundler/workspaceDependencies';\nimport { mastraInternalAliasPlugin, mastraToolsAliasPlugin } from '../bundler';\nimport { getPackageMetadata, getPackageRootPath } from '../package-info';\nimport { esbuild } from '../plugins/esbuild';\nimport { protocolExternalResolver } from '../plugins/protocol-external-resolver';\nimport { removeDeployer } from '../plugins/remove-deployer';\nimport { tsConfigPaths } from '../plugins/tsconfig-paths';\nimport type { DependencyMetadata } from '../types';\nimport { getPackageName, isBareModuleSpecifier, slash } from '../utils';\nimport { DEPS_TO_IGNORE } from './constants';\n\n/**\n * Configures and returns the Rollup plugins needed for analyzing entry files.\n * Sets up module resolution, transpilation, and custom alias handling for Mastra-specific imports.\n */\nfunction getInputPlugins(\n { entry, isVirtualFile }: { entry: string; isVirtualFile: boolean },\n mastraEntry: string,\n { sourcemapEnabled }: { sourcemapEnabled: boolean },\n): Plugin[] {\n let virtualPlugin = null;\n if (isVirtualFile) {\n virtualPlugin = virtual({\n '#entry': entry,\n });\n entry = '#entry';\n }\n\n const plugins = [];\n if (virtualPlugin) {\n plugins.push(virtualPlugin);\n }\n\n plugins.push(\n ...[\n protocolExternalResolver(),\n mastraInternalAliasPlugin(mastraEntry),\n mastraToolsAliasPlugin(),\n tsConfigPaths(),\n json(),\n esbuild(),\n commonjs({\n strictRequires: 'debug',\n ignoreTryCatch: false,\n transformMixedEsModules: true,\n extensions: ['.js', '.ts'],\n }),\n removeDeployer(mastraEntry, {\n sourcemap: sourcemapEnabled,\n }),\n esbuild(),\n ],\n );\n\n return plugins;\n}\n\n/**\n * Extracts and categorizes dependencies from Rollup output to determine which ones need optimization.\n * Analyzes both static imports and dynamic imports while filtering out Node.js built-ins and ignored dependencies.\n * Identifies workspace packages and resolves package root paths for proper bundling optimization.\n */\nasync function captureDependenciesToOptimize(\n output: OutputChunk,\n workspaceMap: Map<string, WorkspacePackageInfo>,\n projectRoot: string,\n {\n logger,\n shouldCheckTransitiveDependencies,\n }: {\n logger: IMastraLogger;\n shouldCheckTransitiveDependencies: boolean;\n },\n): Promise<Map<string, DependencyMetadata>> {\n const depsToOptimize = new Map<string, DependencyMetadata>();\n\n if (!output.facadeModuleId) {\n throw new Error(\n 'Something went wrong, we could not find the package name of the entry file. Please open an issue.',\n );\n }\n\n let entryRootPath = projectRoot;\n if (!output.facadeModuleId.startsWith('\\x00virtual:')) {\n entryRootPath = (await getPackageRootPath(output.facadeModuleId)) || projectRoot;\n }\n\n for (const [dependency, bindings] of Object.entries(output.importedBindings)) {\n if (!isBareModuleSpecifier(dependency)) {\n continue;\n }\n\n // The `getPackageName` helper also handles subpaths so we only get the proper package name\n const pkgName = getPackageName(dependency);\n let rootPath: string | null = null;\n let isWorkspace = false;\n let version: string | undefined;\n let packageSpec: string | undefined;\n\n if (pkgName) {\n const metadata = await getPackageMetadata(dependency, entryRootPath);\n rootPath = metadata.rootPath;\n version = metadata.version;\n packageSpec = metadata.packageSpec;\n isWorkspace = workspaceMap.has(pkgName);\n }\n\n const normalizedRootPath = rootPath ? slash(rootPath) : null;\n\n depsToOptimize.set(dependency, {\n exports: bindings,\n rootPath: normalizedRootPath,\n isWorkspace,\n version,\n packageSpec,\n });\n }\n\n const processedWorkspaceDeps = new Set<string>();\n\n /**\n * Recursively discovers transitive workspace dependencies from package manifests.\n */\n function checkTransitiveDependencies(maxDepth = 10, currentDepth = 0) {\n // Could be a circular dependency...\n if (currentDepth >= maxDepth) {\n logger.warn('Maximum dependency depth reached while checking transitive dependencies.');\n return;\n }\n\n // Make a copy so that we can safely iterate over it\n const depsSnapshot = new Map(depsToOptimize);\n let hasAddedDeps = false;\n\n for (const [dep, meta] of depsSnapshot) {\n const pkgName = getPackageName(dep);\n // We only care about workspace deps that we haven't already processed\n if (!pkgName || !meta.isWorkspace || processedWorkspaceDeps.has(pkgName)) {\n continue;\n }\n\n processedWorkspaceDeps.add(pkgName);\n\n const workspaceInfo = workspaceMap.get(pkgName);\n if (!workspaceInfo?.dependencies) {\n continue;\n }\n\n for (const [innerDep, _innerDepVersion] of Object.entries(workspaceInfo.dependencies)) {\n const innerWorkspaceInfo = workspaceMap.get(innerDep);\n if (!innerWorkspaceInfo) {\n continue;\n }\n\n const existingMeta = depsToOptimize.get(innerDep);\n if (existingMeta) {\n depsToOptimize.set(innerDep, {\n ...existingMeta,\n exports: existingMeta.exports.includes('*') ? existingMeta.exports : [...existingMeta.exports, '*'],\n });\n continue;\n }\n\n depsToOptimize.set(innerDep, {\n exports: ['*'],\n rootPath: slash(innerWorkspaceInfo.location),\n isWorkspace: true,\n version: innerWorkspaceInfo.version,\n });\n hasAddedDeps = true;\n }\n }\n\n // Continue until no new deps are found\n if (hasAddedDeps) {\n checkTransitiveDependencies(maxDepth, currentDepth + 1);\n }\n }\n\n if (shouldCheckTransitiveDependencies) {\n checkTransitiveDependencies();\n }\n\n // #tools is a generated dependency, we don't want our analyzer to handle it\n const dynamicImports = output.dynamicImports.filter(d => !DEPS_TO_IGNORE.includes(d));\n if (dynamicImports.length) {\n for (const dynamicImport of dynamicImports) {\n if (!depsToOptimize.has(dynamicImport) && isBareModuleSpecifier(dynamicImport)) {\n // Try to resolve version for dynamic imports as well\n const pkgName = getPackageName(dynamicImport);\n let version: string | undefined;\n let packageSpec: string | undefined;\n let rootPath: string | null = null;\n\n if (pkgName) {\n const metadata = await getPackageMetadata(dynamicImport, entryRootPath);\n rootPath = metadata.rootPath;\n version = metadata.version;\n packageSpec = metadata.packageSpec;\n }\n\n depsToOptimize.set(dynamicImport, {\n exports: ['*'],\n rootPath: rootPath ? slash(rootPath) : null,\n isWorkspace: false,\n version,\n packageSpec,\n });\n }\n }\n }\n\n return depsToOptimize;\n}\n\n/**\n * Analyzes the entry file to identify external dependencies and their imports. This allows us to treeshake all code that is not used.\n *\n * @param entryConfig - Configuration object for the entry file\n * @param entryConfig.entry - The entry file path or content\n * @param entryConfig.isVirtualFile - Whether the entry is a virtual file (content string) or a file path\n * @param mastraEntry - The mastra entry point\n * @param options - Configuration options for the analysis\n * @param options.logger - Logger instance for debugging\n * @param options.sourcemapEnabled - Whether sourcemaps are enabled\n * @param options.workspaceMap - Map of workspace packages\n * @param options.shouldCheckTransitiveDependencies - Whether to recursively analyze transitive workspace dependencies (default: false)\n * @returns A promise that resolves to an object containing the analyzed dependencies and generated output\n */\n/** Return type of {@link analyzeEntry} */\nexport type AnalyzeEntryResult = {\n dependencies: Map<string, DependencyMetadata>;\n output: {\n code: string;\n map: SourceMap | null;\n };\n};\n\nexport async function analyzeEntry(\n {\n entry,\n isVirtualFile,\n }: {\n entry: string;\n isVirtualFile: boolean;\n },\n mastraEntry: string,\n {\n logger,\n sourcemapEnabled,\n workspaceMap,\n projectRoot,\n shouldCheckTransitiveDependencies = false,\n analyzeCache,\n }: {\n logger: IMastraLogger;\n sourcemapEnabled: boolean;\n workspaceMap: Map<string, WorkspacePackageInfo>;\n projectRoot: string;\n shouldCheckTransitiveDependencies?: boolean;\n /** Shared cache to avoid re-analyzing the same entry across recursive calls */\n analyzeCache?: Map<string, AnalyzeEntryResult>;\n },\n): Promise<AnalyzeEntryResult> {\n // Deduplicate: if this entry was already analyzed, return cached result\n const cacheKey = isVirtualFile ? undefined : slash(entry);\n if (cacheKey && analyzeCache?.has(cacheKey)) {\n return analyzeCache.get(cacheKey)!;\n }\n\n const optimizerBundler = await rollup({\n logLevel: process.env.MASTRA_BUNDLER_DEBUG === 'true' ? 'debug' : 'silent',\n input: isVirtualFile ? '#entry' : entry,\n treeshake: false,\n preserveSymlinks: true,\n plugins: getInputPlugins({ entry, isVirtualFile }, mastraEntry, { sourcemapEnabled }),\n external: DEPS_TO_IGNORE,\n });\n\n const { output } = await optimizerBundler.generate({\n format: 'esm',\n inlineDynamicImports: true,\n });\n\n await optimizerBundler.close();\n\n const depsToOptimize = await captureDependenciesToOptimize(output[0] as OutputChunk, workspaceMap, projectRoot, {\n logger,\n shouldCheckTransitiveDependencies,\n });\n\n const result: AnalyzeEntryResult = {\n dependencies: depsToOptimize,\n output: {\n code: output[0].code,\n map: output[0].map as SourceMap,\n },\n };\n\n // Cache the result so recursive calls for the same entry are instant\n if (cacheKey && analyzeCache) {\n analyzeCache.set(cacheKey, result);\n }\n\n return result;\n}\n","import { fileURLToPath } from 'node:url';\nimport type { Plugin } from 'rollup';\n\n// hono is imported from deployer, so we need to resolve from here instead of the project root\nexport function aliasHono(): Plugin {\n return {\n name: 'hono-alias',\n resolveId(id: string) {\n if (!id.startsWith('@hono/') && !id.startsWith('hono/') && id !== 'hono' && id !== 'hono-openapi') {\n return;\n }\n\n const path = import.meta.resolve(id);\n return fileURLToPath(path);\n },\n } satisfies Plugin;\n}\n","import { join } from 'node:path';\nimport { pathToFileURL } from 'node:url';\nimport type { Plugin } from 'rollup';\nimport { isDependencyPartOfPackage, slash } from '../utils';\n\nexport function moduleResolveMap(externals: string[], projectRoot: string): Plugin {\n const importMap = new Map<string, string>();\n return {\n name: 'module-resolve-map',\n moduleParsed(info) {\n if (info.importedIds.length === 0 || !info.id) {\n return;\n }\n\n for (const importedId of info.importedIds) {\n for (const external of externals) {\n if (isDependencyPartOfPackage(importedId, external)) {\n // TODO add multi version support\n importMap.set(external, info.id);\n }\n }\n }\n },\n\n async generateBundle(options, bundle) {\n const resolveMap = new Map<string, Map<string, string>>();\n\n // Iterate through all output chunks\n for (const [fileName, chunk] of Object.entries(bundle)) {\n // Only chunks have modules, assets don't\n if (chunk.type === 'chunk') {\n for (const [external, resolvedFrom] of importMap) {\n if (chunk.moduleIds.includes(resolvedFrom)) {\n const fullPath = pathToFileURL(slash(join(projectRoot, fileName))).toString();\n const innerMap = resolveMap.get(fullPath) || new Map<string, string>();\n innerMap.set(external, pathToFileURL(slash(resolvedFrom)).toString());\n resolveMap.set(fullPath, innerMap);\n }\n }\n }\n }\n\n // store all binaries used by a module to show in the error message\n const resolveMapJson = Object.fromEntries(\n Array.from(resolveMap.entries()).map(([key, value]) => [key, Object.fromEntries(value.entries())]),\n );\n\n this.emitFile({\n type: 'asset',\n name: 'module-resolve-map.json',\n source: `${JSON.stringify(resolveMapJson, null, 2)}`,\n });\n },\n } satisfies Plugin;\n}\n","import { getPackageInfo } from 'local-pkg';\nimport type { Plugin } from 'rollup';\n\nexport function nodeGypDetector(): Plugin {\n const modulesToTrack = new Set<string>();\n const modulesToTrackPackageInfo = new Map<string, ReturnType<typeof getPackageInfo>>();\n\n return {\n name: 'node-gyp-build-detector',\n moduleParsed(info) {\n if (!info.meta?.commonjs?.requires?.length) {\n return;\n }\n\n const hasNodeGypBuild = info.meta.commonjs.requires.some((m: { resolved?: { id: string } }) =>\n m?.resolved?.id.endsWith('node-gyp-build/index.js'),\n );\n if (!hasNodeGypBuild) {\n return;\n }\n\n modulesToTrack.add(info.id);\n modulesToTrackPackageInfo.set(info.id, getPackageInfo(info.id));\n },\n\n async generateBundle(options, bundle) {\n const binaryMapByChunk = new Map<string, Set<string>>();\n // Iterate through all output chunks\n for (const [fileName, chunk] of Object.entries(bundle)) {\n // Only chunks have modules, assets don't\n if (chunk.type === 'chunk') {\n for (const moduleId of chunk.moduleIds) {\n if (modulesToTrackPackageInfo.has(moduleId)) {\n const pkgInfo = await modulesToTrackPackageInfo.get(moduleId)!;\n\n if (!binaryMapByChunk.has(fileName)) {\n binaryMapByChunk.set(fileName, new Set());\n }\n\n if (pkgInfo?.packageJson?.name) {\n binaryMapByChunk.get(fileName)!.add(pkgInfo.packageJson.name);\n }\n }\n }\n }\n }\n\n const binaryMapJson = Object.fromEntries(\n Array.from(binaryMapByChunk.entries()).map(([key, value]) => [key, Array.from(value)]),\n );\n\n // store all binaries used by a module to show in the error message\n this.emitFile({\n type: 'asset',\n name: 'binary-map.json',\n source: `${JSON.stringify(binaryMapJson, null, 2)}`,\n });\n },\n } satisfies Plugin;\n}\n","import { readFile } from 'node:fs/promises';\nimport * as path from 'node:path';\nimport { basename } from 'node:path/posix';\nimport { ErrorCategory, ErrorDomain, MastraBaseError } from '@mastra/core/error';\nimport type { Config } from '@mastra/core/mastra';\nimport { optimizeLodashImports } from '@optimize-lodash/rollup-plugin';\nimport commonjs from '@rollup/plugin-commonjs';\nimport json from '@rollup/plugin-json';\nimport nodeResolve from '@rollup/plugin-node-resolve';\nimport virtual from '@rollup/plugin-virtual';\nimport { getPackageInfo } from 'local-pkg';\nimport * as resolve from 'resolve.exports';\nimport { rollup } from 'rollup';\nimport type { OutputChunk, OutputAsset, Plugin } from 'rollup';\nimport type { WorkspacePackageInfo } from '../../bundler/workspaceDependencies';\nimport { getPackageRootPath } from '../package-info';\nimport { esbuild } from '../plugins/esbuild';\nimport { esmShim } from '../plugins/esm-shim';\nimport { aliasHono } from '../plugins/hono-alias';\nimport { moduleResolveMap } from '../plugins/module-resolve-map';\nimport { nodeGypDetector } from '../plugins/node-gyp-detector';\nimport { protocolExternalResolver } from '../plugins/protocol-external-resolver';\nimport { subpathExternalsResolver } from '../plugins/subpath-externals-resolver';\nimport { tsConfigPaths } from '../plugins/tsconfig-paths';\nimport type { DependencyMetadata } from '../types';\nimport {\n getCompiledDepCachePath,\n getNodeResolveOptions,\n isDependencyPartOfPackage,\n rollupSafeName,\n slash,\n} from '../utils';\nimport type { BundlerPlatform } from '../utils';\nimport { DEPS_TO_IGNORE, GLOBAL_EXTERNALS, DEPRECATED_EXTERNALS } from './constants';\n\ntype VirtualDependency = {\n name: string;\n virtual: string;\n};\n\nfunction prepareEntryFileName(name: string, rootDir: string) {\n return rollupSafeName(name, rootDir);\n}\n\n/**\n * Creates virtual dependency modules for optimized bundling by generating virtual entry points for each dependency with their specific exports and handling workspace package path resolution.\n */\nexport function createVirtualDependencies(\n depsToOptimize: Map<string, DependencyMetadata>,\n {\n projectRoot,\n workspaceRoot,\n outputDir,\n bundlerOptions,\n }: {\n workspaceRoot: string | null;\n projectRoot: string;\n outputDir: string;\n bundlerOptions?: { isDev?: boolean; externalsPreset?: boolean };\n },\n): {\n optimizedDependencyEntries: Map<string, VirtualDependency>;\n fileNameToDependencyMap: Map<string, string>;\n} {\n const { isDev = false, externalsPreset = false } = bundlerOptions || {};\n const fileNameToDependencyMap = new Map<string, string>();\n const optimizedDependencyEntries = new Map<string, VirtualDependency>();\n const rootDir = workspaceRoot || projectRoot;\n\n for (const [dep, { exports }] of depsToOptimize.entries()) {\n // Use __ as separator to avoid conflicts with hyphens in package names\n // e.g., @inner/inner-tools -> @inner__inner-tools (preserves the hyphen)\n const fileName = dep.replaceAll('/', '__');\n const virtualFile: string[] = [];\n const exportStringBuilder = [];\n\n for (const local of exports) {\n if (local === '*') {\n virtualFile.push(`export * from '${dep}';`);\n continue;\n } else if (local === 'default') {\n exportStringBuilder.push('default');\n } else {\n exportStringBuilder.push(local);\n }\n }\n\n const chunks = [];\n if (exportStringBuilder.length) {\n chunks.push(`{ ${exportStringBuilder.join(', ')} }`);\n }\n if (chunks.length) {\n virtualFile.push(`export ${chunks.join(', ')} from '${dep}';`);\n }\n\n // Determine the entry name based on the complexity of exports\n let entryName = prepareEntryFileName(path.join(outputDir, fileName), rootDir);\n\n fileNameToDependencyMap.set(entryName, dep);\n optimizedDependencyEntries.set(dep, {\n name: entryName,\n virtual: virtualFile.join('\\n'),\n });\n }\n\n // For workspace packages, we still want the dependencies to be imported from the original path\n // We rewrite the path to the original folder inside node_modules/.cache\n if (isDev || externalsPreset) {\n for (const [dep, { isWorkspace, rootPath }] of depsToOptimize.entries()) {\n if (!isWorkspace || !rootPath || !workspaceRoot) {\n continue;\n }\n\n const currentDepPath = optimizedDependencyEntries.get(dep);\n if (!currentDepPath) {\n continue;\n }\n\n const fileName = basename(currentDepPath.name);\n const entryName = prepareEntryFileName(getCompiledDepCachePath(rootPath, fileName), rootDir);\n\n fileNameToDependencyMap.set(entryName, dep);\n optimizedDependencyEntries.set(dep, {\n ...currentDepPath,\n name: entryName,\n });\n }\n }\n\n return { optimizedDependencyEntries, fileNameToDependencyMap };\n}\n\n/**\n * Configures and returns Rollup plugins for bundling external dependencies.\n * Sets up virtual modules, TypeScript compilation, CommonJS transformation, and workspace resolution.\n */\nasync function getInputPlugins(\n virtualDependencies: Map<string, { name: string; virtual: string }>,\n {\n transpilePackages,\n workspaceMap,\n bundlerOptions,\n rootDir,\n externals,\n platform,\n }: {\n transpilePackages: Set<string>;\n workspaceMap: Map<string, WorkspacePackageInfo>;\n bundlerOptions: { noBundling: boolean };\n rootDir: string;\n externals: string[];\n platform: BundlerPlatform;\n },\n) {\n const transpilePackagesMap = new Map<string, string>();\n for (const pkg of transpilePackages) {\n const dir = await getPackageRootPath(pkg);\n\n if (dir) {\n transpilePackagesMap.set(pkg, slash(dir));\n } else {\n transpilePackagesMap.set(pkg, workspaceMap.get(pkg)?.location ?? pkg);\n }\n }\n\n return [\n virtual(\n Array.from(virtualDependencies.entries()).reduce(\n (acc, [dep, virtualDep]) => {\n acc[`#virtual-${dep}`] = virtualDep.virtual;\n return acc;\n },\n {} as Record<string, string>,\n ),\n ),\n tsConfigPaths(),\n protocolExternalResolver(),\n subpathExternalsResolver(externals),\n transpilePackagesMap.size\n ? esbuild({\n format: 'esm',\n include: [\n // Match files from transpilePackages by their actual directory paths\n // but exclude any nested node_modules\n ...[...transpilePackagesMap.values()].map(p => {\n if (path.isAbsolute(p)) {\n return new RegExp(`^${p.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')}/(?!.*node_modules).*$`);\n } else {\n return new RegExp(`\\/${p.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')}/(?!.*node_modules).*$`);\n }\n }),\n // Also match workspace packages resolved through node_modules symlinks\n // (common in pnpm workspaces). Match by package name in node_modules path.\n ...[...transpilePackagesMap.keys()].map(pkgName => {\n const escapedPkgName = pkgName.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n return new RegExp(`/node_modules/${escapedPkgName}/(?!.*node_modules).*$`);\n }),\n ],\n // Disable the default /node_modules/ exclusion from rollup-plugin-esbuild.\n // In pnpm workspaces, nodeResolve resolves workspace packages through node_modules\n // symlinks, so the resolved paths contain \"node_modules\". Without this, workspace\n // package .ts files won't be transpiled even if they match the include patterns.\n exclude: [],\n })\n : null,\n bundlerOptions.noBundling\n ? ({\n name: 'alias-optimized-deps',\n async resolveId(id, importer, options) {\n if (!virtualDependencies.has(id)) {\n return null;\n }\n\n const info = virtualDependencies.get(id)!;\n // go from ./node_modules/.cache/index.js to ./pkg\n const packageRootPath = path.join(rootDir, path.dirname(path.dirname(path.dirname(info.name))));\n const pkgJsonBuffer = await readFile(path.join(packageRootPath, 'package.json'), 'utf-8');\n const pkgJson = JSON.parse(pkgJsonBuffer);\n if (!pkgJson) {\n return null;\n }\n\n const pkgName = pkgJson.name || '';\n let resolvedPath: string | undefined = resolve.exports(pkgJson, id.replace(pkgName, '.'))?.[0];\n if (!resolvedPath) {\n resolvedPath = pkgJson!.main ?? 'index.js';\n }\n\n const resolved = await this.resolve(path.posix.join(packageRootPath, resolvedPath!), importer, options);\n return resolved;\n },\n } satisfies Plugin)\n : null,\n optimizeLodashImports({\n include: '**/*.{js,ts,mjs,cjs}',\n }),\n commonjs({\n strictRequires: 'strict',\n transformMixedEsModules: true,\n ignoreTryCatch: false,\n }),\n bundlerOptions.noBundling ? null : nodeResolve(getNodeResolveOptions(platform)),\n bundlerOptions.noBundling ? esmShim() : null,\n // hono is imported from deployer, so we need to resolve from here instead of the project root\n aliasHono(),\n json(),\n nodeGypDetector(),\n moduleResolveMap(externals, rootDir),\n {\n name: 'not-found-resolver',\n resolveId: {\n order: 'post',\n async handler(id, importer) {\n if (!importer) {\n return null;\n }\n\n if (!id.endsWith('.node')) {\n return null;\n }\n\n const pkgInfo = await getPackageInfo(importer);\n const packageName = pkgInfo?.packageJson?.name || id;\n throw new MastraBaseError({\n id: 'DEPLOYER_BUNDLE_EXTERNALS_MISSING_NATIVE_BUILD',\n domain: ErrorDomain.DEPLOYER,\n category: ErrorCategory.USER,\n details: {\n importFile: importer,\n packageName,\n },\n text: `We found a possible binary dependency in your bundle. ${id} was not found when imported at ${importer}.\n\nPlease consider adding \\`${packageName}\\` to your externals, or updating this import to not end with \".node\".\n\nexport const mastra = new Mastra({\n bundler: {\n externals: [\"${packageName}\"],\n }\n})`,\n });\n },\n },\n } satisfies Plugin,\n ].filter(Boolean);\n}\n\n/**\n * Executes the Rollup build process for virtual dependencies using configured plugins.\n * Bundles all virtual dependency modules into optimized ESM files with proper external handling.\n */\nasync function buildExternalDependencies(\n virtualDependencies: Map<string, VirtualDependency>,\n {\n externals,\n packagesToTranspile,\n workspaceMap,\n rootDir,\n outputDir,\n bundlerOptions,\n platform,\n }: {\n externals: string[];\n packagesToTranspile: Set<string>;\n workspaceMap: Map<string, WorkspacePackageInfo>;\n rootDir: string;\n outputDir: string;\n bundlerOptions: {\n isDev: boolean;\n externalsPreset: boolean;\n };\n platform: BundlerPlatform;\n },\n) {\n /**\n * If there are no virtual dependencies to bundle, return an empty array to avoid Rollup errors.\n */\n if (virtualDependencies.size === 0) {\n return [] as unknown as [OutputChunk, ...(OutputAsset | OutputChunk)[]];\n }\n\n const noBundling = bundlerOptions.isDev || bundlerOptions.externalsPreset;\n\n const plugins = await getInputPlugins(virtualDependencies, {\n transpilePackages: packagesToTranspile,\n workspaceMap,\n bundlerOptions: {\n noBundling,\n },\n rootDir,\n externals,\n platform,\n });\n\n const bundler = await rollup({\n logLevel: process.env.MASTRA_BUNDLER_DEBUG === 'true' ? 'debug' : 'silent',\n input: Array.from(virtualDependencies.entries()).reduce(\n (acc, [dep, virtualDep]) => {\n acc[virtualDep.name] = `#virtual-${dep}`;\n return acc;\n },\n {} as Record<string, string>,\n ),\n external: externals,\n treeshake: noBundling ? false : 'safest',\n plugins,\n });\n\n const outputDirRelative = prepareEntryFileName(outputDir, rootDir);\n\n const { output } = await bundler.write({\n format: 'esm',\n dir: rootDir,\n entryFileNames: '[name].mjs',\n // used to get the filename of the actual error\n sourcemap: true,\n /**\n * Rollup creates chunks for common dependencies, but these chunks are by default written to the root directory instead of respecting the entryFileNames structure.\n * So we want to write them to the `.mastra/output` folder as well.\n */\n chunkFileNames: chunkInfo => {\n /**\n * This whole bunch of logic directly below is for the edge case shown in the e2e-tests/monorepo with \"tinyrainbow\" package. It's used in multiple places in the package and as such Rollup creates a shared chunk for it. During 'mastra dev' / with externals: true, we don't want that chunk to show up in the '.mastra/output' folder (outputDirRelative) but inside <pkg>/node_modules/.cache instead.\n * We only care about this for the \"noBundling\" case!\n */\n if (noBundling) {\n const importedFromPackages = new Set<string>();\n\n for (const moduleId of chunkInfo.moduleIds) {\n const normalized = slash(moduleId);\n for (const [pkgName, pkgInfo] of workspaceMap.entries()) {\n const location = slash(pkgInfo.location);\n if (normalized.startsWith(location)) {\n importedFromPackages.add(pkgName);\n break;\n }\n }\n }\n\n if (importedFromPackages.size > 1) {\n throw new MastraBaseError({\n id: 'DEPLOYER_BUNDLE_EXTERNALS_SHARED_CHUNK',\n domain: ErrorDomain.DEPLOYER,\n category: ErrorCategory.USER,\n details: {\n chunkName: chunkInfo.name,\n packages: JSON.stringify(Array.from(importedFromPackages)),\n },\n text: `Please open an issue. We found a shared chunk \"${\n chunkInfo.name\n }\" used by multiple workspace packages: ${Array.from(importedFromPackages).join(', ')}.`,\n });\n }\n\n if (importedFromPackages.size === 1) {\n const [pkgName] = importedFromPackages;\n const workspaceLocation = workspaceMap.get(pkgName!)!.location;\n return prepareEntryFileName(getCompiledDepCachePath(workspaceLocation, '[name].mjs'), rootDir);\n }\n }\n\n return `${outputDirRelative}/[name].mjs`;\n },\n assetFileNames: `${outputDirRelative}/[name][extname]`,\n hoistTransitiveImports: false,\n });\n\n await bundler.close();\n\n return output;\n}\n\n/**\n * Recursively searches through Rollup output chunks to find which module imports a specific external dependency.\n * Used to build the module resolution map for proper external dependency tracking.\n */\nfunction findExternalImporter(\n module: OutputChunk,\n external: string,\n allOutputs: OutputChunk[],\n visited = new Set<string>(),\n): OutputChunk | null {\n if (visited.has(module.fileName)) {\n return null;\n }\n\n visited.add(module.fileName);\n const capturedFiles = new Set<string>();\n\n for (const id of [...module.imports, ...module.dynamicImports]) {\n if (isDependencyPartOfPackage(id, external)) {\n return module;\n } else {\n if (id.endsWith('.mjs')) {\n capturedFiles.add(id);\n }\n }\n }\n\n for (const file of capturedFiles) {\n const nextModule = allOutputs.find(o => o.fileName === file);\n if (nextModule) {\n const importer = findExternalImporter(nextModule, external, allOutputs, visited);\n\n if (importer) {\n return importer;\n }\n }\n }\n\n return null;\n}\n\n/**\n * Bundles vendor dependencies identified in the analysis step.\n * Creates virtual modules for each dependency and bundles them using rollup.\n *\n * @param depsToOptimize - Map of dependencies to optimize with their metadata (exported bindings, rootPath, isWorkspace)\n * @param outputDir - Directory where bundled files will be written\n * @param logger - Logger instance for debugging\n * @returns Object containing bundle output and reference map for validation\n */\nexport async function bundleExternals(\n depsToOptimize: Map<string, DependencyMetadata>,\n outputDir: string,\n options: {\n bundlerOptions?:\n | ({\n isDev?: boolean;\n } & Config['bundler'])\n | null;\n projectRoot?: string;\n workspaceRoot?: string;\n workspaceMap?: Map<string, WorkspacePackageInfo>;\n platform?: BundlerPlatform;\n },\n) {\n const {\n workspaceRoot = null,\n workspaceMap = new Map(),\n projectRoot = outputDir,\n bundlerOptions = {},\n platform = 'node',\n } = options;\n const { externals: customExternals = [], transpilePackages = [], isDev = false } = bundlerOptions || {};\n /**\n * A user can set `externals: true` to indicate they want to externalize all dependencies. In this case, we set `externalsPreset` to true to skip bundling any externals.\n */\n let externalsPreset = false;\n\n if (customExternals === true) {\n externalsPreset = true;\n }\n\n // If `externals` is an array (and not `true`), we proceed as normal\n const externalsList = Array.isArray(customExternals) ? customExternals : [];\n const allExternals = [...GLOBAL_EXTERNALS, ...DEPRECATED_EXTERNALS, ...externalsList];\n\n const workspacePackagesNames = Array.from(workspaceMap.keys());\n const packagesToTranspile = new Set([...transpilePackages, ...workspacePackagesNames]);\n\n /**\n * When externals: true, we need to extract non-workspace deps from depsToOptimize\n * and add them directly to usedExternals instead of bundling them.\n */\n const extractedExternals = new Map<string, string>();\n if (externalsPreset) {\n for (const [dep, metadata] of depsToOptimize.entries()) {\n if (!metadata.isWorkspace) {\n // Add to extracted externals - use rootPath or fallback to package name\n extractedExternals.set(dep, metadata.rootPath ?? dep);\n // Remove from depsToOptimize so it won't be bundled\n depsToOptimize.delete(dep);\n }\n }\n }\n\n const { optimizedDependencyEntries, fileNameToDependencyMap } = createVirtualDependencies(depsToOptimize, {\n workspaceRoot,\n outputDir,\n projectRoot,\n bundlerOptions: {\n isDev,\n externalsPreset,\n },\n });\n\n const output = await buildExternalDependencies(optimizedDependencyEntries, {\n externals: allExternals,\n packagesToTranspile,\n workspaceMap,\n rootDir: workspaceRoot || projectRoot,\n outputDir,\n bundlerOptions: {\n isDev,\n externalsPreset,\n },\n platform,\n });\n\n const moduleResolveMap = new Map<string, Map<string, string>>();\n const filteredChunks = output.filter(o => o.type === 'chunk');\n\n for (const o of filteredChunks.filter(o => o.isEntry || o.isDynamicEntry)) {\n for (const external of allExternals) {\n if (DEPS_TO_IGNORE.includes(external)) {\n continue;\n }\n\n const importer = findExternalImporter(o, external, filteredChunks);\n\n if (importer) {\n const fullPath = path.join(workspaceRoot || projectRoot, importer.fileName);\n let innerMap = moduleResolveMap.get(fullPath);\n\n if (!innerMap) {\n innerMap = new Map<string, string>();\n moduleResolveMap.set(fullPath, innerMap);\n }\n\n if (importer.moduleIds.length) {\n innerMap.set(\n external,\n importer.moduleIds[importer.moduleIds.length - 1]?.startsWith('\\x00virtual:#virtual')\n ? importer.moduleIds[importer.moduleIds.length - 2]!\n : importer.moduleIds[importer.moduleIds.length - 1]!,\n );\n }\n }\n }\n }\n\n /**\n * Convert moduleResolveMap to a plain object with prototype-less objects\n */\n const usedExternals = Object.create(null) as Record<string, Record<string, string>>;\n for (const [fullPath, innerMap] of moduleResolveMap) {\n const innerObj = Object.create(null) as Record<string, string>;\n for (const [external, value] of innerMap) {\n innerObj[external] = value;\n }\n usedExternals[fullPath] = innerObj;\n }\n\n /**\n * When externals: true, add the extracted non-workspace deps to usedExternals\n * using a synthetic entry path to track them.\n */\n if (extractedExternals.size > 0) {\n const syntheticPath = path.join(workspaceRoot || projectRoot, '__externals__');\n const externalsObj = Object.create(null) as Record<string, string>;\n for (const [dep, rootPath] of extractedExternals) {\n externalsObj[dep] = rootPath;\n }\n usedExternals[syntheticPath] = externalsObj;\n }\n\n return { output, fileNameToDependencyMap, usedExternals };\n}\n","import type { PluginObj } from '@babel/core';\nimport babel from '@babel/core';\n\nexport function checkConfigExport(result: { hasValidConfig: boolean }): PluginObj {\n const t = babel.types;\n // Track which local variable names are assigned to `new Mastra()`\n const mastraVars = new Set<string>();\n\n return {\n visitor: {\n ExportNamedDeclaration(path) {\n const decl = path.node.declaration;\n // 1) export const mastra = new Mastra(...)\n if (t.isVariableDeclaration(decl)) {\n const varDecl = decl.declarations[0];\n if (\n t.isIdentifier(varDecl?.id, { name: 'mastra' }) &&\n t.isNewExpression(varDecl.init) &&\n t.isIdentifier(varDecl.init.callee, { name: 'Mastra' })\n ) {\n result.hasValidConfig = true;\n }\n }\n /**\n * 2) export { foo as mastra }\n * 3) export { mastra }\n * 4) export { mastra, foo }\n */\n if (Array.isArray(path.node.specifiers)) {\n for (const spec of path.node.specifiers) {\n if (\n t.isExportSpecifier(spec) &&\n t.isIdentifier(spec.exported, { name: 'mastra' }) &&\n t.isIdentifier(spec.local) &&\n mastraVars.has(spec.local.name)\n ) {\n result.hasValidConfig = true;\n }\n }\n }\n },\n // For cases 2-4 we need to track whether those variables are assigned to `new Mastra()`\n VariableDeclaration(path) {\n for (const decl of path.node.declarations) {\n if (\n t.isIdentifier(decl.id) &&\n t.isNewExpression(decl.init) &&\n t.isIdentifier(decl.init.callee, { name: 'Mastra' })\n ) {\n mastraVars.add(decl.id.name);\n }\n }\n },\n },\n };\n}\n","import type { PluginObj, NodePath } from '@babel/core';\nimport { types as t } from '@babel/core';\n\n/**\n * Extract string value from a node (supports StringLiteral and TemplateLiteral without expressions)\n */\nfunction getStringValue(node: t.Node | null | undefined): string | null {\n if (!node) return null;\n\n if (t.isStringLiteral(node)) {\n return node.value;\n }\n\n // Handle template literals without expressions: `my-transport`\n if (t.isTemplateLiteral(node) && node.expressions.length === 0 && node.quasis.length === 1) {\n return node.quasis[0]?.value.cooked ?? null;\n }\n\n return null;\n}\n\n/**\n * Extract target value from an object property\n */\nfunction extractTargetFromProperty(prop: t.ObjectProperty | t.ObjectMethod | t.SpreadElement): string | null {\n if (!t.isObjectProperty(prop)) return null;\n\n const key = prop.key;\n if (t.isIdentifier(key, { name: 'target' }) || (t.isStringLiteral(key) && key.value === 'target')) {\n return getStringValue(prop.value);\n }\n\n return null;\n}\n\n/**\n * Check if a binding came from a pino import/require\n */\nfunction isBindingFromPino(path: NodePath<t.CallExpression>, identifierName: string): boolean {\n const binding = path.scope.getBinding(identifierName);\n if (!binding) {\n // No binding found - could be global `pino` (unlikely but accept literal name)\n return identifierName === 'pino';\n }\n\n const bindingPath = binding.path;\n\n // Import default: import pino from 'pino'\n if (bindingPath.isImportDefaultSpecifier()) {\n const importDecl = bindingPath.parentPath;\n if (importDecl?.isImportDeclaration()) {\n return importDecl.node.source.value === 'pino';\n }\n }\n\n // Import namespace: import * as p from 'pino'\n if (bindingPath.isImportNamespaceSpecifier()) {\n const importDecl = bindingPath.parentPath;\n if (importDecl?.isImportDeclaration()) {\n return importDecl.node.source.value === 'pino';\n }\n }\n\n // Import specifier: import { default as logger } from 'pino'\n if (bindingPath.isImportSpecifier()) {\n const importDecl = bindingPath.parentPath;\n if (importDecl?.isImportDeclaration() && importDecl.node.source.value === 'pino') {\n const imported = bindingPath.node.imported;\n if (t.isIdentifier(imported) && imported.name === 'default') return true;\n if (t.isStringLiteral(imported) && imported.value === 'default') return true;\n }\n return false;\n }\n\n // Require: const pino = require('pino')\n if (bindingPath.isVariableDeclarator()) {\n const init = bindingPath.node.init;\n if (\n t.isCallExpression(init) &&\n t.isIdentifier(init.callee, { name: 'require' }) &&\n init.arguments.length === 1 &&\n t.isStringLiteral(init.arguments[0]) &&\n init.arguments[0].value === 'pino'\n ) {\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * Check if a call expression is a pino.transport() call using scope analysis\n */\nfunction isPinoTransportCall(path: NodePath<t.CallExpression>): boolean {\n const callee = path.node.callee;\n\n // Must be member expression like `something.transport`\n if (!t.isMemberExpression(callee)) return false;\n if (!t.isIdentifier(callee.property, { name: 'transport' })) return false;\n\n // Handle `pino.transport()` or `logger.transport()` where logger is bound to pino\n if (t.isIdentifier(callee.object)) {\n return isBindingFromPino(path, callee.object.name);\n }\n\n // Handle `pino.default.transport()` pattern (namespace import interop)\n if (\n t.isMemberExpression(callee.object) &&\n t.isIdentifier(callee.object.object) &&\n t.isIdentifier(callee.object.property, { name: 'default' })\n ) {\n return isBindingFromPino(path, callee.object.object.name);\n }\n\n return false;\n}\n\n/**\n * Extract transport targets from a pino.transport() argument\n */\nfunction extractTransportsFromArg(arg: t.Node): string[] {\n const targets: string[] = [];\n\n if (!t.isObjectExpression(arg)) return targets;\n\n for (const prop of arg.properties) {\n if (!t.isObjectProperty(prop)) continue;\n\n const key = prop.key;\n const keyName = t.isIdentifier(key) ? key.name : t.isStringLiteral(key) ? key.value : null;\n\n if (keyName === 'target') {\n // Single target: { target: \"package-name\" }\n const value = getStringValue(prop.value);\n if (value) {\n targets.push(value);\n }\n } else if (keyName === 'targets') {\n // Multiple targets: { targets: [{ target: \"pkg1\" }, { target: \"pkg2\" }] }\n if (t.isArrayExpression(prop.value)) {\n for (const element of prop.value.elements) {\n if (t.isObjectExpression(element)) {\n for (const innerProp of element.properties) {\n const targetValue = extractTargetFromProperty(innerProp);\n if (targetValue) {\n targets.push(targetValue);\n }\n }\n }\n }\n }\n }\n }\n\n return targets;\n}\n\n/**\n * Babel plugin to detect pino transport targets in code.\n * Matches patterns like:\n * - pino.transport({ target: \"package-name\" })\n * - pino.transport({ targets: [{ target: \"package-name\" }] })\n * - variable.transport({ target: \"...\" }) where variable is assigned from pino import\n *\n * @param transports - Set to collect detected transport package names\n * @returns Babel plugin object\n */\nexport function detectPinoTransports(transports: Set<string>): PluginObj {\n return {\n name: 'detect-pino-transports',\n visitor: {\n CallExpression(path) {\n if (!isPinoTransportCall(path)) return;\n\n // Process first argument which should be the transport config object\n const firstArg = path.node.arguments[0];\n if (firstArg && !t.isSpreadElement(firstArg)) {\n for (const target of extractTransportsFromArg(firstArg)) {\n transports.add(target);\n }\n }\n },\n },\n };\n}\n","import { existsSync } from 'node:fs';\nimport { readFile, writeFile } from 'node:fs/promises';\nimport { basename, isAbsolute, join, relative } from 'node:path';\nimport * as babel from '@babel/core';\nimport { ErrorCategory, ErrorDomain, MastraError } from '@mastra/core/error';\nimport type { IMastraLogger } from '@mastra/core/logger';\nimport type { OutputAsset, OutputChunk } from 'rollup';\nimport * as stackTraceParser from 'stacktrace-parser';\nimport { getWorkspaceInformation } from '../bundler/workspaceDependencies';\nimport type { WorkspacePackageInfo } from '../bundler/workspaceDependencies';\nimport { validate, ValidationError } from '../validator/validate';\nimport { analyzeEntry } from './analyze/analyzeEntry';\nimport { bundleExternals } from './analyze/bundleExternals';\nimport { DEPS_TO_IGNORE, GLOBAL_EXTERNALS } from './analyze/constants';\nimport { checkConfigExport } from './babel/check-config-export';\nimport { detectPinoTransports } from './babel/detect-pino-transports';\nimport { getPackageMetadata } from './package-info';\nimport type { BundlerOptions, DependencyMetadata, ExternalDependencyInfo } from './types';\nimport {\n getPackageName,\n isBareModuleSpecifier,\n isBuiltinModule,\n isDependencyPartOfPackage,\n isExternalProtocolImport,\n slash,\n} from './utils';\nimport type { BundlerPlatform } from './utils';\n\ntype ErrorId =\n | 'DEPLOYER_ANALYZE_MODULE_NOT_FOUND'\n | 'DEPLOYER_ANALYZE_MISSING_NATIVE_BUILD'\n | 'DEPLOYER_ANALYZE_TYPE_ERROR';\n\nfunction preferDependencyInfo(\n existing: ExternalDependencyInfo | undefined,\n incoming: ExternalDependencyInfo,\n): ExternalDependencyInfo {\n return {\n version: incoming.version ?? existing?.version,\n packageSpec: incoming.packageSpec ?? existing?.packageSpec,\n };\n}\n\nasync function resolveDependencyInfo(\n dep: string,\n existing: ExternalDependencyInfo | undefined,\n parentPaths: string[],\n): Promise<ExternalDependencyInfo> {\n if (existing?.version || existing?.packageSpec) {\n return existing;\n }\n\n const packageName = getPackageName(dep);\n const packageNames = [...new Set([dep, packageName].filter(Boolean) as string[])];\n\n for (const parentPath of parentPaths) {\n for (const name of packageNames) {\n const metadata = await getPackageMetadata(name, parentPath);\n if (metadata.version || metadata.packageSpec) {\n return preferDependencyInfo(existing, metadata);\n }\n }\n }\n\n for (const name of packageNames) {\n const metadata = await getPackageMetadata(name);\n if (metadata.version || metadata.packageSpec) {\n return preferDependencyInfo(existing, metadata);\n }\n }\n\n return existing ?? {};\n}\n\nfunction importerParentPaths(importerId: string | undefined, base: string[]): string[] {\n if (!importerId || importerId.startsWith('\\x00') || !isAbsolute(importerId)) {\n return base;\n }\n\n return [...new Set([importerId, ...base])];\n}\n\nfunction getLastConcreteModuleId(moduleIds: string[]): string | undefined {\n return moduleIds.findLast(id => !id.startsWith('\\x00') && isAbsolute(id));\n}\n\nfunction throwExternalDependencyError({\n errorId,\n moduleName,\n packageName,\n messagePrefix,\n}: {\n errorId: ErrorId;\n moduleName: string;\n packageName: string;\n messagePrefix: string;\n}): never {\n throw new MastraError({\n id: errorId,\n domain: ErrorDomain.DEPLOYER,\n category: ErrorCategory.USER,\n details: {\n importFile: moduleName,\n packageName: packageName,\n },\n text: `${messagePrefix} \\`${packageName}\\` to your externals.\n\nexport const mastra = new Mastra({\n bundler: {\n externals: [\"${packageName}\"],\n }\n})`,\n });\n}\n\nfunction getPackageNameFromBundledModuleName(moduleName: string) {\n // New encoding uses __ to separate path segments (e.g., @inner__inner-tools -> @inner/inner-tools)\n if (moduleName.includes('__')) {\n return moduleName.replaceAll('__', '/');\n }\n\n // Legacy fallback for old format using - as separator\n const chunks = moduleName.split('-');\n\n if (!chunks.length) {\n return moduleName;\n }\n\n if (chunks[0]?.startsWith('@')) {\n return chunks.slice(0, 2).join('/');\n }\n\n return chunks[0];\n}\n\nfunction validateError(\n err: ValidationError | Error,\n file: OutputChunk,\n {\n binaryMapData,\n workspaceMap,\n }: {\n binaryMapData: Record<string, string[]>;\n logger: IMastraLogger;\n workspaceMap: Map<string, WorkspacePackageInfo>;\n },\n) {\n let moduleName: string | undefined | null = null;\n let errorConfig: {\n id: ErrorId;\n messagePrefix: string;\n } | null = null;\n\n if (err instanceof ValidationError) {\n const parsedStack = stackTraceParser.parse(err.stack);\n if (err.type === 'TypeError') {\n const pkgNameRegex = /.*node_modules\\/([^\\/]+)\\//;\n const stacktraceFrame = parsedStack.find(frame => frame.file && pkgNameRegex.test(frame.file));\n if (stacktraceFrame) {\n const match = stacktraceFrame.file!.match(pkgNameRegex);\n moduleName = match?.[1] ?? getPackageNameFromBundledModuleName(basename(file.name));\n } else {\n moduleName = getPackageNameFromBundledModuleName(basename(file.name));\n }\n\n errorConfig = {\n id: 'DEPLOYER_ANALYZE_TYPE_ERROR',\n messagePrefix: `Mastra wasn't able to bundle \"${moduleName}\", might be an older commonJS module. Please add`,\n };\n } else if (err.stack?.includes?.('[ERR_MODULE_NOT_FOUND]')) {\n moduleName = err.message.match(/Cannot find package '([^']+)'/)?.[1];\n\n const parentModuleName = getPackageNameFromBundledModuleName(basename(file.name));\n\n errorConfig = {\n id: 'DEPLOYER_ANALYZE_MODULE_NOT_FOUND',\n messagePrefix: `Mastra wasn't able to build your project, We couldn't load \"${moduleName}\" from \"${parentModuleName}\". Make sure \"${moduleName}\" is installed or add`,\n };\n\n // if they are the same, the feedback we give to our user is not really useful and probably something else went wrong\n if (moduleName === parentModuleName) {\n return;\n }\n }\n }\n\n if (err.message.includes('No native build was found')) {\n const pkgName = getPackageNameFromBundledModuleName(basename(file.name));\n moduleName = binaryMapData[file.fileName]?.[0] ?? pkgName;\n errorConfig = {\n id: 'DEPLOYER_ANALYZE_MISSING_NATIVE_BUILD',\n messagePrefix: 'We found a binary dependency in your bundle but we cannot bundle it yet. Please add',\n };\n }\n\n if (moduleName && workspaceMap.has(moduleName)) {\n throw new MastraError({\n id: 'DEPLOYER_ANALYZE_ERROR_IN_WORKSPACE',\n domain: ErrorDomain.DEPLOYER,\n category: ErrorCategory.USER,\n details: {\n // importFile: moduleName,\n packageName: moduleName,\n },\n text: `We found an error in the ${moduleName} workspace package. Please find the offending package and fix the error.\n Error: ${err.stack}`,\n });\n }\n\n if (errorConfig && moduleName) {\n throwExternalDependencyError({\n errorId: errorConfig.id,\n moduleName: moduleName!,\n packageName: moduleName!,\n messagePrefix: errorConfig.messagePrefix,\n });\n }\n}\n\nasync function validateFile(\n root: string,\n file: OutputChunk,\n {\n binaryMapData,\n moduleResolveMapLocation,\n logger,\n workspaceMap,\n stubbedExternals,\n }: {\n binaryMapData: Record<string, string[]>;\n moduleResolveMapLocation: string;\n logger: IMastraLogger;\n workspaceMap: Map<string, WorkspacePackageInfo>;\n stubbedExternals: string[];\n },\n) {\n try {\n if (!file.isDynamicEntry && file.isEntry) {\n // validate if the chunk is actually valid, a failsafe to make sure bundling didn't make any mistakes\n await validate(join(root, file.fileName), {\n moduleResolveMapLocation,\n injectESMShim: false,\n stubbedExternals,\n });\n }\n } catch (err) {\n let errorToHandle = err;\n if (\n err instanceof ValidationError &&\n err.type === 'ReferenceError' &&\n (err.message.startsWith('__dirname') || err.message.startsWith('__filename'))\n ) {\n try {\n await validate(join(root, file.fileName), {\n moduleResolveMapLocation,\n injectESMShim: true,\n stubbedExternals,\n });\n errorToHandle = null;\n } catch (err) {\n errorToHandle = err;\n }\n }\n\n if (errorToHandle instanceof Error) {\n validateError(errorToHandle, file, { binaryMapData, logger, workspaceMap });\n }\n }\n}\n\n/**\n * Validates the bundled output by attempting to import each generated module.\n * Tracks external dependencies that couldn't be bundled.\n *\n * @param output - Bundle output from rollup\n * @param reverseVirtualReferenceMap - Map to resolve virtual module names back to original deps\n * @param outputDir - Directory containing the bundled files\n * @param logger - Logger instance for debugging\n * @param workspaceMap - Map of workspace packages that gets directly passed through for later consumption\n * @returns Analysis result containing dependency mappings\n */\nasync function validateOutput(\n {\n output,\n reverseVirtualReferenceMap,\n usedExternals,\n outputDir,\n projectRoot,\n workspaceMap,\n depsVersionInfo,\n }: {\n output: (OutputChunk | OutputAsset)[];\n reverseVirtualReferenceMap: Map<string, string>;\n usedExternals: Record<string, Record<string, string>>;\n outputDir: string;\n projectRoot: string;\n workspaceMap: Map<string, WorkspacePackageInfo>;\n depsVersionInfo: Map<string, ExternalDependencyInfo>;\n },\n logger: IMastraLogger,\n) {\n const result = {\n dependencies: new Map<string, string>(),\n externalDependencies: new Map<string, ExternalDependencyInfo>(),\n workspaceMap,\n };\n\n const externalMetadataParentPaths = [\n projectRoot,\n ...Array.from(workspaceMap.values()).map(pkgInfo => pkgInfo.location),\n ];\n\n // store resolve map for validation\n // we should resolve the version of the deps\n for (const deps of Object.values(usedExternals)) {\n for (const [dep, importerId] of Object.entries(deps)) {\n if (isExternalProtocolImport(dep)) {\n continue;\n }\n\n const pkgName = getPackageName(dep);\n if (pkgName) {\n // Use version info from analysis if available, then resolve from the module that imported the external.\n const versionInfo = depsVersionInfo.get(dep) || depsVersionInfo.get(pkgName);\n const dependencyInfo = await resolveDependencyInfo(\n dep,\n versionInfo,\n importerParentPaths(importerId, externalMetadataParentPaths),\n );\n result.externalDependencies.set(\n pkgName,\n preferDependencyInfo(result.externalDependencies.get(pkgName), dependencyInfo),\n );\n }\n }\n }\n let binaryMapData: Record<string, string[]> = {};\n\n if (existsSync(join(outputDir, 'binary-map.json'))) {\n const binaryMap = await readFile(join(outputDir, 'binary-map.json'), 'utf-8');\n binaryMapData = JSON.parse(binaryMap);\n }\n\n for (const file of output) {\n if (file.type === 'asset') {\n continue;\n }\n\n logger.debug('Validating module', { fileName: file.fileName });\n if (file.isEntry && reverseVirtualReferenceMap.has(file.name)) {\n result.dependencies.set(reverseVirtualReferenceMap.get(file.name)!, file.fileName);\n }\n\n // validate if the chunk is actually valid, a failsafe to make sure bundling didn't make any mistakes\n await validateFile(projectRoot, file, {\n binaryMapData,\n moduleResolveMapLocation: join(outputDir, 'module-resolve-map.json'),\n logger,\n workspaceMap,\n stubbedExternals: [...GLOBAL_EXTERNALS, ...DEPS_TO_IGNORE],\n });\n }\n\n return result;\n}\n\n/**\n * Main bundle analysis function that orchestrates the three-step process:\n * 1. Analyze dependencies\n * 2. Bundle dependencies modules\n * 3. Validate generated bundles\n *\n * This helps identify which dependencies need to be externalized vs bundled.\n */\nexport async function analyzeBundle(\n entries: string[],\n mastraEntry: string,\n {\n outputDir,\n projectRoot,\n platform,\n isDev = false,\n bundlerOptions,\n }: {\n outputDir: string;\n projectRoot: string;\n platform: BundlerPlatform;\n isDev?: boolean;\n bundlerOptions?: Pick<BundlerOptions, 'externals' | 'enableSourcemap' | 'dynamicPackages'> | null;\n },\n logger: IMastraLogger,\n) {\n const mastraConfig = await readFile(mastraEntry, 'utf-8');\n const mastraConfigResult = {\n hasValidConfig: false,\n } as const;\n\n await babel.transformAsync(mastraConfig, {\n filename: mastraEntry,\n presets: [import.meta.resolve('@babel/preset-typescript')],\n plugins: [checkConfigExport(mastraConfigResult)],\n });\n\n if (!mastraConfigResult.hasValidConfig) {\n logger.warn('Invalid Mastra config', {\n details:\n 'Please make sure that your entry file looks like this:\\nexport const mastra = new Mastra({\\n // your options\\n})\\n\\nIf you think your configuration is valid, please open an issue.',\n });\n }\n\n const { workspaceMap, workspaceRoot } = await getWorkspaceInformation({ mastraEntryFile: mastraEntry });\n\n let externalsPreset = false;\n\n const userExternals = Array.isArray(bundlerOptions?.externals) ? bundlerOptions?.externals : [];\n const userDynamicPackages = bundlerOptions?.dynamicPackages ?? [];\n if (bundlerOptions?.externals === true) {\n externalsPreset = true;\n }\n\n let index = 0;\n const depsToOptimize = new Map<string, DependencyMetadata>();\n const allExternals: string[] = [...GLOBAL_EXTERNALS, ...userExternals].filter(Boolean) as string[];\n\n // Collect pino transports detected across all entries\n const detectedPinoTransports = new Set<string>();\n\n logger.info('Analyzing dependencies...');\n\n // Track external dependencies with their version info\n const allUsedExternals = new Map<string, ExternalDependencyInfo>();\n // Shared cache prevents re-analyzing the same workspace package across entries and recursive calls.\n const analyzeCache = new Map<string, Awaited<ReturnType<typeof analyzeEntry>>>();\n for (const entry of entries) {\n const isVirtualFile = entry.includes('\\n') || !existsSync(entry);\n const analyzeResult = await analyzeEntry({ entry, isVirtualFile }, mastraEntry, {\n logger,\n sourcemapEnabled: bundlerOptions?.enableSourcemap ?? false,\n workspaceMap,\n projectRoot,\n shouldCheckTransitiveDependencies: true,\n analyzeCache,\n });\n\n // Detect pino transports in the bundled output\n babel.transformSync(analyzeResult.output.code, {\n filename: 'pino-detection.js',\n plugins: [detectPinoTransports(detectedPinoTransports)],\n configFile: false,\n babelrc: false,\n code: false,\n });\n\n // Write the entry file to the output dir so that we can use it for workspace resolution stuff\n await writeFile(join(outputDir, `entry-${index++}.mjs`), analyzeResult.output.code);\n\n // Merge dependencies from each entry (main, tools, etc.)\n for (const [dep, metadata] of analyzeResult.dependencies.entries()) {\n const isPartOfExternals = allExternals.some(external => isDependencyPartOfPackage(dep, external));\n if (isPartOfExternals || (externalsPreset && !metadata.isWorkspace)) {\n // Add all packages coming from src/mastra with their version info\n const pkgName = getPackageName(dep);\n if (pkgName) {\n allUsedExternals.set(pkgName, preferDependencyInfo(allUsedExternals.get(pkgName), metadata));\n }\n continue;\n }\n\n if (depsToOptimize.has(dep)) {\n // Merge with existing exports if dependency already exists\n const existingEntry = depsToOptimize.get(dep)!;\n depsToOptimize.set(dep, {\n ...existingEntry,\n version: metadata.version ?? existingEntry.version,\n packageSpec: metadata.packageSpec ?? existingEntry.packageSpec,\n exports: [...new Set([...existingEntry.exports, ...metadata.exports])],\n });\n } else {\n depsToOptimize.set(dep, metadata);\n }\n }\n }\n\n // Build a map of dependency versions from the full analysis result before dev/externalsPreset pruning.\n // Non-workspace deps are removed from optimization below, but their resolved version/packageSpec metadata\n // is still needed when they become externals.\n const depsVersionInfo = new Map<string, ExternalDependencyInfo>();\n for (const [dep, metadata] of depsToOptimize.entries()) {\n const pkgName = getPackageName(dep);\n if (pkgName && (metadata.version || metadata.packageSpec)) {\n depsVersionInfo.set(pkgName, preferDependencyInfo(depsVersionInfo.get(pkgName), metadata));\n }\n // Also store by full import path for subpath imports\n if (metadata.version || metadata.packageSpec) {\n depsVersionInfo.set(dep, preferDependencyInfo(depsVersionInfo.get(dep), metadata));\n }\n }\n\n /**\n * Only during `mastra dev` we want to optimize workspace packages. In previous steps we might have added dependencies that are not workspace packages, so we gotta remove them again.\n */\n if (isDev || externalsPreset) {\n for (const [dep, metadata] of depsToOptimize.entries()) {\n if (!metadata.isWorkspace) {\n depsToOptimize.delete(dep);\n }\n }\n }\n\n const sortedDeps = Array.from(depsToOptimize.keys()).sort();\n logger.info('Optimizing dependencies...');\n logger.debug('Sorted dependencies', { deps: sortedDeps });\n\n const { output, fileNameToDependencyMap, usedExternals } = await bundleExternals(depsToOptimize, outputDir, {\n bundlerOptions: {\n ...bundlerOptions,\n externals: bundlerOptions?.externals ?? allExternals,\n isDev,\n },\n projectRoot,\n workspaceRoot,\n workspaceMap,\n platform,\n });\n\n // Filesystem-relative workspace paths for filtering workspace imports from rollup output.\n // Normalize to forward slashes so the startsWith check works on Windows where\n // path.relative() produces backslashes but rollup uses forward slashes.\n const relativeWorkspaceFolderPaths = Array.from(workspaceMap.values()).map(pkgInfo =>\n slash(relative(workspaceRoot || projectRoot, pkgInfo.location)),\n );\n\n for (const o of output) {\n if (o.type === 'asset') {\n continue;\n }\n\n const importerId = getLastConcreteModuleId(o.moduleIds);\n\n for (const i of o.imports) {\n if (isBuiltinModule(i)) {\n continue;\n }\n\n // Skip relative imports - they're local chunks, not external packages\n if (i.startsWith('.') || i.startsWith('/')) {\n continue;\n }\n\n if (!isBareModuleSpecifier(i) || isExternalProtocolImport(i)) {\n continue;\n }\n\n // Do not include workspace packages\n if (relativeWorkspaceFolderPaths.some(workspacePath => i.startsWith(workspacePath))) {\n continue;\n }\n\n const pkgName = getPackageName(i);\n\n if (pkgName && workspaceMap.has(pkgName)) {\n continue;\n }\n\n if (pkgName) {\n // Try to get version info from our tracked dependencies, then resolve from the chunk's source module.\n const versionInfo = depsVersionInfo.get(i) || depsVersionInfo.get(pkgName);\n const dependencyInfo = await resolveDependencyInfo(\n i,\n versionInfo,\n importerParentPaths(importerId, [\n projectRoot,\n ...Array.from(workspaceMap.values()).map(pkgInfo => pkgInfo.location),\n ]),\n );\n allUsedExternals.set(pkgName, preferDependencyInfo(allUsedExternals.get(pkgName), dependencyInfo));\n }\n }\n }\n\n const result = await validateOutput(\n {\n output,\n reverseVirtualReferenceMap: fileNameToDependencyMap,\n usedExternals,\n outputDir,\n projectRoot: workspaceRoot || projectRoot,\n workspaceMap,\n depsVersionInfo,\n },\n logger,\n );\n\n /**\n * Build the final set of external dependencies from four sources:\n * 1. result.externalDependencies - externals discovered during bundle validation\n * 2. allUsedExternals - packages detected via static analysis that matched the externals config\n * 3. detectedPinoTransports - pino transports detected by the plugin during bundling\n * 4. userDynamicPackages - user-specified packages loaded dynamically at runtime\n *\n * Prefer entries with version info over entries without\n */\n const mergedExternalDeps = new Map<string, ExternalDependencyInfo>(result.externalDependencies);\n for (const [dep, info] of allUsedExternals) {\n if (isExternalProtocolImport(dep)) {\n continue;\n }\n\n mergedExternalDeps.set(dep, preferDependencyInfo(mergedExternalDeps.get(dep), info));\n }\n\n const externalMetadataParentPaths = [\n projectRoot,\n ...Array.from(workspaceMap.values()).map(pkgInfo => pkgInfo.location),\n // Last resort: resolve from the deployer's own installed location. Some externals are\n // discovered inside externalized packages (e.g. optional dynamic imports like\n // `import('typescript')` in @mastra/core) without being installed in the user's project.\n import.meta.dirname,\n ];\n\n // Retry externals that were discovered without install metadata (e.g. from entry analysis\n // where the package isn't resolvable from the entry's own location).\n for (const [dep, info] of mergedExternalDeps) {\n if (!info.version && !info.packageSpec) {\n mergedExternalDeps.set(dep, await resolveDependencyInfo(dep, info, externalMetadataParentPaths));\n }\n }\n\n // Add pino transports and user dynamic packages\n for (const transport of detectedPinoTransports) {\n if (!mergedExternalDeps.has(transport)) {\n mergedExternalDeps.set(transport, await resolveDependencyInfo(transport, undefined, externalMetadataParentPaths));\n }\n }\n for (const pkg of userDynamicPackages) {\n if (!mergedExternalDeps.has(pkg)) {\n mergedExternalDeps.set(pkg, await resolveDependencyInfo(pkg, undefined, externalMetadataParentPaths));\n }\n }\n\n return {\n ...result,\n externalDependencies: mergedExternalDeps,\n };\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/build/plugins/esbuild.ts","../src/build/plugins/esm-shim.ts","../src/build/plugins/local-storage-detector.ts","../src/build/package-info.ts","../src/build/plugins/node-modules-extension-resolver.ts","../src/build/plugins/protocol-external-resolver.ts","../src/build/babel/remove-deployer.ts","../src/build/plugins/remove-deployer.ts","../src/build/plugins/subpath-externals-resolver.ts","../src/build/plugins/tsconfig-paths.ts","../src/build/bundler.ts"],"names":["originalEsbuild","originalEsmShim","fileURLToPath","statSync","dirname","pathToFileURL","getPackageInfo","readJSON","getPackageName","readFile","join","nodeResolve","isBareModuleSpecifier","isExternalProtocolImport","isAbsolute","babel","path","removeDeployer","babel2","isDependencyPartOfPackage","fs","stripJsonComments","tsConfigPath","createHandler","normalize","resolved","slash","alias","getNodeResolveOptions","optimizeLodashImports","commonjs","json","rollup"],"mappings":"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","file":"chunk-X2ZJLEWO.cjs","sourcesContent":["import originalEsbuild from 'rollup-plugin-esbuild';\n\nexport function esbuild(options: Parameters<typeof originalEsbuild>[0] = {}) {\n return originalEsbuild({\n target: 'node20',\n platform: 'node',\n minify: false,\n ...options,\n });\n}\n","import originalEsmShim from '@rollup/plugin-esm-shim';\nimport type { Plugin } from 'rollup';\n\n// Regex to detect DECLARATIONS of __filename, __dirname\n// Using non-capturing group (?:) for slightly better performance\nconst FilenameDeclarationRegex = /(?:const|let|var)\\s+__filename/;\nconst DirnameDeclarationRegex = /(?:const|let|var)\\s+__dirname/;\n\n/**\n * Custom ESM shim plugin wrapper that respects user-declared __filename/__dirname variables.\n *\n * The original @rollup/plugin-esm-shim would inject shims even when users had already declared\n * their own __filename/__dirname, causing \"Identifier '__filename' has already been declared\" errors.\n *\n * This wrapper checks if the user has already declared these variables and skips the shim injection\n * if so. If either variable is declared, we skip the shim entirely since the original plugin injects\n * both together and we assume users who declare one will also handle the other if needed.\n */\nexport function esmShim(): Plugin {\n const original = originalEsmShim();\n\n return {\n name: 'esm-shim',\n renderChunk(code, chunk, opts, meta) {\n // Fast path: use includes() first to avoid regex if identifiers aren't present\n const hasFilename = code.includes('__filename');\n const hasDirname = code.includes('__dirname');\n\n // If user declared either __filename or __dirname, skip shim injection entirely\n // since the original plugin injects both together\n const userDeclaredFilename = hasFilename && FilenameDeclarationRegex.test(code);\n const userDeclaredDirname = hasDirname && DirnameDeclarationRegex.test(code);\n\n if (userDeclaredFilename || userDeclaredDirname) {\n return null;\n }\n\n // Otherwise, delegate to the original plugin\n if (typeof original.renderChunk === 'function') {\n return original.renderChunk.call(this, code, chunk, opts, meta);\n }\n\n return null;\n },\n };\n}\n\nexport default esmShim;\n","import type { Plugin } from 'rollup';\n\n/**\n * Connection-string-shaped patterns that resolve to the build host and will\n * never work inside the deploy container.\n */\nconst LOCAL_HOST_PATTERNS: Array<{ pattern: RegExp; hint: string }> = [\n {\n pattern: /\\bfile:\\.{1,2}\\/[^\\s'\"`]+\\.(?:db|sqlite)\\b/gi,\n hint: 'LibSQL/SQLite file path relative to the build host',\n },\n {\n pattern: /\\b(?:postgres(?:ql)?|mysql|mongodb|redis|libsql):\\/\\/[^/\\s'\"`]*localhost\\b/gi,\n hint: 'localhost in a connection string',\n },\n {\n pattern: /\\b(?:postgres(?:ql)?|mysql|mongodb|redis|libsql):\\/\\/[^/\\s'\"`]*127\\.0\\.0\\.1\\b/g,\n hint: '127.0.0.1 in a connection string',\n },\n];\n\nexport interface LocalStorageDetection {\n value: string;\n hint: string;\n module: string;\n /**\n * Name of the env var that guards this literal at runtime, when the\n * literal is the fallback arm of a `process.env.X || literal` (or `??`)\n * expression. The CLI preflight uses this to suppress or soften the\n * error when the guarding var is present in the deploy env.\n */\n guardedBy?: string;\n}\n\n/**\n * Unified preflight metadata emitted as `preflight-metadata.json`.\n * Superset of the legacy `preflight-local-paths.json` (which stays emitted\n * for one release so older CLIs keep working with newer deployers).\n */\nexport interface PreflightMetadata {\n version: 1;\n localPaths: LocalStorageDetection[];\n userEnvRefs: string[];\n}\n\n/**\n * Everything under `.mastra/.build/` is deployer-generated pre-bundled\n * dependency code (`@mastra__*.mjs` shims and their shared `chunk-*.mjs`\n * files), never user-authored. These preserve JSDoc examples from the\n * original library source (e.g. `LibSQLStore({ url: 'file:./data.db' })`)\n * which would otherwise trip the host-local detector, and their env var\n * reads are library refs that must not count as user references.\n */\nconst MASTRA_BUILD_DIR = /[\\\\/]\\.mastra[\\\\/]\\.build[\\\\/]/;\n\nconst PROCESS_ENV_DOT = /\\bprocess\\.env\\.([A-Z_][A-Z0-9_]*)\\b/g;\nconst PROCESS_ENV_BRACKET = /\\bprocess\\.env\\[['\"]([A-Z_][A-Z0-9_]*)['\"]\\]/g;\n\n/** Names of the metadata assets emitted into the output dir. */\n// TODO(preflight-metadata): stop emitting the legacy file in the next minor\n// after @mastra/deployer 1.50 — every CLI released alongside 1.50+ reads\n// preflight-metadata.json. Also remove the legacy fallback in the CLI's\n// deploy-preflight.ts at the same time.\nconst LEGACY_LOCAL_PATHS_FILE = 'preflight-local-paths.json';\nconst PREFLIGHT_METADATA_FILE = 'preflight-metadata.json';\n\ninterface ModuleMatch {\n value: string;\n hint: string;\n guardedBy?: string;\n}\n\nfunction collectEnvRefs(code: string): Set<string> {\n const refs = new Set<string>();\n for (const m of code.matchAll(PROCESS_ENV_DOT)) refs.add(m[1]!);\n for (const m of code.matchAll(PROCESS_ENV_BRACKET)) refs.add(m[1]!);\n return refs;\n}\n\n/* ------------------------------------------------------------------ */\n/* AST guard analysis */\n/* ------------------------------------------------------------------ */\n\ninterface AstNode {\n type: string;\n [key: string]: unknown;\n}\n\nfunction isAstNode(v: unknown): v is AstNode {\n return typeof v === 'object' && v !== null && typeof (v as AstNode).type === 'string';\n}\n\nfunction walkAst(node: AstNode, visit: (node: AstNode) => void): void {\n visit(node);\n for (const value of Object.values(node)) {\n if (Array.isArray(value)) {\n for (const item of value) {\n if (isAstNode(item)) walkAst(item, visit);\n }\n } else if (isAstNode(value)) {\n walkAst(value, visit);\n }\n }\n}\n\n/** Find the first `process.env.X` / `process.env['X']` read inside an expression. */\nfunction findFirstEnvRef(node: AstNode): string | undefined {\n let found: string | undefined;\n walkAst(node, n => {\n if (found !== undefined) return;\n if (n.type !== 'MemberExpression') return;\n const object = n.object as AstNode | undefined;\n if (\n !object ||\n object.type !== 'MemberExpression' ||\n (object.object as AstNode | undefined)?.type !== 'Identifier' ||\n ((object.object as AstNode).name as string) !== 'process' ||\n (object.property as AstNode | undefined)?.type !== 'Identifier' ||\n ((object.property as AstNode).name as string) !== 'env'\n ) {\n return;\n }\n const property = n.property as AstNode | undefined;\n if (property?.type === 'Identifier' && !n.computed) {\n found = property.name as string;\n } else if (property?.type === 'Literal' && typeof property.value === 'string') {\n found = property.value;\n }\n });\n return found;\n}\n\n/**\n * Parse a module and figure out, for each detected local-path value, whether\n * every string literal containing it is the fallback arm of a\n * `process.env.X || <literal>` / `??` expression. Returns a map from\n * detected value to guarding env var name. Values with any unguarded\n * occurrence (or inconsistent guards) are absent — the CLI then errors as\n * before, which is the safe default.\n */\nfunction findGuardedValues(ast: AstNode, values: Set<string>): Map<string, string> {\n const stringLiterals: AstNode[] = [];\n const guardedLiterals = new Map<AstNode, string>();\n\n walkAst(ast, node => {\n if (node.type === 'Literal' && typeof node.value === 'string') {\n stringLiterals.push(node);\n return;\n }\n if (node.type === 'LogicalExpression' && (node.operator === '||' || node.operator === '??')) {\n const right = node.right as AstNode | undefined;\n if (right?.type === 'Literal' && typeof right.value === 'string') {\n const envName = findFirstEnvRef(node.left as AstNode);\n if (envName) guardedLiterals.set(right, envName);\n }\n }\n });\n\n const result = new Map<string, string>();\n for (const value of values) {\n const containing = stringLiterals.filter(lit => (lit.value as string).includes(value));\n if (containing.length === 0) continue;\n const guards = containing.map(lit => guardedLiterals.get(lit));\n const first = guards[0];\n if (first !== undefined && guards.every(g => g === first)) {\n result.set(value, first);\n }\n }\n return result;\n}\n\n/**\n * Rollup plugin that detects host-local storage URLs (e.g. `file:./mastra.db`,\n * `postgres://localhost`) in **user source modules** during bundling, and\n * collects the env vars user code reads via `process.env.X`.\n *\n * Only modules outside `node_modules` (and the deployer's own\n * `.mastra/.build/` pre-bundled files) are inspected, so library code\n * (like Agent Builder prompt templates or JSDoc examples in `@mastra/core`)\n * is naturally excluded. When `rootDir` is given, modules outside it are\n * also excluded — symlinked dependencies (pnpm `link:`/`file:`) resolve to\n * real paths that never contain `node_modules`. Tree-shaken modules are\n * excluded via\n * `generateBundle` — only modules that actually contribute rendered code to\n * the output are reported.\n *\n * When a detected literal is the fallback arm of a `process.env.X || literal`\n * expression, `guardedBy: \"X\"` is recorded so the CLI preflight can apply\n * deploy-time env context instead of hard-erroring on a dead fallback.\n *\n * Two assets are emitted into the output directory for the CLI preflight:\n * - `preflight-metadata.json` — unified metadata (local paths + user env refs)\n * - `preflight-local-paths.json` — legacy shape, kept for one release so an\n * older globally-installed CLI paired with a newer project-local deployer\n * doesn't lose the LOCAL_STORAGE_PATH check.\n */\nexport function localStorageDetector(rootDir?: string): Plugin {\n const userModuleMatches = new Map<string, ModuleMatch[]>();\n const userModuleEnvRefs = new Map<string, Set<string>>();\n let normalizedRoot: string | undefined;\n if (rootDir) {\n let root = rootDir.replace(/\\\\/g, '/');\n while (root.endsWith('/')) root = root.slice(0, -1);\n normalizedRoot = root + '/';\n }\n\n return {\n name: 'mastra-local-storage-detector',\n\n transform(_code, id) {\n if (id.includes('node_modules')) return null;\n if (MASTRA_BUILD_DIR.test(id)) return null;\n // Modules outside the project/workspace root are dependencies resolved\n // through symlinks (pnpm `link:`, `file:`, monorepo dev setups) whose\n // real path escapes `node_modules` — library code, not user code.\n if (normalizedRoot && !id.replace(/\\\\/g, '/').startsWith(normalizedRoot)) return null;\n\n const refs = collectEnvRefs(_code);\n if (refs.size > 0) {\n userModuleEnvRefs.set(id, refs);\n }\n\n const matches: ModuleMatch[] = [];\n for (const { pattern, hint } of LOCAL_HOST_PATTERNS) {\n const re = new RegExp(pattern.source, pattern.flags.includes('g') ? pattern.flags : pattern.flags + 'g');\n for (const m of _code.matchAll(re)) {\n matches.push({ value: m[0], hint });\n }\n }\n\n if (matches.length > 0) {\n // Best-effort structural pass: a parse failure (or a non-Rollup test\n // context without `this.parse`) simply means no `guardedBy`, which\n // preserves the previous always-error behavior.\n try {\n const ast = this.parse(_code) as unknown as AstNode;\n const guarded = findGuardedValues(ast, new Set(matches.map(m => m.value)));\n for (const match of matches) {\n const guardedBy = guarded.get(match.value);\n if (guardedBy) match.guardedBy = guardedBy;\n }\n } catch {\n // ignore — fall back to unguarded detections\n }\n\n userModuleMatches.set(id, matches);\n }\n\n return null;\n },\n\n generateBundle(_, bundle) {\n const detections: LocalStorageDetection[] = [];\n const seen = new Set<string>();\n const userEnvRefs = new Set<string>();\n\n for (const chunk of Object.values(bundle)) {\n if (chunk.type !== 'chunk') continue;\n\n for (const [moduleId, moduleInfo] of Object.entries(chunk.modules)) {\n if (moduleInfo.renderedLength === 0) continue;\n\n for (const ref of userModuleEnvRefs.get(moduleId) ?? []) {\n userEnvRefs.add(ref);\n }\n\n const matches = userModuleMatches.get(moduleId);\n if (!matches) continue;\n\n for (const { value, hint, guardedBy } of matches) {\n const key = `${hint}::${value}`;\n if (seen.has(key)) continue;\n seen.add(key);\n\n detections.push({ value, hint, module: moduleId, ...(guardedBy ? { guardedBy } : {}) });\n }\n }\n }\n\n const metadata: PreflightMetadata = {\n version: 1,\n localPaths: detections,\n userEnvRefs: [...userEnvRefs].sort(),\n };\n\n this.emitFile({\n type: 'asset',\n fileName: PREFLIGHT_METADATA_FILE,\n source: JSON.stringify(metadata),\n });\n\n // Legacy asset — shape unchanged (no `guardedBy`) for older CLIs.\n this.emitFile({\n type: 'asset',\n fileName: LEGACY_LOCAL_PATHS_FILE,\n source: JSON.stringify(detections.map(({ value, hint, module }) => ({ value, hint, module }))),\n });\n },\n };\n}\n","/**\n * Note: This function depends on local-pkg and should only be used at build-time.\n * It is in a separate file to avoid including local-pkg in runtime code.\n */\n\nimport { statSync } from 'node:fs';\nimport { dirname } from 'node:path';\nimport { fileURLToPath, pathToFileURL } from 'node:url';\nimport { readJSON } from 'fs-extra/esm';\nimport { getPackageInfo } from 'local-pkg';\nimport { getPackageName } from './utils';\n\n/**\n * Normalize a resolution base path to a directory file URL.\n *\n * Callers often pass a module file path (e.g. a rollup module id like\n * `node_modules/@mastra/core/dist/chunk-XYZ.js`) as the parent path. mlly (used by local-pkg)\n * also treats each resolution base as a directory candidate (`<base>/_index.js`), which makes it\n * try to read `<file>/package.json`. That fails with ENOTDIR, which mlly does not tolerate\n * (only ENOENT) and local-pkg then logs the raw error to the console. Using the file's directory\n * as the base avoids this while resolving identically.\n */\nfunction toParentDirectoryUrl(parentPath: string): string {\n let fsPath = parentPath.startsWith('file://') ? fileURLToPath(parentPath) : parentPath;\n\n try {\n if (statSync(fsPath).isFile()) {\n fsPath = dirname(fsPath);\n }\n } catch {\n // non-existent paths are used as-is\n }\n\n return pathToFileURL(fsPath).href;\n}\n\n/**\n * Get package root path\n */\nexport async function getPackageRootPath(packageName: string, parentPath?: string): Promise<string | null> {\n let rootPath: string | null;\n\n try {\n let options: { paths?: string[] } | undefined = undefined;\n if (parentPath) {\n options = {\n paths: [toParentDirectoryUrl(parentPath)],\n };\n }\n\n const pkg = await getPackageInfo(packageName, options);\n rootPath = pkg?.rootPath ?? null;\n } catch {\n rootPath = null;\n }\n\n return rootPath;\n}\n\nasync function readPackageMetadata(\n rootPath: string,\n requestedPackageName: string | null,\n): Promise<{ rootPath: string; version?: string; packageSpec?: string }> {\n try {\n const pkgJson = await readJSON(`${rootPath}/package.json`);\n const version = pkgJson.version;\n const actualPackageName = pkgJson.name;\n const packageSpec =\n version && actualPackageName && requestedPackageName && requestedPackageName !== actualPackageName\n ? `npm:${actualPackageName}@${version}`\n : undefined;\n\n return { rootPath, version, packageSpec };\n } catch {\n return { rootPath };\n }\n}\n\nexport async function getPackageMetadata(\n packageName: string,\n parentPath?: string,\n): Promise<{ rootPath: string | null; version?: string; packageSpec?: string }> {\n const requestedPackageName = getPackageName(packageName);\n const packageNames = [...new Set([packageName, requestedPackageName].filter(Boolean) as string[])];\n let firstRootPath: string | null = null;\n\n for (const name of packageNames) {\n const rootPath = await getPackageRootPath(name, parentPath);\n firstRootPath ??= rootPath;\n if (!rootPath) {\n continue;\n }\n\n const metadata = await readPackageMetadata(rootPath, requestedPackageName ?? null);\n if (metadata.version || metadata.packageSpec) {\n return metadata;\n }\n }\n\n return { rootPath: firstRootPath };\n}\n","import { readFile } from 'node:fs/promises';\nimport { join, isAbsolute } from 'node:path';\nimport nodeResolve from '@rollup/plugin-node-resolve';\nimport type { Plugin } from 'rollup';\nimport type { PackageJson } from 'type-fest';\nimport { getPackageRootPath } from '../package-info';\nimport { getPackageName, isExternalProtocolImport, isBareModuleSpecifier } from '../utils';\n\n/**\n * Check if a package has an exports field in its package.json.\n * Results are cached to avoid repeated filesystem reads.\n */\nasync function getPackageJSON(pkgName: string, importer: string): Promise<PackageJson> {\n const pkgRoot = await getPackageRootPath(pkgName, importer);\n if (!pkgRoot) {\n throw new Error(`Package ${pkgName} not found`);\n }\n\n const pkgJSON = JSON.parse(await readFile(join(pkgRoot, 'package.json'), 'utf-8')) as PackageJson;\n return pkgJSON;\n}\n\n/**\n * Rollup plugin that resolves module extensions for external dependencies.\n *\n * This plugin handles ESM compatibility for external imports when node-resolve is not used:\n * - Packages WITH exports field (e.g., hono, date-fns): Keep imports as-is or strip redundant extensions\n * - Packages WITHOUT exports field (e.g., lodash): Add .js extension for direct file imports\n */\nexport function nodeModulesExtensionResolver(): Plugin {\n // Create a single instance of node-resolve to reuse\n const nodeResolvePlugin = nodeResolve();\n\n return {\n name: 'node-modules-extension-resolver',\n async resolveId(id, importer, options) {\n // Only bare package imports are relevant here.\n if (!importer || !isBareModuleSpecifier(id) || isExternalProtocolImport(id) || isAbsolute(id)) {\n return null;\n }\n\n // Skip direct package imports (e.g., 'lodash', '@mastra/core')\n const parts = id.split('/');\n const isScoped = id.startsWith('@');\n if ((isScoped && parts.length === 2) || (!isScoped && parts.length === 1)) {\n return null;\n }\n\n const pkgName = getPackageName(id);\n if (!pkgName) {\n return null;\n }\n\n try {\n const packageJSON = await getPackageJSON(pkgName, importer);\n // if it has exports, node should be able to rsolve it, if not the exports map is wrong.\n if (!!packageJSON.exports) {\n return null;\n }\n\n const packageRoot = await getPackageRootPath(pkgName, importer);\n // @ts-expect-error - handle is part of resolveId signature\n const nodeResolved = await nodeResolvePlugin.resolveId?.handler?.call(this, id, importer, options);\n // if we cannot resolve it, it's not a valid import so we let node handle it\n if (!nodeResolved?.id) {\n return null;\n }\n\n let filePath = nodeResolved.id;\n if (nodeResolved.resolvedBy === 'commonjs--resolver') {\n filePath = filePath.substring(1).split('?')[0];\n }\n\n const resolvedImportPath = filePath.replace(packageRoot, pkgName);\n\n return {\n id: resolvedImportPath,\n external: true,\n };\n } catch (err) {\n console.error(err);\n return null;\n }\n },\n };\n}\n","import type { Plugin } from 'rollup';\nimport { isExternalProtocolImport } from '../utils';\n\nexport function protocolExternalResolver({ exclude = ['node:'] }: { exclude?: readonly string[] } = {}): Plugin {\n return {\n name: 'protocol-external-resolver',\n resolveId(id) {\n if (!isExternalProtocolImport(id, exclude)) {\n return null;\n }\n\n return {\n id,\n external: true,\n };\n },\n } satisfies Plugin;\n}\n","import babel from '@babel/core';\n\nexport function removeDeployer() {\n const t = babel.types;\n\n // Helper to remove deployer property from an object and clean up its binding\n function removeDeployerFromObject(\n objectExpr: babel.types.ObjectExpression,\n scope: { getBinding: (name: string) => { path?: babel.NodePath } | undefined },\n ): babel.types.ObjectProperty | undefined {\n const deployerProp = objectExpr.properties.find(\n prop => t.isObjectProperty(prop) && t.isIdentifier(prop.key) && prop.key.name === 'deployer',\n ) as babel.types.ObjectProperty | undefined;\n\n if (deployerProp) {\n objectExpr.properties = objectExpr.properties.filter(prop => prop !== deployerProp);\n\n // Clean up the deployer binding if it's a reference\n if (t.isIdentifier(deployerProp.value)) {\n const deployerBinding = scope.getBinding(deployerProp.value.name);\n if (deployerBinding) {\n deployerBinding.path?.parentPath?.remove();\n }\n }\n }\n\n return deployerProp;\n }\n\n return {\n name: 'remove-deployer',\n visitor: {\n NewExpression(path, state) {\n // is a variable declaration\n const varDeclaratorPath = path.findParent(path => t.isVariableDeclarator(path.node));\n if (!varDeclaratorPath) {\n return;\n }\n\n const parentNode = path.parentPath.node;\n // check if it's a const of mastra\n if (!t.isVariableDeclarator(parentNode) || !t.isIdentifier(parentNode.id) || parentNode.id.name !== 'mastra') {\n return;\n }\n\n if (!state.hasReplaced) {\n state.hasReplaced = true;\n const newMastraObj = t.cloneNode(path.node);\n if (t.isObjectExpression(newMastraObj.arguments[0]) && newMastraObj.arguments[0].properties?.length) {\n const objectArg = newMastraObj.arguments[0];\n let foundDeployer = false;\n\n // First, check for direct deployer property\n const directDeployer = removeDeployerFromObject(objectArg, state.file.scope);\n if (directDeployer) {\n foundDeployer = true;\n }\n\n // Then, check spread elements for deployer properties\n for (const prop of objectArg.properties) {\n if (t.isSpreadElement(prop) && t.isIdentifier(prop.argument)) {\n const spreadBinding = state.file.scope.getBinding(prop.argument.name);\n if (spreadBinding?.path && t.isVariableDeclarator(spreadBinding.path.node)) {\n const init = spreadBinding.path.node.init;\n if (t.isObjectExpression(init)) {\n const spreadDeployer = removeDeployerFromObject(init, state.file.scope);\n if (spreadDeployer) {\n foundDeployer = true;\n }\n }\n }\n }\n }\n\n if (foundDeployer) {\n path.replaceWith(newMastraObj);\n }\n }\n }\n },\n },\n } as babel.PluginObj;\n}\n","import * as babel from '@babel/core';\nimport type { Plugin } from 'rollup';\n\nimport { removeDeployer as removeDeployerBabelPlugin } from '../babel/remove-deployer';\n\nexport function removeDeployer(mastraEntry: string, options?: { sourcemap?: boolean }): Plugin {\n return {\n name: 'remove-deployer',\n transform(code, id) {\n if (id !== mastraEntry) {\n return;\n }\n\n return new Promise((resolve, reject) => {\n babel.transform(\n code,\n {\n babelrc: false,\n configFile: false,\n filename: id,\n plugins: [removeDeployerBabelPlugin],\n sourceMaps: options?.sourcemap,\n },\n (err, result) => {\n if (err) {\n return reject(err);\n }\n\n resolve({\n code: result!.code!,\n map: result!.map!,\n });\n },\n );\n });\n },\n } satisfies Plugin;\n}\n","import type { Plugin } from 'rollup';\nimport { isDependencyPartOfPackage } from '../utils';\n\nexport function subpathExternalsResolver(externals: string[]): Plugin {\n return {\n name: 'subpath-externals-resolver',\n resolveId(id) {\n if (id.startsWith('.') || id.startsWith('/')) {\n return null;\n }\n\n const isPartOfExternals = externals.some(external => isDependencyPartOfPackage(id, external));\n if (isPartOfExternals) {\n return {\n id,\n external: true,\n };\n }\n },\n } satisfies Plugin;\n}\n","import fs from 'node:fs';\nimport path, { normalize } from 'node:path';\nimport type { Plugin } from 'rollup';\nimport stripJsonComments from 'strip-json-comments';\nimport type { RegisterOptions } from 'typescript-paths';\nimport { createHandler } from 'typescript-paths';\n\nconst PLUGIN_NAME = 'tsconfig-paths';\nconst JS_IMPORT_SOURCE_EXTENSIONS = ['.ts', '.tsx', '.js', '.jsx'];\n\nexport type PluginOptions = Omit<RegisterOptions, 'loggerID'> & { localResolve?: boolean };\n\n/**\n * Check if a tsconfig file has path mappings configured.\n * Exported for testing purposes.\n *\n * @param tsConfigPath - Path to the tsconfig.json file\n * @returns true if the tsconfig has paths configured or extends another config, false otherwise\n */\nexport function hasPaths(tsConfigPath: string): boolean {\n try {\n const content = fs.readFileSync(tsConfigPath, 'utf8');\n const config = JSON.parse(stripJsonComments(content));\n return !!(\n (config.compilerOptions?.paths && Object.keys(config.compilerOptions.paths).length > 0) ||\n (typeof config.extends === 'string' && config.extends.length > 0) ||\n (Array.isArray(config.extends) && config.extends.length > 0)\n );\n } catch {\n return false;\n }\n}\n\nexport function tsConfigPaths({ tsConfigPath, respectCoreModule, localResolve }: PluginOptions = {}): Plugin {\n const handlerCache = new Map<string, ReturnType<typeof createHandler>>();\n\n function resolveJsImportToSourceFile(moduleName: string): string {\n if (fs.existsSync(moduleName)) {\n return moduleName;\n }\n\n const parsed = path.parse(moduleName);\n if (parsed.ext !== '.js') {\n return moduleName;\n }\n\n for (const extension of JS_IMPORT_SOURCE_EXTENSIONS) {\n const candidate = path.join(parsed.dir, `${parsed.name}${extension}`);\n if (fs.existsSync(candidate)) {\n return candidate;\n }\n }\n\n return moduleName;\n }\n\n // Find tsconfig.json file starting from a directory and walking up\n function findTsConfigForFile(filePath: string): string | null {\n let currentDir = path.dirname(filePath);\n const root = path.parse(currentDir).root;\n\n while (currentDir !== root) {\n const tsConfigPath = path.join(currentDir, 'tsconfig.json');\n\n if (fs.existsSync(tsConfigPath)) {\n // Check if this tsconfig has path mappings\n if (hasPaths(tsConfigPath)) {\n return tsConfigPath;\n }\n }\n\n // Also check for tsconfig.base.json (common in NX)\n const tsConfigBasePath = path.join(currentDir, 'tsconfig.base.json');\n if (fs.existsSync(tsConfigBasePath)) {\n if (hasPaths(tsConfigBasePath)) {\n return tsConfigBasePath;\n }\n }\n\n currentDir = path.dirname(currentDir);\n }\n\n return null;\n }\n\n // Get or create handler for a specific tsconfig file\n function getHandlerForFile(filePath: string): ReturnType<typeof createHandler> | null {\n // If a specific tsConfigPath was provided, use it\n if (tsConfigPath && typeof tsConfigPath === 'string') {\n if (!handlerCache.has(tsConfigPath)) {\n handlerCache.set(\n tsConfigPath,\n createHandler({\n log: () => {},\n tsConfigPath,\n respectCoreModule,\n falllback: moduleName => fs.existsSync(moduleName),\n }),\n );\n }\n return handlerCache.get(tsConfigPath)!;\n }\n\n // Find appropriate tsconfig for this file\n const configPath = findTsConfigForFile(filePath);\n if (!configPath) {\n return null;\n }\n\n // Cache handlers to avoid recreation\n if (!handlerCache.has(configPath)) {\n handlerCache.set(\n configPath,\n createHandler({\n log: () => {},\n tsConfigPath: configPath,\n respectCoreModule,\n falllback: moduleName => fs.existsSync(moduleName),\n }),\n );\n }\n\n return handlerCache.get(configPath)!;\n }\n\n // Simple alias resolution using dynamic handler\n function resolveAlias(request: string, importer: string): string | null | undefined {\n // Get the appropriate handler for this file\n const dynamicHandler = getHandlerForFile(importer);\n if (!dynamicHandler) {\n return null;\n }\n\n const resolved = dynamicHandler(request, normalize(importer));\n return resolved;\n }\n\n return {\n name: PLUGIN_NAME,\n resolveId: {\n order: 'pre',\n async handler(request, importer, options) {\n if (!importer || request.startsWith('\\0') || importer.charCodeAt(0) === 0) {\n return null;\n }\n\n // Convert relative paths to absolute to ensure proper tsconfig path resolution\n // This allows path aliases to work regardless of how the importer path is provided\n if (!path.isAbsolute(importer)) {\n importer = path.resolve(process.cwd(), importer);\n }\n\n const moduleName = resolveAlias(request, importer);\n // No tsconfig alias found, so we need to resolve it normally\n if (!moduleName) {\n const resolved = await this.resolve(request, importer, { skipSelf: true, ...options });\n if (!resolved) {\n return null;\n }\n\n // If localResolve is true, we need to check if the importer has been resolved by the tsconfig-paths plugin\n // if so, we need to resolve the request from the importer instead of the root and mark it as external\n if (localResolve) {\n const importerInfo = this.getModuleInfo(importer);\n const importerPluginMeta = importerInfo?.meta?.[PLUGIN_NAME];\n\n if (!request.startsWith('./') && !request.startsWith('../') && importerPluginMeta?.resolved) {\n return {\n ...resolved,\n external: !request.startsWith('hono/') && request !== 'hono',\n };\n }\n }\n\n return {\n ...resolved,\n meta: {\n ...(resolved.meta || {}),\n },\n };\n }\n\n const resolvedModuleName = resolveJsImportToSourceFile(moduleName);\n\n // When a module does not have an extension, we need to resolve it to a file\n if (!path.extname(resolvedModuleName)) {\n const resolved = await this.resolve(resolvedModuleName, importer, { skipSelf: true, ...options });\n\n if (!resolved) {\n return null;\n }\n\n return {\n ...resolved,\n meta: {\n ...resolved.meta,\n [PLUGIN_NAME]: {\n resolved: true,\n },\n },\n };\n }\n\n // Always pass through bundler's resolution to ensure proper path normalization\n const resolved = await this.resolve(resolvedModuleName, importer, { skipSelf: true, ...options });\n\n if (!resolved) {\n return null;\n }\n\n return {\n ...resolved,\n meta: {\n ...resolved.meta,\n [PLUGIN_NAME]: {\n resolved: true,\n },\n },\n };\n },\n },\n } satisfies Plugin;\n}\n","import { join } from 'node:path';\nimport { fileURLToPath, pathToFileURL } from 'node:url';\nimport { optimizeLodashImports } from '@optimize-lodash/rollup-plugin';\nimport alias from '@rollup/plugin-alias';\nimport commonjs from '@rollup/plugin-commonjs';\nimport json from '@rollup/plugin-json';\nimport nodeResolve from '@rollup/plugin-node-resolve';\nimport { rollup } from 'rollup';\nimport type { InputOptions, OutputOptions, Plugin } from 'rollup';\nimport type { analyzeBundle } from './analyze';\nimport { esbuild } from './plugins/esbuild';\nimport { esmShim } from './plugins/esm-shim';\nimport { localStorageDetector } from './plugins/local-storage-detector';\nimport { nodeModulesExtensionResolver } from './plugins/node-modules-extension-resolver';\nimport { protocolExternalResolver } from './plugins/protocol-external-resolver';\nimport { removeDeployer } from './plugins/remove-deployer';\nimport { subpathExternalsResolver } from './plugins/subpath-externals-resolver';\nimport { tsConfigPaths } from './plugins/tsconfig-paths';\nimport { getNodeResolveOptions, slash } from './utils';\nimport type { BundlerPlatform } from './utils';\n\nexport function mastraInternalAliasPlugin(entryFile: string): Plugin {\n const normalizedEntryFile = slash(entryFile);\n\n return alias({\n entries: [\n {\n find: /^\\#server$/,\n replacement: slash(fileURLToPath(import.meta.resolve('@mastra/deployer/server'))),\n },\n {\n find: /^\\@mastra\\/server\\/(.*)/,\n replacement: `@mastra/server/$1`,\n customResolver: id => {\n if (id.startsWith('@mastra/server')) {\n return {\n id: fileURLToPath(import.meta.resolve(id)),\n };\n }\n },\n },\n { find: /^\\#mastra$/, replacement: normalizedEntryFile },\n ],\n });\n}\n\nexport function mastraToolsAliasPlugin(): Plugin {\n return {\n name: 'tools-rewriter',\n resolveId(id: string) {\n if (id === '#tools') {\n return {\n id: './tools.mjs',\n external: true,\n };\n }\n },\n };\n}\n\nexport async function getInputOptions(\n entryFile: string,\n analyzedBundleInfo: Awaited<ReturnType<typeof analyzeBundle>>,\n platform: BundlerPlatform,\n env: Record<string, string> = { 'process.env.NODE_ENV': JSON.stringify('production') },\n {\n sourcemap = false,\n isDev = false,\n projectRoot,\n workspaceRoot = undefined,\n enableEsmShim = true,\n externalsPreset = false,\n }: {\n sourcemap?: boolean;\n isDev?: boolean;\n workspaceRoot?: string;\n projectRoot: string;\n enableEsmShim?: boolean;\n externalsPreset?: boolean;\n },\n): Promise<InputOptions> {\n const nodeResolvePlugin = nodeResolve(getNodeResolveOptions(platform));\n\n const externalsCopy = new Set<string>(analyzedBundleInfo.externalDependencies.keys());\n const externals = externalsPreset ? [] : Array.from(externalsCopy);\n\n return {\n logLevel: process.env.MASTRA_BUNDLER_DEBUG === 'true' ? 'debug' : 'silent',\n treeshake: 'smallest',\n preserveSymlinks: true,\n external: externals,\n plugins: [\n protocolExternalResolver(),\n subpathExternalsResolver(externals),\n {\n name: 'alias-optimized-deps',\n resolveId(id: string) {\n if (!analyzedBundleInfo.dependencies.has(id)) {\n return null;\n }\n\n const filename = analyzedBundleInfo.dependencies.get(id)!;\n const absolutePath = join(workspaceRoot || projectRoot, filename);\n\n // During `mastra dev` we want to keep deps as external\n if (isDev) {\n return {\n id: process.platform === 'win32' ? pathToFileURL(absolutePath).href : absolutePath,\n external: true,\n };\n }\n\n // For production builds return the absolute path as-is so Rollup can handle itself\n return {\n id: absolutePath,\n external: false,\n };\n },\n } satisfies Plugin,\n mastraInternalAliasPlugin(entryFile),\n tsConfigPaths(),\n mastraToolsAliasPlugin(),\n esbuild({\n platform,\n define: env,\n }),\n optimizeLodashImports({\n include: '**/*.{js,ts,mjs,cjs}',\n }),\n externalsPreset\n ? null\n : commonjs({\n extensions: ['.js', '.ts'],\n transformMixedEsModules: true,\n esmExternals(id) {\n return externals.includes(id);\n },\n }),\n enableEsmShim ? esmShim() : undefined,\n externalsPreset ? nodeModulesExtensionResolver() : nodeResolvePlugin,\n // for debugging\n // {\n // name: 'logger',\n // //@ts-expect-error\n // resolveId(id, ...args) {\n // console.log({ id, args });\n // },\n // // @ts-expect-error\n // transform(code, id) {\n // if (code.includes('class Duplexify ')) {\n // console.log({ duplex: id });\n // }\n // },\n // },\n json(),\n localStorageDetector(workspaceRoot || projectRoot),\n removeDeployer(entryFile, { sourcemap }),\n // treeshake unused imports\n esbuild({\n include: entryFile,\n platform,\n }),\n ].filter(Boolean),\n } satisfies InputOptions;\n}\n\nexport async function createBundler(\n inputOptions: InputOptions,\n outputOptions: Partial<OutputOptions> & { dir: string },\n) {\n const bundler = await rollup(inputOptions);\n\n return {\n write: () => {\n return bundler.write({\n ...outputOptions,\n format: 'esm',\n entryFileNames: '[name].mjs',\n chunkFileNames: '[name].mjs',\n });\n },\n close: () => {\n return bundler.close();\n },\n };\n}\n"]}