@mastra/deployer 0.20.2 → 0.21.0-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 (60) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/dist/build/analyze/bundleExternals.d.ts +4 -1
  3. package/dist/build/analyze/bundleExternals.d.ts.map +1 -1
  4. package/dist/build/analyze/constants.d.ts.map +1 -1
  5. package/dist/build/analyze.cjs +2 -2
  6. package/dist/build/analyze.d.ts +0 -1
  7. package/dist/build/analyze.d.ts.map +1 -1
  8. package/dist/build/analyze.js +1 -1
  9. package/dist/build/bundler.cjs +3 -3
  10. package/dist/build/bundler.d.ts.map +1 -1
  11. package/dist/build/bundler.js +1 -1
  12. package/dist/build/index.cjs +12 -12
  13. package/dist/build/index.js +4 -4
  14. package/dist/build/utils.d.ts +15 -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 +0 -1
  19. package/dist/bundler/index.d.ts.map +1 -1
  20. package/dist/bundler/index.js +1 -1
  21. package/dist/{chunk-QZSRLR5Y.cjs → chunk-2CUDKTKP.cjs} +123 -113
  22. package/dist/chunk-2CUDKTKP.cjs.map +1 -0
  23. package/dist/{chunk-B3MAF4HY.cjs → chunk-5SPPZCO3.cjs} +9 -16
  24. package/dist/chunk-5SPPZCO3.cjs.map +1 -0
  25. package/dist/{chunk-J6ARA5AG.js → chunk-64ACONK3.js} +3 -3
  26. package/dist/{chunk-J6ARA5AG.js.map → chunk-64ACONK3.js.map} +1 -1
  27. package/dist/{chunk-ZGEIJUOE.js → chunk-6A62K4JQ.js} +9 -38
  28. package/dist/chunk-6A62K4JQ.js.map +1 -0
  29. package/dist/{chunk-IJ5XDUJI.js → chunk-F7QNENXR.js} +4 -5
  30. package/dist/chunk-F7QNENXR.js.map +1 -0
  31. package/dist/{chunk-4JSGBXG4.cjs → chunk-LZS5FBY3.cjs} +14 -15
  32. package/dist/chunk-LZS5FBY3.cjs.map +1 -0
  33. package/dist/{chunk-75YMBRRS.cjs → chunk-QLJCHPRX.cjs} +19 -48
  34. package/dist/chunk-QLJCHPRX.cjs.map +1 -0
  35. package/dist/{chunk-XJH6DNVG.cjs → chunk-SFQW6M3F.cjs} +5 -5
  36. package/dist/{chunk-XJH6DNVG.cjs.map → chunk-SFQW6M3F.cjs.map} +1 -1
  37. package/dist/{chunk-36JTHYM2.js → chunk-TJ26OQXP.js} +124 -111
  38. package/dist/chunk-TJ26OQXP.js.map +1 -0
  39. package/dist/{chunk-LV3YJXBH.js → chunk-YTJ4ERJ6.js} +3 -10
  40. package/dist/chunk-YTJ4ERJ6.js.map +1 -0
  41. package/dist/index.cjs +5 -5
  42. package/dist/index.js +2 -2
  43. package/dist/server/handlers/a2a.d.ts +1 -1
  44. package/dist/server/handlers/routes/agents/handlers.d.ts +4 -4
  45. package/dist/server/handlers/routes/agents/router.d.ts.map +1 -1
  46. package/dist/server/handlers/routes/scores/handlers.d.ts +143 -113
  47. package/dist/server/handlers/routes/scores/handlers.d.ts.map +1 -1
  48. package/dist/server/index.cjs +49 -3
  49. package/dist/server/index.cjs.map +1 -1
  50. package/dist/server/index.js +49 -3
  51. package/dist/server/index.js.map +1 -1
  52. package/package.json +7 -7
  53. package/dist/chunk-36JTHYM2.js.map +0 -1
  54. package/dist/chunk-4JSGBXG4.cjs.map +0 -1
  55. package/dist/chunk-75YMBRRS.cjs.map +0 -1
  56. package/dist/chunk-B3MAF4HY.cjs.map +0 -1
  57. package/dist/chunk-IJ5XDUJI.js.map +0 -1
  58. package/dist/chunk-LV3YJXBH.js.map +0 -1
  59. package/dist/chunk-QZSRLR5Y.cjs.map +0 -1
  60. package/dist/chunk-ZGEIJUOE.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/build/customInstrumentation.ts","../src/bundler/index.ts"],"names":["rollup","esbuild","commonjs","MastraBundler","emptyDir","ensureDir","join","dirname","fileURLToPath","copy","writeFile","createBundler","analyzeBundle","DepsService","stat","getWorkspaceInformation","pkg","getInputOptions","existsSync","virtual","glob","path","fsExtra","FileService","getBundlerOptions","error","MastraError","ErrorDomain","ErrorCategory","writeTelemetryConfig","getPackageRootPath","readJSON"],"mappings":"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","file":"chunk-QLJCHPRX.cjs","sourcesContent":["import { rollup } from 'rollup';\nimport { esbuild } from './plugins/esbuild';\nimport commonjs from '@rollup/plugin-commonjs';\n\nexport function getCustomInstrumentationBundler(\n entryFile: string,\n result: {\n hasCustomConfig: false;\n },\n) {\n return rollup({\n logLevel: 'silent',\n input: {\n instrumentation: entryFile,\n },\n treeshake: false,\n plugins: [\n // transpile typescript to something we understand\n esbuild(),\n commonjs({\n extensions: ['.js', '.ts'],\n strictRequires: 'strict',\n transformMixedEsModules: true,\n ignoreTryCatch: false,\n }),\n ],\n });\n}\n\nexport async function writeCustomInstrumentation(\n entryFile: string,\n outputDir: string,\n options: {\n sourcemap?: boolean;\n } = {},\n): Promise<{\n hasCustomConfig: boolean;\n externalDependencies: string[];\n}> {\n const result = {\n hasCustomConfig: false,\n } as const;\n\n const bundle = await getCustomInstrumentationBundler(entryFile, result);\n\n const { output } = await bundle.write({\n dir: outputDir,\n format: 'es',\n entryFileNames: '[name].mjs',\n sourcemap: options.sourcemap,\n });\n const externals = output[0].imports.filter(x => !x.startsWith('./'));\n\n return { ...result, externalDependencies: externals };\n}\n","import { existsSync } from 'node:fs';\nimport { stat, writeFile } from 'node:fs/promises';\nimport { dirname, join } from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport { MastraBundler } from '@mastra/core/bundler';\nimport { MastraError, ErrorDomain, ErrorCategory } from '@mastra/core/error';\nimport virtual from '@rollup/plugin-virtual';\nimport * as pkg from 'empathic/package';\nimport fsExtra, { copy, ensureDir, readJSON, emptyDir } from 'fs-extra/esm';\nimport type { InputOptions, OutputOptions } from 'rollup';\nimport { glob } from 'tinyglobby';\nimport { analyzeBundle } from '../build/analyze';\nimport { createBundler as createBundlerUtil, getInputOptions } from '../build/bundler';\nimport { getBundlerOptions } from '../build/bundlerOptions';\nimport { writeCustomInstrumentation } from '../build/customInstrumentation';\nimport { writeTelemetryConfig } from '../build/telemetry';\nimport { getPackageRootPath } from '../build/utils';\nimport { DepsService } from '../services/deps';\nimport { FileService } from '../services/fs';\nimport { getWorkspaceInformation } from './workspaceDependencies';\n\nexport abstract class Bundler extends MastraBundler {\n protected analyzeOutputDir = '.build';\n protected outputDir = 'output';\n\n constructor(name: string, component: 'BUNDLER' | 'DEPLOYER' = 'BUNDLER') {\n super({ name, component });\n }\n\n async prepare(outputDirectory: string): Promise<void> {\n // Clean up the output directory first\n await emptyDir(outputDirectory);\n\n await ensureDir(join(outputDirectory, this.analyzeOutputDir));\n await ensureDir(join(outputDirectory, this.outputDir));\n }\n\n async writeInstrumentationFile(outputDirectory: string, customInstrumentationFile?: string) {\n const instrumentationFile = join(outputDirectory, 'instrumentation.mjs');\n const __dirname = dirname(fileURLToPath(import.meta.url));\n\n if (customInstrumentationFile) {\n await copy(customInstrumentationFile, instrumentationFile);\n } else {\n await copy(join(__dirname, 'templates', 'instrumentation-template.js'), instrumentationFile);\n }\n }\n\n async writePackageJson(\n outputDirectory: string,\n dependencies: Map<string, string>,\n resolutions?: Record<string, string>,\n ) {\n this.logger.debug(`Writing project's package.json`);\n\n await ensureDir(outputDirectory);\n const pkgPath = join(outputDirectory, 'package.json');\n\n const dependenciesMap = new Map();\n for (const [key, value] of dependencies.entries()) {\n if (key.startsWith('@')) {\n // Handle scoped packages (e.g. @org/package)\n const pkgChunks = key.split('/');\n dependenciesMap.set(`${pkgChunks[0]}/${pkgChunks[1]}`, value);\n } else {\n // For non-scoped packages, take only the first part before any slash\n const pkgName = key.split('/')[0] || key;\n dependenciesMap.set(pkgName, value);\n }\n }\n\n // add telemetry dependencies\n dependenciesMap.set('@opentelemetry/core', '^2.0.1');\n dependenciesMap.set('@opentelemetry/api', '^1.9.0');\n dependenciesMap.set('@opentelemetry/auto-instrumentations-node', '^0.59.0');\n dependenciesMap.set('@opentelemetry/exporter-trace-otlp-grpc', '^0.201.0');\n dependenciesMap.set('@opentelemetry/exporter-trace-otlp-http', '^0.201.0');\n dependenciesMap.set('@opentelemetry/resources', '^2.0.1');\n dependenciesMap.set('@opentelemetry/sdk-node', '^0.201.0');\n dependenciesMap.set('@opentelemetry/sdk-trace-base', '^2.0.1');\n dependenciesMap.set('@opentelemetry/semantic-conventions', '^1.33.0');\n dependenciesMap.set('@opentelemetry/instrumentation', '^0.202.0');\n\n await writeFile(\n pkgPath,\n JSON.stringify(\n {\n name: 'server',\n version: '1.0.0',\n description: '',\n type: 'module',\n main: 'index.mjs',\n scripts: {\n start: 'node --import=./instrumentation.mjs --import=@opentelemetry/instrumentation/hook.mjs ./index.mjs',\n },\n author: 'Mastra',\n license: 'ISC',\n dependencies: Object.fromEntries(dependenciesMap.entries()),\n ...(Object.keys(resolutions ?? {}).length > 0 && { resolutions }),\n pnpm: {\n neverBuiltDependencies: [],\n },\n },\n null,\n 2,\n ),\n );\n }\n\n protected createBundler(inputOptions: InputOptions, outputOptions: Partial<OutputOptions> & { dir: string }) {\n return createBundlerUtil(inputOptions, outputOptions);\n }\n\n protected async analyze(\n entry: string | string[],\n mastraFile: string,\n outputDirectory: string,\n { enableEsmShim = true }: { enableEsmShim?: boolean } = {},\n ) {\n return await analyzeBundle(\n ([] as string[]).concat(entry),\n mastraFile,\n {\n outputDir: join(outputDirectory, this.analyzeOutputDir),\n projectRoot: outputDirectory,\n platform: 'node',\n bundlerOptions: {\n enableEsmShim,\n },\n },\n this.logger,\n );\n }\n\n protected async installDependencies(outputDirectory: string, rootDir = process.cwd()) {\n const deps = new DepsService(rootDir);\n deps.__setLogger(this.logger);\n\n await deps.install({ dir: join(outputDirectory, this.outputDir) });\n }\n\n protected async copyPublic(mastraDir: string, outputDirectory: string) {\n const publicDir = join(mastraDir, 'public');\n\n try {\n await stat(publicDir);\n } catch {\n return;\n }\n\n await copy(publicDir, join(outputDirectory, this.outputDir));\n }\n\n protected async copyDOTNPMRC({\n rootDir = process.cwd(),\n outputDirectory,\n }: {\n rootDir?: string;\n outputDirectory: string;\n }) {\n const sourceDotNpmRcPath = join(rootDir, '.npmrc');\n const targetDotNpmRcPath = join(outputDirectory, this.outputDir, '.npmrc');\n\n try {\n await stat(sourceDotNpmRcPath);\n await copy(sourceDotNpmRcPath, targetDotNpmRcPath);\n } catch {\n return;\n }\n }\n\n protected async getBundlerOptions(\n serverFile: string,\n mastraEntryFile: string,\n analyzedBundleInfo: Awaited<ReturnType<typeof analyzeBundle>>,\n toolsPaths: (string | string[])[],\n { enableSourcemap = false, enableEsmShim = true }: { enableSourcemap?: boolean; enableEsmShim?: boolean } = {},\n ) {\n const { workspaceRoot } = await getWorkspaceInformation({ mastraEntryFile });\n const closestPkgJson = pkg.up({ cwd: dirname(mastraEntryFile) });\n const projectRoot = closestPkgJson ? dirname(closestPkgJson) : process.cwd();\n\n const inputOptions: InputOptions = await getInputOptions(\n mastraEntryFile,\n analyzedBundleInfo,\n 'node',\n {\n 'process.env.NODE_ENV': JSON.stringify('production'),\n },\n { sourcemap: enableSourcemap, workspaceRoot, projectRoot, enableEsmShim },\n );\n const isVirtual = serverFile.includes('\\n') || existsSync(serverFile);\n\n const toolsInputOptions = await this.getToolsInputOptions(toolsPaths);\n\n if (isVirtual) {\n inputOptions.input = { index: '#entry', ...toolsInputOptions };\n\n if (Array.isArray(inputOptions.plugins)) {\n inputOptions.plugins.unshift(virtual({ '#entry': serverFile }));\n } else {\n inputOptions.plugins = [virtual({ '#entry': serverFile })];\n }\n } else {\n inputOptions.input = { index: serverFile, ...toolsInputOptions };\n }\n\n return inputOptions;\n }\n\n async getToolsInputOptions(toolsPaths: (string | string[])[]) {\n const inputs: Record<string, string> = {};\n\n for (const toolPath of toolsPaths) {\n const expandedPaths = await glob(toolPath, {\n absolute: true,\n expandDirectories: false,\n });\n\n for (const path of expandedPaths) {\n if (await fsExtra.pathExists(path)) {\n const fileService = new FileService();\n const entryFile = fileService.getFirstExistingFile([\n join(path, 'index.ts'),\n join(path, 'index.js'),\n path, // if path itself is a file\n ]);\n\n // if it doesn't exist or is a dir skip it. using a dir as a tool will crash the process\n if (!entryFile || (await stat(entryFile)).isDirectory()) {\n this.logger.warn(`No entry file found in ${path}, skipping...`);\n continue;\n }\n\n const uniqueToolID = crypto.randomUUID();\n // Normalize Windows paths to forward slashes for consistent handling\n const normalizedEntryFile = entryFile.replaceAll('\\\\', '/');\n inputs[`tools/${uniqueToolID}`] = normalizedEntryFile;\n } else {\n this.logger.warn(`Tool path ${path} does not exist, skipping...`);\n }\n }\n }\n\n return inputs;\n }\n\n protected async _bundle(\n serverFile: string,\n mastraEntryFile: string,\n {\n projectRoot,\n outputDirectory,\n enableEsmShim = true,\n }: { projectRoot: string; outputDirectory: string; enableEsmShim?: boolean },\n toolsPaths: (string | string[])[] = [],\n bundleLocation: string = join(outputDirectory, this.outputDir),\n ): Promise<void> {\n const analyzeDir = join(outputDirectory, this.analyzeOutputDir);\n let sourcemap = false;\n\n try {\n const bundlerOptions = await getBundlerOptions(mastraEntryFile, analyzeDir);\n sourcemap = !!bundlerOptions?.sourcemap;\n } catch (error) {\n this.logger.debug('Failed to get bundler options, sourcemap will be disabled', { error });\n }\n\n let analyzedBundleInfo;\n try {\n const resolvedToolsPaths = await this.getToolsInputOptions(toolsPaths);\n analyzedBundleInfo = await analyzeBundle(\n [serverFile, ...Object.values(resolvedToolsPaths)],\n mastraEntryFile,\n {\n outputDir: analyzeDir,\n projectRoot,\n platform: 'node',\n bundlerOptions: {\n enableEsmShim,\n },\n },\n this.logger,\n );\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n\n if (error instanceof MastraError) {\n throw error;\n }\n\n throw new MastraError(\n {\n id: 'DEPLOYER_BUNDLER_ANALYZE_FAILED',\n text: `Failed to analyze Mastra application: ${message}`,\n domain: ErrorDomain.DEPLOYER,\n category: ErrorCategory.SYSTEM,\n },\n error,\n );\n }\n\n let externalDependencies: string[];\n try {\n const result = await writeTelemetryConfig(mastraEntryFile, join(outputDirectory, this.outputDir));\n\n externalDependencies = result?.externalDependencies ?? [];\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n throw new MastraError(\n {\n id: 'DEPLOYER_BUNDLER_TELEMETRY_FAILED',\n text: `Failed to write telemetry config: ${message}`,\n domain: ErrorDomain.DEPLOYER,\n category: ErrorCategory.SYSTEM,\n },\n error,\n );\n }\n\n const mastraFolder = dirname(mastraEntryFile);\n\n const fileService = new FileService();\n const customInstrumentation = fileService.getFirstExistingFileOrUndefined([\n join(mastraFolder, 'instrumentation.js'),\n join(mastraFolder, 'instrumentation.ts'),\n join(mastraFolder, 'instrumentation.mjs'),\n ]);\n\n try {\n if (customInstrumentation) {\n const result = await writeCustomInstrumentation(customInstrumentation, join(outputDirectory, this.outputDir), {\n sourcemap,\n });\n externalDependencies = [...externalDependencies, ...result.externalDependencies];\n await this.writeInstrumentationFile(join(outputDirectory, this.outputDir), customInstrumentation);\n } else {\n await this.writeInstrumentationFile(join(outputDirectory, this.outputDir));\n }\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n throw new MastraError(\n {\n id: 'DEPLOYER_BUNDLER_INSTRUMENTATION_FILE_FAILED',\n text: `Failed to write instrumentation file: ${message}, ${customInstrumentation ? ` Found custom instrumentation file: ${customInstrumentation}` : ''}`,\n domain: ErrorDomain.DEPLOYER,\n category: ErrorCategory.SYSTEM,\n },\n error,\n );\n }\n\n const dependenciesToInstall = new Map<string, string>();\n\n // Add extenal dependencies from telemetry file\n for (const external of externalDependencies) {\n dependenciesToInstall.set(external, 'latest');\n }\n\n for (const dep of analyzedBundleInfo.externalDependencies) {\n try {\n if (analyzedBundleInfo.workspaceMap.has(dep)) {\n continue;\n }\n\n const rootPath = await getPackageRootPath(dep);\n const pkg = await readJSON(`${rootPath}/package.json`);\n\n dependenciesToInstall.set(dep, pkg.version || 'latest');\n } catch {\n dependenciesToInstall.set(dep, 'latest');\n }\n }\n\n try {\n await this.writePackageJson(join(outputDirectory, this.outputDir), dependenciesToInstall);\n\n this.logger.info('Bundling Mastra application');\n const inputOptions: InputOptions = await this.getBundlerOptions(\n serverFile,\n mastraEntryFile,\n analyzedBundleInfo,\n toolsPaths,\n { enableSourcemap: sourcemap, enableEsmShim: false },\n );\n\n const bundler = await this.createBundler(\n {\n ...inputOptions,\n logLevel: inputOptions.logLevel === 'silent' ? 'warn' : inputOptions.logLevel,\n onwarn: warning => {\n if (warning.code === 'CIRCULAR_DEPENDENCY') {\n if (warning.ids?.[0]?.includes('node_modules')) {\n return;\n }\n\n this.logger.warn(`Circular dependency found:\n\\t${warning.message.replace('Circular dependency: ', '')}`);\n }\n },\n },\n {\n dir: bundleLocation,\n manualChunks: {\n mastra: ['#mastra'],\n },\n sourcemap,\n },\n );\n\n await bundler.write();\n const toolImports: string[] = [];\n const toolsExports: string[] = [];\n Array.from(Object.keys(inputOptions.input || {}))\n .filter(key => key.startsWith('tools/'))\n .forEach((key, index) => {\n const toolExport = `tool${index}`;\n toolImports.push(`import * as ${toolExport} from './${key}.mjs';`);\n toolsExports.push(toolExport);\n });\n\n await writeFile(\n join(bundleLocation, 'tools.mjs'),\n `${toolImports.join('\\n')}\n\nexport const tools = [${toolsExports.join(', ')}]`,\n );\n this.logger.info('Bundling Mastra done');\n\n this.logger.info('Copying public files');\n await this.copyPublic(dirname(mastraEntryFile), outputDirectory);\n this.logger.info('Done copying public files');\n\n this.logger.info('Copying .npmrc file');\n await this.copyDOTNPMRC({ outputDirectory, rootDir: projectRoot });\n\n this.logger.info('Done copying .npmrc file');\n\n this.logger.info('Installing dependencies');\n await this.installDependencies(outputDirectory, projectRoot);\n\n this.logger.info('Done installing dependencies');\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n throw new MastraError(\n {\n id: 'DEPLOYER_BUNDLER_BUNDLE_STAGE_FAILED',\n text: `Failed during bundler bundle stage: ${message}`,\n domain: ErrorDomain.DEPLOYER,\n category: ErrorCategory.SYSTEM,\n },\n error,\n );\n }\n }\n\n async lint(_entryFile: string, _outputDirectory: string, toolsPaths: (string | string[])[]): Promise<void> {\n const toolsInputOptions = await this.getToolsInputOptions(toolsPaths);\n const toolsLength = Object.keys(toolsInputOptions).length;\n if (toolsLength > 0) {\n this.logger.info(`Found ${toolsLength} ${toolsLength === 1 ? 'tool' : 'tools'}`);\n }\n }\n}\n"]}
@@ -1,15 +1,15 @@
1
1
  'use strict';
2
2
 
3
- var chunkQZSRLR5Y_cjs = require('./chunk-QZSRLR5Y.cjs');
3
+ var chunk2CUDKTKP_cjs = require('./chunk-2CUDKTKP.cjs');
4
4
 
5
5
  // src/build/babel/remove-all-options-telemetry.ts
6
6
  function removeAllOptionsExceptTelemetry(result, logger) {
7
- return chunkQZSRLR5Y_cjs.removeAllOptionsFromMastraExcept(result, "telemetry", logger);
7
+ return chunk2CUDKTKP_cjs.removeAllOptionsFromMastraExcept(result, "telemetry", logger);
8
8
  }
9
9
 
10
10
  // src/build/telemetry.ts
11
11
  async function writeTelemetryConfig(entryFile, outputDir, logger) {
12
- const result = await chunkQZSRLR5Y_cjs.extractMastraOption(
12
+ const result = await chunk2CUDKTKP_cjs.extractMastraOption(
13
13
  "telemetry",
14
14
  entryFile,
15
15
  removeAllOptionsExceptTelemetry,
@@ -24,5 +24,5 @@ async function writeTelemetryConfig(entryFile, outputDir, logger) {
24
24
  }
25
25
 
26
26
  exports.writeTelemetryConfig = writeTelemetryConfig;
27
- //# sourceMappingURL=chunk-XJH6DNVG.cjs.map
28
- //# sourceMappingURL=chunk-XJH6DNVG.cjs.map
27
+ //# sourceMappingURL=chunk-SFQW6M3F.cjs.map
28
+ //# sourceMappingURL=chunk-SFQW6M3F.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/build/babel/remove-all-options-telemetry.ts","../src/build/telemetry.ts"],"names":["removeAllOptionsFromMastraExcept","extractMastraOption"],"mappings":";;;;;AAGO,SAAS,+BAAA,CAAgC,QAAsC,MAAA,EAAwB;AAC5G,EAAA,OAAOA,kDAAA,CAAiC,MAAA,EAAQ,WAAA,EAAa,MAAM,CAAA;AACrE;;;ACSA,eAAsB,oBAAA,CACpB,SAAA,EACA,SAAA,EACA,MAAA,EACoD;AACpD,EAAA,MAAM,SAAS,MAAMC,qCAAA;AAAA,IACnB,WAAA;AAAA,IACA,SAAA;AAAA,IACA,+BAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,IAAI,CAAC,MAAA,EAAQ;AACX,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,MAAM,SAAA,GAAY,MAAA,CAAO,YAAA,CAAa,MAAA,CAAO,CAAC,CAAA,CAAE,OAAA,CAAQ,MAAA,CAAO,CAAA,CAAA,KAAK,CAAC,CAAA,CAAE,UAAA,CAAW,IAAI,CAAC,CAAA;AAEvF,EAAA,OAAO,EAAE,sBAAsB,SAAA,EAAU;AAC3C","file":"chunk-XJH6DNVG.cjs","sourcesContent":["import { removeAllOptionsFromMastraExcept } from './remove-all-options-except';\nimport type { IMastraLogger } from '@mastra/core/logger';\n\nexport function removeAllOptionsExceptTelemetry(result: { hasCustomConfig: boolean }, logger?: IMastraLogger) {\n return removeAllOptionsFromMastraExcept(result, 'telemetry', logger);\n}\n","import { removeAllOptionsExceptTelemetry } from './babel/remove-all-options-telemetry';\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 getTelemetryBundler(\n entryFile: string,\n result: {\n hasCustomConfig: false;\n },\n) {\n return extractMastraOptionBundler('telemetry', entryFile, removeAllOptionsExceptTelemetry, result);\n}\n\nexport async function writeTelemetryConfig(\n entryFile: string,\n outputDir: string,\n logger?: IMastraLogger,\n): Promise<{ externalDependencies: string[] } | null> {\n const result = await extractMastraOption<Config['telemetry']>(\n 'telemetry',\n entryFile,\n removeAllOptionsExceptTelemetry,\n outputDir,\n logger,\n );\n\n if (!result) {\n return null;\n }\n\n const externals = result.bundleOutput.output[0].imports.filter(x => !x.startsWith('./'));\n\n return { externalDependencies: externals };\n}\n"]}
1
+ {"version":3,"sources":["../src/build/babel/remove-all-options-telemetry.ts","../src/build/telemetry.ts"],"names":["removeAllOptionsFromMastraExcept","extractMastraOption"],"mappings":";;;;;AAGO,SAAS,+BAAA,CAAgC,QAAsC,MAAA,EAAwB;AAC5G,EAAA,OAAOA,kDAAA,CAAiC,MAAA,EAAQ,WAAA,EAAa,MAAM,CAAA;AACrE;;;ACSA,eAAsB,oBAAA,CACpB,SAAA,EACA,SAAA,EACA,MAAA,EACoD;AACpD,EAAA,MAAM,SAAS,MAAMC,qCAAA;AAAA,IACnB,WAAA;AAAA,IACA,SAAA;AAAA,IACA,+BAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,IAAI,CAAC,MAAA,EAAQ;AACX,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,MAAM,SAAA,GAAY,MAAA,CAAO,YAAA,CAAa,MAAA,CAAO,CAAC,CAAA,CAAE,OAAA,CAAQ,MAAA,CAAO,CAAA,CAAA,KAAK,CAAC,CAAA,CAAE,UAAA,CAAW,IAAI,CAAC,CAAA;AAEvF,EAAA,OAAO,EAAE,sBAAsB,SAAA,EAAU;AAC3C","file":"chunk-SFQW6M3F.cjs","sourcesContent":["import { removeAllOptionsFromMastraExcept } from './remove-all-options-except';\nimport type { IMastraLogger } from '@mastra/core/logger';\n\nexport function removeAllOptionsExceptTelemetry(result: { hasCustomConfig: boolean }, logger?: IMastraLogger) {\n return removeAllOptionsFromMastraExcept(result, 'telemetry', logger);\n}\n","import { removeAllOptionsExceptTelemetry } from './babel/remove-all-options-telemetry';\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 getTelemetryBundler(\n entryFile: string,\n result: {\n hasCustomConfig: false;\n },\n) {\n return extractMastraOptionBundler('telemetry', entryFile, removeAllOptionsExceptTelemetry, result);\n}\n\nexport async function writeTelemetryConfig(\n entryFile: string,\n outputDir: string,\n logger?: IMastraLogger,\n): Promise<{ externalDependencies: string[] } | null> {\n const result = await extractMastraOption<Config['telemetry']>(\n 'telemetry',\n entryFile,\n removeAllOptionsExceptTelemetry,\n outputDir,\n logger,\n );\n\n if (!result) {\n return null;\n }\n\n const externals = result.bundleOutput.output[0].imports.filter(x => !x.startsWith('./'));\n\n return { externalDependencies: externals };\n}\n"]}
@@ -1,4 +1,3 @@
1
- import { DepsService } from './chunk-5QFG6SCM.js';
2
1
  import * as babel from '@babel/core';
3
2
  import babel__default from '@babel/core';
4
3
  import fs, { existsSync } from 'fs';
@@ -15,10 +14,8 @@ import resolveFrom2 from 'resolve-from';
15
14
  import { createHandler } from 'typescript-paths';
16
15
  import { optimizeLodashImports } from '@optimize-lodash/rollup-plugin';
17
16
  import json from '@rollup/plugin-json';
18
- import slugify from '@sindresorhus/slugify';
19
17
  import * as pkg from 'empathic/package';
20
18
  import { createWorkspacesCache, findWorkspaces, findWorkspacesRoot } from 'find-workspaces';
21
- import { ensureDir } from 'fs-extra';
22
19
  import { noopLogger } from '@mastra/core/logger';
23
20
  import virtual from '@rollup/plugin-virtual';
24
21
  import { builtinModules } from 'module';
@@ -26,7 +23,9 @@ import nodeResolve from '@rollup/plugin-node-resolve';
26
23
  import esmShim from '@rollup/plugin-esm-shim';
27
24
  import { basename } from 'path/posix';
28
25
  import * as resolve from 'resolve.exports';
26
+ import { MastraError, ErrorCategory, ErrorDomain, MastraBaseError } from '@mastra/core/error';
29
27
 
28
+ // src/build/analyze.ts
30
29
  function getPackageName(id) {
31
30
  const parts = id.split("/");
32
31
  if (id.startsWith("@")) {
@@ -74,6 +73,31 @@ function rollupSafeName(name, rootDir) {
74
73
  }
75
74
  return entry;
76
75
  }
76
+ var NATIVE_BINDING_LOADERS = [
77
+ "node-gyp-build",
78
+ "prebuild-install",
79
+ "bindings",
80
+ "node-addon-api",
81
+ "node-pre-gyp",
82
+ "nan"
83
+ // Native Abstractions for Node.js
84
+ ];
85
+ function findNativePackageModule(moduleIds) {
86
+ return moduleIds.find((id) => {
87
+ if (id.startsWith("\0")) {
88
+ return false;
89
+ }
90
+ if (!id.includes("/node_modules/")) {
91
+ return false;
92
+ }
93
+ for (const loader of NATIVE_BINDING_LOADERS) {
94
+ if (id.includes(`/${loader}/`) || id.includes(`/${loader}@`)) {
95
+ return false;
96
+ }
97
+ }
98
+ return true;
99
+ });
100
+ }
77
101
 
78
102
  // src/validator/validate.ts
79
103
  function spawn(command, args = [], options = {}) {
@@ -503,80 +527,6 @@ async function getWorkspaceInformation({
503
527
  isWorkspacePackage
504
528
  };
505
529
  }
506
- var collectTransitiveWorkspaceDependencies = ({
507
- workspaceMap,
508
- initialDependencies,
509
- logger
510
- }) => {
511
- const usedWorkspacePackages = /* @__PURE__ */ new Set();
512
- const queue = Array.from(initialDependencies);
513
- const resolutions = {};
514
- while (queue.length > 0) {
515
- const len = queue.length;
516
- for (let i = 0; i < len; i += 1) {
517
- const pkgName = queue.shift();
518
- if (!pkgName || usedWorkspacePackages.has(pkgName)) {
519
- continue;
520
- }
521
- const dep = workspaceMap.get(pkgName);
522
- if (!dep) continue;
523
- const root = findWorkspacesRoot();
524
- if (!root) {
525
- throw new Error("Could not find workspace root");
526
- }
527
- const depsService = new DepsService(root.location);
528
- depsService.__setLogger(logger);
529
- const sanitizedName = slugify(pkgName);
530
- const tgzPath = depsService.getWorkspaceDependencyPath({
531
- pkgName: sanitizedName,
532
- version: dep.version
533
- });
534
- resolutions[pkgName] = tgzPath;
535
- usedWorkspacePackages.add(pkgName);
536
- for (const [depName, _depVersion] of Object.entries(dep?.dependencies ?? {})) {
537
- if (!usedWorkspacePackages.has(depName) && workspaceMap.has(depName)) {
538
- queue.push(depName);
539
- }
540
- }
541
- }
542
- }
543
- return { resolutions, usedWorkspacePackages };
544
- };
545
- var packWorkspaceDependencies = async ({
546
- workspaceMap,
547
- usedWorkspacePackages,
548
- bundleOutputDir,
549
- logger
550
- }) => {
551
- const root = findWorkspacesRoot();
552
- if (!root) {
553
- throw new Error("Could not find workspace root");
554
- }
555
- const depsService = new DepsService(root.location);
556
- depsService.__setLogger(logger);
557
- if (usedWorkspacePackages.size > 0) {
558
- const workspaceDirPath = join(bundleOutputDir, "workspace-module");
559
- await ensureDir(workspaceDirPath);
560
- logger.info(`Packaging ${usedWorkspacePackages.size} workspace dependencies...`);
561
- const batchSize = 5;
562
- const packages = Array.from(usedWorkspacePackages.values());
563
- for (let i = 0; i < packages.length; i += batchSize) {
564
- const batch = packages.slice(i, i + batchSize);
565
- logger.info(
566
- `Packaging batch ${Math.floor(i / batchSize) + 1}/${Math.ceil(packages.length / batchSize)}: ${batch.join(", ")}`
567
- );
568
- await Promise.all(
569
- batch.map(async (pkgName) => {
570
- const dep = workspaceMap.get(pkgName);
571
- const sanitizedName = slugify(pkgName);
572
- if (!dep) return;
573
- await depsService.pack({ dir: dep.location, destination: workspaceDirPath, sanitizedName });
574
- })
575
- );
576
- }
577
- logger.info(`Successfully packaged ${usedWorkspacePackages.size} workspace dependencies`);
578
- }
579
- };
580
530
  function isNodeBuiltin(dep) {
581
531
  const [pkg2] = dep.split("/");
582
532
  return dep.startsWith("node:") || builtinModules.includes(dep) || builtinModules.includes(pkg2);
@@ -657,7 +607,7 @@ function removeDeployer2(mastraEntry, options) {
657
607
 
658
608
  // src/build/analyze/constants.ts
659
609
  var DEPS_TO_IGNORE = ["#tools"];
660
- var GLOBAL_EXTERNALS = ["pino", "pino-pretty", "@libsql/client", "pg", "libsql", "#tools"];
610
+ var GLOBAL_EXTERNALS = ["pino", "pino-pretty", "@libsql/client", "pg", "libsql", "#tools", "typescript"];
661
611
  var DEPRECATED_EXTERNALS = ["fastembed", "nodemailer", "jsdom", "sqlite3"];
662
612
 
663
613
  // src/build/analyze/analyzeEntry.ts
@@ -832,7 +782,13 @@ function aliasHono() {
832
782
  function prepareEntryFileName(name, rootDir) {
833
783
  return rollupSafeName(name, rootDir);
834
784
  }
835
- function createVirtualDependencies(depsToOptimize, { projectRoot, workspaceRoot, outputDir }) {
785
+ function createVirtualDependencies(depsToOptimize, {
786
+ projectRoot,
787
+ workspaceRoot,
788
+ outputDir,
789
+ bundlerOptions
790
+ }) {
791
+ const { isDev = false } = bundlerOptions || {};
836
792
  const fileNameToDependencyMap = /* @__PURE__ */ new Map();
837
793
  const optimizedDependencyEntries = /* @__PURE__ */ new Map();
838
794
  const rootDir = workspaceRoot || projectRoot;
@@ -864,21 +820,23 @@ function createVirtualDependencies(depsToOptimize, { projectRoot, workspaceRoot,
864
820
  virtual: virtualFile.join("\n")
865
821
  });
866
822
  }
867
- for (const [dep, { isWorkspace, rootPath }] of depsToOptimize.entries()) {
868
- if (!isWorkspace || !rootPath || !workspaceRoot) {
869
- continue;
870
- }
871
- const currentDepPath = optimizedDependencyEntries.get(dep);
872
- if (!currentDepPath) {
873
- continue;
823
+ if (isDev) {
824
+ for (const [dep, { isWorkspace, rootPath }] of depsToOptimize.entries()) {
825
+ if (!isWorkspace || !rootPath || !workspaceRoot) {
826
+ continue;
827
+ }
828
+ const currentDepPath = optimizedDependencyEntries.get(dep);
829
+ if (!currentDepPath) {
830
+ continue;
831
+ }
832
+ const fileName = basename(currentDepPath.name);
833
+ const entryName = prepareEntryFileName(getCompiledDepCachePath(rootPath, fileName), rootDir);
834
+ fileNameToDependencyMap.set(entryName, dep);
835
+ optimizedDependencyEntries.set(dep, {
836
+ ...currentDepPath,
837
+ name: entryName
838
+ });
874
839
  }
875
- const fileName = basename(currentDepPath.name);
876
- const entryName = prepareEntryFileName(getCompiledDepCachePath(rootPath, fileName), rootDir);
877
- fileNameToDependencyMap.set(entryName, dep);
878
- optimizedDependencyEntries.set(dep, {
879
- ...currentDepPath,
880
- name: entryName
881
- });
882
840
  }
883
841
  return { optimizedDependencyEntries, fileNameToDependencyMap };
884
842
  }
@@ -924,16 +882,18 @@ async function getInputPlugins2(virtualDependencies, {
924
882
  return null;
925
883
  }
926
884
  const info = virtualDependencies.get(id);
927
- const pkgJson = await getPackageInfo(path2.join(rootDir, info.name));
885
+ const packageRootPath = path2.join(rootDir, path2.dirname(path2.dirname(path2.dirname(info.name))));
886
+ const pkgJsonBuffer = await readFile(path2.join(packageRootPath, "package.json"), "utf-8");
887
+ const pkgJson = JSON.parse(pkgJsonBuffer);
928
888
  if (!pkgJson) {
929
889
  return null;
930
890
  }
931
- const pkgName = pkgJson.packageJson.name || "";
932
- let resolvedPath = resolve.exports(pkgJson.packageJson, id.replace(pkgName, "."))?.[0];
891
+ const pkgName = pkgJson.name || "";
892
+ let resolvedPath = resolve.exports(pkgJson, id.replace(pkgName, "."))?.[0];
933
893
  if (!resolvedPath) {
934
- resolvedPath = pkgJson.packageJson.main ?? "index.js";
894
+ resolvedPath = pkgJson.main ?? "index.js";
935
895
  }
936
- return await this.resolve(path2.posix.join(pkgJson.rootPath, resolvedPath), importer, options);
896
+ return await this.resolve(path2.posix.join(packageRootPath, resolvedPath), importer, options);
937
897
  }
938
898
  } : null,
939
899
  optimizeLodashImports({
@@ -948,7 +908,39 @@ async function getInputPlugins2(virtualDependencies, {
948
908
  bundlerOptions.enableEsmShim ? esmShim() : void 0,
949
909
  // hono is imported from deployer, so we need to resolve from here instead of the project root
950
910
  aliasHono(),
951
- json()
911
+ json(),
912
+ {
913
+ name: "not-found-resolver",
914
+ resolveId: {
915
+ order: "post",
916
+ async handler(id, importer) {
917
+ if (!importer) {
918
+ return null;
919
+ }
920
+ if (!id.endsWith(".node")) {
921
+ return null;
922
+ }
923
+ const pkgInfo = await getPackageInfo(importer);
924
+ const packageName = pkgInfo?.packageJson?.name || id;
925
+ throw new MastraBaseError({
926
+ id: "DEPLOYER_BUNDLE_EXTERNALS_MISSING_NATIVE_BUILD",
927
+ domain: ErrorDomain.DEPLOYER,
928
+ category: ErrorCategory.USER,
929
+ details: {
930
+ importFile: importer,
931
+ packageName
932
+ },
933
+ text: `We found a binary dependency in your bundle. Please add \`${packageName}\` to your externals.
934
+
935
+ export const mastra = new Mastra({
936
+ bundler: {
937
+ externals: ["${packageName}"],
938
+ }
939
+ })`
940
+ });
941
+ }
942
+ }
943
+ }
952
944
  ].filter(Boolean);
953
945
  }
954
946
  async function buildExternalDependencies(virtualDependencies, {
@@ -1031,7 +1023,10 @@ async function bundleExternals(depsToOptimize, outputDir, options) {
1031
1023
  const { optimizedDependencyEntries, fileNameToDependencyMap } = createVirtualDependencies(depsToOptimize, {
1032
1024
  workspaceRoot,
1033
1025
  outputDir,
1034
- projectRoot
1026
+ projectRoot,
1027
+ bundlerOptions: {
1028
+ isDev
1029
+ }
1035
1030
  });
1036
1031
  const output = await buildExternalDependencies(optimizedDependencyEntries, {
1037
1032
  externals: allExternals,
@@ -1078,8 +1073,6 @@ async function bundleExternals(depsToOptimize, outputDir, options) {
1078
1073
  }
1079
1074
  return { output, fileNameToDependencyMap, usedExternals };
1080
1075
  }
1081
-
1082
- // src/build/analyze.ts
1083
1076
  async function validateOutput({
1084
1077
  output,
1085
1078
  reverseVirtualReferenceMap,
@@ -1089,7 +1082,6 @@ async function validateOutput({
1089
1082
  workspaceMap
1090
1083
  }, logger) {
1091
1084
  const result = {
1092
- invalidChunks: /* @__PURE__ */ new Set(),
1093
1085
  dependencies: /* @__PURE__ */ new Map(),
1094
1086
  externalDependencies: /* @__PURE__ */ new Set(),
1095
1087
  workspaceMap
@@ -1113,11 +1105,32 @@ async function validateOutput({
1113
1105
  await validate(join(projectRoot, file.fileName));
1114
1106
  }
1115
1107
  } catch (err) {
1116
- result.invalidChunks.add(file.fileName);
1117
- if (file.isEntry && reverseVirtualReferenceMap.has(file.name)) {
1118
- const reference = reverseVirtualReferenceMap.get(file.name);
1119
- const dep = reference.startsWith("@") ? reference.split("/").slice(0, 2).join("/") : reference.split("/")[0];
1120
- result.externalDependencies.add(dep);
1108
+ if (err instanceof Error && err.message.includes("Error: No native build was found for ")) {
1109
+ const moduleName = findNativePackageModule(file.moduleIds);
1110
+ if (!moduleName) {
1111
+ logger.debug(`Could not determine the module name for file ${file.fileName}`);
1112
+ continue;
1113
+ }
1114
+ const pkgInfo = await getPackageInfo(moduleName);
1115
+ const packageName = pkgInfo?.packageJson?.name;
1116
+ if (packageName) {
1117
+ throw new MastraError({
1118
+ id: "DEPLOYER_ANALYZE_MISSING_NATIVE_BUILD",
1119
+ domain: ErrorDomain.DEPLOYER,
1120
+ category: ErrorCategory.USER,
1121
+ details: {
1122
+ importFile: moduleName,
1123
+ packageName
1124
+ },
1125
+ text: `We found a binary dependency in your bundle. Please add \`${packageName}\` to your externals.
1126
+
1127
+ export const mastra = new Mastra({
1128
+ bundler: {
1129
+ externals: ["${packageName}"],
1130
+ }
1131
+ })`
1132
+ });
1133
+ }
1121
1134
  }
1122
1135
  }
1123
1136
  }
@@ -1209,6 +1222,6 @@ If you think your configuration is valid, please open an issue.`);
1209
1222
  return result;
1210
1223
  }
1211
1224
 
1212
- export { aliasHono, analyzeBundle, collectTransitiveWorkspaceDependencies, esbuild, extractMastraOption, getBundlerOptions, getPackageName, getPackageRootPath, getWorkspaceInformation, packWorkspaceDependencies, removeAllOptionsFromMastraExcept, removeDeployer2 as removeDeployer, slash, tsConfigPaths };
1213
- //# sourceMappingURL=chunk-36JTHYM2.js.map
1214
- //# sourceMappingURL=chunk-36JTHYM2.js.map
1225
+ export { aliasHono, analyzeBundle, esbuild, extractMastraOption, getBundlerOptions, getPackageName, getPackageRootPath, getWorkspaceInformation, removeAllOptionsFromMastraExcept, removeDeployer2 as removeDeployer, slash, tsConfigPaths };
1226
+ //# sourceMappingURL=chunk-TJ26OQXP.js.map
1227
+ //# sourceMappingURL=chunk-TJ26OQXP.js.map