@mastra/deployer 1.0.0-beta.13 → 1.0.0-beta.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/dist/arktype-aI7TBD0R-CCZH3EYK.js +8 -0
  3. package/dist/{arktype-aI7TBD0R-OEPFT4G6.js.map → arktype-aI7TBD0R-CCZH3EYK.js.map} +1 -1
  4. package/dist/{arktype-aI7TBD0R-4YXBEQBG.cjs → arktype-aI7TBD0R-XHBHUL3T.cjs} +3 -3
  5. package/dist/{arktype-aI7TBD0R-4YXBEQBG.cjs.map → arktype-aI7TBD0R-XHBHUL3T.cjs.map} +1 -1
  6. package/dist/build/analyze/analyzeEntry.d.ts.map +1 -1
  7. package/dist/build/analyze.cjs +2 -2
  8. package/dist/build/analyze.d.ts +3 -4
  9. package/dist/build/analyze.d.ts.map +1 -1
  10. package/dist/build/analyze.js +1 -1
  11. package/dist/build/babel/remove-deployer.d.ts.map +1 -1
  12. package/dist/build/bundler.cjs +3 -3
  13. package/dist/build/bundler.d.ts.map +1 -1
  14. package/dist/build/bundler.js +1 -1
  15. package/dist/build/bundlerOptions.d.ts.map +1 -1
  16. package/dist/build/deployer.d.ts.map +1 -1
  17. package/dist/build/index.cjs +10 -10
  18. package/dist/build/index.js +3 -3
  19. package/dist/build/plugins/node-modules-extension-resolver.d.ts.map +1 -1
  20. package/dist/build/plugins/remove-all-except.d.ts +10 -0
  21. package/dist/build/plugins/remove-all-except.d.ts.map +1 -0
  22. package/dist/build/serverOptions.d.ts.map +1 -1
  23. package/dist/build/shared/extract-mastra-option.d.ts +4 -8
  24. package/dist/build/shared/extract-mastra-option.d.ts.map +1 -1
  25. package/dist/build/types.d.ts +5 -0
  26. package/dist/build/types.d.ts.map +1 -1
  27. package/dist/bundler/index.cjs +6 -2
  28. package/dist/bundler/index.d.ts +7 -7
  29. package/dist/bundler/index.d.ts.map +1 -1
  30. package/dist/bundler/index.js +1 -1
  31. package/dist/chunk-2VG357HT.cjs +4 -0
  32. package/dist/{chunk-BTNPI4Z7.cjs.map → chunk-2VG357HT.cjs.map} +1 -1
  33. package/dist/chunk-4P2LYC33.js +14 -0
  34. package/dist/{chunk-N5TMJUIR.js.map → chunk-4P2LYC33.js.map} +1 -1
  35. package/dist/chunk-54PQDTM3.cjs +16 -0
  36. package/dist/{chunk-ID3HN3BH.cjs.map → chunk-54PQDTM3.cjs.map} +1 -1
  37. package/dist/{chunk-MMUE22EL.js → chunk-5HTKP372.js} +9 -9
  38. package/dist/{chunk-MMUE22EL.js.map → chunk-5HTKP372.js.map} +1 -1
  39. package/dist/{chunk-3GOE3SL2.cjs → chunk-7F6JKGX4.cjs} +48 -33
  40. package/dist/chunk-7F6JKGX4.cjs.map +1 -0
  41. package/dist/{chunk-RGUNHE4Y.js → chunk-BDA7RMRF.js} +198 -181
  42. package/dist/chunk-BDA7RMRF.js.map +1 -0
  43. package/dist/{chunk-KCGBR2X6.cjs → chunk-CRIOGWZD.cjs} +197 -181
  44. package/dist/chunk-CRIOGWZD.cjs.map +1 -0
  45. package/dist/{chunk-TXKETRIN.cjs → chunk-DMISJICL.cjs} +9 -9
  46. package/dist/{chunk-TXKETRIN.cjs.map → chunk-DMISJICL.cjs.map} +1 -1
  47. package/dist/{chunk-XTXGU6QF.js → chunk-ESR6AK5N.js} +43 -29
  48. package/dist/chunk-ESR6AK5N.js.map +1 -0
  49. package/dist/chunk-G6GFAPPU.js +6 -0
  50. package/dist/{chunk-Q2YGWEXY.js.map → chunk-G6GFAPPU.js.map} +1 -1
  51. package/dist/chunk-HPGDVJAZ.js +3 -0
  52. package/dist/{chunk-FBT6QP7J.js.map → chunk-HPGDVJAZ.js.map} +1 -1
  53. package/dist/{chunk-24GY667C.cjs → chunk-HRCR6OKC.cjs} +11 -22
  54. package/dist/chunk-HRCR6OKC.cjs.map +1 -0
  55. package/dist/{chunk-GD2TGMBP.cjs → chunk-JBE6KM7R.cjs} +3 -3
  56. package/dist/{chunk-GD2TGMBP.cjs.map → chunk-JBE6KM7R.cjs.map} +1 -1
  57. package/dist/{chunk-7PLNIFGZ.cjs → chunk-KE4NVPI4.cjs} +3 -3
  58. package/dist/{chunk-7PLNIFGZ.cjs.map → chunk-KE4NVPI4.cjs.map} +1 -1
  59. package/dist/{chunk-R6O3XWXM.js → chunk-ONWHS3PA.js} +34 -79
  60. package/dist/chunk-ONWHS3PA.js.map +1 -0
  61. package/dist/{chunk-LENVOSFH.cjs → chunk-OVVUJ46G.cjs} +39 -85
  62. package/dist/chunk-OVVUJ46G.cjs.map +1 -0
  63. package/dist/{chunk-P4L6VIHY.js → chunk-V4HCIN6G.js} +3 -3
  64. package/dist/{chunk-P4L6VIHY.js.map → chunk-V4HCIN6G.js.map} +1 -1
  65. package/dist/{chunk-SRPOHKWH.js → chunk-WFIG7I5C.js} +5 -16
  66. package/dist/chunk-WFIG7I5C.js.map +1 -0
  67. package/dist/default-u_dwuiYb-IKALPRLV.js +3 -0
  68. package/dist/{default-u_dwuiYb-65M4BHAA.js.map → default-u_dwuiYb-IKALPRLV.js.map} +1 -1
  69. package/dist/default-u_dwuiYb-ZNEZWEPC.cjs +9 -0
  70. package/dist/{default-u_dwuiYb-PWN6FHC6.cjs.map → default-u_dwuiYb-ZNEZWEPC.cjs.map} +1 -1
  71. package/dist/effect-QlVUlMFu-2KN4AWBH.cjs +17 -0
  72. package/dist/{effect-QlVUlMFu-2ADPKIDF.cjs.map → effect-QlVUlMFu-2KN4AWBH.cjs.map} +1 -1
  73. package/dist/{effect-QlVUlMFu-FD73M3OO.js → effect-QlVUlMFu-MWXQUT6S.js} +4 -4
  74. package/dist/{effect-QlVUlMFu-FD73M3OO.js.map → effect-QlVUlMFu-MWXQUT6S.js.map} +1 -1
  75. package/dist/index.cjs +4 -15
  76. package/dist/index.cjs.map +1 -1
  77. package/dist/index.js +3 -14
  78. package/dist/index.js.map +1 -1
  79. package/dist/server/index.cjs +263 -15
  80. package/dist/server/index.cjs.map +1 -1
  81. package/dist/server/index.d.ts.map +1 -1
  82. package/dist/server/index.js +261 -13
  83. package/dist/server/index.js.map +1 -1
  84. package/dist/sury-CWZTCd75-6QYFZXZY.cjs +17 -0
  85. package/dist/{sury-CWZTCd75-K3FHMZF5.cjs.map → sury-CWZTCd75-6QYFZXZY.cjs.map} +1 -1
  86. package/dist/{sury-CWZTCd75-Y2GURJ6K.js → sury-CWZTCd75-DAPFEZIA.js} +4 -4
  87. package/dist/{sury-CWZTCd75-Y2GURJ6K.js.map → sury-CWZTCd75-DAPFEZIA.js.map} +1 -1
  88. package/dist/typebox-Dei93FPO-LBLFC3RD.js +8 -0
  89. package/dist/{typebox-Dei93FPO-2WP4NOYD.js.map → typebox-Dei93FPO-LBLFC3RD.js.map} +1 -1
  90. package/dist/{typebox-Dei93FPO-WTXAW2LA.cjs → typebox-Dei93FPO-RDSW6DFA.cjs} +3 -3
  91. package/dist/{typebox-Dei93FPO-WTXAW2LA.cjs.map → typebox-Dei93FPO-RDSW6DFA.cjs.map} +1 -1
  92. package/dist/{valibot--1zFm7rT-VGFBTDTW.js → valibot--1zFm7rT-AASENK42.js} +4 -4
  93. package/dist/{valibot--1zFm7rT-VGFBTDTW.js.map → valibot--1zFm7rT-AASENK42.js.map} +1 -1
  94. package/dist/valibot--1zFm7rT-OOWNQW47.cjs +17 -0
  95. package/dist/{valibot--1zFm7rT-HMTCRBB3.cjs.map → valibot--1zFm7rT-OOWNQW47.cjs.map} +1 -1
  96. package/dist/{valibot-D_HTw1Gn-ILCWWLE4.cjs → valibot-D_HTw1Gn-PBXMZJWR.cjs} +7 -7
  97. package/dist/{valibot-D_HTw1Gn-ILCWWLE4.cjs.map → valibot-D_HTw1Gn-PBXMZJWR.cjs.map} +1 -1
  98. package/dist/{valibot-D_HTw1Gn-LLCGNU3W.js → valibot-D_HTw1Gn-PCY2UTIB.js} +5 -5
  99. package/dist/{valibot-D_HTw1Gn-LLCGNU3W.js.map → valibot-D_HTw1Gn-PCY2UTIB.js.map} +1 -1
  100. package/dist/{zod-Bwrt9trS-XCRGYQVE.js → zod-Bwrt9trS-MTR3E2QO.js} +4 -4
  101. package/dist/{zod-Bwrt9trS-XCRGYQVE.js.map → zod-Bwrt9trS-MTR3E2QO.js.map} +1 -1
  102. package/dist/{zod-Bwrt9trS-XDMWF3NW.cjs → zod-Bwrt9trS-OXQA54TZ.cjs} +6 -6
  103. package/dist/{zod-Bwrt9trS-XDMWF3NW.cjs.map → zod-Bwrt9trS-OXQA54TZ.cjs.map} +1 -1
  104. package/dist/{zod-DSgpEGAE-ZWQMF6SS.cjs → zod-DSgpEGAE-7BIIMWZW.cjs} +7 -7
  105. package/dist/{zod-DSgpEGAE-ZWQMF6SS.cjs.map → zod-DSgpEGAE-7BIIMWZW.cjs.map} +1 -1
  106. package/dist/{zod-DSgpEGAE-TKBHSSLS.js → zod-DSgpEGAE-UO7OP3J6.js} +5 -5
  107. package/dist/{zod-DSgpEGAE-TKBHSSLS.js.map → zod-DSgpEGAE-UO7OP3J6.js.map} +1 -1
  108. package/package.json +6 -6
  109. package/dist/arktype-aI7TBD0R-OEPFT4G6.js +0 -8
  110. package/dist/build/babel/get-deployer.d.ts +0 -3
  111. package/dist/build/babel/get-deployer.d.ts.map +0 -1
  112. package/dist/build/babel/remove-all-options-bundler.d.ts +0 -5
  113. package/dist/build/babel/remove-all-options-bundler.d.ts.map +0 -1
  114. package/dist/build/babel/remove-all-options-deployer.d.ts +0 -5
  115. package/dist/build/babel/remove-all-options-deployer.d.ts.map +0 -1
  116. package/dist/build/babel/remove-all-options-server.d.ts +0 -5
  117. package/dist/build/babel/remove-all-options-server.d.ts.map +0 -1
  118. package/dist/chunk-24GY667C.cjs.map +0 -1
  119. package/dist/chunk-3GOE3SL2.cjs.map +0 -1
  120. package/dist/chunk-BTNPI4Z7.cjs +0 -4
  121. package/dist/chunk-FBT6QP7J.js +0 -3
  122. package/dist/chunk-ID3HN3BH.cjs +0 -16
  123. package/dist/chunk-KCGBR2X6.cjs.map +0 -1
  124. package/dist/chunk-LENVOSFH.cjs.map +0 -1
  125. package/dist/chunk-N5TMJUIR.js +0 -14
  126. package/dist/chunk-Q2YGWEXY.js +0 -6
  127. package/dist/chunk-R6O3XWXM.js.map +0 -1
  128. package/dist/chunk-RGUNHE4Y.js.map +0 -1
  129. package/dist/chunk-SRPOHKWH.js.map +0 -1
  130. package/dist/chunk-XTXGU6QF.js.map +0 -1
  131. package/dist/default-u_dwuiYb-65M4BHAA.js +0 -3
  132. package/dist/default-u_dwuiYb-PWN6FHC6.cjs +0 -9
  133. package/dist/effect-QlVUlMFu-2ADPKIDF.cjs +0 -17
  134. package/dist/sury-CWZTCd75-K3FHMZF5.cjs +0 -17
  135. package/dist/typebox-Dei93FPO-2WP4NOYD.js +0 -8
  136. package/dist/valibot--1zFm7rT-HMTCRBB3.cjs +0 -17
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunkLENVOSFH_cjs = require('./chunk-LENVOSFH.cjs');
4
- var chunkKCGBR2X6_cjs = require('./chunk-KCGBR2X6.cjs');
3
+ var chunkOVVUJ46G_cjs = require('./chunk-OVVUJ46G.cjs');
4
+ var chunkCRIOGWZD_cjs = require('./chunk-CRIOGWZD.cjs');
5
5
  var chunkJVBCN3RH_cjs = require('./chunk-JVBCN3RH.cjs');
6
6
  var chunkVA2CSOKJ_cjs = require('./chunk-VA2CSOKJ.cjs');
7
7
  var fs = require('fs');
@@ -38,6 +38,7 @@ var virtual__default = /*#__PURE__*/_interopDefault(virtual);
38
38
  var pkg__namespace = /*#__PURE__*/_interopNamespace(pkg);
39
39
  var fsExtra__default = /*#__PURE__*/_interopDefault(fsExtra);
40
40
 
41
+ var IS_DEFAULT = Symbol("IS_DEFAULT");
41
42
  var Bundler = class extends bundler.MastraBundler {
42
43
  analyzeOutputDir = ".build";
43
44
  outputDir = "output";
@@ -89,10 +90,25 @@ var Bundler = class extends bundler.MastraBundler {
89
90
  );
90
91
  }
91
92
  createBundler(inputOptions, outputOptions) {
92
- return chunkLENVOSFH_cjs.createBundler(inputOptions, outputOptions);
93
+ return chunkOVVUJ46G_cjs.createBundler(inputOptions, outputOptions);
94
+ }
95
+ async getUserBundlerOptions(mastraEntryFile, outputDirectory) {
96
+ const defaultBundlerOptions = {
97
+ externals: [],
98
+ sourcemap: false,
99
+ transpilePackages: [],
100
+ [IS_DEFAULT]: true
101
+ };
102
+ try {
103
+ const bundlerOptions = await chunkCRIOGWZD_cjs.getBundlerOptions(mastraEntryFile, outputDirectory);
104
+ return bundlerOptions ?? defaultBundlerOptions;
105
+ } catch (error) {
106
+ this.logger.debug("Failed to get bundler options, sourcemap will be disabled", { error });
107
+ }
108
+ return defaultBundlerOptions;
93
109
  }
94
110
  async analyze(entry, mastraFile, outputDirectory) {
95
- return await chunkKCGBR2X6_cjs.analyzeBundle(
111
+ return await chunkCRIOGWZD_cjs.analyzeBundle(
96
112
  [].concat(entry),
97
113
  mastraFile,
98
114
  {
@@ -130,22 +146,18 @@ var Bundler = class extends bundler.MastraBundler {
130
146
  return;
131
147
  }
132
148
  }
133
- async getBundlerOptions(serverFile, mastraEntryFile, analyzedBundleInfo, toolsPaths, {
134
- enableSourcemap = false,
135
- enableEsmShim = true,
136
- externalsPreset = false
137
- } = {}) {
138
- const { workspaceRoot } = await chunkKCGBR2X6_cjs.getWorkspaceInformation({ mastraEntryFile });
149
+ async getBundlerOptions(serverFile, mastraEntryFile, analyzedBundleInfo, toolsPaths, { enableSourcemap, enableEsmShim, externals }) {
150
+ const { workspaceRoot } = await chunkCRIOGWZD_cjs.getWorkspaceInformation({ mastraEntryFile });
139
151
  const closestPkgJson = pkg__namespace.up({ cwd: path.dirname(mastraEntryFile) });
140
152
  const projectRoot = closestPkgJson ? path.dirname(closestPkgJson) : process.cwd();
141
- const inputOptions = await chunkLENVOSFH_cjs.getInputOptions(
153
+ const inputOptions = await chunkOVVUJ46G_cjs.getInputOptions(
142
154
  mastraEntryFile,
143
155
  analyzedBundleInfo,
144
156
  "node",
145
157
  {
146
158
  "process.env.NODE_ENV": JSON.stringify("production")
147
159
  },
148
- { sourcemap: enableSourcemap, workspaceRoot, projectRoot, enableEsmShim, externalsPreset }
160
+ { sourcemap: enableSourcemap, workspaceRoot, projectRoot, enableEsmShim, externalsPreset: externals === true }
149
161
  );
150
162
  const isVirtual = serverFile.includes("\n") || fs.existsSync(serverFile);
151
163
  const toolsInputOptions = await this.listToolsInputOptions(toolsPaths);
@@ -207,32 +219,26 @@ var Bundler = class extends bundler.MastraBundler {
207
219
  async _bundle(serverFile, mastraEntryFile, {
208
220
  projectRoot,
209
221
  outputDirectory,
210
- enableEsmShim = true,
211
- externals = []
222
+ enableEsmShim = true
212
223
  }, toolsPaths = [], bundleLocation = path.join(outputDirectory, this.outputDir)) {
213
224
  const analyzeDir = path.join(outputDirectory, this.analyzeOutputDir);
214
- let sourcemap = false;
215
- let externalsPreset = false;
216
- try {
217
- const bundlerOptions = await chunkKCGBR2X6_cjs.getBundlerOptions(mastraEntryFile, analyzeDir);
218
- sourcemap = !!bundlerOptions?.sourcemap;
219
- externalsPreset = bundlerOptions?.externals === true;
220
- } catch (error) {
221
- this.logger.debug("Failed to get bundler options, sourcemap will be disabled", { error });
222
- }
225
+ const bundlerOptions = await this.getUserBundlerOptions(mastraEntryFile, outputDirectory);
226
+ const internalBundlerOptions = {
227
+ enableSourcemap: !!bundlerOptions.sourcemap,
228
+ externals: bundlerOptions.externals ?? [],
229
+ enableEsmShim
230
+ };
223
231
  let analyzedBundleInfo;
224
232
  try {
225
233
  const resolvedToolsPaths = await this.listToolsInputOptions(toolsPaths);
226
- analyzedBundleInfo = await chunkKCGBR2X6_cjs.analyzeBundle(
234
+ analyzedBundleInfo = await chunkCRIOGWZD_cjs.analyzeBundle(
227
235
  [serverFile, ...Object.values(resolvedToolsPaths)],
228
236
  mastraEntryFile,
229
237
  {
230
238
  outputDir: analyzeDir,
231
239
  projectRoot,
232
240
  platform: "node",
233
- bundlerOptions: {
234
- externals
235
- }
241
+ bundlerOptions: internalBundlerOptions
236
242
  },
237
243
  this.logger
238
244
  );
@@ -257,9 +263,17 @@ var Bundler = class extends bundler.MastraBundler {
257
263
  if (analyzedBundleInfo.workspaceMap.has(dep)) {
258
264
  continue;
259
265
  }
260
- const rootPath = await chunkKCGBR2X6_cjs.getPackageRootPath(dep);
266
+ const rootPath = await chunkCRIOGWZD_cjs.getPackageRootPath(dep);
261
267
  const pkg2 = await fsExtra.readJSON(`${rootPath}/package.json`);
262
- dependenciesToInstall.set(dep, pkg2.version || "latest");
268
+ const actualPackageName = pkg2.name;
269
+ const version = pkg2.version || "latest";
270
+ const importName = chunkVA2CSOKJ_cjs.getPackageName(dep);
271
+ const isAlias = actualPackageName && importName !== actualPackageName;
272
+ if (isAlias) {
273
+ dependenciesToInstall.set(dep, `npm:${actualPackageName}@${version}`);
274
+ } else {
275
+ dependenciesToInstall.set(dep, version);
276
+ }
263
277
  } catch {
264
278
  dependenciesToInstall.set(dep, "latest");
265
279
  }
@@ -272,7 +286,7 @@ var Bundler = class extends bundler.MastraBundler {
272
286
  mastraEntryFile,
273
287
  analyzedBundleInfo,
274
288
  toolsPaths,
275
- { enableSourcemap: sourcemap, enableEsmShim, externalsPreset }
289
+ internalBundlerOptions
276
290
  );
277
291
  const bundler = await this.createBundler(
278
292
  {
@@ -293,7 +307,7 @@ var Bundler = class extends bundler.MastraBundler {
293
307
  manualChunks: {
294
308
  mastra: ["#mastra"]
295
309
  },
296
- sourcemap
310
+ sourcemap: internalBundlerOptions.enableSourcemap
297
311
  }
298
312
  );
299
313
  await bundler.write();
@@ -343,5 +357,6 @@ export const tools = [${toolsExports.join(", ")}]`
343
357
  };
344
358
 
345
359
  exports.Bundler = Bundler;
346
- //# sourceMappingURL=chunk-3GOE3SL2.cjs.map
347
- //# sourceMappingURL=chunk-3GOE3SL2.cjs.map
360
+ exports.IS_DEFAULT = IS_DEFAULT;
361
+ //# sourceMappingURL=chunk-7F6JKGX4.cjs.map
362
+ //# sourceMappingURL=chunk-7F6JKGX4.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/bundler/index.ts"],"names":["MastraBundler","emptyDir","ensureDir","join","writeFile","createBundler","getBundlerOptions","analyzeBundle","DepsService","stat","copy","getWorkspaceInformation","pkg","dirname","getInputOptions","existsSync","virtual","slash","posix","glob","path","fsExtra","FileService","error","MastraError","ErrorDomain","ErrorCategory","getPackageRootPath","readJSON","getPackageName"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBO,IAAM,UAAA,GAAa,OAAO,YAAY;AAEtC,IAAe,OAAA,GAAf,cAA+BA,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,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;AAEA,IAAA,MAAMC,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,qBAAA,CACd,eAAA,EACA,eAAA,EACyC;AACzC,IAAA,MAAM,qBAAA,GAA2C;AAAA,MAC/C,WAAW,EAAC;AAAA,MACZ,SAAA,EAAW,KAAA;AAAA,MACX,mBAAmB,EAAC;AAAA,MACpB,CAAC,UAAU,GAAG;AAAA,KAChB;AAEA,IAAA,IAAI;AACF,MAAA,MAAM,cAAA,GAAiB,MAAMC,mCAAA,CAAkB,eAAA,EAAiB,eAAe,CAAA;AAE/E,MAAA,OAAO,cAAA,IAAkB,qBAAA;AAAA,IAC3B,SAAS,KAAA,EAAO;AACd,MAAA,IAAA,CAAK,MAAA,CAAO,KAAA,CAAM,2DAAA,EAA6D,EAAE,OAAO,CAAA;AAAA,IAC1F;AAEA,IAAA,OAAO,qBAAA;AAAA,EACT;AAAA,EAEA,MAAgB,OAAA,CAAQ,KAAA,EAA0B,UAAA,EAAoB,eAAA,EAAyB;AAC7F,IAAA,OAAO,MAAMC,+BAAA;AAAA,MACV,EAAC,CAAe,MAAA,CAAO,KAAK,CAAA;AAAA,MAC7B,UAAA;AAAA,MACA;AAAA,QACE,SAAA,EAAWJ,SAAA,CAAK,eAAA,EAAiB,IAAA,CAAK,gBAAgB,CAAA;AAAA,QACtD,WAAA,EAAa,eAAA;AAAA,QACb,QAAA,EAAU;AAAA,OACZ;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,IAAIK,6BAAA,CAAY,OAAO,CAAA;AACpC,IAAA,IAAA,CAAK,WAAA,CAAY,KAAK,MAAM,CAAA;AAE5B,IAAA,MAAM,IAAA,CAAK,QAAQ,EAAE,GAAA,EAAKL,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,MAAMM,cAAK,SAAS,CAAA;AAAA,IACtB,CAAA,CAAA,MAAQ;AACN,MAAA;AAAA,IACF;AAEA,IAAA,MAAMC,aAAK,SAAA,EAAWP,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,MAAMM,cAAK,kBAAkB,CAAA;AAC7B,MAAA,MAAMC,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,YACA,EAAE,eAAA,EAAiB,aAAA,EAAe,SAAA,EAAU,EAC5C;AACA,IAAA,MAAM,EAAE,aAAA,EAAc,GAAI,MAAMC,yCAAA,CAAwB,EAAE,iBAAiB,CAAA;AAC3E,IAAA,MAAM,iBAAqBC,cAAA,CAAA,EAAA,CAAG,EAAE,KAAKC,YAAA,CAAQ,eAAe,GAAG,CAAA;AAC/D,IAAA,MAAM,cAAc,cAAA,GAAiBA,YAAA,CAAQ,cAAc,CAAA,GAAI,QAAQ,GAAA,EAAI;AAE3E,IAAA,MAAM,eAA6B,MAAMC,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,WAAW,eAAA,EAAiB,aAAA,EAAe,aAAa,aAAA,EAAe,eAAA,EAAiB,cAAc,IAAA;AAAK,KAC/G;AACA,IAAA,MAAM,YAAY,UAAA,CAAW,QAAA,CAAS,IAAI,CAAA,IAAKC,cAAW,UAAU,CAAA;AAEpE,IAAA,MAAM,iBAAA,GAAoB,MAAM,IAAA,CAAK,qBAAA,CAAsB,UAAU,CAAA;AAErE,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,eAAA,CAAgB,SAAA,EAAmB,UAAA,GAAoC,EAAC,EAA0B;AAEhG,IAAA,MAAM,mBAAA,GAAsBC,wBAAM,SAAS,CAAA;AAG3C,IAAA,MAAM,gBAAA,GAAmBC,UAAA,CAAM,IAAA,CAAK,mBAAA,EAAqB,oBAAoB,CAAA;AAC7E,IAAA,MAAM,uBAAA,GAA0B;AAAA,MAC9B,CAAA,CAAA,EAAIA,UAAA,CAAM,IAAA,CAAK,mBAAA,EAAqB,gCAAgC,CAAC,CAAA,CAAA;AAAA,MACrE,CAAA,CAAA,EAAIA,UAAA,CAAM,IAAA,CAAK,mBAAA,EAAqB,uBAAuB,CAAC,CAAA;AAAA,KAC9D;AAGA,IAAA,MAAM,YAAA,GAAe,CAAC,gBAAA,EAAkB,GAAG,uBAAuB,CAAA;AAGlE,IAAA,IAAI,UAAA,CAAW,WAAW,CAAA,EAAG;AAC3B,MAAA,OAAO,CAAC,YAAY,CAAA;AAAA,IACtB;AAGA,IAAA,OAAO,CAAC,GAAG,UAAA,EAAY,YAAY,CAAA;AAAA,EACrC;AAAA,EAEA,MAAM,sBAAsB,UAAA,EAAmC;AAC7D,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,YACjDnB,SAAA,CAAKiB,QAAM,UAAU,CAAA;AAAA,YACrBjB,SAAA,CAAKiB,QAAM,UAAU,CAAA;AAAA,YACrBA;AAAA;AAAA,WACD,CAAA;AAGD,UAAA,IAAI,CAAC,SAAA,IAAA,CAAc,MAAMX,cAAK,SAAS,CAAA,EAAG,aAAY,EAAG;AACvD,YAAA,IAAA,CAAK,MAAA,CAAO,IAAA,CAAK,CAAA,uBAAA,EAA0BW,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,EAKA,aAAoC,EAAC,EACrC,iBAAyBjB,SAAA,CAAK,eAAA,EAAiB,IAAA,CAAK,SAAS,CAAA,EAC9C;AACf,IAAA,MAAM,UAAA,GAAaA,SAAA,CAAK,eAAA,EAAiB,IAAA,CAAK,gBAAgB,CAAA;AAE9D,IAAA,MAAM,cAAA,GAAiB,MAAM,IAAA,CAAK,qBAAA,CAAsB,iBAAiB,eAAe,CAAA;AACxF,IAAA,MAAM,sBAAA,GAAyC;AAAA,MAC7C,eAAA,EAAiB,CAAC,CAAC,cAAA,CAAe,SAAA;AAAA,MAClC,SAAA,EAAW,cAAA,CAAe,SAAA,IAAa,EAAC;AAAA,MACxC;AAAA,KACF;AAEA,IAAA,IAAI,kBAAA;AACJ,IAAA,IAAI;AACF,MAAA,MAAM,kBAAA,GAAqB,MAAM,IAAA,CAAK,qBAAA,CAAsB,UAAU,CAAA;AACtE,MAAA,kBAAA,GAAqB,MAAMI,+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,SAClB;AAAA,QACA,IAAA,CAAK;AAAA,OACP;AAAA,IACF,SAASgB,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,MAAM,qBAAA,uBAA4B,GAAA,EAAoB;AACtD,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,MAAMI,oCAAA,CAAmB,GAAG,CAAA;AAC7C,QAAA,MAAMf,IAAAA,GAAM,MAAMgB,gBAAA,CAAS,CAAA,EAAG,QAAQ,CAAA,aAAA,CAAe,CAAA;AACrD,QAAA,MAAM,oBAAoBhB,IAAAA,CAAI,IAAA;AAC9B,QAAA,MAAM,OAAA,GAAUA,KAAI,OAAA,IAAW,QAAA;AAO/B,QAAA,MAAM,UAAA,GAAaiB,iCAAe,GAAG,CAAA;AACrC,QAAA,MAAM,OAAA,GAAU,qBAAqB,UAAA,KAAe,iBAAA;AAEpD,QAAA,IAAI,OAAA,EAAS;AACX,UAAA,qBAAA,CAAsB,IAAI,GAAA,EAAK,CAAA,IAAA,EAAO,iBAAiB,CAAA,CAAA,EAAI,OAAO,CAAA,CAAE,CAAA;AAAA,QACtE,CAAA,MAAO;AACL,UAAA,qBAAA,CAAsB,GAAA,CAAI,KAAK,OAAO,CAAA;AAAA,QACxC;AAAA,MACF,CAAA,CAAA,MAAQ;AACN,QAAA,qBAAA,CAAsB,GAAA,CAAI,KAAK,QAAQ,CAAA;AAAA,MACzC;AAAA,IACF;AAEA,IAAA,IAAI;AACF,MAAA,MAAM,KAAK,gBAAA,CAAiB1B,SAAA,CAAK,iBAAiB,IAAA,CAAK,SAAS,GAAG,qBAAqB,CAAA;AAExF,MAAA,IAAA,CAAK,MAAA,CAAO,KAAK,6BAA6B,CAAA;AAE9C,MAAA,MAAM,YAAA,GAA6B,MAAM,IAAA,CAAK,iBAAA;AAAA,QAC5C,UAAA;AAAA,QACA,eAAA;AAAA,QACA,kBAAA;AAAA,QACA,UAAA;AAAA,QACA;AAAA,OACF;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,WAAW,sBAAA,CAAuB;AAAA;AACpC,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,MAAMC,kBAAA;AAAA,QACJD,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,CAAWU,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,SAASU,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,qBAAA,CAAsB,UAAU,CAAA;AACrE,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-7F6JKGX4.cjs","sourcesContent":["import { existsSync } from 'node:fs';\nimport { stat, writeFile } from 'node:fs/promises';\nimport { dirname, join, posix } from 'node:path';\nimport { MastraBundler } from '@mastra/core/bundler';\nimport { MastraError, ErrorDomain, ErrorCategory } from '@mastra/core/error';\nimport type { Config } from '@mastra/core/mastra';\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 { getPackageRootPath } from '../build/package-info';\nimport type { BundlerOptions } from '../build/types';\nimport { getPackageName, slash } from '../build/utils';\nimport { DepsService } from '../services/deps';\nimport { FileService } from '../services/fs';\nimport { getWorkspaceInformation } from './workspaceDependencies';\n\nexport type { BundlerOptions } from '../build/types';\n\nexport const IS_DEFAULT = Symbol('IS_DEFAULT');\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 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 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 ./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 getUserBundlerOptions(\n mastraEntryFile: string,\n outputDirectory: string,\n ): Promise<NonNullable<Config['bundler']>> {\n const defaultBundlerOptions: Config['bundler'] = {\n externals: [],\n sourcemap: false,\n transpilePackages: [],\n [IS_DEFAULT]: true,\n } as const;\n\n try {\n const bundlerOptions = await getBundlerOptions(mastraEntryFile, outputDirectory);\n\n return bundlerOptions ?? defaultBundlerOptions;\n } catch (error) {\n this.logger.debug('Failed to get bundler options, sourcemap will be disabled', { error });\n }\n\n return defaultBundlerOptions;\n }\n\n protected async analyze(entry: string | string[], mastraFile: string, outputDirectory: string) {\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 },\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, enableEsmShim, externals }: BundlerOptions,\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, externalsPreset: externals === true },\n );\n const isVirtual = serverFile.includes('\\n') || existsSync(serverFile);\n\n const toolsInputOptions = await this.listToolsInputOptions(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 getAllToolPaths(mastraDir: string, toolsPaths: (string | string[])[] = []): (string | string[])[] {\n // Normalize Windows paths to forward slashes for consistent handling\n const normalizedMastraDir = slash(mastraDir);\n\n // Prepare default tools paths with glob patterns\n const defaultToolsPath = posix.join(normalizedMastraDir, 'tools/**/*.{js,ts}');\n const defaultToolsIgnorePaths = [\n `!${posix.join(normalizedMastraDir, 'tools/**/*.{test,spec}.{js,ts}')}`,\n `!${posix.join(normalizedMastraDir, 'tools/**/__tests__/**')}`,\n ];\n\n // Combine default path with ignore patterns\n const defaultPaths = [defaultToolsPath, ...defaultToolsIgnorePaths];\n\n // If no tools paths provided, use only the default paths\n if (toolsPaths.length === 0) {\n return [defaultPaths];\n }\n\n // If tools paths are provided, add the default paths to ensure standard tools are always included\n return [...toolsPaths, defaultPaths];\n }\n\n async listToolsInputOptions(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 }: {\n projectRoot: string;\n outputDirectory: string;\n enableEsmShim?: boolean;\n },\n toolsPaths: (string | string[])[] = [],\n bundleLocation: string = join(outputDirectory, this.outputDir),\n ): Promise<void> {\n const analyzeDir = join(outputDirectory, this.analyzeOutputDir);\n\n const bundlerOptions = await this.getUserBundlerOptions(mastraEntryFile, outputDirectory);\n const internalBundlerOptions: BundlerOptions = {\n enableSourcemap: !!bundlerOptions.sourcemap,\n externals: bundlerOptions.externals ?? [],\n enableEsmShim,\n };\n\n let analyzedBundleInfo;\n try {\n const resolvedToolsPaths = await this.listToolsInputOptions(toolsPaths);\n analyzedBundleInfo = await analyzeBundle(\n [serverFile, ...Object.values(resolvedToolsPaths)],\n mastraEntryFile,\n {\n outputDir: analyzeDir,\n projectRoot,\n platform: 'node',\n bundlerOptions: internalBundlerOptions,\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 const dependenciesToInstall = new Map<string, string>();\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 const actualPackageName = pkg.name;\n const version = pkg.version || 'latest';\n\n // Check if this is an npm alias (import name differs from actual package name)\n // e.g., importing \"ai-v5\" which resolves to package \"ai\"\n // or importing \"@ai-sdk/openai-v5\" which resolves to \"@ai-sdk/openai\"\n // In this case, write npm alias syntax: \"ai-v5\": \"npm:ai@5.0.93\"\n // For scoped packages, compare the full package name (e.g., @scope/pkg)\n const importName = getPackageName(dep);\n const isAlias = actualPackageName && importName !== actualPackageName;\n\n if (isAlias) {\n dependenciesToInstall.set(dep, `npm:${actualPackageName}@${version}`);\n } else {\n dependenciesToInstall.set(dep, version);\n }\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\n const inputOptions: InputOptions = await this.getBundlerOptions(\n serverFile,\n mastraEntryFile,\n analyzedBundleInfo,\n toolsPaths,\n internalBundlerOptions,\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: internalBundlerOptions.enableSourcemap,\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.listToolsInputOptions(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"]}