@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,16 +1,50 @@
1
1
  import fs from 'fs-extra';
2
2
  import path from 'path';
3
- import { bundleCore as bundle } from '../../commands/bundle/bundler.js';
4
- import { parseBundleConfig } from '../../config/index.js';
3
+ import { bundleCore as bundle, buildConfigObject, generatePlatformWrapper, createEntryPoint, } from '../../commands/bundle/bundler.js';
4
+ import { loadBundleConfig } from '../../config/index.js';
5
5
  import { createLogger } from '../../core/index.js';
6
6
  import { getId } from '@walkeros/core';
7
7
  // No mocks - test with real package downloads and bundling
8
+ /**
9
+ * Helper to create a Flow.Setup config for testing.
10
+ */
11
+ function createFlowSetup(platform, packages) {
12
+ return {
13
+ version: 1,
14
+ flows: {
15
+ default: {
16
+ ...(platform === 'web' ? { web: {} } : { server: {} }),
17
+ packages,
18
+ },
19
+ },
20
+ };
21
+ }
22
+ /**
23
+ * Helper to create build options for testing.
24
+ * Uses minimal defaults with test-specific overrides.
25
+ */
26
+ function createBuildOptions(overrides) {
27
+ return {
28
+ format: 'esm',
29
+ platform: 'browser',
30
+ target: 'es2020',
31
+ minify: false,
32
+ sourcemap: false,
33
+ cache: true,
34
+ tempDir: '.tmp',
35
+ packages: {},
36
+ code: '',
37
+ ...overrides,
38
+ };
39
+ }
8
40
  describe('Bundler', () => {
9
41
  const testOutputDir = path.resolve('.tmp', `bundler-${Date.now()}-${getId()}`);
10
42
  let logger;
11
43
  beforeEach(async () => {
12
44
  // Ensure test output directory exists
13
45
  await fs.ensureDir(testOutputDir);
46
+ // Clean build cache to ensure each test starts fresh
47
+ await fs.remove(path.join('.tmp', 'cache', 'builds'));
14
48
  // Create a silent logger for tests
15
49
  logger = createLogger({ silent: true });
16
50
  // Mock console.log to suppress output during tests
@@ -32,96 +66,78 @@ describe('Bundler', () => {
32
66
  jest.restoreAllMocks();
33
67
  });
34
68
  it('should bundle minimal config successfully', async () => {
35
- // Inline minimal configuration to avoid path dependencies
36
- const rawConfig = {
37
- flow: {
38
- platform: 'web',
39
- },
40
- build: {
41
- packages: {
42
- '@walkeros/core': {
43
- imports: ['getId'],
44
- },
69
+ const flowConfig = {
70
+ web: {},
71
+ packages: {
72
+ '@walkeros/core': {
73
+ imports: ['getId'],
45
74
  },
46
- code: 'export const test = getId(8);',
47
- template: '', // Explicitly disable template for raw code bundling
48
- platform: 'browser',
49
- format: 'esm',
50
- output: path.join(testOutputDir, 'minimal.js'),
51
75
  },
52
76
  };
53
- const { flowConfig, buildOptions } = parseBundleConfig(rawConfig);
54
- // Run bundler with real dependencies
77
+ const buildOptions = createBuildOptions({
78
+ packages: flowConfig.packages || {},
79
+ code: 'export const test = getId(8);',
80
+ platform: 'browser',
81
+ format: 'esm',
82
+ output: path.join(testOutputDir, 'minimal.js'),
83
+ });
55
84
  await expect(bundle(flowConfig, buildOptions, logger)).resolves.not.toThrow();
56
85
  });
57
86
  it('should bundle server config with ESM format', async () => {
58
- // Inline server configuration
59
- const rawConfig = {
60
- flow: {
61
- platform: 'server',
62
- },
63
- build: {
64
- packages: {
65
- '@walkeros/core': {
66
- imports: ['trim', 'isString'],
67
- },
87
+ const flowConfig = {
88
+ server: {},
89
+ packages: {
90
+ '@walkeros/core': {
91
+ imports: ['trim', 'isString'],
68
92
  },
69
- code: 'export default { processText: (text) => trim(text) };',
70
- template: '', // Explicitly disable template for raw code bundling
71
- platform: 'node',
72
- format: 'esm',
73
- output: path.join(testOutputDir, 'server-bundle.mjs'),
74
93
  },
75
94
  };
76
- const { flowConfig, buildOptions } = parseBundleConfig(rawConfig);
77
- // Run bundler with real dependencies
95
+ const buildOptions = createBuildOptions({
96
+ packages: flowConfig.packages || {},
97
+ code: 'export default { processText: (text) => trim(text) };',
98
+ platform: 'node',
99
+ format: 'esm',
100
+ output: path.join(testOutputDir, 'server-bundle.mjs'),
101
+ });
78
102
  await expect(bundle(flowConfig, buildOptions, logger)).resolves.not.toThrow();
79
103
  });
80
104
  it('should bundle advanced config with minification', async () => {
81
- // Inline advanced configuration
82
- const rawConfig = {
83
- flow: {
84
- platform: 'web',
85
- },
86
- build: {
87
- packages: {
88
- '@walkeros/core': {
89
- imports: ['getId', 'getByPath', 'clone', 'trim', 'isObject'],
90
- },
105
+ const flowConfig = {
106
+ web: {},
107
+ packages: {
108
+ '@walkeros/core': {
109
+ imports: ['getId', 'getByPath', 'clone', 'trim', 'isObject'],
91
110
  },
92
- code: "export function processData(data) {\n return data.map(item => ({\n ...item,\n id: getId(8),\n timestamp: new Date().toISOString().split('T')[0],\n processed: true\n }));\n}\n\nexport function extractNestedValues(data, path) {\n return data.map(item => getByPath(item, path, null)).filter(val => val !== null);\n}\n\nexport function deepCloneData(data) {\n return clone(data);\n}\n\nexport function cleanStringData(data) {\n return data.map(item => ({\n ...item,\n name: typeof item.name === 'string' ? trim(item.name) : item.name\n }));\n}\n\n// Re-export walkerOS utilities\nexport { getId, getByPath, clone, trim, isObject };",
93
- template: '', // Explicitly disable template for raw code bundling
94
- platform: 'browser',
95
- format: 'esm',
96
- target: 'es2020',
97
- minify: true,
98
- sourcemap: true,
99
- output: path.join(testOutputDir, 'advanced-bundle.js'),
100
111
  },
101
112
  };
102
- const { flowConfig, buildOptions } = parseBundleConfig(rawConfig);
103
- // Run bundler with real dependencies
113
+ const buildOptions = createBuildOptions({
114
+ packages: flowConfig.packages || {},
115
+ code: "export function processData(data) {\n return data.map(item => ({\n ...item,\n id: getId(8),\n timestamp: new Date().toISOString().split('T')[0],\n processed: true\n }));\n}\n\nexport function extractNestedValues(data, path) {\n return data.map(item => getByPath(item, path, null)).filter(val => val !== null);\n}\n\nexport function deepCloneData(data) {\n return clone(data);\n}\n\nexport function cleanStringData(data) {\n return data.map(item => ({\n ...item,\n name: typeof item.name === 'string' ? trim(item.name) : item.name\n }));\n}\n\n// Re-export walkerOS utilities\nexport { getId, getByPath, clone, trim, isObject };",
116
+ platform: 'browser',
117
+ format: 'esm',
118
+ target: 'es2020',
119
+ minify: true,
120
+ sourcemap: true,
121
+ output: path.join(testOutputDir, 'advanced-bundle.js'),
122
+ });
104
123
  await expect(bundle(flowConfig, buildOptions, logger)).resolves.not.toThrow();
105
124
  });
106
125
  describe('Stats Collection', () => {
107
126
  it('should collect bundle stats when requested', async () => {
108
- const rawConfig = {
109
- flow: {
110
- platform: 'web',
111
- },
112
- build: {
113
- packages: {
114
- '@walkeros/core': {
115
- imports: ['getId'],
116
- },
127
+ const flowConfig = {
128
+ web: {},
129
+ packages: {
130
+ '@walkeros/core': {
131
+ imports: ['getId'],
117
132
  },
118
- code: 'export const test = getId(8);',
119
- template: '', // Explicitly disable template for raw code bundling
120
- format: 'esm',
121
- output: path.join(testOutputDir, 'stats-test.js'),
122
133
  },
123
134
  };
124
- const { flowConfig, buildOptions } = parseBundleConfig(rawConfig);
135
+ const buildOptions = createBuildOptions({
136
+ packages: flowConfig.packages || {},
137
+ code: 'export const test = getId(8);',
138
+ format: 'esm',
139
+ output: path.join(testOutputDir, 'stats-test.js'),
140
+ });
125
141
  const stats = await bundle(flowConfig, buildOptions, logger, true);
126
142
  expect(stats).toBeDefined();
127
143
  expect(stats.totalSize).toBe(1024); // From mocked fs.stat
@@ -131,152 +147,206 @@ describe('Bundler', () => {
131
147
  expect(stats.packages[0].name).toBe('@walkeros/core@latest');
132
148
  });
133
149
  it('should detect ineffective tree-shaking with wildcard imports', async () => {
134
- const { flowConfig, buildOptions } = parseBundleConfig({
135
- flow: {
136
- platform: 'web',
137
- },
138
- build: {
139
- packages: { '@walkeros/core': {} },
140
- code: 'import * as walkerCore from "@walkeros/core";\nexport const test = walkerCore.getId;',
141
- template: '', // Explicitly disable template for raw code bundling
142
- format: 'esm',
143
- output: path.join(testOutputDir, 'test.js'),
144
- },
150
+ const flowConfig = {
151
+ web: {},
152
+ packages: { '@walkeros/core': {} },
153
+ };
154
+ const buildOptions = createBuildOptions({
155
+ packages: flowConfig.packages || {},
156
+ code: 'import * as walkerCore from "@walkeros/core";\nexport const test = walkerCore.getId;',
157
+ format: 'esm',
158
+ output: path.join(testOutputDir, 'test.js'),
145
159
  });
146
160
  const stats = await bundle(flowConfig, buildOptions, logger, true);
147
161
  expect(stats.treeshakingEffective).toBe(false);
148
162
  });
149
163
  it('should return undefined when stats not requested', async () => {
150
- const rawConfig = {
151
- flow: {
152
- platform: 'web',
153
- },
154
- build: {
155
- packages: {
156
- '@walkeros/core': {
157
- imports: ['getId'],
158
- },
164
+ const flowConfig = {
165
+ web: {},
166
+ packages: {
167
+ '@walkeros/core': {
168
+ imports: ['getId'],
159
169
  },
160
- code: 'export const test = getId(8);',
161
- template: '', // Explicitly disable template for raw code bundling
162
- format: 'esm',
163
- output: path.join(testOutputDir, 'no-stats.js'),
164
170
  },
165
171
  };
166
- const { flowConfig, buildOptions } = parseBundleConfig(rawConfig);
172
+ const buildOptions = createBuildOptions({
173
+ packages: flowConfig.packages || {},
174
+ code: 'export const test = getId(8);',
175
+ format: 'esm',
176
+ output: path.join(testOutputDir, 'no-stats.js'),
177
+ });
167
178
  const result = await bundle(flowConfig, buildOptions, logger, false);
168
179
  expect(result).toBeUndefined();
169
180
  });
170
181
  });
171
- describe('Template System', () => {
172
- it('should handle template configuration', async () => {
173
- // Create a test template file
174
- const templatePath = path.join(testOutputDir, 'test.hbs');
175
- await fs.writeFile(templatePath, '{{{CODE}}}\n// Template footer');
176
- const { flowConfig, buildOptions } = parseBundleConfig({
177
- flow: {
178
- platform: 'web',
179
- },
180
- build: {
181
- packages: {
182
- '@walkeros/core': { imports: ['getId'] },
183
- },
184
- code: 'export const generateId = () => getId(8);',
185
- template: templatePath,
186
- output: path.join(testOutputDir, 'template-test.js'),
182
+ describe('Configuration Scenarios', () => {
183
+ it('should handle custom temp directory configuration', async () => {
184
+ const flowConfig = {
185
+ web: {},
186
+ packages: {
187
+ '@walkeros/core': { imports: ['getId'] },
187
188
  },
189
+ };
190
+ const buildOptions = createBuildOptions({
191
+ packages: flowConfig.packages || {},
192
+ code: 'export const test = getId();',
193
+ format: 'esm',
194
+ tempDir: '/tmp/my-custom-bundler-temp',
195
+ output: path.join(testOutputDir, 'custom-temp-example.js'),
188
196
  });
189
197
  await expect(bundle(flowConfig, buildOptions, logger)).resolves.not.toThrow();
190
198
  });
191
- it('should handle missing template variables gracefully', async () => {
192
- const { flowConfig, buildOptions } = parseBundleConfig({
193
- flow: {
194
- platform: 'web',
195
- },
196
- build: {
197
- packages: {
198
- '@walkeros/core': { imports: ['trim'] },
199
- },
200
- code: 'export const test = trim("hello");',
201
- template: '', // Explicitly disable template for raw code bundling
202
- format: 'esm',
203
- output: path.join(testOutputDir, 'missing-vars.js'),
199
+ it('should handle version pinning correctly', async () => {
200
+ const flowConfig = {
201
+ web: {},
202
+ packages: {
203
+ '@walkeros/core': { version: '0.0.7', imports: ['getId'] },
204
204
  },
205
+ };
206
+ const buildOptions = createBuildOptions({
207
+ packages: flowConfig.packages || {},
208
+ code: '// Test version pinning\nexport const test = getId();',
209
+ platform: 'browser',
210
+ format: 'esm',
211
+ target: 'es2020',
212
+ output: path.join(testOutputDir, 'version-test.js'),
205
213
  });
206
214
  await expect(bundle(flowConfig, buildOptions, logger)).resolves.not.toThrow();
207
215
  });
208
- it('should append bundle code when placeholder not found', async () => {
209
- const { flowConfig, buildOptions } = parseBundleConfig({
210
- flow: {
211
- platform: 'web',
212
- },
213
- build: {
214
- packages: {
215
- '@walkeros/core': { imports: ['getId'] },
216
+ });
217
+ describe('Error Handling', () => {
218
+ it('should reject invalid config structure', async () => {
219
+ // Test that loader rejects invalid config structure
220
+ expect(() => {
221
+ loadBundleConfig({
222
+ flow: {
223
+ platform: 'web',
216
224
  },
217
- code: 'export const test = getId(6);',
218
- template: '', // Explicitly disable template for raw code bundling
219
- format: 'esm',
220
- output: path.join(testOutputDir, 'append-test.js'),
221
- },
222
- });
223
- await expect(bundle(flowConfig, buildOptions, logger)).resolves.not.toThrow();
225
+ build: {
226
+ packages: {},
227
+ },
228
+ }, { configPath: '/test/config.json' });
229
+ }).toThrow(/Invalid configuration/);
224
230
  });
225
231
  });
226
- describe('Configuration Scenarios', () => {
227
- it('should handle custom temp directory configuration', async () => {
228
- const { flowConfig, buildOptions } = parseBundleConfig({
229
- flow: {
230
- platform: 'web',
232
+ describe('buildConfigObject', () => {
233
+ it('uses explicit code for named imports', () => {
234
+ const flowConfig = {
235
+ server: {},
236
+ sources: {
237
+ http: {
238
+ package: '@walkeros/server-source-express',
239
+ code: 'sourceExpress',
240
+ config: { settings: { port: 8080 } },
241
+ },
231
242
  },
232
- build: {
233
- packages: {
234
- '@walkeros/core': { imports: ['getId'] },
243
+ destinations: {
244
+ demo: {
245
+ package: '@walkeros/destination-demo',
246
+ code: 'destinationDemo',
247
+ config: { settings: { name: 'Test' } },
235
248
  },
236
- code: 'export const test = getId();',
237
- template: '', // Explicitly disable template for raw code bundling
238
- format: 'esm',
239
- tempDir: '/tmp/my-custom-bundler-temp',
240
- output: path.join(testOutputDir, 'custom-temp-example.js'),
241
249
  },
242
- });
243
- await expect(bundle(flowConfig, buildOptions, logger)).resolves.not.toThrow();
250
+ };
251
+ const explicitCodeImports = new Map([
252
+ ['@walkeros/server-source-express', new Set(['sourceExpress'])],
253
+ ['@walkeros/destination-demo', new Set(['destinationDemo'])],
254
+ ]);
255
+ const result = buildConfigObject(flowConfig, explicitCodeImports);
256
+ expect(result).toContain('code: sourceExpress');
257
+ expect(result).toContain('code: destinationDemo');
258
+ expect(result).toContain('"port": 8080');
259
+ expect(result).toContain('"name": "Test"');
244
260
  });
245
- it('should handle version pinning correctly', async () => {
246
- const { flowConfig, buildOptions } = parseBundleConfig({
247
- flow: {
248
- platform: 'web',
249
- },
250
- build: {
251
- packages: {
252
- '@walkeros/core': { version: '0.0.7', imports: ['getId'] },
261
+ it('uses default import variable when no explicit code', () => {
262
+ const flowConfig = {
263
+ server: {},
264
+ sources: {
265
+ http: {
266
+ package: '@walkeros/server-source-express',
267
+ config: { settings: { port: 8080 } },
253
268
  },
254
- code: '// Test version pinning\nexport const test = getId();',
255
- template: '', // Explicitly disable template for raw code bundling
256
- platform: 'browser',
257
- format: 'esm',
258
- target: 'es2020',
259
- output: path.join(testOutputDir, 'version-test.js'),
260
269
  },
261
- });
262
- await expect(bundle(flowConfig, buildOptions, logger)).resolves.not.toThrow();
270
+ destinations: {},
271
+ };
272
+ const explicitCodeImports = new Map(); // No explicit imports
273
+ const result = buildConfigObject(flowConfig, explicitCodeImports);
274
+ expect(result).toContain('code: _walkerosServerSourceExpress');
263
275
  });
264
276
  });
265
- describe('Error Handling', () => {
266
- it('should validate configuration properly', async () => {
267
- // Test configuration validation instead of runtime errors
268
- expect(() => {
269
- parseBundleConfig({
270
- flow: {
271
- platform: 'web',
277
+ describe('generatePlatformWrapper', () => {
278
+ it('generates web IIFE wrapper', () => {
279
+ const config = '{ sources: {}, destinations: {} }';
280
+ const userCode = 'console.log("custom code");';
281
+ const buildOptions = {
282
+ platform: 'browser',
283
+ windowCollector: 'collector',
284
+ windowElb: 'elb',
285
+ };
286
+ const result = generatePlatformWrapper(config, userCode, buildOptions);
287
+ expect(result).toContain('(async () => {');
288
+ expect(result).toContain('const config = { sources: {}, destinations: {} };');
289
+ expect(result).toContain('console.log("custom code");');
290
+ expect(result).toContain('await startFlow(config)');
291
+ expect(result).toContain("window['collector'] = collector");
292
+ expect(result).toContain("window['elb'] = elb");
293
+ });
294
+ it('generates server export default wrapper', () => {
295
+ const config = '{ sources: {}, destinations: {} }';
296
+ const userCode = '';
297
+ const buildOptions = { platform: 'node' };
298
+ const result = generatePlatformWrapper(config, userCode, buildOptions);
299
+ expect(result).toContain('export default async function');
300
+ expect(result).toContain('const config = { sources: {}, destinations: {} };');
301
+ expect(result).toContain('return await startFlow(config)');
302
+ expect(result).not.toContain('window');
303
+ });
304
+ });
305
+ describe('createEntryPoint integration', () => {
306
+ it('generates complete entry point with explicit code', async () => {
307
+ const flowConfig = {
308
+ server: {},
309
+ packages: {
310
+ '@walkeros/collector': { imports: ['startFlow'] },
311
+ '@walkeros/server-source-express': {},
312
+ '@walkeros/destination-demo': {},
313
+ },
314
+ sources: {
315
+ http: {
316
+ package: '@walkeros/server-source-express',
317
+ code: 'sourceExpress',
318
+ config: { settings: { port: 8080 } },
272
319
  },
273
- build: {
274
- packages: 'invalid', // should be object
275
- code: 'test',
276
- output: path.join(testOutputDir, 'test.js'),
320
+ },
321
+ destinations: {
322
+ demo: {
323
+ package: '@walkeros/destination-demo',
324
+ code: 'destinationDemo',
325
+ config: { settings: { name: 'Test' } },
277
326
  },
278
- });
279
- }).toThrow();
327
+ },
328
+ };
329
+ const buildOptions = {
330
+ platform: 'node',
331
+ format: 'esm',
332
+ packages: {
333
+ '@walkeros/collector': { imports: ['startFlow'] },
334
+ '@walkeros/server-source-express': {},
335
+ '@walkeros/destination-demo': {},
336
+ },
337
+ output: './dist/bundle.mjs',
338
+ code: '',
339
+ };
340
+ const result = await createEntryPoint(flowConfig, buildOptions, new Map());
341
+ // Should have named imports
342
+ expect(result).toContain("import { startFlow } from '@walkeros/collector'");
343
+ expect(result).toContain("import { sourceExpress } from '@walkeros/server-source-express'");
344
+ expect(result).toContain("import { destinationDemo } from '@walkeros/destination-demo'");
345
+ // Should use those imports in config
346
+ expect(result).toContain('code: sourceExpress');
347
+ expect(result).toContain('code: destinationDemo');
348
+ // Should have server wrapper
349
+ expect(result).toContain('export default async function');
280
350
  });
281
351
  });
282
352
  });
@@ -1 +1 @@
1
- {"version":3,"file":"bundler.test.js","sourceRoot":"","sources":["../../../src/__tests__/bundle/bundler.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bundler.test.js","sourceRoot":"","sources":["../../../src/__tests__/bundle/bundler.test.ts"],"names":[],"mappings":"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"}