@mastra/deployer 1.28.0-alpha.2 → 1.29.0-alpha.0

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 CHANGED
@@ -1,5 +1,29 @@
1
1
  # @mastra/deployer
2
2
 
3
+ ## 1.29.0-alpha.0
4
+
5
+ ### Patch Changes
6
+
7
+ - Fixed slow or stuck `mastra dev` startup in large monorepos when workspace packages share internal dependencies. ([#12963](https://github.com/mastra-ai/mastra/pull/12963))
8
+
9
+ **What changed**
10
+ - Mastra now avoids repeating the same dependency analysis work during dev startup when multiple workspace packages depend on the same internal package.
11
+ - This reduces repeated startup work in large monorepos and helps the dev server reach a ready state more reliably.
12
+
13
+ Fixes #12843.
14
+
15
+ - Updated dependencies [[`b1888da`](https://github.com/mastra-ai/mastra/commit/b1888da8fb00c2ebe8404350303c10a289ba9838), [`b510d36`](https://github.com/mastra-ai/mastra/commit/b510d368f73dab6be2e2c2bc99035aaef1fb7d7a)]:
16
+ - @mastra/server@1.29.0-alpha.0
17
+ - @mastra/core@1.29.0-alpha.0
18
+
19
+ ## 1.28.0
20
+
21
+ ### Patch Changes
22
+
23
+ - Updated dependencies [[`733bf53`](https://github.com/mastra-ai/mastra/commit/733bf53d9352aedd3ef38c3d501edb275b65b43c), [`5405b3b`](https://github.com/mastra-ai/mastra/commit/5405b3b35325c5b8fb34fc7ac109bd2feb7bb6fe), [`45e29cb`](https://github.com/mastra-ai/mastra/commit/45e29cb5b5737f3083eb3852db02b944b9cf37ed), [`750b4d3`](https://github.com/mastra-ai/mastra/commit/750b4d3d8231f92e769b2c485921ac5a8ca639b9), [`c9bc8d7`](https://github.com/mastra-ai/mastra/commit/c9bc8d7ddb5d582004cf021f3273bac31de62cf1), [`c321127`](https://github.com/mastra-ai/mastra/commit/c3211275fc195de9ad1ead2746b354beb8eae6e8), [`a07bcef`](https://github.com/mastra-ai/mastra/commit/a07bcefea77c03d6d322caad973dca49b4b15fa1), [`696694e`](https://github.com/mastra-ai/mastra/commit/696694e00f29241a25dd1a1b749afa06c3a626b4), [`b084a80`](https://github.com/mastra-ai/mastra/commit/b084a800db0f82d62e1fc3d6e3e3480da1ba5a53), [`82b7a96`](https://github.com/mastra-ai/mastra/commit/82b7a964169636c1d1e0c694fc892a213b0179d5), [`df97812`](https://github.com/mastra-ai/mastra/commit/df97812bd949dcafeb074b80ecab501724b49c3b), [`8bbe360`](https://github.com/mastra-ai/mastra/commit/8bbe36042af7fc4be0244dffd8913f6795179421), [`8a4c669`](https://github.com/mastra-ai/mastra/commit/8a4c6697b775d1d6c16efc8be4dbb6f34a99f56e), [`f6b8ba8`](https://github.com/mastra-ai/mastra/commit/f6b8ba8dbf533b7a8db90c72b6805ddc804a3a72), [`a07bcef`](https://github.com/mastra-ai/mastra/commit/a07bcefea77c03d6d322caad973dca49b4b15fa1)]:
24
+ - @mastra/core@1.28.0
25
+ - @mastra/server@1.28.0
26
+
3
27
  ## 1.28.0-alpha.2
4
28
 
5
29
  ### Patch Changes
@@ -16,22 +16,26 @@ import type { DependencyMetadata } from '../types.js';
16
16
  * @param options.shouldCheckTransitiveDependencies - Whether to recursively analyze transitive workspace dependencies (default: false)
17
17
  * @returns A promise that resolves to an object containing the analyzed dependencies and generated output
18
18
  */
19
+ /** Return type of {@link analyzeEntry} */
20
+ export type AnalyzeEntryResult = {
21
+ dependencies: Map<string, DependencyMetadata>;
22
+ output: {
23
+ code: string;
24
+ map: SourceMap | null;
25
+ };
26
+ };
19
27
  export declare function analyzeEntry({ entry, isVirtualFile, }: {
20
28
  entry: string;
21
29
  isVirtualFile: boolean;
22
30
  }, mastraEntry: string, { logger, sourcemapEnabled, workspaceMap, projectRoot, initialDepsToOptimize, // used to avoid infinite recursion
23
- shouldCheckTransitiveDependencies, }: {
31
+ shouldCheckTransitiveDependencies, analyzeCache, }: {
24
32
  logger: IMastraLogger;
25
33
  sourcemapEnabled: boolean;
26
34
  workspaceMap: Map<string, WorkspacePackageInfo>;
27
35
  projectRoot: string;
28
36
  initialDepsToOptimize?: Map<string, DependencyMetadata>;
29
37
  shouldCheckTransitiveDependencies?: boolean;
30
- }): Promise<{
31
- dependencies: Map<string, DependencyMetadata>;
32
- output: {
33
- code: string;
34
- map: SourceMap | null;
35
- };
36
- }>;
38
+ /** Shared cache to avoid re-analyzing the same entry across recursive calls */
39
+ analyzeCache?: Map<string, AnalyzeEntryResult>;
40
+ }): Promise<AnalyzeEntryResult>;
37
41
  //# sourceMappingURL=analyzeEntry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"analyzeEntry.d.ts","sourceRoot":"","sources":["../../../src/build/analyze/analyzeEntry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAOzD,OAAO,KAAK,EAAuB,SAAS,EAAE,MAAM,QAAQ,CAAC;AAC7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAMhF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAkPnD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,YAAY,CAChC,EACE,KAAK,EACL,aAAa,GACd,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,OAAO,CAAC;CACxB,EACD,WAAW,EAAE,MAAM,EACnB,EACE,MAAM,EACN,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,qBAAiC,EAAE,mCAAmC;AACtE,iCAAyC,GAC1C,EAAE;IACD,MAAM,EAAE,aAAa,CAAC;IACtB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAChD,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IACxD,iCAAiC,CAAC,EAAE,OAAO,CAAC;CAC7C,GACA,OAAO,CAAC;IACT,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC9C,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,SAAS,GAAG,IAAI,CAAC;KACvB,CAAC;CACH,CAAC,CAmCD"}
1
+ {"version":3,"file":"analyzeEntry.d.ts","sourceRoot":"","sources":["../../../src/build/analyze/analyzeEntry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAOzD,OAAO,KAAK,EAAuB,SAAS,EAAE,MAAM,QAAQ,CAAC;AAC7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAMhF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAqPnD;;;;;;;;;;;;;GAaG;AACH,0CAA0C;AAC1C,MAAM,MAAM,kBAAkB,GAAG;IAC/B,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC9C,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,SAAS,GAAG,IAAI,CAAC;KACvB,CAAC;CACH,CAAC;AAEF,wBAAsB,YAAY,CAChC,EACE,KAAK,EACL,aAAa,GACd,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,OAAO,CAAC;CACxB,EACD,WAAW,EAAE,MAAM,EACnB,EACE,MAAM,EACN,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,qBAAiC,EAAE,mCAAmC;AACtE,iCAAyC,EACzC,YAAY,GACb,EAAE;IACD,MAAM,EAAE,aAAa,CAAC;IACtB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAChD,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IACxD,iCAAiC,CAAC,EAAE,OAAO,CAAC;IAC5C,+EAA+E;IAC/E,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;CAChD,GACA,OAAO,CAAC,kBAAkB,CAAC,CAiD7B"}
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
- var chunkITCCYSAA_cjs = require('../chunk-ITCCYSAA.cjs');
3
+ var chunkD5QDTUSF_cjs = require('../chunk-D5QDTUSF.cjs');
4
4
 
5
5
 
6
6
 
7
7
  Object.defineProperty(exports, "analyzeBundle", {
8
8
  enumerable: true,
9
- get: function () { return chunkITCCYSAA_cjs.analyzeBundle; }
9
+ get: function () { return chunkD5QDTUSF_cjs.analyzeBundle; }
10
10
  });
11
11
  //# sourceMappingURL=analyze.cjs.map
12
12
  //# sourceMappingURL=analyze.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../../src/build/analyze.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIzD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAO7E,OAAO,KAAK,EAAE,cAAc,EAAsB,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAS1F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAkR/C;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EAAE,EACjB,WAAW,EAAE,MAAM,EACnB,EACE,SAAS,EACT,WAAW,EACX,QAAQ,EACR,KAAa,EACb,cAAc,GACf,EAAE;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,eAAe,CAAC;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,cAAc,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,WAAW,GAAG,iBAAiB,GAAG,iBAAiB,CAAC,GAAG,IAAI,CAAC;CACnG,EACD,MAAM,EAAE,aAAa;;;;GAgOtB"}
1
+ {"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../../src/build/analyze.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIzD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAO7E,OAAO,KAAK,EAAE,cAAc,EAAsB,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAS1F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAkR/C;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EAAE,EACjB,WAAW,EAAE,MAAM,EACnB,EACE,SAAS,EACT,WAAW,EACX,QAAQ,EACR,KAAa,EACb,cAAc,GACf,EAAE;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,eAAe,CAAC;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,cAAc,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,WAAW,GAAG,iBAAiB,GAAG,iBAAiB,CAAC,GAAG,IAAI,CAAC;CACnG,EACD,MAAM,EAAE,aAAa;;;;GAmOtB"}
@@ -1,3 +1,3 @@
1
- export { analyzeBundle } from '../chunk-Q3EFB33D.js';
1
+ export { analyzeBundle } from '../chunk-MLMAPMI3.js';
2
2
  //# sourceMappingURL=analyze.js.map
3
3
  //# sourceMappingURL=analyze.js.map
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var chunkSTAQTEMY_cjs = require('../chunk-STAQTEMY.cjs');
3
+ var chunkQJIDGPHH_cjs = require('../chunk-QJIDGPHH.cjs');
4
4
  var chunk7OOWEFCB_cjs = require('../chunk-7OOWEFCB.cjs');
5
- var chunkITCCYSAA_cjs = require('../chunk-ITCCYSAA.cjs');
5
+ var chunkD5QDTUSF_cjs = require('../chunk-D5QDTUSF.cjs');
6
6
  var chunkBGHYAAUQ_cjs = require('../chunk-BGHYAAUQ.cjs');
7
7
  var chunkQJGW77MV_cjs = require('../chunk-QJGW77MV.cjs');
8
8
  var chunkQTRSKNOJ_cjs = require('../chunk-QTRSKNOJ.cjs');
@@ -11,15 +11,15 @@ var chunkQTRSKNOJ_cjs = require('../chunk-QTRSKNOJ.cjs');
11
11
 
12
12
  Object.defineProperty(exports, "createWatcher", {
13
13
  enumerable: true,
14
- get: function () { return chunkSTAQTEMY_cjs.createWatcher; }
14
+ get: function () { return chunkQJIDGPHH_cjs.createWatcher; }
15
15
  });
16
16
  Object.defineProperty(exports, "getServerOptions", {
17
17
  enumerable: true,
18
- get: function () { return chunkSTAQTEMY_cjs.getServerOptions; }
18
+ get: function () { return chunkQJIDGPHH_cjs.getServerOptions; }
19
19
  });
20
20
  Object.defineProperty(exports, "getWatcherInputOptions", {
21
21
  enumerable: true,
22
- get: function () { return chunkSTAQTEMY_cjs.getInputOptions; }
22
+ get: function () { return chunkQJIDGPHH_cjs.getInputOptions; }
23
23
  });
24
24
  Object.defineProperty(exports, "getBundlerOptions", {
25
25
  enumerable: true,
@@ -27,7 +27,7 @@ Object.defineProperty(exports, "getBundlerOptions", {
27
27
  });
28
28
  Object.defineProperty(exports, "analyzeBundle", {
29
29
  enumerable: true,
30
- get: function () { return chunkITCCYSAA_cjs.analyzeBundle; }
30
+ get: function () { return chunkD5QDTUSF_cjs.analyzeBundle; }
31
31
  });
32
32
  Object.defineProperty(exports, "createBundler", {
33
33
  enumerable: true,
@@ -1,6 +1,6 @@
1
- export { createWatcher, getServerOptions, getInputOptions as getWatcherInputOptions } from '../chunk-WILWFFMB.js';
1
+ export { createWatcher, getServerOptions, getInputOptions as getWatcherInputOptions } from '../chunk-AEFF4KNF.js';
2
2
  export { getBundlerOptions } from '../chunk-R45J7TDH.js';
3
- export { analyzeBundle } from '../chunk-Q3EFB33D.js';
3
+ export { analyzeBundle } from '../chunk-MLMAPMI3.js';
4
4
  export { createBundler, getInputOptions as getBundlerInputOptions } from '../chunk-WRKEX2X3.js';
5
5
  export { Deps, FileService } from '../chunk-I7JM5EHU.js';
6
6
  export { detectRuntime, injectStudioHtmlConfig, normalizeStudioBase } from '../chunk-623NUWWK.js';
@@ -1,16 +1,16 @@
1
1
  'use strict';
2
2
 
3
- var chunkESYPNSOC_cjs = require('../chunk-ESYPNSOC.cjs');
3
+ var chunkUTNHO5IK_cjs = require('../chunk-UTNHO5IK.cjs');
4
4
 
5
5
 
6
6
 
7
7
  Object.defineProperty(exports, "Bundler", {
8
8
  enumerable: true,
9
- get: function () { return chunkESYPNSOC_cjs.Bundler; }
9
+ get: function () { return chunkUTNHO5IK_cjs.Bundler; }
10
10
  });
11
11
  Object.defineProperty(exports, "IS_DEFAULT", {
12
12
  enumerable: true,
13
- get: function () { return chunkESYPNSOC_cjs.IS_DEFAULT; }
13
+ get: function () { return chunkUTNHO5IK_cjs.IS_DEFAULT; }
14
14
  });
15
15
  //# sourceMappingURL=index.cjs.map
16
16
  //# sourceMappingURL=index.cjs.map
@@ -1,3 +1,3 @@
1
- export { Bundler, IS_DEFAULT } from '../chunk-JBABPWXN.js';
1
+ export { Bundler, IS_DEFAULT } from '../chunk-Z4RTULAB.js';
2
2
  //# sourceMappingURL=index.js.map
3
3
  //# sourceMappingURL=index.js.map
@@ -1,5 +1,5 @@
1
1
  import { extractMastraOption } from './chunk-R45J7TDH.js';
2
- import { getWorkspaceInformation, analyzeBundle, aliasHono } from './chunk-Q3EFB33D.js';
2
+ import { getWorkspaceInformation, analyzeBundle, aliasHono } from './chunk-MLMAPMI3.js';
3
3
  import { getInputOptions, nodeModulesExtensionResolver } from './chunk-WRKEX2X3.js';
4
4
  import { tsConfigPaths } from './chunk-5CIZPQD7.js';
5
5
  import { slash, getPackageName } from './chunk-623NUWWK.js';
@@ -94,5 +94,5 @@ async function getServerOptions(entryFile, outputDir, logger) {
94
94
  }
95
95
 
96
96
  export { createWatcher, getInputOptions2 as getInputOptions, getServerOptions };
97
- //# sourceMappingURL=chunk-WILWFFMB.js.map
98
- //# sourceMappingURL=chunk-WILWFFMB.js.map
97
+ //# sourceMappingURL=chunk-AEFF4KNF.js.map
98
+ //# sourceMappingURL=chunk-AEFF4KNF.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/build/watcher.ts","../src/build/serverOptions.ts"],"names":["getInputOptions"],"mappings":"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","file":"chunk-WILWFFMB.js","sourcesContent":["import { dirname, posix } from 'node:path';\nimport { noopLogger } from '@mastra/core/logger';\nimport * as pkg from 'empathic/package';\nimport type { InputOptions, OutputOptions, Plugin } from 'rollup';\nimport { watch } from 'rollup';\nimport { getWorkspaceInformation } from '../bundler/workspaceDependencies';\nimport { analyzeBundle } from './analyze';\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 type { BundlerOptions } from './types';\nimport { getPackageName, slash } from './utils';\nimport type { BundlerPlatform } from './utils';\n\nexport async function getInputOptions(\n entryFile: string,\n platform: BundlerPlatform,\n env?: Record<string, string>,\n {\n sourcemap = false,\n bundlerOptions = {\n enableSourcemap: false,\n enableEsmShim: true,\n externals: true,\n },\n }: { sourcemap?: boolean; bundlerOptions?: BundlerOptions } = {},\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,\n isDev: true,\n bundlerOptions,\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 const inputOptions = await getBundlerInputOptions(\n entryFile,\n {\n dependencies: deps,\n externalDependencies: new Map(),\n workspaceMap,\n },\n platform,\n env,\n { sourcemap, isDev: true, workspaceRoot, projectRoot, externalsPreset: bundlerOptions?.externals === true },\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 type { IMastraLogger } from '@mastra/core/logger';\nimport type { Config } from '@mastra/core/mastra';\nimport { extractMastraOption, extractMastraOptionBundler } from './shared/extract-mastra-option';\n\nexport function getServerOptionsBundler(\n entryFile: string,\n result: {\n hasCustomConfig: false;\n },\n) {\n return extractMastraOptionBundler('server', entryFile, 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('server', entryFile, outputDir, logger);\n if (!result) {\n return null;\n }\n\n return result.getConfig();\n}\n"]}
1
+ {"version":3,"sources":["../src/build/watcher.ts","../src/build/serverOptions.ts"],"names":["getInputOptions"],"mappings":"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","file":"chunk-AEFF4KNF.js","sourcesContent":["import { dirname, posix } from 'node:path';\nimport { noopLogger } from '@mastra/core/logger';\nimport * as pkg from 'empathic/package';\nimport type { InputOptions, OutputOptions, Plugin } from 'rollup';\nimport { watch } from 'rollup';\nimport { getWorkspaceInformation } from '../bundler/workspaceDependencies';\nimport { analyzeBundle } from './analyze';\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 type { BundlerOptions } from './types';\nimport { getPackageName, slash } from './utils';\nimport type { BundlerPlatform } from './utils';\n\nexport async function getInputOptions(\n entryFile: string,\n platform: BundlerPlatform,\n env?: Record<string, string>,\n {\n sourcemap = false,\n bundlerOptions = {\n enableSourcemap: false,\n enableEsmShim: true,\n externals: true,\n },\n }: { sourcemap?: boolean; bundlerOptions?: BundlerOptions } = {},\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,\n isDev: true,\n bundlerOptions,\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 const inputOptions = await getBundlerInputOptions(\n entryFile,\n {\n dependencies: deps,\n externalDependencies: new Map(),\n workspaceMap,\n },\n platform,\n env,\n { sourcemap, isDev: true, workspaceRoot, projectRoot, externalsPreset: bundlerOptions?.externals === true },\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 type { IMastraLogger } from '@mastra/core/logger';\nimport type { Config } from '@mastra/core/mastra';\nimport { extractMastraOption, extractMastraOptionBundler } from './shared/extract-mastra-option';\n\nexport function getServerOptionsBundler(\n entryFile: string,\n result: {\n hasCustomConfig: false;\n },\n) {\n return extractMastraOptionBundler('server', entryFile, 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('server', entryFile, outputDir, logger);\n if (!result) {\n return null;\n }\n\n return result.getConfig();\n}\n"]}
@@ -334,7 +334,8 @@ function getInputPlugins({ entry, isVirtualFile }, mastraEntry, { sourcemapEnabl
334
334
  }
335
335
  async function captureDependenciesToOptimize(output, workspaceMap, projectRoot, initialDepsToOptimize, {
336
336
  logger: logger$1,
337
- shouldCheckTransitiveDependencies
337
+ shouldCheckTransitiveDependencies,
338
+ analyzeCache
338
339
  }) {
339
340
  const depsToOptimize = /* @__PURE__ */ new Map();
340
341
  if (!output.facadeModuleId) {
@@ -398,7 +399,8 @@ async function captureDependenciesToOptimize(output, workspaceMap, projectRoot,
398
399
  projectRoot,
399
400
  logger: logger.noopLogger,
400
401
  sourcemapEnabled: false,
401
- initialDepsToOptimize: depsToOptimize
402
+ initialDepsToOptimize: depsToOptimize,
403
+ analyzeCache
402
404
  });
403
405
  if (!analysis?.dependencies) {
404
406
  continue;
@@ -459,8 +461,13 @@ async function analyzeEntry({
459
461
  projectRoot,
460
462
  initialDepsToOptimize = /* @__PURE__ */ new Map(),
461
463
  // used to avoid infinite recursion
462
- shouldCheckTransitiveDependencies = false
464
+ shouldCheckTransitiveDependencies = false,
465
+ analyzeCache
463
466
  }) {
467
+ const cacheKey = isVirtualFile ? void 0 : chunkQTRSKNOJ_cjs.slash(entry);
468
+ if (cacheKey && analyzeCache?.has(cacheKey)) {
469
+ return analyzeCache.get(cacheKey);
470
+ }
464
471
  const optimizerBundler = await rollup.rollup({
465
472
  logLevel: process.env.MASTRA_BUNDLER_DEBUG === "true" ? "debug" : "silent",
466
473
  input: isVirtualFile ? "#entry" : entry,
@@ -481,16 +488,21 @@ async function analyzeEntry({
481
488
  initialDepsToOptimize,
482
489
  {
483
490
  logger,
484
- shouldCheckTransitiveDependencies
491
+ shouldCheckTransitiveDependencies,
492
+ analyzeCache
485
493
  }
486
494
  );
487
- return {
495
+ const result = {
488
496
  dependencies: depsToOptimize,
489
497
  output: {
490
498
  code: output[0].code,
491
499
  map: output[0].map
492
500
  }
493
501
  };
502
+ if (cacheKey && analyzeCache) {
503
+ analyzeCache.set(cacheKey, result);
504
+ }
505
+ return result;
494
506
  }
495
507
  function aliasHono() {
496
508
  return {
@@ -1339,6 +1351,7 @@ async function analyzeBundle(entries, mastraEntry, {
1339
1351
  const detectedPinoTransports = /* @__PURE__ */ new Set();
1340
1352
  logger.info("Analyzing dependencies...");
1341
1353
  const allUsedExternals = /* @__PURE__ */ new Map();
1354
+ const analyzeCache = /* @__PURE__ */ new Map();
1342
1355
  for (const entry of entries) {
1343
1356
  const isVirtualFile = entry.includes("\n") || !fs.existsSync(entry);
1344
1357
  const analyzeResult = await analyzeEntry({ entry, isVirtualFile }, mastraEntry, {
@@ -1346,7 +1359,8 @@ async function analyzeBundle(entries, mastraEntry, {
1346
1359
  sourcemapEnabled: bundlerOptions?.enableSourcemap ?? false,
1347
1360
  workspaceMap,
1348
1361
  projectRoot,
1349
- shouldCheckTransitiveDependencies: isDev || externalsPreset
1362
+ shouldCheckTransitiveDependencies: isDev || externalsPreset,
1363
+ analyzeCache
1350
1364
  });
1351
1365
  babel2__namespace.transformSync(analyzeResult.output.code, {
1352
1366
  filename: "pino-detection.js",
@@ -1480,5 +1494,5 @@ async function analyzeBundle(entries, mastraEntry, {
1480
1494
  exports.aliasHono = aliasHono;
1481
1495
  exports.analyzeBundle = analyzeBundle;
1482
1496
  exports.getWorkspaceInformation = getWorkspaceInformation;
1483
- //# sourceMappingURL=chunk-ITCCYSAA.cjs.map
1484
- //# sourceMappingURL=chunk-ITCCYSAA.cjs.map
1497
+ //# sourceMappingURL=chunk-D5QDTUSF.cjs.map
1498
+ //# sourceMappingURL=chunk-D5QDTUSF.cjs.map