@mastra/deployer 0.16.0 → 0.16.1-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/build/analyze.cjs +3 -3
  3. package/dist/build/analyze.d.ts +5 -7
  4. package/dist/build/analyze.d.ts.map +1 -1
  5. package/dist/build/analyze.js +1 -1
  6. package/dist/build/bundler.cjs +3 -3
  7. package/dist/build/bundler.d.ts +4 -2
  8. package/dist/build/bundler.d.ts.map +1 -1
  9. package/dist/build/bundler.js +1 -1
  10. package/dist/build/index.cjs +19 -19
  11. package/dist/build/index.js +5 -5
  12. package/dist/build/types.d.ts +18 -0
  13. package/dist/build/types.d.ts.map +1 -0
  14. package/dist/build/utils.d.ts +5 -0
  15. package/dist/build/utils.d.ts.map +1 -1
  16. package/dist/build/watcher.d.ts.map +1 -1
  17. package/dist/bundler/index.cjs +2 -2
  18. package/dist/bundler/index.d.ts.map +1 -1
  19. package/dist/bundler/index.js +1 -1
  20. package/dist/bundler/workspaceDependencies.d.ts.map +1 -1
  21. package/dist/{chunk-IVGJKJCG.js → chunk-4CAKOUIN.js} +21 -10
  22. package/dist/chunk-4CAKOUIN.js.map +1 -0
  23. package/dist/{chunk-HUAOVISC.js → chunk-5ZHIZCMJ.js} +209 -58
  24. package/dist/chunk-5ZHIZCMJ.js.map +1 -0
  25. package/dist/{chunk-AM2S5WCK.cjs → chunk-HR2HOA5D.cjs} +10 -6
  26. package/dist/chunk-HR2HOA5D.cjs.map +1 -0
  27. package/dist/{chunk-HFSNFLSA.cjs → chunk-JOCAZKZ5.cjs} +22 -9
  28. package/dist/chunk-JOCAZKZ5.cjs.map +1 -0
  29. package/dist/{chunk-U4ZNNX34.js → chunk-LL2SXZRQ.js} +3 -3
  30. package/dist/{chunk-U4ZNNX34.js.map → chunk-LL2SXZRQ.js.map} +1 -1
  31. package/dist/{chunk-LQCSOGOC.js → chunk-LN4WTW4C.js} +18 -5
  32. package/dist/chunk-LN4WTW4C.js.map +1 -0
  33. package/dist/{chunk-2GPZM6PP.js → chunk-O7OB4KG5.js} +7 -7
  34. package/dist/chunk-O7OB4KG5.js.map +1 -0
  35. package/dist/{chunk-FOPPWICF.cjs → chunk-OUS376P4.cjs} +21 -21
  36. package/dist/chunk-OUS376P4.cjs.map +1 -0
  37. package/dist/{chunk-WHMSFLP7.cjs → chunk-PX6ZHD5K.cjs} +5 -5
  38. package/dist/{chunk-WHMSFLP7.cjs.map → chunk-PX6ZHD5K.cjs.map} +1 -1
  39. package/dist/{chunk-KVBYKVQQ.cjs → chunk-T4L3WY7M.cjs} +223 -65
  40. package/dist/chunk-T4L3WY7M.cjs.map +1 -0
  41. package/dist/{chunk-DG6YR6QC.js → chunk-YOULDYHE.js} +8 -4
  42. package/dist/chunk-YOULDYHE.js.map +1 -0
  43. package/dist/{chunk-WSYCRXET.cjs → chunk-ZQJDMTCN.cjs} +29 -18
  44. package/dist/chunk-ZQJDMTCN.cjs.map +1 -0
  45. package/dist/index.cjs +12 -12
  46. package/dist/index.js +4 -4
  47. package/dist/server/handlers/routes/observability/handlers.d.ts.map +1 -1
  48. package/dist/server/index.cjs +14 -14
  49. package/dist/server/index.cjs.map +1 -1
  50. package/dist/server/index.js +14 -14
  51. package/dist/server/index.js.map +1 -1
  52. package/dist/services/deps.d.ts +2 -1
  53. package/dist/services/deps.d.ts.map +1 -1
  54. package/dist/services/index.cjs +4 -4
  55. package/dist/services/index.js +1 -1
  56. package/package.json +6 -6
  57. package/dist/chunk-2GPZM6PP.js.map +0 -1
  58. package/dist/chunk-AM2S5WCK.cjs.map +0 -1
  59. package/dist/chunk-DG6YR6QC.js.map +0 -1
  60. package/dist/chunk-FOPPWICF.cjs.map +0 -1
  61. package/dist/chunk-HFSNFLSA.cjs.map +0 -1
  62. package/dist/chunk-HUAOVISC.js.map +0 -1
  63. package/dist/chunk-IKIYTFYW.js +0 -163
  64. package/dist/chunk-IKIYTFYW.js.map +0 -1
  65. package/dist/chunk-IVGJKJCG.js.map +0 -1
  66. package/dist/chunk-KVBYKVQQ.cjs.map +0 -1
  67. package/dist/chunk-LQCSOGOC.js.map +0 -1
  68. package/dist/chunk-NK2IP3RO.cjs +0 -191
  69. package/dist/chunk-NK2IP3RO.cjs.map +0 -1
  70. package/dist/chunk-WSYCRXET.cjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/build/plugins/esbuild.ts","../src/build/isNodeBuiltin.ts","../src/build/plugins/hono-alias.ts","../src/build/babel/remove-deployer.ts","../src/build/plugins/remove-deployer.ts","../src/validator/validate.ts","../src/build/plugins/tsconfig-paths.ts","../src/build/babel/remove-all-options-except.ts","../src/build/babel/remove-all-options-bundler.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","../src/build/babel/check-config-export.ts","../src/build/utils.ts","../src/bundler/workspaceDependencies.ts","../src/build/analyze.ts"],"names":["originalEsbuild","builtinModules","path","fileURLToPath","babel","removeDeployer","babel2","nodeSpawn","dirname","createHandler","fs","normalize","babel5","rollup","optimizeLodashImports","commonjs","json","babel6","result","getPackageInfo","join","findWorkspaces","findWorkspacesRoot","DepsService","slugify","ensureDir","virtual","esmShim","nodeResolve","o","writeFile","readFile","babel8","existsSync"],"mappings":"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","file":"chunk-T4L3WY7M.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 { builtinModules } from 'node:module';\n\nexport function isNodeBuiltin(dep: string): boolean {\n const [pkg] = dep.split('/');\n\n return dep.startsWith('node:') || builtinModules.includes(dep) || builtinModules.includes(pkg!);\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 babel from '@babel/core';\n\nexport function removeDeployer() {\n const t = babel.types;\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?.[0]) {\n const deployer = newMastraObj.arguments[0].properties.find(\n prop => t.isObjectProperty(prop) && t.isIdentifier(prop.key) && prop.key.name === 'deployer',\n );\n\n if (!deployer) {\n return;\n }\n\n newMastraObj.arguments[0].properties = newMastraObj.arguments[0].properties.filter(\n prop => prop !== deployer,\n );\n\n // try to find the binding of the deployer which should be the reference to the deployer\n if (t.isObjectProperty(deployer) && t.isIdentifier(deployer.value)) {\n const deployerBinding = state.file.scope.getBinding(deployer.value.name);\n\n if (deployerBinding) {\n deployerBinding?.path?.parentPath?.remove();\n }\n }\n\n path.replaceWith(newMastraObj);\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 { spawn as nodeSpawn } from 'node:child_process';\nimport type { SpawnOptions } from 'node:child_process';\nimport { dirname } from 'node:path';\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 const childProcess = nodeSpawn(command, args, {\n // stdio: 'inherit',\n ...options,\n });\n\n childProcess.on('error', error => {\n reject(error);\n });\n\n let stderr = '';\n childProcess.stderr?.on('data', message => {\n stderr += message;\n });\n\n childProcess.on('close', code => {\n if (code === 0) {\n resolve();\n } else {\n reject(new Error(stderr));\n }\n });\n });\n}\n\nexport function validate(file: string) {\n return spawn(\n 'node',\n [\n '--import',\n import.meta.resolve('@mastra/deployer/loader'),\n '--input-type=module',\n '-e',\n `import('file://${file.replaceAll('\\\\', '/')}')`,\n ],\n {\n cwd: dirname(file),\n },\n );\n}\n","import fs from 'node:fs';\nimport path, { normalize } from 'node:path';\nimport resolveFrom from 'resolve-from';\nimport type { Plugin } from 'rollup';\nimport type { RegisterOptions } from 'typescript-paths';\nimport { createHandler } from 'typescript-paths';\n\nconst PLUGIN_NAME = 'tsconfig-paths';\n\nexport type PluginOptions = Omit<RegisterOptions, 'loggerID'> & { localResolve?: boolean };\n\nexport function tsConfigPaths({ tsConfigPath, respectCoreModule, localResolve }: PluginOptions = {}): Plugin {\n let handler: ReturnType<typeof createHandler>;\n return {\n name: PLUGIN_NAME,\n buildStart() {\n handler = createHandler({\n log: () => {},\n tsConfigPath,\n respectCoreModule,\n falllback: moduleName => fs.existsSync(moduleName),\n });\n return;\n },\n async resolveId(request, importer, options) {\n if (!importer || request.startsWith('\\0')) {\n return null;\n }\n\n const moduleName = handler?.(request, normalize(importer));\n // No tsconfig alias found, so we need to resolve it normally\n if (!moduleName) {\n let importerMeta: { [PLUGIN_NAME]?: { resolved?: boolean } } = {};\n\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 importerMeta = importerInfo?.meta || {};\n\n if (!request.startsWith('./') && !request.startsWith('../') && importerMeta?.[PLUGIN_NAME]?.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 ...importerMeta,\n },\n };\n }\n\n // When a module does not have an extension, we need to resolve it to a file\n if (!path.extname(moduleName)) {\n const resolved = await this.resolve(moduleName, 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 return {\n id: moduleName,\n meta: {\n [PLUGIN_NAME]: {\n resolved: true,\n },\n },\n };\n },\n } satisfies Plugin;\n}\n","import babel from '@babel/core';\nimport type { NodePath, types } from '@babel/core';\nimport type { Config as MastraConfig } from '@mastra/core/mastra';\nimport type { IMastraLogger } from '@mastra/core/logger';\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 let telemetry = mastraArgs.properties.find(\n // @ts-ignore\n prop => prop.key.name === option,\n );\n let telemetryValue: 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 (telemetry && t.isObjectProperty(telemetry) && t.isExpression(telemetry.value)) {\n result.hasCustomConfig = true;\n telemetryValue = telemetry.value;\n\n if (t.isIdentifier(telemetry.value) && telemetry.value.name === option) {\n const telemetryBinding = state.file.scope.getBinding(option)!;\n\n if (telemetryBinding && t.isVariableDeclarator(telemetryBinding.path.node)) {\n const id = path.scope.generateUidIdentifier(option);\n\n telemetryBinding.path.replaceWith(t.variableDeclarator(id, telemetryBinding.path.node.init!));\n telemetryValue = id;\n }\n }\n }\n\n // add the deployer export\n const exportDeclaration = t.exportNamedDeclaration(\n t.variableDeclaration('const', [t.variableDeclarator(t.identifier(option), telemetryValue)]),\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 ${option} config could not be extracted. Please make sure your entry file looks like this:\nexport const mastra = new Mastra({\n ${option}: <value>\n})\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 type { IMastraLogger } from '@mastra/core/logger';\nimport { removeAllOptionsFromMastraExcept } from './remove-all-options-except';\n\nexport function removeAllOptionsExceptBundler(result: { hasCustomConfig: boolean }, logger?: IMastraLogger) {\n return removeAllOptionsFromMastraExcept(result, 'bundler', logger);\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 * as babel from '@babel/core';\nimport { rollup, type RollupOutput } from 'rollup';\nimport { esbuild } from '../plugins/esbuild';\nimport commonjs from '@rollup/plugin-commonjs';\nimport { tsConfigPaths } from '../plugins/tsconfig-paths';\nimport { recursiveRemoveNonReferencedNodes } from '../plugins/remove-unused-references';\nimport { optimizeLodashImports } from '@optimize-lodash/rollup-plugin';\nimport { removeAllOptionsFromMastraExcept } from '../babel/remove-all-options-except';\nimport json from '@rollup/plugin-json';\nimport type { IMastraLogger } from '@mastra/core/logger';\n\ntype Transformer = (\n result: { hasCustomConfig: boolean },\n logger?: IMastraLogger,\n) => ReturnType<typeof removeAllOptionsFromMastraExcept>;\n\nexport function extractMastraOptionBundler(\n name: string,\n entryFile: string,\n transformer: Transformer,\n result: {\n hasCustomConfig: false;\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 commonjs({\n extensions: ['.js', '.ts'],\n strictRequires: 'strict',\n transformMixedEsModules: true,\n ignoreTryCatch: false,\n }),\n json(),\n {\n name: `extract-${name}-config`,\n transform(code, id) {\n if (id !== entryFile) {\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: [transformer(result, logger)],\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 },\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>(\n name: string,\n entryFile: string,\n transformer: Transformer,\n outputDir: string,\n logger?: IMastraLogger,\n): Promise<{\n bundleOutput: RollupOutput;\n getConfig: () => Promise<T>;\n} | null> {\n const result = {\n hasCustomConfig: false,\n } as const;\n const bundler = await extractMastraOptionBundler(name, entryFile, transformer, 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(`file:${configPath}`).then(m => m[name] as T),\n };\n }\n\n return null;\n}\n","import { removeAllOptionsExceptBundler } from './babel/remove-all-options-bundler';\nimport type { Config } from '@mastra/core/mastra';\nimport { extractMastraOption, extractMastraOptionBundler } from './shared/extract-mastra-option';\nimport type { IMastraLogger } from '@mastra/core/logger';\n\nexport function getBundlerOptionsBundler(\n entryFile: string,\n result: {\n hasCustomConfig: false;\n },\n) {\n return extractMastraOptionBundler('bundler', entryFile, removeAllOptionsExceptBundler, 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<Config['bundler']>(\n 'bundler',\n entryFile,\n removeAllOptionsExceptBundler,\n outputDir,\n logger,\n );\n\n if (!result) {\n return null;\n }\n\n return result.getConfig();\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 { execSync } from 'child_process';\nimport { existsSync, mkdirSync } from 'fs';\nimport { join } from 'path';\nimport { getPackageInfo } from 'local-pkg';\n\nexport function upsertMastraDir({ dir = process.cwd() }: { dir?: string }) {\n const dirPath = join(dir, '.mastra');\n\n if (!existsSync(dirPath)) {\n mkdirSync(dirPath, { recursive: true });\n execSync(`echo \".mastra\" >> .gitignore`);\n }\n}\n\n/**\n * Get the package name from a module ID\n */\nexport function getPackageName(id: string) {\n const parts = id.split('/');\n\n if (id.startsWith('@')) {\n return parts.slice(0, 2).join('/');\n }\n\n return parts[0];\n}\n\n/**\n * Get package root path\n */\nexport async function getPackageRootPath(packageName: string): Promise<string | null> {\n let rootPath: string | null;\n\n try {\n const pkg = await getPackageInfo(packageName);\n rootPath = pkg?.rootPath ?? null;\n } catch (e) {\n rootPath = null;\n }\n\n return rootPath;\n}\n\n/**\n * During `mastra dev` we are compiling TS files to JS (inside workspaces) so that users can just their workspace packages.\n * We store these compiled files inside `node_modules/.cache` for each workspace package.\n */\nexport function getCompiledDepCachePath(rootPath: string, packageName: string) {\n return join(rootPath, 'node_modules', '.cache', packageName);\n}\n","import { join } from 'node:path';\nimport type { IMastraLogger } from '@mastra/core/logger';\nimport slugify from '@sindresorhus/slugify';\nimport { findWorkspaces, findWorkspacesRoot } from 'find-workspaces';\nimport { ensureDir } from 'fs-extra';\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 * Creates a map of workspace packages with their metadata for dependency resolution\n * @returns Map of package names to their location, dependencies and version\n */\nexport const createWorkspacePackageMap = async () => {\n // TODO move to our own implementation - pkg is 4 years old\n const workspaces = await findWorkspaces();\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 return workspaceMap;\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 ${usedWorkspacePackages.size} workspace dependencies...`);\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 ${usedWorkspacePackages.size} workspace dependencies`);\n }\n};\n","import type { IMastraLogger } from '@mastra/core/logger';\nimport * as babel from '@babel/core';\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 esmShim from '@rollup/plugin-esm-shim';\nimport { existsSync } from 'node:fs';\nimport { readFile } from 'node:fs/promises';\nimport { fileURLToPath } from 'node:url';\nimport { rollup, type OutputAsset, type OutputChunk, type Plugin } from 'rollup';\nimport { esbuild } from './plugins/esbuild';\nimport { isNodeBuiltin } from './isNodeBuiltin';\nimport { aliasHono } from './plugins/hono-alias';\nimport { removeDeployer } from './plugins/remove-deployer';\nimport { join } from 'node:path';\nimport { validate } from '../validator/validate';\nimport { tsConfigPaths } from './plugins/tsconfig-paths';\nimport { writeFile } from 'node:fs/promises';\nimport { getBundlerOptions } from './bundlerOptions';\nimport { checkConfigExport } from './babel/check-config-export';\nimport { getCompiledDepCachePath, getPackageName, getPackageRootPath } from './utils';\nimport { createWorkspacePackageMap, type WorkspacePackageInfo } from '../bundler/workspaceDependencies';\nimport type { DependencyMetadata } from './types';\n\n// TODO: Make this extendable or find a rollup plugin that can do this\nconst globalExternals = [\n 'pino',\n 'pino-pretty',\n '@libsql/client',\n 'pg',\n 'libsql',\n 'jsdom',\n 'sqlite3',\n 'fastembed',\n 'nodemailer',\n '#tools',\n];\n\nfunction findExternalImporter(module: OutputChunk, external: string, allOutputs: OutputChunk[]): OutputChunk | null {\n const capturedFiles = new Set();\n\n for (const id of module.imports) {\n if (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);\n\n if (importer) {\n return importer;\n }\n }\n }\n\n return null;\n}\n\n/**\n * Analyzes the entry file to identify dependencies that need optimization.\n * This is the first step of the bundle analysis process.\n *\n * @param entry - The entry file path or content\n * @param mastraEntry - The mastra entry point\n * @param isVirtualFile - Whether the entry is a virtual file (content string) or a file path\n * @param platform - Target platform (node or browser)\n * @param logger - Logger instance for debugging\n * @returns Map of dependencies to optimize with their metadata (exported bindings, rootPath, isWorkspace)\n */\nasync function analyze(\n entry: string,\n mastraEntry: string,\n isVirtualFile: boolean,\n platform: 'node' | 'browser',\n logger: IMastraLogger,\n sourcemapEnabled: boolean = false,\n workspaceMap: Map<string, WorkspacePackageInfo>,\n) {\n logger.info('Analyzing dependencies...');\n let virtualPlugin = null;\n if (isVirtualFile) {\n virtualPlugin = virtual({\n '#entry': entry,\n });\n entry = '#entry';\n }\n\n const normalizedMastraEntry = mastraEntry.replaceAll('\\\\', '/');\n const optimizerBundler = await rollup({\n logLevel: process.env.MASTRA_BUNDLER_DEBUG === 'true' ? 'debug' : 'silent',\n input: isVirtualFile ? '#entry' : entry,\n treeshake: 'smallest',\n preserveSymlinks: true,\n plugins: [\n virtualPlugin,\n tsConfigPaths(),\n {\n name: 'custom-alias-resolver',\n resolveId(id: string) {\n if (id === '#server') {\n return fileURLToPath(import.meta.resolve('@mastra/deployer/server')).replaceAll('\\\\', '/');\n }\n if (id === '#mastra') {\n return normalizedMastraEntry;\n }\n if (id.startsWith('@mastra/server')) {\n return fileURLToPath(import.meta.resolve(id));\n }\n\n // Tools is generated dependency, we don't want it to be handled by the bundler but instead read from disk at runtime\n if (id === '#tools') {\n return {\n id: '#tools',\n external: true,\n };\n }\n },\n } satisfies Plugin,\n json(),\n esbuild(),\n commonjs({\n strictRequires: 'debug',\n ignoreTryCatch: false,\n transformMixedEsModules: true,\n extensions: ['.js', '.ts'],\n }),\n removeDeployer(normalizedMastraEntry, { sourcemap: sourcemapEnabled }),\n esbuild(),\n ].filter(Boolean),\n });\n\n const { output } = await optimizerBundler.generate({\n format: 'esm',\n inlineDynamicImports: true,\n });\n\n await optimizerBundler.close();\n\n const depsToOptimize = new Map<string, DependencyMetadata>();\n\n for (const [dep, bindings] of Object.entries(output[0].importedBindings)) {\n // Skip node built-in\n if (isNodeBuiltin(dep)) {\n continue;\n }\n\n const isWorkspace = workspaceMap.has(dep);\n\n const pkgName = getPackageName(dep);\n let rootPath: string | null = null;\n\n if (pkgName && pkgName !== '#tools') {\n rootPath = await getPackageRootPath(pkgName);\n }\n\n depsToOptimize.set(dep, { exports: bindings, rootPath, isWorkspace });\n }\n\n for (const o of output) {\n if (o.type !== 'chunk') {\n continue;\n }\n\n // Tools is generated dependency, we don't want our analyzer to handle it\n const dynamicImports = o.dynamicImports.filter(d => d !== '#tools');\n if (!dynamicImports.length) {\n continue;\n }\n\n for (const dynamicImport of dynamicImports) {\n if (!depsToOptimize.has(dynamicImport) && !isNodeBuiltin(dynamicImport)) {\n depsToOptimize.set(dynamicImport, { exports: ['*'], rootPath: null, isWorkspace: false });\n }\n }\n }\n\n return depsToOptimize;\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 logger: IMastraLogger,\n bundlerOptions?: {\n externals?: string[];\n transpilePackages?: string[];\n isDev?: boolean;\n },\n meta?: {\n workspaceRoot?: string;\n workspaceMap?: Map<string, WorkspacePackageInfo>;\n },\n) {\n logger.info('Optimizing dependencies...');\n logger.debug(\n `${Array.from(depsToOptimize.keys())\n .map(key => `- ${key}`)\n .join('\\n')}`,\n );\n\n const { externals: customExternals = [], transpilePackages = [], isDev = false } = bundlerOptions || {};\n const { workspaceRoot = null, workspaceMap = new Map() } = meta || {};\n const allExternals = [...globalExternals, ...customExternals];\n const reverseVirtualReferenceMap = new Map<string, string>();\n const virtualDependencies = new Map();\n\n for (const [dep, { exports, isWorkspace, rootPath }] of depsToOptimize.entries()) {\n let name = dep.replaceAll('/', '-');\n\n if (isWorkspace && rootPath && isDev && workspaceRoot) {\n const absolutePath = getCompiledDepCachePath(rootPath, name);\n\n /**\n * Further below `[name].mjs` is used. By making the name something like `packages/bar/node_modules/.cache/@monorepo-bar` Rollup writes the file to that path. For this also the `dir` needs adjusting.\n */\n name = absolutePath\n /**\n * The Rollup output.entryFileNames option doesn't allow relative or absolute paths, so the cacheDirAbsolutePath needs to be converted to a name relative to the workspace root.\n */\n .replace(workspaceRoot, '')\n /**\n * Remove leading slashes/backslashes\n */\n .replace(/^[/\\\\]+/, '');\n }\n\n reverseVirtualReferenceMap.set(name, dep);\n\n const virtualFile: string[] = [];\n let exportStringBuilder = [];\n for (const local of exports) {\n if (local === '*') {\n virtualFile.push(`export * from '${dep}';`);\n } else if (local === 'default') {\n virtualFile.push(`export { default } from '${dep}';`);\n } else {\n exportStringBuilder.push(local);\n }\n }\n\n if (exportStringBuilder.length > 0) {\n virtualFile.push(`export { ${exportStringBuilder.join(', ')} } from '${dep}';`);\n }\n\n virtualDependencies.set(dep, {\n name,\n virtual: virtualFile.join('\\n'),\n });\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, dir);\n }\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: allExternals,\n treeshake: 'smallest',\n plugins: [\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 transpilePackagesMap.size\n ? esbuild({\n format: 'esm',\n include: [...transpilePackagesMap.values()].map(p => {\n // Match files from transpilePackages but exclude any nested node_modules\n // Escapes regex special characters in the path and uses negative lookahead to avoid node_modules\n // generated by cursor\n return new RegExp(`^${p.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')}/(?!.*node_modules).*$`);\n }),\n })\n : null,\n commonjs({\n strictRequires: 'strict',\n transformMixedEsModules: true,\n ignoreTryCatch: false,\n }),\n isDev ? esmShim() : undefined,\n nodeResolve({\n preferBuiltins: true,\n exportConditions: ['node'],\n // Do not embed external dependencies into files that we write to `node_modules/.cache` (for the mastra dev + workspace use case)\n ...(workspaceMap.size > 0 && isDev ? { resolveOnly: Array.from(workspaceMap.keys()) } : {}),\n }),\n // hono is imported from deployer, so we need to resolve from here instead of the project root\n aliasHono(),\n json(),\n ].filter(Boolean),\n });\n\n const { output } = await bundler.write({\n format: 'esm',\n /**\n * If Mastra is used inside a monorepo, we need to find the workspace root so that Rollup can use it as base for the output dir. This should only happen during `mastra dev`.\n *\n * Otherwise, use outputDir as normal.\n */\n dir: isDev ? (workspaceRoot ? workspaceRoot : outputDir) : outputDir,\n entryFileNames: '[name].mjs',\n chunkFileNames: '[name].mjs',\n hoistTransitiveImports: false,\n });\n const moduleResolveMap = {} as Record<string, Record<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 (external === '#tools') {\n continue;\n }\n\n const importer = findExternalImporter(o, external, filteredChunks);\n\n if (importer) {\n const fullPath = join(outputDir, importer.fileName);\n moduleResolveMap[fullPath] = moduleResolveMap[fullPath] || {};\n if (importer.moduleIds.length) {\n moduleResolveMap[fullPath][external] = importer.moduleIds[importer.moduleIds.length - 1]?.startsWith(\n '\\x00virtual:#virtual',\n )\n ? importer.moduleIds[importer.moduleIds.length - 2]!\n : importer.moduleIds[importer.moduleIds.length - 1]!;\n }\n }\n }\n }\n\n await writeFile(join(outputDir, 'module-resolve-map.json'), JSON.stringify(moduleResolveMap, null, 2));\n\n await bundler.close();\n\n return { output, reverseVirtualReferenceMap, usedExternals: moduleResolveMap };\n}\n\n/**\n * Validates the bundled output by attempting to import each generated module.\n * Tracks invalid chunks and 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 invalid chunks and dependency mappings\n */\nasync function validateOutput(\n {\n output,\n reverseVirtualReferenceMap,\n usedExternals,\n outputDir,\n workspaceMap,\n }: {\n output: (OutputChunk | OutputAsset)[];\n reverseVirtualReferenceMap: Map<string, string>;\n usedExternals: Record<string, Record<string, string>>;\n outputDir: string;\n workspaceMap: Map<string, WorkspacePackageInfo>;\n },\n logger: IMastraLogger,\n) {\n const result = {\n invalidChunks: new Set<string>(),\n dependencies: new Map<string, string>(),\n externalDependencies: new Set<string>(),\n workspaceMap,\n };\n\n // we should resolve the version of the deps\n for (const deps of Object.values(usedExternals)) {\n for (const dep of Object.keys(deps)) {\n result.externalDependencies.add(dep);\n }\n }\n\n for (const file of output) {\n if (file.type === 'asset') {\n continue;\n }\n\n try {\n logger.debug(`Validating if ${file.fileName} is a valid module.`);\n if (file.isEntry && reverseVirtualReferenceMap.has(file.name)) {\n result.dependencies.set(reverseVirtualReferenceMap.get(file.name)!, file.fileName);\n }\n\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(outputDir, file.fileName));\n }\n } catch (err) {\n result.invalidChunks.add(file.fileName);\n if (file.isEntry && reverseVirtualReferenceMap.has(file.name)) {\n const reference = reverseVirtualReferenceMap.get(file.name)!;\n const dep = reference.startsWith('@') ? reference.split('/').slice(0, 2).join('/') : reference.split('/')[0];\n\n result.externalDependencies.add(dep!);\n }\n\n // we might need this on other projects but not sure so let's keep it commented out for now\n // console.log(file.fileName, file.isEntry, file.isDynamicEntry, err);\n // result.invalidChunks.add(file.fileName);\n // const externalImports = excludeInternalDeps(file.imports.filter(file => !internalFiles.has(file)));\n // externalImports.push(...excludeInternalDeps(file.dynamicImports.filter(file => !internalFiles.has(file))));\n // for (const externalImport of externalImports) {\n // result.externalDependencies.add(externalImport);\n // }\n\n // if (reverseVirtualReferenceMap.has(file.name)) {\n // result.externalDependencies.add(reverseVirtualReferenceMap.get(file.name)!);\n // }\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 outputDir: string,\n platform: 'node' | 'browser',\n logger: IMastraLogger,\n sourcemapEnabled: boolean = false,\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. 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 const workspaceMap = await createWorkspacePackageMap();\n\n const depsToOptimize = new Map<string, DependencyMetadata>();\n for (const entry of entries) {\n const isVirtualFile = entry.includes('\\n') || !existsSync(entry);\n const analyzeResult = await analyze(\n entry,\n mastraEntry,\n isVirtualFile,\n platform,\n logger,\n sourcemapEnabled,\n workspaceMap,\n );\n\n for (const [dep, { exports }] of analyzeResult.entries()) {\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 exports: [...new Set([...existingEntry.exports, ...exports])],\n });\n } else {\n const isWorkspace = workspaceMap.has(dep);\n\n const pkgName = getPackageName(dep);\n let rootPath: string | null = null;\n\n if (pkgName && pkgName !== '#tools') {\n rootPath = await getPackageRootPath(pkgName);\n }\n\n depsToOptimize.set(dep, { exports, rootPath, isWorkspace });\n }\n }\n }\n const bundlerOptions = await getBundlerOptions(mastraEntry, outputDir);\n\n const { output, reverseVirtualReferenceMap, usedExternals } = await bundleExternals(\n depsToOptimize,\n outputDir,\n logger,\n bundlerOptions ?? undefined,\n );\n const result = await validateOutput(\n { output, reverseVirtualReferenceMap, usedExternals, outputDir, workspaceMap },\n logger,\n );\n\n return result;\n}\n"]}
@@ -96,13 +96,17 @@ var Deps = class extends MastraBase {
96
96
  getWorkspaceDependencyPath({ pkgName, version }) {
97
97
  return `file:./workspace-module/${pkgName}-${version}.tgz`;
98
98
  }
99
- async pack({ dir, destination }) {
99
+ async pack({ dir, destination, sanitizedName }) {
100
100
  const cpLogger = createChildProcessLogger({
101
101
  logger: this.logger,
102
102
  root: dir
103
103
  });
104
+ let destinationFlag = `--pack-destination ${destination}`;
105
+ if (this.packageManager === "yarn") {
106
+ destinationFlag = `--out ${destination}/${sanitizedName}-%v.tgz`;
107
+ }
104
108
  return cpLogger({
105
- cmd: `${this.packageManager} pack --pack-destination ${destination}`,
109
+ cmd: `${this.packageManager} pack ${destinationFlag}`,
106
110
  args: [],
107
111
  env: {
108
112
  PATH: process.env.PATH
@@ -385,5 +389,5 @@ var FileService = class {
385
389
  };
386
390
 
387
391
  export { Deps, DepsService, EnvService, FileService, createChildProcessLogger, createPinoStream };
388
- //# sourceMappingURL=chunk-DG6YR6QC.js.map
389
- //# sourceMappingURL=chunk-DG6YR6QC.js.map
392
+ //# sourceMappingURL=chunk-YOULDYHE.js.map
393
+ //# sourceMappingURL=chunk-YOULDYHE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/deploy/log.ts","../src/services/deps.ts","../src/services/env.ts","../src/services/fs.ts"],"names":["fs","fs2","fileURLToPath","path"],"mappings":";;;;;;;;;;;AAIO,IAAM,gBAAA,GAAmB,CAAC,MAAA,KAA0B;AACzD,EAAA,OAAO,IAAI,SAAA,CAAU;AAAA,IACnB,SAAA,CAAU,KAAA,EAAO,SAAA,EAAW,QAAA,EAAU;AAEpC,MAAA,MAAM,IAAA,GAAO,KAAA,CAAM,QAAA,EAAS,CAAE,IAAA,EAAK;AAEnC,MAAA,IAAI,IAAA,EAAM;AACR,QAAA,OAAA,CAAQ,IAAI,IAAI,CAAA;AAEhB,QAAA,MAAA,CAAO,KAAK,IAAI,CAAA;AAAA,MAClB;AAGA,MAAA,QAAA,CAAS,MAAM,KAAK,CAAA;AAAA,IACtB;AAAA,GACD,CAAA;AACH;AAEO,SAAS,wBAAA,CAAyB,EAAE,MAAA,EAAQ,IAAA,EAAK,EAA4C;AAClG,EAAA,MAAM,UAAA,GAAa,iBAAiB,MAAM,CAAA;AAC1C,EAAA,OAAO,OAAO,EAAE,GAAA,EAAK,IAAA,EAAM,KAAI,KAAoE;AACjG,IAAA,IAAI;AACF,MAAA,MAAM,UAAA,GAAa,KAAA,CAAM,GAAA,EAAK,IAAA,EAAM;AAAA,QAClC,GAAA,EAAK,IAAA;AAAA,QACL,KAAA,EAAO,IAAA;AAAA,QACP;AAAA,OACD,CAAA;AAGD,MAAA,UAAA,CAAW,MAAA,EAAQ,KAAK,UAAU,CAAA;AAClC,MAAA,UAAA,CAAW,MAAA,EAAQ,KAAK,UAAU,CAAA;AAGlC,MAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,EAAS,MAAA,KAAW;AACtC,QAAA,UAAA,CAAW,EAAA,CAAG,SAAS,CAAA,IAAA,KAAQ;AAC7B,UAAA,UAAA,CAAW,GAAA,EAAI;AACf,UAAA,IAAI,SAAS,CAAA,EAAG;AACd,YAAA,OAAA,CAAQ,EAAE,OAAA,EAAS,IAAA,EAAM,CAAA;AAAA,UAC3B,CAAA,MAAO;AACL,YAAA,MAAA,CAAO,IAAI,KAAA,CAAM,CAAA,yBAAA,EAA4B,IAAI,EAAE,CAAC,CAAA;AAAA,UACtD;AAAA,QACF,CAAC,CAAA;AAED,QAAA,UAAA,CAAW,EAAA,CAAG,SAAS,CAAA,KAAA,KAAS;AAC9B,UAAA,UAAA,CAAW,GAAA,EAAI;AACf,UAAA,MAAA,CAAO,KAAA,CAAM,gBAAA,EAAkB,EAAE,KAAA,EAAO,CAAA;AACxC,UAAA,MAAA,CAAO,KAAK,CAAA;AAAA,QACd,CAAC,CAAA;AAAA,MACH,CAAC,CAAA;AAAA,IACH,SAAS,KAAA,EAAO;AACd,MAAA,OAAA,CAAQ,IAAI,KAAK,CAAA;AACjB,MAAA,MAAA,CAAO,KAAA,CAAM,gBAAA,EAAkB,EAAE,KAAA,EAAO,CAAA;AACxC,MAAA,UAAA,CAAW,GAAA,EAAI;AACf,MAAA,OAAO,EAAE,OAAA,EAAS,KAAA,EAAO,KAAA,EAAM;AAAA,IACjC;AAAA,EACF,CAAA;AACF;;;AC1CO,IAAM,IAAA,GAAN,cAAmB,UAAA,CAAW;AAAA,EAC3B,cAAA;AAAA,EACA,OAAA;AAAA,EAER,WAAA,CAAY,OAAA,GAAU,OAAA,CAAQ,GAAA,EAAI,EAAG;AACnC,IAAA,KAAA,CAAM,EAAE,SAAA,EAAW,UAAA,EAAY,IAAA,EAAM,QAAQ,CAAA;AAE7C,IAAA,IAAA,CAAK,OAAA,GAAU,OAAA;AACf,IAAA,IAAA,CAAK,cAAA,GAAiB,KAAK,iBAAA,EAAkB;AAAA,EAC/C;AAAA,EAEQ,aAAa,GAAA,EAA4B;AAC/C,IAAA,MAAM,SAAA,GAAY,CAAC,gBAAA,EAAkB,mBAAA,EAAqB,aAAa,UAAU,CAAA;AACjF,IAAA,KAAA,MAAW,QAAQ,SAAA,EAAW;AAC5B,MAAA,IAAIA,aAAG,UAAA,CAAW,IAAA,CAAK,KAAK,GAAA,EAAK,IAAI,CAAC,CAAA,EAAG;AACvC,QAAA,OAAO,IAAA;AAAA,MACT;AAAA,IACF;AACA,IAAA,MAAM,SAAA,GAAY,IAAA,CAAK,OAAA,CAAQ,GAAA,EAAK,IAAI,CAAA;AACxC,IAAA,IAAI,cAAc,GAAA,EAAK;AACrB,MAAA,OAAO,IAAA,CAAK,aAAa,SAAS,CAAA;AAAA,IACpC;AACA,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEQ,iBAAA,GAAoC;AAC1C,IAAA,MAAM,QAAA,GAAW,IAAA,CAAK,YAAA,CAAa,IAAA,CAAK,OAAO,CAAA;AAC/C,IAAA,QAAQ,QAAA;AAAU,MAChB,KAAK,gBAAA;AACH,QAAA,OAAO,MAAA;AAAA,MACT,KAAK,mBAAA;AACH,QAAA,OAAO,KAAA;AAAA,MACT,KAAK,WAAA;AACH,QAAA,OAAO,MAAA;AAAA,MACT,KAAK,UAAA;AACH,QAAA,OAAO,KAAA;AAAA,MACT;AACE,QAAA,OAAO,KAAA;AAAA;AACX,EACF;AAAA,EAEO,0BAAA,CAA2B,EAAE,OAAA,EAAS,OAAA,EAAQ,EAAyC;AAC5F,IAAA,OAAO,CAAA,wBAAA,EAA2B,OAAO,CAAA,CAAA,EAAI,OAAO,CAAA,IAAA,CAAA;AAAA,EACtD;AAAA,EAEA,MAAa,IAAA,CAAK,EAAE,GAAA,EAAK,WAAA,EAAa,eAAc,EAAgE;AAClH,IAAA,MAAM,WAAW,wBAAA,CAAyB;AAAA,MACxC,QAAQ,IAAA,CAAK,MAAA;AAAA,MACb,IAAA,EAAM;AAAA,KACP,CAAA;AAED,IAAA,IAAI,eAAA,GAAkB,sBAAsB,WAAW,CAAA,CAAA;AACvD,IAAA,IAAI,IAAA,CAAK,mBAAmB,MAAA,EAAQ;AAGlC,MAAA,eAAA,GAAkB,CAAA,MAAA,EAAS,WAAW,CAAA,CAAA,EAAI,aAAa,CAAA,OAAA,CAAA;AAAA,IACzD;AAEA,IAAA,OAAO,QAAA,CAAS;AAAA,MACd,GAAA,EAAK,CAAA,EAAG,IAAA,CAAK,cAAc,SAAS,eAAe,CAAA,CAAA;AAAA,MACnD,MAAM,EAAC;AAAA,MACP,GAAA,EAAK;AAAA,QACH,IAAA,EAAM,QAAQ,GAAA,CAAI;AAAA;AACpB,KACD,CAAA;AAAA,EACH;AAAA,EAEA,MAAc,eAAA,CAAgB,GAAA,EAAa,OAAA,EAA8B;AACvE,IAAA,MAAM,eAAA,GAAkB,IAAA,CAAK,IAAA,CAAK,GAAA,EAAK,cAAc,CAAA;AACrD,IAAA,MAAM,WAAA,GAAc,MAAM,QAAA,CAAS,eAAe,CAAA;AAElD,IAAA,WAAA,CAAY,IAAA,GAAO;AAAA,MACjB,GAAG,WAAA,CAAY,IAAA;AAAA,MACf,sBAAA,EAAwB;AAAA,QACtB,EAAA,EAAI,OAAA,CAAQ,EAAA,IAAM,EAAC;AAAA,QACnB,GAAA,EAAK,OAAA,CAAQ,GAAA,IAAO,EAAC;AAAA,QACrB,IAAA,EAAM,OAAA,CAAQ,IAAA,IAAQ;AAAC;AACzB,KACF;AAEA,IAAA,MAAM,UAAU,eAAA,EAAiB,WAAA,EAAa,EAAE,MAAA,EAAQ,GAAG,CAAA;AAAA,EAC7D;AAAA,EAEA,MAAc,eAAA,CAAgB,GAAA,EAAa,OAAA,EAA8B;AACvE,IAAA,MAAM,UAAA,GAAa,IAAA,CAAK,IAAA,CAAK,GAAA,EAAK,aAAa,CAAA;AAC/C,IAAA,MAAM,MAAA,GAAS;AAAA,MACb,sBAAA,EAAwB;AAAA,QACtB,GAAA,EAAK,OAAA,CAAQ,GAAA,IAAO,EAAC;AAAA,QACrB,EAAA,EAAI,OAAA,CAAQ,EAAA,IAAM,EAAC;AAAA,QACnB,IAAA,EAAM,OAAA,CAAQ,IAAA,IAAQ;AAAC;AACzB,KACF;AAEA,IAAA,MAAM,UAAA,CAAW,SAAA;AAAA,MACf,UAAA;AAAA,MACA,CAAA;AAAA,EAA4B,MAAA,CAAO,QAAQ,MAAA,CAAO,sBAAsB,EACrE,GAAA,CAAI,CAAC,CAAC,GAAA,EAAK,KAAK,CAAA,KAAM,KAAK,GAAG,CAAA,EAAA,EAAK,KAAK,SAAA,CAAU,KAAK,CAAC,CAAA,CAAE,CAAA,CAC1D,IAAA,CAAK,IAAI,CAAC,CAAA;AAAA,KACf;AAAA,EACF;AAAA,EAEQ,WAAW,OAAA,EAAwC;AACzD,IAAA,MAAM,OAAiB,EAAC;AACxB,IAAA,IAAI,OAAA,CAAQ,GAAA,EAAK,IAAA,CAAK,IAAA,CAAK,CAAA,MAAA,EAAS,QAAQ,GAAA,CAAI,IAAA,CAAK,GAAG,CAAC,CAAA,CAAE,CAAA;AAC3D,IAAA,IAAI,OAAA,CAAQ,EAAA,EAAI,IAAA,CAAK,IAAA,CAAK,CAAA,KAAA,EAAQ,QAAQ,EAAA,CAAG,IAAA,CAAK,GAAG,CAAC,CAAA,CAAE,CAAA;AACxD,IAAA,IAAI,OAAA,CAAQ,IAAA,EAAM,IAAA,CAAK,IAAA,CAAK,CAAA,OAAA,EAAU,QAAQ,IAAA,CAAK,IAAA,CAAK,GAAG,CAAC,CAAA,CAAE,CAAA;AAC9D,IAAA,OAAO,IAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA,EAMQ,wBAAA,CAAyB,IAAoB,IAAA,EAAiC;AACpF,IAAA,MAAM,GAAA,GAAM,IAAA,KAAS,SAAA,GAAY,SAAA,GAAY,KAAA;AAE7C,IAAA,QAAQ,EAAA;AAAI,MACV,KAAK,KAAA;AACH,QAAA,OAAO,GAAG,GAAG,CAAA,qFAAA,CAAA;AAAA,MACf,KAAK,MAAA;AACH,QAAA,OAAO,GAAG,GAAG,CAAA,CAAA;AAAA,MACf,KAAK,MAAA;AACH,QAAA,OAAO,QAAQ,SAAA,GAAY,CAAA,EAAG,GAAG,CAAA,oCAAA,CAAA,GAAyC,GAAG,GAAG,CAAA,iBAAA,CAAA;AAAA,MAClF,KAAK,KAAA;AACH,QAAA,OAAO,GAAA;AAAA,MACT;AACE,QAAA,OAAO,GAAA;AAAA;AACX,EACF;AAAA,EAEA,MAAa,OAAA,CAAQ;AAAA,IACnB,MAAM,IAAA,CAAK,OAAA;AAAA,IACX;AAAA,GACF,GAA0D,EAAC,EAAG;AAC5D,IAAA,MAAM,KAAK,IAAA,CAAK,cAAA;AAChB,IAAA,MAAM,cAAA,GAAiB,IAAA,CAAK,wBAAA,CAAyB,EAAA,EAAI,SAAS,CAAA;AAClE,IAAA,IAAI,OAAiB,EAAC;AAEtB,IAAA,QAAQ,EAAA;AAAI,MACV,KAAK,MAAA;AACH,QAAA,IAAI,YAAA,EAAc;AAChB,UAAA,MAAM,IAAA,CAAK,eAAA,CAAgB,GAAA,EAAK,YAAY,CAAA;AAAA,QAC9C;AACA,QAAA;AAAA,MACF,KAAK,MAAA;AAEH,QAAA,MAAM,UAAA,CAAW,IAAA,CAAK,IAAA,CAAK,GAAA,EAAK,WAAW,CAAC,CAAA;AAC5C,QAAA,IAAI,YAAA,EAAc;AAChB,UAAA,MAAM,IAAA,CAAK,eAAA,CAAgB,GAAA,EAAK,YAAY,CAAA;AAAA,QAC9C;AACA,QAAA;AAAA,MACF,KAAK,KAAA;AACH,QAAA,IAAI,YAAA,EAAc;AAChB,UAAA,IAAA,GAAO,IAAA,CAAK,WAAW,YAAY,CAAA;AAAA,QACrC;AACA,QAAA;AACF;AAIF,IAAA,MAAM,WAAW,wBAAA,CAAyB;AAAA,MACxC,QAAQ,IAAA,CAAK,MAAA;AAAA,MACb,IAAA,EAAM;AAAA,KACP,CAAA;AAED,IAAA,OAAO,QAAA,CAAS;AAAA,MACd,GAAA,EAAK,CAAA,EAAG,EAAE,CAAA,CAAA,EAAI,cAAc,CAAA,CAAA;AAAA,MAC5B,IAAA;AAAA,MACA,KAAK,OAAA,CAAQ;AAAA,KACd,CAAA;AAAA,EACH;AAAA,EAEA,MAAa,gBAAgB,QAAA,EAAoB;AAC/C,IAAA,MAAM,KAAK,IAAA,CAAK,cAAA;AAChB,IAAA,MAAM,cAAA,GAAiB,IAAA,CAAK,wBAAA,CAAyB,EAAA,EAAI,KAAK,CAAA;AAE9D,IAAA,MAAM,GAAA,GAA8B;AAAA,MAClC,IAAA,EAAM,QAAQ,GAAA,CAAI;AAAA,KACpB;AAEA,IAAA,IAAI,OAAA,CAAQ,IAAI,mBAAA,EAAqB;AACnC,MAAA,GAAA,CAAI,mBAAA,GAAsB,QAAQ,GAAA,CAAI,mBAAA;AAAA,IACxC;AAEA,IAAA,MAAM,WAAW,wBAAA,CAAyB;AAAA,MACxC,QAAQ,IAAA,CAAK,MAAA;AAAA,MACb,IAAA,EAAM;AAAA,KACP,CAAA;AAED,IAAA,OAAO,QAAA,CAAS;AAAA,MACd,GAAA,EAAK,CAAA,EAAG,EAAE,CAAA,CAAA,EAAI,cAAc,CAAA,CAAA;AAAA,MAC5B,IAAA,EAAM,QAAA;AAAA,MACN;AAAA,KACD,CAAA;AAAA,EACH;AAAA,EAEA,MAAa,kBAAkB,YAAA,EAAyC;AACtE,IAAA,IAAI;AACF,MAAA,MAAM,eAAA,GAAkB,IAAA,CAAK,IAAA,CAAK,IAAA,CAAK,SAAS,cAAc,CAAA;AAE9D,MAAA,IAAI;AACF,QAAA,MAAM,UAAA,CAAW,OAAO,eAAe,CAAA;AAAA,MACzC,CAAA,CAAA,MAAQ;AACN,QAAA,OAAO,qDAAA;AAAA,MACT;AAEA,MAAA,MAAM,WAAA,GAAc,MAAM,QAAA,CAAS,eAAe,CAAA;AAClD,MAAA,KAAA,MAAW,cAAc,YAAA,EAAc;AACrC,QAAA,IAAI,CAAC,WAAA,CAAY,YAAA,IAAgB,CAAC,WAAA,CAAY,YAAA,CAAa,UAAU,CAAA,EAAG;AACtE,UAAA,OAAO,kBAAkB,UAAU,CAAA,8BAAA,EAAiC,IAAA,CAAK,cAAc,YAAY,UAAU,CAAA,CAAA,CAAA;AAAA,QAC/G;AAAA,MACF;AAEA,MAAA,OAAO,IAAA;AAAA,IACT,SAAS,GAAA,EAAK;AACZ,MAAA,OAAA,CAAQ,MAAM,GAAG,CAAA;AACjB,MAAA,OAAO,8BAAA;AAAA,IACT;AAAA,EACF;AAAA,EAEA,MAAa,cAAA,GAAiB;AAC5B,IAAA,IAAI;AACF,MAAA,MAAM,eAAA,GAAkB,IAAA,CAAK,IAAA,CAAK,IAAA,CAAK,SAAS,cAAc,CAAA;AAC9D,MAAA,MAAM,GAAA,GAAM,MAAM,QAAA,CAAS,eAAe,CAAA;AAC1C,MAAA,OAAO,GAAA,CAAI,IAAA;AAAA,IACb,SAAS,GAAA,EAAK;AACZ,MAAA,MAAM,GAAA;AAAA,IACR;AAAA,EACF;AAAA,EAEA,MAAa,iBAAA,GAAoB;AAC/B,IAAA,MAAM,UAAA,GAAa,aAAA,CAAc,MAAA,CAAA,IAAA,CAAY,GAAG,CAAA;AAChD,IAAA,MAAM,SAAA,GAAY,QAAQ,UAAU,CAAA;AACpC,IAAA,MAAM,cAAc,IAAA,CAAK,IAAA,CAAK,SAAA,EAAW,IAAA,EAAM,MAAM,cAAc,CAAA;AAEnE,IAAA,MAAM,OAAA,GAAW,MAAM,QAAA,CAAS,WAAW,CAAA;AAC3C,IAAA,OAAO,OAAA,CAAQ,OAAA;AAAA,EACjB;AAAA,EAEA,MAAa,wBAAwB,OAAA,EAAiC;AACpE,IAAA,MAAM,WAAA,GAAc,MAAM,QAAA,CAAS,cAAc,CAAA;AACjD,IAAA,WAAA,CAAY,OAAA,GAAU;AAAA,MACpB,GAAG,WAAA,CAAY,OAAA;AAAA,MACf,GAAG;AAAA,KACL;AACA,IAAA,MAAM,UAAU,cAAA,EAAgB,WAAA,EAAa,EAAE,MAAA,EAAQ,GAAG,CAAA;AAAA,EAC5D;AACF;AAEO,IAAM,WAAA,GAAN,cAA0B,IAAA,CAAK;AAAC;ACzQhC,IAAe,aAAf,MAA0B;AAGjC;AAEO,IAAM,cAAA,GAAN,cAA6B,UAAA,CAAW;AAAA,EACrC,QAAA;AAAA,EAER,YAAY,QAAA,EAAkB;AAC5B,IAAA,KAAA,EAAM;AACN,IAAA,IAAA,CAAK,QAAA,GAAW,QAAA;AAAA,EAClB;AAAA,EAEQ,SAAS,QAAA,EAAmC;AAClD,IAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,EAAS,MAAA,KAAW;AACtC,MAAGC,GAAA,CAAA,QAAA,CAAS,QAAA,EAAU,MAAA,EAAQ,CAAC,KAAmC,IAAA,KAAiB;AACjF,QAAA,IAAI,GAAA,SAAY,GAAG,CAAA;AAAA,qBACN,IAAI,CAAA;AAAA,MACnB,CAAC,CAAA;AAAA,IACH,CAAC,CAAA;AAAA,EACH;AAAA,EAEQ,SAAA,CAAU,EAAE,QAAA,EAAU,IAAA,EAAK,EAAsD;AACvF,IAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,EAAS,MAAA,KAAW;AACtC,MAAGA,GAAA,CAAA,SAAA,CAAU,QAAA,EAAU,IAAA,EAAM,MAAA,EAAQ,CAAC,GAAA,KAAsC;AAC1E,QAAA,IAAI,GAAA,SAAY,GAAG,CAAA;AAAA,aACd,OAAA,EAAQ;AAAA,MACf,CAAC,CAAA;AAAA,IACH,CAAC,CAAA;AAAA,EACH;AAAA,EAEA,MAAc,aAAA,CAAc;AAAA,IAC1B,GAAA;AAAA,IACA,KAAA;AAAA,IACA,WAAW,IAAA,CAAK,QAAA;AAAA,IAChB;AAAA,GACF,EAKoB;AAClB,IAAA,MAAM,QAAQ,IAAI,MAAA,CAAO,CAAA,CAAA,EAAI,GAAG,QAAQ,GAAG,CAAA;AAC3C,IAAA,IAAI,IAAA,CAAK,KAAA,CAAM,KAAK,CAAA,EAAG;AACrB,MAAA,IAAA,GAAO,KAAK,OAAA,CAAQ,KAAA,EAAO,GAAG,GAAG,CAAA,CAAA,EAAI,KAAK,CAAA,CAAE,CAAA;AAAA,IAC9C,CAAA,MAAO;AACL,MAAA,IAAA,IAAQ;AAAA,EAAK,GAAG,IAAI,KAAK,CAAA,CAAA;AAAA,IAC3B;AACA,IAAA,MAAM,IAAA,CAAK,SAAA,CAAU,EAAE,QAAA,EAAU,MAAM,CAAA;AACvC,IAAA,OAAA,CAAQ,GAAA,CAAI,CAAA,EAAG,GAAG,CAAA,QAAA,EAAW,KAAK,CAAA,aAAA,CAAe,CAAA;AACjD,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,MAAM,YAAY,GAAA,EAAqC;AACrD,IAAA,IAAI;AACF,MAAA,MAAM,IAAA,GAAO,MAAM,IAAA,CAAK,QAAA,CAAS,KAAK,QAAQ,CAAA;AAC9C,MAAA,MAAM,QAAQ,IAAI,MAAA,CAAO,CAAA,CAAA,EAAI,GAAG,UAAU,GAAG,CAAA;AAC7C,MAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,KAAK,CAAA;AAC9B,MAAA,OAAO,KAAA,GAAQ,CAAC,CAAA,IAAK,IAAA;AAAA,IACvB,SAAS,GAAA,EAAK;AACZ,MAAA,OAAA,CAAQ,KAAA,CAAM,CAAA,yBAAA,EAA4B,GAAG,CAAA,CAAE,CAAA;AAC/C,MAAA,OAAO,IAAA;AAAA,IACT;AAAA,EACF;AAAA,EAEA,MAAM,WAAA,CAAY,GAAA,EAAa,KAAA,EAA8B;AAC3D,IAAA,IAAI;AACF,MAAA,MAAM,IAAA,GAAO,MAAM,IAAA,CAAK,QAAA,CAAS,KAAK,QAAQ,CAAA;AAC9C,MAAA,MAAM,KAAK,aAAA,CAAc,EAAE,GAAA,EAAK,KAAA,EAAO,MAAM,CAAA;AAAA,IAC/C,SAAS,GAAA,EAAK;AACZ,MAAA,OAAA,CAAQ,KAAA,CAAM,CAAA,yBAAA,EAA4B,GAAG,CAAA,CAAE,CAAA;AAAA,IACjD;AAAA,EACF;AACF,CAAA;ACnEO,IAAM,cAAN,MAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQvB,MAAa,eAAA,CAAgB,SAAA,EAAmB,cAAA,EAAwB,eAAA,EAA2B;AACjG,IAAA,MAAM,UAAA,GAAaC,aAAAA,CAAc,MAAA,CAAA,IAAA,CAAY,GAAG,CAAA;AAChD,IAAA,MAAM,SAAA,GAAYC,IAAAA,CAAK,OAAA,CAAQ,UAAU,CAAA;AACzC,IAAA,MAAM,WAAWA,IAAAA,CAAK,OAAA,CAAQ,SAAA,EAAW,IAAA,EAAM,iBAAiB,SAAS,CAAA;AACzE,IAAA,MAAM,UAAA,GAAaH,YAAAA,CAAG,YAAA,CAAa,QAAA,EAAU,MAAM,CAAA;AAEnD,IAAA,IAAIA,YAAAA,CAAG,UAAA,CAAW,cAAc,CAAA,IAAK,CAAC,eAAA,EAAiB;AACrD,MAAA,OAAA,CAAQ,GAAA,CAAI,CAAA,EAAG,cAAc,CAAA,eAAA,CAAiB,CAAA;AAC9C,MAAA,OAAO,KAAA;AAAA,IACT;AAEA,IAAA,MAAM,OAAA,CAAQ,UAAA,CAAW,cAAA,EAAgB,UAAU,CAAA;AAEnD,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,MAAa,YAAA,CAAa,EAAE,KAAA,EAAM,EAAsB;AACtD,IAAA,MAAM,UAAUG,IAAAA,CAAK,IAAA,CAAK,OAAA,CAAQ,GAAA,IAAO,kBAAkB,CAAA;AAE3D,IAAA,MAAM,OAAA,CAAQ,WAAW,OAAO,CAAA;AAEhC,IAAA,MAAM,cAAA,GAAiB,IAAI,cAAA,CAAe,OAAO,CAAA;AACjD,IAAA,MAAM,cAAA,CAAe,WAAA,CAAY,QAAA,EAAU,KAAK,CAAA;AAAA,EAClD;AAAA,EAEO,qBAAqB,KAAA,EAAyB;AACnD,IAAA,KAAA,MAAW,KAAK,KAAA,EAAO;AACrB,MAAA,IAAIH,YAAAA,CAAG,UAAA,CAAW,CAAC,CAAA,EAAG;AACpB,QAAA,OAAO,CAAA;AAAA,MACT;AAAA,IACF;AAEA,IAAA,MAAM,IAAI,KAAA,CAAM,sDAAA,GAAyD,KAAA,CAAM,IAAA,CAAK,IAAI,CAAC,CAAA;AAAA,EAC3F;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOO,gCAAgC,KAAA,EAAqC;AAC1E,IAAA,KAAA,MAAW,KAAK,KAAA,EAAO;AACrB,MAAA,IAAIA,YAAAA,CAAG,UAAA,CAAW,CAAC,CAAA,EAAG;AACpB,QAAA,OAAO,CAAA;AAAA,MACT;AAAA,IACF;AAEA,IAAA,OAAO,MAAA;AAAA,EACT;AAAA,EAEO,mBAAA,CAAoB;AAAA,IACzB,QAAA;AAAA,IACA;AAAA,GACF,EAGG;AACD,IAAA,IAAI,WAAA,GAAcA,YAAAA,CAAG,YAAA,CAAa,QAAA,EAAU,MAAM,CAAA;AAClD,IAAA,YAAA,CAAa,OAAA,CAAQ,CAAC,EAAE,MAAA,EAAQ,SAAQ,KAAM;AAC5C,MAAA,WAAA,GAAc,WAAA,CAAY,UAAA,CAAW,MAAA,EAAQ,OAAO,CAAA;AAAA,IACtD,CAAC,CAAA;AAED,IAAAA,YAAAA,CAAG,aAAA,CAAc,QAAA,EAAU,WAAW,CAAA;AAAA,EACxC;AACF","file":"chunk-YOULDYHE.js","sourcesContent":["import { spawn } from 'child_process';\nimport { Transform } from 'stream';\nimport type { IMastraLogger } from '@mastra/core/logger';\n\nexport const createPinoStream = (logger: IMastraLogger) => {\n return new Transform({\n transform(chunk, _encoding, callback) {\n // Convert Buffer/string to string and trim whitespace\n const line = chunk.toString().trim();\n\n if (line) {\n console.log(line);\n // Log each line through Pino\n logger.info(line);\n }\n\n // Pass through the original data\n callback(null, chunk);\n },\n });\n};\n\nexport function createChildProcessLogger({ logger, root }: { logger: IMastraLogger; root: string }) {\n const pinoStream = createPinoStream(logger);\n return async ({ cmd, args, env }: { cmd: string; args: string[]; env: Record<string, string> }) => {\n try {\n const subprocess = spawn(cmd, args, {\n cwd: root,\n shell: true,\n env,\n });\n\n // Pipe stdout and stderr through the Pino stream\n subprocess.stdout?.pipe(pinoStream);\n subprocess.stderr?.pipe(pinoStream);\n\n // Wait for the process to complete\n return new Promise((resolve, reject) => {\n subprocess.on('close', code => {\n pinoStream.end();\n if (code === 0) {\n resolve({ success: true });\n } else {\n reject(new Error(`Process exited with code ${code}`));\n }\n });\n\n subprocess.on('error', error => {\n pinoStream.end();\n logger.error('Process failed', { error });\n reject(error);\n });\n });\n } catch (error) {\n console.log(error);\n logger.error('Process failed', { error });\n pinoStream.end();\n return { success: false, error };\n }\n };\n}\n","import fs from 'fs';\nimport fsPromises from 'fs/promises';\nimport path, { dirname } from 'path';\nimport { fileURLToPath } from 'url';\nimport { MastraBase } from '@mastra/core/base';\nimport { readJSON, writeJSON, ensureFile } from 'fs-extra/esm';\nimport type { PackageJson } from 'type-fest';\n\nimport { createChildProcessLogger } from '../deploy/log.js';\n\ntype PackageManager = 'npm' | 'yarn' | 'pnpm' | 'bun';\n\ninterface ArchitectureOptions {\n os?: string[];\n cpu?: string[];\n libc?: string[];\n}\n\nexport class Deps extends MastraBase {\n private packageManager: PackageManager;\n private rootDir: string;\n\n constructor(rootDir = process.cwd()) {\n super({ component: 'DEPLOYER', name: 'DEPS' });\n\n this.rootDir = rootDir;\n this.packageManager = this.getPackageManager();\n }\n\n private findLockFile(dir: string): string | null {\n const lockFiles = ['pnpm-lock.yaml', 'package-lock.json', 'yarn.lock', 'bun.lock'];\n for (const file of lockFiles) {\n if (fs.existsSync(path.join(dir, file))) {\n return file;\n }\n }\n const parentDir = path.resolve(dir, '..');\n if (parentDir !== dir) {\n return this.findLockFile(parentDir);\n }\n return null;\n }\n\n private getPackageManager(): PackageManager {\n const lockFile = this.findLockFile(this.rootDir);\n switch (lockFile) {\n case 'pnpm-lock.yaml':\n return 'pnpm';\n case 'package-lock.json':\n return 'npm';\n case 'yarn.lock':\n return 'yarn';\n case 'bun.lock':\n return 'bun';\n default:\n return 'npm';\n }\n }\n\n public getWorkspaceDependencyPath({ pkgName, version }: { pkgName: string; version: string }) {\n return `file:./workspace-module/${pkgName}-${version}.tgz`;\n }\n\n public async pack({ dir, destination, sanitizedName }: { dir: string; destination: string; sanitizedName: string }) {\n const cpLogger = createChildProcessLogger({\n logger: this.logger,\n root: dir,\n });\n\n let destinationFlag = `--pack-destination ${destination}`;\n if (this.packageManager === 'yarn') {\n // %s includes an '@' at the start of packages names with an '@'\n // so we need to use our sanitizedName instead.\n destinationFlag = `--out ${destination}/${sanitizedName}-%v.tgz`;\n }\n\n return cpLogger({\n cmd: `${this.packageManager} pack ${destinationFlag}`,\n args: [],\n env: {\n PATH: process.env.PATH!,\n },\n });\n }\n\n private async writePnpmConfig(dir: string, options: ArchitectureOptions) {\n const packageJsonPath = path.join(dir, 'package.json');\n const packageJson = await readJSON(packageJsonPath);\n\n packageJson.pnpm = {\n ...packageJson.pnpm,\n supportedArchitectures: {\n os: options.os || [],\n cpu: options.cpu || [],\n libc: options.libc || [],\n },\n };\n\n await writeJSON(packageJsonPath, packageJson, { spaces: 2 });\n }\n\n private async writeYarnConfig(dir: string, options: ArchitectureOptions) {\n const yarnrcPath = path.join(dir, '.yarnrc.yml');\n const config = {\n supportedArchitectures: {\n cpu: options.cpu || [],\n os: options.os || [],\n libc: options.libc || [],\n },\n };\n\n await fsPromises.writeFile(\n yarnrcPath,\n `supportedArchitectures:\\n${Object.entries(config.supportedArchitectures)\n .map(([key, value]) => ` ${key}: ${JSON.stringify(value)}`)\n .join('\\n')}`,\n );\n }\n\n private getNpmArgs(options: ArchitectureOptions): string[] {\n const args: string[] = [];\n if (options.cpu) args.push(`--cpu=${options.cpu.join(',')}`);\n if (options.os) args.push(`--os=${options.os.join(',')}`);\n if (options.libc) args.push(`--libc=${options.libc.join(',')}`);\n return args;\n }\n\n /**\n * Depending on whether we want to install or add a package, this function returns the appropriate commands.\n * All package managers support both commands (e.g. npm install has an alias on \"add\")\n */\n private getPackageManagerCommand(pm: PackageManager, type: 'install' | 'add'): string {\n const cmd = type === 'install' ? 'install' : 'add';\n\n switch (pm) {\n case 'npm':\n return `${cmd} --audit=false --fund=false --loglevel=error --progress=false --update-notifier=false`;\n case 'yarn':\n return `${cmd}`;\n case 'pnpm':\n return cmd === 'install' ? `${cmd} --ignore-workspace --loglevel=error` : `${cmd} --loglevel=error`;\n case 'bun':\n return cmd;\n default:\n return cmd;\n }\n }\n\n public async install({\n dir = this.rootDir,\n architecture,\n }: { dir?: string; architecture?: ArchitectureOptions } = {}) {\n const pm = this.packageManager;\n const installCommand = this.getPackageManagerCommand(pm, 'install');\n let args: string[] = [];\n\n switch (pm) {\n case 'pnpm':\n if (architecture) {\n await this.writePnpmConfig(dir, architecture);\n }\n break;\n case 'yarn':\n // similar to --ignore-workspace but for yarn\n await ensureFile(path.join(dir, 'yarn.lock'));\n if (architecture) {\n await this.writeYarnConfig(dir, architecture);\n }\n break;\n case 'npm':\n if (architecture) {\n args = this.getNpmArgs(architecture);\n }\n break;\n default:\n // Do nothing\n }\n\n const cpLogger = createChildProcessLogger({\n logger: this.logger,\n root: dir,\n });\n\n return cpLogger({\n cmd: `${pm} ${installCommand}`,\n args,\n env: process.env as Record<string, string>,\n });\n }\n\n public async installPackages(packages: string[]) {\n const pm = this.packageManager;\n const installCommand = this.getPackageManagerCommand(pm, 'add');\n\n const env: Record<string, string> = {\n PATH: process.env.PATH!,\n };\n\n if (process.env.npm_config_registry) {\n env.npm_config_registry = process.env.npm_config_registry;\n }\n\n const cpLogger = createChildProcessLogger({\n logger: this.logger,\n root: '',\n });\n\n return cpLogger({\n cmd: `${pm} ${installCommand}`,\n args: packages,\n env,\n });\n }\n\n public async checkDependencies(dependencies: string[]): Promise<string> {\n try {\n const packageJsonPath = path.join(this.rootDir, 'package.json');\n\n try {\n await fsPromises.access(packageJsonPath);\n } catch {\n return 'No package.json file found in the current directory';\n }\n\n const packageJson = await readJSON(packageJsonPath);\n for (const dependency of dependencies) {\n if (!packageJson.dependencies || !packageJson.dependencies[dependency]) {\n return `Please install ${dependency} before running this command (${this.packageManager} install ${dependency})`;\n }\n }\n\n return 'ok';\n } catch (err) {\n console.error(err);\n return 'Could not check dependencies';\n }\n }\n\n public async getProjectName() {\n try {\n const packageJsonPath = path.join(this.rootDir, 'package.json');\n const pkg = await readJSON(packageJsonPath);\n return pkg.name;\n } catch (err) {\n throw err;\n }\n }\n\n public async getPackageVersion() {\n const __filename = fileURLToPath(import.meta.url);\n const __dirname = dirname(__filename);\n const pkgJsonPath = path.join(__dirname, '..', '..', 'package.json');\n\n const content = (await readJSON(pkgJsonPath)) as PackageJson;\n return content.version;\n }\n\n public async addScriptsToPackageJson(scripts: Record<string, string>) {\n const packageJson = await readJSON('package.json');\n packageJson.scripts = {\n ...packageJson.scripts,\n ...scripts,\n };\n await writeJSON('package.json', packageJson, { spaces: 2 });\n }\n}\n\nexport class DepsService extends Deps {}\n","import * as fs from 'fs';\n\nexport abstract class EnvService {\n abstract getEnvValue(key: string): Promise<string | null>;\n abstract setEnvValue(key: string, value: string): Promise<void>;\n}\n\nexport class FileEnvService extends EnvService {\n private filePath: string;\n\n constructor(filePath: string) {\n super();\n this.filePath = filePath;\n }\n\n private readFile(filePath: string): Promise<string> {\n return new Promise((resolve, reject) => {\n fs.readFile(filePath, 'utf8', (err: NodeJS.ErrnoException | null, data: string) => {\n if (err) reject(err);\n else resolve(data);\n });\n });\n }\n\n private writeFile({ filePath, data }: { filePath: string; data: string }): Promise<void> {\n return new Promise((resolve, reject) => {\n fs.writeFile(filePath, data, 'utf8', (err: NodeJS.ErrnoException | null) => {\n if (err) reject(err);\n else resolve();\n });\n });\n }\n\n private async updateEnvData({\n key,\n value,\n filePath = this.filePath,\n data,\n }: {\n key: string;\n value: string;\n filePath?: string;\n data: string;\n }): Promise<string> {\n const regex = new RegExp(`^${key}=.*$`, 'm');\n if (data.match(regex)) {\n data = data.replace(regex, `${key}=${value}`);\n } else {\n data += `\\n${key}=${value}`;\n }\n await this.writeFile({ filePath, data });\n console.log(`${key} set to ${value} in ENV file.`);\n return data;\n }\n\n async getEnvValue(key: string): Promise<string | null> {\n try {\n const data = await this.readFile(this.filePath);\n const regex = new RegExp(`^${key}=(.*)$`, 'm');\n const match = data.match(regex);\n return match?.[1] || null;\n } catch (err) {\n console.error(`Error reading ENV value: ${err}`);\n return null;\n }\n }\n\n async setEnvValue(key: string, value: string): Promise<void> {\n try {\n const data = await this.readFile(this.filePath);\n await this.updateEnvData({ key, value, data });\n } catch (err) {\n console.error(`Error writing ENV value: ${err}`);\n }\n }\n}\n","import fs from 'fs';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\n\nimport fsExtra from 'fs-extra/esm';\n\nimport { FileEnvService } from './env.js';\n\nexport class FileService {\n /**\n *\n * @param inputFile the file in the starter files directory to copy\n * @param outputFilePath the destination path\n * @param replaceIfExists flag to replace if it exists\n * @returns\n */\n public async copyStarterFile(inputFile: string, outputFilePath: string, replaceIfExists?: boolean) {\n const __filename = fileURLToPath(import.meta.url);\n const __dirname = path.dirname(__filename);\n const filePath = path.resolve(__dirname, '..', 'starter-files', inputFile);\n const fileString = fs.readFileSync(filePath, 'utf8');\n\n if (fs.existsSync(outputFilePath) && !replaceIfExists) {\n console.log(`${outputFilePath} already exists`);\n return false;\n }\n\n await fsExtra.outputFile(outputFilePath, fileString);\n\n return true;\n }\n\n public async setupEnvFile({ dbUrl }: { dbUrl: string }) {\n const envPath = path.join(process.cwd(), '.env.development');\n\n await fsExtra.ensureFile(envPath);\n\n const fileEnvService = new FileEnvService(envPath);\n await fileEnvService.setEnvValue('DB_URL', dbUrl);\n }\n\n public getFirstExistingFile(files: string[]): string {\n for (const f of files) {\n if (fs.existsSync(f)) {\n return f;\n }\n }\n\n throw new Error('Missing required file, checked the following paths: ' + files.join(', '));\n }\n\n /**\n * Returns the first existing file from the provided array, or undefined if none exist\n * @param files array of file paths to check\n * @returns the first existing file path or undefined\n */\n public getFirstExistingFileOrUndefined(files: string[]): string | undefined {\n for (const f of files) {\n if (fs.existsSync(f)) {\n return f;\n }\n }\n\n return undefined;\n }\n\n public replaceValuesInFile({\n filePath,\n replacements,\n }: {\n filePath: string;\n replacements: { search: string; replace: string }[];\n }) {\n let fileContent = fs.readFileSync(filePath, 'utf8');\n replacements.forEach(({ search, replace }) => {\n fileContent = fileContent.replaceAll(search, replace);\n });\n\n fs.writeFileSync(filePath, fileContent);\n }\n}\n"]}
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
- var chunkKVBYKVQQ_cjs = require('./chunk-KVBYKVQQ.cjs');
4
- var chunkHFSNFLSA_cjs = require('./chunk-HFSNFLSA.cjs');
5
- var chunkNK2IP3RO_cjs = require('./chunk-NK2IP3RO.cjs');
3
+ var chunkJOCAZKZ5_cjs = require('./chunk-JOCAZKZ5.cjs');
4
+ var chunkT4L3WY7M_cjs = require('./chunk-T4L3WY7M.cjs');
6
5
  var rollup = require('rollup');
6
+ var findWorkspaces = require('find-workspaces');
7
7
  var path = require('path');
8
8
  var resolveFrom = require('resolve-from');
9
9
  var module$1 = require('module');
@@ -60,7 +60,7 @@ function nodeModulesExtensionResolver() {
60
60
  for (const ext of [".mjs", ".js", ".cjs"]) {
61
61
  const resolved2 = safeResolve(id + ext, importer);
62
62
  if (resolved2) {
63
- const pkgName = chunkKVBYKVQQ_cjs.getPackageName(id);
63
+ const pkgName = chunkT4L3WY7M_cjs.getPackageName(id);
64
64
  if (!pkgName) {
65
65
  return null;
66
66
  }
@@ -82,18 +82,29 @@ function nodeModulesExtensionResolver() {
82
82
  }
83
83
  async function getInputOptions2(entryFile, platform, env, { sourcemap = false, transpilePackages = [] } = {}) {
84
84
  const dependencies = /* @__PURE__ */ new Map();
85
- const workspaceMap = await chunkKVBYKVQQ_cjs.createWorkspacePackageMap();
85
+ const workspaceMap = await chunkT4L3WY7M_cjs.createWorkspacePackageMap();
86
+ const workspaceRoot = findWorkspaces.findWorkspacesRoot()?.location;
87
+ const depsToOptimize = /* @__PURE__ */ new Map();
86
88
  if (transpilePackages.length) {
87
- const { output, reverseVirtualReferenceMap } = await chunkKVBYKVQQ_cjs.bundleExternals(
88
- new Map(
89
- transpilePackages.map((pkg) => [pkg, { exports: ["*"], rootPath: null, isWorkspace: workspaceMap.has(pkg) }])
90
- ),
89
+ for (const pkg of transpilePackages) {
90
+ const isWorkspace = workspaceMap.has(pkg);
91
+ const exports = ["*"];
92
+ const pkgName = chunkT4L3WY7M_cjs.getPackageName(pkg);
93
+ let rootPath = null;
94
+ if (pkgName && pkgName !== "#tools") {
95
+ rootPath = await chunkT4L3WY7M_cjs.getPackageRootPath(pkgName);
96
+ }
97
+ depsToOptimize.set(pkg, { exports, isWorkspace, rootPath });
98
+ }
99
+ const { output, reverseVirtualReferenceMap } = await chunkT4L3WY7M_cjs.bundleExternals(
100
+ depsToOptimize,
91
101
  ".mastra/.build",
92
102
  logger.noopLogger,
93
103
  {
94
104
  transpilePackages,
95
105
  isDev: true
96
- }
106
+ },
107
+ { workspaceRoot, workspaceMap }
97
108
  );
98
109
  for (const file of output) {
99
110
  if (file.type === "asset") {
@@ -104,7 +115,7 @@ async function getInputOptions2(entryFile, platform, env, { sourcemap = false, t
104
115
  }
105
116
  }
106
117
  }
107
- const inputOptions = await chunkHFSNFLSA_cjs.getInputOptions(
118
+ const inputOptions = await chunkJOCAZKZ5_cjs.getInputOptions(
108
119
  entryFile,
109
120
  {
110
121
  dependencies,
@@ -114,7 +125,7 @@ async function getInputOptions2(entryFile, platform, env, { sourcemap = false, t
114
125
  },
115
126
  platform,
116
127
  env,
117
- { sourcemap }
128
+ { sourcemap, isDev: true, workspaceRoot }
118
129
  );
119
130
  if (Array.isArray(inputOptions.plugins)) {
120
131
  const plugins = [];
@@ -124,7 +135,7 @@ async function getInputOptions2(entryFile, platform, env, { sourcemap = false, t
124
135
  }
125
136
  if (plugin?.name === "tsconfig-paths") {
126
137
  plugins.push(
127
- chunkNK2IP3RO_cjs.tsConfigPaths({
138
+ chunkT4L3WY7M_cjs.tsConfigPaths({
128
139
  localResolve: true
129
140
  })
130
141
  );
@@ -133,7 +144,7 @@ async function getInputOptions2(entryFile, platform, env, { sourcemap = false, t
133
144
  plugins.push(plugin);
134
145
  });
135
146
  inputOptions.plugins = plugins;
136
- inputOptions.plugins.push(chunkKVBYKVQQ_cjs.aliasHono());
147
+ inputOptions.plugins.push(chunkT4L3WY7M_cjs.aliasHono());
137
148
  inputOptions.plugins.push(nodeModulesExtensionResolver());
138
149
  }
139
150
  return inputOptions;
@@ -153,12 +164,12 @@ async function createWatcher(inputOptions, outputOptions) {
153
164
 
154
165
  // src/build/babel/remove-all-options-server.ts
155
166
  function removeAllOptionsExceptServer(result, logger) {
156
- return chunkKVBYKVQQ_cjs.removeAllOptionsFromMastraExcept(result, "server", logger);
167
+ return chunkT4L3WY7M_cjs.removeAllOptionsFromMastraExcept(result, "server", logger);
157
168
  }
158
169
 
159
170
  // src/build/serverOptions.ts
160
171
  async function getServerOptions(entryFile, outputDir, logger) {
161
- const result = await chunkKVBYKVQQ_cjs.extractMastraOption(
172
+ const result = await chunkT4L3WY7M_cjs.extractMastraOption(
162
173
  "server",
163
174
  entryFile,
164
175
  removeAllOptionsExceptServer,
@@ -174,5 +185,5 @@ async function getServerOptions(entryFile, outputDir, logger) {
174
185
  exports.createWatcher = createWatcher;
175
186
  exports.getInputOptions = getInputOptions2;
176
187
  exports.getServerOptions = getServerOptions;
177
- //# sourceMappingURL=chunk-WSYCRXET.cjs.map
178
- //# sourceMappingURL=chunk-WSYCRXET.cjs.map
188
+ //# sourceMappingURL=chunk-ZQJDMTCN.cjs.map
189
+ //# sourceMappingURL=chunk-ZQJDMTCN.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/build/plugins/node-modules-extension-resolver.ts","../src/build/watcher.ts","../src/build/babel/remove-all-options-server.ts","../src/build/serverOptions.ts"],"names":["builtinModules","resolveFrom","extname","resolved","getPackageName","dirname","getInputOptions","createWorkspacePackageMap","findWorkspacesRoot","getPackageRootPath","bundleExternals","noopLogger","tsConfigPaths","aliasHono","watch","removeAllOptionsFromMastraExcept","extractMastraOption"],"mappings":"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","file":"chunk-ZQJDMTCN.cjs","sourcesContent":["import { dirname, extname } from 'path';\nimport resolveFrom from 'resolve-from';\nimport type { Plugin } from 'rollup';\nimport { builtinModules } from 'node:module';\nimport { getPackageName } from '../utils';\n\n/**\n * Check if a module is a Node.js builtin module\n * @param specifier - Module specifier\n * @returns True if it's a builtin module\n */\nfunction isBuiltinModule(specifier: string): boolean {\n return (\n builtinModules.includes(specifier) ||\n specifier.startsWith('node:') ||\n builtinModules.includes(specifier.replace(/^node:/, ''))\n );\n}\n\nfunction safeResolve(id: string, importer: string) {\n try {\n return resolveFrom(importer, id);\n } catch {\n return null;\n }\n}\n\n// we only need this for dev, so we can resolve the js extension of the module as we do not use node-resolve\nexport function nodeModulesExtensionResolver(): Plugin {\n return {\n name: 'node-modules-extension-resolver',\n resolveId(id, importer) {\n // if is relative, skip\n if (id.startsWith('.') || id.startsWith('/') || !importer) {\n return null;\n }\n\n if (isBuiltinModule(id)) {\n return null;\n }\n\n // if it's a scoped direct import skip\n if (id.startsWith('@') && id.split('/').length === 2) {\n return null;\n }\n\n // if it's a direct import, skip\n if (!id.startsWith('@') && id.split('/').length === 1) {\n return null;\n }\n\n const foundExt = extname(id);\n if (foundExt) {\n return null;\n }\n\n try {\n // if we cannot resolve it, it means it's a legacy module\n const resolved = import.meta.resolve(id);\n\n if (!extname(resolved)) {\n throw new Error(`Cannot resolve ${id} from ${importer}`);\n }\n\n return null;\n } catch (e) {\n // try to do a node like resolve first\n const resolved = safeResolve(id, importer);\n if (resolved) {\n return {\n id: resolved,\n external: true,\n };\n }\n\n for (const ext of ['.mjs', '.js', '.cjs']) {\n const resolved = safeResolve(id + ext, importer);\n if (resolved) {\n const pkgName = getPackageName(id);\n if (!pkgName) {\n return null;\n }\n\n const pkgJsonPath = safeResolve(`${pkgName}/package.json`, importer);\n if (!pkgJsonPath) {\n return null;\n }\n\n const newImportWithExtension = resolved.replace(dirname(pkgJsonPath), pkgName);\n\n return {\n id: newImportWithExtension,\n external: true,\n };\n }\n }\n }\n\n return null;\n },\n } satisfies Plugin;\n}\n","import type { InputOptions, OutputOptions, Plugin } from 'rollup';\nimport { watch } from 'rollup';\nimport { findWorkspacesRoot } from 'find-workspaces';\nimport { getInputOptions as getBundlerInputOptions } from './bundler';\nimport { aliasHono } from './plugins/hono-alias';\nimport { nodeModulesExtensionResolver } from './plugins/node-modules-extension-resolver';\nimport { tsConfigPaths } from './plugins/tsconfig-paths';\nimport { bundleExternals } from './analyze';\nimport { noopLogger } from '@mastra/core/logger';\nimport { createWorkspacePackageMap } from '../bundler/workspaceDependencies';\nimport type { DependencyMetadata } from './types';\nimport { getPackageName, getPackageRootPath } from './utils';\n\nexport async function getInputOptions(\n entryFile: string,\n platform: 'node' | 'browser',\n env?: Record<string, string>,\n { sourcemap = false, transpilePackages = [] }: { sourcemap?: boolean; transpilePackages?: string[] } = {},\n) {\n const dependencies = new Map<string, string>();\n const workspaceMap = await createWorkspacePackageMap();\n const workspaceRoot = findWorkspacesRoot()?.location;\n const depsToOptimize = new Map<string, DependencyMetadata>();\n\n if (transpilePackages.length) {\n for (const pkg of transpilePackages) {\n const isWorkspace = workspaceMap.has(pkg);\n const exports = ['*'];\n\n const pkgName = getPackageName(pkg);\n let rootPath: string | null = null;\n\n if (pkgName && pkgName !== '#tools') {\n rootPath = await getPackageRootPath(pkgName);\n }\n\n depsToOptimize.set(pkg, { exports, isWorkspace, rootPath });\n }\n\n const { output, reverseVirtualReferenceMap } = await bundleExternals(\n depsToOptimize,\n '.mastra/.build',\n noopLogger,\n {\n transpilePackages,\n isDev: true,\n },\n { workspaceRoot, workspaceMap },\n );\n\n for (const file of output) {\n if (file.type === 'asset') {\n continue;\n }\n\n if (file.isEntry && reverseVirtualReferenceMap.has(file.name)) {\n dependencies.set(reverseVirtualReferenceMap.get(file.name)!, file.fileName);\n }\n }\n }\n\n const inputOptions = await getBundlerInputOptions(\n entryFile,\n {\n dependencies,\n externalDependencies: new Set(),\n invalidChunks: new Set(),\n workspaceMap,\n },\n platform,\n env,\n { sourcemap, isDev: true, workspaceRoot },\n );\n\n if (Array.isArray(inputOptions.plugins)) {\n // filter out node-resolve plugin so all node_modules are external\n // and tsconfig-paths plugin as we are injection a custom one\n const plugins = [] as Plugin[];\n inputOptions.plugins.forEach(plugin => {\n if ((plugin as Plugin | undefined)?.name === 'node-resolve') {\n return;\n }\n\n if ((plugin as Plugin | undefined)?.name === 'tsconfig-paths') {\n plugins.push(\n tsConfigPaths({\n localResolve: true,\n }),\n );\n return;\n }\n\n plugins.push(plugin as Plugin);\n });\n\n inputOptions.plugins = plugins;\n inputOptions.plugins.push(aliasHono());\n // fixes imports like lodash/fp/get\n inputOptions.plugins.push(nodeModulesExtensionResolver());\n }\n\n return inputOptions;\n}\n\nexport async function createWatcher(inputOptions: InputOptions, outputOptions: OutputOptions) {\n const watcher = await watch({\n ...inputOptions,\n output: {\n ...outputOptions,\n format: 'esm',\n entryFileNames: '[name].mjs',\n chunkFileNames: '[name].mjs',\n },\n });\n\n return watcher;\n}\n","import { removeAllOptionsFromMastraExcept } from './remove-all-options-except';\nimport type { IMastraLogger } from '@mastra/core/logger';\n\nexport function removeAllOptionsExceptServer(result: { hasCustomConfig: boolean }, logger?: IMastraLogger) {\n return removeAllOptionsFromMastraExcept(result, 'server', logger);\n}\n","import { removeAllOptionsExceptServer } from './babel/remove-all-options-server';\nimport type { Config } from '@mastra/core/mastra';\nimport { extractMastraOption, extractMastraOptionBundler } from './shared/extract-mastra-option';\nimport type { IMastraLogger } from '@mastra/core/logger';\n\nexport function getServerOptionsBundler(\n entryFile: string,\n result: {\n hasCustomConfig: false;\n },\n) {\n return extractMastraOptionBundler('server', entryFile, removeAllOptionsExceptServer, result);\n}\n\nexport async function getServerOptions(\n entryFile: string,\n outputDir: string,\n logger?: IMastraLogger,\n): Promise<Config['server'] | null> {\n const result = await extractMastraOption<Config['server']>(\n 'server',\n entryFile,\n removeAllOptionsExceptServer,\n outputDir,\n logger,\n );\n if (!result) {\n return null;\n }\n\n return result.getConfig();\n}\n"]}
package/dist/index.cjs CHANGED
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
- var chunkFOPPWICF_cjs = require('./chunk-FOPPWICF.cjs');
4
- var chunkKVBYKVQQ_cjs = require('./chunk-KVBYKVQQ.cjs');
5
- var chunkAM2S5WCK_cjs = require('./chunk-AM2S5WCK.cjs');
3
+ var chunkOUS376P4_cjs = require('./chunk-OUS376P4.cjs');
4
+ var chunkT4L3WY7M_cjs = require('./chunk-T4L3WY7M.cjs');
5
+ var chunkHR2HOA5D_cjs = require('./chunk-HR2HOA5D.cjs');
6
6
 
7
7
  // src/deploy/base.ts
8
- var Deployer = class extends chunkFOPPWICF_cjs.Bundler {
9
- deps = new chunkAM2S5WCK_cjs.DepsService();
8
+ var Deployer = class extends chunkOUS376P4_cjs.Bundler {
9
+ deps = new chunkHR2HOA5D_cjs.DepsService();
10
10
  constructor(args) {
11
11
  super(args.name, "DEPLOYER");
12
12
  this.deps.__setLogger(this.logger);
@@ -14,7 +14,7 @@ var Deployer = class extends chunkFOPPWICF_cjs.Bundler {
14
14
  getEnvFiles() {
15
15
  const possibleFiles = [".env.production", ".env.local", ".env"];
16
16
  try {
17
- const fileService = new chunkAM2S5WCK_cjs.FileService();
17
+ const fileService = new chunkHR2HOA5D_cjs.FileService();
18
18
  const envFile = fileService.getFirstExistingFile(possibleFiles);
19
19
  return Promise.resolve([envFile]);
20
20
  } catch {
@@ -25,12 +25,12 @@ var Deployer = class extends chunkFOPPWICF_cjs.Bundler {
25
25
 
26
26
  // src/build/babel/remove-all-options-deployer.ts
27
27
  function removeAllOptionsExceptDeployer(result, logger) {
28
- return chunkKVBYKVQQ_cjs.removeAllOptionsFromMastraExcept(result, "deployer", logger);
28
+ return chunkT4L3WY7M_cjs.removeAllOptionsFromMastraExcept(result, "deployer", logger);
29
29
  }
30
30
 
31
31
  // src/build/deployer.ts
32
32
  async function getDeployer(entryFile, outputDir, logger) {
33
- const result = await chunkKVBYKVQQ_cjs.extractMastraOption(
33
+ const result = await chunkT4L3WY7M_cjs.extractMastraOption(
34
34
  "deployer",
35
35
  entryFile,
36
36
  removeAllOptionsExceptDeployer,
@@ -45,19 +45,19 @@ async function getDeployer(entryFile, outputDir, logger) {
45
45
 
46
46
  Object.defineProperty(exports, "Deps", {
47
47
  enumerable: true,
48
- get: function () { return chunkAM2S5WCK_cjs.Deps; }
48
+ get: function () { return chunkHR2HOA5D_cjs.Deps; }
49
49
  });
50
50
  Object.defineProperty(exports, "FileService", {
51
51
  enumerable: true,
52
- get: function () { return chunkAM2S5WCK_cjs.FileService; }
52
+ get: function () { return chunkHR2HOA5D_cjs.FileService; }
53
53
  });
54
54
  Object.defineProperty(exports, "createChildProcessLogger", {
55
55
  enumerable: true,
56
- get: function () { return chunkAM2S5WCK_cjs.createChildProcessLogger; }
56
+ get: function () { return chunkHR2HOA5D_cjs.createChildProcessLogger; }
57
57
  });
58
58
  Object.defineProperty(exports, "createPinoStream", {
59
59
  enumerable: true,
60
- get: function () { return chunkAM2S5WCK_cjs.createPinoStream; }
60
+ get: function () { return chunkHR2HOA5D_cjs.createPinoStream; }
61
61
  });
62
62
  exports.Deployer = Deployer;
63
63
  exports.getDeployer = getDeployer;
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
- import { Bundler } from './chunk-2GPZM6PP.js';
2
- import { extractMastraOption, removeAllOptionsFromMastraExcept } from './chunk-HUAOVISC.js';
3
- import { DepsService, FileService } from './chunk-DG6YR6QC.js';
4
- export { Deps, FileService, createChildProcessLogger, createPinoStream } from './chunk-DG6YR6QC.js';
1
+ import { Bundler } from './chunk-O7OB4KG5.js';
2
+ import { extractMastraOption, removeAllOptionsFromMastraExcept } from './chunk-5ZHIZCMJ.js';
3
+ import { DepsService, FileService } from './chunk-YOULDYHE.js';
4
+ export { Deps, FileService, createChildProcessLogger, createPinoStream } from './chunk-YOULDYHE.js';
5
5
 
6
6
  // src/deploy/base.ts
7
7
  var Deployer = class extends Bundler {
@@ -1 +1 @@
1
- {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../../../src/server/handlers/routes/observability/handlers.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAGpC,wBAAsB,iBAAiB,CAAC,CAAC,EAAE,OAAO,qBAkBjD;AAED,wBAAsB,2BAA2B,CAAC,CAAC,EAAE,OAAO,qBAqD3D"}
1
+ {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../../../src/server/handlers/routes/observability/handlers.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAGpC,wBAAsB,iBAAiB,CAAC,CAAC,EAAE,OAAO,qBAkBjD;AAED,wBAAsB,2BAA2B,CAAC,CAAC,EAAE,OAAO,qBAoD3D"}
@@ -785,7 +785,7 @@ var middleware = (options) => async (c2) => {
785
785
  );
786
786
  };
787
787
 
788
- // ../../node_modules/.pnpm/hono-openapi@0.4.8_hono@4.8.12_openapi-types@12.1.3_zod@3.25.76/node_modules/hono-openapi/utils.js
788
+ // ../../node_modules/.pnpm/hono-openapi@0.4.8_hono@4.9.6_openapi-types@12.1.3_zod@3.25.76/node_modules/hono-openapi/utils.js
789
789
  var e = Symbol("openapi");
790
790
  var n = ["GET", "PUT", "POST", "DELETE", "OPTIONS", "HEAD", "PATCH", "TRACE"];
791
791
  var s2 = (e2) => e2.charAt(0).toUpperCase() + e2.slice(1);
@@ -8572,7 +8572,7 @@ async function getAITraceHandler(c2) {
8572
8572
  async function getAITracesPaginatedHandler(c2) {
8573
8573
  try {
8574
8574
  const mastra = c2.get("mastra");
8575
- const { page, perPage, name, spanType, start, end } = c2.req.query();
8575
+ const { page, perPage, name, spanType, dateRange, entityId, entityType } = c2.req.query();
8576
8576
  const pagination = {
8577
8577
  page: parseInt(page || "0"),
8578
8578
  perPage: parseInt(perPage || "10")
@@ -8586,23 +8586,23 @@ async function getAITracesPaginatedHandler(c2) {
8586
8586
  return c2.json({ error: "Invalid spanType" }, 400);
8587
8587
  }
8588
8588
  }
8589
- const dateRange = {};
8590
- if (start) {
8591
- try {
8592
- dateRange.start = new Date(start);
8593
- } catch {
8594
- return c2.json({ error: "Invalid start date" }, 400);
8595
- }
8589
+ if (entityId && entityType && (entityType === "agent" || entityType === "workflow")) {
8590
+ filters.entityId = entityId;
8591
+ filters.entityType = entityType;
8596
8592
  }
8597
- if (end) {
8593
+ let start;
8594
+ let end;
8595
+ if (dateRange) {
8598
8596
  try {
8599
- dateRange.end = new Date(end);
8597
+ const parsedDateRange = JSON.parse(dateRange);
8598
+ start = parsedDateRange.start ? new Date(parsedDateRange.start) : void 0;
8599
+ end = parsedDateRange.end ? new Date(parsedDateRange.end) : void 0;
8600
8600
  } catch {
8601
- return c2.json({ error: "Invalid end date" }, 400);
8601
+ return c2.json({ error: "Invalid start date" }, 400);
8602
8602
  }
8603
8603
  }
8604
- if (Object.keys(dateRange).length > 0) {
8605
- pagination.dateRange = dateRange;
8604
+ if (start || end) {
8605
+ pagination.dateRange = { start, end };
8606
8606
  }
8607
8607
  const result = await observability.getAITracesPaginatedHandler({
8608
8608
  mastra,