@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,173 +0,0 @@
1
- import { serializeToJS, serializeConfig, processTemplateVariables, } from '../../commands/bundle/serializer.js';
2
- describe('Serializer', () => {
3
- describe('serializeToJS', () => {
4
- it('should serialize primitives correctly', () => {
5
- expect(serializeToJS(null)).toBe('null');
6
- expect(serializeToJS(undefined)).toBe('undefined');
7
- expect(serializeToJS(true)).toBe('true');
8
- expect(serializeToJS(false)).toBe('false');
9
- expect(serializeToJS(42)).toBe('42');
10
- expect(serializeToJS('hello')).toBe('"hello"');
11
- });
12
- it('should serialize strings with single quotes when specified', () => {
13
- expect(serializeToJS('test', { singleQuotes: true })).toBe("'test'");
14
- });
15
- it('should detect and preserve arrow functions', () => {
16
- const fn1 = '(x) => x * 2';
17
- const fn2 = 'entity => entity.type === "product"';
18
- const fn3 = '() => { return true; }';
19
- expect(serializeToJS(fn1)).toBe(fn1);
20
- expect(serializeToJS(fn2)).toBe(fn2);
21
- expect(serializeToJS(fn3)).toBe(fn3);
22
- });
23
- it('should serialize arrays correctly', () => {
24
- expect(serializeToJS([])).toBe('[]');
25
- expect(serializeToJS([1, 2, 3])).toBe('[\n 1,\n 2,\n 3\n]');
26
- expect(serializeToJS(['a', 'b'])).toBe('[\n "a",\n "b"\n]');
27
- });
28
- it('should serialize objects correctly', () => {
29
- expect(serializeToJS({})).toBe('{}');
30
- const simple = { name: 'test', value: 42 };
31
- expect(serializeToJS(simple)).toBe('{\n name: "test",\n value: 42\n}');
32
- });
33
- it('should handle nested objects and arrays', () => {
34
- const complex = {
35
- settings: {
36
- ga4: {
37
- measurementId: 'G-123',
38
- enabled: true,
39
- },
40
- },
41
- items: [
42
- { id: 1, name: 'item1' },
43
- { id: 2, name: 'item2' },
44
- ],
45
- };
46
- const result = serializeToJS(complex);
47
- expect(result).toContain('settings: {');
48
- expect(result).toContain('ga4: {');
49
- expect(result).toContain('measurementId: "G-123"');
50
- expect(result).toContain('items: [');
51
- });
52
- it('should handle keys that need quotes', () => {
53
- const obj = {
54
- 'key-with-dash': 'value1',
55
- '123numeric': 'value2',
56
- 'key with space': 'value3',
57
- normalKey: 'value4',
58
- };
59
- const result = serializeToJS(obj);
60
- expect(result).toContain('"key-with-dash": "value1"');
61
- expect(result).toContain('"123numeric": "value2"');
62
- expect(result).toContain('"key with space": "value3"');
63
- expect(result).toContain('normalKey: "value4"');
64
- });
65
- });
66
- describe('serializeConfig', () => {
67
- it('should handle empty config', () => {
68
- expect(serializeConfig({})).toBe('{}');
69
- });
70
- it('should serialize config with single quotes', () => {
71
- const config = {
72
- settings: {
73
- endpoint: 'https://api.example.com',
74
- },
75
- };
76
- const result = serializeConfig(config);
77
- expect(result).toContain("endpoint: 'https://api.example.com'");
78
- });
79
- it('should handle complex mapping configurations', () => {
80
- const config = {
81
- mapping: {
82
- order: {
83
- complete: {
84
- name: 'purchase',
85
- data: {
86
- map: {
87
- transaction_id: 'data.id',
88
- condition: '(entity) => entity.entity === "product"',
89
- },
90
- },
91
- },
92
- },
93
- },
94
- };
95
- const result = serializeConfig(config);
96
- expect(result).toContain("name: 'purchase'");
97
- expect(result).toContain("transaction_id: 'data.id'");
98
- expect(result).toContain('(entity) => entity.entity === "product"');
99
- });
100
- });
101
- describe('processTemplateVariables', () => {
102
- it('should process sources and destinations config objects', () => {
103
- const variables = {
104
- sources: {
105
- browser: {
106
- code: 'sourceBrowser',
107
- config: { debug: true },
108
- },
109
- },
110
- destinations: {
111
- gtag: {
112
- code: 'destinationGtag',
113
- config: {
114
- settings: {
115
- ga4: { measurementId: 'G-123' },
116
- },
117
- },
118
- },
119
- },
120
- };
121
- const result = processTemplateVariables(variables);
122
- expect(result.sources?.browser?.config).toBe('{\n debug: true\n}');
123
- expect(result.destinations?.gtag?.config).toContain("measurementId: 'G-123'");
124
- });
125
- it('should handle string configs (pass through)', () => {
126
- const variables = {
127
- sources: {
128
- test: {
129
- code: 'source',
130
- config: '{ debug: true }',
131
- },
132
- },
133
- };
134
- const result = processTemplateVariables(variables);
135
- expect(result.sources?.test?.config).toBe('{ debug: true }');
136
- });
137
- it('should handle undefined env values', () => {
138
- const variables = {
139
- sources: {
140
- test: {
141
- code: 'source',
142
- config: {},
143
- env: undefined,
144
- },
145
- },
146
- };
147
- const result = processTemplateVariables(variables);
148
- expect(result.sources?.test?.env).toBeUndefined();
149
- expect('env' in result.sources.test).toBe(false);
150
- });
151
- it('should handle collector configuration', () => {
152
- const variables = {
153
- collector: {
154
- settings: {
155
- debug: true,
156
- },
157
- },
158
- };
159
- const result = processTemplateVariables(variables);
160
- expect(result.collector).toContain('debug: true');
161
- });
162
- it('should preserve other variables', () => {
163
- const variables = {
164
- title: 'My App',
165
- version: '1.0.0',
166
- };
167
- const result = processTemplateVariables(variables);
168
- expect(result.title).toBe('My App');
169
- expect(result.version).toBe('1.0.0');
170
- });
171
- });
172
- });
173
- //# sourceMappingURL=serializer.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serializer.test.js","sourceRoot":"","sources":["../../../src/__tests__/bundle/serializer.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=template-engine.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"template-engine.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/bundle/template-engine.test.ts"],"names":[],"mappings":""}
@@ -1,107 +0,0 @@
1
- import fs from 'fs-extra';
2
- import path from 'path';
3
- import { TemplateEngine } from '../../commands/bundle/template-engine.js';
4
- import { getId } from '@walkeros/core';
5
- describe('TemplateEngine', () => {
6
- const testOutputDir = path.join('.tmp', `template-${Date.now()}-${getId()}`);
7
- const engine = new TemplateEngine();
8
- beforeEach(async () => {
9
- await fs.ensureDir(testOutputDir);
10
- });
11
- afterEach(async () => {
12
- await fs.remove(testOutputDir);
13
- });
14
- describe('Templates', () => {
15
- it('should process template with sources and destinations', async () => {
16
- const templatePath = path.join(testOutputDir, 'test.hbs');
17
- await fs.writeFile(templatePath, '{{{CODE}}}\nSources: {{#each sources}}{{@key}} {{/each}}\nDestinations: {{#each destinations}}{{@key}} {{/each}}');
18
- const sources = {
19
- browser: { code: 'sourceBrowser', config: {} },
20
- };
21
- const destinations = {
22
- gtag: { code: 'destinationGtag', config: {} },
23
- };
24
- const collector = {};
25
- const result = await engine.process(templatePath, 'console.log("test");', sources, destinations, collector, {});
26
- expect(result).toContain('console.log("test");');
27
- expect(result).toContain('Sources: browser');
28
- expect(result).toContain('Destinations: gtag');
29
- });
30
- it('should replace bundle placeholder', async () => {
31
- const templatePath = path.join(testOutputDir, 'test.hbs');
32
- await fs.writeFile(templatePath, 'Start\n{{{CODE}}}\nEnd');
33
- const result = await engine.process(templatePath, 'const x = 42;', {}, {}, {}, {});
34
- expect(result).toBe('Start\nconst x = 42;\nEnd');
35
- });
36
- it('should handle missing variables gracefully', async () => {
37
- const templatePath = path.join(testOutputDir, 'test.hbs');
38
- await fs.writeFile(templatePath, '{{{CODE}}} - {{MISSING}}');
39
- const result = await engine.process(templatePath, 'code', {}, {}, {}, {});
40
- expect(result).toBe('code - ');
41
- });
42
- it('should handle config serialization', async () => {
43
- const templatePath = path.join(testOutputDir, 'test.hbs');
44
- await fs.writeFile(templatePath, '{{{CODE}}}\n{{#each sources}}Code: {{{code}}}, Config: {{{config}}}\n{{/each}}');
45
- const sources = {
46
- browser: {
47
- code: 'sourceBrowser',
48
- config: { settings: { prefix: 'data-elb' } },
49
- },
50
- };
51
- const result = await engine.process(templatePath, 'const test = true;', sources, {}, {}, {});
52
- expect(result).toContain('Code: sourceBrowser');
53
- expect(result).toContain('Config: {');
54
- expect(result).toContain('prefix');
55
- });
56
- });
57
- describe('Object Iteration', () => {
58
- it('should iterate over sources and destinations objects', async () => {
59
- const templatePath = path.join(testOutputDir, 'test.hbs');
60
- await fs.writeFile(templatePath, '{{#each sources}}Source {{@key}}: {{code}}\n{{/each}}{{#each destinations}}Destination {{@key}}: {{code}}\n{{/each}}{{{CODE}}}');
61
- const sources = {
62
- browser: { code: 'sourceBrowser' },
63
- dataLayer: { code: 'sourceDataLayer' },
64
- };
65
- const destinations = {
66
- gtag: { code: 'destinationGtag' },
67
- api: { code: 'destinationAPI' },
68
- };
69
- const result = await engine.process(templatePath, 'const bundle = true;', sources, destinations, {});
70
- expect(result).toContain('Source browser: sourceBrowser');
71
- expect(result).toContain('Source dataLayer: sourceDataLayer');
72
- expect(result).toContain('Destination gtag: destinationGtag');
73
- expect(result).toContain('Destination api: destinationAPI');
74
- expect(result).toContain('const bundle = true;');
75
- });
76
- it('should handle collector configuration', async () => {
77
- const templatePath = path.join(testOutputDir, 'test.hbs');
78
- await fs.writeFile(templatePath, '{{{CODE}}}{{#if collector}}\nCollector: {{{collector}}}{{/if}}');
79
- const collector = { settings: { debug: true } };
80
- const result = await engine.process(templatePath, 'const code = 1;', {}, {}, collector, {});
81
- expect(result).toContain('const code = 1;');
82
- expect(result).toContain('Collector: {');
83
- expect(result).toContain('debug');
84
- });
85
- });
86
- describe('Edge Cases', () => {
87
- it('should handle template without CODE placeholder', async () => {
88
- const templatePath = path.join(testOutputDir, 'test.hbs');
89
- await fs.writeFile(templatePath, 'Header only');
90
- const result = await engine.process(templatePath, 'const code = true;', {}, {}, {}, {});
91
- expect(result).toBe('Header only');
92
- });
93
- it('should handle minimal template content', async () => {
94
- const templatePath = path.join(testOutputDir, 'test.hbs');
95
- await fs.writeFile(templatePath, '{{{CODE}}}');
96
- const result = await engine.process(templatePath, 'just code', {}, {}, {}, {});
97
- expect(result).toBe('just code');
98
- });
99
- it('should handle empty bundle code', async () => {
100
- const templatePath = path.join(testOutputDir, 'test.hbs');
101
- await fs.writeFile(templatePath, 'Template: {{{CODE}}}');
102
- const result = await engine.process(templatePath, '', {}, {}, {}, {});
103
- expect(result).toBe('Template: ');
104
- });
105
- });
106
- });
107
- //# sourceMappingURL=template-engine.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"template-engine.test.js","sourceRoot":"","sources":["../../../src/__tests__/bundle/template-engine.test.ts"],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- /**
2
- * JSON to JavaScript serializer for config objects
3
- * Converts JSON objects to valid JavaScript code for use in templates
4
- */
5
- import type { ProcessedTemplateVariables } from '../../types/template.js';
6
- export interface SerializerOptions {
7
- indent?: number;
8
- singleQuotes?: boolean;
9
- }
10
- /**
11
- * Serialize a value to JavaScript code
12
- */
13
- export declare function serializeToJS(value: unknown, options?: SerializerOptions): string;
14
- /**
15
- * Serialize config object for template usage
16
- * Handles special cases for walkerOS configurations
17
- */
18
- export declare function serializeConfig(config: Record<string, unknown>): string;
19
- /**
20
- * Process template variables to serialize config objects
21
- */
22
- export declare function processTemplateVariables(variables: Record<string, unknown>): ProcessedTemplateVariables;
23
- //# sourceMappingURL=serializer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serializer.d.ts","sourceRoot":"","sources":["../../../src/commands/bundle/serializer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAGV,0BAA0B,EAC3B,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,iBAAsB,GAC9B,MAAM,CAyER;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAOvE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,0BAA0B,CAmD5B"}
@@ -1,127 +0,0 @@
1
- /**
2
- * JSON to JavaScript serializer for config objects
3
- * Converts JSON objects to valid JavaScript code for use in templates
4
- */
5
- import { isObject } from '../../config/index.js';
6
- /**
7
- * Serialize a value to JavaScript code
8
- */
9
- export function serializeToJS(value, options = {}) {
10
- const { indent = 2, singleQuotes = false } = options;
11
- const quote = singleQuotes ? "'" : '"';
12
- function serialize(val, currentIndent = 0) {
13
- if (val === null)
14
- return 'null';
15
- if (val === undefined)
16
- return 'undefined';
17
- if (typeof val === 'boolean' || typeof val === 'number') {
18
- return String(val);
19
- }
20
- if (typeof val === 'string') {
21
- // Check if string contains arrow function syntax
22
- if (val.includes('=>')) {
23
- // More comprehensive check for arrow function patterns
24
- const arrowPatterns = [
25
- /^\s*\([^)]*\)\s*=>/, // (param) => or () =>
26
- /^\s*\w+\s*=>/, // param =>
27
- /^\s*\([^)]*\)\s*=>\s*\{/, // (param) => {
28
- /^\s*\w+\s*=>\s*\{/, // param => {
29
- ];
30
- if (arrowPatterns.some((pattern) => pattern.test(val))) {
31
- // Likely a function - return as-is without quotes
32
- return val;
33
- }
34
- }
35
- // Regular string - escape and quote
36
- return (quote +
37
- val.replace(/\\/g, '\\\\').replace(/'/g, "\\'").replace(/"/g, '\\"') +
38
- quote);
39
- }
40
- if (Array.isArray(val)) {
41
- if (val.length === 0)
42
- return '[]';
43
- const nextIndent = currentIndent + indent;
44
- const spacing = ' '.repeat(nextIndent);
45
- const items = val
46
- .map((item) => spacing + serialize(item, nextIndent))
47
- .join(',\n');
48
- return `[\n${items}\n${' '.repeat(currentIndent)}]`;
49
- }
50
- if (isObject(val)) {
51
- const entries = Object.entries(val);
52
- if (entries.length === 0)
53
- return '{}';
54
- const nextIndent = currentIndent + indent;
55
- const spacing = ' '.repeat(nextIndent);
56
- const props = entries
57
- .map(([key, value]) => {
58
- // Check if key needs quotes (contains special characters or starts with number)
59
- const needsQuotes = /[^a-zA-Z0-9_$]/.test(key) || /^[0-9]/.test(key);
60
- const keyStr = needsQuotes ? quote + key + quote : key;
61
- return spacing + keyStr + ': ' + serialize(value, nextIndent);
62
- })
63
- .join(',\n');
64
- return `{\n${props}\n${' '.repeat(currentIndent)}}`;
65
- }
66
- // Fallback for other types
67
- return String(val);
68
- }
69
- return serialize(value);
70
- }
71
- /**
72
- * Serialize config object for template usage
73
- * Handles special cases for walkerOS configurations
74
- */
75
- export function serializeConfig(config) {
76
- // Handle empty config
77
- if (!config || Object.keys(config).length === 0) {
78
- return '{}';
79
- }
80
- return serializeToJS(config, { indent: 2, singleQuotes: true });
81
- }
82
- /**
83
- * Process template variables to serialize config objects
84
- */
85
- export function processTemplateVariables(variables) {
86
- const processed = { ...variables };
87
- // Process sources object
88
- if (isObject(processed.sources)) {
89
- const sourcesObj = processed.sources;
90
- const processedSources = {};
91
- for (const [name, source] of Object.entries(sourcesObj)) {
92
- const typedSource = source;
93
- const { env: _, ...sourceWithoutEnv } = typedSource;
94
- processedSources[name] = {
95
- ...sourceWithoutEnv,
96
- config: isObject(typedSource.config)
97
- ? serializeConfig(typedSource.config)
98
- : typedSource.config, // Pass through string configs unchanged
99
- ...(typedSource.env !== undefined && { env: typedSource.env }),
100
- };
101
- }
102
- processed.sources = processedSources;
103
- }
104
- // Process destinations object
105
- if (isObject(processed.destinations)) {
106
- const destinationsObj = processed.destinations;
107
- const processedDestinations = {};
108
- for (const [name, dest] of Object.entries(destinationsObj)) {
109
- const typedDest = dest;
110
- const { env: _, ...destWithoutEnv } = typedDest;
111
- processedDestinations[name] = {
112
- ...destWithoutEnv,
113
- config: isObject(typedDest.config)
114
- ? serializeConfig(typedDest.config)
115
- : typedDest.config,
116
- ...(typedDest.env !== undefined && { env: typedDest.env }),
117
- };
118
- }
119
- processed.destinations = processedDestinations;
120
- }
121
- // Process collector object (if present)
122
- if (isObject(processed.collector)) {
123
- processed.collector = serializeConfig(processed.collector);
124
- }
125
- return processed;
126
- }
127
- //# sourceMappingURL=serializer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serializer.js","sourceRoot":"","sources":["../../../src/commands/bundle/serializer.ts"],"names":[],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- import type { SourceDestinationItem } from '../../types/template.js';
2
- export declare class TemplateEngine {
3
- private handlebars;
4
- constructor();
5
- /**
6
- * Load template content from file path
7
- *
8
- * @param templatePath - Template path (bare name, relative, or absolute)
9
- */
10
- loadTemplate(templatePath: string): Promise<string>;
11
- /**
12
- * Apply template with user code and variable substitution
13
- */
14
- applyTemplate(template: string, userCode: string, sources: Record<string, SourceDestinationItem>, destinations: Record<string, SourceDestinationItem>, collector: Record<string, unknown>, build?: Record<string, unknown>): string;
15
- /**
16
- * Process template with user code
17
- */
18
- process(templatePath: string, userCode: string, sources: Record<string, SourceDestinationItem>, destinations: Record<string, SourceDestinationItem>, collector: Record<string, unknown>, build?: Record<string, unknown>): Promise<string>;
19
- }
20
- //# sourceMappingURL=template-engine.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"template-engine.d.ts","sourceRoot":"","sources":["../../../src/commands/bundle/template-engine.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAIrE,qBAAa,cAAc;IACzB,OAAO,CAAC,UAAU,CAAoB;;IAUtC;;;;OAIG;IACG,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAWzD;;OAEG;IACH,aAAa,CACX,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,EAC9C,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,EACnD,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,MAAM;IAoBT;;OAEG;IACG,OAAO,CACX,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,EAC9C,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,EACnD,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC;CAWnB"}
@@ -1,54 +0,0 @@
1
- import fs from 'fs-extra';
2
- import Handlebars from 'handlebars';
3
- import { processTemplateVariables } from './serializer.js';
4
- import { resolveAsset } from '../../core/asset-resolver.js';
5
- export class TemplateEngine {
6
- handlebars;
7
- constructor() {
8
- // Create a new Handlebars instance
9
- this.handlebars = Handlebars.create();
10
- // Register equality helper for conditional window assignment
11
- this.handlebars.registerHelper('eq', (a, b) => a === b);
12
- }
13
- /**
14
- * Load template content from file path
15
- *
16
- * @param templatePath - Template path (bare name, relative, or absolute)
17
- */
18
- async loadTemplate(templatePath) {
19
- // Use unified asset resolver (works in both local and Docker)
20
- const resolvedPath = resolveAsset(templatePath, 'template');
21
- if (!(await fs.pathExists(resolvedPath))) {
22
- throw new Error(`Template file not found: ${resolvedPath}`);
23
- }
24
- return await fs.readFile(resolvedPath, 'utf-8');
25
- }
26
- /**
27
- * Apply template with user code and variable substitution
28
- */
29
- applyTemplate(template, userCode, sources, destinations, collector, build) {
30
- // Process template variables to serialize config objects
31
- const processedVariables = processTemplateVariables({
32
- sources,
33
- destinations,
34
- collector,
35
- });
36
- // Prepare template data for Handlebars
37
- const templateData = {
38
- CODE: userCode,
39
- build: build || {},
40
- ...processedVariables,
41
- };
42
- // Compile and execute the template
43
- const compiledTemplate = this.handlebars.compile(template);
44
- return compiledTemplate(templateData);
45
- }
46
- /**
47
- * Process template with user code
48
- */
49
- async process(templatePath, userCode, sources, destinations, collector, build) {
50
- const template = await this.loadTemplate(templatePath);
51
- return this.applyTemplate(template, userCode, sources, destinations, collector, build);
52
- }
53
- }
54
- //# sourceMappingURL=template-engine.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"template-engine.js","sourceRoot":"","sources":["../../../src/commands/bundle/template-engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,MAAM,OAAO,cAAc;IACjB,UAAU,CAAoB;IAEtC;QACE,mCAAmC;QACnC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;QAEtC,6DAA6D;QAC7D,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAU,EAAE,CAAU,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,YAAY,CAAC,YAAoB;QACrC,8DAA8D;QAC9D,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAE5D,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,4BAA4B,YAAY,EAAE,CAAC,CAAC;QAC9D,CAAC;QAED,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,aAAa,CACX,QAAgB,EAChB,QAAgB,EAChB,OAA8C,EAC9C,YAAmD,EACnD,SAAkC,EAClC,KAA+B;QAE/B,yDAAyD;QACzD,MAAM,kBAAkB,GAAG,wBAAwB,CAAC;YAClD,OAAO;YACP,YAAY;YACZ,SAAS;SACV,CAAC,CAAC;QAEH,uCAAuC;QACvC,MAAM,YAAY,GAA4B;YAC5C,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,KAAK,IAAI,EAAE;YAClB,GAAG,kBAAkB;SACtB,CAAC;QAEF,mCAAmC;QACnC,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC3D,OAAO,gBAAgB,CAAC,YAAY,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CACX,YAAoB,EACpB,QAAgB,EAChB,OAA8C,EAC9C,YAAmD,EACnD,SAAkC,EAClC,KAA+B;QAE/B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QACvD,OAAO,IAAI,CAAC,aAAa,CACvB,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,SAAS,EACT,KAAK,CACN,CAAC;IACJ,CAAC;CACF"}
@@ -1,33 +0,0 @@
1
- /**
2
- * Configuration Defaults
3
- *
4
- * Platform-specific default build options.
5
- */
6
- import type { BuildOptions } from '../types/bundle.js';
7
- /**
8
- * Get default build configuration for platform.
9
- *
10
- * @param platform - Target platform ('web' or 'server')
11
- * @param code - User code to include (required for BuildOptions)
12
- * @param output - Output file path (optional, uses platform default)
13
- * @returns Platform-specific default build options
14
- *
15
- * @remarks
16
- * Provides sensible defaults for each platform:
17
- * - web: IIFE format for browser, ES2020 target
18
- * - server: ESM format for Node.js, Node18 target
19
- */
20
- export declare function getDefaultBuildOptions(platform: 'web' | 'server', code: string, output?: string): Partial<BuildOptions>;
21
- /**
22
- * Ensure build options have all required fields.
23
- *
24
- * @param buildOptions - Build options (possibly incomplete)
25
- * @param flowPlatform - Platform from Flow.Config
26
- * @returns Complete build options with defaults filled in
27
- *
28
- * @remarks
29
- * Validates and fills in missing required fields using platform-specific defaults.
30
- * Throws error if critical fields (code, output) are missing.
31
- */
32
- export declare function ensureBuildOptions(buildOptions: Partial<BuildOptions>, flowPlatform: 'web' | 'server'): BuildOptions;
33
- //# sourceMappingURL=defaults.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,KAAK,GAAG,QAAQ,EAC1B,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,YAAY,CAAC,CA0BvB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,OAAO,CAAC,YAAY,CAAC,EACnC,YAAY,EAAE,KAAK,GAAG,QAAQ,GAC7B,YAAY,CAmBd"}