@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
@@ -1,69 +0,0 @@
1
- /**
2
- * Configuration Defaults
3
- *
4
- * Platform-specific default build options.
5
- */
6
- /**
7
- * Get default build configuration for platform.
8
- *
9
- * @param platform - Target platform ('web' or 'server')
10
- * @param code - User code to include (required for BuildOptions)
11
- * @param output - Output file path (optional, uses platform default)
12
- * @returns Platform-specific default build options
13
- *
14
- * @remarks
15
- * Provides sensible defaults for each platform:
16
- * - web: IIFE format for browser, ES2020 target
17
- * - server: ESM format for Node.js, Node18 target
18
- */
19
- export function getDefaultBuildOptions(platform, code, output) {
20
- const common = {
21
- code,
22
- packages: {},
23
- minify: false,
24
- sourcemap: false,
25
- cache: true,
26
- };
27
- if (platform === 'web') {
28
- return {
29
- ...common,
30
- platform: 'browser',
31
- format: 'iife',
32
- target: 'es2020',
33
- output: output || './dist/walker.js',
34
- };
35
- }
36
- return {
37
- ...common,
38
- platform: 'node',
39
- format: 'esm',
40
- target: 'node18',
41
- output: output || './dist/bundle.js',
42
- };
43
- }
44
- /**
45
- * Ensure build options have all required fields.
46
- *
47
- * @param buildOptions - Build options (possibly incomplete)
48
- * @param flowPlatform - Platform from Flow.Config
49
- * @returns Complete build options with defaults filled in
50
- *
51
- * @remarks
52
- * Validates and fills in missing required fields using platform-specific defaults.
53
- * Throws error if critical fields (code, output) are missing.
54
- */
55
- export function ensureBuildOptions(buildOptions, flowPlatform) {
56
- const defaults = getDefaultBuildOptions(flowPlatform, buildOptions.code || '', buildOptions.output);
57
- // Validate required fields
58
- if (!buildOptions.output && !defaults.output) {
59
- throw new Error('BuildOptions.output is required');
60
- }
61
- return {
62
- ...defaults,
63
- ...buildOptions,
64
- code: buildOptions.code || defaults.code || '',
65
- output: buildOptions.output || defaults.output,
66
- packages: buildOptions.packages || defaults.packages,
67
- };
68
- }
69
- //# sourceMappingURL=defaults.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,sBAAsB,CACpC,QAA0B,EAC1B,IAAY,EACZ,MAAe;IAEf,MAAM,MAAM,GAAG;QACb,IAAI;QACJ,QAAQ,EAAE,EAA8D;QACxE,MAAM,EAAE,KAAK;QACb,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,IAAI;KACZ,CAAC;IAEF,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;QACvB,OAAO;YACL,GAAG,MAAM;YACT,QAAQ,EAAE,SAAS;YACnB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,MAAM,IAAI,kBAAkB;SACrC,CAAC;IACJ,CAAC;IAED,OAAO;QACL,GAAG,MAAM;QACT,QAAQ,EAAE,MAAM;QAChB,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,MAAM,IAAI,kBAAkB;KACrC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,kBAAkB,CAChC,YAAmC,EACnC,YAA8B;IAE9B,MAAM,QAAQ,GAAG,sBAAsB,CACrC,YAAY,EACZ,YAAY,CAAC,IAAI,IAAI,EAAE,EACvB,YAAY,CAAC,MAAM,CACpB,CAAC;IAEF,2BAA2B;IAC3B,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IAED,OAAO;QACL,GAAG,QAAQ;QACX,GAAG,YAAY;QACf,IAAI,EAAE,YAAY,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,IAAI,EAAE;QAC9C,MAAM,EAAE,YAAY,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAO;QAC/C,QAAQ,EAAE,YAAY,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAS;KACtC,CAAC;AACpB,CAAC"}
@@ -1,128 +0,0 @@
1
- /**
2
- * Configuration Parser
3
- *
4
- * Parsing and normalization logic for configurations.
5
- */
6
- import type { Flow } from '@walkeros/core';
7
- import type { BuildOptions, EnvironmentConfig } from '../types/bundle.js';
8
- /**
9
- * Result of parsing bundle configuration.
10
- */
11
- export interface ParsedConfig {
12
- flowConfig: Flow.Config;
13
- buildOptions: BuildOptions;
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;
74
- /**
75
- * Parse and normalize bundle configuration.
76
- *
77
- * @param data - Raw configuration data (EnvironmentConfig format: { flow, build })
78
- * @returns Normalized flowConfig and buildOptions with platform-specific defaults
79
- * @throws Error if validation fails
80
- *
81
- * @example
82
- * ```typescript
83
- * const { flowConfig, buildOptions } = parseBundleConfig({
84
- * flow: {
85
- * platform: 'web',
86
- * sources: { browser: {...} },
87
- * destinations: { gtag: {...} }
88
- * },
89
- * build: {
90
- * packages: { '@walkeros/core': {...} },
91
- * code: '...',
92
- * output: './dist/bundle.js'
93
- * }
94
- * });
95
- * ```
96
- */
97
- export declare function parseBundleConfig(data: unknown): ParsedConfig;
98
- /**
99
- * Safely parse bundle configuration without throwing.
100
- *
101
- * @param data - Raw configuration data
102
- * @returns Success result with normalized configs or error result
103
- */
104
- export declare function safeParseBundleConfig(data: unknown): {
105
- success: boolean;
106
- data?: ParsedConfig;
107
- error?: Error;
108
- };
109
- /**
110
- * Normalize flow and build configurations with platform-specific defaults.
111
- *
112
- * @param config - Environment configuration or flow+build object
113
- * @param configPath - Path to config file (for relative template resolution)
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().
120
- */
121
- export declare function normalizeConfigs(config: EnvironmentConfig | {
122
- flow: Flow.Config;
123
- build: Partial<BuildOptions>;
124
- }, configPath?: string): {
125
- flowConfig: Flow.Config;
126
- buildOptions: BuildOptions;
127
- };
128
- //# sourceMappingURL=parser.d.ts.map
@@ -1 +0,0 @@
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"}
@@ -1,256 +0,0 @@
1
- /**
2
- * Configuration Parser
3
- *
4
- * Parsing and normalization logic for configurations.
5
- */
6
- import path from 'path';
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
- }
174
- /**
175
- * Parse and normalize bundle configuration.
176
- *
177
- * @param data - Raw configuration data (EnvironmentConfig format: { flow, build })
178
- * @returns Normalized flowConfig and buildOptions with platform-specific defaults
179
- * @throws Error if validation fails
180
- *
181
- * @example
182
- * ```typescript
183
- * const { flowConfig, buildOptions } = parseBundleConfig({
184
- * flow: {
185
- * platform: 'web',
186
- * sources: { browser: {...} },
187
- * destinations: { gtag: {...} }
188
- * },
189
- * build: {
190
- * packages: { '@walkeros/core': {...} },
191
- * code: '...',
192
- * output: './dist/bundle.js'
193
- * }
194
- * });
195
- * ```
196
- */
197
- export function parseBundleConfig(data) {
198
- // Basic type checking
199
- if (!isObject(data)) {
200
- throw new Error(`Invalid config: expected object, got ${typeof data}`);
201
- }
202
- // Check for new format { flow, build }
203
- if (!('flow' in data) || !isObject(data.flow)) {
204
- throw new Error(`Invalid config: missing "flow" field. ` +
205
- `Expected format: { flow: { platform: "web" | "server", ... }, build: { ... } }`);
206
- }
207
- if (!('build' in data) || !isObject(data.build)) {
208
- throw new Error(`Invalid config: missing "build" field. ` +
209
- `Expected format: { flow: { platform: "web" | "server", ... }, build: { ... } }`);
210
- }
211
- // Validate build.packages field
212
- const buildData = data.build;
213
- if ('packages' in buildData && !isObject(buildData.packages)) {
214
- throw new Error(`Invalid config: build.packages must be an object, got ${typeof buildData.packages}`);
215
- }
216
- // Use new simplified validation
217
- return normalizeAndValidate(data.flow, data.build, '/unknown/path');
218
- }
219
- /**
220
- * Safely parse bundle configuration without throwing.
221
- *
222
- * @param data - Raw configuration data
223
- * @returns Success result with normalized configs or error result
224
- */
225
- export function safeParseBundleConfig(data) {
226
- try {
227
- const normalized = parseBundleConfig(data);
228
- return {
229
- success: true,
230
- data: normalized,
231
- };
232
- }
233
- catch (error) {
234
- return {
235
- success: false,
236
- error: error instanceof Error ? error : new Error(String(error)),
237
- };
238
- }
239
- }
240
- /**
241
- * Normalize flow and build configurations with platform-specific defaults.
242
- *
243
- * @param config - Environment configuration or flow+build object
244
- * @param configPath - Path to config file (for relative template resolution)
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().
251
- */
252
- export function normalizeConfigs(config, configPath) {
253
- // Delegate to new simplified function
254
- return normalizeAndValidate(config.flow, config.build, configPath);
255
- }
256
- //# sourceMappingURL=parser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/config/parser.ts"],"names":[],"mappings":"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"}
@@ -1,108 +0,0 @@
1
- /**
2
- * Template Configuration Types
3
- *
4
- * Type definitions for template processing and serialization.
5
- * Used by the template engine and serializer.
6
- *
7
- * @packageDocumentation
8
- */
9
- /**
10
- * Source or Destination configuration item for templates.
11
- *
12
- * @remarks
13
- * This type is used in template processing where config objects
14
- * are serialized to JavaScript code.
15
- */
16
- export interface SourceDestinationItem {
17
- /**
18
- * JavaScript code reference (variable name or expression)
19
- */
20
- code: string;
21
- /**
22
- * Configuration object for the source/destination
23
- */
24
- config?: unknown;
25
- /**
26
- * Environment-specific variables
27
- */
28
- env?: unknown;
29
- /**
30
- * Allow additional properties for extensibility
31
- */
32
- [key: string]: unknown;
33
- }
34
- /**
35
- * Template variables that can be used in Handlebars templates.
36
- *
37
- * @remarks
38
- * These variables are available in template files for customization.
39
- */
40
- export interface TemplateVariables {
41
- /**
42
- * Serialized sources configuration
43
- */
44
- sources: string;
45
- /**
46
- * Serialized destinations configuration
47
- */
48
- destinations: string;
49
- /**
50
- * Serialized collector configuration
51
- */
52
- collector: string;
53
- /**
54
- * User-provided code to be inserted
55
- */
56
- CODE: string;
57
- /**
58
- * Build configuration (optional)
59
- */
60
- build?: Record<string, unknown>;
61
- }
62
- /**
63
- * Processed template variables after serialization.
64
- *
65
- * @remarks
66
- * Internal type used by the serializer to represent processed configs.
67
- */
68
- export interface ProcessedTemplateVariables {
69
- /**
70
- * Processed sources with serialized configs
71
- */
72
- sources?: Record<string, TemplateSource>;
73
- /**
74
- * Processed destinations with serialized configs
75
- */
76
- destinations?: Record<string, TemplateDestination>;
77
- /**
78
- * Processed collector configuration
79
- */
80
- collector?: Record<string, unknown> | string;
81
- /**
82
- * Allow additional properties
83
- */
84
- [key: string]: unknown;
85
- }
86
- /**
87
- * Template source after processing.
88
- *
89
- * @internal
90
- */
91
- export interface TemplateSource {
92
- code: string;
93
- config?: unknown | string;
94
- env?: unknown;
95
- [key: string]: unknown;
96
- }
97
- /**
98
- * Template destination after processing.
99
- *
100
- * @internal
101
- */
102
- export interface TemplateDestination {
103
- code: string;
104
- config?: unknown | string;
105
- env?: unknown;
106
- [key: string]: unknown;
107
- }
108
- //# sourceMappingURL=template.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/types/template.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;;GAMG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;IAEd;;OAEG;IACH,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED;;;;;GAKG;AACH,MAAM,WAAW,0BAA0B;IACzC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAEzC;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAEnD;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC;IAE7C;;OAEG;IACH,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC1B,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC1B,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB"}
@@ -1,10 +0,0 @@
1
- /**
2
- * Template Configuration Types
3
- *
4
- * Type definitions for template processing and serialization.
5
- * Used by the template engine and serializer.
6
- *
7
- * @packageDocumentation
8
- */
9
- export {};
10
- //# sourceMappingURL=template.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/types/template.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
@@ -1,29 +0,0 @@
1
- export default async function(context = {}) {
2
- const config = {
3
- sources: {
4
- {{#each sources}}
5
- {{@key}}: {
6
- code: {{{code}}},
7
- config: {{{config}}}{{#if env}},
8
- env: {{{env}}}{{/if}}
9
- },
10
- {{/each}}
11
- },
12
- destinations: {
13
- {{#each destinations}}
14
- {{@key}}: {
15
- code: {{{code}}},
16
- config: {{{config}}}{{#if env}},
17
- env: {{{env}}}{{/if}}
18
- },
19
- {{/each}}
20
- }{{#if collector}},
21
- ...{{{collector}}}{{/if}}
22
- };
23
-
24
- {{{CODE}}}
25
-
26
- const result = await startFlow(config);
27
-
28
- return result;
29
- }
package/templates/web.hbs DELETED
@@ -1,45 +0,0 @@
1
- (async () => {
2
- // Check if we're in a browser environment
3
- const window = typeof globalThis.window !== 'undefined' ? globalThis.window : undefined;
4
- const document = typeof globalThis.document !== 'undefined' ? globalThis.document : undefined;
5
-
6
- const config = {
7
- sources: {
8
- {{#each sources}}
9
- {{@key}}: {
10
- code: {{{code}}},
11
- config: {{{config}}}{{#unless config}}{}{{/unless}}{{#if env}},
12
- env: {
13
- window,
14
- document,
15
- ...{{{env}}}
16
- }{{/if}}
17
- }{{#unless @last}},{{/unless}}
18
- {{/each}}
19
- },
20
- destinations: {
21
- {{#each destinations}}
22
- {{@key}}: {
23
- code: {{{code}}},
24
- config: {{{config}}}{{#unless config}}{}{{/unless}}{{#if env}},
25
- env: {
26
- window,
27
- document,
28
- ...{{{env}}}
29
- }{{/if}}
30
- }{{#unless @last}},{{/unless}}
31
- {{/each}}
32
- }{{#if collector}},
33
- ...{{{collector}}}{{/if}}
34
- };
35
-
36
- {{{CODE}}}
37
-
38
- const { collector, elb } = await startFlow(config);
39
-
40
- if (typeof window !== 'undefined') {
41
- {{#if build.windowCollector}}window['{{build.windowCollector}}'] = collector;
42
- {{/if}}{{#if build.windowElb}}window['{{build.windowElb}}'] = elb;
43
- {{/if}}
44
- }
45
- })();