@mastra/deployer 0.21.0-alpha.0 → 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.
- package/CHANGELOG.md +15 -0
- package/dist/build/analyze/bundleExternals.d.ts.map +1 -1
- package/dist/build/analyze/constants.d.ts.map +1 -1
- package/dist/build/analyze.cjs +2 -2
- package/dist/build/analyze.d.ts +0 -1
- package/dist/build/analyze.d.ts.map +1 -1
- package/dist/build/analyze.js +1 -1
- package/dist/build/bundler.cjs +3 -3
- package/dist/build/bundler.d.ts.map +1 -1
- package/dist/build/bundler.js +1 -1
- package/dist/build/index.cjs +12 -12
- package/dist/build/index.js +4 -4
- package/dist/build/utils.d.ts +15 -0
- package/dist/build/utils.d.ts.map +1 -1
- package/dist/build/watcher.d.ts.map +1 -1
- package/dist/bundler/index.cjs +2 -2
- package/dist/bundler/index.d.ts +0 -1
- package/dist/bundler/index.d.ts.map +1 -1
- package/dist/bundler/index.js +1 -1
- package/dist/{chunk-2TROY6ZL.cjs → chunk-2CUDKTKP.cjs} +89 -92
- package/dist/chunk-2CUDKTKP.cjs.map +1 -0
- package/dist/{chunk-7VHHRH2P.cjs → chunk-5SPPZCO3.cjs} +9 -16
- package/dist/chunk-5SPPZCO3.cjs.map +1 -0
- package/dist/{chunk-ORJZPIKJ.js → chunk-64ACONK3.js} +3 -3
- package/dist/{chunk-ORJZPIKJ.js.map → chunk-64ACONK3.js.map} +1 -1
- package/dist/{chunk-X6AP4LE6.js → chunk-6A62K4JQ.js} +9 -38
- package/dist/chunk-6A62K4JQ.js.map +1 -0
- package/dist/{chunk-MKPUJONL.js → chunk-F7QNENXR.js} +4 -5
- package/dist/chunk-F7QNENXR.js.map +1 -0
- package/dist/{chunk-MTGZ2VHE.cjs → chunk-LZS5FBY3.cjs} +14 -15
- package/dist/chunk-LZS5FBY3.cjs.map +1 -0
- package/dist/{chunk-DCDNHNNC.cjs → chunk-QLJCHPRX.cjs} +19 -48
- package/dist/chunk-QLJCHPRX.cjs.map +1 -0
- package/dist/{chunk-S7HYYJRS.cjs → chunk-SFQW6M3F.cjs} +5 -5
- package/dist/{chunk-S7HYYJRS.cjs.map → chunk-SFQW6M3F.cjs.map} +1 -1
- package/dist/{chunk-3JKL47PF.js → chunk-TJ26OQXP.js} +90 -90
- package/dist/chunk-TJ26OQXP.js.map +1 -0
- package/dist/{chunk-5SQQZCSZ.js → chunk-YTJ4ERJ6.js} +3 -10
- package/dist/chunk-YTJ4ERJ6.js.map +1 -0
- package/dist/index.cjs +5 -5
- package/dist/index.js +2 -2
- package/package.json +4 -4
- package/dist/chunk-2TROY6ZL.cjs.map +0 -1
- package/dist/chunk-3JKL47PF.js.map +0 -1
- package/dist/chunk-5SQQZCSZ.js.map +0 -1
- package/dist/chunk-7VHHRH2P.cjs.map +0 -1
- package/dist/chunk-DCDNHNNC.cjs.map +0 -1
- package/dist/chunk-MKPUJONL.js.map +0 -1
- package/dist/chunk-MTGZ2VHE.cjs.map +0 -1
- package/dist/chunk-X6AP4LE6.js.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
3
|
+
var chunk5SPPZCO3_cjs = require('./chunk-5SPPZCO3.cjs');
|
|
4
|
+
var chunk2CUDKTKP_cjs = require('./chunk-2CUDKTKP.cjs');
|
|
5
5
|
var rollup = require('rollup');
|
|
6
6
|
var path = require('path');
|
|
7
7
|
var pkg = require('empathic/package');
|
|
@@ -80,7 +80,7 @@ function nodeModulesExtensionResolver() {
|
|
|
80
80
|
for (const ext of [".mjs", ".js", ".cjs"]) {
|
|
81
81
|
const resolved2 = safeResolve(id + ext, importer);
|
|
82
82
|
if (resolved2) {
|
|
83
|
-
const pkgName =
|
|
83
|
+
const pkgName = chunk2CUDKTKP_cjs.getPackageName(id);
|
|
84
84
|
if (!pkgName) {
|
|
85
85
|
return null;
|
|
86
86
|
}
|
|
@@ -102,9 +102,9 @@ function nodeModulesExtensionResolver() {
|
|
|
102
102
|
}
|
|
103
103
|
async function getInputOptions2(entryFile, platform, env, { sourcemap = false } = {}) {
|
|
104
104
|
const closestPkgJson = pkg__namespace.up({ cwd: path.dirname(entryFile) });
|
|
105
|
-
const projectRoot = closestPkgJson ? path.dirname(
|
|
106
|
-
const { workspaceMap, workspaceRoot } = await
|
|
107
|
-
const analyzeEntryResult = await
|
|
105
|
+
const projectRoot = closestPkgJson ? path.dirname(chunk2CUDKTKP_cjs.slash(closestPkgJson)) : chunk2CUDKTKP_cjs.slash(process.cwd());
|
|
106
|
+
const { workspaceMap, workspaceRoot } = await chunk2CUDKTKP_cjs.getWorkspaceInformation({ mastraEntryFile: entryFile });
|
|
107
|
+
const analyzeEntryResult = await chunk2CUDKTKP_cjs.analyzeBundle(
|
|
108
108
|
[entryFile],
|
|
109
109
|
entryFile,
|
|
110
110
|
{
|
|
@@ -117,17 +117,16 @@ async function getInputOptions2(entryFile, platform, env, { sourcemap = false }
|
|
|
117
117
|
);
|
|
118
118
|
const deps = /* @__PURE__ */ new Map();
|
|
119
119
|
for (const [dep, metadata] of analyzeEntryResult.dependencies.entries()) {
|
|
120
|
-
const pkgName =
|
|
120
|
+
const pkgName = chunk2CUDKTKP_cjs.getPackageName(dep);
|
|
121
121
|
if (pkgName && workspaceMap.has(pkgName)) {
|
|
122
122
|
deps.set(dep, metadata);
|
|
123
123
|
}
|
|
124
124
|
}
|
|
125
|
-
const inputOptions = await
|
|
125
|
+
const inputOptions = await chunk5SPPZCO3_cjs.getInputOptions(
|
|
126
126
|
entryFile,
|
|
127
127
|
{
|
|
128
128
|
dependencies: deps,
|
|
129
129
|
externalDependencies: /* @__PURE__ */ new Set(),
|
|
130
|
-
invalidChunks: /* @__PURE__ */ new Set(),
|
|
131
130
|
workspaceMap
|
|
132
131
|
},
|
|
133
132
|
platform,
|
|
@@ -142,7 +141,7 @@ async function getInputOptions2(entryFile, platform, env, { sourcemap = false }
|
|
|
142
141
|
}
|
|
143
142
|
if (plugin?.name === "tsconfig-paths") {
|
|
144
143
|
plugins.push(
|
|
145
|
-
|
|
144
|
+
chunk2CUDKTKP_cjs.tsConfigPaths({
|
|
146
145
|
localResolve: true
|
|
147
146
|
})
|
|
148
147
|
);
|
|
@@ -151,7 +150,7 @@ async function getInputOptions2(entryFile, platform, env, { sourcemap = false }
|
|
|
151
150
|
plugins.push(plugin);
|
|
152
151
|
});
|
|
153
152
|
inputOptions.plugins = plugins;
|
|
154
|
-
inputOptions.plugins.push(
|
|
153
|
+
inputOptions.plugins.push(chunk2CUDKTKP_cjs.aliasHono());
|
|
155
154
|
inputOptions.plugins.push(nodeModulesExtensionResolver());
|
|
156
155
|
}
|
|
157
156
|
return inputOptions;
|
|
@@ -171,12 +170,12 @@ async function createWatcher(inputOptions, outputOptions) {
|
|
|
171
170
|
|
|
172
171
|
// src/build/babel/remove-all-options-server.ts
|
|
173
172
|
function removeAllOptionsExceptServer(result, logger) {
|
|
174
|
-
return
|
|
173
|
+
return chunk2CUDKTKP_cjs.removeAllOptionsFromMastraExcept(result, "server", logger);
|
|
175
174
|
}
|
|
176
175
|
|
|
177
176
|
// src/build/serverOptions.ts
|
|
178
177
|
async function getServerOptions(entryFile, outputDir, logger) {
|
|
179
|
-
const result = await
|
|
178
|
+
const result = await chunk2CUDKTKP_cjs.extractMastraOption(
|
|
180
179
|
"server",
|
|
181
180
|
entryFile,
|
|
182
181
|
removeAllOptionsExceptServer,
|
|
@@ -192,5 +191,5 @@ async function getServerOptions(entryFile, outputDir, logger) {
|
|
|
192
191
|
exports.createWatcher = createWatcher;
|
|
193
192
|
exports.getInputOptions = getInputOptions2;
|
|
194
193
|
exports.getServerOptions = getServerOptions;
|
|
195
|
-
//# sourceMappingURL=chunk-
|
|
196
|
-
//# sourceMappingURL=chunk-
|
|
194
|
+
//# sourceMappingURL=chunk-LZS5FBY3.cjs.map
|
|
195
|
+
//# sourceMappingURL=chunk-LZS5FBY3.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/build/plugins/node-modules-extension-resolver.ts","../src/build/watcher.ts","../src/build/babel/remove-all-options-server.ts","../src/build/serverOptions.ts"],"names":["builtinModules","resolveFrom","extname","pathToFileURL","resolved","getPackageName","dirname","getInputOptions","pkg","slash","getWorkspaceInformation","analyzeBundle","posix","noopLogger","tsConfigPaths","aliasHono","watch","removeAllOptionsFromMastraExcept","extractMastraOption"],"mappings":"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","file":"chunk-LZS5FBY3.cjs","sourcesContent":["import { dirname, extname } from 'path';\nimport { pathToFileURL } from 'node:url';\nimport resolveFrom from 'resolve-from';\nimport type { Plugin } from 'rollup';\nimport { builtinModules } from 'node:module';\nimport { getPackageName } from '../utils';\n\n/**\n * Check if a module is a Node.js builtin module\n * @param specifier - Module specifier\n * @returns True if it's a builtin module\n */\nfunction isBuiltinModule(specifier: string): boolean {\n return (\n builtinModules.includes(specifier) ||\n specifier.startsWith('node:') ||\n builtinModules.includes(specifier.replace(/^node:/, ''))\n );\n}\n\nfunction safeResolve(id: string, importer: string) {\n try {\n return resolveFrom(importer, id);\n } catch {\n return null;\n }\n}\n\n// we only need this for dev, so we can resolve the js extension of the module as we do not use node-resolve\nexport function nodeModulesExtensionResolver(): Plugin {\n return {\n name: 'node-modules-extension-resolver',\n resolveId(id, importer) {\n // if is relative, skip\n if (id.startsWith('.') || id.startsWith('/') || !importer) {\n return null;\n }\n\n if (isBuiltinModule(id)) {\n return null;\n }\n\n // if it's a scoped direct import skip\n if (id.startsWith('@') && id.split('/').length === 2) {\n return null;\n }\n\n // if it's a direct import, skip\n if (!id.startsWith('@') && id.split('/').length === 1) {\n return null;\n }\n\n const foundExt = extname(id);\n if (foundExt) {\n return null;\n }\n\n try {\n // if we cannot resolve it, it means it's a legacy module\n const resolved = import.meta.resolve(id);\n\n if (!extname(resolved)) {\n throw new Error(`Cannot resolve ${id} from ${importer}`);\n }\n\n return null;\n } catch (e) {\n // try to do a node like resolve first\n const resolved = safeResolve(id, importer);\n if (resolved) {\n return {\n id: pathToFileURL(resolved).href,\n external: true,\n };\n }\n\n for (const ext of ['.mjs', '.js', '.cjs']) {\n const resolved = safeResolve(id + ext, importer);\n if (resolved) {\n const pkgName = getPackageName(id);\n if (!pkgName) {\n return null;\n }\n\n const pkgJsonPath = safeResolve(`${pkgName}/package.json`, importer);\n if (!pkgJsonPath) {\n return null;\n }\n\n const newImportWithExtension = resolved.replace(dirname(pkgJsonPath), pkgName);\n\n return {\n id: pathToFileURL(newImportWithExtension).href,\n external: true,\n };\n }\n }\n }\n\n return null;\n },\n } satisfies Plugin;\n}\n","import type { InputOptions, OutputOptions, Plugin } from 'rollup';\nimport { watch } from 'rollup';\nimport { dirname, posix } from 'node:path';\nimport * as pkg from 'empathic/package';\nimport { getInputOptions as getBundlerInputOptions } from './bundler';\nimport { aliasHono } from './plugins/hono-alias';\nimport { nodeModulesExtensionResolver } from './plugins/node-modules-extension-resolver';\nimport { tsConfigPaths } from './plugins/tsconfig-paths';\nimport { noopLogger } from '@mastra/core/logger';\nimport { getWorkspaceInformation } from '../bundler/workspaceDependencies';\nimport { analyzeBundle } from './analyze';\nimport { getPackageName, slash } from './utils';\n\nexport async function getInputOptions(\n entryFile: string,\n platform: 'node' | 'browser',\n env?: Record<string, string>,\n { sourcemap = false }: { sourcemap?: boolean } = {},\n) {\n const closestPkgJson = pkg.up({ cwd: dirname(entryFile) });\n const projectRoot = closestPkgJson ? dirname(slash(closestPkgJson)) : slash(process.cwd());\n const { workspaceMap, workspaceRoot } = await getWorkspaceInformation({ mastraEntryFile: entryFile });\n\n const analyzeEntryResult = await analyzeBundle(\n [entryFile],\n entryFile,\n {\n outputDir: posix.join(process.cwd(), '.mastra', '.build'),\n projectRoot: workspaceRoot || process.cwd(),\n platform: 'node',\n isDev: true,\n },\n noopLogger,\n );\n\n const deps = /* @__PURE__ */ new Map();\n for (const [dep, metadata] of analyzeEntryResult.dependencies.entries()) {\n const pkgName = getPackageName(dep);\n if (pkgName && workspaceMap.has(pkgName)) {\n deps.set(dep, metadata);\n }\n }\n\n // In `analyzeBundle` we output this file and we want to use that instead of the original entry file\n //const analyzedEntryFile = posix.join(process.cwd(), '.mastra', '.build', 'entry-0.mjs');\n\n const inputOptions = await getBundlerInputOptions(\n entryFile,\n {\n dependencies: deps,\n externalDependencies: new Set(),\n workspaceMap,\n },\n platform,\n env,\n { sourcemap, isDev: true, workspaceRoot, projectRoot },\n );\n\n if (Array.isArray(inputOptions.plugins)) {\n // filter out node-resolve plugin so all node_modules are external\n // and tsconfig-paths plugin as we are injection a custom one\n const plugins = [] as Plugin[];\n inputOptions.plugins.forEach(plugin => {\n if ((plugin as Plugin | undefined)?.name === 'node-resolve') {\n return;\n }\n\n if ((plugin as Plugin | undefined)?.name === 'tsconfig-paths') {\n plugins.push(\n tsConfigPaths({\n localResolve: true,\n }),\n );\n return;\n }\n\n plugins.push(plugin as Plugin);\n });\n\n inputOptions.plugins = plugins;\n inputOptions.plugins.push(aliasHono());\n // fixes imports like lodash/fp/get\n inputOptions.plugins.push(nodeModulesExtensionResolver());\n }\n\n return inputOptions;\n}\n\nexport async function createWatcher(inputOptions: InputOptions, outputOptions: OutputOptions) {\n const watcher = await watch({\n ...inputOptions,\n output: {\n ...outputOptions,\n format: 'esm',\n entryFileNames: '[name].mjs',\n chunkFileNames: '[name].mjs',\n },\n });\n\n return watcher;\n}\n","import { removeAllOptionsFromMastraExcept } from './remove-all-options-except';\nimport type { IMastraLogger } from '@mastra/core/logger';\n\nexport function removeAllOptionsExceptServer(result: { hasCustomConfig: boolean }, logger?: IMastraLogger) {\n return removeAllOptionsFromMastraExcept(result, 'server', logger);\n}\n","import { removeAllOptionsExceptServer } from './babel/remove-all-options-server';\nimport type { Config } from '@mastra/core/mastra';\nimport { extractMastraOption, extractMastraOptionBundler } from './shared/extract-mastra-option';\nimport type { IMastraLogger } from '@mastra/core/logger';\n\nexport function getServerOptionsBundler(\n entryFile: string,\n result: {\n hasCustomConfig: false;\n },\n) {\n return extractMastraOptionBundler('server', entryFile, removeAllOptionsExceptServer, result);\n}\n\nexport async function getServerOptions(\n entryFile: string,\n outputDir: string,\n logger?: IMastraLogger,\n): Promise<Config['server'] | null> {\n const result = await extractMastraOption<Config['server']>(\n 'server',\n entryFile,\n removeAllOptionsExceptServer,\n outputDir,\n logger,\n );\n if (!result) {\n return null;\n }\n\n return result.getConfig();\n}\n"]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
var
|
|
3
|
+
var chunkSFQW6M3F_cjs = require('./chunk-SFQW6M3F.cjs');
|
|
4
|
+
var chunk5SPPZCO3_cjs = require('./chunk-5SPPZCO3.cjs');
|
|
5
|
+
var chunk2CUDKTKP_cjs = require('./chunk-2CUDKTKP.cjs');
|
|
6
6
|
var chunk3JYRSECU_cjs = require('./chunk-3JYRSECU.cjs');
|
|
7
7
|
var fs = require('fs');
|
|
8
8
|
var promises = require('fs/promises');
|
|
@@ -52,7 +52,7 @@ function getCustomInstrumentationBundler(entryFile, result) {
|
|
|
52
52
|
treeshake: false,
|
|
53
53
|
plugins: [
|
|
54
54
|
// transpile typescript to something we understand
|
|
55
|
-
|
|
55
|
+
chunk2CUDKTKP_cjs.esbuild(),
|
|
56
56
|
commonjs__default.default({
|
|
57
57
|
extensions: [".js", ".ts"],
|
|
58
58
|
strictRequires: "strict",
|
|
@@ -91,7 +91,7 @@ var Bundler = class extends bundler.MastraBundler {
|
|
|
91
91
|
}
|
|
92
92
|
async writeInstrumentationFile(outputDirectory, customInstrumentationFile) {
|
|
93
93
|
const instrumentationFile = path.join(outputDirectory, "instrumentation.mjs");
|
|
94
|
-
const __dirname = path.dirname(url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('chunk-
|
|
94
|
+
const __dirname = path.dirname(url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('chunk-QLJCHPRX.cjs', document.baseURI).href))));
|
|
95
95
|
if (customInstrumentationFile) {
|
|
96
96
|
await fsExtra.copy(customInstrumentationFile, instrumentationFile);
|
|
97
97
|
} else {
|
|
@@ -148,10 +148,10 @@ var Bundler = class extends bundler.MastraBundler {
|
|
|
148
148
|
);
|
|
149
149
|
}
|
|
150
150
|
createBundler(inputOptions, outputOptions) {
|
|
151
|
-
return
|
|
151
|
+
return chunk5SPPZCO3_cjs.createBundler(inputOptions, outputOptions);
|
|
152
152
|
}
|
|
153
153
|
async analyze(entry, mastraFile, outputDirectory, { enableEsmShim = true } = {}) {
|
|
154
|
-
return await
|
|
154
|
+
return await chunk2CUDKTKP_cjs.analyzeBundle(
|
|
155
155
|
[].concat(entry),
|
|
156
156
|
mastraFile,
|
|
157
157
|
{
|
|
@@ -193,10 +193,10 @@ var Bundler = class extends bundler.MastraBundler {
|
|
|
193
193
|
}
|
|
194
194
|
}
|
|
195
195
|
async getBundlerOptions(serverFile, mastraEntryFile, analyzedBundleInfo, toolsPaths, { enableSourcemap = false, enableEsmShim = true } = {}) {
|
|
196
|
-
const { workspaceRoot } = await
|
|
196
|
+
const { workspaceRoot } = await chunk2CUDKTKP_cjs.getWorkspaceInformation({ mastraEntryFile });
|
|
197
197
|
const closestPkgJson = pkg__namespace.up({ cwd: path.dirname(mastraEntryFile) });
|
|
198
198
|
const projectRoot = closestPkgJson ? path.dirname(closestPkgJson) : process.cwd();
|
|
199
|
-
const inputOptions = await
|
|
199
|
+
const inputOptions = await chunk5SPPZCO3_cjs.getInputOptions(
|
|
200
200
|
mastraEntryFile,
|
|
201
201
|
analyzedBundleInfo,
|
|
202
202
|
"node",
|
|
@@ -257,7 +257,7 @@ var Bundler = class extends bundler.MastraBundler {
|
|
|
257
257
|
const analyzeDir = path.join(outputDirectory, this.analyzeOutputDir);
|
|
258
258
|
let sourcemap = false;
|
|
259
259
|
try {
|
|
260
|
-
const bundlerOptions = await
|
|
260
|
+
const bundlerOptions = await chunk2CUDKTKP_cjs.getBundlerOptions(mastraEntryFile, analyzeDir);
|
|
261
261
|
sourcemap = !!bundlerOptions?.sourcemap;
|
|
262
262
|
} catch (error) {
|
|
263
263
|
this.logger.debug("Failed to get bundler options, sourcemap will be disabled", { error });
|
|
@@ -265,7 +265,7 @@ var Bundler = class extends bundler.MastraBundler {
|
|
|
265
265
|
let analyzedBundleInfo;
|
|
266
266
|
try {
|
|
267
267
|
const resolvedToolsPaths = await this.getToolsInputOptions(toolsPaths);
|
|
268
|
-
analyzedBundleInfo = await
|
|
268
|
+
analyzedBundleInfo = await chunk2CUDKTKP_cjs.analyzeBundle(
|
|
269
269
|
[serverFile, ...Object.values(resolvedToolsPaths)],
|
|
270
270
|
mastraEntryFile,
|
|
271
271
|
{
|
|
@@ -280,6 +280,9 @@ var Bundler = class extends bundler.MastraBundler {
|
|
|
280
280
|
);
|
|
281
281
|
} catch (error$1) {
|
|
282
282
|
const message = error$1 instanceof Error ? error$1.message : String(error$1);
|
|
283
|
+
if (error$1 instanceof error.MastraError) {
|
|
284
|
+
throw error$1;
|
|
285
|
+
}
|
|
283
286
|
throw new error.MastraError(
|
|
284
287
|
{
|
|
285
288
|
id: "DEPLOYER_BUNDLER_ANALYZE_FAILED",
|
|
@@ -292,7 +295,7 @@ var Bundler = class extends bundler.MastraBundler {
|
|
|
292
295
|
}
|
|
293
296
|
let externalDependencies;
|
|
294
297
|
try {
|
|
295
|
-
const result = await
|
|
298
|
+
const result = await chunkSFQW6M3F_cjs.writeTelemetryConfig(mastraEntryFile, path.join(outputDirectory, this.outputDir));
|
|
296
299
|
externalDependencies = result?.externalDependencies ?? [];
|
|
297
300
|
} catch (error$1) {
|
|
298
301
|
const message = error$1 instanceof Error ? error$1.message : String(error$1);
|
|
@@ -339,52 +342,20 @@ var Bundler = class extends bundler.MastraBundler {
|
|
|
339
342
|
for (const external of externalDependencies) {
|
|
340
343
|
dependenciesToInstall.set(external, "latest");
|
|
341
344
|
}
|
|
342
|
-
const workspaceDependencies = /* @__PURE__ */ new Set();
|
|
343
345
|
for (const dep of analyzedBundleInfo.externalDependencies) {
|
|
344
346
|
try {
|
|
345
347
|
if (analyzedBundleInfo.workspaceMap.has(dep)) {
|
|
346
|
-
workspaceDependencies.add(dep);
|
|
347
348
|
continue;
|
|
348
349
|
}
|
|
349
|
-
const rootPath = await
|
|
350
|
+
const rootPath = await chunk2CUDKTKP_cjs.getPackageRootPath(dep);
|
|
350
351
|
const pkg2 = await fsExtra.readJSON(`${rootPath}/package.json`);
|
|
351
352
|
dependenciesToInstall.set(dep, pkg2.version || "latest");
|
|
352
353
|
} catch {
|
|
353
354
|
dependenciesToInstall.set(dep, "latest");
|
|
354
355
|
}
|
|
355
356
|
}
|
|
356
|
-
let resolutions = {};
|
|
357
|
-
if (workspaceDependencies.size > 0) {
|
|
358
|
-
try {
|
|
359
|
-
const result = chunk2TROY6ZL_cjs.collectTransitiveWorkspaceDependencies({
|
|
360
|
-
workspaceMap: analyzedBundleInfo.workspaceMap,
|
|
361
|
-
initialDependencies: workspaceDependencies,
|
|
362
|
-
logger: this.logger
|
|
363
|
-
});
|
|
364
|
-
resolutions = result.resolutions;
|
|
365
|
-
Object.entries(resolutions).forEach(([pkgName, tgzPath]) => {
|
|
366
|
-
dependenciesToInstall.set(pkgName, tgzPath);
|
|
367
|
-
});
|
|
368
|
-
await chunk2TROY6ZL_cjs.packWorkspaceDependencies({
|
|
369
|
-
workspaceMap: analyzedBundleInfo.workspaceMap,
|
|
370
|
-
usedWorkspacePackages: result.usedWorkspacePackages,
|
|
371
|
-
bundleOutputDir: path.join(outputDirectory, this.outputDir),
|
|
372
|
-
logger: this.logger
|
|
373
|
-
});
|
|
374
|
-
} catch (error$1) {
|
|
375
|
-
throw new error.MastraError(
|
|
376
|
-
{
|
|
377
|
-
id: "DEPLOYER_BUNDLER_WORKSPACE_DEPS_FAILED",
|
|
378
|
-
text: `Failed to collect and pack workspace dependencies.`,
|
|
379
|
-
domain: error.ErrorDomain.DEPLOYER,
|
|
380
|
-
category: error.ErrorCategory.USER
|
|
381
|
-
},
|
|
382
|
-
error$1
|
|
383
|
-
);
|
|
384
|
-
}
|
|
385
|
-
}
|
|
386
357
|
try {
|
|
387
|
-
await this.writePackageJson(path.join(outputDirectory, this.outputDir), dependenciesToInstall
|
|
358
|
+
await this.writePackageJson(path.join(outputDirectory, this.outputDir), dependenciesToInstall);
|
|
388
359
|
this.logger.info("Bundling Mastra application");
|
|
389
360
|
const inputOptions = await this.getBundlerOptions(
|
|
390
361
|
serverFile,
|
|
@@ -462,5 +433,5 @@ export const tools = [${toolsExports.join(", ")}]`
|
|
|
462
433
|
};
|
|
463
434
|
|
|
464
435
|
exports.Bundler = Bundler;
|
|
465
|
-
//# sourceMappingURL=chunk-
|
|
466
|
-
//# sourceMappingURL=chunk-
|
|
436
|
+
//# sourceMappingURL=chunk-QLJCHPRX.cjs.map
|
|
437
|
+
//# sourceMappingURL=chunk-QLJCHPRX.cjs.map
|
|
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIO,SAAS,+BAAA,CACd,WACA,MAAA,EAGA;AACA,EAAA,OAAOA,aAAA,CAAO;AAAA,IACZ,QAAA,EAAU,QAAA;AAAA,IACV,KAAA,EAAO;AAAA,MACL,eAAA,EAAiB;AAAA,KACnB;AAAA,IACA,SAAA,EAAW,KAAA;AAAA,IACX,OAAA,EAAS;AAAA;AAAA,MAEPC,yBAAA,EAAQ;AAAA,MACRC,yBAAA,CAAS;AAAA,QACP,UAAA,EAAY,CAAC,KAAA,EAAO,KAAK,CAAA;AAAA,QACzB,cAAA,EAAgB,QAAA;AAAA,QAChB,uBAAA,EAAyB,IAAA;AAAA,QACzB,cAAA,EAAgB;AAAA,OACjB;AAAA;AACH,GACD,CAAA;AACH;AAEA,eAAsB,0BAAA,CACpB,SAAA,EACA,SAAA,EACA,OAAA,GAEI,EAAC,EAIJ;AACD,EAAA,MAAM,MAAA,GAAS;AAAA,IACb,eAAA,EAAiB;AAAA,GACnB;AAEA,EAAA,MAAM,MAAA,GAAS,MAAM,+BAAA,CAAgC,SAAiB,CAAA;AAEtE,EAAA,MAAM,EAAE,MAAA,EAAO,GAAI,MAAM,OAAO,KAAA,CAAM;AAAA,IACpC,GAAA,EAAK,SAAA;AAAA,IACL,MAAA,EAAQ,IAAA;AAAA,IACR,cAAA,EAAgB,YAAA;AAAA,IAChB,WAAW,OAAA,CAAQ;AAAA,GACpB,CAAA;AACD,EAAA,MAAM,SAAA,GAAY,MAAA,CAAO,CAAC,CAAA,CAAE,OAAA,CAAQ,MAAA,CAAO,CAAA,CAAA,KAAK,CAAC,CAAA,CAAE,UAAA,CAAW,IAAI,CAAC,CAAA;AAEnE,EAAA,OAAO,EAAE,GAAG,MAAA,EAAQ,oBAAA,EAAsB,SAAA,EAAU;AACtD;;;ACjCO,IAAe,OAAA,GAAf,cAA+BC,qBAAA,CAAc;AAAA,EACxC,gBAAA,GAAmB,QAAA;AAAA,EACnB,SAAA,GAAY,QAAA;AAAA,EAEtB,WAAA,CAAY,IAAA,EAAc,SAAA,GAAoC,SAAA,EAAW;AACvE,IAAA,KAAA,CAAM,EAAE,IAAA,EAAM,SAAA,EAAW,CAAA;AAAA,EAC3B;AAAA,EAEA,MAAM,QAAQ,eAAA,EAAwC;AAEpD,IAAA,MAAMC,iBAAS,eAAe,CAAA;AAE9B,IAAA,MAAMC,iBAAA,CAAUC,SAAA,CAAK,eAAA,EAAiB,IAAA,CAAK,gBAAgB,CAAC,CAAA;AAC5D,IAAA,MAAMD,iBAAA,CAAUC,SAAA,CAAK,eAAA,EAAiB,IAAA,CAAK,SAAS,CAAC,CAAA;AAAA,EACvD;AAAA,EAEA,MAAM,wBAAA,CAAyB,eAAA,EAAyB,yBAAA,EAAoC;AAC1F,IAAA,MAAM,mBAAA,GAAsBA,SAAA,CAAK,eAAA,EAAiB,qBAAqB,CAAA;AACvE,IAAA,MAAM,SAAA,GAAYC,YAAA,CAAQC,iBAAA,CAAc,oQAAe,CAAC,CAAA;AAExD,IAAA,IAAI,yBAAA,EAA2B;AAC7B,MAAA,MAAMC,YAAA,CAAK,2BAA2B,mBAAmB,CAAA;AAAA,IAC3D,CAAA,MAAO;AACL,MAAA,MAAMA,aAAKH,SAAA,CAAK,SAAA,EAAW,WAAA,EAAa,6BAA6B,GAAG,mBAAmB,CAAA;AAAA,IAC7F;AAAA,EACF;AAAA,EAEA,MAAM,gBAAA,CACJ,eAAA,EACA,YAAA,EACA,WAAA,EACA;AACA,IAAA,IAAA,CAAK,MAAA,CAAO,MAAM,CAAA,8BAAA,CAAgC,CAAA;AAElD,IAAA,MAAMD,kBAAU,eAAe,CAAA;AAC/B,IAAA,MAAM,OAAA,GAAUC,SAAA,CAAK,eAAA,EAAiB,cAAc,CAAA;AAEpD,IAAA,MAAM,eAAA,uBAAsB,GAAA,EAAI;AAChC,IAAA,KAAA,MAAW,CAAC,GAAA,EAAK,KAAK,CAAA,IAAK,YAAA,CAAa,SAAQ,EAAG;AACjD,MAAA,IAAI,GAAA,CAAI,UAAA,CAAW,GAAG,CAAA,EAAG;AAEvB,QAAA,MAAM,SAAA,GAAY,GAAA,CAAI,KAAA,CAAM,GAAG,CAAA;AAC/B,QAAA,eAAA,CAAgB,GAAA,CAAI,CAAA,EAAG,SAAA,CAAU,CAAC,CAAC,IAAI,SAAA,CAAU,CAAC,CAAC,CAAA,CAAA,EAAI,KAAK,CAAA;AAAA,MAC9D,CAAA,MAAO;AAEL,QAAA,MAAM,UAAU,GAAA,CAAI,KAAA,CAAM,GAAG,CAAA,CAAE,CAAC,CAAA,IAAK,GAAA;AACrC,QAAA,eAAA,CAAgB,GAAA,CAAI,SAAS,KAAK,CAAA;AAAA,MACpC;AAAA,IACF;AAGA,IAAA,eAAA,CAAgB,GAAA,CAAI,uBAAuB,QAAQ,CAAA;AACnD,IAAA,eAAA,CAAgB,GAAA,CAAI,sBAAsB,QAAQ,CAAA;AAClD,IAAA,eAAA,CAAgB,GAAA,CAAI,6CAA6C,SAAS,CAAA;AAC1E,IAAA,eAAA,CAAgB,GAAA,CAAI,2CAA2C,UAAU,CAAA;AACzE,IAAA,eAAA,CAAgB,GAAA,CAAI,2CAA2C,UAAU,CAAA;AACzE,IAAA,eAAA,CAAgB,GAAA,CAAI,4BAA4B,QAAQ,CAAA;AACxD,IAAA,eAAA,CAAgB,GAAA,CAAI,2BAA2B,UAAU,CAAA;AACzD,IAAA,eAAA,CAAgB,GAAA,CAAI,iCAAiC,QAAQ,CAAA;AAC7D,IAAA,eAAA,CAAgB,GAAA,CAAI,uCAAuC,SAAS,CAAA;AACpE,IAAA,eAAA,CAAgB,GAAA,CAAI,kCAAkC,UAAU,CAAA;AAEhE,IAAA,MAAMI,kBAAA;AAAA,MACJ,OAAA;AAAA,MACA,IAAA,CAAK,SAAA;AAAA,QACH;AAAA,UACE,IAAA,EAAM,QAAA;AAAA,UACN,OAAA,EAAS,OAAA;AAAA,UACT,WAAA,EAAa,EAAA;AAAA,UACb,IAAA,EAAM,QAAA;AAAA,UACN,IAAA,EAAM,WAAA;AAAA,UACN,OAAA,EAAS;AAAA,YACP,KAAA,EAAO;AAAA,WACT;AAAA,UACA,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,KAAA;AAAA,UACT,YAAA,EAAc,MAAA,CAAO,WAAA,CAAY,eAAA,CAAgB,SAAS,CAAA;AAAA,UAC1D,GAAI,MAAA,CAAO,IAAA,CAAK,WAAA,IAAe,EAAE,CAAA,CAAE,MAAA,GAAS,CAAA,IAAK,EAAE,WAAA,EAAY;AAAA,UAC/D,IAAA,EAAM;AAAA,YACJ,wBAAwB;AAAC;AAC3B,SACF;AAAA,QACA,IAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,EACF;AAAA,EAEU,aAAA,CAAc,cAA4B,aAAA,EAAyD;AAC3G,IAAA,OAAOC,+BAAA,CAAkB,cAAc,aAAa,CAAA;AAAA,EACtD;AAAA,EAEA,MAAgB,OAAA,CACd,KAAA,EACA,UAAA,EACA,eAAA,EACA,EAAE,aAAA,GAAgB,IAAA,EAAK,GAAiC,EAAC,EACzD;AACA,IAAA,OAAO,MAAMC,+BAAA;AAAA,MACV,EAAC,CAAe,MAAA,CAAO,KAAK,CAAA;AAAA,MAC7B,UAAA;AAAA,MACA;AAAA,QACE,SAAA,EAAWN,SAAA,CAAK,eAAA,EAAiB,IAAA,CAAK,gBAAgB,CAAA;AAAA,QACtD,WAAA,EAAa,eAAA;AAAA,QACb,QAAA,EAAU,MAAA;AAAA,QACV,cAAA,EAAgB;AAAA,UACd;AAAA;AACF,OACF;AAAA,MACA,IAAA,CAAK;AAAA,KACP;AAAA,EACF;AAAA,EAEA,MAAgB,mBAAA,CAAoB,eAAA,EAAyB,OAAA,GAAU,OAAA,CAAQ,KAAI,EAAG;AACpF,IAAA,MAAM,IAAA,GAAO,IAAIO,6BAAA,CAAY,OAAO,CAAA;AACpC,IAAA,IAAA,CAAK,WAAA,CAAY,KAAK,MAAM,CAAA;AAE5B,IAAA,MAAM,IAAA,CAAK,QAAQ,EAAE,GAAA,EAAKP,UAAK,eAAA,EAAiB,IAAA,CAAK,SAAS,CAAA,EAAG,CAAA;AAAA,EACnE;AAAA,EAEA,MAAgB,UAAA,CAAW,SAAA,EAAmB,eAAA,EAAyB;AACrE,IAAA,MAAM,SAAA,GAAYA,SAAA,CAAK,SAAA,EAAW,QAAQ,CAAA;AAE1C,IAAA,IAAI;AACF,MAAA,MAAMQ,cAAK,SAAS,CAAA;AAAA,IACtB,CAAA,CAAA,MAAQ;AACN,MAAA;AAAA,IACF;AAEA,IAAA,MAAML,aAAK,SAAA,EAAWH,SAAA,CAAK,eAAA,EAAiB,IAAA,CAAK,SAAS,CAAC,CAAA;AAAA,EAC7D;AAAA,EAEA,MAAgB,YAAA,CAAa;AAAA,IAC3B,OAAA,GAAU,QAAQ,GAAA,EAAI;AAAA,IACtB;AAAA,GACF,EAGG;AACD,IAAA,MAAM,kBAAA,GAAqBA,SAAA,CAAK,OAAA,EAAS,QAAQ,CAAA;AACjD,IAAA,MAAM,kBAAA,GAAqBA,SAAA,CAAK,eAAA,EAAiB,IAAA,CAAK,WAAW,QAAQ,CAAA;AAEzE,IAAA,IAAI;AACF,MAAA,MAAMQ,cAAK,kBAAkB,CAAA;AAC7B,MAAA,MAAML,YAAA,CAAK,oBAAoB,kBAAkB,CAAA;AAAA,IACnD,CAAA,CAAA,MAAQ;AACN,MAAA;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAgB,iBAAA,CACd,UAAA,EACA,eAAA,EACA,kBAAA,EACA,UAAA,EACA,EAAE,eAAA,GAAkB,KAAA,EAAO,aAAA,GAAgB,IAAA,EAAK,GAA4D,EAAC,EAC7G;AACA,IAAA,MAAM,EAAE,aAAA,EAAc,GAAI,MAAMM,yCAAA,CAAwB,EAAE,iBAAiB,CAAA;AAC3E,IAAA,MAAM,iBAAqBC,cAAA,CAAA,EAAA,CAAG,EAAE,KAAKT,YAAA,CAAQ,eAAe,GAAG,CAAA;AAC/D,IAAA,MAAM,cAAc,cAAA,GAAiBA,YAAA,CAAQ,cAAc,CAAA,GAAI,QAAQ,GAAA,EAAI;AAE3E,IAAA,MAAM,eAA6B,MAAMU,iCAAA;AAAA,MACvC,eAAA;AAAA,MACA,kBAAA;AAAA,MACA,MAAA;AAAA,MACA;AAAA,QACE,sBAAA,EAAwB,IAAA,CAAK,SAAA,CAAU,YAAY;AAAA,OACrD;AAAA,MACA,EAAE,SAAA,EAAW,eAAA,EAAiB,aAAA,EAAe,aAAa,aAAA;AAAc,KAC1E;AACA,IAAA,MAAM,YAAY,UAAA,CAAW,QAAA,CAAS,IAAI,CAAA,IAAKC,cAAW,UAAU,CAAA;AAEpE,IAAA,MAAM,iBAAA,GAAoB,MAAM,IAAA,CAAK,oBAAA,CAAqB,UAAU,CAAA;AAEpE,IAAA,IAAI,SAAA,EAAW;AACb,MAAA,YAAA,CAAa,KAAA,GAAQ,EAAE,KAAA,EAAO,QAAA,EAAU,GAAG,iBAAA,EAAkB;AAE7D,MAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,YAAA,CAAa,OAAO,CAAA,EAAG;AACvC,QAAA,YAAA,CAAa,QAAQ,OAAA,CAAQC,wBAAA,CAAQ,EAAE,QAAA,EAAU,UAAA,EAAY,CAAC,CAAA;AAAA,MAChE,CAAA,MAAO;AACL,QAAA,YAAA,CAAa,UAAU,CAACA,wBAAA,CAAQ,EAAE,QAAA,EAAU,UAAA,EAAY,CAAC,CAAA;AAAA,MAC3D;AAAA,IACF,CAAA,MAAO;AACL,MAAA,YAAA,CAAa,KAAA,GAAQ,EAAE,KAAA,EAAO,UAAA,EAAY,GAAG,iBAAA,EAAkB;AAAA,IACjE;AAEA,IAAA,OAAO,YAAA;AAAA,EACT;AAAA,EAEA,MAAM,qBAAqB,UAAA,EAAmC;AAC5D,IAAA,MAAM,SAAiC,EAAC;AAExC,IAAA,KAAA,MAAW,YAAY,UAAA,EAAY;AACjC,MAAA,MAAM,aAAA,GAAgB,MAAMC,eAAA,CAAK,QAAA,EAAU;AAAA,QACzC,QAAA,EAAU,IAAA;AAAA,QACV,iBAAA,EAAmB;AAAA,OACpB,CAAA;AAED,MAAA,KAAA,MAAWC,UAAQ,aAAA,EAAe;AAChC,QAAA,IAAI,MAAMC,wBAAA,CAAQ,UAAA,CAAWD,MAAI,CAAA,EAAG;AAClC,UAAA,MAAM,WAAA,GAAc,IAAIE,6BAAA,EAAY;AACpC,UAAA,MAAM,SAAA,GAAY,YAAY,oBAAA,CAAqB;AAAA,YACjDjB,SAAA,CAAKe,QAAM,UAAU,CAAA;AAAA,YACrBf,SAAA,CAAKe,QAAM,UAAU,CAAA;AAAA,YACrBA;AAAA;AAAA,WACD,CAAA;AAGD,UAAA,IAAI,CAAC,SAAA,IAAA,CAAc,MAAMP,cAAK,SAAS,CAAA,EAAG,aAAY,EAAG;AACvD,YAAA,IAAA,CAAK,MAAA,CAAO,IAAA,CAAK,CAAA,uBAAA,EAA0BO,MAAI,CAAA,aAAA,CAAe,CAAA;AAC9D,YAAA;AAAA,UACF;AAEA,UAAA,MAAM,YAAA,GAAe,OAAO,UAAA,EAAW;AAEvC,UAAA,MAAM,mBAAA,GAAsB,SAAA,CAAU,UAAA,CAAW,IAAA,EAAM,GAAG,CAAA;AAC1D,UAAA,MAAA,CAAO,CAAA,MAAA,EAAS,YAAY,CAAA,CAAE,CAAA,GAAI,mBAAA;AAAA,QACpC,CAAA,MAAO;AACL,UAAA,IAAA,CAAK,MAAA,CAAO,IAAA,CAAK,CAAA,UAAA,EAAaA,MAAI,CAAA,4BAAA,CAA8B,CAAA;AAAA,QAClE;AAAA,MACF;AAAA,IACF;AAEA,IAAA,OAAO,MAAA;AAAA,EACT;AAAA,EAEA,MAAgB,OAAA,CACd,UAAA,EACA,eAAA,EACA;AAAA,IACE,WAAA;AAAA,IACA,eAAA;AAAA,IACA,aAAA,GAAgB;AAAA,GAClB,EACA,aAAoC,EAAC,EACrC,iBAAyBf,SAAA,CAAK,eAAA,EAAiB,IAAA,CAAK,SAAS,CAAA,EAC9C;AACf,IAAA,MAAM,UAAA,GAAaA,SAAA,CAAK,eAAA,EAAiB,IAAA,CAAK,gBAAgB,CAAA;AAC9D,IAAA,IAAI,SAAA,GAAY,KAAA;AAEhB,IAAA,IAAI;AACF,MAAA,MAAM,cAAA,GAAiB,MAAMkB,mCAAA,CAAkB,eAAA,EAAiB,UAAU,CAAA;AAC1E,MAAA,SAAA,GAAY,CAAC,CAAC,cAAA,EAAgB,SAAA;AAAA,IAChC,SAAS,KAAA,EAAO;AACd,MAAA,IAAA,CAAK,MAAA,CAAO,KAAA,CAAM,2DAAA,EAA6D,EAAE,OAAO,CAAA;AAAA,IAC1F;AAEA,IAAA,IAAI,kBAAA;AACJ,IAAA,IAAI;AACF,MAAA,MAAM,kBAAA,GAAqB,MAAM,IAAA,CAAK,oBAAA,CAAqB,UAAU,CAAA;AACrE,MAAA,kBAAA,GAAqB,MAAMZ,+BAAA;AAAA,QACzB,CAAC,UAAA,EAAY,GAAG,MAAA,CAAO,MAAA,CAAO,kBAAkB,CAAC,CAAA;AAAA,QACjD,eAAA;AAAA,QACA;AAAA,UACE,SAAA,EAAW,UAAA;AAAA,UACX,WAAA;AAAA,UACA,QAAA,EAAU,MAAA;AAAA,UACV,cAAA,EAAgB;AAAA,YACd;AAAA;AACF,SACF;AAAA,QACA,IAAA,CAAK;AAAA,OACP;AAAA,IACF,SAASa,OAAA,EAAO;AACd,MAAA,MAAM,UAAUA,OAAA,YAAiB,KAAA,GAAQA,OAAA,CAAM,OAAA,GAAU,OAAOA,OAAK,CAAA;AAErE,MAAA,IAAIA,mBAAiBC,iBAAA,EAAa;AAChC,QAAA,MAAMD,OAAA;AAAA,MACR;AAEA,MAAA,MAAM,IAAIC,iBAAA;AAAA,QACR;AAAA,UACE,EAAA,EAAI,iCAAA;AAAA,UACJ,IAAA,EAAM,yCAAyC,OAAO,CAAA,CAAA;AAAA,UACtD,QAAQC,iBAAA,CAAY,QAAA;AAAA,UACpB,UAAUC,mBAAA,CAAc;AAAA,SAC1B;AAAA,QACAH;AAAA,OACF;AAAA,IACF;AAEA,IAAA,IAAI,oBAAA;AACJ,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,MAAMI,sCAAA,CAAqB,eAAA,EAAiBvB,UAAK,eAAA,EAAiB,IAAA,CAAK,SAAS,CAAC,CAAA;AAEhG,MAAA,oBAAA,GAAuB,MAAA,EAAQ,wBAAwB,EAAC;AAAA,IAC1D,SAASmB,OAAA,EAAO;AACd,MAAA,MAAM,UAAUA,OAAA,YAAiB,KAAA,GAAQA,OAAA,CAAM,OAAA,GAAU,OAAOA,OAAK,CAAA;AACrE,MAAA,MAAM,IAAIC,iBAAA;AAAA,QACR;AAAA,UACE,EAAA,EAAI,mCAAA;AAAA,UACJ,IAAA,EAAM,qCAAqC,OAAO,CAAA,CAAA;AAAA,UAClD,QAAQC,iBAAA,CAAY,QAAA;AAAA,UACpB,UAAUC,mBAAA,CAAc;AAAA,SAC1B;AAAA,QACAH;AAAA,OACF;AAAA,IACF;AAEA,IAAA,MAAM,YAAA,GAAelB,aAAQ,eAAe,CAAA;AAE5C,IAAA,MAAM,WAAA,GAAc,IAAIgB,6BAAA,EAAY;AACpC,IAAA,MAAM,qBAAA,GAAwB,YAAY,+BAAA,CAAgC;AAAA,MACxEjB,SAAA,CAAK,cAAc,oBAAoB,CAAA;AAAA,MACvCA,SAAA,CAAK,cAAc,oBAAoB,CAAA;AAAA,MACvCA,SAAA,CAAK,cAAc,qBAAqB;AAAA,KACzC,CAAA;AAED,IAAA,IAAI;AACF,MAAA,IAAI,qBAAA,EAAuB;AACzB,QAAA,MAAM,MAAA,GAAS,MAAM,0BAAA,CAA2B,qBAAA,EAAuBA,UAAK,eAAA,EAAiB,IAAA,CAAK,SAAS,CAAA,EAAG;AAAA,UAC5G;AAAA,SACD,CAAA;AACD,QAAA,oBAAA,GAAuB,CAAC,GAAG,oBAAA,EAAsB,GAAG,OAAO,oBAAoB,CAAA;AAC/E,QAAA,MAAM,KAAK,wBAAA,CAAyBA,SAAA,CAAK,iBAAiB,IAAA,CAAK,SAAS,GAAG,qBAAqB,CAAA;AAAA,MAClG,CAAA,MAAO;AACL,QAAA,MAAM,KAAK,wBAAA,CAAyBA,SAAA,CAAK,eAAA,EAAiB,IAAA,CAAK,SAAS,CAAC,CAAA;AAAA,MAC3E;AAAA,IACF,SAASmB,OAAA,EAAO;AACd,MAAA,MAAM,UAAUA,OAAA,YAAiB,KAAA,GAAQA,OAAA,CAAM,OAAA,GAAU,OAAOA,OAAK,CAAA;AACrE,MAAA,MAAM,IAAIC,iBAAA;AAAA,QACR;AAAA,UACE,EAAA,EAAI,8CAAA;AAAA,UACJ,IAAA,EAAM,yCAAyC,OAAO,CAAA,EAAA,EAAK,wBAAwB,CAAA,oCAAA,EAAuC,qBAAqB,KAAK,EAAE,CAAA,CAAA;AAAA,UACtJ,QAAQC,iBAAA,CAAY,QAAA;AAAA,UACpB,UAAUC,mBAAA,CAAc;AAAA,SAC1B;AAAA,QACAH;AAAA,OACF;AAAA,IACF;AAEA,IAAA,MAAM,qBAAA,uBAA4B,GAAA,EAAoB;AAGtD,IAAA,KAAA,MAAW,YAAY,oBAAA,EAAsB;AAC3C,MAAA,qBAAA,CAAsB,GAAA,CAAI,UAAU,QAAQ,CAAA;AAAA,IAC9C;AAEA,IAAA,KAAA,MAAW,GAAA,IAAO,mBAAmB,oBAAA,EAAsB;AACzD,MAAA,IAAI;AACF,QAAA,IAAI,kBAAA,CAAmB,YAAA,CAAa,GAAA,CAAI,GAAG,CAAA,EAAG;AAC5C,UAAA;AAAA,QACF;AAEA,QAAA,MAAM,QAAA,GAAW,MAAMK,oCAAA,CAAmB,GAAG,CAAA;AAC7C,QAAA,MAAMd,IAAAA,GAAM,MAAMe,gBAAA,CAAS,CAAA,EAAG,QAAQ,CAAA,aAAA,CAAe,CAAA;AAErD,QAAA,qBAAA,CAAsB,GAAA,CAAI,GAAA,EAAKf,IAAAA,CAAI,OAAA,IAAW,QAAQ,CAAA;AAAA,MACxD,CAAA,CAAA,MAAQ;AACN,QAAA,qBAAA,CAAsB,GAAA,CAAI,KAAK,QAAQ,CAAA;AAAA,MACzC;AAAA,IACF;AAEA,IAAA,IAAI;AACF,MAAA,MAAM,KAAK,gBAAA,CAAiBV,SAAA,CAAK,iBAAiB,IAAA,CAAK,SAAS,GAAG,qBAAqB,CAAA;AAExF,MAAA,IAAA,CAAK,MAAA,CAAO,KAAK,6BAA6B,CAAA;AAC9C,MAAA,MAAM,YAAA,GAA6B,MAAM,IAAA,CAAK,iBAAA;AAAA,QAC5C,UAAA;AAAA,QACA,eAAA;AAAA,QACA,kBAAA;AAAA,QACA,UAAA;AAAA,QACA,EAAE,eAAA,EAAiB,SAAA,EAAW,aAAA,EAAe,KAAA;AAAM,OACrD;AAEA,MAAA,MAAM,OAAA,GAAU,MAAM,IAAA,CAAK,aAAA;AAAA,QACzB;AAAA,UACE,GAAG,YAAA;AAAA,UACH,QAAA,EAAU,YAAA,CAAa,QAAA,KAAa,QAAA,GAAW,SAAS,YAAA,CAAa,QAAA;AAAA,UACrE,QAAQ,CAAA,OAAA,KAAW;AACjB,YAAA,IAAI,OAAA,CAAQ,SAAS,qBAAA,EAAuB;AAC1C,cAAA,IAAI,QAAQ,GAAA,GAAM,CAAC,CAAA,EAAG,QAAA,CAAS,cAAc,CAAA,EAAG;AAC9C,gBAAA;AAAA,cACF;AAEA,cAAA,IAAA,CAAK,OAAO,IAAA,CAAK,CAAA;AAAA,CAAA,EAC3B,QAAQ,OAAA,CAAQ,OAAA,CAAQ,uBAAA,EAAyB,EAAE,CAAC,CAAA,CAAE,CAAA;AAAA,YAC9C;AAAA,UACF;AAAA,SACF;AAAA,QACA;AAAA,UACE,GAAA,EAAK,cAAA;AAAA,UACL,YAAA,EAAc;AAAA,YACZ,MAAA,EAAQ,CAAC,SAAS;AAAA,WACpB;AAAA,UACA;AAAA;AACF,OACF;AAEA,MAAA,MAAM,QAAQ,KAAA,EAAM;AACpB,MAAA,MAAM,cAAwB,EAAC;AAC/B,MAAA,MAAM,eAAyB,EAAC;AAChC,MAAA,KAAA,CAAM,KAAK,MAAA,CAAO,IAAA,CAAK,aAAa,KAAA,IAAS,EAAE,CAAC,CAAA,CAC7C,OAAO,CAAA,GAAA,KAAO,GAAA,CAAI,WAAW,QAAQ,CAAC,EACtC,OAAA,CAAQ,CAAC,KAAK,KAAA,KAAU;AACvB,QAAA,MAAM,UAAA,GAAa,OAAO,KAAK,CAAA,CAAA;AAC/B,QAAA,WAAA,CAAY,IAAA,CAAK,CAAA,YAAA,EAAe,UAAU,CAAA,SAAA,EAAY,GAAG,CAAA,MAAA,CAAQ,CAAA;AACjE,QAAA,YAAA,CAAa,KAAK,UAAU,CAAA;AAAA,MAC9B,CAAC,CAAA;AAEH,MAAA,MAAMI,kBAAA;AAAA,QACJJ,SAAA,CAAK,gBAAgB,WAAW,CAAA;AAAA,QAChC,CAAA,EAAG,WAAA,CAAY,IAAA,CAAK,IAAI,CAAC;;AAAA,sBAAA,EAET,YAAA,CAAa,IAAA,CAAK,IAAI,CAAC,CAAA,CAAA;AAAA,OACzC;AACA,MAAA,IAAA,CAAK,MAAA,CAAO,KAAK,sBAAsB,CAAA;AAEvC,MAAA,IAAA,CAAK,MAAA,CAAO,KAAK,sBAAsB,CAAA;AACvC,MAAA,MAAM,IAAA,CAAK,UAAA,CAAWC,YAAA,CAAQ,eAAe,GAAG,eAAe,CAAA;AAC/D,MAAA,IAAA,CAAK,MAAA,CAAO,KAAK,2BAA2B,CAAA;AAE5C,MAAA,IAAA,CAAK,MAAA,CAAO,KAAK,qBAAqB,CAAA;AACtC,MAAA,MAAM,KAAK,YAAA,CAAa,EAAE,eAAA,EAAiB,OAAA,EAAS,aAAa,CAAA;AAEjE,MAAA,IAAA,CAAK,MAAA,CAAO,KAAK,0BAA0B,CAAA;AAE3C,MAAA,IAAA,CAAK,MAAA,CAAO,KAAK,yBAAyB,CAAA;AAC1C,MAAA,MAAM,IAAA,CAAK,mBAAA,CAAoB,eAAA,EAAiB,WAAW,CAAA;AAE3D,MAAA,IAAA,CAAK,MAAA,CAAO,KAAK,8BAA8B,CAAA;AAAA,IACjD,SAASkB,OAAA,EAAO;AACd,MAAA,MAAM,UAAUA,OAAA,YAAiB,KAAA,GAAQA,OAAA,CAAM,OAAA,GAAU,OAAOA,OAAK,CAAA;AACrE,MAAA,MAAM,IAAIC,iBAAA;AAAA,QACR;AAAA,UACE,EAAA,EAAI,sCAAA;AAAA,UACJ,IAAA,EAAM,uCAAuC,OAAO,CAAA,CAAA;AAAA,UACpD,QAAQC,iBAAA,CAAY,QAAA;AAAA,UACpB,UAAUC,mBAAA,CAAc;AAAA,SAC1B;AAAA,QACAH;AAAA,OACF;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,IAAA,CAAK,UAAA,EAAoB,gBAAA,EAA0B,UAAA,EAAkD;AACzG,IAAA,MAAM,iBAAA,GAAoB,MAAM,IAAA,CAAK,oBAAA,CAAqB,UAAU,CAAA;AACpE,IAAA,MAAM,WAAA,GAAc,MAAA,CAAO,IAAA,CAAK,iBAAiB,CAAA,CAAE,MAAA;AACnD,IAAA,IAAI,cAAc,CAAA,EAAG;AACnB,MAAA,IAAA,CAAK,MAAA,CAAO,KAAK,CAAA,MAAA,EAAS,WAAW,IAAI,WAAA,KAAgB,CAAA,GAAI,MAAA,GAAS,OAAO,CAAA,CAAE,CAAA;AAAA,IACjF;AAAA,EACF;AACF","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
|
|
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
|
|
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
|
|
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-
|
|
28
|
-
//# sourceMappingURL=chunk-
|
|
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-
|
|
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
|
|
@@ -958,7 +908,39 @@ async function getInputPlugins2(virtualDependencies, {
|
|
|
958
908
|
bundlerOptions.enableEsmShim ? esmShim() : void 0,
|
|
959
909
|
// hono is imported from deployer, so we need to resolve from here instead of the project root
|
|
960
910
|
aliasHono(),
|
|
961
|
-
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
|
+
}
|
|
962
944
|
].filter(Boolean);
|
|
963
945
|
}
|
|
964
946
|
async function buildExternalDependencies(virtualDependencies, {
|
|
@@ -1091,8 +1073,6 @@ async function bundleExternals(depsToOptimize, outputDir, options) {
|
|
|
1091
1073
|
}
|
|
1092
1074
|
return { output, fileNameToDependencyMap, usedExternals };
|
|
1093
1075
|
}
|
|
1094
|
-
|
|
1095
|
-
// src/build/analyze.ts
|
|
1096
1076
|
async function validateOutput({
|
|
1097
1077
|
output,
|
|
1098
1078
|
reverseVirtualReferenceMap,
|
|
@@ -1102,7 +1082,6 @@ async function validateOutput({
|
|
|
1102
1082
|
workspaceMap
|
|
1103
1083
|
}, logger) {
|
|
1104
1084
|
const result = {
|
|
1105
|
-
invalidChunks: /* @__PURE__ */ new Set(),
|
|
1106
1085
|
dependencies: /* @__PURE__ */ new Map(),
|
|
1107
1086
|
externalDependencies: /* @__PURE__ */ new Set(),
|
|
1108
1087
|
workspaceMap
|
|
@@ -1126,11 +1105,32 @@ async function validateOutput({
|
|
|
1126
1105
|
await validate(join(projectRoot, file.fileName));
|
|
1127
1106
|
}
|
|
1128
1107
|
} catch (err) {
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
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
|
+
}
|
|
1134
1134
|
}
|
|
1135
1135
|
}
|
|
1136
1136
|
}
|
|
@@ -1222,6 +1222,6 @@ If you think your configuration is valid, please open an issue.`);
|
|
|
1222
1222
|
return result;
|
|
1223
1223
|
}
|
|
1224
1224
|
|
|
1225
|
-
export { aliasHono, analyzeBundle,
|
|
1226
|
-
//# sourceMappingURL=chunk-
|
|
1227
|
-
//# sourceMappingURL=chunk-
|
|
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
|