{"version":3,"file":"analyze-hp4aHpms.cjs","names":["pkg","slash","DepsService","getInputPlugins","protocolExternalResolver","mastraInternalAliasPlugin","mastraToolsAliasPlugin","tsConfigPaths","esbuild","removeDeployer","getPackageRootPath","isBareModuleSpecifier","getPackageName","getPackageMetadata","slash","isDependencyPartOfPackage","slash","rollupSafeName","getCompiledDepCachePath","getPackageRootPath","slash","tsConfigPaths","protocolExternalResolver","subpathExternalsResolver","esbuild","resolve","getNodeResolveOptions","esmShim","MastraBaseError","ErrorDomain","ErrorCategory","isDependencyPartOfPackage","t","t","getPackageName","getPackageMetadata","MastraError","ErrorDomain","ErrorCategory","isExternalProtocolImport","isDependencyPartOfPackage","slash","isBuiltinModule","isBareModuleSpecifier"],"sources":["../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/stacktrace-parser/0.1.11/63406bc765474556691ebd1b24eaa0c5b032f058a26bbaff13797a2780d98220/node_modules/stacktrace-parser/dist/stack-trace-parser.cjs.js","../src/bundler/workspaceDependencies.ts","../src/validator/validate.ts","../src/build/analyze/constants.ts","../src/build/analyze/analyzeEntry.ts","../src/build/plugins/hono-alias.ts","../src/build/plugins/module-resolve-map.ts","../src/build/plugins/node-gyp-detector.ts","../src/build/analyze/bundleExternals.ts","../src/build/analyze/externals.ts","../src/build/babel/check-config-export.ts","../src/build/babel/detect-pino-transports.ts","../src/build/analyze.ts"],"sourcesContent":["'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar UNKNOWN_FUNCTION = '<unknown>';\n/**\n * This parses the different stack traces and puts them into one format\n * This borrows heavily from TraceKit (https://github.com/csnover/TraceKit)\n */\n\nfunction parse(stackString) {\n  var lines = stackString.split('\\n');\n  return lines.reduce(function (stack, line) {\n    var parseResult = parseChrome(line) || parseWinjs(line) || parseGecko(line) || parseNode(line) || parseJSC(line);\n\n    if (parseResult) {\n      stack.push(parseResult);\n    }\n\n    return stack;\n  }, []);\n}\nvar chromeRe = /^\\s*at (.*?) ?\\(((?:file|https?|blob|chrome-extension|native|eval|webpack|rsc|<anonymous>|\\/|[a-z]:\\\\|\\\\\\\\).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\nvar chromeEvalRe = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n\nfunction parseChrome(line) {\n  var parts = chromeRe.exec(line);\n\n  if (!parts) {\n    return null;\n  }\n\n  var isNative = parts[2] && parts[2].indexOf('native') === 0; // start of line\n\n  var isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n\n  var submatch = chromeEvalRe.exec(parts[2]);\n\n  if (isEval && submatch != null) {\n    // throw out eval line/column and use top-most line/column number\n    parts[2] = submatch[1]; // url\n\n    parts[3] = submatch[2]; // line\n\n    parts[4] = submatch[3]; // column\n  }\n\n  return {\n    file: !isNative ? parts[2] : null,\n    methodName: parts[1] || UNKNOWN_FUNCTION,\n    arguments: isNative ? [parts[2]] : [],\n    lineNumber: parts[3] ? +parts[3] : null,\n    column: parts[4] ? +parts[4] : null\n  };\n}\n\nvar winjsRe = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|rsc|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nfunction parseWinjs(line) {\n  var parts = winjsRe.exec(line);\n\n  if (!parts) {\n    return null;\n  }\n\n  return {\n    file: parts[2],\n    methodName: parts[1] || UNKNOWN_FUNCTION,\n    arguments: [],\n    lineNumber: +parts[3],\n    column: parts[4] ? +parts[4] : null\n  };\n}\n\nvar geckoRe = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|rsc|resource|\\[native).*?|[^@]*bundle)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nvar geckoEvalRe = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\n\nfunction parseGecko(line) {\n  var parts = geckoRe.exec(line);\n\n  if (!parts) {\n    return null;\n  }\n\n  var isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n  var submatch = geckoEvalRe.exec(parts[3]);\n\n  if (isEval && submatch != null) {\n    // throw out eval line/column and use top-most line number\n    parts[3] = submatch[1];\n    parts[4] = submatch[2];\n    parts[5] = null; // no column when eval\n  }\n\n  return {\n    file: parts[3],\n    methodName: parts[1] || UNKNOWN_FUNCTION,\n    arguments: parts[2] ? parts[2].split(',') : [],\n    lineNumber: parts[4] ? +parts[4] : null,\n    column: parts[5] ? +parts[5] : null\n  };\n}\n\nvar javaScriptCoreRe = /^\\s*(?:([^@]*)(?:\\((.*?)\\))?@)?(\\S.*?):(\\d+)(?::(\\d+))?\\s*$/i;\n\nfunction parseJSC(line) {\n  var parts = javaScriptCoreRe.exec(line);\n\n  if (!parts) {\n    return null;\n  }\n\n  return {\n    file: parts[3],\n    methodName: parts[1] || UNKNOWN_FUNCTION,\n    arguments: [],\n    lineNumber: +parts[4],\n    column: parts[5] ? +parts[5] : null\n  };\n}\n\nvar nodeRe = /^\\s*at (?:((?:\\[object object\\])?[^\\\\/]+(?: \\[as \\S+\\])?) )?\\(?(.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nfunction parseNode(line) {\n  var parts = nodeRe.exec(line);\n\n  if (!parts) {\n    return null;\n  }\n\n  return {\n    file: parts[2],\n    methodName: parts[1] || UNKNOWN_FUNCTION,\n    arguments: [],\n    lineNumber: +parts[3],\n    column: parts[4] ? +parts[4] : null\n  };\n}\n\nexports.parse = parse;\n","import { join, dirname } from 'node:path';\nimport type { IMastraLogger } from '@mastra/core/logger';\nimport slugify from '@sindresorhus/slugify';\nimport * as pkg from 'empathic/package';\nimport { findWorkspaces, findWorkspacesRoot, createWorkspacesCache } from 'find-workspaces';\nimport { ensureDir } from 'fs-extra';\nimport { slash } from '../build/utils';\nimport { DepsService } from '../services';\n\nexport type WorkspacePackageInfo = {\n  location: string;\n  dependencies: Record<string, string> | undefined;\n  version: string | undefined;\n  exports?: unknown;\n};\n\nconst isExportTargetImportable = (target: unknown): boolean => {\n  if (!target) return false;\n  if (typeof target === 'string') return true;\n  if (Array.isArray(target)) return target.some(isExportTargetImportable);\n  if (typeof target !== 'object') return false;\n\n  return Object.values(target).some(isExportTargetImportable);\n};\n\nexport const hasRootExport = (exportsField: unknown): boolean => {\n  if (exportsField === undefined) return true;\n  if (typeof exportsField === 'string' || Array.isArray(exportsField)) return isExportTargetImportable(exportsField);\n  if (!exportsField || typeof exportsField !== 'object') return false;\n\n  const exportMap = exportsField as Record<string, unknown>;\n  const exportKeys = Object.keys(exportMap);\n  if (exportKeys.length === 0) return false;\n  if (Object.prototype.hasOwnProperty.call(exportMap, '.')) return isExportTargetImportable(exportMap['.']);\n  if (exportKeys.some(key => key.startsWith('./'))) return false;\n\n  return isExportTargetImportable(exportMap);\n};\n\ntype TransitiveDependencyResult = {\n  resolutions: Record<string, string>;\n  usedWorkspacePackages: Set<string>;\n};\n\n/**\n * Create a shared cache for find-workspaces\n */\nconst workspacesCache = createWorkspacesCache();\n\n/**\n * A utility function around find-workspaces to get information about:\n * - Which workspace packages are available in the project\n * - What is the workspace root location\n * - Is the current package a workspace package\n *\n * Because `findWorkspacesRoot` only traverses up until it finds workspace information, but doesn't check if the current package is even part of the workspace. We rather want to return `null` for these cases because in other code paths we use `workspaceRoot || projectRoot` to determine the root of the project.\n *\n * @params dir - The directory to start searching from (default: `process.cwd()`)\n * @params location - The location of the current package (usually the directory containing the package.json)\n */\nexport async function getWorkspaceInformation({\n  dir = process.cwd(),\n  mastraEntryFile,\n}: {\n  dir?: string;\n  mastraEntryFile: string;\n}) {\n  // 1) Get the location of the current package and its package.json\n  const closestPkgJson = pkg.up({ cwd: dirname(mastraEntryFile) });\n  const location = closestPkgJson ? dirname(slash(closestPkgJson)) : slash(process.cwd());\n\n  // 2) Get all workspaces\n  const workspaces = await findWorkspaces(dir, { cache: workspacesCache });\n  const _workspaceMap = new Map(\n    workspaces?.map(workspace => [\n      workspace.package.name,\n      {\n        location: workspace.location,\n        dependencies: workspace.package.dependencies,\n        version: workspace.package.version,\n        exports: workspace.package.exports,\n      },\n    ]) ?? [],\n  );\n\n  // 3) Check if the current package is part of the workspace\n  const isWorkspacePackage = (workspaces ?? []).some(ws => ws.location === location);\n\n  // 4) Get the workspace root only if the current package is part of the workspace\n  const workspaceRoot = isWorkspacePackage ? findWorkspacesRoot(dir, { cache: workspacesCache })?.location : undefined;\n\n  return {\n    // If the current package is not part of the workspace, the bundling down the line shouldn't look at any workspace packages\n    workspaceMap: isWorkspacePackage ? _workspaceMap : new Map<string, WorkspacePackageInfo>(),\n    workspaceRoot,\n    isWorkspacePackage,\n  };\n}\n\n/**\n * Collects all transitive workspace dependencies and their TGZ paths\n */\nexport const collectTransitiveWorkspaceDependencies = ({\n  workspaceMap,\n  initialDependencies,\n  logger,\n}: {\n  workspaceMap: Map<string, WorkspacePackageInfo>;\n  initialDependencies: Set<string>;\n  logger: IMastraLogger;\n}): TransitiveDependencyResult => {\n  const usedWorkspacePackages = new Set<string>();\n  const queue: string[] = Array.from(initialDependencies);\n  const resolutions: Record<string, string> = {};\n\n  while (queue.length > 0) {\n    const len = queue.length;\n    for (let i = 0; i < len; i += 1) {\n      const pkgName = queue.shift();\n      if (!pkgName || usedWorkspacePackages.has(pkgName)) {\n        continue;\n      }\n\n      const dep = workspaceMap.get(pkgName);\n      if (!dep) continue;\n\n      const root = findWorkspacesRoot();\n      if (!root) {\n        throw new Error('Could not find workspace root');\n      }\n\n      const depsService = new DepsService(root.location);\n      depsService.__setLogger(logger);\n      const sanitizedName = slugify(pkgName);\n\n      const tgzPath = depsService.getWorkspaceDependencyPath({\n        pkgName: sanitizedName,\n        version: dep.version!,\n      });\n      resolutions[pkgName] = tgzPath;\n      usedWorkspacePackages.add(pkgName);\n\n      for (const [depName, _depVersion] of Object.entries(dep?.dependencies ?? {})) {\n        if (!usedWorkspacePackages.has(depName) && workspaceMap.has(depName)) {\n          queue.push(depName);\n        }\n      }\n    }\n  }\n\n  return { resolutions, usedWorkspacePackages };\n};\n\n/**\n * Creates TGZ packages for workspace dependencies in the workspace-module directory\n */\nexport const packWorkspaceDependencies = async ({\n  workspaceMap,\n  usedWorkspacePackages,\n  bundleOutputDir,\n  logger,\n}: {\n  workspaceMap: Map<string, WorkspacePackageInfo>;\n  bundleOutputDir: string;\n  logger: IMastraLogger;\n  usedWorkspacePackages: Set<string>;\n}): Promise<void> => {\n  const root = findWorkspacesRoot();\n  if (!root) {\n    throw new Error('Could not find workspace root');\n  }\n\n  const depsService = new DepsService(root.location);\n  depsService.__setLogger(logger);\n\n  // package all workspace dependencies\n  if (usedWorkspacePackages.size > 0) {\n    const workspaceDirPath = join(bundleOutputDir, 'workspace-module');\n    await ensureDir(workspaceDirPath);\n\n    logger.info('Packaging workspace dependencies', { count: usedWorkspacePackages.size });\n\n    const batchSize = 5;\n    const packages = Array.from(usedWorkspacePackages.values());\n\n    for (let i = 0; i < packages.length; i += batchSize) {\n      const batch = packages.slice(i, i + batchSize);\n      logger.info(\n        `Packaging batch ${Math.floor(i / batchSize) + 1}/${Math.ceil(packages.length / batchSize)}: ${batch.join(', ')}`,\n      );\n      await Promise.all(\n        batch.map(async pkgName => {\n          const dep = workspaceMap.get(pkgName);\n          const sanitizedName = slugify(pkgName);\n          if (!dep) return;\n\n          await depsService.pack({ dir: dep.location, destination: workspaceDirPath, sanitizedName: sanitizedName });\n        }),\n      );\n    }\n\n    logger.info('Successfully packaged workspace dependencies', { count: usedWorkspacePackages.size });\n  }\n};\n","import { spawn as nodeSpawn } from 'node:child_process';\nimport type { SpawnOptions } from 'node:child_process';\nimport { dirname } from 'node:path';\nimport { pathToFileURL } from 'node:url';\n\ntype ValidationArgs = {\n  message: string;\n  type: string;\n  stack: string;\n};\n\nexport class ValidationError extends Error {\n  public readonly type: string;\n  public readonly stack: string;\n  constructor(args: ValidationArgs) {\n    super(args.message);\n    this.type = args.type;\n    this.stack = args.stack;\n  }\n}\n\n/**\n * Promisified version of Node.js spawn function\n *\n * @param command - The command to run\n * @param args - List of string arguments\n * @param options - Spawn options\n * @returns Promise that resolves with the exit code when the process completes\n */\nfunction spawn(command: string, args: string[] = [], options: SpawnOptions = {}): Promise<void> {\n  return new Promise((resolve, reject) => {\n    let validationError: ValidationArgs | null = null;\n    const childProcess = nodeSpawn(command, args, {\n      stdio: ['ignore', 'ignore', 'pipe'],\n      ...options,\n    });\n\n    childProcess.on('error', error => {\n      reject(error);\n    });\n\n    let stderr = '';\n    childProcess.stderr?.on('data', message => {\n      try {\n        validationError = JSON.parse(message.toString());\n      } catch {\n        stderr += message;\n      }\n    });\n\n    childProcess.on('close', code => {\n      if (code === 0) {\n        resolve();\n      } else {\n        if (validationError) {\n          reject(new ValidationError(validationError));\n        } else {\n          reject(new Error(stderr));\n        }\n      }\n    });\n  });\n}\n\nexport function validate(\n  file: string,\n  {\n    injectESMShim = false,\n    moduleResolveMapLocation,\n    stubbedExternals = [],\n  }: { injectESMShim?: boolean; moduleResolveMapLocation: string; stubbedExternals?: string[] },\n) {\n  let prefixCode = '';\n  if (injectESMShim) {\n    prefixCode = `import { fileURLToPath } from 'url';\nimport { dirname } from 'path';\n\nglobalThis.__filename = fileURLToPath(import.meta.url);\nglobalThis.__dirname = dirname(__filename);\n    `;\n  }\n\n  // Used to log a proper error we can parse instead of trying to do some fancy string grepping\n  function errorHandler(err: Error) {\n    console.error(\n      JSON.stringify({\n        type: err.name,\n        message: err.message,\n        stack: err.stack,\n      }),\n    );\n    process.exit(1);\n  }\n\n  return spawn(\n    process.execPath,\n    [\n      '--import',\n      import.meta.resolve('@mastra/deployer/loader'),\n      '--input-type=module',\n      '--enable-source-maps',\n      '-e',\n      `${prefixCode};import('${pathToFileURL(file).href}').catch(err => {\n        ${errorHandler.toString()}\n        errorHandler(err);\n      })`.replaceAll(/\\n/g, ''),\n    ],\n    {\n      env: {\n        ...process.env,\n        MODULE_MAP: `${moduleResolveMapLocation}`,\n        STUBBED_EXTERNALS: JSON.stringify(stubbedExternals),\n      },\n      cwd: dirname(file),\n    },\n  );\n}\n","export const DEPS_TO_IGNORE = ['#tools', 'execa', 'effect', 'sury', '@ast-grep/napi', '@hono/node-ws'];\n\nexport const GLOBAL_EXTERNALS = [\n  'pino',\n  'pino-pretty',\n  '@libsql/client',\n  'pg',\n  'libsql',\n  '#tools',\n  'typescript',\n  'undici',\n  'readable-stream',\n  'bufferutil',\n  'utf-8-validate',\n  'execa',\n  '@ast-grep/napi',\n  '@hono/node-ws',\n];\nexport const DEPRECATED_EXTERNALS = ['fastembed', 'nodemailer', 'jsdom', 'sqlite3'];\n","import type { IMastraLogger } from '@mastra/core/logger';\nimport commonjs from '@rollup/plugin-commonjs';\nimport json from '@rollup/plugin-json';\nimport virtual from '@rollup/plugin-virtual';\nimport { rollup } from 'rollup';\nimport type { OutputChunk, Plugin, SourceMap } from 'rollup';\nimport type { WorkspacePackageInfo } from '../../bundler/workspaceDependencies';\nimport { hasRootExport } from '../../bundler/workspaceDependencies';\nimport { mastraInternalAliasPlugin, mastraToolsAliasPlugin } from '../bundler';\nimport { getPackageMetadata, getPackageRootPath } from '../package-info';\nimport { esbuild } from '../plugins/esbuild';\nimport { protocolExternalResolver } from '../plugins/protocol-external-resolver';\nimport { removeDeployer } from '../plugins/remove-deployer';\nimport { tsConfigPaths } from '../plugins/tsconfig-paths';\nimport type { DependencyMetadata } from '../types';\nimport { getPackageName, isBareModuleSpecifier, slash } from '../utils';\nimport { DEPS_TO_IGNORE } from './constants';\n\n/**\n * Configures and returns the Rollup plugins needed for analyzing entry files.\n * Sets up module resolution, transpilation, and custom alias handling for Mastra-specific imports.\n */\nfunction getInputPlugins(\n  { entry, isVirtualFile }: { entry: string; isVirtualFile: boolean },\n  mastraEntry: string,\n  { sourcemapEnabled }: { sourcemapEnabled: boolean },\n): Plugin[] {\n  let virtualPlugin = null;\n  if (isVirtualFile) {\n    virtualPlugin = virtual({\n      '#entry': entry,\n    });\n    entry = '#entry';\n  }\n\n  const plugins = [];\n  if (virtualPlugin) {\n    plugins.push(virtualPlugin);\n  }\n\n  plugins.push(\n    ...[\n      protocolExternalResolver(),\n      mastraInternalAliasPlugin(mastraEntry),\n      mastraToolsAliasPlugin(),\n      tsConfigPaths(),\n      json(),\n      esbuild(),\n      commonjs({\n        strictRequires: 'debug',\n        ignoreTryCatch: false,\n        transformMixedEsModules: true,\n        extensions: ['.js', '.ts'],\n      }),\n      removeDeployer(mastraEntry, {\n        sourcemap: sourcemapEnabled,\n      }),\n      esbuild(),\n    ],\n  );\n\n  return plugins;\n}\n\n/**\n * Extracts and categorizes dependencies from Rollup output to determine which ones need optimization.\n * Analyzes both static imports and dynamic imports while filtering out Node.js built-ins and ignored dependencies.\n * Identifies workspace packages and resolves package root paths for proper bundling optimization.\n */\nasync function captureDependenciesToOptimize(\n  output: OutputChunk,\n  workspaceMap: Map<string, WorkspacePackageInfo>,\n  projectRoot: string,\n  {\n    logger,\n    shouldCheckTransitiveDependencies,\n  }: {\n    logger: IMastraLogger;\n    shouldCheckTransitiveDependencies: boolean;\n  },\n): Promise<Map<string, DependencyMetadata>> {\n  const depsToOptimize = new Map<string, DependencyMetadata>();\n\n  if (!output.facadeModuleId) {\n    throw new Error(\n      'Something went wrong, we could not find the package name of the entry file. Please open an issue.',\n    );\n  }\n\n  let entryRootPath = projectRoot;\n  if (!output.facadeModuleId.startsWith('\\x00virtual:')) {\n    entryRootPath = (await getPackageRootPath(output.facadeModuleId)) || projectRoot;\n  }\n\n  for (const [dependency, bindings] of Object.entries(output.importedBindings)) {\n    if (!isBareModuleSpecifier(dependency)) {\n      continue;\n    }\n\n    // The `getPackageName` helper also handles subpaths so we only get the proper package name\n    const pkgName = getPackageName(dependency);\n    let rootPath: string | null = null;\n    let isWorkspace = false;\n    let version: string | undefined;\n    let packageSpec: string | undefined;\n\n    if (pkgName) {\n      const metadata = await getPackageMetadata(dependency, entryRootPath);\n      rootPath = metadata.rootPath;\n      version = metadata.version;\n      packageSpec = metadata.packageSpec;\n      isWorkspace = workspaceMap.has(pkgName);\n    }\n\n    const normalizedRootPath = rootPath ? slash(rootPath) : null;\n\n    depsToOptimize.set(dependency, {\n      exports: bindings,\n      rootPath: normalizedRootPath,\n      isWorkspace,\n      version,\n      packageSpec,\n    });\n  }\n\n  const processedWorkspaceDeps = new Set<string>();\n\n  /**\n   * Recursively discovers transitive workspace dependencies from package manifests.\n   */\n  function checkTransitiveDependencies(maxDepth = 10, currentDepth = 0) {\n    // Could be a circular dependency...\n    if (currentDepth >= maxDepth) {\n      logger.warn('Maximum dependency depth reached while checking transitive dependencies.');\n      return;\n    }\n\n    // Make a copy so that we can safely iterate over it\n    const depsSnapshot = new Map(depsToOptimize);\n    let hasAddedDeps = false;\n\n    for (const [dep, meta] of depsSnapshot) {\n      const pkgName = getPackageName(dep);\n      // We only care about workspace deps that we haven't already processed\n      if (!pkgName || !meta.isWorkspace || processedWorkspaceDeps.has(pkgName)) {\n        continue;\n      }\n\n      processedWorkspaceDeps.add(pkgName);\n\n      const workspaceInfo = workspaceMap.get(pkgName);\n      if (!workspaceInfo?.dependencies) {\n        continue;\n      }\n\n      for (const [innerDep, _innerDepVersion] of Object.entries(workspaceInfo.dependencies)) {\n        const innerWorkspaceInfo = workspaceMap.get(innerDep);\n        if (!innerWorkspaceInfo) {\n          continue;\n        }\n\n        if (!hasRootExport(innerWorkspaceInfo.exports)) {\n          continue;\n        }\n\n        const existingMeta = depsToOptimize.get(innerDep);\n        if (existingMeta) {\n          depsToOptimize.set(innerDep, {\n            ...existingMeta,\n            exports: existingMeta.exports.includes('*') ? existingMeta.exports : [...existingMeta.exports, '*'],\n          });\n          continue;\n        }\n\n        depsToOptimize.set(innerDep, {\n          exports: ['*'],\n          rootPath: slash(innerWorkspaceInfo.location),\n          isWorkspace: true,\n          version: innerWorkspaceInfo.version,\n        });\n        hasAddedDeps = true;\n      }\n    }\n\n    // Continue until no new deps are found\n    if (hasAddedDeps) {\n      checkTransitiveDependencies(maxDepth, currentDepth + 1);\n    }\n  }\n\n  if (shouldCheckTransitiveDependencies) {\n    checkTransitiveDependencies();\n  }\n\n  // #tools is a generated dependency, we don't want our analyzer to handle it\n  const dynamicImports = output.dynamicImports.filter(d => !DEPS_TO_IGNORE.includes(d));\n  if (dynamicImports.length) {\n    for (const dynamicImport of dynamicImports) {\n      if (!depsToOptimize.has(dynamicImport) && isBareModuleSpecifier(dynamicImport)) {\n        // Try to resolve version for dynamic imports as well\n        const pkgName = getPackageName(dynamicImport);\n        let version: string | undefined;\n        let packageSpec: string | undefined;\n        let rootPath: string | null = null;\n\n        if (pkgName) {\n          const metadata = await getPackageMetadata(dynamicImport, entryRootPath);\n          rootPath = metadata.rootPath;\n          version = metadata.version;\n          packageSpec = metadata.packageSpec;\n        }\n\n        depsToOptimize.set(dynamicImport, {\n          exports: ['*'],\n          rootPath: rootPath ? slash(rootPath) : null,\n          isWorkspace: false,\n          version,\n          packageSpec,\n        });\n      }\n    }\n  }\n\n  return depsToOptimize;\n}\n\n/**\n * Analyzes the entry file to identify external dependencies and their imports. This allows us to treeshake all code that is not used.\n *\n * @param entryConfig - Configuration object for the entry file\n * @param entryConfig.entry - The entry file path or content\n * @param entryConfig.isVirtualFile - Whether the entry is a virtual file (content string) or a file path\n * @param mastraEntry - The mastra entry point\n * @param options - Configuration options for the analysis\n * @param options.logger - Logger instance for debugging\n * @param options.sourcemapEnabled - Whether sourcemaps are enabled\n * @param options.workspaceMap - Map of workspace packages\n * @param options.shouldCheckTransitiveDependencies - Whether to recursively analyze transitive workspace dependencies (default: false)\n * @returns A promise that resolves to an object containing the analyzed dependencies and generated output\n */\n/** Return type of {@link analyzeEntry} */\nexport type AnalyzeEntryResult = {\n  dependencies: Map<string, DependencyMetadata>;\n  output: {\n    code: string;\n    map: SourceMap | null;\n  };\n};\n\nexport async function analyzeEntry(\n  {\n    entry,\n    isVirtualFile,\n  }: {\n    entry: string;\n    isVirtualFile: boolean;\n  },\n  mastraEntry: string,\n  {\n    logger,\n    sourcemapEnabled,\n    workspaceMap,\n    projectRoot,\n    shouldCheckTransitiveDependencies = false,\n    analyzeCache,\n  }: {\n    logger: IMastraLogger;\n    sourcemapEnabled: boolean;\n    workspaceMap: Map<string, WorkspacePackageInfo>;\n    projectRoot: string;\n    shouldCheckTransitiveDependencies?: boolean;\n    /** Shared cache to avoid re-analyzing the same entry across recursive calls */\n    analyzeCache?: Map<string, AnalyzeEntryResult>;\n  },\n): Promise<AnalyzeEntryResult> {\n  // Deduplicate: if this entry was already analyzed, return cached result\n  const cacheKey = isVirtualFile ? undefined : slash(entry);\n  if (cacheKey && analyzeCache?.has(cacheKey)) {\n    return analyzeCache.get(cacheKey)!;\n  }\n\n  const optimizerBundler = await rollup({\n    logLevel: process.env.MASTRA_BUNDLER_DEBUG === 'true' ? 'debug' : 'silent',\n    input: isVirtualFile ? '#entry' : entry,\n    treeshake: false,\n    preserveSymlinks: true,\n    plugins: getInputPlugins({ entry, isVirtualFile }, mastraEntry, { sourcemapEnabled }),\n    external: DEPS_TO_IGNORE,\n  });\n\n  const { output } = await optimizerBundler.generate({\n    format: 'esm',\n    inlineDynamicImports: true,\n  });\n\n  await optimizerBundler.close();\n\n  const depsToOptimize = await captureDependenciesToOptimize(output[0] as OutputChunk, workspaceMap, projectRoot, {\n    logger,\n    shouldCheckTransitiveDependencies,\n  });\n\n  const result: AnalyzeEntryResult = {\n    dependencies: depsToOptimize,\n    output: {\n      code: output[0].code,\n      map: output[0].map as SourceMap,\n    },\n  };\n\n  // Cache the result so recursive calls for the same entry are instant\n  if (cacheKey && analyzeCache) {\n    analyzeCache.set(cacheKey, result);\n  }\n\n  return result;\n}\n","import { fileURLToPath } from 'node:url';\nimport type { Plugin } from 'rollup';\n\n// hono is imported from deployer, so we need to resolve from here instead of the project root\nexport function aliasHono(): Plugin {\n  return {\n    name: 'hono-alias',\n    resolveId(id: string) {\n      if (!id.startsWith('@hono/') && !id.startsWith('hono/') && id !== 'hono' && id !== 'hono-openapi') {\n        return;\n      }\n\n      const path = import.meta.resolve(id);\n      return fileURLToPath(path);\n    },\n  } satisfies Plugin;\n}\n","import { join } from 'node:path';\nimport { pathToFileURL } from 'node:url';\nimport type { Plugin } from 'rollup';\nimport { isDependencyPartOfPackage, slash } from '../utils';\n\nexport function moduleResolveMap(externals: string[], projectRoot: string): Plugin {\n  const importMap = new Map<string, string>();\n  return {\n    name: 'module-resolve-map',\n    moduleParsed(info) {\n      if (info.importedIds.length === 0 || !info.id) {\n        return;\n      }\n\n      for (const importedId of info.importedIds) {\n        for (const external of externals) {\n          if (isDependencyPartOfPackage(importedId, external)) {\n            // TODO add multi version support\n            importMap.set(external, info.id);\n          }\n        }\n      }\n    },\n\n    async generateBundle(options, bundle) {\n      const resolveMap = new Map<string, Map<string, string>>();\n\n      // Iterate through all output chunks\n      for (const [fileName, chunk] of Object.entries(bundle)) {\n        // Only chunks have modules, assets don't\n        if (chunk.type === 'chunk') {\n          for (const [external, resolvedFrom] of importMap) {\n            if (chunk.moduleIds.includes(resolvedFrom)) {\n              const fullPath = pathToFileURL(slash(join(projectRoot, fileName))).toString();\n              const innerMap = resolveMap.get(fullPath) || new Map<string, string>();\n              innerMap.set(external, pathToFileURL(slash(resolvedFrom)).toString());\n              resolveMap.set(fullPath, innerMap);\n            }\n          }\n        }\n      }\n\n      // store all binaries used by a module to show in the error message\n      const resolveMapJson = Object.fromEntries(\n        Array.from(resolveMap.entries()).map(([key, value]) => [key, Object.fromEntries(value.entries())]),\n      );\n\n      this.emitFile({\n        type: 'asset',\n        name: 'module-resolve-map.json',\n        source: `${JSON.stringify(resolveMapJson, null, 2)}`,\n      });\n    },\n  } satisfies Plugin;\n}\n","import { getPackageInfo } from 'local-pkg';\nimport type { Plugin } from 'rollup';\n\nexport function nodeGypDetector(): Plugin {\n  const modulesToTrack = new Set<string>();\n  const modulesToTrackPackageInfo = new Map<string, ReturnType<typeof getPackageInfo>>();\n\n  return {\n    name: 'node-gyp-build-detector',\n    moduleParsed(info) {\n      if (!info.meta?.commonjs?.requires?.length) {\n        return;\n      }\n\n      const hasNodeGypBuild = info.meta.commonjs.requires.some((m: { resolved?: { id: string } }) =>\n        m?.resolved?.id.endsWith('node-gyp-build/index.js'),\n      );\n      if (!hasNodeGypBuild) {\n        return;\n      }\n\n      modulesToTrack.add(info.id);\n      modulesToTrackPackageInfo.set(info.id, getPackageInfo(info.id));\n    },\n\n    async generateBundle(options, bundle) {\n      const binaryMapByChunk = new Map<string, Set<string>>();\n      // Iterate through all output chunks\n      for (const [fileName, chunk] of Object.entries(bundle)) {\n        // Only chunks have modules, assets don't\n        if (chunk.type === 'chunk') {\n          for (const moduleId of chunk.moduleIds) {\n            if (modulesToTrackPackageInfo.has(moduleId)) {\n              const pkgInfo = await modulesToTrackPackageInfo.get(moduleId)!;\n\n              if (!binaryMapByChunk.has(fileName)) {\n                binaryMapByChunk.set(fileName, new Set());\n              }\n\n              if (pkgInfo?.packageJson?.name) {\n                binaryMapByChunk.get(fileName)!.add(pkgInfo.packageJson.name);\n              }\n            }\n          }\n        }\n      }\n\n      const binaryMapJson = Object.fromEntries(\n        Array.from(binaryMapByChunk.entries()).map(([key, value]) => [key, Array.from(value)]),\n      );\n\n      // store all binaries used by a module to show in the error message\n      this.emitFile({\n        type: 'asset',\n        name: 'binary-map.json',\n        source: `${JSON.stringify(binaryMapJson, null, 2)}`,\n      });\n    },\n  } satisfies Plugin;\n}\n","import { readFile } from 'node:fs/promises';\nimport * as path from 'node:path';\nimport { basename } from 'node:path/posix';\nimport { ErrorCategory, ErrorDomain, MastraBaseError } from '@mastra/core/error';\nimport { optimizeLodashImports } from '@optimize-lodash/rollup-plugin';\nimport commonjs from '@rollup/plugin-commonjs';\nimport json from '@rollup/plugin-json';\nimport nodeResolve from '@rollup/plugin-node-resolve';\nimport virtual from '@rollup/plugin-virtual';\nimport { getPackageInfo } from 'local-pkg';\nimport * as resolve from 'resolve.exports';\nimport { rollup } from 'rollup';\nimport type { OutputChunk, OutputAsset, Plugin } from 'rollup';\nimport type { WorkspacePackageInfo } from '../../bundler/workspaceDependencies';\nimport { getPackageRootPath } from '../package-info';\nimport { esbuild } from '../plugins/esbuild';\nimport { esmShim } from '../plugins/esm-shim';\nimport { aliasHono } from '../plugins/hono-alias';\nimport { moduleResolveMap } from '../plugins/module-resolve-map';\nimport { nodeGypDetector } from '../plugins/node-gyp-detector';\nimport { protocolExternalResolver } from '../plugins/protocol-external-resolver';\nimport { subpathExternalsResolver } from '../plugins/subpath-externals-resolver';\nimport { tsConfigPaths } from '../plugins/tsconfig-paths';\nimport type { DependencyMetadata } from '../types';\nimport {\n  getCompiledDepCachePath,\n  getNodeResolveOptions,\n  isDependencyPartOfPackage,\n  rollupSafeName,\n  slash,\n} from '../utils';\nimport type { BundlerPlatform } from '../utils';\nimport { DEPS_TO_IGNORE } from './constants';\nimport type { NormalizedExternals } from './externals';\n\ntype VirtualDependency = {\n  name: string;\n  virtual: string;\n};\n\nfunction prepareEntryFileName(name: string, rootDir: string) {\n  return rollupSafeName(name, rootDir);\n}\n\n/**\n * Creates virtual dependency modules for optimized bundling by generating virtual entry points for each dependency with their specific exports and handling workspace package path resolution.\n */\nexport function createVirtualDependencies(\n  depsToOptimize: Map<string, DependencyMetadata>,\n  {\n    projectRoot,\n    workspaceRoot,\n    outputDir,\n    bundlerOptions,\n  }: {\n    workspaceRoot: string | null;\n    projectRoot: string;\n    outputDir: string;\n    bundlerOptions?: { isDev?: boolean; externalsPreset?: boolean };\n  },\n): {\n  optimizedDependencyEntries: Map<string, VirtualDependency>;\n  fileNameToDependencyMap: Map<string, string>;\n} {\n  const { isDev = false, externalsPreset = false } = bundlerOptions || {};\n  const fileNameToDependencyMap = new Map<string, string>();\n  const optimizedDependencyEntries = new Map<string, VirtualDependency>();\n  const rootDir = workspaceRoot || projectRoot;\n\n  for (const [dep, { exports }] of depsToOptimize.entries()) {\n    // Use __ as separator to avoid conflicts with hyphens in package names\n    // e.g., @inner/inner-tools -> @inner__inner-tools (preserves the hyphen)\n    const fileName = dep.replaceAll('/', '__');\n    const virtualFile: string[] = [];\n    const exportStringBuilder = [];\n\n    for (const local of exports) {\n      if (local === '*') {\n        virtualFile.push(`export * from '${dep}';`);\n        continue;\n      } else if (local === 'default') {\n        exportStringBuilder.push('default');\n      } else {\n        exportStringBuilder.push(local);\n      }\n    }\n\n    const chunks = [];\n    if (exportStringBuilder.length) {\n      chunks.push(`{ ${exportStringBuilder.join(', ')} }`);\n    }\n    if (chunks.length) {\n      virtualFile.push(`export ${chunks.join(', ')} from '${dep}';`);\n    }\n\n    // Determine the entry name based on the complexity of exports\n    let entryName = prepareEntryFileName(path.join(outputDir, fileName), rootDir);\n\n    fileNameToDependencyMap.set(entryName, dep);\n    optimizedDependencyEntries.set(dep, {\n      name: entryName,\n      virtual: virtualFile.join('\\n'),\n    });\n  }\n\n  // For workspace packages, we still want the dependencies to be imported from the original path\n  // We rewrite the path to the original folder inside node_modules/.cache\n  if (isDev || externalsPreset) {\n    for (const [dep, { isWorkspace, rootPath }] of depsToOptimize.entries()) {\n      if (!isWorkspace || !rootPath || !workspaceRoot) {\n        continue;\n      }\n\n      const currentDepPath = optimizedDependencyEntries.get(dep);\n      if (!currentDepPath) {\n        continue;\n      }\n\n      const fileName = basename(currentDepPath.name);\n      const entryName = prepareEntryFileName(getCompiledDepCachePath(rootPath, fileName), rootDir);\n\n      fileNameToDependencyMap.set(entryName, dep);\n      optimizedDependencyEntries.set(dep, {\n        ...currentDepPath,\n        name: entryName,\n      });\n    }\n  }\n\n  return { optimizedDependencyEntries, fileNameToDependencyMap };\n}\n\n/**\n * Configures and returns Rollup plugins for bundling external dependencies.\n * Sets up virtual modules, TypeScript compilation, CommonJS transformation, and workspace resolution.\n */\nasync function getInputPlugins(\n  virtualDependencies: Map<string, { name: string; virtual: string }>,\n  {\n    transpilePackages,\n    workspaceMap,\n    bundlerOptions,\n    rootDir,\n    externals,\n    platform,\n  }: {\n    transpilePackages: Set<string>;\n    workspaceMap: Map<string, WorkspacePackageInfo>;\n    bundlerOptions: { noBundling: boolean };\n    rootDir: string;\n    externals: string[];\n    platform: BundlerPlatform;\n  },\n) {\n  const transpilePackagesMap = new Map<string, string>();\n  for (const pkg of transpilePackages) {\n    const dir = await getPackageRootPath(pkg);\n\n    if (dir) {\n      transpilePackagesMap.set(pkg, slash(dir));\n    } else {\n      transpilePackagesMap.set(pkg, workspaceMap.get(pkg)?.location ?? pkg);\n    }\n  }\n\n  return [\n    virtual(\n      Array.from(virtualDependencies.entries()).reduce(\n        (acc, [dep, virtualDep]) => {\n          acc[`#virtual-${dep}`] = virtualDep.virtual;\n          return acc;\n        },\n        {} as Record<string, string>,\n      ),\n    ),\n    tsConfigPaths(),\n    protocolExternalResolver(),\n    subpathExternalsResolver(externals),\n    transpilePackagesMap.size\n      ? esbuild({\n          format: 'esm',\n          include: [\n            // Match files from transpilePackages by their actual directory paths\n            // but exclude any nested node_modules\n            ...[...transpilePackagesMap.values()].map(p => {\n              if (path.isAbsolute(p)) {\n                return new RegExp(`^${p.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')}/(?!.*node_modules).*$`);\n              } else {\n                return new RegExp(`\\/${p.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')}/(?!.*node_modules).*$`);\n              }\n            }),\n            // Also match workspace packages resolved through node_modules symlinks\n            // (common in pnpm workspaces). Match by package name in node_modules path.\n            ...[...transpilePackagesMap.keys()].map(pkgName => {\n              const escapedPkgName = pkgName.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n              return new RegExp(`/node_modules/${escapedPkgName}/(?!.*node_modules).*$`);\n            }),\n          ],\n          // Disable the default /node_modules/ exclusion from rollup-plugin-esbuild.\n          // In pnpm workspaces, nodeResolve resolves workspace packages through node_modules\n          // symlinks, so the resolved paths contain \"node_modules\". Without this, workspace\n          // package .ts files won't be transpiled even if they match the include patterns.\n          exclude: [],\n        })\n      : null,\n    bundlerOptions.noBundling\n      ? ({\n          name: 'alias-optimized-deps',\n          async resolveId(id, importer, options) {\n            if (!virtualDependencies.has(id)) {\n              return null;\n            }\n\n            const info = virtualDependencies.get(id)!;\n            // go from ./node_modules/.cache/index.js to ./pkg\n            const packageRootPath = path.join(rootDir, path.dirname(path.dirname(path.dirname(info.name))));\n            const pkgJsonBuffer = await readFile(path.join(packageRootPath, 'package.json'), 'utf-8');\n            const pkgJson = JSON.parse(pkgJsonBuffer);\n            if (!pkgJson) {\n              return null;\n            }\n\n            const pkgName = pkgJson.name || '';\n            let resolvedPath: string | undefined = resolve.exports(pkgJson, id.replace(pkgName, '.'))?.[0];\n            if (!resolvedPath) {\n              resolvedPath = pkgJson!.main ?? 'index.js';\n            }\n\n            const resolved = await this.resolve(path.posix.join(packageRootPath, resolvedPath!), importer, options);\n            return resolved;\n          },\n        } satisfies Plugin)\n      : null,\n    optimizeLodashImports({\n      include: '**/*.{js,ts,mjs,cjs}',\n    }),\n    commonjs({\n      strictRequires: 'strict',\n      transformMixedEsModules: true,\n      ignoreTryCatch: false,\n    }),\n    bundlerOptions.noBundling ? null : nodeResolve(getNodeResolveOptions(platform)),\n    bundlerOptions.noBundling ? esmShim() : null,\n    // hono is imported from deployer, so we need to resolve from here instead of the project root\n    aliasHono(),\n    json(),\n    nodeGypDetector(),\n    moduleResolveMap(externals, rootDir),\n    {\n      name: 'not-found-resolver',\n      resolveId: {\n        order: 'post',\n        async handler(id, importer) {\n          if (!importer) {\n            return null;\n          }\n\n          if (!id.endsWith('.node')) {\n            return null;\n          }\n\n          const pkgInfo = await getPackageInfo(importer);\n          const packageName = pkgInfo?.packageJson?.name || id;\n          throw new MastraBaseError({\n            id: 'DEPLOYER_BUNDLE_EXTERNALS_MISSING_NATIVE_BUILD',\n            domain: ErrorDomain.DEPLOYER,\n            category: ErrorCategory.USER,\n            details: {\n              importFile: importer,\n              packageName,\n            },\n            text: `We found a possible binary dependency in your bundle. ${id} was not found when imported at ${importer}.\n\nPlease consider adding \\`${packageName}\\` to your externals, or updating this import to not end with \".node\".\n\nexport const mastra = new Mastra({\n  bundler: {\n    externals: [\"${packageName}\"],\n  }\n})`,\n          });\n        },\n      },\n    } satisfies Plugin,\n  ].filter(Boolean);\n}\n\n/**\n * Executes the Rollup build process for virtual dependencies using configured plugins.\n * Bundles all virtual dependency modules into optimized ESM files with proper external handling.\n */\nasync function buildExternalDependencies(\n  virtualDependencies: Map<string, VirtualDependency>,\n  {\n    externals,\n    packagesToTranspile,\n    workspaceMap,\n    rootDir,\n    outputDir,\n    bundlerOptions,\n    platform,\n  }: {\n    externals: string[];\n    packagesToTranspile: Set<string>;\n    workspaceMap: Map<string, WorkspacePackageInfo>;\n    rootDir: string;\n    outputDir: string;\n    bundlerOptions: {\n      isDev: boolean;\n      externalsPreset: boolean;\n    };\n    platform: BundlerPlatform;\n  },\n) {\n  /**\n   * If there are no virtual dependencies to bundle, return an empty array to avoid Rollup errors.\n   */\n  if (virtualDependencies.size === 0) {\n    return [] as unknown as [OutputChunk, ...(OutputAsset | OutputChunk)[]];\n  }\n\n  const noBundling = bundlerOptions.isDev || bundlerOptions.externalsPreset;\n\n  const plugins = await getInputPlugins(virtualDependencies, {\n    transpilePackages: packagesToTranspile,\n    workspaceMap,\n    bundlerOptions: {\n      noBundling,\n    },\n    rootDir,\n    externals,\n    platform,\n  });\n\n  const bundler = await rollup({\n    logLevel: process.env.MASTRA_BUNDLER_DEBUG === 'true' ? 'debug' : 'silent',\n    input: Array.from(virtualDependencies.entries()).reduce(\n      (acc, [dep, virtualDep]) => {\n        acc[virtualDep.name] = `#virtual-${dep}`;\n        return acc;\n      },\n      {} as Record<string, string>,\n    ),\n    external: externals,\n    treeshake: noBundling ? false : 'safest',\n    plugins,\n  });\n\n  const outputDirRelative = prepareEntryFileName(outputDir, rootDir);\n\n  const { output } = await bundler.write({\n    format: 'esm',\n    dir: rootDir,\n    entryFileNames: '[name].mjs',\n    // used to get the filename of the actual error\n    sourcemap: true,\n    /**\n     * Rollup creates chunks for common dependencies, but these chunks are by default written to the root directory instead of respecting the entryFileNames structure.\n     * So we want to write them to the `.mastra/output` folder as well.\n     */\n    chunkFileNames: chunkInfo => {\n      /**\n       * This whole bunch of logic directly below is for the edge case shown in the e2e-tests/monorepo with \"tinyrainbow\" package. It's used in multiple places in the package and as such Rollup creates a shared chunk for it. During 'mastra dev' / with externals: true, we don't want that chunk to show up in the '.mastra/output' folder (outputDirRelative) but inside <pkg>/node_modules/.cache instead.\n       * We only care about this for the \"noBundling\" case!\n       */\n      if (noBundling) {\n        const importedFromPackages = new Set<string>();\n\n        for (const moduleId of chunkInfo.moduleIds) {\n          const normalized = slash(moduleId);\n          for (const [pkgName, pkgInfo] of workspaceMap.entries()) {\n            const location = slash(pkgInfo.location);\n            if (normalized.startsWith(location)) {\n              importedFromPackages.add(pkgName);\n              break;\n            }\n          }\n        }\n\n        if (importedFromPackages.size > 1) {\n          throw new MastraBaseError({\n            id: 'DEPLOYER_BUNDLE_EXTERNALS_SHARED_CHUNK',\n            domain: ErrorDomain.DEPLOYER,\n            category: ErrorCategory.USER,\n            details: {\n              chunkName: chunkInfo.name,\n              packages: JSON.stringify(Array.from(importedFromPackages)),\n            },\n            text: `Please open an issue. We found a shared chunk \"${\n              chunkInfo.name\n            }\" used by multiple workspace packages: ${Array.from(importedFromPackages).join(', ')}.`,\n          });\n        }\n\n        if (importedFromPackages.size === 1) {\n          const [pkgName] = importedFromPackages;\n          const workspaceLocation = workspaceMap.get(pkgName!)!.location;\n          return prepareEntryFileName(getCompiledDepCachePath(workspaceLocation, '[name].mjs'), rootDir);\n        }\n      }\n\n      return `${outputDirRelative}/[name].mjs`;\n    },\n    assetFileNames: `${outputDirRelative}/[name][extname]`,\n    hoistTransitiveImports: false,\n  });\n\n  await bundler.close();\n\n  return output;\n}\n\n/**\n * Recursively searches through Rollup output chunks to find which module imports a specific external dependency.\n * Used to build the module resolution map for proper external dependency tracking.\n */\nfunction findExternalImporter(\n  module: OutputChunk,\n  external: string,\n  allOutputs: OutputChunk[],\n  visited = new Set<string>(),\n): OutputChunk | null {\n  if (visited.has(module.fileName)) {\n    return null;\n  }\n\n  visited.add(module.fileName);\n  const capturedFiles = new Set<string>();\n\n  for (const id of [...module.imports, ...module.dynamicImports]) {\n    if (isDependencyPartOfPackage(id, external)) {\n      return module;\n    } else {\n      if (id.endsWith('.mjs')) {\n        capturedFiles.add(id);\n      }\n    }\n  }\n\n  for (const file of capturedFiles) {\n    const nextModule = allOutputs.find(o => o.fileName === file);\n    if (nextModule) {\n      const importer = findExternalImporter(nextModule, external, allOutputs, visited);\n\n      if (importer) {\n        return importer;\n      }\n    }\n  }\n\n  return null;\n}\n\n/**\n * Bundles vendor dependencies identified in the analysis step.\n * Creates virtual modules for each dependency and bundles them using rollup.\n *\n * @param depsToOptimize - Map of dependencies to optimize with their metadata (exported bindings, rootPath, isWorkspace)\n * @param outputDir - Directory where bundled files will be written\n * @param logger - Logger instance for debugging\n * @returns Object containing bundle output and reference map for validation\n */\nexport async function bundleExternals(\n  depsToOptimize: Map<string, DependencyMetadata>,\n  outputDir: string,\n  options: {\n    bundlerOptions: NormalizedExternals & {\n      isDev?: boolean;\n      transpilePackages?: string[];\n    };\n    projectRoot?: string;\n    workspaceRoot?: string;\n    workspaceMap?: Map<string, WorkspacePackageInfo>;\n    platform?: BundlerPlatform;\n  },\n) {\n  const {\n    workspaceRoot = null,\n    workspaceMap = new Map(),\n    projectRoot = outputDir,\n    bundlerOptions,\n    platform = 'node',\n  } = options;\n  const { externalsPreset, mergedExternals, transpilePackages = [], isDev = false } = bundlerOptions;\n\n  const workspacePackagesNames = Array.from(workspaceMap.keys());\n  const packagesToTranspile = new Set([...transpilePackages, ...workspacePackagesNames]);\n\n  /**\n   * When externals: true, we need to extract non-workspace deps from depsToOptimize\n   * and add them directly to usedExternals instead of bundling them.\n   */\n  const extractedExternals = new Map<string, string>();\n  if (externalsPreset) {\n    for (const [dep, metadata] of depsToOptimize.entries()) {\n      if (!metadata.isWorkspace) {\n        // Add to extracted externals - use rootPath or fallback to package name\n        extractedExternals.set(dep, metadata.rootPath ?? dep);\n        // Remove from depsToOptimize so it won't be bundled\n        depsToOptimize.delete(dep);\n      }\n    }\n  }\n\n  const { optimizedDependencyEntries, fileNameToDependencyMap } = createVirtualDependencies(depsToOptimize, {\n    workspaceRoot,\n    outputDir,\n    projectRoot,\n    bundlerOptions: {\n      isDev,\n      externalsPreset,\n    },\n  });\n\n  const output = await buildExternalDependencies(optimizedDependencyEntries, {\n    externals: mergedExternals,\n    packagesToTranspile,\n    workspaceMap,\n    rootDir: workspaceRoot || projectRoot,\n    outputDir,\n    bundlerOptions: {\n      isDev,\n      externalsPreset,\n    },\n    platform,\n  });\n\n  const moduleResolveMap = new Map<string, Map<string, string>>();\n  const filteredChunks = output.filter(o => o.type === 'chunk');\n\n  for (const o of filteredChunks.filter(o => o.isEntry || o.isDynamicEntry)) {\n    for (const external of mergedExternals) {\n      if (DEPS_TO_IGNORE.includes(external)) {\n        continue;\n      }\n\n      const importer = findExternalImporter(o, external, filteredChunks);\n\n      if (importer) {\n        const fullPath = path.join(workspaceRoot || projectRoot, importer.fileName);\n        let innerMap = moduleResolveMap.get(fullPath);\n\n        if (!innerMap) {\n          innerMap = new Map<string, string>();\n          moduleResolveMap.set(fullPath, innerMap);\n        }\n\n        if (importer.moduleIds.length) {\n          innerMap.set(\n            external,\n            importer.moduleIds[importer.moduleIds.length - 1]?.startsWith('\\x00virtual:#virtual')\n              ? importer.moduleIds[importer.moduleIds.length - 2]!\n              : importer.moduleIds[importer.moduleIds.length - 1]!,\n          );\n        }\n      }\n    }\n  }\n\n  /**\n   * Convert moduleResolveMap to a plain object with prototype-less objects\n   */\n  const usedExternals = Object.create(null) as Record<string, Record<string, string>>;\n  for (const [fullPath, innerMap] of moduleResolveMap) {\n    const innerObj = Object.create(null) as Record<string, string>;\n    for (const [external, value] of innerMap) {\n      innerObj[external] = value;\n    }\n    usedExternals[fullPath] = innerObj;\n  }\n\n  /**\n   * When externals: true, add the extracted non-workspace deps to usedExternals\n   * using a synthetic entry path to track them.\n   */\n  if (extractedExternals.size > 0) {\n    const syntheticPath = path.join(workspaceRoot || projectRoot, '__externals__');\n    const externalsObj = Object.create(null) as Record<string, string>;\n    for (const [dep, rootPath] of extractedExternals) {\n      externalsObj[dep] = rootPath;\n    }\n    usedExternals[syntheticPath] = externalsObj;\n  }\n\n  return { output, fileNameToDependencyMap, usedExternals };\n}\n","import { DEPRECATED_EXTERNALS, GLOBAL_EXTERNALS } from './constants';\n\nexport interface NormalizedExternals {\n  externalsPreset: boolean;\n  mergedExternals: string[];\n}\n\nexport function normalizeExternals(externals?: boolean | string[] | null): NormalizedExternals {\n  const userExternals = Array.isArray(externals) ? externals : [];\n\n  return {\n    externalsPreset: externals === true,\n    mergedExternals: [...new Set([...GLOBAL_EXTERNALS, ...DEPRECATED_EXTERNALS, ...userExternals].filter(Boolean))],\n  };\n}\n","import { types as t } from '@babel/core';\nimport type { PluginObject } from '@babel/core';\n\nexport function checkConfigExport(result: { hasValidConfig: boolean; projectType?: string }): PluginObject {\n  // Track which local variable names are assigned to `new Mastra()`\n  const mastraVars = new Set<string>();\n\n  return {\n    visitor: {\n      NewExpression(path) {\n        if (!t.isIdentifier(path.node.callee)) {\n          return;\n        }\n\n        const binding = path.scope.getBinding(path.node.callee.name);\n        if (\n          binding?.path.isImportSpecifier() &&\n          t.isIdentifier(binding.path.node.imported, { name: 'MastraFactory' })\n        ) {\n          result.projectType = 'factory';\n        }\n      },\n      ExportNamedDeclaration(path) {\n        const decl = path.node.declaration;\n        // 1) export const mastra = new Mastra(...)\n        if (t.isVariableDeclaration(decl)) {\n          const varDecl = decl.declarations[0];\n          if (\n            t.isIdentifier(varDecl?.id, { name: 'mastra' }) &&\n            t.isNewExpression(varDecl.init) &&\n            t.isIdentifier(varDecl.init.callee, { name: 'Mastra' })\n          ) {\n            result.hasValidConfig = true;\n          }\n        }\n        /**\n         * 2) export { foo as mastra }\n         * 3) export { mastra }\n         * 4) export { mastra, foo }\n         */\n        if (Array.isArray(path.node.specifiers)) {\n          for (const spec of path.node.specifiers) {\n            if (\n              t.isExportSpecifier(spec) &&\n              t.isIdentifier(spec.exported, { name: 'mastra' }) &&\n              t.isIdentifier(spec.local) &&\n              mastraVars.has(spec.local.name)\n            ) {\n              result.hasValidConfig = true;\n            }\n          }\n        }\n      },\n      // For cases 2-4 we need to track whether those variables are assigned to `new Mastra()`\n      VariableDeclaration(path) {\n        for (const decl of path.node.declarations) {\n          if (\n            t.isIdentifier(decl.id) &&\n            t.isNewExpression(decl.init) &&\n            t.isIdentifier(decl.init.callee, { name: 'Mastra' })\n          ) {\n            mastraVars.add(decl.id.name);\n          }\n        }\n      },\n    },\n  };\n}\n","import type { PluginObject, NodePath } from '@babel/core';\nimport { types as t } from '@babel/core';\n\n/**\n * Extract string value from a node (supports StringLiteral and TemplateLiteral without expressions)\n */\nfunction getStringValue(node: t.Node | null | undefined): string | null {\n  if (!node) return null;\n\n  if (t.isStringLiteral(node)) {\n    return node.value;\n  }\n\n  // Handle template literals without expressions: `my-transport`\n  if (t.isTemplateLiteral(node) && node.expressions.length === 0 && node.quasis.length === 1) {\n    return node.quasis[0]?.value.cooked ?? null;\n  }\n\n  return null;\n}\n\n/**\n * Extract target value from an object property\n */\nfunction extractTargetFromProperty(prop: t.ObjectProperty | t.ObjectMethod | t.SpreadElement): string | null {\n  if (!t.isObjectProperty(prop)) return null;\n\n  const key = prop.key;\n  if (t.isIdentifier(key, { name: 'target' }) || (t.isStringLiteral(key) && key.value === 'target')) {\n    return getStringValue(prop.value);\n  }\n\n  return null;\n}\n\n/**\n * Check if a binding came from a pino import/require\n */\nfunction isBindingFromPino(path: NodePath<t.CallExpression>, identifierName: string): boolean {\n  const binding = path.scope.getBinding(identifierName);\n  if (!binding) {\n    // No binding found - could be global `pino` (unlikely but accept literal name)\n    return identifierName === 'pino';\n  }\n\n  const bindingPath = binding.path;\n\n  // Import default: import pino from 'pino'\n  if (bindingPath.isImportDefaultSpecifier()) {\n    const importDecl = bindingPath.parentPath;\n    if (importDecl?.isImportDeclaration()) {\n      return importDecl.node.source.value === 'pino';\n    }\n  }\n\n  // Import namespace: import * as p from 'pino'\n  if (bindingPath.isImportNamespaceSpecifier()) {\n    const importDecl = bindingPath.parentPath;\n    if (importDecl?.isImportDeclaration()) {\n      return importDecl.node.source.value === 'pino';\n    }\n  }\n\n  // Import specifier: import { default as logger } from 'pino'\n  if (bindingPath.isImportSpecifier()) {\n    const importDecl = bindingPath.parentPath;\n    if (importDecl?.isImportDeclaration() && importDecl.node.source.value === 'pino') {\n      const imported = bindingPath.node.imported;\n      if (t.isIdentifier(imported) && imported.name === 'default') return true;\n      if (t.isStringLiteral(imported) && imported.value === 'default') return true;\n    }\n    return false;\n  }\n\n  // Require: const pino = require('pino')\n  if (bindingPath.isVariableDeclarator()) {\n    const init = bindingPath.node.init;\n    if (\n      t.isCallExpression(init) &&\n      t.isIdentifier(init.callee, { name: 'require' }) &&\n      init.arguments.length === 1 &&\n      t.isStringLiteral(init.arguments[0]) &&\n      init.arguments[0].value === 'pino'\n    ) {\n      return true;\n    }\n  }\n\n  return false;\n}\n\n/**\n * Check if a call expression is a pino.transport() call using scope analysis\n */\nfunction isPinoTransportCall(path: NodePath<t.CallExpression>): boolean {\n  const callee = path.node.callee;\n\n  // Must be member expression like `something.transport`\n  if (!t.isMemberExpression(callee)) return false;\n  if (!t.isIdentifier(callee.property, { name: 'transport' })) return false;\n\n  // Handle `pino.transport()` or `logger.transport()` where logger is bound to pino\n  if (t.isIdentifier(callee.object)) {\n    return isBindingFromPino(path, callee.object.name);\n  }\n\n  // Handle `pino.default.transport()` pattern (namespace import interop)\n  if (\n    t.isMemberExpression(callee.object) &&\n    t.isIdentifier(callee.object.object) &&\n    t.isIdentifier(callee.object.property, { name: 'default' })\n  ) {\n    return isBindingFromPino(path, callee.object.object.name);\n  }\n\n  return false;\n}\n\n/**\n * Extract transport targets from a pino.transport() argument\n */\nfunction extractTransportsFromArg(arg: t.Node): string[] {\n  const targets: string[] = [];\n\n  if (!t.isObjectExpression(arg)) return targets;\n\n  for (const prop of arg.properties) {\n    if (!t.isObjectProperty(prop)) continue;\n\n    const key = prop.key;\n    const keyName = t.isIdentifier(key) ? key.name : t.isStringLiteral(key) ? key.value : null;\n\n    if (keyName === 'target') {\n      // Single target: { target: \"package-name\" }\n      const value = getStringValue(prop.value);\n      if (value) {\n        targets.push(value);\n      }\n    } else if (keyName === 'targets') {\n      // Multiple targets: { targets: [{ target: \"pkg1\" }, { target: \"pkg2\" }] }\n      if (t.isArrayExpression(prop.value)) {\n        for (const element of prop.value.elements) {\n          if (t.isObjectExpression(element)) {\n            for (const innerProp of element.properties) {\n              const targetValue = extractTargetFromProperty(innerProp);\n              if (targetValue) {\n                targets.push(targetValue);\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n\n  return targets;\n}\n\n/**\n * Babel plugin to detect pino transport targets in code.\n * Matches patterns like:\n * - pino.transport({ target: \"package-name\" })\n * - pino.transport({ targets: [{ target: \"package-name\" }] })\n * - variable.transport({ target: \"...\" }) where variable is assigned from pino import\n *\n * @param transports - Set to collect detected transport package names\n * @returns Babel plugin object\n */\nexport function detectPinoTransports(transports: Set<string>): PluginObject {\n  return {\n    name: 'detect-pino-transports',\n    visitor: {\n      CallExpression(path) {\n        if (!isPinoTransportCall(path)) return;\n\n        // Process first argument which should be the transport config object\n        const firstArg = path.node.arguments[0];\n        if (firstArg && !t.isSpreadElement(firstArg)) {\n          for (const target of extractTransportsFromArg(firstArg)) {\n            transports.add(target);\n          }\n        }\n      },\n    },\n  };\n}\n","import { existsSync } from 'node:fs';\nimport { readFile, writeFile } from 'node:fs/promises';\nimport { basename, isAbsolute, join, relative } from 'node:path';\nimport { transformAsync, transformSync } from '@babel/core';\nimport { ErrorCategory, ErrorDomain, MastraError } from '@mastra/core/error';\nimport type { IMastraLogger } from '@mastra/core/logger';\nimport type { OutputAsset, OutputChunk } from 'rollup';\nimport * as stackTraceParser from 'stacktrace-parser';\nimport { getWorkspaceInformation } from '../bundler/workspaceDependencies';\nimport type { WorkspacePackageInfo } from '../bundler/workspaceDependencies';\nimport { validate, ValidationError } from '../validator/validate';\nimport { analyzeEntry } from './analyze/analyzeEntry';\nimport { bundleExternals } from './analyze/bundleExternals';\nimport { DEPS_TO_IGNORE } from './analyze/constants';\nimport { normalizeExternals } from './analyze/externals';\nimport { checkConfigExport } from './babel/check-config-export';\nimport { detectPinoTransports } from './babel/detect-pino-transports';\nimport { getPackageMetadata } from './package-info';\nimport type { BundlerOptions, DependencyMetadata, ExternalDependencyInfo } from './types';\nimport {\n  getPackageName,\n  isBareModuleSpecifier,\n  isBuiltinModule,\n  isDependencyPartOfPackage,\n  isExternalProtocolImport,\n  slash,\n} from './utils';\nimport type { BundlerPlatform } from './utils';\n\ntype ErrorId =\n  | 'DEPLOYER_ANALYZE_MODULE_NOT_FOUND'\n  | 'DEPLOYER_ANALYZE_MISSING_NATIVE_BUILD'\n  | 'DEPLOYER_ANALYZE_TYPE_ERROR';\n\nfunction preferDependencyInfo(\n  existing: ExternalDependencyInfo | undefined,\n  incoming: ExternalDependencyInfo,\n): ExternalDependencyInfo {\n  return {\n    version: incoming.version ?? existing?.version,\n    packageSpec: incoming.packageSpec ?? existing?.packageSpec,\n  };\n}\n\nasync function resolveDependencyInfo(\n  dep: string,\n  existing: ExternalDependencyInfo | undefined,\n  parentPaths: string[],\n): Promise<ExternalDependencyInfo> {\n  if (existing?.version || existing?.packageSpec) {\n    return existing;\n  }\n\n  const packageName = getPackageName(dep);\n  const packageNames = [...new Set([dep, packageName].filter(Boolean) as string[])];\n\n  for (const parentPath of parentPaths) {\n    for (const name of packageNames) {\n      const metadata = await getPackageMetadata(name, parentPath);\n      if (metadata.version || metadata.packageSpec) {\n        return preferDependencyInfo(existing, metadata);\n      }\n    }\n  }\n\n  for (const name of packageNames) {\n    const metadata = await getPackageMetadata(name);\n    if (metadata.version || metadata.packageSpec) {\n      return preferDependencyInfo(existing, metadata);\n    }\n  }\n\n  return existing ?? {};\n}\n\nfunction importerParentPaths(importerId: string | undefined, base: string[]): string[] {\n  if (!importerId || importerId.startsWith('\\x00') || !isAbsolute(importerId)) {\n    return base;\n  }\n\n  return [...new Set([importerId, ...base])];\n}\n\nfunction getLastConcreteModuleId(moduleIds: string[]): string | undefined {\n  return moduleIds.findLast(id => !id.startsWith('\\x00') && isAbsolute(id));\n}\n\nfunction throwExternalDependencyError({\n  errorId,\n  moduleName,\n  packageName,\n  messagePrefix,\n}: {\n  errorId: ErrorId;\n  moduleName: string;\n  packageName: string;\n  messagePrefix: string;\n}): never {\n  throw new MastraError({\n    id: errorId,\n    domain: ErrorDomain.DEPLOYER,\n    category: ErrorCategory.USER,\n    details: {\n      importFile: moduleName,\n      packageName: packageName,\n    },\n    text: `${messagePrefix} \\`${packageName}\\` to your externals.\n\nexport const mastra = new Mastra({\n  bundler: {\n    externals: [\"${packageName}\"],\n  }\n})`,\n  });\n}\n\nfunction getPackageNameFromBundledModuleName(moduleName: string) {\n  // New encoding uses __ to separate path segments (e.g., @inner__inner-tools -> @inner/inner-tools)\n  if (moduleName.includes('__')) {\n    return moduleName.replaceAll('__', '/');\n  }\n\n  // Legacy fallback for old format using - as separator\n  const chunks = moduleName.split('-');\n\n  if (!chunks.length) {\n    return moduleName;\n  }\n\n  if (chunks[0]?.startsWith('@')) {\n    return chunks.slice(0, 2).join('/');\n  }\n\n  return chunks[0];\n}\n\nfunction validateError(\n  err: ValidationError | Error,\n  file: OutputChunk,\n  {\n    binaryMapData,\n    workspaceMap,\n  }: {\n    binaryMapData: Record<string, string[]>;\n    logger: IMastraLogger;\n    workspaceMap: Map<string, WorkspacePackageInfo>;\n  },\n) {\n  let moduleName: string | undefined | null = null;\n  let errorConfig: {\n    id: ErrorId;\n    messagePrefix: string;\n  } | null = null;\n\n  if (err instanceof ValidationError) {\n    const parsedStack = stackTraceParser.parse(err.stack);\n    if (err.type === 'TypeError') {\n      const pkgNameRegex = /.*node_modules\\/([^\\/]+)\\//;\n      const stacktraceFrame = parsedStack.find(frame => frame.file && pkgNameRegex.test(frame.file));\n      if (stacktraceFrame) {\n        const match = stacktraceFrame.file!.match(pkgNameRegex);\n        moduleName = match?.[1] ?? getPackageNameFromBundledModuleName(basename(file.name));\n      } else {\n        moduleName = getPackageNameFromBundledModuleName(basename(file.name));\n      }\n\n      errorConfig = {\n        id: 'DEPLOYER_ANALYZE_TYPE_ERROR',\n        messagePrefix: `Mastra wasn't able to bundle \"${moduleName}\", might be an older commonJS module. Please add`,\n      };\n    } else if (err.stack?.includes?.('[ERR_MODULE_NOT_FOUND]')) {\n      moduleName = err.message.match(/Cannot find package '([^']+)'/)?.[1];\n\n      const parentModuleName = getPackageNameFromBundledModuleName(basename(file.name));\n\n      errorConfig = {\n        id: 'DEPLOYER_ANALYZE_MODULE_NOT_FOUND',\n        messagePrefix: `Mastra wasn't able to build your project, We couldn't load \"${moduleName}\" from \"${parentModuleName}\". Make sure \"${moduleName}\" is installed or add`,\n      };\n\n      // if they are the same, the feedback we give to our user is not really useful and probably something else went wrong\n      if (moduleName === parentModuleName) {\n        return;\n      }\n    }\n  }\n\n  if (err.message.includes('No native build was found')) {\n    const pkgName = getPackageNameFromBundledModuleName(basename(file.name));\n    moduleName = binaryMapData[file.fileName]?.[0] ?? pkgName;\n    errorConfig = {\n      id: 'DEPLOYER_ANALYZE_MISSING_NATIVE_BUILD',\n      messagePrefix: 'We found a binary dependency in your bundle but we cannot bundle it yet. Please add',\n    };\n  }\n\n  if (moduleName && workspaceMap.has(moduleName)) {\n    throw new MastraError({\n      id: 'DEPLOYER_ANALYZE_ERROR_IN_WORKSPACE',\n      domain: ErrorDomain.DEPLOYER,\n      category: ErrorCategory.USER,\n      details: {\n        // importFile: moduleName,\n        packageName: moduleName,\n      },\n      text: `We found an error in the ${moduleName} workspace package. Please find the offending package and fix the error.\n  Error: ${err.stack}`,\n    });\n  }\n\n  if (errorConfig && moduleName) {\n    throwExternalDependencyError({\n      errorId: errorConfig.id,\n      moduleName: moduleName!,\n      packageName: moduleName!,\n      messagePrefix: errorConfig.messagePrefix,\n    });\n  }\n}\n\nasync function validateFile(\n  root: string,\n  file: OutputChunk,\n  {\n    binaryMapData,\n    moduleResolveMapLocation,\n    logger,\n    workspaceMap,\n    stubbedExternals,\n  }: {\n    binaryMapData: Record<string, string[]>;\n    moduleResolveMapLocation: string;\n    logger: IMastraLogger;\n    workspaceMap: Map<string, WorkspacePackageInfo>;\n    stubbedExternals: string[];\n  },\n) {\n  try {\n    if (!file.isDynamicEntry && file.isEntry) {\n      // validate if the chunk is actually valid, a failsafe to make sure bundling didn't make any mistakes\n      await validate(join(root, file.fileName), {\n        moduleResolveMapLocation,\n        injectESMShim: false,\n        stubbedExternals,\n      });\n    }\n  } catch (err) {\n    let errorToHandle = err;\n    if (\n      err instanceof ValidationError &&\n      err.type === 'ReferenceError' &&\n      (err.message.startsWith('__dirname') || err.message.startsWith('__filename'))\n    ) {\n      try {\n        await validate(join(root, file.fileName), {\n          moduleResolveMapLocation,\n          injectESMShim: true,\n          stubbedExternals,\n        });\n        errorToHandle = null;\n      } catch (err) {\n        errorToHandle = err;\n      }\n    }\n\n    if (errorToHandle instanceof Error) {\n      validateError(errorToHandle, file, { binaryMapData, logger, workspaceMap });\n    }\n  }\n}\n\n/**\n * Validates the bundled output by attempting to import each generated module.\n * Tracks external dependencies that couldn't be bundled.\n *\n * @param output - Bundle output from rollup\n * @param reverseVirtualReferenceMap - Map to resolve virtual module names back to original deps\n * @param outputDir - Directory containing the bundled files\n * @param logger - Logger instance for debugging\n * @param workspaceMap - Map of workspace packages that gets directly passed through for later consumption\n * @returns Analysis result containing dependency mappings\n */\nasync function validateOutput(\n  {\n    output,\n    reverseVirtualReferenceMap,\n    usedExternals,\n    mergedExternals,\n    outputDir,\n    projectRoot,\n    workspaceMap,\n    depsVersionInfo,\n  }: {\n    output: (OutputChunk | OutputAsset)[];\n    reverseVirtualReferenceMap: Map<string, string>;\n    usedExternals: Record<string, Record<string, string>>;\n    mergedExternals: string[];\n    outputDir: string;\n    projectRoot: string;\n    workspaceMap: Map<string, WorkspacePackageInfo>;\n    depsVersionInfo: Map<string, ExternalDependencyInfo>;\n  },\n  logger: IMastraLogger,\n) {\n  const result = {\n    dependencies: new Map<string, string>(),\n    externalDependencies: new Map<string, ExternalDependencyInfo>(),\n    workspaceMap,\n  };\n\n  const externalMetadataParentPaths = [\n    projectRoot,\n    ...Array.from(workspaceMap.values()).map(pkgInfo => pkgInfo.location),\n  ];\n\n  // store resolve map for validation\n  // we should resolve the version of the deps\n  for (const deps of Object.values(usedExternals)) {\n    for (const [dep, importerId] of Object.entries(deps)) {\n      if (isExternalProtocolImport(dep)) {\n        continue;\n      }\n\n      const pkgName = getPackageName(dep);\n      if (pkgName) {\n        // Use version info from analysis if available, then resolve from the module that imported the external.\n        const versionInfo = depsVersionInfo.get(dep) || depsVersionInfo.get(pkgName);\n        const dependencyInfo = await resolveDependencyInfo(\n          dep,\n          versionInfo,\n          importerParentPaths(importerId, externalMetadataParentPaths),\n        );\n        result.externalDependencies.set(\n          pkgName,\n          preferDependencyInfo(result.externalDependencies.get(pkgName), dependencyInfo),\n        );\n      }\n    }\n  }\n  let binaryMapData: Record<string, string[]> = {};\n\n  if (existsSync(join(outputDir, 'binary-map.json'))) {\n    const binaryMap = await readFile(join(outputDir, 'binary-map.json'), 'utf-8');\n    binaryMapData = JSON.parse(binaryMap);\n  }\n\n  const stubbedExternals = [...new Set([...mergedExternals, ...DEPS_TO_IGNORE, ...result.externalDependencies.keys()])];\n\n  for (const file of output) {\n    if (file.type === 'asset') {\n      continue;\n    }\n\n    logger.debug('Validating module', { fileName: file.fileName });\n    if (file.isEntry && reverseVirtualReferenceMap.has(file.name)) {\n      result.dependencies.set(reverseVirtualReferenceMap.get(file.name)!, file.fileName);\n    }\n\n    // validate if the chunk is actually valid, a failsafe to make sure bundling didn't make any mistakes\n    await validateFile(projectRoot, file, {\n      binaryMapData,\n      moduleResolveMapLocation: join(outputDir, 'module-resolve-map.json'),\n      logger,\n      workspaceMap,\n      stubbedExternals,\n    });\n  }\n\n  return result;\n}\n\n/**\n * Main bundle analysis function that orchestrates the three-step process:\n * 1. Analyze dependencies\n * 2. Bundle dependencies modules\n * 3. Validate generated bundles\n *\n * This helps identify which dependencies need to be externalized vs bundled.\n */\nexport async function analyzeBundle(\n  entries: string[],\n  mastraEntry: string,\n  {\n    outputDir,\n    projectRoot,\n    platform,\n    isDev = false,\n    bundlerOptions,\n  }: {\n    outputDir: string;\n    projectRoot: string;\n    platform: BundlerPlatform;\n    isDev?: boolean;\n    bundlerOptions?: Pick<BundlerOptions, 'externals' | 'enableSourcemap' | 'dynamicPackages'> | null;\n  },\n  logger: IMastraLogger,\n) {\n  const mastraConfig = await readFile(mastraEntry, 'utf-8');\n  const mastraConfigResult: { hasValidConfig: boolean; projectType?: string } = { hasValidConfig: false };\n\n  await transformAsync(mastraConfig, {\n    filename: mastraEntry,\n    presets: [import.meta.resolve('@babel/preset-typescript')],\n    plugins: [() => checkConfigExport(mastraConfigResult)],\n  });\n\n  if (!mastraConfigResult.hasValidConfig) {\n    logger.warn('Invalid Mastra config', {\n      details:\n        'Please make sure that your entry file looks like this:\\nexport const mastra = new Mastra({\\n  // your options\\n})\\n\\nIf you think your configuration is valid, please open an issue.',\n    });\n  }\n\n  const { workspaceMap, workspaceRoot } = await getWorkspaceInformation({ mastraEntryFile: mastraEntry });\n\n  const { externalsPreset, mergedExternals } = normalizeExternals(bundlerOptions?.externals);\n  const userDynamicPackages = bundlerOptions?.dynamicPackages ?? [];\n\n  let index = 0;\n  const depsToOptimize = new Map<string, DependencyMetadata>();\n\n  // Collect pino transports detected across all entries\n  const detectedPinoTransports = new Set<string>();\n\n  logger.info('Analyzing dependencies...');\n\n  // Track external dependencies with their version info\n  const allUsedExternals = new Map<string, ExternalDependencyInfo>();\n  // Shared cache prevents re-analyzing the same workspace package across entries and recursive calls.\n  const analyzeCache = new Map<string, Awaited<ReturnType<typeof analyzeEntry>>>();\n  for (const entry of entries) {\n    const isVirtualFile = entry.includes('\\n') || !existsSync(entry);\n    const analyzeResult = await analyzeEntry({ entry, isVirtualFile }, mastraEntry, {\n      logger,\n      sourcemapEnabled: bundlerOptions?.enableSourcemap ?? false,\n      workspaceMap,\n      projectRoot,\n      shouldCheckTransitiveDependencies: true,\n      analyzeCache,\n    });\n\n    // Detect pino transports in the bundled output\n    transformSync(analyzeResult.output.code, {\n      filename: 'pino-detection.js',\n      plugins: [() => detectPinoTransports(detectedPinoTransports)],\n      configFile: false,\n      babelrc: false,\n      code: false,\n    });\n\n    // Write the entry file to the output dir so that we can use it for workspace resolution stuff\n    await writeFile(join(outputDir, `entry-${index++}.mjs`), analyzeResult.output.code);\n\n    // Merge dependencies from each entry (main, tools, etc.)\n    for (const [dep, metadata] of analyzeResult.dependencies.entries()) {\n      const isPartOfExternals = mergedExternals.some(external => isDependencyPartOfPackage(dep, external));\n      if (isPartOfExternals || (externalsPreset && !metadata.isWorkspace)) {\n        // Add all packages coming from src/mastra with their version info\n        const pkgName = getPackageName(dep);\n        if (pkgName) {\n          allUsedExternals.set(pkgName, preferDependencyInfo(allUsedExternals.get(pkgName), metadata));\n        }\n        continue;\n      }\n\n      if (depsToOptimize.has(dep)) {\n        // Merge with existing exports if dependency already exists\n        const existingEntry = depsToOptimize.get(dep)!;\n        depsToOptimize.set(dep, {\n          ...existingEntry,\n          version: metadata.version ?? existingEntry.version,\n          packageSpec: metadata.packageSpec ?? existingEntry.packageSpec,\n          exports: [...new Set([...existingEntry.exports, ...metadata.exports])],\n        });\n      } else {\n        depsToOptimize.set(dep, metadata);\n      }\n    }\n  }\n\n  // Build a map of dependency versions from the full analysis result before dev/externalsPreset pruning.\n  // Non-workspace deps are removed from optimization below, but their resolved version/packageSpec metadata\n  // is still needed when they become externals.\n  const depsVersionInfo = new Map<string, ExternalDependencyInfo>();\n  for (const [dep, metadata] of depsToOptimize.entries()) {\n    const pkgName = getPackageName(dep);\n    if (pkgName && (metadata.version || metadata.packageSpec)) {\n      depsVersionInfo.set(pkgName, preferDependencyInfo(depsVersionInfo.get(pkgName), metadata));\n    }\n    // Also store by full import path for subpath imports\n    if (metadata.version || metadata.packageSpec) {\n      depsVersionInfo.set(dep, preferDependencyInfo(depsVersionInfo.get(dep), metadata));\n    }\n  }\n\n  /**\n   * Only during `mastra dev` we want to optimize workspace packages. In previous steps we might have added dependencies that are not workspace packages, so we gotta remove them again.\n   */\n  if (isDev || externalsPreset) {\n    for (const [dep, metadata] of depsToOptimize.entries()) {\n      if (!metadata.isWorkspace) {\n        depsToOptimize.delete(dep);\n      }\n    }\n  }\n\n  const sortedDeps = Array.from(depsToOptimize.keys()).sort();\n  logger.info('Optimizing dependencies...');\n  logger.debug('Sorted dependencies', { deps: sortedDeps });\n\n  const { output, fileNameToDependencyMap, usedExternals } = await bundleExternals(depsToOptimize, outputDir, {\n    bundlerOptions: {\n      externalsPreset,\n      mergedExternals,\n      isDev,\n    },\n    projectRoot,\n    workspaceRoot,\n    workspaceMap,\n    platform,\n  });\n\n  // Filesystem-relative workspace paths for filtering workspace imports from rollup output.\n  // Normalize to forward slashes so the startsWith check works on Windows where\n  // path.relative() produces backslashes but rollup uses forward slashes.\n  const relativeWorkspaceFolderPaths = Array.from(workspaceMap.values()).map(pkgInfo =>\n    slash(relative(workspaceRoot || projectRoot, pkgInfo.location)),\n  );\n\n  for (const o of output) {\n    if (o.type === 'asset') {\n      continue;\n    }\n\n    const importerId = getLastConcreteModuleId(o.moduleIds);\n\n    for (const i of o.imports) {\n      if (isBuiltinModule(i)) {\n        continue;\n      }\n\n      // Skip relative imports - they're local chunks, not external packages\n      if (i.startsWith('.') || i.startsWith('/')) {\n        continue;\n      }\n\n      if (!isBareModuleSpecifier(i) || isExternalProtocolImport(i)) {\n        continue;\n      }\n\n      // Do not include workspace packages\n      if (relativeWorkspaceFolderPaths.some(workspacePath => i.startsWith(workspacePath))) {\n        continue;\n      }\n\n      const pkgName = getPackageName(i);\n\n      if (pkgName && workspaceMap.has(pkgName)) {\n        continue;\n      }\n\n      if (pkgName) {\n        // Try to get version info from our tracked dependencies, then resolve from the chunk's source module.\n        const versionInfo = depsVersionInfo.get(i) || depsVersionInfo.get(pkgName);\n        const dependencyInfo = await resolveDependencyInfo(\n          i,\n          versionInfo,\n          importerParentPaths(importerId, [\n            projectRoot,\n            ...Array.from(workspaceMap.values()).map(pkgInfo => pkgInfo.location),\n          ]),\n        );\n        allUsedExternals.set(pkgName, preferDependencyInfo(allUsedExternals.get(pkgName), dependencyInfo));\n      }\n    }\n  }\n\n  const result = await validateOutput(\n    {\n      output,\n      reverseVirtualReferenceMap: fileNameToDependencyMap,\n      usedExternals,\n      mergedExternals,\n      outputDir,\n      projectRoot: workspaceRoot || projectRoot,\n      workspaceMap,\n      depsVersionInfo,\n    },\n    logger,\n  );\n\n  /**\n   * Build the final set of external dependencies from four sources:\n   * 1. result.externalDependencies - externals discovered during bundle validation\n   * 2. allUsedExternals - packages detected via static analysis that matched the externals config\n   * 3. detectedPinoTransports - pino transports detected by the plugin during bundling\n   * 4. userDynamicPackages - user-specified packages loaded dynamically at runtime\n   *\n   * Prefer entries with version info over entries without\n   */\n  const mergedExternalDeps = new Map<string, ExternalDependencyInfo>(result.externalDependencies);\n  for (const [dep, info] of allUsedExternals) {\n    if (isExternalProtocolImport(dep)) {\n      continue;\n    }\n\n    mergedExternalDeps.set(dep, preferDependencyInfo(mergedExternalDeps.get(dep), info));\n  }\n\n  const externalMetadataParentPaths = [\n    projectRoot,\n    ...Array.from(workspaceMap.values()).map(pkgInfo => pkgInfo.location),\n    // Last resort: resolve from the deployer's own installed location. Some externals are\n    // discovered inside externalized packages (e.g. optional dynamic imports like\n    // `import('typescript')` in @mastra/core) without being installed in the user's project.\n    import.meta.dirname,\n  ];\n\n  // Retry externals that were discovered without install metadata (e.g. from entry analysis\n  // where the package isn't resolvable from the entry's own location).\n  for (const [dep, info] of mergedExternalDeps) {\n    if (!info.version && !info.packageSpec) {\n      mergedExternalDeps.set(dep, await resolveDependencyInfo(dep, info, externalMetadataParentPaths));\n    }\n  }\n\n  // Add pino transports and user dynamic packages\n  for (const transport of detectedPinoTransports) {\n    if (!mergedExternalDeps.has(transport)) {\n      mergedExternalDeps.set(transport, await resolveDependencyInfo(transport, undefined, externalMetadataParentPaths));\n    }\n  }\n  for (const pkg of userDynamicPackages) {\n    if (!mergedExternalDeps.has(pkg)) {\n      mergedExternalDeps.set(pkg, await resolveDependencyInfo(pkg, undefined, externalMetadataParentPaths));\n    }\n  }\n\n  return {\n    ...result,\n    externalDependencies: mergedExternalDeps,\n    /**\n     * Workspace deps that were optimized (after isDev/externalsPreset pruning).\n     * Used by the watcher to re-run optimization when workspace sources change.\n     */\n    depsToOptimize,\n    workspaceRoot,\n    outputDir,\n    ...(mastraConfigResult.projectType ? { projectType: mastraConfigResult.projectType } : {}),\n  };\n}\n"],"x_google_ignoreList":[0],"mappings":"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"}