@mastra/deployer 0.0.0-error-handler-fix-20251020202607 → 0.0.0-esbuild-bundle-worker-20260807182016

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 (319) hide show
  1. package/CHANGELOG.md +5691 -5
  2. package/LICENSE.md +15 -0
  3. package/dist/_types/@hono_node-server/dist/index.d.mts +101 -0
  4. package/dist/_types/@mastra_hono/dist/auth-middleware.d.ts +8 -0
  5. package/dist/_types/@mastra_hono/dist/browser-stream/index.d.ts +35 -0
  6. package/dist/_types/@mastra_hono/dist/index.d.ts +59 -0
  7. package/dist/analyze-7xxwhB5F.js +1405 -0
  8. package/dist/analyze-7xxwhB5F.js.map +1 -0
  9. package/dist/analyze-D100622N.cjs +1434 -0
  10. package/dist/analyze-D100622N.cjs.map +1 -0
  11. package/dist/arktype-aI7TBD0R-BWucI7hY.cjs +8 -0
  12. package/dist/arktype-aI7TBD0R-BWucI7hY.cjs.map +1 -0
  13. package/dist/arktype-aI7TBD0R-D06--n84.js +8 -0
  14. package/dist/arktype-aI7TBD0R-D06--n84.js.map +1 -0
  15. package/dist/build/analyze/analyzeEntry.d.ts +17 -11
  16. package/dist/build/analyze/analyzeEntry.d.ts.map +1 -1
  17. package/dist/build/analyze/bundleExternals.d.ts +8 -7
  18. package/dist/build/analyze/bundleExternals.d.ts.map +1 -1
  19. package/dist/build/analyze/constants.d.ts.map +1 -1
  20. package/dist/build/analyze.cjs +3 -12
  21. package/dist/build/analyze.d.ts +15 -7
  22. package/dist/build/analyze.d.ts.map +1 -1
  23. package/dist/build/analyze.js +2 -3
  24. package/dist/build/analyzeEntryProjectType.d.ts +12 -0
  25. package/dist/build/analyzeEntryProjectType.d.ts.map +1 -0
  26. package/dist/build/babel/check-config-export.d.ts +3 -2
  27. package/dist/build/babel/check-config-export.d.ts.map +1 -1
  28. package/dist/build/babel/detect-pino-transports.d.ts +13 -0
  29. package/dist/build/babel/detect-pino-transports.d.ts.map +1 -0
  30. package/dist/build/babel/remove-all-options-except.d.ts +3 -3
  31. package/dist/build/babel/remove-all-options-except.d.ts.map +1 -1
  32. package/dist/build/babel/remove-deployer.d.ts +6 -2
  33. package/dist/build/babel/remove-deployer.d.ts.map +1 -1
  34. package/dist/build/babel/remove-non-referenced-nodes.d.ts +2 -2
  35. package/dist/build/babel/remove-non-referenced-nodes.d.ts.map +1 -1
  36. package/dist/build/bundler.cjs +6 -16
  37. package/dist/build/bundler.d.ts +13 -3
  38. package/dist/build/bundler.d.ts.map +1 -1
  39. package/dist/build/bundler.js +2 -3
  40. package/dist/build/bundlerOptions.d.ts +1 -1
  41. package/dist/build/bundlerOptions.d.ts.map +1 -1
  42. package/dist/build/deployer.d.ts +1 -1
  43. package/dist/build/deployer.d.ts.map +1 -1
  44. package/dist/build/fs-routing/codegen.d.ts +42 -0
  45. package/dist/build/fs-routing/codegen.d.ts.map +1 -0
  46. package/dist/build/fs-routing/discover.d.ts +178 -0
  47. package/dist/build/fs-routing/discover.d.ts.map +1 -0
  48. package/dist/build/fs-routing/mirror.d.ts +16 -0
  49. package/dist/build/fs-routing/mirror.d.ts.map +1 -0
  50. package/dist/build/fs-routing/prepare.d.ts +67 -0
  51. package/dist/build/fs-routing/prepare.d.ts.map +1 -0
  52. package/dist/build/index.cjs +29 -52
  53. package/dist/build/index.d.ts +9 -1
  54. package/dist/build/index.d.ts.map +1 -1
  55. package/dist/build/index.js +7 -7
  56. package/dist/build/package-info.d.ts +14 -0
  57. package/dist/build/package-info.d.ts.map +1 -0
  58. package/dist/build/plugins/esm-shim.d.ts +14 -0
  59. package/dist/build/plugins/esm-shim.d.ts.map +1 -0
  60. package/dist/build/plugins/local-storage-detector.d.ts +50 -0
  61. package/dist/build/plugins/local-storage-detector.d.ts.map +1 -0
  62. package/dist/build/plugins/module-resolve-map.d.ts +3 -0
  63. package/dist/build/plugins/module-resolve-map.d.ts.map +1 -0
  64. package/dist/build/plugins/node-gyp-detector.d.ts +3 -0
  65. package/dist/build/plugins/node-gyp-detector.d.ts.map +1 -0
  66. package/dist/build/plugins/node-modules-extension-resolver.d.ts +7 -0
  67. package/dist/build/plugins/node-modules-extension-resolver.d.ts.map +1 -1
  68. package/dist/build/plugins/pino.d.ts.map +1 -1
  69. package/dist/build/plugins/protocol-external-resolver.d.ts +5 -0
  70. package/dist/build/plugins/protocol-external-resolver.d.ts.map +1 -0
  71. package/dist/build/plugins/remove-all-except.d.ts +10 -0
  72. package/dist/build/plugins/remove-all-except.d.ts.map +1 -0
  73. package/dist/build/plugins/remove-deployer.d.ts.map +1 -1
  74. package/dist/build/plugins/remove-unused-references.d.ts.map +1 -1
  75. package/dist/build/plugins/subpath-externals-resolver.d.ts +3 -0
  76. package/dist/build/plugins/subpath-externals-resolver.d.ts.map +1 -0
  77. package/dist/build/plugins/tsconfig-paths.d.ts +8 -0
  78. package/dist/build/plugins/tsconfig-paths.d.ts.map +1 -1
  79. package/dist/build/plugins/workspace-deps-watcher.d.ts +33 -0
  80. package/dist/build/plugins/workspace-deps-watcher.d.ts.map +1 -0
  81. package/dist/build/serverOptions.d.ts +1 -1
  82. package/dist/build/serverOptions.d.ts.map +1 -1
  83. package/dist/build/shared/extract-mastra-option.d.ts +5 -9
  84. package/dist/build/shared/extract-mastra-option.d.ts.map +1 -1
  85. package/dist/build/types.d.ts +35 -0
  86. package/dist/build/types.d.ts.map +1 -1
  87. package/dist/build/utils.d.ts +106 -2
  88. package/dist/build/utils.d.ts.map +1 -1
  89. package/dist/build/watcher.d.ts +5 -1
  90. package/dist/build/watcher.d.ts.map +1 -1
  91. package/dist/build-DEie1huB.js +1084 -0
  92. package/dist/build-DEie1huB.js.map +1 -0
  93. package/dist/build-YV8-9zZy.cjs +1158 -0
  94. package/dist/build-YV8-9zZy.cjs.map +1 -0
  95. package/dist/bundler/entries.d.ts +12 -0
  96. package/dist/bundler/entries.d.ts.map +1 -0
  97. package/dist/bundler/index.cjs +7 -12
  98. package/dist/bundler/index.d.ts +85 -12
  99. package/dist/bundler/index.d.ts.map +1 -1
  100. package/dist/bundler/index.js +2 -3
  101. package/dist/bundler/workspaceDependencies.d.ts +3 -5
  102. package/dist/bundler/workspaceDependencies.d.ts.map +1 -1
  103. package/dist/bundler-CD-PSWRS.cjs +591 -0
  104. package/dist/bundler-CD-PSWRS.cjs.map +1 -0
  105. package/dist/bundler-NdSt2FYG.js +558 -0
  106. package/dist/bundler-NdSt2FYG.js.map +1 -0
  107. package/dist/bundler-U9F2---r.js +704 -0
  108. package/dist/bundler-U9F2---r.js.map +1 -0
  109. package/dist/bundler-u9WOUtpl.cjs +791 -0
  110. package/dist/bundler-u9WOUtpl.cjs.map +1 -0
  111. package/dist/bundlerOptions-9DigsVhY.js +180 -0
  112. package/dist/bundlerOptions-9DigsVhY.js.map +1 -0
  113. package/dist/bundlerOptions-CYRir4LE.cjs +194 -0
  114. package/dist/bundlerOptions-CYRir4LE.cjs.map +1 -0
  115. package/dist/core-D0wEgdn3.cjs +790 -0
  116. package/dist/core-D0wEgdn3.cjs.map +1 -0
  117. package/dist/core-DF65PJXc.js +790 -0
  118. package/dist/core-DF65PJXc.js.map +1 -0
  119. package/dist/deploy/log.d.ts +2 -2
  120. package/dist/deploy/log.d.ts.map +1 -1
  121. package/dist/dist-BauTimif.js +532 -0
  122. package/dist/dist-BauTimif.js.map +1 -0
  123. package/dist/dist-Cv-mAEtr.cjs +532 -0
  124. package/dist/dist-Cv-mAEtr.cjs.map +1 -0
  125. package/dist/docs/SKILL.md +31 -0
  126. package/dist/docs/assets/SOURCE_MAP.json +6 -0
  127. package/dist/docs/references/docs-deployment-cloud-providers.md +23 -0
  128. package/dist/docs/references/docs-deployment-mastra-server.md +157 -0
  129. package/dist/docs/references/docs-deployment-monorepo.md +140 -0
  130. package/dist/docs/references/docs-deployment-overview.md +79 -0
  131. package/dist/docs/references/docs-deployment-web-framework.md +54 -0
  132. package/dist/docs/references/docs-deployment-workflow-runners.md +17 -0
  133. package/dist/docs/references/reference-deployer.md +102 -0
  134. package/dist/effect-QlVUlMFu-CWx-dnsz.cjs +14 -0
  135. package/dist/effect-QlVUlMFu-CWx-dnsz.cjs.map +1 -0
  136. package/dist/effect-QlVUlMFu-CovUzKO9.js +14 -0
  137. package/dist/effect-QlVUlMFu-CovUzKO9.js.map +1 -0
  138. package/dist/esm-B51vJPGv.js +4634 -0
  139. package/dist/esm-B51vJPGv.js.map +1 -0
  140. package/dist/esm-DZ1Siz1C.cjs +4634 -0
  141. package/dist/esm-DZ1Siz1C.cjs.map +1 -0
  142. package/dist/index-CLddUTqr-Btqs8t-3.js +140 -0
  143. package/dist/index-CLddUTqr-Btqs8t-3.js.map +1 -0
  144. package/dist/index-CLddUTqr-C8lMvBz9.cjs +145 -0
  145. package/dist/index-CLddUTqr-C8lMvBz9.cjs.map +1 -0
  146. package/dist/index.cjs +35 -59
  147. package/dist/index.cjs.map +1 -1
  148. package/dist/index.js +29 -41
  149. package/dist/index.js.map +1 -1
  150. package/dist/rolldown-runtime-emK7D4bc.cjs +35 -0
  151. package/dist/server/handlers/a2a.d.ts +28 -3
  152. package/dist/server/handlers/a2a.d.ts.map +1 -1
  153. package/dist/server/handlers/agent-learning.d.ts +3 -0
  154. package/dist/server/handlers/agent-learning.d.ts.map +1 -0
  155. package/dist/server/handlers/health.d.ts +5 -0
  156. package/dist/server/handlers/health.d.ts.map +1 -0
  157. package/dist/server/handlers/restart-active-runs.d.ts +3 -0
  158. package/dist/server/handlers/restart-active-runs.d.ts.map +1 -0
  159. package/dist/server/handlers/utils/query-parsers.d.ts +15 -0
  160. package/dist/server/handlers/utils/query-parsers.d.ts.map +1 -1
  161. package/dist/server/handlers/utils.d.ts +0 -7
  162. package/dist/server/handlers/utils.d.ts.map +1 -1
  163. package/dist/server/index.cjs +4375 -11856
  164. package/dist/server/index.cjs.map +1 -1
  165. package/dist/server/index.d.ts +4 -13
  166. package/dist/server/index.d.ts.map +1 -1
  167. package/dist/server/index.js +4370 -11830
  168. package/dist/server/index.js.map +1 -1
  169. package/dist/server/types.d.ts +2 -1
  170. package/dist/server/types.d.ts.map +1 -1
  171. package/dist/server/welcome.d.ts +1 -1
  172. package/dist/server/welcome.d.ts.map +1 -1
  173. package/dist/services/deps.d.ts +9 -1
  174. package/dist/services/deps.d.ts.map +1 -1
  175. package/dist/services/env.d.ts.map +1 -1
  176. package/dist/services/index.cjs +5 -20
  177. package/dist/services/index.js +2 -3
  178. package/dist/services-BRF1RRXB.js +430 -0
  179. package/dist/services-BRF1RRXB.js.map +1 -0
  180. package/dist/services-_ksvysL5.cjs +469 -0
  181. package/dist/services-_ksvysL5.cjs.map +1 -0
  182. package/dist/sury-CWZTCd75-Bbjr0vWq.cjs +14 -0
  183. package/dist/sury-CWZTCd75-Bbjr0vWq.cjs.map +1 -0
  184. package/dist/sury-CWZTCd75-C3LyvnOp.js +14 -0
  185. package/dist/sury-CWZTCd75-C3LyvnOp.js.map +1 -0
  186. package/dist/typebox-Dei93FPO-EcvSqxpn.js +8 -0
  187. package/dist/typebox-Dei93FPO-EcvSqxpn.js.map +1 -0
  188. package/dist/typebox-Dei93FPO-n37w7tHC.cjs +8 -0
  189. package/dist/typebox-Dei93FPO-n37w7tHC.cjs.map +1 -0
  190. package/dist/utils-FVOUvj-I.js +190 -0
  191. package/dist/utils-FVOUvj-I.js.map +1 -0
  192. package/dist/utils-O98BGdnP.cjs +267 -0
  193. package/dist/utils-O98BGdnP.cjs.map +1 -0
  194. package/dist/valibot--1zFm7rT-BN2-Xy7Y.cjs +14 -0
  195. package/dist/valibot--1zFm7rT-BN2-Xy7Y.cjs.map +1 -0
  196. package/dist/valibot--1zFm7rT-DLXBDt2x.js +14 -0
  197. package/dist/valibot--1zFm7rT-DLXBDt2x.js.map +1 -0
  198. package/dist/validator/custom-resolver.cjs +77 -45
  199. package/dist/validator/custom-resolver.cjs.map +1 -1
  200. package/dist/validator/custom-resolver.d.ts +15 -1
  201. package/dist/validator/custom-resolver.d.ts.map +1 -1
  202. package/dist/validator/custom-resolver.js +74 -42
  203. package/dist/validator/custom-resolver.js.map +1 -1
  204. package/dist/validator/loader.cjs +6 -7
  205. package/dist/validator/loader.cjs.map +1 -1
  206. package/dist/validator/loader.js +8 -4
  207. package/dist/validator/loader.js.map +1 -1
  208. package/dist/validator/validate.d.ts +16 -1
  209. package/dist/validator/validate.d.ts.map +1 -1
  210. package/dist/zod-Bwrt9trS-Cbwhu5Zl.cjs +23 -0
  211. package/dist/zod-Bwrt9trS-Cbwhu5Zl.cjs.map +1 -0
  212. package/dist/zod-Bwrt9trS-Si3ZkB_H.js +23 -0
  213. package/dist/zod-Bwrt9trS-Si3ZkB_H.js.map +1 -0
  214. package/package.json +50 -45
  215. package/dist/build/analyze.cjs.map +0 -1
  216. package/dist/build/analyze.js.map +0 -1
  217. package/dist/build/babel/get-deployer.d.ts +0 -3
  218. package/dist/build/babel/get-deployer.d.ts.map +0 -1
  219. package/dist/build/babel/remove-all-options-bundler.d.ts +0 -5
  220. package/dist/build/babel/remove-all-options-bundler.d.ts.map +0 -1
  221. package/dist/build/babel/remove-all-options-deployer.d.ts +0 -5
  222. package/dist/build/babel/remove-all-options-deployer.d.ts.map +0 -1
  223. package/dist/build/babel/remove-all-options-server.d.ts +0 -5
  224. package/dist/build/babel/remove-all-options-server.d.ts.map +0 -1
  225. package/dist/build/babel/remove-all-options-telemetry.d.ts +0 -5
  226. package/dist/build/babel/remove-all-options-telemetry.d.ts.map +0 -1
  227. package/dist/build/bundler.cjs.map +0 -1
  228. package/dist/build/bundler.js.map +0 -1
  229. package/dist/build/customInstrumentation.d.ts +0 -10
  230. package/dist/build/customInstrumentation.d.ts.map +0 -1
  231. package/dist/build/index.cjs.map +0 -1
  232. package/dist/build/index.js.map +0 -1
  233. package/dist/build/telemetry.d.ts +0 -8
  234. package/dist/build/telemetry.d.ts.map +0 -1
  235. package/dist/bundler/index.cjs.map +0 -1
  236. package/dist/bundler/index.js.map +0 -1
  237. package/dist/chunk-3JYRSECU.cjs +0 -430
  238. package/dist/chunk-3JYRSECU.cjs.map +0 -1
  239. package/dist/chunk-465ZVXAK.js +0 -409
  240. package/dist/chunk-465ZVXAK.js.map +0 -1
  241. package/dist/chunk-5QFG6SCM.js +0 -398
  242. package/dist/chunk-5QFG6SCM.js.map +0 -1
  243. package/dist/chunk-CEXVMFUD.js +0 -1265
  244. package/dist/chunk-CEXVMFUD.js.map +0 -1
  245. package/dist/chunk-CKUCDCGI.js +0 -168
  246. package/dist/chunk-CKUCDCGI.js.map +0 -1
  247. package/dist/chunk-HMMDNIEQ.cjs +0 -167
  248. package/dist/chunk-HMMDNIEQ.cjs.map +0 -1
  249. package/dist/chunk-LGC3GUMR.cjs +0 -437
  250. package/dist/chunk-LGC3GUMR.cjs.map +0 -1
  251. package/dist/chunk-MCDDO4WY.cjs +0 -1309
  252. package/dist/chunk-MCDDO4WY.cjs.map +0 -1
  253. package/dist/chunk-OYO2MJED.cjs +0 -195
  254. package/dist/chunk-OYO2MJED.cjs.map +0 -1
  255. package/dist/chunk-SBTEIZ3B.js +0 -26
  256. package/dist/chunk-SBTEIZ3B.js.map +0 -1
  257. package/dist/chunk-WAWEQ3DP.js +0 -156
  258. package/dist/chunk-WAWEQ3DP.js.map +0 -1
  259. package/dist/chunk-WIQEFIRX.cjs +0 -28
  260. package/dist/chunk-WIQEFIRX.cjs.map +0 -1
  261. package/dist/server/handlers/auth/defaults.d.ts +0 -3
  262. package/dist/server/handlers/auth/defaults.d.ts.map +0 -1
  263. package/dist/server/handlers/auth/helpers.d.ts +0 -11
  264. package/dist/server/handlers/auth/helpers.d.ts.map +0 -1
  265. package/dist/server/handlers/auth/index.d.ts +0 -11
  266. package/dist/server/handlers/auth/index.d.ts.map +0 -1
  267. package/dist/server/handlers/prompt.d.ts +0 -3
  268. package/dist/server/handlers/prompt.d.ts.map +0 -1
  269. package/dist/server/handlers/routes/agent-builder/handlers.d.ts +0 -17
  270. package/dist/server/handlers/routes/agent-builder/handlers.d.ts.map +0 -1
  271. package/dist/server/handlers/routes/agent-builder/router.d.ts +0 -4
  272. package/dist/server/handlers/routes/agent-builder/router.d.ts.map +0 -1
  273. package/dist/server/handlers/routes/agents/handlers.d.ts +0 -363
  274. package/dist/server/handlers/routes/agents/handlers.d.ts.map +0 -1
  275. package/dist/server/handlers/routes/agents/router.d.ts +0 -5
  276. package/dist/server/handlers/routes/agents/router.d.ts.map +0 -1
  277. package/dist/server/handlers/routes/agents/voice.d.ts +0 -18
  278. package/dist/server/handlers/routes/agents/voice.d.ts.map +0 -1
  279. package/dist/server/handlers/routes/logs/handlers.d.ts +0 -5
  280. package/dist/server/handlers/routes/logs/handlers.d.ts.map +0 -1
  281. package/dist/server/handlers/routes/logs/router.d.ts +0 -3
  282. package/dist/server/handlers/routes/logs/router.d.ts.map +0 -1
  283. package/dist/server/handlers/routes/mcp/handlers.d.ts +0 -139
  284. package/dist/server/handlers/routes/mcp/handlers.d.ts.map +0 -1
  285. package/dist/server/handlers/routes/mcp/router.d.ts +0 -4
  286. package/dist/server/handlers/routes/mcp/router.d.ts.map +0 -1
  287. package/dist/server/handlers/routes/memory/handlers.d.ts +0 -17
  288. package/dist/server/handlers/routes/memory/handlers.d.ts.map +0 -1
  289. package/dist/server/handlers/routes/memory/router.d.ts +0 -4
  290. package/dist/server/handlers/routes/memory/router.d.ts.map +0 -1
  291. package/dist/server/handlers/routes/observability/handlers.d.ts +0 -6
  292. package/dist/server/handlers/routes/observability/handlers.d.ts.map +0 -1
  293. package/dist/server/handlers/routes/observability/router.d.ts +0 -3
  294. package/dist/server/handlers/routes/observability/router.d.ts.map +0 -1
  295. package/dist/server/handlers/routes/scores/handlers.d.ts +0 -300
  296. package/dist/server/handlers/routes/scores/handlers.d.ts.map +0 -1
  297. package/dist/server/handlers/routes/scores/router.d.ts +0 -4
  298. package/dist/server/handlers/routes/scores/router.d.ts.map +0 -1
  299. package/dist/server/handlers/routes/telemetry/handlers.d.ts +0 -4
  300. package/dist/server/handlers/routes/telemetry/handlers.d.ts.map +0 -1
  301. package/dist/server/handlers/routes/telemetry/router.d.ts +0 -3
  302. package/dist/server/handlers/routes/telemetry/router.d.ts.map +0 -1
  303. package/dist/server/handlers/routes/tools/handlers.d.ts +0 -7
  304. package/dist/server/handlers/routes/tools/handlers.d.ts.map +0 -1
  305. package/dist/server/handlers/routes/tools/router.d.ts +0 -4
  306. package/dist/server/handlers/routes/tools/router.d.ts.map +0 -1
  307. package/dist/server/handlers/routes/vector/handlers.d.ts +0 -10
  308. package/dist/server/handlers/routes/vector/handlers.d.ts.map +0 -1
  309. package/dist/server/handlers/routes/vector/router.d.ts +0 -4
  310. package/dist/server/handlers/routes/vector/router.d.ts.map +0 -1
  311. package/dist/server/handlers/routes/workflows/handlers.d.ts +0 -20
  312. package/dist/server/handlers/routes/workflows/handlers.d.ts.map +0 -1
  313. package/dist/server/handlers/routes/workflows/legacyWorkflows.d.ts +0 -11
  314. package/dist/server/handlers/routes/workflows/legacyWorkflows.d.ts.map +0 -1
  315. package/dist/server/handlers/routes/workflows/router.d.ts +0 -4
  316. package/dist/server/handlers/routes/workflows/router.d.ts.map +0 -1
  317. package/dist/services/index.cjs.map +0 -1
  318. package/dist/services/index.js.map +0 -1
  319. package/dist/templates/instrumentation-template.js +0 -172
@@ -1,398 +0,0 @@
1
- import * as fs3 from 'fs';
2
- import fs3__default from 'fs';
3
- import fsPromises from 'fs/promises';
4
- import path, { dirname } from 'path';
5
- import { fileURLToPath } from 'url';
6
- import { MastraBase } from '@mastra/core/base';
7
- import fsExtra, { readJSON, writeJSON, ensureFile } from 'fs-extra/esm';
8
- import { spawn } from 'child_process';
9
- import { Transform } from 'stream';
10
-
11
- // src/services/deps.ts
12
- var createPinoStream = (logger) => {
13
- return new Transform({
14
- transform(chunk, _encoding, callback) {
15
- const line = chunk.toString().trim();
16
- if (line) {
17
- console.info(line);
18
- logger.info(line);
19
- }
20
- callback(null, chunk);
21
- }
22
- });
23
- };
24
- function createChildProcessLogger({ logger, root }) {
25
- const pinoStream = createPinoStream(logger);
26
- return async ({ cmd, args, env }) => {
27
- try {
28
- const subprocess = spawn(cmd, args, {
29
- cwd: root,
30
- shell: true,
31
- env
32
- });
33
- subprocess.stdout?.pipe(pinoStream);
34
- subprocess.stderr?.pipe(pinoStream);
35
- return new Promise((resolve, reject) => {
36
- subprocess.on("close", (code) => {
37
- pinoStream.end();
38
- if (code === 0) {
39
- resolve({ success: true });
40
- } else {
41
- reject(new Error(`Process exited with code ${code}`));
42
- }
43
- });
44
- subprocess.on("error", (error) => {
45
- pinoStream.end();
46
- logger.error("Process failed", { error });
47
- reject(error);
48
- });
49
- });
50
- } catch (error) {
51
- console.error(error);
52
- logger.error("Process failed", { error });
53
- pinoStream.end();
54
- return { success: false, error };
55
- }
56
- };
57
- }
58
-
59
- // src/services/deps.ts
60
- var Deps = class extends MastraBase {
61
- packageManager;
62
- rootDir;
63
- constructor(rootDir = process.cwd()) {
64
- super({ component: "DEPLOYER", name: "DEPS" });
65
- this.rootDir = rootDir;
66
- this.packageManager = this.getPackageManager();
67
- }
68
- findLockFile(dir) {
69
- const lockFiles = ["pnpm-lock.yaml", "package-lock.json", "yarn.lock", "bun.lock"];
70
- for (const file of lockFiles) {
71
- if (fs3__default.existsSync(path.join(dir, file))) {
72
- return file;
73
- }
74
- }
75
- const parentDir = path.resolve(dir, "..");
76
- if (parentDir !== dir) {
77
- return this.findLockFile(parentDir);
78
- }
79
- return null;
80
- }
81
- getPackageManager() {
82
- const lockFile = this.findLockFile(this.rootDir);
83
- switch (lockFile) {
84
- case "pnpm-lock.yaml":
85
- return "pnpm";
86
- case "package-lock.json":
87
- return "npm";
88
- case "yarn.lock":
89
- return "yarn";
90
- case "bun.lock":
91
- return "bun";
92
- default:
93
- return "npm";
94
- }
95
- }
96
- getWorkspaceDependencyPath({ pkgName, version }) {
97
- return `file:./workspace-module/${pkgName}-${version}.tgz`;
98
- }
99
- async pack({ dir, destination, sanitizedName }) {
100
- const cpLogger = createChildProcessLogger({
101
- logger: this.logger,
102
- root: dir
103
- });
104
- let packCmd = "pack";
105
- let destinationFlag = `--pack-destination ${destination}`;
106
- if (this.packageManager === "yarn") {
107
- destinationFlag = `--out ${destination}/${sanitizedName}-%v.tgz`;
108
- }
109
- if (this.packageManager === "bun") {
110
- packCmd = "pm pack";
111
- destinationFlag = `--destination ${destination}`;
112
- }
113
- return cpLogger({
114
- cmd: `${this.packageManager} ${packCmd} ${destinationFlag}`,
115
- args: [],
116
- env: {
117
- PATH: process.env.PATH
118
- }
119
- });
120
- }
121
- async writePnpmConfig(dir, options) {
122
- const packageJsonPath = path.join(dir, "package.json");
123
- const packageJson = await readJSON(packageJsonPath);
124
- packageJson.pnpm = {
125
- ...packageJson.pnpm,
126
- supportedArchitectures: {
127
- os: options.os || [],
128
- cpu: options.cpu || [],
129
- libc: options.libc || []
130
- }
131
- };
132
- await writeJSON(packageJsonPath, packageJson, { spaces: 2 });
133
- }
134
- async writeYarnConfig(dir, options) {
135
- const yarnrcPath = path.join(dir, ".yarnrc.yml");
136
- const config = {
137
- supportedArchitectures: {
138
- cpu: options.cpu || [],
139
- os: options.os || [],
140
- libc: options.libc || []
141
- }
142
- };
143
- await fsPromises.writeFile(
144
- yarnrcPath,
145
- `supportedArchitectures:
146
- ${Object.entries(config.supportedArchitectures).map(([key, value]) => ` ${key}: ${JSON.stringify(value)}`).join("\n")}`
147
- );
148
- }
149
- getNpmArgs(options) {
150
- const args = [];
151
- if (options.cpu) args.push(`--cpu=${options.cpu.join(",")}`);
152
- if (options.os) args.push(`--os=${options.os.join(",")}`);
153
- if (options.libc) args.push(`--libc=${options.libc.join(",")}`);
154
- return args;
155
- }
156
- /**
157
- * Depending on whether we want to install or add a package, this function returns the appropriate commands.
158
- * All package managers support both commands (e.g. npm install has an alias on "add")
159
- */
160
- getPackageManagerCommand(pm, type) {
161
- const cmd = type === "install" ? "install" : "add";
162
- switch (pm) {
163
- case "npm":
164
- return `${cmd} --audit=false --fund=false --loglevel=error --progress=false --update-notifier=false`;
165
- case "yarn":
166
- return `${cmd}`;
167
- case "pnpm":
168
- return cmd === "install" ? `${cmd} --ignore-workspace --loglevel=error` : `${cmd} --loglevel=error`;
169
- case "bun":
170
- return cmd;
171
- default:
172
- return cmd;
173
- }
174
- }
175
- async install({
176
- dir = this.rootDir,
177
- architecture
178
- } = {}) {
179
- const pm = this.packageManager;
180
- const installCommand = this.getPackageManagerCommand(pm, "install");
181
- let args = [];
182
- switch (pm) {
183
- case "pnpm":
184
- if (architecture) {
185
- await this.writePnpmConfig(dir, architecture);
186
- }
187
- break;
188
- case "yarn":
189
- await ensureFile(path.join(dir, "yarn.lock"));
190
- if (architecture) {
191
- await this.writeYarnConfig(dir, architecture);
192
- }
193
- break;
194
- case "npm":
195
- if (architecture) {
196
- args = this.getNpmArgs(architecture);
197
- }
198
- break;
199
- }
200
- const cpLogger = createChildProcessLogger({
201
- logger: this.logger,
202
- root: dir
203
- });
204
- return cpLogger({
205
- cmd: `${pm} ${installCommand}`,
206
- args,
207
- env: process.env
208
- });
209
- }
210
- async installPackages(packages) {
211
- const pm = this.packageManager;
212
- const installCommand = this.getPackageManagerCommand(pm, "add");
213
- const env = {
214
- PATH: process.env.PATH
215
- };
216
- if (process.env.npm_config_registry) {
217
- env.npm_config_registry = process.env.npm_config_registry;
218
- }
219
- const cpLogger = createChildProcessLogger({
220
- logger: this.logger,
221
- root: ""
222
- });
223
- return cpLogger({
224
- cmd: `${pm} ${installCommand}`,
225
- args: packages,
226
- env
227
- });
228
- }
229
- async checkDependencies(dependencies) {
230
- try {
231
- const packageJsonPath = path.join(this.rootDir, "package.json");
232
- try {
233
- await fsPromises.access(packageJsonPath);
234
- } catch {
235
- return "No package.json file found in the current directory";
236
- }
237
- const packageJson = await readJSON(packageJsonPath);
238
- for (const dependency of dependencies) {
239
- if (!packageJson.dependencies || !packageJson.dependencies[dependency]) {
240
- return `Please install ${dependency} before running this command (${this.packageManager} install ${dependency})`;
241
- }
242
- }
243
- return "ok";
244
- } catch (err) {
245
- console.error(err);
246
- return "Could not check dependencies";
247
- }
248
- }
249
- async getProjectName() {
250
- try {
251
- const packageJsonPath = path.join(this.rootDir, "package.json");
252
- const pkg = await readJSON(packageJsonPath);
253
- return pkg.name;
254
- } catch (err) {
255
- throw err;
256
- }
257
- }
258
- async getPackageVersion() {
259
- const __filename = fileURLToPath(import.meta.url);
260
- const __dirname = dirname(__filename);
261
- const pkgJsonPath = path.join(__dirname, "..", "..", "package.json");
262
- const content = await readJSON(pkgJsonPath);
263
- return content.version;
264
- }
265
- async addScriptsToPackageJson(scripts) {
266
- const packageJson = await readJSON("package.json");
267
- packageJson.scripts = {
268
- ...packageJson.scripts,
269
- ...scripts
270
- };
271
- await writeJSON("package.json", packageJson, { spaces: 2 });
272
- }
273
- };
274
- var DepsService = class extends Deps {
275
- };
276
- var EnvService = class {
277
- };
278
- var FileEnvService = class extends EnvService {
279
- filePath;
280
- constructor(filePath) {
281
- super();
282
- this.filePath = filePath;
283
- }
284
- readFile(filePath) {
285
- return new Promise((resolve, reject) => {
286
- fs3.readFile(filePath, "utf8", (err, data) => {
287
- if (err) reject(err);
288
- else resolve(data);
289
- });
290
- });
291
- }
292
- writeFile({ filePath, data }) {
293
- return new Promise((resolve, reject) => {
294
- fs3.writeFile(filePath, data, "utf8", (err) => {
295
- if (err) reject(err);
296
- else resolve();
297
- });
298
- });
299
- }
300
- async updateEnvData({
301
- key,
302
- value,
303
- filePath = this.filePath,
304
- data
305
- }) {
306
- const regex = new RegExp(`^${key}=.*$`, "m");
307
- if (data.match(regex)) {
308
- data = data.replace(regex, `${key}=${value}`);
309
- } else {
310
- data += `
311
- ${key}=${value}`;
312
- }
313
- await this.writeFile({ filePath, data });
314
- console.info(`${key} set to ${value} in ENV file.`);
315
- return data;
316
- }
317
- async getEnvValue(key) {
318
- try {
319
- const data = await this.readFile(this.filePath);
320
- const regex = new RegExp(`^${key}=(.*)$`, "m");
321
- const match = data.match(regex);
322
- return match?.[1] || null;
323
- } catch (err) {
324
- console.error(`Error reading ENV value: ${err}`);
325
- return null;
326
- }
327
- }
328
- async setEnvValue(key, value) {
329
- try {
330
- const data = await this.readFile(this.filePath);
331
- await this.updateEnvData({ key, value, data });
332
- } catch (err) {
333
- console.error(`Error writing ENV value: ${err}`);
334
- }
335
- }
336
- };
337
- var FileService = class {
338
- /**
339
- *
340
- * @param inputFile the file in the starter files directory to copy
341
- * @param outputFilePath the destination path
342
- * @param replaceIfExists flag to replace if it exists
343
- * @returns
344
- */
345
- async copyStarterFile(inputFile, outputFilePath, replaceIfExists) {
346
- const __filename = fileURLToPath(import.meta.url);
347
- const __dirname = path.dirname(__filename);
348
- const filePath = path.resolve(__dirname, "..", "starter-files", inputFile);
349
- const fileString = fs3__default.readFileSync(filePath, "utf8");
350
- if (fs3__default.existsSync(outputFilePath) && !replaceIfExists) {
351
- console.info(`${outputFilePath} already exists`);
352
- return false;
353
- }
354
- await fsExtra.outputFile(outputFilePath, fileString);
355
- return true;
356
- }
357
- async setupEnvFile({ dbUrl }) {
358
- const envPath = path.join(process.cwd(), ".env.development");
359
- await fsExtra.ensureFile(envPath);
360
- const fileEnvService = new FileEnvService(envPath);
361
- await fileEnvService.setEnvValue("DB_URL", dbUrl);
362
- }
363
- getFirstExistingFile(files) {
364
- for (const f of files) {
365
- if (fs3__default.existsSync(f)) {
366
- return f;
367
- }
368
- }
369
- throw new Error("Missing required file, checked the following paths: " + files.join(", "));
370
- }
371
- /**
372
- * Returns the first existing file from the provided array, or undefined if none exist
373
- * @param files array of file paths to check
374
- * @returns the first existing file path or undefined
375
- */
376
- getFirstExistingFileOrUndefined(files) {
377
- for (const f of files) {
378
- if (fs3__default.existsSync(f)) {
379
- return f;
380
- }
381
- }
382
- return void 0;
383
- }
384
- replaceValuesInFile({
385
- filePath,
386
- replacements
387
- }) {
388
- let fileContent = fs3__default.readFileSync(filePath, "utf8");
389
- replacements.forEach(({ search, replace }) => {
390
- fileContent = fileContent.replaceAll(search, replace);
391
- });
392
- fs3__default.writeFileSync(filePath, fileContent);
393
- }
394
- };
395
-
396
- export { Deps, DepsService, EnvService, FileService, createChildProcessLogger, createPinoStream };
397
- //# sourceMappingURL=chunk-5QFG6SCM.js.map
398
- //# sourceMappingURL=chunk-5QFG6SCM.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/deploy/log.ts","../src/services/deps.ts","../src/services/env.ts","../src/services/fs.ts"],"names":["fs","fs2","fileURLToPath","path"],"mappings":"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","file":"chunk-5QFG6SCM.js","sourcesContent":["import { spawn } from 'child_process';\nimport { Transform } from 'stream';\nimport type { IMastraLogger } from '@mastra/core/logger';\n\nexport const createPinoStream = (logger: IMastraLogger) => {\n return new Transform({\n transform(chunk, _encoding, callback) {\n // Convert Buffer/string to string and trim whitespace\n const line = chunk.toString().trim();\n\n if (line) {\n console.info(line);\n // Log each line through Pino\n logger.info(line);\n }\n\n // Pass through the original data\n callback(null, chunk);\n },\n });\n};\n\nexport function createChildProcessLogger({ logger, root }: { logger: IMastraLogger; root: string }) {\n const pinoStream = createPinoStream(logger);\n return async ({ cmd, args, env }: { cmd: string; args: string[]; env: Record<string, string> }) => {\n try {\n const subprocess = spawn(cmd, args, {\n cwd: root,\n shell: true,\n env,\n });\n\n // Pipe stdout and stderr through the Pino stream\n subprocess.stdout?.pipe(pinoStream);\n subprocess.stderr?.pipe(pinoStream);\n\n // Wait for the process to complete\n return new Promise((resolve, reject) => {\n subprocess.on('close', code => {\n pinoStream.end();\n if (code === 0) {\n resolve({ success: true });\n } else {\n reject(new Error(`Process exited with code ${code}`));\n }\n });\n\n subprocess.on('error', error => {\n pinoStream.end();\n logger.error('Process failed', { error });\n reject(error);\n });\n });\n } catch (error) {\n console.error(error);\n logger.error('Process failed', { error });\n pinoStream.end();\n return { success: false, error };\n }\n };\n}\n","import fs from 'fs';\nimport fsPromises from 'fs/promises';\nimport path, { dirname } from 'path';\nimport { fileURLToPath } from 'url';\nimport { MastraBase } from '@mastra/core/base';\nimport { readJSON, writeJSON, ensureFile } from 'fs-extra/esm';\nimport type { PackageJson } from 'type-fest';\n\nimport { createChildProcessLogger } from '../deploy/log.js';\n\ntype PackageManager = 'npm' | 'yarn' | 'pnpm' | 'bun';\n\ninterface ArchitectureOptions {\n os?: string[];\n cpu?: string[];\n libc?: string[];\n}\n\nexport class Deps extends MastraBase {\n private packageManager: PackageManager;\n private rootDir: string;\n\n constructor(rootDir = process.cwd()) {\n super({ component: 'DEPLOYER', name: 'DEPS' });\n\n this.rootDir = rootDir;\n this.packageManager = this.getPackageManager();\n }\n\n private findLockFile(dir: string): string | null {\n const lockFiles = ['pnpm-lock.yaml', 'package-lock.json', 'yarn.lock', 'bun.lock'];\n for (const file of lockFiles) {\n if (fs.existsSync(path.join(dir, file))) {\n return file;\n }\n }\n const parentDir = path.resolve(dir, '..');\n if (parentDir !== dir) {\n return this.findLockFile(parentDir);\n }\n return null;\n }\n\n private getPackageManager(): PackageManager {\n const lockFile = this.findLockFile(this.rootDir);\n switch (lockFile) {\n case 'pnpm-lock.yaml':\n return 'pnpm';\n case 'package-lock.json':\n return 'npm';\n case 'yarn.lock':\n return 'yarn';\n case 'bun.lock':\n return 'bun';\n default:\n return 'npm';\n }\n }\n\n public getWorkspaceDependencyPath({ pkgName, version }: { pkgName: string; version: string }) {\n return `file:./workspace-module/${pkgName}-${version}.tgz`;\n }\n\n public async pack({ dir, destination, sanitizedName }: { dir: string; destination: string; sanitizedName: string }) {\n const cpLogger = createChildProcessLogger({\n logger: this.logger,\n root: dir,\n });\n\n let packCmd = 'pack';\n let destinationFlag = `--pack-destination ${destination}`;\n if (this.packageManager === 'yarn') {\n // %s includes an '@' at the start of packages names with an '@'\n // so we need to use our sanitizedName instead.\n destinationFlag = `--out ${destination}/${sanitizedName}-%v.tgz`;\n }\n if (this.packageManager === 'bun') {\n // bun uses `pm pack` instead of `pack`\n packCmd = 'pm pack';\n // bun uses --destination instead of --pack-destination\n destinationFlag = `--destination ${destination}`;\n }\n\n return cpLogger({\n cmd: `${this.packageManager} ${packCmd} ${destinationFlag}`,\n args: [],\n env: {\n PATH: process.env.PATH!,\n },\n });\n }\n\n private async writePnpmConfig(dir: string, options: ArchitectureOptions) {\n const packageJsonPath = path.join(dir, 'package.json');\n const packageJson = await readJSON(packageJsonPath);\n\n packageJson.pnpm = {\n ...packageJson.pnpm,\n supportedArchitectures: {\n os: options.os || [],\n cpu: options.cpu || [],\n libc: options.libc || [],\n },\n };\n\n await writeJSON(packageJsonPath, packageJson, { spaces: 2 });\n }\n\n private async writeYarnConfig(dir: string, options: ArchitectureOptions) {\n const yarnrcPath = path.join(dir, '.yarnrc.yml');\n const config = {\n supportedArchitectures: {\n cpu: options.cpu || [],\n os: options.os || [],\n libc: options.libc || [],\n },\n };\n\n await fsPromises.writeFile(\n yarnrcPath,\n `supportedArchitectures:\\n${Object.entries(config.supportedArchitectures)\n .map(([key, value]) => ` ${key}: ${JSON.stringify(value)}`)\n .join('\\n')}`,\n );\n }\n\n private getNpmArgs(options: ArchitectureOptions): string[] {\n const args: string[] = [];\n if (options.cpu) args.push(`--cpu=${options.cpu.join(',')}`);\n if (options.os) args.push(`--os=${options.os.join(',')}`);\n if (options.libc) args.push(`--libc=${options.libc.join(',')}`);\n return args;\n }\n\n /**\n * Depending on whether we want to install or add a package, this function returns the appropriate commands.\n * All package managers support both commands (e.g. npm install has an alias on \"add\")\n */\n private getPackageManagerCommand(pm: PackageManager, type: 'install' | 'add'): string {\n const cmd = type === 'install' ? 'install' : 'add';\n\n switch (pm) {\n case 'npm':\n return `${cmd} --audit=false --fund=false --loglevel=error --progress=false --update-notifier=false`;\n case 'yarn':\n return `${cmd}`;\n case 'pnpm':\n return cmd === 'install' ? `${cmd} --ignore-workspace --loglevel=error` : `${cmd} --loglevel=error`;\n case 'bun':\n return cmd;\n default:\n return cmd;\n }\n }\n\n public async install({\n dir = this.rootDir,\n architecture,\n }: { dir?: string; architecture?: ArchitectureOptions } = {}) {\n const pm = this.packageManager;\n const installCommand = this.getPackageManagerCommand(pm, 'install');\n let args: string[] = [];\n\n switch (pm) {\n case 'pnpm':\n if (architecture) {\n await this.writePnpmConfig(dir, architecture);\n }\n break;\n case 'yarn':\n // similar to --ignore-workspace but for yarn\n await ensureFile(path.join(dir, 'yarn.lock'));\n if (architecture) {\n await this.writeYarnConfig(dir, architecture);\n }\n break;\n case 'npm':\n if (architecture) {\n args = this.getNpmArgs(architecture);\n }\n break;\n default:\n // Do nothing\n }\n\n const cpLogger = createChildProcessLogger({\n logger: this.logger,\n root: dir,\n });\n\n return cpLogger({\n cmd: `${pm} ${installCommand}`,\n args,\n env: process.env as Record<string, string>,\n });\n }\n\n public async installPackages(packages: string[]) {\n const pm = this.packageManager;\n const installCommand = this.getPackageManagerCommand(pm, 'add');\n\n const env: Record<string, string> = {\n PATH: process.env.PATH!,\n };\n\n if (process.env.npm_config_registry) {\n env.npm_config_registry = process.env.npm_config_registry;\n }\n\n const cpLogger = createChildProcessLogger({\n logger: this.logger,\n root: '',\n });\n\n return cpLogger({\n cmd: `${pm} ${installCommand}`,\n args: packages,\n env,\n });\n }\n\n public async checkDependencies(dependencies: string[]): Promise<string> {\n try {\n const packageJsonPath = path.join(this.rootDir, 'package.json');\n\n try {\n await fsPromises.access(packageJsonPath);\n } catch {\n return 'No package.json file found in the current directory';\n }\n\n const packageJson = await readJSON(packageJsonPath);\n for (const dependency of dependencies) {\n if (!packageJson.dependencies || !packageJson.dependencies[dependency]) {\n return `Please install ${dependency} before running this command (${this.packageManager} install ${dependency})`;\n }\n }\n\n return 'ok';\n } catch (err) {\n console.error(err);\n return 'Could not check dependencies';\n }\n }\n\n public async getProjectName() {\n try {\n const packageJsonPath = path.join(this.rootDir, 'package.json');\n const pkg = await readJSON(packageJsonPath);\n return pkg.name;\n } catch (err) {\n throw err;\n }\n }\n\n public async getPackageVersion() {\n const __filename = fileURLToPath(import.meta.url);\n const __dirname = dirname(__filename);\n const pkgJsonPath = path.join(__dirname, '..', '..', 'package.json');\n\n const content = (await readJSON(pkgJsonPath)) as PackageJson;\n return content.version;\n }\n\n public async addScriptsToPackageJson(scripts: Record<string, string>) {\n const packageJson = await readJSON('package.json');\n packageJson.scripts = {\n ...packageJson.scripts,\n ...scripts,\n };\n await writeJSON('package.json', packageJson, { spaces: 2 });\n }\n}\n\nexport class DepsService extends Deps {}\n","import * as fs from 'fs';\n\nexport abstract class EnvService {\n abstract getEnvValue(key: string): Promise<string | null>;\n abstract setEnvValue(key: string, value: string): Promise<void>;\n}\n\nexport class FileEnvService extends EnvService {\n private filePath: string;\n\n constructor(filePath: string) {\n super();\n this.filePath = filePath;\n }\n\n private readFile(filePath: string): Promise<string> {\n return new Promise((resolve, reject) => {\n fs.readFile(filePath, 'utf8', (err: NodeJS.ErrnoException | null, data: string) => {\n if (err) reject(err);\n else resolve(data);\n });\n });\n }\n\n private writeFile({ filePath, data }: { filePath: string; data: string }): Promise<void> {\n return new Promise((resolve, reject) => {\n fs.writeFile(filePath, data, 'utf8', (err: NodeJS.ErrnoException | null) => {\n if (err) reject(err);\n else resolve();\n });\n });\n }\n\n private async updateEnvData({\n key,\n value,\n filePath = this.filePath,\n data,\n }: {\n key: string;\n value: string;\n filePath?: string;\n data: string;\n }): Promise<string> {\n const regex = new RegExp(`^${key}=.*$`, 'm');\n if (data.match(regex)) {\n data = data.replace(regex, `${key}=${value}`);\n } else {\n data += `\\n${key}=${value}`;\n }\n await this.writeFile({ filePath, data });\n console.info(`${key} set to ${value} in ENV file.`);\n return data;\n }\n\n async getEnvValue(key: string): Promise<string | null> {\n try {\n const data = await this.readFile(this.filePath);\n const regex = new RegExp(`^${key}=(.*)$`, 'm');\n const match = data.match(regex);\n return match?.[1] || null;\n } catch (err) {\n console.error(`Error reading ENV value: ${err}`);\n return null;\n }\n }\n\n async setEnvValue(key: string, value: string): Promise<void> {\n try {\n const data = await this.readFile(this.filePath);\n await this.updateEnvData({ key, value, data });\n } catch (err) {\n console.error(`Error writing ENV value: ${err}`);\n }\n }\n}\n","import fs from 'fs';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\n\nimport fsExtra from 'fs-extra/esm';\n\nimport { FileEnvService } from './env.js';\n\nexport class FileService {\n /**\n *\n * @param inputFile the file in the starter files directory to copy\n * @param outputFilePath the destination path\n * @param replaceIfExists flag to replace if it exists\n * @returns\n */\n public async copyStarterFile(inputFile: string, outputFilePath: string, replaceIfExists?: boolean) {\n const __filename = fileURLToPath(import.meta.url);\n const __dirname = path.dirname(__filename);\n const filePath = path.resolve(__dirname, '..', 'starter-files', inputFile);\n const fileString = fs.readFileSync(filePath, 'utf8');\n\n if (fs.existsSync(outputFilePath) && !replaceIfExists) {\n console.info(`${outputFilePath} already exists`);\n return false;\n }\n\n await fsExtra.outputFile(outputFilePath, fileString);\n\n return true;\n }\n\n public async setupEnvFile({ dbUrl }: { dbUrl: string }) {\n const envPath = path.join(process.cwd(), '.env.development');\n\n await fsExtra.ensureFile(envPath);\n\n const fileEnvService = new FileEnvService(envPath);\n await fileEnvService.setEnvValue('DB_URL', dbUrl);\n }\n\n public getFirstExistingFile(files: string[]): string {\n for (const f of files) {\n if (fs.existsSync(f)) {\n return f;\n }\n }\n\n throw new Error('Missing required file, checked the following paths: ' + files.join(', '));\n }\n\n /**\n * Returns the first existing file from the provided array, or undefined if none exist\n * @param files array of file paths to check\n * @returns the first existing file path or undefined\n */\n public getFirstExistingFileOrUndefined(files: string[]): string | undefined {\n for (const f of files) {\n if (fs.existsSync(f)) {\n return f;\n }\n }\n\n return undefined;\n }\n\n public replaceValuesInFile({\n filePath,\n replacements,\n }: {\n filePath: string;\n replacements: { search: string; replace: string }[];\n }) {\n let fileContent = fs.readFileSync(filePath, 'utf8');\n replacements.forEach(({ search, replace }) => {\n fileContent = fileContent.replaceAll(search, replace);\n });\n\n fs.writeFileSync(filePath, fileContent);\n }\n}\n"]}