@walkeros/cli 0.4.0 → 0.4.2

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 (297) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +112 -42
  3. package/dist/__tests__/bundle/bundler-helpers.test.d.ts +2 -0
  4. package/dist/__tests__/bundle/bundler-helpers.test.d.ts.map +1 -0
  5. package/dist/__tests__/bundle/bundler-helpers.test.js +285 -0
  6. package/dist/__tests__/bundle/bundler-helpers.test.js.map +1 -0
  7. package/dist/__tests__/bundle/bundler.test.js +176 -166
  8. package/dist/__tests__/bundle/bundler.test.js.map +1 -1
  9. package/dist/__tests__/bundle/programmatic.test.js +77 -54
  10. package/dist/__tests__/bundle/programmatic.test.js.map +1 -1
  11. package/dist/__tests__/bundle/serializer.test.js +1 -1
  12. package/dist/__tests__/bundle/serializer.test.js.map +1 -1
  13. package/dist/__tests__/bundle/template-engine.test.js +1 -1
  14. package/dist/__tests__/bundle/template-engine.test.js.map +1 -1
  15. package/dist/__tests__/cli-e2e.test.js +1 -1
  16. package/dist/__tests__/cli-e2e.test.js.map +1 -1
  17. package/dist/__tests__/cli.test.js +60 -117
  18. package/dist/__tests__/cli.test.js.map +1 -1
  19. package/dist/__tests__/config-loader.test.d.ts +1 -1
  20. package/dist/__tests__/config-loader.test.js +234 -212
  21. package/dist/__tests__/config-loader.test.js.map +1 -1
  22. package/dist/__tests__/core/build-cache.test.d.ts +2 -0
  23. package/dist/__tests__/core/build-cache.test.d.ts.map +1 -0
  24. package/dist/__tests__/core/build-cache.test.js +55 -0
  25. package/dist/__tests__/core/build-cache.test.js.map +1 -0
  26. package/dist/__tests__/core/cache-utils.test.d.ts +2 -0
  27. package/dist/__tests__/core/cache-utils.test.d.ts.map +1 -0
  28. package/dist/__tests__/core/cache-utils.test.js +70 -0
  29. package/dist/__tests__/core/cache-utils.test.js.map +1 -0
  30. package/dist/__tests__/core/config.test.js +1 -1
  31. package/dist/__tests__/core/config.test.js.map +1 -1
  32. package/dist/__tests__/core/logger.test.js +1 -1
  33. package/dist/__tests__/core/logger.test.js.map +1 -1
  34. package/dist/__tests__/integration/bundle-run.integration.test.d.ts +8 -0
  35. package/dist/__tests__/integration/bundle-run.integration.test.d.ts.map +1 -0
  36. package/dist/__tests__/integration/bundle-run.integration.test.js +54 -0
  37. package/dist/__tests__/integration/bundle-run.integration.test.js.map +1 -0
  38. package/dist/__tests__/push/push.test.d.ts +7 -0
  39. package/dist/__tests__/push/push.test.d.ts.map +1 -0
  40. package/dist/__tests__/push/push.test.js +197 -0
  41. package/dist/__tests__/push/push.test.js.map +1 -0
  42. package/dist/__tests__/simulate/env-loader.test.d.ts +2 -0
  43. package/dist/__tests__/simulate/env-loader.test.d.ts.map +1 -0
  44. package/dist/__tests__/simulate/env-loader.test.js +47 -0
  45. package/dist/__tests__/simulate/env-loader.test.js.map +1 -0
  46. package/dist/__tests__/simulate/node-executor.test.d.ts +5 -0
  47. package/dist/__tests__/simulate/node-executor.test.d.ts.map +1 -0
  48. package/dist/__tests__/simulate/node-executor.test.js +25 -0
  49. package/dist/__tests__/simulate/node-executor.test.js.map +1 -0
  50. package/dist/__tests__/simulate/server-simulate.integration.test.d.ts +5 -0
  51. package/dist/__tests__/simulate/server-simulate.integration.test.d.ts.map +1 -0
  52. package/dist/__tests__/simulate/server-simulate.integration.test.js +59 -0
  53. package/dist/__tests__/simulate/server-simulate.integration.test.js.map +1 -0
  54. package/dist/__tests__/smoke/production.smoke.test.d.ts +8 -0
  55. package/dist/__tests__/smoke/production.smoke.test.d.ts.map +1 -0
  56. package/dist/__tests__/smoke/production.smoke.test.js +65 -0
  57. package/dist/__tests__/smoke/production.smoke.test.js.map +1 -0
  58. package/dist/commands/bundle/bundler.d.ts +2 -2
  59. package/dist/commands/bundle/bundler.d.ts.map +1 -1
  60. package/dist/commands/bundle/bundler.js +156 -54
  61. package/dist/commands/bundle/bundler.js.map +1 -1
  62. package/dist/commands/bundle/index.d.ts +17 -11
  63. package/dist/commands/bundle/index.d.ts.map +1 -1
  64. package/dist/commands/bundle/index.js +53 -53
  65. package/dist/commands/bundle/index.js.map +1 -1
  66. package/dist/commands/bundle/package-manager.d.ts +3 -2
  67. package/dist/commands/bundle/package-manager.d.ts.map +1 -1
  68. package/dist/commands/bundle/package-manager.js +34 -7
  69. package/dist/commands/bundle/package-manager.js.map +1 -1
  70. package/dist/commands/bundle/serializer.d.ts +1 -1
  71. package/dist/commands/bundle/serializer.d.ts.map +1 -1
  72. package/dist/commands/bundle/serializer.js +1 -1
  73. package/dist/commands/bundle/serializer.js.map +1 -1
  74. package/dist/commands/bundle/stats.d.ts +2 -2
  75. package/dist/commands/bundle/stats.d.ts.map +1 -1
  76. package/dist/commands/bundle/stats.js +1 -1
  77. package/dist/commands/bundle/stats.js.map +1 -1
  78. package/dist/commands/bundle/template-engine.d.ts +1 -1
  79. package/dist/commands/bundle/template-engine.d.ts.map +1 -1
  80. package/dist/commands/bundle/template-engine.js +2 -2
  81. package/dist/commands/bundle/template-engine.js.map +1 -1
  82. package/dist/commands/cache.d.ts +3 -0
  83. package/dist/commands/cache.d.ts.map +1 -0
  84. package/dist/commands/cache.js +44 -0
  85. package/dist/commands/cache.js.map +1 -0
  86. package/dist/commands/push/index.d.ts +7 -0
  87. package/dist/commands/push/index.d.ts.map +1 -0
  88. package/dist/commands/push/index.js +257 -0
  89. package/dist/commands/push/index.js.map +1 -0
  90. package/dist/commands/push/types.d.ts +21 -0
  91. package/dist/commands/push/types.d.ts.map +1 -0
  92. package/dist/commands/push/types.js +2 -0
  93. package/dist/commands/push/types.js.map +1 -0
  94. package/dist/commands/run/__tests__/run.integration.test.js +15 -16
  95. package/dist/commands/run/__tests__/run.integration.test.js.map +1 -1
  96. package/dist/commands/run/__tests__/validators.test.js +1 -1
  97. package/dist/commands/run/__tests__/validators.test.js.map +1 -1
  98. package/dist/commands/run/execution.d.ts +14 -0
  99. package/dist/commands/run/execution.d.ts.map +1 -0
  100. package/dist/commands/run/execution.js +37 -0
  101. package/dist/commands/run/execution.js.map +1 -0
  102. package/dist/commands/run/index.d.ts +1 -1
  103. package/dist/commands/run/index.d.ts.map +1 -1
  104. package/dist/commands/run/index.js +33 -107
  105. package/dist/commands/run/index.js.map +1 -1
  106. package/dist/commands/run/types.d.ts +1 -1
  107. package/dist/commands/run/types.d.ts.map +1 -1
  108. package/dist/commands/run/utils.d.ts +29 -0
  109. package/dist/commands/run/utils.d.ts.map +1 -0
  110. package/dist/commands/run/utils.js +52 -0
  111. package/dist/commands/run/utils.js.map +1 -0
  112. package/dist/commands/run/validators.d.ts +9 -5
  113. package/dist/commands/run/validators.d.ts.map +1 -1
  114. package/dist/commands/run/validators.js +15 -12
  115. package/dist/commands/run/validators.js.map +1 -1
  116. package/dist/commands/simulate/env-loader.d.ts +19 -0
  117. package/dist/commands/simulate/env-loader.d.ts.map +1 -0
  118. package/dist/commands/simulate/env-loader.js +46 -0
  119. package/dist/commands/simulate/env-loader.js.map +1 -0
  120. package/dist/commands/simulate/index.d.ts +4 -3
  121. package/dist/commands/simulate/index.d.ts.map +1 -1
  122. package/dist/commands/simulate/index.js +11 -19
  123. package/dist/commands/simulate/index.js.map +1 -1
  124. package/dist/commands/simulate/jsdom-executor.d.ts +13 -8
  125. package/dist/commands/simulate/jsdom-executor.d.ts.map +1 -1
  126. package/dist/commands/simulate/jsdom-executor.js +26 -49
  127. package/dist/commands/simulate/jsdom-executor.js.map +1 -1
  128. package/dist/commands/simulate/node-executor.d.ts +28 -0
  129. package/dist/commands/simulate/node-executor.d.ts.map +1 -0
  130. package/dist/commands/simulate/node-executor.js +94 -0
  131. package/dist/commands/simulate/node-executor.js.map +1 -0
  132. package/dist/commands/simulate/simulator.d.ts +1 -1
  133. package/dist/commands/simulate/simulator.d.ts.map +1 -1
  134. package/dist/commands/simulate/simulator.js +44 -36
  135. package/dist/commands/simulate/simulator.js.map +1 -1
  136. package/dist/commands/simulate/types.d.ts +2 -2
  137. package/dist/commands/simulate/types.d.ts.map +1 -1
  138. package/dist/config/build-defaults.d.ts +49 -0
  139. package/dist/config/build-defaults.d.ts.map +1 -0
  140. package/dist/config/build-defaults.js +72 -0
  141. package/dist/config/build-defaults.js.map +1 -0
  142. package/dist/config/index.d.ts +8 -9
  143. package/dist/config/index.d.ts.map +1 -1
  144. package/dist/config/index.js +7 -8
  145. package/dist/config/index.js.map +1 -1
  146. package/dist/config/loader.d.ts +35 -28
  147. package/dist/config/loader.d.ts.map +1 -1
  148. package/dist/config/loader.js +108 -89
  149. package/dist/config/loader.js.map +1 -1
  150. package/dist/config/utils.d.ts.map +1 -1
  151. package/dist/config/utils.js +3 -2
  152. package/dist/config/utils.js.map +1 -1
  153. package/dist/config/validators.d.ts +36 -7
  154. package/dist/config/validators.d.ts.map +1 -1
  155. package/dist/config/validators.js +61 -21
  156. package/dist/config/validators.js.map +1 -1
  157. package/dist/core/asset-resolver.d.ts +8 -15
  158. package/dist/core/asset-resolver.d.ts.map +1 -1
  159. package/dist/core/asset-resolver.js +30 -30
  160. package/dist/core/asset-resolver.js.map +1 -1
  161. package/dist/core/build-cache.d.ts +23 -0
  162. package/dist/core/build-cache.d.ts.map +1 -0
  163. package/dist/core/build-cache.js +43 -0
  164. package/dist/core/build-cache.js.map +1 -0
  165. package/dist/core/cache-utils.d.ts +27 -0
  166. package/dist/core/cache-utils.d.ts.map +1 -0
  167. package/dist/core/cache-utils.js +60 -0
  168. package/dist/core/cache-utils.js.map +1 -0
  169. package/dist/core/docker.d.ts +17 -1
  170. package/dist/core/docker.d.ts.map +1 -1
  171. package/dist/core/docker.js +30 -26
  172. package/dist/core/docker.js.map +1 -1
  173. package/dist/core/execution.d.ts +2 -2
  174. package/dist/core/execution.d.ts.map +1 -1
  175. package/dist/core/execution.js +1 -1
  176. package/dist/core/execution.js.map +1 -1
  177. package/dist/core/index.d.ts +9 -6
  178. package/dist/core/index.d.ts.map +1 -1
  179. package/dist/core/index.js +9 -6
  180. package/dist/core/index.js.map +1 -1
  181. package/dist/core/local-packages.d.ts +19 -0
  182. package/dist/core/local-packages.d.ts.map +1 -0
  183. package/dist/core/local-packages.js +60 -0
  184. package/dist/core/local-packages.js.map +1 -0
  185. package/dist/core/logger.d.ts +11 -0
  186. package/dist/core/logger.d.ts.map +1 -1
  187. package/dist/core/logger.js +14 -0
  188. package/dist/core/logger.js.map +1 -1
  189. package/dist/core/temp-manager.d.ts +51 -0
  190. package/dist/core/temp-manager.d.ts.map +1 -0
  191. package/dist/core/temp-manager.js +73 -0
  192. package/dist/core/temp-manager.js.map +1 -0
  193. package/dist/core/utils.d.ts +10 -0
  194. package/dist/core/utils.d.ts.map +1 -0
  195. package/dist/core/utils.js +12 -0
  196. package/dist/core/utils.js.map +1 -0
  197. package/dist/examples/.npm-cache/content-v2/sha512/0d/2d/7581c288670eaf8538ddd9df145b78756ce3be0791c6e0b9cd33429b3bae894525b9bda287a3cedffbcdd2c7b3107bafc03f2b0367eea489eee1cc042abb +1 -0
  198. package/dist/examples/.npm-cache/content-v2/sha512/12/20/bc4f5acca143809f7e07da1fdafb38137d93243de4d5b403e6e10b92d0d3a6e51eab24fe9dbc9d3ed1cd72e8f7a406085e99c422bb2c7d1166cf9f1f564e +0 -0
  199. package/dist/examples/.npm-cache/content-v2/sha512/22/ee/fb2695b01871c1d36946bdcfb49f1b520a57200d0a0b221b1e7d5f047ab38a8b2ab0e5f0e25a00acde1f3f2f9d24430a18f1092d438bc1a9e9891cc45f75 +0 -0
  200. package/dist/examples/.npm-cache/content-v2/sha512/24/89/da1ce6a61bca6de7e132f241a675c01c83738bf6b78af25b5cce01d3030361332b3fe938571e2b721f1555da9ddf930fdcf8c02f0471556071590e68cc09 +0 -0
  201. package/dist/examples/.npm-cache/content-v2/sha512/47/fd/c6be997da99228c3e279b95d4a46d6913947078a178f54ac71795a159f3513b1483232f4c2d0a1f403178bf9f96bb19615de32a9e2133e949880c6bc15e2 +0 -0
  202. package/dist/examples/.npm-cache/content-v2/sha512/4b/1c/c1cb7f8b32102071a89fef97158daa32080ebaedfbbd596880d2213d84e305abc76d2a95a412ded55c1c3d487adcb1ceff87fc2c85d7e2856ebd9d3f16f3 +0 -0
  203. package/dist/examples/.npm-cache/content-v2/sha512/6e/53/ff864769671f44f39d8a3bf904cd646535b745cc4824a8bb3189193b474678049f43b5178ba15cad7f0289046105e70f1565afc84e907120b35a466690fd +1 -0
  204. package/dist/examples/.npm-cache/content-v2/sha512/70/4c/4c8837d446965c5551b4ea527e95fa011744fb727581d82cf35bb5599ea0b57d18baa490f7af93ef9a16e8e45e5c0802737da20575f4056a4a5c9a3cd288 +0 -0
  205. package/dist/examples/.npm-cache/content-v2/sha512/96/ad/05de3bbb12d7de8ea353f962bdaea7d2eb44f707f2973462a6635daf537c67b46cca7764fed7d464fe62152c3f783a07aba1ceb35e09ad446bff05a4b466 +1 -0
  206. package/dist/examples/.npm-cache/content-v2/sha512/b5/20/52dde94e6cef7170f6089c64a4843e57be18be450d956f4e455905aed047ae6a368451c93035e6ac3ee59576b600f03f815afba0836b3a16e10a9aaca4ba +1 -0
  207. package/dist/examples/.npm-cache/content-v2/sha512/c7/a9/d166a1c39f97df312c59261319ba1cf9aac178bda0a0cb697d5ddd78bd8dd38ef1bf40017bcc8633c2049896c2d70696d9bff9280851f270792ff38bb3a0 +1 -0
  208. package/dist/examples/.npm-cache/content-v2/sha512/e0/d0/8c14083b633e6adbd3c6a93da5fc0f6bbd456c5512ef276920bedd8d85d551052adff992de977aff326616a211aaa2d6ddcc801149e9b7f914f566359b6a +1 -0
  209. package/dist/examples/.npm-cache/content-v2/sha512/e7/c5/06ad3fd79ac4f1031fe0b16ea5e54e232ca397bbcd7592c679021cbfb027276099f8c848f3f7a7691f0102ad53aa64f9141e61d729b037a678bd60440d17 +1 -0
  210. package/dist/examples/.npm-cache/content-v2/sha512/f3/28/d5d32329604ed7d471a4949105daa2cc98858cf24f45b0b97c41d0eb0d5a9fe7bf1f69c792161cc6693e4fc1b52e886ac41875ebfb8fe47fafe417ca3e6e +0 -0
  211. package/dist/examples/.npm-cache/index-v5/04/5a/2b5d7a7c407d85d746baa0f5c9388a333e35a717a8a0a81943daa6cb1364 +3 -0
  212. package/dist/examples/.npm-cache/index-v5/12/9a/eba560cbace295d8ee04cf283015377bd77b379e70968fb6bc407c7fc410 +15 -0
  213. package/dist/examples/.npm-cache/index-v5/2f/a2/7b047564b0ee21ac835ec609e89153dd6549be554d098584d5bfd19fe043 +15 -0
  214. package/dist/examples/.npm-cache/index-v5/32/8e/322d58dd8d1e000be248ada51385bf96288e56039de9feec1a4c6a467653 +3 -0
  215. package/dist/examples/.npm-cache/index-v5/57/93/d1d7cd1402e3e26468db03f2870822bb2c9018a506cdfb3b405f38cd3e1c +3 -0
  216. package/dist/examples/.npm-cache/index-v5/5d/f8/0a1f4fa7149e4ff33e09eb6aea41ac8d1730c868a5d3ace91f762698acff +3 -0
  217. package/dist/examples/.npm-cache/index-v5/69/a4/a92c72d838259b051cdf8e0acfb2bc680b6d4cfc642314a7836c3f7b2c50 +15 -0
  218. package/dist/examples/.npm-cache/index-v5/71/31/6da3423bb203f3de5eb16c942431073f89be2cfcb40058ec91dcb5ce0abc +15 -0
  219. package/dist/examples/.npm-cache/index-v5/7b/94/72b6bffa050d9ef52a558dd220663695bc606f756be0dfa196ef4f3913ba +3 -0
  220. package/dist/examples/.npm-cache/index-v5/85/9e/99e97fdd562517e56285337db91d1a8f2f416b8d631cf4d7d754fa671299 +15 -0
  221. package/dist/examples/.npm-cache/index-v5/92/4c/9416ada81a9b3c679539fd1ab53f8de3d41ff268f35eba7a194389a85b06 +3 -0
  222. package/dist/examples/.npm-cache/index-v5/c1/5a/13df76b218deed8a6ef12961116af5183db98c53fad1b922fd9edc075247 +3 -0
  223. package/dist/examples/.npm-cache/index-v5/cb/11/253c55410a8ab7c4a9ea9d6e1bf8ef1450a581da64c478074dfd82c8bff6 +3 -0
  224. package/dist/examples/.npm-cache/index-v5/d5/ae/b57fad3a62b5ba2dbdf24b042a9e7b70820f3db00e5a630f02e1fea020dc +3 -0
  225. package/dist/examples/.npm-cache/index-v5/d6/32/2f620f83c7d14451de98de8298c2408e05a16cc0829bd16c891ac19d7a67 +3 -0
  226. package/dist/examples/.npm-cache/index-v5/dd/b5/01dc7a3cd8b6a03a69aee9af500d51ae19cb0aa12631a4aafd152148b8e5 +15 -0
  227. package/dist/examples/.npm-cache/index-v5/e0/cf/6b862c15d74630d3871cd813d305210ab741311deb10baf8813014e0bc30 +3 -0
  228. package/dist/examples/.npm-cache/index-v5/e2/be/e880ccd35950a814d3c1dded34d3938ac61b15a195321dc51357f801aad4 +15 -0
  229. package/dist/examples/.npm-cache/index-v5/e5/1f/f4affe0b392cd03288f23cc03abcb274ff11a2c8f8965299de681914abb2 +3 -0
  230. package/dist/examples/.npm-cache/index-v5/f3/5b/9ebe450958ff0d7cc44ab0a00080cb8a3ff1389744b5eab5f97b68a6a6af +3 -0
  231. package/dist/examples/.npm-cache/index-v5/fb/c1/0de405e902866d53e7c30cf36a97dc2578838622b261816f44dc377c9a80 +3 -0
  232. package/dist/examples/README.md +343 -0
  233. package/dist/examples/event.json +53 -0
  234. package/dist/examples/flow-order-complete.json +68 -0
  235. package/dist/examples/flow-simple.json +32 -0
  236. package/dist/examples/flow.json +82 -0
  237. package/dist/examples/server-collect.json +60 -0
  238. package/dist/examples/server-collect.mjs +13540 -0
  239. package/dist/examples/test.html +43 -0
  240. package/dist/examples/web-serve.js +25503 -0
  241. package/dist/examples/web-serve.json +74 -0
  242. package/dist/index.d.ts +98 -200
  243. package/dist/index.d.ts.map +1 -1
  244. package/dist/index.js +2783 -120
  245. package/dist/index.js.map +1 -1
  246. package/dist/schemas/index.d.ts +9 -0
  247. package/dist/schemas/index.d.ts.map +1 -0
  248. package/dist/schemas/index.js +9 -0
  249. package/dist/schemas/index.js.map +1 -0
  250. package/dist/schemas/primitives.d.ts +37 -0
  251. package/dist/schemas/primitives.d.ts.map +1 -0
  252. package/dist/schemas/primitives.js +43 -0
  253. package/dist/schemas/primitives.js.map +1 -0
  254. package/dist/schemas/run.d.ts +23 -0
  255. package/dist/schemas/run.d.ts.map +1 -0
  256. package/dist/schemas/run.js +20 -0
  257. package/dist/schemas/run.js.map +1 -0
  258. package/dist/templates/server.hbs +29 -0
  259. package/dist/templates/web.hbs +45 -0
  260. package/dist/types/bundle.d.ts +68 -190
  261. package/dist/types/bundle.d.ts.map +1 -1
  262. package/dist/types/bundle.js +2 -2
  263. package/dist/types/index.d.ts +2 -2
  264. package/dist/types/index.d.ts.map +1 -1
  265. package/dist/types/index.js +2 -2
  266. package/dist/types/index.js.map +1 -1
  267. package/dist/walker.js +1 -0
  268. package/examples/README.md +42 -29
  269. package/examples/event.json +1 -1
  270. package/examples/flow-order-complete.json +57 -57
  271. package/examples/flow-simple.json +25 -25
  272. package/examples/flow.json +69 -69
  273. package/examples/server-collect.json +51 -44
  274. package/examples/server-collect.mjs +1360 -1190
  275. package/examples/web-serve.js +25469 -11
  276. package/examples/web-serve.json +62 -63
  277. package/package.json +3 -2
  278. package/dist/__tests__/bundle/bundler-integration.test.d.ts +0 -2
  279. package/dist/__tests__/bundle/bundler-integration.test.d.ts.map +0 -1
  280. package/dist/__tests__/bundle/bundler-integration.test.js +0 -106
  281. package/dist/__tests__/bundle/bundler-integration.test.js.map +0 -1
  282. package/dist/__tests__/simulate/programmatic.test.d.ts +0 -2
  283. package/dist/__tests__/simulate/programmatic.test.d.ts.map +0 -1
  284. package/dist/__tests__/simulate/programmatic.test.js +0 -51
  285. package/dist/__tests__/simulate/programmatic.test.js.map +0 -1
  286. package/dist/__tests__/simulate/simulator.test.d.ts +0 -2
  287. package/dist/__tests__/simulate/simulator.test.d.ts.map +0 -1
  288. package/dist/__tests__/simulate/simulator.test.js +0 -29
  289. package/dist/__tests__/simulate/simulator.test.js.map +0 -1
  290. package/dist/config/defaults.d.ts +0 -33
  291. package/dist/config/defaults.d.ts.map +0 -1
  292. package/dist/config/defaults.js +0 -69
  293. package/dist/config/defaults.js.map +0 -1
  294. package/dist/config/parser.d.ts +0 -64
  295. package/dist/config/parser.d.ts.map +0 -1
  296. package/dist/config/parser.js +0 -151
  297. package/dist/config/parser.js.map +0 -1
@@ -2,22 +2,51 @@
2
2
  * Configuration Type Guards and Validators
3
3
  *
4
4
  * Type checking utilities for configuration validation.
5
+ * Uses Zod schemas from @walkeros/core for Flow.Setup validation.
5
6
  */
6
- import type { Setup, EnvironmentConfig } from '../types/bundle';
7
+ import type { Flow } from '@walkeros/core';
7
8
  /**
8
9
  * Type guard: Check if value is a plain object.
9
10
  */
10
11
  export declare function isObject(value: unknown): value is Record<string, unknown>;
11
12
  /**
12
- * Type guard: Validate platform value.
13
+ * Detect platform from flow config.
14
+ *
15
+ * Platform is determined by the presence of `web` or `server` key.
16
+ */
17
+ export declare function detectPlatform(flowConfig: Record<string, unknown>): 'web' | 'server' | undefined;
18
+ /**
19
+ * Type guard: Check if config is a valid Flow.Setup structure.
20
+ *
21
+ * @remarks
22
+ * Uses Zod validation from @walkeros/core.
23
+ * Returns false instead of throwing on invalid input.
24
+ *
25
+ * @example
26
+ * ```typescript
27
+ * if (isFlowSetup(config)) {
28
+ * const flowConfig = getFlowConfig(config, 'production');
29
+ * }
30
+ * ```
13
31
  */
14
- export declare function validatePlatform(platform: unknown): platform is 'web' | 'server';
32
+ export declare function isFlowSetup(data: unknown): data is Flow.Setup;
15
33
  /**
16
- * Type guard: Check if config is multi-environment format.
34
+ * Validate Flow.Setup and throw descriptive error if invalid.
35
+ *
36
+ * @remarks
37
+ * Uses Zod validation from @walkeros/core.
38
+ * Provides detailed error messages from Zod.
39
+ *
40
+ * @param data - Raw configuration data
41
+ * @returns Validated Flow.Setup
42
+ * @throws Error with descriptive message if validation fails
17
43
  */
18
- export declare function isMultiEnvConfig(data: unknown): data is Setup;
44
+ export declare function validateFlowSetup(data: unknown): Flow.Setup;
19
45
  /**
20
- * Type guard: Check if config is single-environment format.
46
+ * Get available flow names from a Flow.Setup.
47
+ *
48
+ * @param setup - Flow.Setup configuration
49
+ * @returns Array of flow names
21
50
  */
22
- export declare function isSingleEnvConfig(data: unknown): data is EnvironmentConfig;
51
+ export declare function getAvailableFlows(setup: Flow.Setup): string[];
23
52
  //# sourceMappingURL=validators.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../src/config/validators.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEhE;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAOzE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,OAAO,GAChB,QAAQ,IAAI,KAAK,GAAG,QAAQ,CAE9B;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,KAAK,CAQ7D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,iBAAiB,CAU1E"}
1
+ {"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../src/config/validators.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAK3C;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAOzE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,KAAK,GAAG,QAAQ,GAAG,SAAS,CAQ9B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,IAAI,CAAC,KAAK,CAG7D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAkB3D;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,MAAM,EAAE,CAE7D"}
@@ -2,7 +2,10 @@
2
2
  * Configuration Type Guards and Validators
3
3
  *
4
4
  * Type checking utilities for configuration validation.
5
+ * Uses Zod schemas from @walkeros/core for Flow.Setup validation.
5
6
  */
7
+ import { schemas } from '@walkeros/core/dev';
8
+ const { safeParseSetup } = schemas;
6
9
  /**
7
10
  * Type guard: Check if value is a plain object.
8
11
  */
@@ -13,33 +16,70 @@ export function isObject(value) {
13
16
  Object.prototype.toString.call(value) === '[object Object]');
14
17
  }
15
18
  /**
16
- * Type guard: Validate platform value.
19
+ * Detect platform from flow config.
20
+ *
21
+ * Platform is determined by the presence of `web` or `server` key.
17
22
  */
18
- export function validatePlatform(platform) {
19
- return platform === 'web' || platform === 'server';
23
+ export function detectPlatform(flowConfig) {
24
+ if ('web' in flowConfig && flowConfig.web !== undefined) {
25
+ return 'web';
26
+ }
27
+ if ('server' in flowConfig && flowConfig.server !== undefined) {
28
+ return 'server';
29
+ }
30
+ return undefined;
20
31
  }
21
32
  /**
22
- * Type guard: Check if config is multi-environment format.
33
+ * Type guard: Check if config is a valid Flow.Setup structure.
34
+ *
35
+ * @remarks
36
+ * Uses Zod validation from @walkeros/core.
37
+ * Returns false instead of throwing on invalid input.
38
+ *
39
+ * @example
40
+ * ```typescript
41
+ * if (isFlowSetup(config)) {
42
+ * const flowConfig = getFlowConfig(config, 'production');
43
+ * }
44
+ * ```
23
45
  */
24
- export function isMultiEnvConfig(data) {
25
- return (isObject(data) &&
26
- 'version' in data &&
27
- data.version === 1 &&
28
- 'environments' in data &&
29
- isObject(data.environments));
46
+ export function isFlowSetup(data) {
47
+ const result = safeParseSetup(data);
48
+ return result.success;
30
49
  }
31
50
  /**
32
- * Type guard: Check if config is single-environment format.
51
+ * Validate Flow.Setup and throw descriptive error if invalid.
52
+ *
53
+ * @remarks
54
+ * Uses Zod validation from @walkeros/core.
55
+ * Provides detailed error messages from Zod.
56
+ *
57
+ * @param data - Raw configuration data
58
+ * @returns Validated Flow.Setup
59
+ * @throws Error with descriptive message if validation fails
60
+ */
61
+ export function validateFlowSetup(data) {
62
+ const result = safeParseSetup(data);
63
+ if (!result.success) {
64
+ // Format Zod errors for CLI display
65
+ const errors = result.error.issues
66
+ .map((issue) => {
67
+ const path = issue.path.length > 0 ? issue.path.map(String).join('.') : 'root';
68
+ return ` - ${path}: ${issue.message}`;
69
+ })
70
+ .join('\n');
71
+ throw new Error(`Invalid configuration:\n${errors}`);
72
+ }
73
+ // Cast to Flow.Setup since Zod's inferred type is compatible but not identical
74
+ return result.data;
75
+ }
76
+ /**
77
+ * Get available flow names from a Flow.Setup.
78
+ *
79
+ * @param setup - Flow.Setup configuration
80
+ * @returns Array of flow names
33
81
  */
34
- export function isSingleEnvConfig(data) {
35
- return (isObject(data) &&
36
- 'flow' in data &&
37
- 'build' in data &&
38
- isObject(data.flow) &&
39
- isObject(data.build) &&
40
- 'platform' in data.flow &&
41
- validatePlatform(data.flow.platform));
82
+ export function getAvailableFlows(setup) {
83
+ return Object.keys(setup.flows);
42
84
  }
43
- // Legacy format support removed in v0.3.0
44
- // See docs/MIGRATION.md for migration guide
45
85
  //# sourceMappingURL=validators.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validators.js","sourceRoot":"","sources":["../../src/config/validators.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACrB,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,iBAAiB,CAC5D,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,QAAiB;IAEjB,OAAO,QAAQ,KAAK,KAAK,IAAI,QAAQ,KAAK,QAAQ,CAAC;AACrD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAa;IAC5C,OAAO,CACL,QAAQ,CAAC,IAAI,CAAC;QACd,SAAS,IAAI,IAAI;QACjB,IAAI,CAAC,OAAO,KAAK,CAAC;QAClB,cAAc,IAAI,IAAI;QACtB,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAC5B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAa;IAC7C,OAAO,CACL,QAAQ,CAAC,IAAI,CAAC;QACd,MAAM,IAAI,IAAI;QACd,OAAO,IAAI,IAAI;QACf,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QACnB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;QACpB,UAAU,IAAI,IAAI,CAAC,IAAI;QACvB,gBAAgB,CAAE,IAAI,CAAC,IAA8B,CAAC,QAAQ,CAAC,CAChE,CAAC;AACJ,CAAC;AAED,0CAA0C;AAC1C,4CAA4C"}
1
+ {"version":3,"file":"validators.js","sourceRoot":"","sources":["../../src/config/validators.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;AAEnC;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACrB,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,iBAAiB,CAC5D,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAC5B,UAAmC;IAEnC,IAAI,KAAK,IAAI,UAAU,IAAI,UAAU,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QACxD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,QAAQ,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC9D,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,WAAW,CAAC,IAAa;IACvC,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACpC,OAAO,MAAM,CAAC,OAAO,CAAC;AACxB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAa;IAC7C,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IAEpC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,oCAAoC;QACpC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM;aAC/B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACb,MAAM,IAAI,GACR,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YACpE,OAAO,OAAO,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;QACzC,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,MAAM,IAAI,KAAK,CAAC,2BAA2B,MAAM,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,+EAA+E;IAC/E,OAAO,MAAM,CAAC,IAAkB,CAAC;AACnC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAiB;IACjD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAClC,CAAC"}
@@ -1,20 +1,18 @@
1
1
  /**
2
2
  * Asset Resolver
3
3
  *
4
- * Unified path resolution for package assets (templates, examples) and user assets (configs, custom templates).
5
- * Works identically in both local and Docker environments.
4
+ * Unified path resolution for package assets (templates, examples) and user assets.
5
+ * Assets are always siblings to the CLI entry point (in dist/ for production).
6
6
  */
7
7
  /**
8
- * Get the package root directory
8
+ * Get the directory containing CLI assets (templates, examples).
9
9
  *
10
- * Uses import.meta.url to find the package root, works in both environments:
11
- * - Production (dist): /path/to/packages/cli/dist/index.js /path/to/packages/cli
12
- * - Test (src): /path/to/packages/cli/src/core/asset-resolver.ts → /path/to/packages/cli
13
- * - Docker: /cli
10
+ * In production: assets are in dist/ alongside the bundled CLI
11
+ * In development: assets are at package root
14
12
  *
15
- * @returns Absolute path to package root
13
+ * @returns Absolute path to assets directory
16
14
  */
17
- export declare function getPackageRoot(): string;
15
+ export declare function getAssetDir(): string;
18
16
  /**
19
17
  * Asset type for resolution strategy
20
18
  */
@@ -23,13 +21,8 @@ export type AssetType = 'template' | 'config' | 'bundle';
23
21
  * Resolve asset path using unified strategy
24
22
  *
25
23
  * Resolution rules:
26
- * 1. Bare names (no / or \) → Package asset
27
- * - "web.hbs" → ${packageRoot}/templates/web.hbs
28
- * - "server-collect.json" → ${packageRoot}/examples/server-collect.json
29
- *
24
+ * 1. Bare names (no / or \) → Package asset (templates or examples)
30
25
  * 2. Relative paths (./ or ../) → User asset relative to base directory
31
- * - "./my-template.hbs" → ${baseDir}/my-template.hbs
32
- *
33
26
  * 3. Absolute paths → Use as-is
34
27
  *
35
28
  * @param assetPath - Path to resolve
@@ -1 +1 @@
1
- {"version":3,"file":"asset-resolver.d.ts","sourceRoot":"","sources":["../../src/core/asset-resolver.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH;;;;;;;;;GASG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAevC;AAED;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEzD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,YAAY,CAC1B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,SAAS,EACpB,OAAO,CAAC,EAAE,MAAM,GACf,MAAM,CAoBR"}
1
+ {"version":3,"file":"asset-resolver.d.ts","sourceRoot":"","sources":["../../src/core/asset-resolver.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAWH;;;;;;;GAOG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAkBpC;AAED;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEzD;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAC1B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,SAAS,EACpB,OAAO,CAAC,EAAE,MAAM,GACf,MAAM,CAkBR"}
@@ -1,46 +1,47 @@
1
1
  /**
2
2
  * Asset Resolver
3
3
  *
4
- * Unified path resolution for package assets (templates, examples) and user assets (configs, custom templates).
5
- * Works identically in both local and Docker environments.
4
+ * Unified path resolution for package assets (templates, examples) and user assets.
5
+ * Assets are always siblings to the CLI entry point (in dist/ for production).
6
6
  */
7
7
  import { fileURLToPath } from 'url';
8
+ import { existsSync } from 'fs';
8
9
  import path from 'path';
9
10
  /**
10
- * Get the package root directory
11
+ * Cached asset directory to avoid repeated filesystem checks
12
+ */
13
+ let cachedAssetDir;
14
+ /**
15
+ * Get the directory containing CLI assets (templates, examples).
11
16
  *
12
- * Uses import.meta.url to find the package root, works in both environments:
13
- * - Production (dist): /path/to/packages/cli/dist/index.js /path/to/packages/cli
14
- * - Test (src): /path/to/packages/cli/src/core/asset-resolver.ts → /path/to/packages/cli
15
- * - Docker: /cli
17
+ * In production: assets are in dist/ alongside the bundled CLI
18
+ * In development: assets are at package root
16
19
  *
17
- * @returns Absolute path to package root
20
+ * @returns Absolute path to assets directory
18
21
  */
19
- export function getPackageRoot() {
22
+ export function getAssetDir() {
23
+ if (cachedAssetDir)
24
+ return cachedAssetDir;
20
25
  const currentFile = fileURLToPath(import.meta.url);
21
- // In test/dev mode: files are in src/ directory (e.g., src/core/asset-resolver.ts)
22
- // In production: all code is bundled into dist/index.js
23
- if (currentFile.includes('/src/')) {
24
- // Running from source (tests): go up to package root
25
- // e.g., /path/to/packages/cli/src/core/asset-resolver.ts -> /path/to/packages/cli
26
- const srcIndex = currentFile.indexOf('/src/');
27
- return currentFile.substring(0, srcIndex);
26
+ let dir = path.dirname(currentFile);
27
+ // Walk up until we find a directory with templates/ sibling
28
+ while (dir !== path.dirname(dir)) {
29
+ if (existsSync(path.join(dir, 'templates'))) {
30
+ cachedAssetDir = dir;
31
+ return dir;
32
+ }
33
+ dir = path.dirname(dir);
28
34
  }
29
- // Running from dist (production/bundled)
30
- // e.g., /path/to/packages/cli/dist/index.js -> /path/to/packages/cli
31
- return path.resolve(currentFile, '../..');
35
+ // Fallback to current file's directory (shouldn't happen if build is correct)
36
+ cachedAssetDir = path.dirname(currentFile);
37
+ return cachedAssetDir;
32
38
  }
33
39
  /**
34
40
  * Resolve asset path using unified strategy
35
41
  *
36
42
  * Resolution rules:
37
- * 1. Bare names (no / or \) → Package asset
38
- * - "web.hbs" → ${packageRoot}/templates/web.hbs
39
- * - "server-collect.json" → ${packageRoot}/examples/server-collect.json
40
- *
43
+ * 1. Bare names (no / or \) → Package asset (templates or examples)
41
44
  * 2. Relative paths (./ or ../) → User asset relative to base directory
42
- * - "./my-template.hbs" → ${baseDir}/my-template.hbs
43
- *
44
45
  * 3. Absolute paths → Use as-is
45
46
  *
46
47
  * @param assetPath - Path to resolve
@@ -49,21 +50,20 @@ export function getPackageRoot() {
49
50
  * @returns Absolute path to asset
50
51
  */
51
52
  export function resolveAsset(assetPath, assetType, baseDir) {
52
- const packageRoot = getPackageRoot();
53
53
  // Bare name → package asset
54
54
  if (!assetPath.includes('/') && !assetPath.includes('\\')) {
55
+ const assetDir = getAssetDir();
55
56
  if (assetType === 'template') {
56
- return path.join(packageRoot, 'templates', assetPath);
57
+ return path.join(assetDir, 'templates', assetPath);
57
58
  }
58
59
  // config or bundle → examples directory
59
- return path.join(packageRoot, 'examples', assetPath);
60
+ return path.join(assetDir, 'examples', assetPath);
60
61
  }
61
62
  // Absolute path → use as-is
62
63
  if (path.isAbsolute(assetPath)) {
63
64
  return assetPath;
64
65
  }
65
66
  // Relative path → resolve from base directory
66
- const resolveBase = baseDir || process.cwd();
67
- return path.resolve(resolveBase, assetPath);
67
+ return path.resolve(baseDir || process.cwd(), assetPath);
68
68
  }
69
69
  //# sourceMappingURL=asset-resolver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"asset-resolver.js","sourceRoot":"","sources":["../../src/core/asset-resolver.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB;;;;;;;;;GASG;AACH,MAAM,UAAU,cAAc;IAC5B,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEnD,mFAAmF;IACnF,wDAAwD;IACxD,IAAI,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAClC,qDAAqD;QACrD,kFAAkF;QAClF,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC9C,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED,yCAAyC;IACzC,qEAAqE;IACrE,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC;AAOD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,YAAY,CAC1B,SAAiB,EACjB,SAAoB,EACpB,OAAgB;IAEhB,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IAErC,4BAA4B;IAC5B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1D,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QACxD,CAAC;QACD,wCAAwC;QACxC,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IACvD,CAAC;IAED,4BAA4B;IAC5B,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,8CAA8C;IAC9C,MAAM,WAAW,GAAG,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAC7C,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"asset-resolver.js","sourceRoot":"","sources":["../../src/core/asset-resolver.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB;;GAEG;AACH,IAAI,cAAkC,CAAC;AAEvC;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW;IACzB,IAAI,cAAc;QAAE,OAAO,cAAc,CAAC;IAE1C,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnD,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAEpC,4DAA4D;IAC5D,OAAO,GAAG,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACjC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;YAC5C,cAAc,GAAG,GAAG,CAAC;YACrB,OAAO,GAAG,CAAC;QACb,CAAC;QACD,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,8EAA8E;IAC9E,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC3C,OAAO,cAAc,CAAC;AACxB,CAAC;AAOD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,YAAY,CAC1B,SAAiB,EACjB,SAAoB,EACpB,OAAgB;IAEhB,4BAA4B;IAC5B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1D,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;QAC/B,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QACrD,CAAC;QACD,wCAAwC;QACxC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IACpD,CAAC;IAED,4BAA4B;IAC5B,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,8CAA8C;IAC9C,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAC;AAC3D,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Build artifact cache for flow.json configurations
3
+ *
4
+ * Caches compiled bundles based on configuration content + date.
5
+ * Enables intelligent cache reuse with daily rebuild guarantee.
6
+ */
7
+ /**
8
+ * Get the cache file path for a flow.json configuration
9
+ */
10
+ export declare function getBuildCachePath(configContent: string, cacheDir?: string): Promise<string>;
11
+ /**
12
+ * Check if a cached build exists for the given configuration
13
+ */
14
+ export declare function isBuildCached(configContent: string, cacheDir?: string): Promise<boolean>;
15
+ /**
16
+ * Store a build artifact in the cache
17
+ */
18
+ export declare function cacheBuild(configContent: string, buildOutput: string, cacheDir?: string): Promise<void>;
19
+ /**
20
+ * Retrieve a cached build artifact
21
+ */
22
+ export declare function getCachedBuild(configContent: string, cacheDir?: string): Promise<string | null>;
23
+ //# sourceMappingURL=build-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-cache.d.ts","sourceRoot":"","sources":["../../src/core/build-cache.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,aAAa,EAAE,MAAM,EACrB,QAAQ,GAAE,MAAwB,GACjC,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,aAAa,EAAE,MAAM,EACrB,QAAQ,GAAE,MAAwB,GACjC,OAAO,CAAC,OAAO,CAAC,CAGlB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,QAAQ,GAAE,MAAwB,GACjC,OAAO,CAAC,IAAI,CAAC,CAIf;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,aAAa,EAAE,MAAM,EACrB,QAAQ,GAAE,MAAwB,GACjC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQxB"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Build artifact cache for flow.json configurations
3
+ *
4
+ * Caches compiled bundles based on configuration content + date.
5
+ * Enables intelligent cache reuse with daily rebuild guarantee.
6
+ */
7
+ import fs from 'fs-extra';
8
+ import path from 'path';
9
+ import { getFlowConfigCacheKey } from './cache-utils';
10
+ const BUILD_CACHE_DIR = path.join('.tmp', 'cache', 'builds');
11
+ /**
12
+ * Get the cache file path for a flow.json configuration
13
+ */
14
+ export async function getBuildCachePath(configContent, cacheDir = BUILD_CACHE_DIR) {
15
+ const cacheKey = await getFlowConfigCacheKey(configContent);
16
+ return path.join(cacheDir, `${cacheKey}.js`);
17
+ }
18
+ /**
19
+ * Check if a cached build exists for the given configuration
20
+ */
21
+ export async function isBuildCached(configContent, cacheDir = BUILD_CACHE_DIR) {
22
+ const cachePath = await getBuildCachePath(configContent, cacheDir);
23
+ return fs.pathExists(cachePath);
24
+ }
25
+ /**
26
+ * Store a build artifact in the cache
27
+ */
28
+ export async function cacheBuild(configContent, buildOutput, cacheDir = BUILD_CACHE_DIR) {
29
+ const cachePath = await getBuildCachePath(configContent, cacheDir);
30
+ await fs.ensureDir(path.dirname(cachePath));
31
+ await fs.writeFile(cachePath, buildOutput, 'utf-8');
32
+ }
33
+ /**
34
+ * Retrieve a cached build artifact
35
+ */
36
+ export async function getCachedBuild(configContent, cacheDir = BUILD_CACHE_DIR) {
37
+ const cachePath = await getBuildCachePath(configContent, cacheDir);
38
+ if (await fs.pathExists(cachePath)) {
39
+ return await fs.readFile(cachePath, 'utf-8');
40
+ }
41
+ return null;
42
+ }
43
+ //# sourceMappingURL=build-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-cache.js","sourceRoot":"","sources":["../../src/core/build-cache.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAEtD,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AAE7D;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,aAAqB,EACrB,WAAmB,eAAe;IAElC,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,aAAa,CAAC,CAAC;IAC5D,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,QAAQ,KAAK,CAAC,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,aAAqB,EACrB,WAAmB,eAAe;IAElC,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IACnE,OAAO,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,aAAqB,EACrB,WAAmB,EACnB,WAAmB,eAAe;IAElC,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IACnE,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5C,MAAM,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;AACtD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,aAAqB,EACrB,WAAmB,eAAe;IAElC,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IAEnE,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACnC,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Cache utility functions for hash-based cache keys
3
+ *
4
+ * Implements content-based and date-based cache invalidation for:
5
+ * - NPM package cache (mutable versions include daily date)
6
+ * - Build artifact cache (content + date hashing)
7
+ */
8
+ /**
9
+ * Check if a version specifier is mutable (can change over time)
10
+ */
11
+ export declare function isMutableVersion(version: string): boolean;
12
+ /**
13
+ * Get today's date in YYYY-MM-DD format
14
+ */
15
+ export declare function getTodayDate(): string;
16
+ /**
17
+ * Generate cache key for npm package.
18
+ * Mutable versions include date for daily invalidation.
19
+ * Exact versions are cached indefinitely.
20
+ */
21
+ export declare function getPackageCacheKey(packageName: string, version: string, date?: string): Promise<string>;
22
+ /**
23
+ * Generate cache key for flow.json configuration.
24
+ * Includes date for daily rebuild guarantee.
25
+ */
26
+ export declare function getFlowConfigCacheKey(content: string, date?: string): Promise<string>;
27
+ //# sourceMappingURL=cache-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache-utils.d.ts","sourceRoot":"","sources":["../../src/core/cache-utils.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAQzD;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC,CAYjB;AAWD;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC,CAKjB"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Cache utility functions for hash-based cache keys
3
+ *
4
+ * Implements content-based and date-based cache invalidation for:
5
+ * - NPM package cache (mutable versions include daily date)
6
+ * - Build artifact cache (content + date hashing)
7
+ */
8
+ import { getHashServer } from '@walkeros/server-core';
9
+ const HASH_LENGTH = 12;
10
+ /**
11
+ * Check if a version specifier is mutable (can change over time)
12
+ */
13
+ export function isMutableVersion(version) {
14
+ return (version === 'latest' ||
15
+ version.includes('^') ||
16
+ version.includes('~') ||
17
+ version.includes('*') ||
18
+ version.includes('x'));
19
+ }
20
+ /**
21
+ * Get today's date in YYYY-MM-DD format
22
+ */
23
+ export function getTodayDate() {
24
+ return new Date().toISOString().split('T')[0];
25
+ }
26
+ /**
27
+ * Generate cache key for npm package.
28
+ * Mutable versions include date for daily invalidation.
29
+ * Exact versions are cached indefinitely.
30
+ */
31
+ export async function getPackageCacheKey(packageName, version, date) {
32
+ const safeName = packageName.replace(/\//g, '-').replace(/@/g, '');
33
+ if (isMutableVersion(version)) {
34
+ const dateStr = date ?? getTodayDate();
35
+ const input = `${safeName}@${version}:${dateStr}`;
36
+ return getHashServer(input, HASH_LENGTH);
37
+ }
38
+ // Exact version - no date component
39
+ const input = `${safeName}@${version}`;
40
+ return getHashServer(input, HASH_LENGTH);
41
+ }
42
+ /**
43
+ * Normalize JSON content for consistent hashing.
44
+ * Handles whitespace and property order variations.
45
+ */
46
+ function normalizeJson(content) {
47
+ const parsed = JSON.parse(content);
48
+ return JSON.stringify(parsed);
49
+ }
50
+ /**
51
+ * Generate cache key for flow.json configuration.
52
+ * Includes date for daily rebuild guarantee.
53
+ */
54
+ export async function getFlowConfigCacheKey(content, date) {
55
+ const dateStr = date ?? getTodayDate();
56
+ const normalized = normalizeJson(content);
57
+ const input = `${normalized}:${dateStr}`;
58
+ return getHashServer(input, HASH_LENGTH);
59
+ }
60
+ //# sourceMappingURL=cache-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache-utils.js","sourceRoot":"","sources":["../../src/core/cache-utils.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,WAAW,GAAG,EAAE,CAAC;AAEvB;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,OAAO,CACL,OAAO,KAAK,QAAQ;QACpB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;QACrB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;QACrB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;QACrB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CACtB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,WAAmB,EACnB,OAAe,EACf,IAAa;IAEb,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAEnE,IAAI,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,IAAI,IAAI,YAAY,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,GAAG,QAAQ,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;QAClD,OAAO,aAAa,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAC3C,CAAC;IAED,oCAAoC;IACpC,MAAM,KAAK,GAAG,GAAG,QAAQ,IAAI,OAAO,EAAE,CAAC;IACvC,OAAO,aAAa,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AAC3C,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa,CAAC,OAAe;IACpC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACnC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AAChC,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,OAAe,EACf,IAAa;IAEb,MAAM,OAAO,GAAG,IAAI,IAAI,YAAY,EAAE,CAAC;IACvC,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,GAAG,UAAU,IAAI,OAAO,EAAE,CAAC;IACzC,OAAO,aAAa,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AAC3C,CAAC"}
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Handles Docker container execution for CLI commands.
5
5
  */
6
- import type { GlobalOptions } from '../types/global';
6
+ import type { GlobalOptions } from '../types/global.js';
7
7
  /**
8
8
  * Docker image for CLI/build tools (bundle, simulate)
9
9
  * Uses explicit version by default, can be overridden with env var
@@ -18,6 +18,22 @@ export declare const RUNTIME_DOCKER_IMAGE: string;
18
18
  * @deprecated Use CLI_DOCKER_IMAGE or RUNTIME_DOCKER_IMAGE instead
19
19
  */
20
20
  export declare const DOCKER_IMAGE: string;
21
+ /**
22
+ * Build common Docker arguments from CLI options
23
+ *
24
+ * Extracts common flags (config, json, verbose, silent) that are shared
25
+ * across bundle and simulate commands. Command-specific flags should be
26
+ * added after calling this function.
27
+ *
28
+ * @param options - CLI options containing common flags
29
+ * @returns Array of command-line arguments starting with config path
30
+ */
31
+ export declare function buildCommonDockerArgs(options: {
32
+ config: string;
33
+ json?: boolean;
34
+ verbose?: boolean;
35
+ silent?: boolean;
36
+ }): string[];
21
37
  /**
22
38
  * Build Docker command for executing CLI commands
23
39
  *
@@ -1 +1 @@
1
- {"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["../../src/core/docker.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AA4BrD;;;GAGG;AACH,eAAO,MAAM,gBAAgB,QAC2C,CAAC;AAEzE;;;GAGG;AACH,eAAO,MAAM,oBAAoB,QAEI,CAAC;AAEtC;;GAEG;AACH,eAAO,MAAM,YAAY,QAAmB,CAAC;AAE7C;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE,aAAkB,EAC3B,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,EAAE,CAiDV;AAED;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE,aAAkB,EAC3B,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CA+Bf;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,CAS1D;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,KAAK,GAAE,MAAyB,GAC/B,OAAO,CAAC,OAAO,CAAC,CASlB;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,SAAS,GAAG,OAAO,EACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,OAAO,GAAE;IACP,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACf,GACL,MAAM,EAAE,CA0DV;AAED;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,SAAS,GAAG,OAAO,EACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,OAAO,GAAE;IACP,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CACb,GACL,OAAO,CAAC,IAAI,CAAC,CAqBf"}
1
+ {"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["../../src/core/docker.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAMxD;;;GAGG;AACH,eAAO,MAAM,gBAAgB,QAC2C,CAAC;AAEzE;;;GAGG;AACH,eAAO,MAAM,oBAAoB,QAEI,CAAC;AAEtC;;GAEG;AACH,eAAO,MAAM,YAAY,QAAmB,CAAC;AAE7C;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,GAAG,MAAM,EAAE,CASX;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE,aAAkB,EAC3B,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,EAAE,CAiDV;AAED;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE,aAAkB,EAC3B,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CA+Bf;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,CAS1D;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,KAAK,GAAE,MAAyB,GAC/B,OAAO,CAAC,OAAO,CAAC,CASlB;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,SAAS,GAAG,OAAO,EACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,OAAO,GAAE;IACP,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACf,GACL,MAAM,EAAE,CA8DV;AAED;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,SAAS,GAAG,OAAO,EACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,OAAO,GAAE;IACP,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CACb,GACL,OAAO,CAAC,IAAI,CAAC,CAqBf"}
@@ -5,30 +5,9 @@
5
5
  */
6
6
  import { spawn } from 'child_process';
7
7
  import path from 'path';
8
- import { readFileSync } from 'fs';
9
- import { fileURLToPath } from 'url';
10
8
  import { VERSION as DOCKER_VERSION } from '@walkeros/docker';
11
- import { isUrl } from '../config/utils';
12
- // Read CLI version from own package.json
13
- // Handle both development (src/) and production (dist/) paths
14
- function readPackageVersion() {
15
- // Get the directory of this module (ESM-compatible)
16
- const moduleFilename = fileURLToPath(import.meta.url);
17
- const moduleDir = path.dirname(moduleFilename);
18
- // Try production path first (dist/index.js -> ../package.json)
19
- const prodPath = path.join(moduleDir, '../package.json');
20
- try {
21
- const pkg = JSON.parse(readFileSync(prodPath, 'utf-8'));
22
- return pkg.version;
23
- }
24
- catch {
25
- // Fall back to development path (src/core/docker.ts -> ../../package.json)
26
- const devPath = path.join(moduleDir, '../../package.json');
27
- const pkg = JSON.parse(readFileSync(devPath, 'utf-8'));
28
- return pkg.version;
29
- }
30
- }
31
- const CLI_VERSION = readPackageVersion();
9
+ import { isUrl } from '../config/utils.js';
10
+ const CLI_VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : '0.0.0';
32
11
  /**
33
12
  * Docker image for CLI/build tools (bundle, simulate)
34
13
  * Uses explicit version by default, can be overridden with env var
@@ -44,6 +23,27 @@ export const RUNTIME_DOCKER_IMAGE = process.env.WALKEROS_RUNTIME_DOCKER_IMAGE ||
44
23
  * @deprecated Use CLI_DOCKER_IMAGE or RUNTIME_DOCKER_IMAGE instead
45
24
  */
46
25
  export const DOCKER_IMAGE = CLI_DOCKER_IMAGE;
26
+ /**
27
+ * Build common Docker arguments from CLI options
28
+ *
29
+ * Extracts common flags (config, json, verbose, silent) that are shared
30
+ * across bundle and simulate commands. Command-specific flags should be
31
+ * added after calling this function.
32
+ *
33
+ * @param options - CLI options containing common flags
34
+ * @returns Array of command-line arguments starting with config path
35
+ */
36
+ export function buildCommonDockerArgs(options) {
37
+ const args = [options.config];
38
+ // Common flags
39
+ if (options.json)
40
+ args.push('--json');
41
+ if (options.verbose)
42
+ args.push('--verbose');
43
+ if (options.silent)
44
+ args.push('--silent');
45
+ return args;
46
+ }
47
47
  /**
48
48
  * Build Docker command for executing CLI commands
49
49
  *
@@ -169,11 +169,15 @@ export function buildDockerRunCommand(mode, flowPath, options = {}) {
169
169
  const cmd = ['docker', 'run', '--rm'];
170
170
  // Set MODE environment variable
171
171
  cmd.push('-e', `MODE=${mode}`);
172
- // Mount flow bundle for collect mode
172
+ // Mount entire dist folder for collect mode (includes bundle + shared folders)
173
+ // Must mount to /app/dist (not /app) to preserve container's node_modules
174
+ // This allows relative paths like ./shared/credentials/sa.json to work
173
175
  if (mode === 'collect' && flowPath) {
174
176
  const absoluteFlowPath = path.resolve(cwd, flowPath);
175
- cmd.push('-v', `${absoluteFlowPath}:/app/flow.mjs:ro`);
176
- cmd.push('-e', 'FLOW=/app/flow.mjs');
177
+ const flowDir = path.dirname(absoluteFlowPath);
178
+ const flowFile = path.basename(absoluteFlowPath);
179
+ cmd.push('-v', `${flowDir}:/app/dist:ro`);
180
+ cmd.push('-e', `FLOW=/app/dist/${flowFile}`);
177
181
  }
178
182
  // Mount custom file for serve mode
179
183
  if (mode === 'serve' && flowPath) {