@walkeros/cli 0.4.1 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (220) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +247 -46
  3. package/dist/__tests__/bundle/bundler-helpers.test.js +0 -134
  4. package/dist/__tests__/bundle/bundler-helpers.test.js.map +1 -1
  5. package/dist/__tests__/bundle/bundler.test.js +253 -183
  6. package/dist/__tests__/bundle/bundler.test.js.map +1 -1
  7. package/dist/__tests__/bundle/programmatic.test.js +74 -53
  8. package/dist/__tests__/bundle/programmatic.test.js.map +1 -1
  9. package/dist/__tests__/cli.test.js +58 -46
  10. package/dist/__tests__/cli.test.js.map +1 -1
  11. package/dist/__tests__/config-loader.test.d.ts +1 -1
  12. package/dist/__tests__/config-loader.test.js +229 -212
  13. package/dist/__tests__/config-loader.test.js.map +1 -1
  14. package/dist/__tests__/core/build-cache.test.d.ts +2 -0
  15. package/dist/__tests__/core/build-cache.test.d.ts.map +1 -0
  16. package/dist/__tests__/core/build-cache.test.js +55 -0
  17. package/dist/__tests__/core/build-cache.test.js.map +1 -0
  18. package/dist/__tests__/core/cache-utils.test.d.ts +2 -0
  19. package/dist/__tests__/core/cache-utils.test.d.ts.map +1 -0
  20. package/dist/__tests__/core/cache-utils.test.js +70 -0
  21. package/dist/__tests__/core/cache-utils.test.js.map +1 -0
  22. package/dist/__tests__/integration/bundle-run.integration.test.js +8 -4
  23. package/dist/__tests__/integration/bundle-run.integration.test.js.map +1 -1
  24. package/dist/__tests__/simulate/node-executor.test.d.ts +5 -0
  25. package/dist/__tests__/simulate/node-executor.test.d.ts.map +1 -0
  26. package/dist/__tests__/simulate/node-executor.test.js +25 -0
  27. package/dist/__tests__/simulate/node-executor.test.js.map +1 -0
  28. package/dist/__tests__/simulate/server-simulate.integration.test.d.ts +5 -0
  29. package/dist/__tests__/simulate/server-simulate.integration.test.d.ts.map +1 -0
  30. package/dist/__tests__/simulate/server-simulate.integration.test.js +58 -0
  31. package/dist/__tests__/simulate/server-simulate.integration.test.js.map +1 -0
  32. package/dist/__tests__/smoke/production.smoke.test.js +9 -2
  33. package/dist/__tests__/smoke/production.smoke.test.js.map +1 -1
  34. package/dist/commands/bundle/bundler.d.ts +18 -0
  35. package/dist/commands/bundle/bundler.d.ts.map +1 -1
  36. package/dist/commands/bundle/bundler.js +286 -80
  37. package/dist/commands/bundle/bundler.js.map +1 -1
  38. package/dist/commands/bundle/index.d.ts +16 -10
  39. package/dist/commands/bundle/index.d.ts.map +1 -1
  40. package/dist/commands/bundle/index.js +44 -32
  41. package/dist/commands/bundle/index.js.map +1 -1
  42. package/dist/commands/bundle/package-manager.d.ts +2 -1
  43. package/dist/commands/bundle/package-manager.d.ts.map +1 -1
  44. package/dist/commands/bundle/package-manager.js +34 -7
  45. package/dist/commands/bundle/package-manager.js.map +1 -1
  46. package/dist/commands/cache.d.ts +3 -0
  47. package/dist/commands/cache.d.ts.map +1 -0
  48. package/dist/commands/cache.js +44 -0
  49. package/dist/commands/cache.js.map +1 -0
  50. package/dist/commands/push/index.d.ts.map +1 -1
  51. package/dist/commands/push/index.js +49 -44
  52. package/dist/commands/push/index.js.map +1 -1
  53. package/dist/commands/push/types.d.ts +1 -1
  54. package/dist/commands/push/types.d.ts.map +1 -1
  55. package/dist/commands/run/__tests__/run.integration.test.js +14 -15
  56. package/dist/commands/run/__tests__/run.integration.test.js.map +1 -1
  57. package/dist/commands/run/execution.d.ts.map +1 -1
  58. package/dist/commands/run/execution.js +6 -2
  59. package/dist/commands/run/execution.js.map +1 -1
  60. package/dist/commands/run/utils.d.ts +4 -1
  61. package/dist/commands/run/utils.d.ts.map +1 -1
  62. package/dist/commands/run/utils.js +18 -24
  63. package/dist/commands/run/utils.js.map +1 -1
  64. package/dist/commands/run/validators.d.ts +9 -5
  65. package/dist/commands/run/validators.d.ts.map +1 -1
  66. package/dist/commands/run/validators.js +14 -11
  67. package/dist/commands/run/validators.js.map +1 -1
  68. package/dist/commands/simulate/index.d.ts +1 -0
  69. package/dist/commands/simulate/index.d.ts.map +1 -1
  70. package/dist/commands/simulate/index.js +1 -0
  71. package/dist/commands/simulate/index.js.map +1 -1
  72. package/dist/commands/simulate/node-executor.d.ts +28 -0
  73. package/dist/commands/simulate/node-executor.d.ts.map +1 -0
  74. package/dist/commands/simulate/node-executor.js +94 -0
  75. package/dist/commands/simulate/node-executor.js.map +1 -0
  76. package/dist/commands/simulate/simulator.d.ts.map +1 -1
  77. package/dist/commands/simulate/simulator.js +36 -32
  78. package/dist/commands/simulate/simulator.js.map +1 -1
  79. package/dist/config/build-defaults.d.ts +49 -0
  80. package/dist/config/build-defaults.d.ts.map +1 -0
  81. package/dist/config/build-defaults.js +70 -0
  82. package/dist/config/build-defaults.js.map +1 -0
  83. package/dist/config/index.d.ts +6 -7
  84. package/dist/config/index.d.ts.map +1 -1
  85. package/dist/config/index.js +6 -7
  86. package/dist/config/index.js.map +1 -1
  87. package/dist/config/loader.d.ts +34 -27
  88. package/dist/config/loader.d.ts.map +1 -1
  89. package/dist/config/loader.js +107 -92
  90. package/dist/config/loader.js.map +1 -1
  91. package/dist/config/validators.d.ts +34 -8
  92. package/dist/config/validators.d.ts.map +1 -1
  93. package/dist/config/validators.js +59 -21
  94. package/dist/config/validators.js.map +1 -1
  95. package/dist/core/asset-resolver.d.ts +9 -16
  96. package/dist/core/asset-resolver.d.ts.map +1 -1
  97. package/dist/core/asset-resolver.js +30 -41
  98. package/dist/core/asset-resolver.js.map +1 -1
  99. package/dist/core/build-cache.d.ts +23 -0
  100. package/dist/core/build-cache.d.ts.map +1 -0
  101. package/dist/core/build-cache.js +43 -0
  102. package/dist/core/build-cache.js.map +1 -0
  103. package/dist/core/cache-utils.d.ts +27 -0
  104. package/dist/core/cache-utils.d.ts.map +1 -0
  105. package/dist/core/cache-utils.js +60 -0
  106. package/dist/core/cache-utils.js.map +1 -0
  107. package/dist/core/docker.d.ts.map +1 -1
  108. package/dist/core/docker.js +14 -27
  109. package/dist/core/docker.js.map +1 -1
  110. package/dist/core/index.d.ts +1 -0
  111. package/dist/core/index.d.ts.map +1 -1
  112. package/dist/core/index.js +1 -0
  113. package/dist/core/index.js.map +1 -1
  114. package/dist/core/local-packages.d.ts +19 -0
  115. package/dist/core/local-packages.d.ts.map +1 -0
  116. package/dist/core/local-packages.js +60 -0
  117. package/dist/core/local-packages.js.map +1 -0
  118. package/dist/examples/.npm-cache/content-v2/sha512/0d/2d/7581c288670eaf8538ddd9df145b78756ce3be0791c6e0b9cd33429b3bae894525b9bda287a3cedffbcdd2c7b3107bafc03f2b0367eea489eee1cc042abb +1 -0
  119. package/dist/examples/.npm-cache/content-v2/sha512/12/20/bc4f5acca143809f7e07da1fdafb38137d93243de4d5b403e6e10b92d0d3a6e51eab24fe9dbc9d3ed1cd72e8f7a406085e99c422bb2c7d1166cf9f1f564e +0 -0
  120. package/dist/examples/.npm-cache/content-v2/sha512/22/ee/fb2695b01871c1d36946bdcfb49f1b520a57200d0a0b221b1e7d5f047ab38a8b2ab0e5f0e25a00acde1f3f2f9d24430a18f1092d438bc1a9e9891cc45f75 +0 -0
  121. package/dist/examples/.npm-cache/content-v2/sha512/24/89/da1ce6a61bca6de7e132f241a675c01c83738bf6b78af25b5cce01d3030361332b3fe938571e2b721f1555da9ddf930fdcf8c02f0471556071590e68cc09 +0 -0
  122. package/dist/examples/.npm-cache/content-v2/sha512/47/fd/c6be997da99228c3e279b95d4a46d6913947078a178f54ac71795a159f3513b1483232f4c2d0a1f403178bf9f96bb19615de32a9e2133e949880c6bc15e2 +0 -0
  123. package/dist/examples/.npm-cache/content-v2/sha512/4b/1c/c1cb7f8b32102071a89fef97158daa32080ebaedfbbd596880d2213d84e305abc76d2a95a412ded55c1c3d487adcb1ceff87fc2c85d7e2856ebd9d3f16f3 +0 -0
  124. package/dist/examples/.npm-cache/content-v2/sha512/6e/53/ff864769671f44f39d8a3bf904cd646535b745cc4824a8bb3189193b474678049f43b5178ba15cad7f0289046105e70f1565afc84e907120b35a466690fd +1 -0
  125. package/dist/examples/.npm-cache/content-v2/sha512/70/4c/4c8837d446965c5551b4ea527e95fa011744fb727581d82cf35bb5599ea0b57d18baa490f7af93ef9a16e8e45e5c0802737da20575f4056a4a5c9a3cd288 +0 -0
  126. package/dist/examples/.npm-cache/content-v2/sha512/96/ad/05de3bbb12d7de8ea353f962bdaea7d2eb44f707f2973462a6635daf537c67b46cca7764fed7d464fe62152c3f783a07aba1ceb35e09ad446bff05a4b466 +1 -0
  127. package/dist/examples/.npm-cache/content-v2/sha512/b5/20/52dde94e6cef7170f6089c64a4843e57be18be450d956f4e455905aed047ae6a368451c93035e6ac3ee59576b600f03f815afba0836b3a16e10a9aaca4ba +1 -0
  128. package/dist/examples/.npm-cache/content-v2/sha512/c7/a9/d166a1c39f97df312c59261319ba1cf9aac178bda0a0cb697d5ddd78bd8dd38ef1bf40017bcc8633c2049896c2d70696d9bff9280851f270792ff38bb3a0 +1 -0
  129. package/dist/examples/.npm-cache/content-v2/sha512/e0/d0/8c14083b633e6adbd3c6a93da5fc0f6bbd456c5512ef276920bedd8d85d551052adff992de977aff326616a211aaa2d6ddcc801149e9b7f914f566359b6a +1 -0
  130. package/dist/examples/.npm-cache/content-v2/sha512/e7/c5/06ad3fd79ac4f1031fe0b16ea5e54e232ca397bbcd7592c679021cbfb027276099f8c848f3f7a7691f0102ad53aa64f9141e61d729b037a678bd60440d17 +1 -0
  131. package/dist/examples/.npm-cache/content-v2/sha512/f3/28/d5d32329604ed7d471a4949105daa2cc98858cf24f45b0b97c41d0eb0d5a9fe7bf1f69c792161cc6693e4fc1b52e886ac41875ebfb8fe47fafe417ca3e6e +0 -0
  132. package/dist/examples/.npm-cache/index-v5/04/5a/2b5d7a7c407d85d746baa0f5c9388a333e35a717a8a0a81943daa6cb1364 +3 -0
  133. package/dist/examples/.npm-cache/index-v5/12/9a/eba560cbace295d8ee04cf283015377bd77b379e70968fb6bc407c7fc410 +15 -0
  134. package/dist/examples/.npm-cache/index-v5/2f/a2/7b047564b0ee21ac835ec609e89153dd6549be554d098584d5bfd19fe043 +15 -0
  135. package/dist/examples/.npm-cache/index-v5/32/8e/322d58dd8d1e000be248ada51385bf96288e56039de9feec1a4c6a467653 +3 -0
  136. package/dist/examples/.npm-cache/index-v5/57/93/d1d7cd1402e3e26468db03f2870822bb2c9018a506cdfb3b405f38cd3e1c +3 -0
  137. package/dist/examples/.npm-cache/index-v5/5d/f8/0a1f4fa7149e4ff33e09eb6aea41ac8d1730c868a5d3ace91f762698acff +3 -0
  138. package/dist/examples/.npm-cache/index-v5/69/a4/a92c72d838259b051cdf8e0acfb2bc680b6d4cfc642314a7836c3f7b2c50 +15 -0
  139. package/dist/examples/.npm-cache/index-v5/71/31/6da3423bb203f3de5eb16c942431073f89be2cfcb40058ec91dcb5ce0abc +15 -0
  140. package/dist/examples/.npm-cache/index-v5/7b/94/72b6bffa050d9ef52a558dd220663695bc606f756be0dfa196ef4f3913ba +3 -0
  141. package/dist/examples/.npm-cache/index-v5/85/9e/99e97fdd562517e56285337db91d1a8f2f416b8d631cf4d7d754fa671299 +15 -0
  142. package/dist/examples/.npm-cache/index-v5/92/4c/9416ada81a9b3c679539fd1ab53f8de3d41ff268f35eba7a194389a85b06 +3 -0
  143. package/dist/examples/.npm-cache/index-v5/c1/5a/13df76b218deed8a6ef12961116af5183db98c53fad1b922fd9edc075247 +3 -0
  144. package/dist/examples/.npm-cache/index-v5/cb/11/253c55410a8ab7c4a9ea9d6e1bf8ef1450a581da64c478074dfd82c8bff6 +3 -0
  145. package/dist/examples/.npm-cache/index-v5/d5/ae/b57fad3a62b5ba2dbdf24b042a9e7b70820f3db00e5a630f02e1fea020dc +3 -0
  146. package/dist/examples/.npm-cache/index-v5/d6/32/2f620f83c7d14451de98de8298c2408e05a16cc0829bd16c891ac19d7a67 +3 -0
  147. package/dist/examples/.npm-cache/index-v5/dd/b5/01dc7a3cd8b6a03a69aee9af500d51ae19cb0aa12631a4aafd152148b8e5 +15 -0
  148. package/dist/examples/.npm-cache/index-v5/e0/cf/6b862c15d74630d3871cd813d305210ab741311deb10baf8813014e0bc30 +3 -0
  149. package/dist/examples/.npm-cache/index-v5/e2/be/e880ccd35950a814d3c1dded34d3938ac61b15a195321dc51357f801aad4 +15 -0
  150. package/dist/examples/.npm-cache/index-v5/e5/1f/f4affe0b392cd03288f23cc03abcb274ff11a2c8f8965299de681914abb2 +3 -0
  151. package/dist/examples/.npm-cache/index-v5/f3/5b/9ebe450958ff0d7cc44ab0a00080cb8a3ff1389744b5eab5f97b68a6a6af +3 -0
  152. package/dist/examples/.npm-cache/index-v5/fb/c1/0de405e902866d53e7c30cf36a97dc2578838622b261816f44dc377c9a80 +3 -0
  153. package/dist/examples/README.md +355 -0
  154. package/dist/examples/event.json +53 -0
  155. package/dist/examples/flow-order-complete.json +67 -0
  156. package/dist/examples/flow-simple.json +31 -0
  157. package/dist/examples/flow.json +82 -0
  158. package/dist/examples/server-collect.json +60 -0
  159. package/dist/examples/server-collect.mjs +13540 -0
  160. package/dist/examples/test.html +43 -0
  161. package/dist/examples/web-serve.js +25503 -0
  162. package/dist/examples/web-serve.json +74 -0
  163. package/dist/index.d.ts +80 -310
  164. package/dist/index.d.ts.map +1 -1
  165. package/dist/index.js +924 -736
  166. package/dist/index.js.map +1 -1
  167. package/dist/schemas/index.d.ts +9 -0
  168. package/dist/schemas/index.d.ts.map +1 -0
  169. package/dist/schemas/index.js +9 -0
  170. package/dist/schemas/index.js.map +1 -0
  171. package/dist/schemas/primitives.d.ts +37 -0
  172. package/dist/schemas/primitives.d.ts.map +1 -0
  173. package/dist/schemas/primitives.js +43 -0
  174. package/dist/schemas/primitives.js.map +1 -0
  175. package/dist/schemas/run.d.ts +23 -0
  176. package/dist/schemas/run.d.ts.map +1 -0
  177. package/dist/schemas/run.js +20 -0
  178. package/dist/schemas/run.js.map +1 -0
  179. package/dist/types/bundle.d.ts +64 -191
  180. package/dist/types/bundle.d.ts.map +1 -1
  181. package/dist/types/bundle.js +2 -2
  182. package/dist/walker.js +1 -0
  183. package/examples/README.md +55 -30
  184. package/examples/flow-order-complete.json +56 -57
  185. package/examples/flow-simple.json +24 -25
  186. package/examples/flow.json +69 -69
  187. package/examples/server-collect.json +51 -44
  188. package/examples/server-collect.mjs +1 -1
  189. package/examples/web-serve.json +62 -63
  190. package/package.json +2 -4
  191. package/dist/__tests__/bundle/serializer.test.d.ts +0 -2
  192. package/dist/__tests__/bundle/serializer.test.d.ts.map +0 -1
  193. package/dist/__tests__/bundle/serializer.test.js +0 -173
  194. package/dist/__tests__/bundle/serializer.test.js.map +0 -1
  195. package/dist/__tests__/bundle/template-engine.test.d.ts +0 -2
  196. package/dist/__tests__/bundle/template-engine.test.d.ts.map +0 -1
  197. package/dist/__tests__/bundle/template-engine.test.js +0 -107
  198. package/dist/__tests__/bundle/template-engine.test.js.map +0 -1
  199. package/dist/commands/bundle/serializer.d.ts +0 -23
  200. package/dist/commands/bundle/serializer.d.ts.map +0 -1
  201. package/dist/commands/bundle/serializer.js +0 -127
  202. package/dist/commands/bundle/serializer.js.map +0 -1
  203. package/dist/commands/bundle/template-engine.d.ts +0 -20
  204. package/dist/commands/bundle/template-engine.d.ts.map +0 -1
  205. package/dist/commands/bundle/template-engine.js +0 -54
  206. package/dist/commands/bundle/template-engine.js.map +0 -1
  207. package/dist/config/defaults.d.ts +0 -33
  208. package/dist/config/defaults.d.ts.map +0 -1
  209. package/dist/config/defaults.js +0 -69
  210. package/dist/config/defaults.js.map +0 -1
  211. package/dist/config/parser.d.ts +0 -128
  212. package/dist/config/parser.d.ts.map +0 -1
  213. package/dist/config/parser.js +0 -256
  214. package/dist/config/parser.js.map +0 -1
  215. package/dist/types/template.d.ts +0 -108
  216. package/dist/types/template.d.ts.map +0 -1
  217. package/dist/types/template.js +0 -10
  218. package/dist/types/template.js.map +0 -1
  219. package/templates/server.hbs +0 -29
  220. package/templates/web.hbs +0 -45
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Static Build Defaults
3
+ *
4
+ * Platform-specific build defaults for CLI bundling.
5
+ * Build options are CLI concerns, separate from Flow configuration.
6
+ */
7
+ import type { BuildOptions } from '../types/bundle.js';
8
+ /**
9
+ * Build defaults for web platform (browser bundles).
10
+ *
11
+ * @remarks
12
+ * These settings produce browser-compatible IIFE bundles.
13
+ */
14
+ export declare const WEB_BUILD_DEFAULTS: Omit<BuildOptions, 'output' | 'packages'>;
15
+ /**
16
+ * Build defaults for server platform (Node.js bundles).
17
+ *
18
+ * @remarks
19
+ * These settings produce Node.js-compatible ESM bundles.
20
+ */
21
+ export declare const SERVER_BUILD_DEFAULTS: Omit<BuildOptions, 'output' | 'packages'>;
22
+ /**
23
+ * Default output paths by platform.
24
+ */
25
+ export declare const DEFAULT_OUTPUT_PATHS: {
26
+ readonly web: "./dist/walker.js";
27
+ readonly server: "./dist/bundle.mjs";
28
+ };
29
+ /**
30
+ * Get build defaults for a platform.
31
+ *
32
+ * @param platform - Target platform ('web' or 'server')
33
+ * @returns Platform-specific build defaults
34
+ *
35
+ * @example
36
+ * ```typescript
37
+ * const defaults = getBuildDefaults('web');
38
+ * // { format: 'iife', platform: 'browser', ... }
39
+ * ```
40
+ */
41
+ export declare function getBuildDefaults(platform: 'web' | 'server'): Omit<BuildOptions, 'output' | 'packages'>;
42
+ /**
43
+ * Get default output path for a platform.
44
+ *
45
+ * @param platform - Target platform ('web' or 'server')
46
+ * @returns Default output file path
47
+ */
48
+ export declare function getDefaultOutput(platform: 'web' | 'server'): string;
49
+ //# sourceMappingURL=build-defaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-defaults.d.ts","sourceRoot":"","sources":["../../src/config/build-defaults.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,UAAU,CAUxE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,UAAU,CASzE,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;CAGvB,CAAC;AAEX;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,KAAK,GAAG,QAAQ,GACzB,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,UAAU,CAAC,CAE3C;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAEnE"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Static Build Defaults
3
+ *
4
+ * Platform-specific build defaults for CLI bundling.
5
+ * Build options are CLI concerns, separate from Flow configuration.
6
+ */
7
+ /**
8
+ * Build defaults for web platform (browser bundles).
9
+ *
10
+ * @remarks
11
+ * These settings produce browser-compatible IIFE bundles.
12
+ */
13
+ export const WEB_BUILD_DEFAULTS = {
14
+ format: 'iife',
15
+ platform: 'browser',
16
+ target: 'es2020',
17
+ minify: true,
18
+ sourcemap: false,
19
+ cache: true,
20
+ tempDir: '.tmp',
21
+ windowCollector: 'collector',
22
+ windowElb: 'elb',
23
+ };
24
+ /**
25
+ * Build defaults for server platform (Node.js bundles).
26
+ *
27
+ * @remarks
28
+ * These settings produce Node.js-compatible ESM bundles.
29
+ */
30
+ export const SERVER_BUILD_DEFAULTS = {
31
+ format: 'esm',
32
+ platform: 'node',
33
+ target: 'node20',
34
+ minify: true,
35
+ sourcemap: false,
36
+ cache: true,
37
+ tempDir: '.tmp',
38
+ };
39
+ /**
40
+ * Default output paths by platform.
41
+ */
42
+ export const DEFAULT_OUTPUT_PATHS = {
43
+ web: './dist/walker.js',
44
+ server: './dist/bundle.mjs',
45
+ };
46
+ /**
47
+ * Get build defaults for a platform.
48
+ *
49
+ * @param platform - Target platform ('web' or 'server')
50
+ * @returns Platform-specific build defaults
51
+ *
52
+ * @example
53
+ * ```typescript
54
+ * const defaults = getBuildDefaults('web');
55
+ * // { format: 'iife', platform: 'browser', ... }
56
+ * ```
57
+ */
58
+ export function getBuildDefaults(platform) {
59
+ return platform === 'web' ? WEB_BUILD_DEFAULTS : SERVER_BUILD_DEFAULTS;
60
+ }
61
+ /**
62
+ * Get default output path for a platform.
63
+ *
64
+ * @param platform - Target platform ('web' or 'server')
65
+ * @returns Default output file path
66
+ */
67
+ export function getDefaultOutput(platform) {
68
+ return DEFAULT_OUTPUT_PATHS[platform];
69
+ }
70
+ //# sourceMappingURL=build-defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-defaults.js","sourceRoot":"","sources":["../../src/config/build-defaults.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAA8C;IAC3E,MAAM,EAAE,MAAM;IACd,QAAQ,EAAE,SAAS;IACnB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,IAAI;IACZ,SAAS,EAAE,KAAK;IAChB,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,MAAM;IACf,eAAe,EAAE,WAAW;IAC5B,SAAS,EAAE,KAAK;CACjB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAChC;IACE,MAAM,EAAE,KAAK;IACb,QAAQ,EAAE,MAAM;IAChB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,IAAI;IACZ,SAAS,EAAE,KAAK;IAChB,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,MAAM;CAChB,CAAC;AAEJ;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,GAAG,EAAE,kBAAkB;IACvB,MAAM,EAAE,mBAAmB;CACnB,CAAC;AAEX;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gBAAgB,CAC9B,QAA0B;IAE1B,OAAO,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,qBAAqB,CAAC;AACzE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAA0B;IACzD,OAAO,oBAAoB,CAAC,QAAQ,CAAC,CAAC;AACxC,CAAC"}
@@ -1,14 +1,13 @@
1
1
  /**
2
2
  * Configuration Module
3
3
  *
4
- * Unified configuration loading, parsing, and validation.
4
+ * Config format: Flow.Setup from @walkeros/core
5
+ * Build options: Static platform defaults from build-defaults.ts
5
6
  */
6
- export { isObject, validatePlatform, isMultiEnvConfig, isSingleEnvConfig, } from './validators.js';
7
+ export { isObject, detectPlatform, isFlowSetup, validateFlowSetup, getAvailableFlows as getFlowNames, } from './validators.js';
8
+ export { WEB_BUILD_DEFAULTS, SERVER_BUILD_DEFAULTS, DEFAULT_OUTPUT_PATHS, getBuildDefaults, getDefaultOutput, } from './build-defaults.js';
7
9
  export { substituteEnvVariables, loadJsonConfig, loadJsonFromSource, getTempDir, } from './utils.js';
8
- export { getDefaultBuildOptions, ensureBuildOptions } from './defaults.js';
9
- export { parseBundleConfig, safeParseBundleConfig, normalizeConfigs, } from './parser.js';
10
- export type { ParsedConfig } from './parser.js';
11
- export { loadBundleConfig, loadAllEnvironments, getAvailableEnvironments, } from './loader.js';
10
+ export { loadBundleConfig, loadAllFlows, getAvailableFlows } from './loader.js';
12
11
  export type { LoadConfigResult, LoadConfigOptions } from './loader.js';
13
- export type { BuildOptions, MinifyOptions, EnvironmentConfig, Setup, } from '../types/bundle.js';
12
+ export type { BuildOptions, CLIBuildOptions, MinifyOptions, Flow, } from '../types/bundle.js';
14
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,sBAAsB,EACtB,cAAc,EACd,kBAAkB,EAClB,UAAU,GACX,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAG3E,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGvE,YAAY,EACV,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,KAAK,GACN,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,QAAQ,EACR,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,iBAAiB,IAAI,YAAY,GAClC,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,sBAAsB,EACtB,cAAc,EACd,kBAAkB,EAClB,UAAU,GACX,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChF,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGvE,YAAY,EACV,YAAY,EACZ,eAAe,EACf,aAAa,EACb,IAAI,GACL,MAAM,oBAAoB,CAAC"}
@@ -1,16 +1,15 @@
1
1
  /**
2
2
  * Configuration Module
3
3
  *
4
- * Unified configuration loading, parsing, and validation.
4
+ * Config format: Flow.Setup from @walkeros/core
5
+ * Build options: Static platform defaults from build-defaults.ts
5
6
  */
6
7
  // Type guards and validators
7
- export { isObject, validatePlatform, isMultiEnvConfig, isSingleEnvConfig, } from './validators.js';
8
+ export { isObject, detectPlatform, isFlowSetup, validateFlowSetup, getAvailableFlows as getFlowNames, } from './validators.js';
9
+ // Build defaults
10
+ export { WEB_BUILD_DEFAULTS, SERVER_BUILD_DEFAULTS, DEFAULT_OUTPUT_PATHS, getBuildDefaults, getDefaultOutput, } from './build-defaults.js';
8
11
  // Utility functions
9
12
  export { substituteEnvVariables, loadJsonConfig, loadJsonFromSource, getTempDir, } from './utils.js';
10
- // Platform defaults
11
- export { getDefaultBuildOptions, ensureBuildOptions } from './defaults.js';
12
- // Parser
13
- export { parseBundleConfig, safeParseBundleConfig, normalizeConfigs, } from './parser.js';
14
13
  // Loader
15
- export { loadBundleConfig, loadAllEnvironments, getAvailableEnvironments, } from './loader.js';
14
+ export { loadBundleConfig, loadAllFlows, getAvailableFlows } from './loader.js';
16
15
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,6BAA6B;AAC7B,OAAO,EACL,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AAEzB,oBAAoB;AACpB,OAAO,EACL,sBAAsB,EACtB,cAAc,EACd,kBAAkB,EAClB,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB,oBAAoB;AACpB,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAE3E,SAAS;AACT,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAGrB,SAAS;AACT,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,6BAA6B;AAC7B,OAAO,EACL,QAAQ,EACR,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,iBAAiB,IAAI,YAAY,GAClC,MAAM,iBAAiB,CAAC;AAEzB,iBAAiB;AACjB,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAE7B,oBAAoB;AACpB,OAAO,EACL,sBAAsB,EACtB,cAAc,EACd,kBAAkB,EAClB,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB,SAAS;AACT,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC"}
@@ -1,12 +1,10 @@
1
1
  /**
2
2
  * Configuration Loader
3
3
  *
4
- * Loads and parses configurations with support for:
5
- * - Single-environment configs
6
- * - Multi-environment setups
7
- * - Environment selection
4
+ * Loads and parses Flow.Setup configurations using core getFlowConfig().
5
+ * Build options are determined by static platform defaults.
8
6
  */
9
- import type { Flow } from '@walkeros/core';
7
+ import { type Flow } from '@walkeros/core';
10
8
  import type { BuildOptions } from '../types/bundle.js';
11
9
  /**
12
10
  * Result of configuration loading.
@@ -16,12 +14,12 @@ export interface LoadConfigResult {
16
14
  flowConfig: Flow.Config;
17
15
  /** Build-time configuration */
18
16
  buildOptions: BuildOptions;
19
- /** Name of the selected environment (or 'default' for single configs) */
20
- environment: string;
21
- /** Whether this is a multi-environment setup */
22
- isMultiEnvironment: boolean;
23
- /** All available environment names (for multi-environment setups) */
24
- availableEnvironments?: string[];
17
+ /** Name of the selected flow */
18
+ flowName: string;
19
+ /** Whether multiple flows are available */
20
+ isMultiFlow: boolean;
21
+ /** All available flow names */
22
+ availableFlows: string[];
25
23
  }
26
24
  /**
27
25
  * Options for loading configuration.
@@ -29,8 +27,10 @@ export interface LoadConfigResult {
29
27
  export interface LoadConfigOptions {
30
28
  /** Path to config file */
31
29
  configPath: string;
32
- /** Environment name to load (for multi-environment configs) */
33
- environment?: string;
30
+ /** Flow name to load (required for multi-flow, optional for single-flow) */
31
+ flowName?: string;
32
+ /** CLI build overrides (future: --output, --minify, etc.) */
33
+ buildOverrides?: Partial<BuildOptions>;
34
34
  /** Logger for warnings */
35
35
  logger?: {
36
36
  warn: (message: string) => void;
@@ -41,34 +41,41 @@ export interface LoadConfigOptions {
41
41
  * Load and parse bundle configuration.
42
42
  *
43
43
  * @remarks
44
- * Automatically detects whether the config is:
45
- * - New format: { flow: {...}, build: {...} }
46
- * - Multi-environment format: { version: 1, environments: {...} }
47
- * - Legacy format: { platform, sources, destinations, packages, ... } (with deprecation warning)
48
- *
49
- * For multi-environment configs, requires `environment` option.
44
+ * Uses Flow.Setup from @walkeros/core as the only config format.
45
+ * - Validates config structure
46
+ * - Uses core getFlowConfig() for variable/definition resolution
47
+ * - Determines platform from resolved config
48
+ * - Applies static build defaults based on platform
50
49
  *
51
50
  * @param rawConfig - Raw configuration object from JSON file
52
51
  * @param options - Loading options
53
52
  * @returns Parsed configuration with flow and build separated
53
+ *
54
+ * @example
55
+ * ```typescript
56
+ * const config = loadBundleConfig(rawConfig, {
57
+ * configPath: './walkeros.config.json',
58
+ * flowName: 'production',
59
+ * });
60
+ * ```
54
61
  */
55
62
  export declare function loadBundleConfig(rawConfig: unknown, options: LoadConfigOptions): LoadConfigResult;
56
63
  /**
57
- * Load all environments from a multi-environment configuration.
64
+ * Load all flows from a configuration.
58
65
  *
59
66
  * @remarks
60
- * Used by the --all flag to build all environments.
67
+ * Used by the --all flag to build all flows.
61
68
  *
62
69
  * @param rawConfig - Raw configuration object
63
- * @param options - Loading options
64
- * @returns Array of loaded configurations for all environments
70
+ * @param options - Loading options (without flowName)
71
+ * @returns Array of loaded configurations for all flows
65
72
  */
66
- export declare function loadAllEnvironments(rawConfig: unknown, options: Omit<LoadConfigOptions, 'environment'>): LoadConfigResult[];
73
+ export declare function loadAllFlows(rawConfig: unknown, options: Omit<LoadConfigOptions, 'flowName'>): LoadConfigResult[];
67
74
  /**
68
- * Get list of available environments from configuration.
75
+ * Get list of available flows from configuration.
69
76
  *
70
77
  * @param rawConfig - Raw configuration object
71
- * @returns Array of environment names, or empty array for single-environment configs
78
+ * @returns Array of flow names
72
79
  */
73
- export declare function getAvailableEnvironments(rawConfig: unknown): string[];
80
+ export declare function getAvailableFlows(rawConfig: unknown): string[];
74
81
  //# sourceMappingURL=loader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EACV,YAAY,EAGb,MAAM,oBAAoB,CAAC;AAQ5B;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,6CAA6C;IAC7C,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;IACxB,+BAA+B;IAC/B,YAAY,EAAE,YAAY,CAAC;IAC3B,yEAAyE;IACzE,WAAW,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,kBAAkB,EAAE,OAAO,CAAC;IAC5B,qEAAqE;IACrE,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,0BAA0B;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0BAA0B;IAC1B,MAAM,CAAC,EAAE;QACP,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;QAChC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;KACjC,CAAC;CACH;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,OAAO,EAClB,OAAO,EAAE,iBAAiB,GACzB,gBAAgB,CAmClB;AAwFD;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,OAAO,EAClB,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC,GAC9C,gBAAgB,EAAE,CAyBpB;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,EAAE,CAMrE"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAA8B,KAAK,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAWvD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,6CAA6C;IAC7C,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;IACxB,+BAA+B;IAC/B,YAAY,EAAE,YAAY,CAAC;IAC3B,gCAAgC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,WAAW,EAAE,OAAO,CAAC;IACrB,+BAA+B;IAC/B,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,0BAA0B;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,cAAc,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IACvC,0BAA0B;IAC1B,MAAM,CAAC,EAAE;QACP,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;QAChC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;KACjC,CAAC;CACH;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,OAAO,EAClB,OAAO,EAAE,iBAAiB,GACzB,gBAAgB,CAyElB;AAwCD;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAC1B,SAAS,EAAE,OAAO,EAClB,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,UAAU,CAAC,GAC3C,gBAAgB,EAAE,CAkBpB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,EAAE,CAK9D"}
@@ -1,139 +1,154 @@
1
1
  /**
2
2
  * Configuration Loader
3
3
  *
4
- * Loads and parses configurations with support for:
5
- * - Single-environment configs
6
- * - Multi-environment setups
7
- * - Environment selection
4
+ * Loads and parses Flow.Setup configurations using core getFlowConfig().
5
+ * Build options are determined by static platform defaults.
8
6
  */
9
- import { isMultiEnvConfig } from './validators.js';
10
- import { parseConfigStructure, normalizeAndValidate, normalizeConfigs, } from './parser.js';
7
+ import path from 'path';
8
+ import fs from 'fs-extra';
9
+ import { getFlowConfig, getPlatform } from '@walkeros/core';
10
+ import { validateFlowSetup, isFlowSetup, getAvailableFlows as getFlowNames, } from './validators.js';
11
+ import { getBuildDefaults, getDefaultOutput } from './build-defaults.js';
12
+ /** Default folder for includes if it exists */
13
+ const DEFAULT_INCLUDE_FOLDER = './shared';
11
14
  /**
12
15
  * Load and parse bundle configuration.
13
16
  *
14
17
  * @remarks
15
- * Automatically detects whether the config is:
16
- * - New format: { flow: {...}, build: {...} }
17
- * - Multi-environment format: { version: 1, environments: {...} }
18
- * - Legacy format: { platform, sources, destinations, packages, ... } (with deprecation warning)
19
- *
20
- * For multi-environment configs, requires `environment` option.
18
+ * Uses Flow.Setup from @walkeros/core as the only config format.
19
+ * - Validates config structure
20
+ * - Uses core getFlowConfig() for variable/definition resolution
21
+ * - Determines platform from resolved config
22
+ * - Applies static build defaults based on platform
21
23
  *
22
24
  * @param rawConfig - Raw configuration object from JSON file
23
25
  * @param options - Loading options
24
26
  * @returns Parsed configuration with flow and build separated
27
+ *
28
+ * @example
29
+ * ```typescript
30
+ * const config = loadBundleConfig(rawConfig, {
31
+ * configPath: './walkeros.config.json',
32
+ * flowName: 'production',
33
+ * });
34
+ * ```
25
35
  */
26
36
  export function loadBundleConfig(rawConfig, options) {
27
- // Level 1: Parse structure and extract config
28
- const { flowConfig, buildOptions, metadata } = parseConfigStructure(rawConfig, {
29
- configPath: options.configPath,
30
- environment: options.environment,
31
- });
32
- // Level 2: Normalize and validate
33
- const normalized = normalizeAndValidate(flowConfig, buildOptions, options.configPath);
34
- // Log environment selection if multi-environment
35
- if (metadata.isMultiEnvironment && options.logger) {
36
- options.logger.info(`📦 Using environment: ${metadata.environment} (${metadata.availableEnvironments?.length || 0} total)`);
37
+ // Validate as Flow.Setup
38
+ const setup = validateFlowSetup(rawConfig);
39
+ const availableFlows = getFlowNames(setup);
40
+ // Determine which flow to use
41
+ const flowName = resolveFlow(setup, options.flowName, availableFlows);
42
+ // Use core getFlowConfig() for resolution (variables, $refs, cascading)
43
+ const flowConfig = getFlowConfig(setup, flowName);
44
+ // Detect platform from resolved config
45
+ const platform = getPlatform(flowConfig);
46
+ if (!platform) {
47
+ throw new Error(`Invalid configuration: flow "${flowName}" must have a "web" or "server" key.`);
37
48
  }
38
- // Warn if --env flag specified for single-environment config
39
- if (!metadata.isMultiEnvironment && options.environment && options.logger) {
40
- options.logger.warn(`--env flag specified but configuration is single-environment. Ignoring flag.`);
49
+ // Get static build defaults based on platform
50
+ const buildDefaults = getBuildDefaults(platform);
51
+ // Extract packages from flowConfig (if present)
52
+ const packages = flowConfig.packages || {};
53
+ // Resolve output path relative to config directory
54
+ let output = getDefaultOutput(platform);
55
+ if (options.buildOverrides?.output) {
56
+ output = options.buildOverrides.output;
41
57
  }
42
- return {
43
- ...normalized,
44
- ...metadata,
45
- };
46
- }
47
- /**
48
- * Load multi-environment configuration.
49
- *
50
- * @deprecated Kept for backward compatibility. Use loadBundleConfig() instead.
51
- */
52
- function loadMultiEnvironmentConfig(setup, options) {
53
- const availableEnvironments = Object.keys(setup.environments);
54
- // Validate environment selection
55
- if (!options.environment) {
56
- throw new Error(`Multi-environment configuration detected. Please specify an environment using --env flag.\n` +
57
- `Available environments: ${availableEnvironments.join(', ')}`);
58
+ // Get config directory for relative path resolution
59
+ const configDir = path.dirname(options.configPath);
60
+ // Make output path absolute relative to config file
61
+ if (!path.isAbsolute(output)) {
62
+ output = path.resolve(configDir, output);
58
63
  }
59
- const selectedEnv = options.environment;
60
- if (!setup.environments[selectedEnv]) {
61
- throw new Error(`Environment "${selectedEnv}" not found in configuration.\n` +
62
- `Available environments: ${availableEnvironments.join(', ')}`);
64
+ // Get includes from config or use default if ./shared exists
65
+ let includes = setup.include;
66
+ if (!includes) {
67
+ const defaultIncludePath = path.resolve(configDir, DEFAULT_INCLUDE_FOLDER);
68
+ if (fs.pathExistsSync(defaultIncludePath)) {
69
+ includes = [DEFAULT_INCLUDE_FOLDER];
70
+ }
63
71
  }
64
- // Get the environment config
65
- const envConfig = setup.environments[selectedEnv];
66
- // Normalize flow and build configs separately
67
- const { flowConfig, buildOptions } = normalizeConfigs(envConfig, options.configPath);
68
- if (options.logger) {
69
- options.logger.info(`📦 Using environment: ${selectedEnv} (${availableEnvironments.length} total)`);
72
+ // Merge build options: defaults + CLI overrides
73
+ const buildOptions = {
74
+ ...buildDefaults,
75
+ packages,
76
+ output,
77
+ include: includes,
78
+ configDir,
79
+ ...options.buildOverrides,
80
+ };
81
+ // Log flow selection
82
+ const isMultiFlow = availableFlows.length > 1;
83
+ if (isMultiFlow && options.logger) {
84
+ options.logger.info(`📦 Using flow: ${flowName} (${availableFlows.length} total)`);
70
85
  }
71
86
  return {
72
87
  flowConfig,
73
88
  buildOptions,
74
- environment: selectedEnv,
75
- isMultiEnvironment: true,
76
- availableEnvironments,
89
+ flowName,
90
+ isMultiFlow,
91
+ availableFlows,
77
92
  };
78
93
  }
79
94
  /**
80
- * Load single-environment configuration.
95
+ * Resolve which flow to use.
81
96
  *
82
- * @deprecated Kept for backward compatibility. Use loadBundleConfig() instead.
97
+ * @param setup - Flow.Setup configuration
98
+ * @param requestedFlow - Flow name from CLI (optional)
99
+ * @param available - Available flow names
100
+ * @returns Flow name to use
101
+ * @throws Error if flow selection is invalid
83
102
  */
84
- function loadSingleEnvironmentConfig(config, options) {
85
- // Normalize the configs
86
- const { flowConfig, buildOptions } = normalizeConfigs(config, options.configPath);
87
- if (options.logger && options.environment) {
88
- options.logger.warn(`--env flag specified but configuration is single-environment. Ignoring flag.`);
103
+ function resolveFlow(setup, requestedFlow, available) {
104
+ // If only one flow, use it automatically
105
+ if (available.length === 1) {
106
+ return available[0];
89
107
  }
90
- return {
91
- flowConfig,
92
- buildOptions,
93
- environment: 'default',
94
- isMultiEnvironment: false,
95
- };
108
+ // Multiple flows require explicit selection
109
+ if (!requestedFlow) {
110
+ throw new Error(`Multiple flows found. Please specify a flow using --flow flag.\n` +
111
+ `Available flows: ${available.join(', ')}`);
112
+ }
113
+ // Validate the requested flow exists
114
+ if (!available.includes(requestedFlow)) {
115
+ throw new Error(`Flow "${requestedFlow}" not found in configuration.\n` +
116
+ `Available flows: ${available.join(', ')}`);
117
+ }
118
+ return requestedFlow;
96
119
  }
97
- // Legacy format support removed in v0.3.0
98
- // Migration: Convert old format { platform, sources, destinations, packages, code, output }
99
- // To new format: { flow: { platform, sources, destinations }, build: { packages, code, output } }
100
- // See docs/MIGRATION.md for details
101
120
  /**
102
- * Load all environments from a multi-environment configuration.
121
+ * Load all flows from a configuration.
103
122
  *
104
123
  * @remarks
105
- * Used by the --all flag to build all environments.
124
+ * Used by the --all flag to build all flows.
106
125
  *
107
126
  * @param rawConfig - Raw configuration object
108
- * @param options - Loading options
109
- * @returns Array of loaded configurations for all environments
127
+ * @param options - Loading options (without flowName)
128
+ * @returns Array of loaded configurations for all flows
110
129
  */
111
- export function loadAllEnvironments(rawConfig, options) {
112
- // Must be a multi-environment config
113
- if (!isMultiEnvConfig(rawConfig)) {
114
- throw new Error(`--all flag requires a multi-environment configuration (Setup format).\n` +
115
- `Your configuration appears to be single-environment.`);
116
- }
117
- const setup = rawConfig;
118
- const environments = Object.keys(setup.environments);
130
+ export function loadAllFlows(rawConfig, options) {
131
+ // Validate as Flow.Setup
132
+ const setup = validateFlowSetup(rawConfig);
133
+ const flows = getFlowNames(setup);
119
134
  if (options.logger) {
120
- options.logger.info(`📦 Loading all ${environments.length} environments: ${environments.join(', ')}`);
135
+ options.logger.info(`📦 Loading all ${flows.length} flows: ${flows.join(', ')}`);
121
136
  }
122
- // Load each environment
123
- return environments.map((envName) => loadMultiEnvironmentConfig(setup, {
137
+ // Load each flow
138
+ return flows.map((name) => loadBundleConfig(rawConfig, {
124
139
  ...options,
125
- environment: envName,
140
+ flowName: name,
126
141
  }));
127
142
  }
128
143
  /**
129
- * Get list of available environments from configuration.
144
+ * Get list of available flows from configuration.
130
145
  *
131
146
  * @param rawConfig - Raw configuration object
132
- * @returns Array of environment names, or empty array for single-environment configs
147
+ * @returns Array of flow names
133
148
  */
134
- export function getAvailableEnvironments(rawConfig) {
135
- if (isMultiEnvConfig(rawConfig)) {
136
- return Object.keys(rawConfig.environments);
149
+ export function getAvailableFlows(rawConfig) {
150
+ if (isFlowSetup(rawConfig)) {
151
+ return getFlowNames(rawConfig);
137
152
  }
138
153
  return [];
139
154
  }
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}