@walkeros/cli 0.3.6 → 0.4.1

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 (228) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/__tests__/bundle/bundler-helpers.test.d.ts +2 -0
  3. package/dist/__tests__/bundle/bundler-helpers.test.d.ts.map +1 -0
  4. package/dist/__tests__/bundle/bundler-helpers.test.js +285 -0
  5. package/dist/__tests__/bundle/bundler-helpers.test.js.map +1 -0
  6. package/dist/__tests__/bundle/bundler.test.js +9 -3
  7. package/dist/__tests__/bundle/bundler.test.js.map +1 -1
  8. package/dist/__tests__/bundle/programmatic.test.js +5 -1
  9. package/dist/__tests__/bundle/programmatic.test.js.map +1 -1
  10. package/dist/__tests__/bundle/serializer.test.js +1 -1
  11. package/dist/__tests__/bundle/serializer.test.js.map +1 -1
  12. package/dist/__tests__/bundle/template-engine.test.js +1 -1
  13. package/dist/__tests__/bundle/template-engine.test.js.map +1 -1
  14. package/dist/__tests__/cli.test.js +6 -71
  15. package/dist/__tests__/cli.test.js.map +1 -1
  16. package/dist/__tests__/config-loader.test.js +8 -5
  17. package/dist/__tests__/config-loader.test.js.map +1 -1
  18. package/dist/__tests__/core/config.test.js +1 -1
  19. package/dist/__tests__/core/config.test.js.map +1 -1
  20. package/dist/__tests__/core/logger.test.js +1 -1
  21. package/dist/__tests__/core/logger.test.js.map +1 -1
  22. package/dist/__tests__/integration/bundle-run.integration.test.d.ts +8 -0
  23. package/dist/__tests__/integration/bundle-run.integration.test.d.ts.map +1 -0
  24. package/dist/__tests__/integration/bundle-run.integration.test.js +50 -0
  25. package/dist/__tests__/integration/bundle-run.integration.test.js.map +1 -0
  26. package/dist/__tests__/push/push.test.d.ts +7 -0
  27. package/dist/__tests__/push/push.test.d.ts.map +1 -0
  28. package/dist/__tests__/push/push.test.js +197 -0
  29. package/dist/__tests__/push/push.test.js.map +1 -0
  30. package/dist/__tests__/simulate/env-loader.test.d.ts +2 -0
  31. package/dist/__tests__/simulate/env-loader.test.d.ts.map +1 -0
  32. package/dist/__tests__/simulate/env-loader.test.js +47 -0
  33. package/dist/__tests__/simulate/env-loader.test.js.map +1 -0
  34. package/dist/__tests__/smoke/production.smoke.test.d.ts +8 -0
  35. package/dist/__tests__/smoke/production.smoke.test.d.ts.map +1 -0
  36. package/dist/__tests__/smoke/production.smoke.test.js +58 -0
  37. package/dist/__tests__/smoke/production.smoke.test.js.map +1 -0
  38. package/dist/commands/bundle/bundler.d.ts +2 -2
  39. package/dist/commands/bundle/bundler.d.ts.map +1 -1
  40. package/dist/commands/bundle/bundler.js +70 -58
  41. package/dist/commands/bundle/bundler.js.map +1 -1
  42. package/dist/commands/bundle/index.d.ts +1 -1
  43. package/dist/commands/bundle/index.d.ts.map +1 -1
  44. package/dist/commands/bundle/index.js +11 -23
  45. package/dist/commands/bundle/index.js.map +1 -1
  46. package/dist/commands/bundle/package-manager.d.ts +1 -1
  47. package/dist/commands/bundle/package-manager.d.ts.map +1 -1
  48. package/dist/commands/bundle/serializer.d.ts +1 -1
  49. package/dist/commands/bundle/serializer.d.ts.map +1 -1
  50. package/dist/commands/bundle/serializer.js +1 -1
  51. package/dist/commands/bundle/serializer.js.map +1 -1
  52. package/dist/commands/bundle/stats.d.ts +2 -2
  53. package/dist/commands/bundle/stats.d.ts.map +1 -1
  54. package/dist/commands/bundle/stats.js +1 -1
  55. package/dist/commands/bundle/stats.js.map +1 -1
  56. package/dist/commands/bundle/template-engine.d.ts +1 -1
  57. package/dist/commands/bundle/template-engine.d.ts.map +1 -1
  58. package/dist/commands/bundle/template-engine.js +4 -2
  59. package/dist/commands/bundle/template-engine.js.map +1 -1
  60. package/dist/commands/push/index.d.ts +7 -0
  61. package/dist/commands/push/index.d.ts.map +1 -0
  62. package/dist/commands/push/index.js +252 -0
  63. package/dist/commands/push/index.js.map +1 -0
  64. package/dist/commands/push/types.d.ts +21 -0
  65. package/dist/commands/push/types.d.ts.map +1 -0
  66. package/dist/commands/push/types.js +2 -0
  67. package/dist/commands/push/types.js.map +1 -0
  68. package/dist/commands/run/__tests__/run.integration.test.js +1 -1
  69. package/dist/commands/run/__tests__/run.integration.test.js.map +1 -1
  70. package/dist/commands/run/__tests__/validators.test.js +1 -1
  71. package/dist/commands/run/__tests__/validators.test.js.map +1 -1
  72. package/dist/commands/run/execution.d.ts +14 -0
  73. package/dist/commands/run/execution.d.ts.map +1 -0
  74. package/dist/commands/run/execution.js +37 -0
  75. package/dist/commands/run/execution.js.map +1 -0
  76. package/dist/commands/run/index.d.ts +1 -1
  77. package/dist/commands/run/index.d.ts.map +1 -1
  78. package/dist/commands/run/index.js +33 -107
  79. package/dist/commands/run/index.js.map +1 -1
  80. package/dist/commands/run/types.d.ts +1 -1
  81. package/dist/commands/run/types.d.ts.map +1 -1
  82. package/dist/commands/run/utils.d.ts +26 -0
  83. package/dist/commands/run/utils.d.ts.map +1 -0
  84. package/dist/commands/run/utils.js +58 -0
  85. package/dist/commands/run/utils.js.map +1 -0
  86. package/dist/commands/run/validators.d.ts +1 -1
  87. package/dist/commands/run/validators.d.ts.map +1 -1
  88. package/dist/commands/run/validators.js +1 -1
  89. package/dist/commands/run/validators.js.map +1 -1
  90. package/dist/commands/simulate/env-loader.d.ts +19 -0
  91. package/dist/commands/simulate/env-loader.d.ts.map +1 -0
  92. package/dist/commands/simulate/env-loader.js +46 -0
  93. package/dist/commands/simulate/env-loader.js.map +1 -0
  94. package/dist/commands/simulate/index.d.ts +3 -3
  95. package/dist/commands/simulate/index.d.ts.map +1 -1
  96. package/dist/commands/simulate/index.js +14 -20
  97. package/dist/commands/simulate/index.js.map +1 -1
  98. package/dist/commands/simulate/jsdom-executor.d.ts +37 -0
  99. package/dist/commands/simulate/jsdom-executor.d.ts.map +1 -0
  100. package/dist/commands/simulate/jsdom-executor.js +137 -0
  101. package/dist/commands/simulate/jsdom-executor.js.map +1 -0
  102. package/dist/commands/simulate/simulator.d.ts +1 -5
  103. package/dist/commands/simulate/simulator.d.ts.map +1 -1
  104. package/dist/commands/simulate/simulator.js +33 -111
  105. package/dist/commands/simulate/simulator.js.map +1 -1
  106. package/dist/commands/simulate/types.d.ts +2 -2
  107. package/dist/commands/simulate/types.d.ts.map +1 -1
  108. package/dist/config/defaults.d.ts +1 -1
  109. package/dist/config/defaults.d.ts.map +1 -1
  110. package/dist/config/defaults.js +0 -1
  111. package/dist/config/defaults.js.map +1 -1
  112. package/dist/config/index.d.ts +8 -8
  113. package/dist/config/index.d.ts.map +1 -1
  114. package/dist/config/index.js +5 -5
  115. package/dist/config/index.js.map +1 -1
  116. package/dist/config/loader.d.ts +1 -1
  117. package/dist/config/loader.d.ts.map +1 -1
  118. package/dist/config/loader.js +23 -19
  119. package/dist/config/loader.js.map +1 -1
  120. package/dist/config/parser.d.ts +65 -1
  121. package/dist/config/parser.d.ts.map +1 -1
  122. package/dist/config/parser.js +176 -62
  123. package/dist/config/parser.js.map +1 -1
  124. package/dist/config/utils.d.ts +46 -0
  125. package/dist/config/utils.d.ts.map +1 -1
  126. package/dist/config/utils.js +103 -0
  127. package/dist/config/utils.js.map +1 -1
  128. package/dist/config/validators.d.ts +4 -1
  129. package/dist/config/validators.d.ts.map +1 -1
  130. package/dist/config/validators.js +4 -2
  131. package/dist/config/validators.js.map +1 -1
  132. package/dist/core/asset-resolver.d.ts.map +1 -1
  133. package/dist/core/asset-resolver.js +10 -3
  134. package/dist/core/asset-resolver.js.map +1 -1
  135. package/dist/core/docker.d.ts +17 -1
  136. package/dist/core/docker.d.ts.map +1 -1
  137. package/dist/core/docker.js +22 -1
  138. package/dist/core/docker.js.map +1 -1
  139. package/dist/core/execution.d.ts +2 -2
  140. package/dist/core/execution.d.ts.map +1 -1
  141. package/dist/core/execution.js +1 -1
  142. package/dist/core/execution.js.map +1 -1
  143. package/dist/core/index.d.ts +8 -6
  144. package/dist/core/index.d.ts.map +1 -1
  145. package/dist/core/index.js +8 -6
  146. package/dist/core/index.js.map +1 -1
  147. package/dist/core/logger.d.ts +11 -0
  148. package/dist/core/logger.d.ts.map +1 -1
  149. package/dist/core/logger.js +14 -0
  150. package/dist/core/logger.js.map +1 -1
  151. package/dist/core/temp-manager.d.ts +51 -0
  152. package/dist/core/temp-manager.d.ts.map +1 -0
  153. package/dist/core/temp-manager.js +73 -0
  154. package/dist/core/temp-manager.js.map +1 -0
  155. package/dist/core/utils.d.ts +10 -0
  156. package/dist/core/utils.d.ts.map +1 -0
  157. package/dist/core/utils.js +12 -0
  158. package/dist/core/utils.js.map +1 -0
  159. package/dist/index.d.ts +42 -13
  160. package/dist/index.d.ts.map +1 -1
  161. package/dist/index.js +827 -397
  162. package/dist/index.js.map +1 -1
  163. package/dist/types/bundle.d.ts +26 -12
  164. package/dist/types/bundle.d.ts.map +1 -1
  165. package/dist/types/index.d.ts +2 -2
  166. package/dist/types/index.d.ts.map +1 -1
  167. package/dist/types/index.js +2 -2
  168. package/dist/types/index.js.map +1 -1
  169. package/examples/.npm-cache/content-v2/sha512/0d/2d/7581c288670eaf8538ddd9df145b78756ce3be0791c6e0b9cd33429b3bae894525b9bda287a3cedffbcdd2c7b3107bafc03f2b0367eea489eee1cc042abb +1 -0
  170. package/examples/.npm-cache/content-v2/sha512/12/20/bc4f5acca143809f7e07da1fdafb38137d93243de4d5b403e6e10b92d0d3a6e51eab24fe9dbc9d3ed1cd72e8f7a406085e99c422bb2c7d1166cf9f1f564e +0 -0
  171. package/examples/.npm-cache/content-v2/sha512/22/ee/fb2695b01871c1d36946bdcfb49f1b520a57200d0a0b221b1e7d5f047ab38a8b2ab0e5f0e25a00acde1f3f2f9d24430a18f1092d438bc1a9e9891cc45f75 +0 -0
  172. package/examples/.npm-cache/content-v2/sha512/24/89/da1ce6a61bca6de7e132f241a675c01c83738bf6b78af25b5cce01d3030361332b3fe938571e2b721f1555da9ddf930fdcf8c02f0471556071590e68cc09 +0 -0
  173. package/examples/.npm-cache/content-v2/sha512/47/fd/c6be997da99228c3e279b95d4a46d6913947078a178f54ac71795a159f3513b1483232f4c2d0a1f403178bf9f96bb19615de32a9e2133e949880c6bc15e2 +0 -0
  174. package/examples/.npm-cache/content-v2/sha512/4b/1c/c1cb7f8b32102071a89fef97158daa32080ebaedfbbd596880d2213d84e305abc76d2a95a412ded55c1c3d487adcb1ceff87fc2c85d7e2856ebd9d3f16f3 +0 -0
  175. package/examples/.npm-cache/content-v2/sha512/6e/53/ff864769671f44f39d8a3bf904cd646535b745cc4824a8bb3189193b474678049f43b5178ba15cad7f0289046105e70f1565afc84e907120b35a466690fd +1 -0
  176. package/examples/.npm-cache/content-v2/sha512/70/4c/4c8837d446965c5551b4ea527e95fa011744fb727581d82cf35bb5599ea0b57d18baa490f7af93ef9a16e8e45e5c0802737da20575f4056a4a5c9a3cd288 +0 -0
  177. package/examples/.npm-cache/content-v2/sha512/96/ad/05de3bbb12d7de8ea353f962bdaea7d2eb44f707f2973462a6635daf537c67b46cca7764fed7d464fe62152c3f783a07aba1ceb35e09ad446bff05a4b466 +1 -0
  178. package/examples/.npm-cache/content-v2/sha512/b5/20/52dde94e6cef7170f6089c64a4843e57be18be450d956f4e455905aed047ae6a368451c93035e6ac3ee59576b600f03f815afba0836b3a16e10a9aaca4ba +1 -0
  179. package/examples/.npm-cache/content-v2/sha512/c7/a9/d166a1c39f97df312c59261319ba1cf9aac178bda0a0cb697d5ddd78bd8dd38ef1bf40017bcc8633c2049896c2d70696d9bff9280851f270792ff38bb3a0 +1 -0
  180. package/examples/.npm-cache/content-v2/sha512/e0/d0/8c14083b633e6adbd3c6a93da5fc0f6bbd456c5512ef276920bedd8d85d551052adff992de977aff326616a211aaa2d6ddcc801149e9b7f914f566359b6a +1 -0
  181. package/examples/.npm-cache/content-v2/sha512/e7/c5/06ad3fd79ac4f1031fe0b16ea5e54e232ca397bbcd7592c679021cbfb027276099f8c848f3f7a7691f0102ad53aa64f9141e61d729b037a678bd60440d17 +1 -0
  182. package/examples/.npm-cache/content-v2/sha512/f3/28/d5d32329604ed7d471a4949105daa2cc98858cf24f45b0b97c41d0eb0d5a9fe7bf1f69c792161cc6693e4fc1b52e886ac41875ebfb8fe47fafe417ca3e6e +0 -0
  183. package/examples/.npm-cache/index-v5/04/5a/2b5d7a7c407d85d746baa0f5c9388a333e35a717a8a0a81943daa6cb1364 +3 -0
  184. package/examples/.npm-cache/index-v5/12/9a/eba560cbace295d8ee04cf283015377bd77b379e70968fb6bc407c7fc410 +15 -0
  185. package/examples/.npm-cache/index-v5/2f/a2/7b047564b0ee21ac835ec609e89153dd6549be554d098584d5bfd19fe043 +15 -0
  186. package/examples/.npm-cache/index-v5/32/8e/322d58dd8d1e000be248ada51385bf96288e56039de9feec1a4c6a467653 +3 -0
  187. package/examples/.npm-cache/index-v5/57/93/d1d7cd1402e3e26468db03f2870822bb2c9018a506cdfb3b405f38cd3e1c +3 -0
  188. package/examples/.npm-cache/index-v5/5d/f8/0a1f4fa7149e4ff33e09eb6aea41ac8d1730c868a5d3ace91f762698acff +3 -0
  189. package/examples/.npm-cache/index-v5/69/a4/a92c72d838259b051cdf8e0acfb2bc680b6d4cfc642314a7836c3f7b2c50 +15 -0
  190. package/examples/.npm-cache/index-v5/71/31/6da3423bb203f3de5eb16c942431073f89be2cfcb40058ec91dcb5ce0abc +15 -0
  191. package/examples/.npm-cache/index-v5/7b/94/72b6bffa050d9ef52a558dd220663695bc606f756be0dfa196ef4f3913ba +3 -0
  192. package/examples/.npm-cache/index-v5/85/9e/99e97fdd562517e56285337db91d1a8f2f416b8d631cf4d7d754fa671299 +15 -0
  193. package/examples/.npm-cache/index-v5/92/4c/9416ada81a9b3c679539fd1ab53f8de3d41ff268f35eba7a194389a85b06 +3 -0
  194. package/examples/.npm-cache/index-v5/c1/5a/13df76b218deed8a6ef12961116af5183db98c53fad1b922fd9edc075247 +3 -0
  195. package/examples/.npm-cache/index-v5/cb/11/253c55410a8ab7c4a9ea9d6e1bf8ef1450a581da64c478074dfd82c8bff6 +3 -0
  196. package/examples/.npm-cache/index-v5/d5/ae/b57fad3a62b5ba2dbdf24b042a9e7b70820f3db00e5a630f02e1fea020dc +3 -0
  197. package/examples/.npm-cache/index-v5/d6/32/2f620f83c7d14451de98de8298c2408e05a16cc0829bd16c891ac19d7a67 +3 -0
  198. package/examples/.npm-cache/index-v5/dd/b5/01dc7a3cd8b6a03a69aee9af500d51ae19cb0aa12631a4aafd152148b8e5 +15 -0
  199. package/examples/.npm-cache/index-v5/e0/cf/6b862c15d74630d3871cd813d305210ab741311deb10baf8813014e0bc30 +3 -0
  200. package/examples/.npm-cache/index-v5/e2/be/e880ccd35950a814d3c1dded34d3938ac61b15a195321dc51357f801aad4 +15 -0
  201. package/examples/.npm-cache/index-v5/e5/1f/f4affe0b392cd03288f23cc03abcb274ff11a2c8f8965299de681914abb2 +3 -0
  202. package/examples/.npm-cache/index-v5/f3/5b/9ebe450958ff0d7cc44ab0a00080cb8a3ff1389744b5eab5f97b68a6a6af +3 -0
  203. package/examples/.npm-cache/index-v5/fb/c1/0de405e902866d53e7c30cf36a97dc2578838622b261816f44dc377c9a80 +3 -0
  204. package/examples/README.md +4 -4
  205. package/examples/event.json +53 -0
  206. package/examples/flow-order-complete.json +68 -0
  207. package/examples/flow-simple.json +32 -0
  208. package/examples/flow.json +82 -0
  209. package/examples/server-collect.mjs +1360 -1190
  210. package/examples/test.html +43 -0
  211. package/examples/web-serve.js +25503 -0
  212. package/examples/web-serve.json +4 -3
  213. package/package.json +3 -2
  214. package/templates/server.hbs +2 -2
  215. package/templates/web.hbs +12 -11
  216. package/dist/__tests__/bundle/bundler-integration.test.d.ts +0 -2
  217. package/dist/__tests__/bundle/bundler-integration.test.d.ts.map +0 -1
  218. package/dist/__tests__/bundle/bundler-integration.test.js +0 -106
  219. package/dist/__tests__/bundle/bundler-integration.test.js.map +0 -1
  220. package/dist/__tests__/simulate/programmatic.test.d.ts +0 -2
  221. package/dist/__tests__/simulate/programmatic.test.d.ts.map +0 -1
  222. package/dist/__tests__/simulate/programmatic.test.js +0 -51
  223. package/dist/__tests__/simulate/programmatic.test.js.map +0 -1
  224. package/dist/__tests__/simulate/simulator.test.d.ts +0 -2
  225. package/dist/__tests__/simulate/simulator.test.d.ts.map +0 -1
  226. package/dist/__tests__/simulate/simulator.test.js +0 -29
  227. package/dist/__tests__/simulate/simulator.test.js.map +0 -1
  228. package/examples/web-serve.mjs +0 -19456
@@ -4,7 +4,7 @@
4
4
  * Parsing and normalization logic for configurations.
5
5
  */
6
6
  import type { Flow } from '@walkeros/core';
7
- import type { BuildOptions, EnvironmentConfig } from '../types/bundle';
7
+ import type { BuildOptions, EnvironmentConfig } from '../types/bundle.js';
8
8
  /**
9
9
  * Result of parsing bundle configuration.
10
10
  */
@@ -12,6 +12,65 @@ export interface ParsedConfig {
12
12
  flowConfig: Flow.Config;
13
13
  buildOptions: BuildOptions;
14
14
  }
15
+ /**
16
+ * Result of config structure parsing (before validation).
17
+ */
18
+ export interface ParsedStructure {
19
+ /** Raw flow config (not yet validated) */
20
+ flowConfig: unknown;
21
+ /** Raw build options (not yet validated) */
22
+ buildOptions: unknown;
23
+ /** Metadata about the config */
24
+ metadata: {
25
+ /** Selected environment name */
26
+ environment: string;
27
+ /** Whether this is a multi-environment setup */
28
+ isMultiEnvironment: boolean;
29
+ /** All available environment names (for multi-env setups) */
30
+ availableEnvironments?: string[];
31
+ };
32
+ }
33
+ /**
34
+ * Options for parsing config structure.
35
+ */
36
+ export interface ParseStructureOptions {
37
+ /** Config file path (for error messages) */
38
+ configPath?: string;
39
+ /** Environment to select (for multi-env configs) */
40
+ environment?: string;
41
+ }
42
+ /**
43
+ * Parse config structure and extract environment-specific configuration.
44
+ *
45
+ * @param rawConfig - Raw configuration object
46
+ * @param options - Parsing options
47
+ * @returns Extracted flow config, build options, and metadata
48
+ * @throws Error if config format is invalid or environment is missing
49
+ *
50
+ * @remarks
51
+ * **Level 1 of 3-level config loading**:
52
+ * - Detects multi-env vs single-env format
53
+ * - Extracts the appropriate environment config
54
+ * - No validation performed (happens in normalizeAndValidate)
55
+ */
56
+ export declare function parseConfigStructure(rawConfig: unknown, options?: ParseStructureOptions): ParsedStructure;
57
+ /**
58
+ * Normalize and validate flow and build configurations.
59
+ *
60
+ * @param flowConfig - Raw flow configuration
61
+ * @param buildOptions - Raw build options
62
+ * @param configPath - Path to config file (for relative template resolution)
63
+ * @returns Validated and normalized configuration
64
+ * @throws Error if validation fails
65
+ *
66
+ * @remarks
67
+ * **Level 2 of 3-level config loading**:
68
+ * - Validates platform (once!)
69
+ * - Applies platform-specific defaults (single pass)
70
+ * - Resolves relative template paths
71
+ * - Ensures all required fields are present
72
+ */
73
+ export declare function normalizeAndValidate(flowConfig: unknown, buildOptions: unknown, configPath?: string): ParsedConfig;
15
74
  /**
16
75
  * Parse and normalize bundle configuration.
17
76
  *
@@ -53,6 +112,11 @@ export declare function safeParseBundleConfig(data: unknown): {
53
112
  * @param config - Environment configuration or flow+build object
54
113
  * @param configPath - Path to config file (for relative template resolution)
55
114
  * @returns Normalized flow and build configurations
115
+ *
116
+ * @deprecated Use normalizeAndValidate() instead (simpler, single-pass validation)
117
+ *
118
+ * @remarks
119
+ * Kept for backward compatibility. Internally delegates to normalizeAndValidate().
56
120
  */
57
121
  export declare function normalizeConfigs(config: EnvironmentConfig | {
58
122
  flow: Flow.Config;
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/config/parser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAKvE;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;IACxB,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,YAAY,CAyC7D;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,GAAG;IACpD,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,CAaA;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EACF,iBAAiB,GACjB;IAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;CAAE,EACvD,UAAU,CAAC,EAAE,MAAM,GAClB;IAAE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;IAAC,YAAY,EAAE,YAAY,CAAA;CAAE,CAmEzD"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/config/parser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EAElB,MAAM,oBAAoB,CAAC;AAQ5B;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;IACxB,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,0CAA0C;IAC1C,UAAU,EAAE,OAAO,CAAC;IACpB,4CAA4C;IAC5C,YAAY,EAAE,OAAO,CAAC;IACtB,gCAAgC;IAChC,QAAQ,EAAE;QACR,gCAAgC;QAChC,WAAW,EAAE,MAAM,CAAC;QACpB,gDAAgD;QAChD,kBAAkB,EAAE,OAAO,CAAC;QAC5B,6DAA6D;QAC7D,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;KAClC,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,4CAA4C;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,OAAO,EAClB,OAAO,GAAE,qBAA0B,GAClC,eAAe,CAiEjB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,OAAO,EACnB,YAAY,EAAE,OAAO,EACrB,UAAU,CAAC,EAAE,MAAM,GAClB,YAAY,CA4Gd;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,YAAY,CA+B7D;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,GAAG;IACpD,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,CAaA;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EACF,iBAAiB,GACjB;IAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;CAAE,EACvD,UAAU,CAAC,EAAE,MAAM,GAClB;IAAE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;IAAC,YAAY,EAAE,YAAY,CAAA;CAAE,CAGzD"}
@@ -4,9 +4,173 @@
4
4
  * Parsing and normalization logic for configurations.
5
5
  */
6
6
  import path from 'path';
7
- import { isObject } from './validators';
8
- import { ensureBuildOptions } from './defaults';
9
- import { validatePlatform } from './validators';
7
+ import { isObject, isSingleEnvConfig, isMultiEnvConfig, validatePlatform, } from './validators.js';
8
+ /**
9
+ * Parse config structure and extract environment-specific configuration.
10
+ *
11
+ * @param rawConfig - Raw configuration object
12
+ * @param options - Parsing options
13
+ * @returns Extracted flow config, build options, and metadata
14
+ * @throws Error if config format is invalid or environment is missing
15
+ *
16
+ * @remarks
17
+ * **Level 1 of 3-level config loading**:
18
+ * - Detects multi-env vs single-env format
19
+ * - Extracts the appropriate environment config
20
+ * - No validation performed (happens in normalizeAndValidate)
21
+ */
22
+ export function parseConfigStructure(rawConfig, options = {}) {
23
+ // Multi-environment format
24
+ if (isMultiEnvConfig(rawConfig)) {
25
+ const setup = rawConfig;
26
+ const availableEnvironments = Object.keys(setup.environments);
27
+ // Validate environment selection
28
+ if (!options.environment) {
29
+ throw new Error(`Multi-environment configuration detected. Please specify an environment using --env flag.\n` +
30
+ `Available environments: ${availableEnvironments.join(', ')}`);
31
+ }
32
+ const selectedEnv = options.environment;
33
+ if (!setup.environments[selectedEnv]) {
34
+ throw new Error(`Environment "${selectedEnv}" not found in configuration.\n` +
35
+ `Available environments: ${availableEnvironments.join(', ')}`);
36
+ }
37
+ const envConfig = setup.environments[selectedEnv];
38
+ return {
39
+ flowConfig: envConfig.flow,
40
+ buildOptions: envConfig.build,
41
+ metadata: {
42
+ environment: selectedEnv,
43
+ isMultiEnvironment: true,
44
+ availableEnvironments,
45
+ },
46
+ };
47
+ }
48
+ // Single-environment format
49
+ if (isSingleEnvConfig(rawConfig)) {
50
+ const config = rawConfig;
51
+ return {
52
+ flowConfig: config.flow,
53
+ buildOptions: config.build,
54
+ metadata: {
55
+ environment: 'default',
56
+ isMultiEnvironment: false,
57
+ },
58
+ };
59
+ }
60
+ // Invalid format - provide helpful error
61
+ const configPath = options.configPath || 'configuration';
62
+ const configType = isObject(rawConfig)
63
+ ? 'platform' in rawConfig
64
+ ? `invalid platform value: "${rawConfig.platform}"`
65
+ : 'missing "flow" and "build" fields'
66
+ : `not an object (got ${typeof rawConfig})`;
67
+ throw new Error(`Invalid configuration format at ${configPath}.\n` +
68
+ `Configuration ${configType}.\n\n` +
69
+ `Expected either:\n` +
70
+ ` 1. Multi-environment: { version: 1, environments: { prod: { flow: {...}, build: {...} } } }\n` +
71
+ ` 2. Single-environment: { flow: { platform: "web" | "server", ... }, build: { packages: {...}, ... } }`);
72
+ }
73
+ /**
74
+ * Normalize and validate flow and build configurations.
75
+ *
76
+ * @param flowConfig - Raw flow configuration
77
+ * @param buildOptions - Raw build options
78
+ * @param configPath - Path to config file (for relative template resolution)
79
+ * @returns Validated and normalized configuration
80
+ * @throws Error if validation fails
81
+ *
82
+ * @remarks
83
+ * **Level 2 of 3-level config loading**:
84
+ * - Validates platform (once!)
85
+ * - Applies platform-specific defaults (single pass)
86
+ * - Resolves relative template paths
87
+ * - Ensures all required fields are present
88
+ */
89
+ export function normalizeAndValidate(flowConfig, buildOptions, configPath) {
90
+ // Extract and validate platform (ONCE - not in type guards)
91
+ if (!isObject(flowConfig) || !('platform' in flowConfig)) {
92
+ throw new Error(`Invalid flow config: missing "platform" field. Expected "web" or "server".`);
93
+ }
94
+ const platform = flowConfig.platform;
95
+ if (!validatePlatform(platform)) {
96
+ throw new Error(`Invalid platform "${platform}". Must be "web" or "server".`);
97
+ }
98
+ // Validate build options structure
99
+ if (!isObject(buildOptions)) {
100
+ throw new Error(`Invalid build options: expected object, got ${typeof buildOptions}`);
101
+ }
102
+ // Apply platform-specific defaults (single pass merge)
103
+ const platformDefaults = platform === 'web'
104
+ ? {
105
+ platform: 'browser',
106
+ format: 'iife',
107
+ target: 'es2020',
108
+ minify: false,
109
+ sourcemap: false,
110
+ tempDir: '.tmp',
111
+ cache: true,
112
+ }
113
+ : {
114
+ platform: 'node',
115
+ format: 'esm',
116
+ target: 'node20',
117
+ minify: false,
118
+ sourcemap: false,
119
+ tempDir: '.tmp',
120
+ cache: true,
121
+ };
122
+ // Single merge: defaults + user config + conditional defaults
123
+ const merged = {
124
+ ...platformDefaults,
125
+ ...buildOptions,
126
+ };
127
+ // Auto-select default template based on platform if not specified
128
+ if (merged.template === undefined) {
129
+ merged.template = platform === 'server' ? 'server.hbs' : 'web.hbs';
130
+ }
131
+ // Apply window assignment defaults for browser IIFE
132
+ if (merged.format === 'iife' && merged.platform === 'browser') {
133
+ if (merged.windowCollector === undefined) {
134
+ merged.windowCollector = 'collector';
135
+ }
136
+ if (merged.windowElb === undefined) {
137
+ merged.windowElb = 'elb';
138
+ }
139
+ }
140
+ // Resolve template path relative to config file directory if it starts with ./ or ../
141
+ if (configPath &&
142
+ merged.template &&
143
+ !path.isAbsolute(merged.template) &&
144
+ (merged.template.startsWith('./') || merged.template.startsWith('../'))) {
145
+ const configDir = path.dirname(configPath);
146
+ merged.template = path.resolve(configDir, merged.template);
147
+ }
148
+ // Apply platform-specific defaults for required fields
149
+ if (!merged.output || merged.output === '') {
150
+ merged.output =
151
+ platform === 'web' ? './dist/walker.js' : './dist/bundle.js';
152
+ }
153
+ // Resolve output path relative to config file directory if it's relative
154
+ // Skip resolution for placeholder paths used in tests/programmatic API
155
+ if (configPath &&
156
+ configPath !== '/unknown/path' &&
157
+ merged.output &&
158
+ !path.isAbsolute(merged.output)) {
159
+ const configDir = path.dirname(configPath);
160
+ merged.output = path.resolve(configDir, merged.output);
161
+ }
162
+ if (!merged.packages) {
163
+ merged.packages = {};
164
+ }
165
+ if (merged.code === undefined || merged.code === '') {
166
+ merged.code = '';
167
+ }
168
+ // Return fully validated config
169
+ return {
170
+ flowConfig: flowConfig,
171
+ buildOptions: merged,
172
+ };
173
+ }
10
174
  /**
11
175
  * Parse and normalize bundle configuration.
12
176
  *
@@ -44,18 +208,13 @@ export function parseBundleConfig(data) {
44
208
  throw new Error(`Invalid config: missing "build" field. ` +
45
209
  `Expected format: { flow: { platform: "web" | "server", ... }, build: { ... } }`);
46
210
  }
47
- const flowData = data.flow;
48
- if (!('platform' in flowData) ||
49
- (flowData.platform !== 'web' && flowData.platform !== 'server')) {
50
- throw new Error(`Invalid config: flow.platform must be "web" or "server", got "${flowData.platform}"`);
51
- }
52
211
  // Validate build.packages field
53
212
  const buildData = data.build;
54
213
  if ('packages' in buildData && !isObject(buildData.packages)) {
55
214
  throw new Error(`Invalid config: build.packages must be an object, got ${typeof buildData.packages}`);
56
215
  }
57
- const config = data;
58
- return normalizeConfigs(config, '/unknown/path');
216
+ // Use new simplified validation
217
+ return normalizeAndValidate(data.flow, data.build, '/unknown/path');
59
218
  }
60
219
  /**
61
220
  * Safely parse bundle configuration without throwing.
@@ -84,59 +243,14 @@ export function safeParseBundleConfig(data) {
84
243
  * @param config - Environment configuration or flow+build object
85
244
  * @param configPath - Path to config file (for relative template resolution)
86
245
  * @returns Normalized flow and build configurations
246
+ *
247
+ * @deprecated Use normalizeAndValidate() instead (simpler, single-pass validation)
248
+ *
249
+ * @remarks
250
+ * Kept for backward compatibility. Internally delegates to normalizeAndValidate().
87
251
  */
88
252
  export function normalizeConfigs(config, configPath) {
89
- const flowConfig = config.flow;
90
- const platform = flowConfig
91
- .platform;
92
- if (!validatePlatform(platform)) {
93
- throw new Error(`Invalid platform "${platform}". Must be "web" or "server".`);
94
- }
95
- // Apply platform-specific build defaults
96
- const buildDefaults = platform === 'web'
97
- ? {
98
- platform: 'browser',
99
- format: 'iife',
100
- target: 'es2020',
101
- minify: false,
102
- sourcemap: false,
103
- tempDir: '.tmp',
104
- cache: true,
105
- }
106
- : {
107
- platform: 'node',
108
- format: 'esm',
109
- target: 'node20',
110
- minify: false,
111
- sourcemap: false,
112
- tempDir: '.tmp',
113
- cache: true,
114
- };
115
- // Merge build config
116
- const buildConfig = {
117
- ...buildDefaults,
118
- ...config.build,
119
- };
120
- // Auto-select default template based on platform if not specified
121
- // Only auto-select if template is undefined (not explicitly set to empty string or false)
122
- if (buildConfig.template === undefined) {
123
- buildConfig.template = platform === 'server' ? 'server.hbs' : 'web.hbs';
124
- }
125
- // Resolve template path relative to config file directory if it starts with ./ or ../
126
- if (configPath &&
127
- buildConfig.template &&
128
- !path.isAbsolute(buildConfig.template)) {
129
- if (buildConfig.template.startsWith('./') ||
130
- buildConfig.template.startsWith('../')) {
131
- const configDir = path.dirname(configPath);
132
- buildConfig.template = path.resolve(configDir, buildConfig.template);
133
- }
134
- }
135
- // Ensure all required build fields are present
136
- const buildOptions = ensureBuildOptions(buildConfig, platform);
137
- return {
138
- flowConfig,
139
- buildOptions,
140
- };
253
+ // Delegate to new simplified function
254
+ return normalizeAndValidate(config.flow, config.build, configPath);
141
255
  }
142
256
  //# sourceMappingURL=parser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/config/parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/config/parser.ts"],"names":[],"mappings":"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"}
@@ -65,4 +65,50 @@ export declare function loadJsonConfig<T>(configPath: string): Promise<T>;
65
65
  * ```
66
66
  */
67
67
  export declare function getTempDir(tempDir?: string): string;
68
+ /**
69
+ * Load JSON from inline string, file path, or URL.
70
+ *
71
+ * Supports three input formats:
72
+ * 1. Inline JSON string - parsed directly
73
+ * 2. Local file path - read and parsed
74
+ * 3. HTTP/HTTPS URL - downloaded and parsed
75
+ *
76
+ * Detection priority:
77
+ * 1. URL (http://, https://) → download and parse
78
+ * 2. Existing file path → read and parse
79
+ * 3. Valid JSON string → parse directly
80
+ * 4. Simple string → treat as {name: string} for backward compatibility
81
+ *
82
+ * @param source - JSON string, file path, or URL
83
+ * @param options - Optional configuration
84
+ * @param options.name - Parameter name for error messages (e.g., "event", "config")
85
+ * @param options.required - Throw error if source is empty (default: false)
86
+ * @param options.fallback - Default value if source is empty
87
+ * @returns Parsed JSON object
88
+ * @throws Error if source is required but empty, or if loading/parsing fails
89
+ *
90
+ * @example
91
+ * ```typescript
92
+ * // Inline JSON
93
+ * await loadJsonFromSource('{"name":"order complete","data":{}}')
94
+ *
95
+ * // File path
96
+ * await loadJsonFromSource('./examples/event.json')
97
+ *
98
+ * // URL
99
+ * await loadJsonFromSource('https://example.com/event.json')
100
+ *
101
+ * // With options
102
+ * await loadJsonFromSource(input, {
103
+ * name: 'event',
104
+ * required: true,
105
+ * fallback: { name: 'default' }
106
+ * })
107
+ * ```
108
+ */
109
+ export declare function loadJsonFromSource<T = unknown>(source: string | undefined, options?: {
110
+ name?: string;
111
+ required?: boolean;
112
+ fallback?: T;
113
+ }): Promise<T>;
68
114
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/config/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAO1C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAkClE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQ5D;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,cAAc,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAmCtE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CAAC,OAAO,SAAS,GAAG,MAAM,CAMnD"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/config/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAO1C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAkClE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQ5D;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,cAAc,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAmCtE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CAAC,OAAO,SAAS,GAAG,MAAM,CAMnD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,wBAAsB,kBAAkB,CAAC,CAAC,GAAG,OAAO,EAClD,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,OAAO,CAAC,EAAE;IACR,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,CAAC;CACd,GACA,OAAO,CAAC,CAAC,CAAC,CAmEZ"}
@@ -4,6 +4,7 @@
4
4
  import fs from 'fs-extra';
5
5
  import path from 'path';
6
6
  import os from 'os';
7
+ import { getErrorMessage } from '../core/index.js';
7
8
  /**
8
9
  * Check if a string is a valid URL
9
10
  *
@@ -151,4 +152,106 @@ export function getTempDir(tempDir = '.tmp') {
151
152
  : path.join(process.cwd(), tempDir);
152
153
  return path.join(basePath, `cli-${Date.now()}-${randomId}`);
153
154
  }
155
+ /**
156
+ * Load JSON from inline string, file path, or URL.
157
+ *
158
+ * Supports three input formats:
159
+ * 1. Inline JSON string - parsed directly
160
+ * 2. Local file path - read and parsed
161
+ * 3. HTTP/HTTPS URL - downloaded and parsed
162
+ *
163
+ * Detection priority:
164
+ * 1. URL (http://, https://) → download and parse
165
+ * 2. Existing file path → read and parse
166
+ * 3. Valid JSON string → parse directly
167
+ * 4. Simple string → treat as {name: string} for backward compatibility
168
+ *
169
+ * @param source - JSON string, file path, or URL
170
+ * @param options - Optional configuration
171
+ * @param options.name - Parameter name for error messages (e.g., "event", "config")
172
+ * @param options.required - Throw error if source is empty (default: false)
173
+ * @param options.fallback - Default value if source is empty
174
+ * @returns Parsed JSON object
175
+ * @throws Error if source is required but empty, or if loading/parsing fails
176
+ *
177
+ * @example
178
+ * ```typescript
179
+ * // Inline JSON
180
+ * await loadJsonFromSource('{"name":"order complete","data":{}}')
181
+ *
182
+ * // File path
183
+ * await loadJsonFromSource('./examples/event.json')
184
+ *
185
+ * // URL
186
+ * await loadJsonFromSource('https://example.com/event.json')
187
+ *
188
+ * // With options
189
+ * await loadJsonFromSource(input, {
190
+ * name: 'event',
191
+ * required: true,
192
+ * fallback: { name: 'default' }
193
+ * })
194
+ * ```
195
+ */
196
+ export async function loadJsonFromSource(source, options) {
197
+ const paramName = options?.name || 'input';
198
+ // Handle empty/undefined input
199
+ if (!source || source.trim() === '') {
200
+ if (options?.required) {
201
+ throw new Error(`${paramName} is required`);
202
+ }
203
+ if (options?.fallback !== undefined) {
204
+ return options.fallback;
205
+ }
206
+ return {};
207
+ }
208
+ const trimmedSource = source.trim();
209
+ // 1. Check if URL
210
+ if (isUrl(trimmedSource)) {
211
+ try {
212
+ const tempPath = await downloadFromUrl(trimmedSource);
213
+ try {
214
+ const data = await fs.readJson(tempPath);
215
+ return data;
216
+ }
217
+ finally {
218
+ // Clean up temp file
219
+ try {
220
+ await fs.remove(tempPath);
221
+ }
222
+ catch {
223
+ // Ignore cleanup errors
224
+ }
225
+ }
226
+ }
227
+ catch (error) {
228
+ throw new Error(`Failed to load ${paramName} from URL ${trimmedSource}: ${getErrorMessage(error)}`);
229
+ }
230
+ }
231
+ // 2. Check if file path exists
232
+ const resolvedPath = path.resolve(trimmedSource);
233
+ if (await fs.pathExists(resolvedPath)) {
234
+ try {
235
+ const data = await fs.readJson(resolvedPath);
236
+ return data;
237
+ }
238
+ catch (error) {
239
+ throw new Error(`Failed to parse ${paramName} from file ${trimmedSource}: ${getErrorMessage(error)}`);
240
+ }
241
+ }
242
+ // 3. Try to parse as inline JSON
243
+ try {
244
+ const parsed = JSON.parse(trimmedSource);
245
+ return parsed;
246
+ }
247
+ catch (jsonError) {
248
+ // 4. Fallback: treat as event name string for backward compatibility
249
+ // This allows simple strings like "page view" to work
250
+ if (!trimmedSource.startsWith('{') && !trimmedSource.startsWith('[')) {
251
+ return { name: trimmedSource };
252
+ }
253
+ // If it looks like JSON but failed to parse, throw helpful error
254
+ throw new Error(`Failed to parse ${paramName}. Input appears to be JSON but contains errors: ${jsonError instanceof Error ? jsonError.message : String(jsonError)}`);
255
+ }
256
+ }
154
257
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/config/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/config/utils.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Type checking utilities for configuration validation.
5
5
  */
6
- import type { Setup, EnvironmentConfig } from '../types/bundle';
6
+ import type { Setup, EnvironmentConfig } from '../types/bundle.js';
7
7
  /**
8
8
  * Type guard: Check if value is a plain object.
9
9
  */
@@ -18,6 +18,9 @@ export declare function validatePlatform(platform: unknown): platform is 'web' |
18
18
  export declare function isMultiEnvConfig(data: unknown): data is Setup;
19
19
  /**
20
20
  * Type guard: Check if config is single-environment format.
21
+ *
22
+ * @remarks
23
+ * Only checks structural shape. Platform validation happens later in normalization.
21
24
  */
22
25
  export declare function isSingleEnvConfig(data: unknown): data is EnvironmentConfig;
23
26
  //# 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;;;;GAIG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEnE;;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;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,iBAAiB,CAS1E"}
@@ -30,6 +30,9 @@ export function isMultiEnvConfig(data) {
30
30
  }
31
31
  /**
32
32
  * Type guard: Check if config is single-environment format.
33
+ *
34
+ * @remarks
35
+ * Only checks structural shape. Platform validation happens later in normalization.
33
36
  */
34
37
  export function isSingleEnvConfig(data) {
35
38
  return (isObject(data) &&
@@ -37,8 +40,7 @@ export function isSingleEnvConfig(data) {
37
40
  'build' in data &&
38
41
  isObject(data.flow) &&
39
42
  isObject(data.build) &&
40
- 'platform' in data.flow &&
41
- validatePlatform(data.flow.platform));
43
+ 'platform' in data.flow);
42
44
  }
43
45
  // Legacy format support removed in v0.3.0
44
46
  // See docs/MIGRATION.md for migration guide
@@ -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;;;;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;;;;;GAKG;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,CACxB,CAAC;AACJ,CAAC;AAED,0CAA0C;AAC1C,4CAA4C"}
@@ -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;AAKH;;;;;;;;;GASG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAuBvC;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"}