@walkeros/cli 0.6.0 → 0.6.1-next-1766186076625

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 (263) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +53 -8
  3. package/dist/index.d.ts +2 -0
  4. package/dist/index.js +364 -194
  5. package/dist/index.js.map +1 -1
  6. package/dist/runtime/main.js +3 -2
  7. package/dist/runtime/main.js.map +1 -1
  8. package/package.json +2 -2
  9. package/dist/__tests__/bundle/bundler-helpers.test.d.ts +0 -2
  10. package/dist/__tests__/bundle/bundler-helpers.test.d.ts.map +0 -1
  11. package/dist/__tests__/bundle/bundler-helpers.test.js +0 -151
  12. package/dist/__tests__/bundle/bundler-helpers.test.js.map +0 -1
  13. package/dist/__tests__/bundle/bundler.test.d.ts +0 -2
  14. package/dist/__tests__/bundle/bundler.test.d.ts.map +0 -1
  15. package/dist/__tests__/bundle/bundler.test.js +0 -352
  16. package/dist/__tests__/bundle/bundler.test.js.map +0 -1
  17. package/dist/__tests__/bundle/programmatic.test.d.ts +0 -2
  18. package/dist/__tests__/bundle/programmatic.test.d.ts.map +0 -1
  19. package/dist/__tests__/bundle/programmatic.test.js +0 -148
  20. package/dist/__tests__/bundle/programmatic.test.js.map +0 -1
  21. package/dist/__tests__/cli-e2e.test.d.ts +0 -8
  22. package/dist/__tests__/cli-e2e.test.d.ts.map +0 -1
  23. package/dist/__tests__/cli-e2e.test.js +0 -145
  24. package/dist/__tests__/cli-e2e.test.js.map +0 -1
  25. package/dist/__tests__/cli.test.d.ts +0 -2
  26. package/dist/__tests__/cli.test.d.ts.map +0 -1
  27. package/dist/__tests__/cli.test.js +0 -179
  28. package/dist/__tests__/cli.test.js.map +0 -1
  29. package/dist/__tests__/config-loader.test.d.ts +0 -7
  30. package/dist/__tests__/config-loader.test.d.ts.map +0 -1
  31. package/dist/__tests__/config-loader.test.js +0 -414
  32. package/dist/__tests__/config-loader.test.js.map +0 -1
  33. package/dist/__tests__/core/asset-resolver.test.d.ts +0 -2
  34. package/dist/__tests__/core/asset-resolver.test.d.ts.map +0 -1
  35. package/dist/__tests__/core/asset-resolver.test.js +0 -14
  36. package/dist/__tests__/core/asset-resolver.test.js.map +0 -1
  37. package/dist/__tests__/core/build-cache.test.d.ts +0 -2
  38. package/dist/__tests__/core/build-cache.test.d.ts.map +0 -1
  39. package/dist/__tests__/core/build-cache.test.js +0 -55
  40. package/dist/__tests__/core/build-cache.test.js.map +0 -1
  41. package/dist/__tests__/core/cache-utils.test.d.ts +0 -2
  42. package/dist/__tests__/core/cache-utils.test.d.ts.map +0 -1
  43. package/dist/__tests__/core/cache-utils.test.js +0 -70
  44. package/dist/__tests__/core/cache-utils.test.js.map +0 -1
  45. package/dist/__tests__/core/config.test.d.ts +0 -2
  46. package/dist/__tests__/core/config.test.d.ts.map +0 -1
  47. package/dist/__tests__/core/config.test.js +0 -79
  48. package/dist/__tests__/core/config.test.js.map +0 -1
  49. package/dist/__tests__/core/logger.test.d.ts +0 -2
  50. package/dist/__tests__/core/logger.test.d.ts.map +0 -1
  51. package/dist/__tests__/core/logger.test.js +0 -53
  52. package/dist/__tests__/core/logger.test.js.map +0 -1
  53. package/dist/__tests__/integration/bundle-run.integration.test.d.ts +0 -8
  54. package/dist/__tests__/integration/bundle-run.integration.test.d.ts.map +0 -1
  55. package/dist/__tests__/integration/bundle-run.integration.test.js +0 -54
  56. package/dist/__tests__/integration/bundle-run.integration.test.js.map +0 -1
  57. package/dist/__tests__/push/push.test.d.ts +0 -7
  58. package/dist/__tests__/push/push.test.d.ts.map +0 -1
  59. package/dist/__tests__/push/push.test.js +0 -197
  60. package/dist/__tests__/push/push.test.js.map +0 -1
  61. package/dist/__tests__/simulate/env-loader.test.d.ts +0 -2
  62. package/dist/__tests__/simulate/env-loader.test.d.ts.map +0 -1
  63. package/dist/__tests__/simulate/env-loader.test.js +0 -47
  64. package/dist/__tests__/simulate/env-loader.test.js.map +0 -1
  65. package/dist/__tests__/simulate/node-executor.test.d.ts +0 -5
  66. package/dist/__tests__/simulate/node-executor.test.d.ts.map +0 -1
  67. package/dist/__tests__/simulate/node-executor.test.js +0 -25
  68. package/dist/__tests__/simulate/node-executor.test.js.map +0 -1
  69. package/dist/__tests__/simulate/server-simulate.integration.test.d.ts +0 -5
  70. package/dist/__tests__/simulate/server-simulate.integration.test.d.ts.map +0 -1
  71. package/dist/__tests__/simulate/server-simulate.integration.test.js +0 -58
  72. package/dist/__tests__/simulate/server-simulate.integration.test.js.map +0 -1
  73. package/dist/__tests__/smoke/production.smoke.test.d.ts +0 -8
  74. package/dist/__tests__/smoke/production.smoke.test.d.ts.map +0 -1
  75. package/dist/__tests__/smoke/production.smoke.test.js +0 -65
  76. package/dist/__tests__/smoke/production.smoke.test.js.map +0 -1
  77. package/dist/commands/bundle/bundler.d.ts +0 -32
  78. package/dist/commands/bundle/bundler.d.ts.map +0 -1
  79. package/dist/commands/bundle/bundler.js +0 -569
  80. package/dist/commands/bundle/bundler.js.map +0 -1
  81. package/dist/commands/bundle/index.d.ts +0 -59
  82. package/dist/commands/bundle/index.d.ts.map +0 -1
  83. package/dist/commands/bundle/index.js +0 -184
  84. package/dist/commands/bundle/index.js.map +0 -1
  85. package/dist/commands/bundle/package-manager.d.ts +0 -8
  86. package/dist/commands/bundle/package-manager.d.ts.map +0 -1
  87. package/dist/commands/bundle/package-manager.js +0 -220
  88. package/dist/commands/bundle/package-manager.js.map +0 -1
  89. package/dist/commands/bundle/stats.d.ts +0 -23
  90. package/dist/commands/bundle/stats.d.ts.map +0 -1
  91. package/dist/commands/bundle/stats.js +0 -52
  92. package/dist/commands/bundle/stats.js.map +0 -1
  93. package/dist/commands/cache.d.ts +0 -7
  94. package/dist/commands/cache.d.ts.map +0 -1
  95. package/dist/commands/cache.js +0 -68
  96. package/dist/commands/cache.js.map +0 -1
  97. package/dist/commands/push/index.d.ts +0 -7
  98. package/dist/commands/push/index.d.ts.map +0 -1
  99. package/dist/commands/push/index.js +0 -247
  100. package/dist/commands/push/index.js.map +0 -1
  101. package/dist/commands/push/types.d.ts +0 -22
  102. package/dist/commands/push/types.d.ts.map +0 -1
  103. package/dist/commands/push/types.js +0 -2
  104. package/dist/commands/push/types.js.map +0 -1
  105. package/dist/commands/run/__tests__/run.integration.test.d.ts +0 -7
  106. package/dist/commands/run/__tests__/run.integration.test.d.ts.map +0 -1
  107. package/dist/commands/run/__tests__/run.integration.test.js +0 -51
  108. package/dist/commands/run/__tests__/run.integration.test.js.map +0 -1
  109. package/dist/commands/run/__tests__/validators.test.d.ts +0 -2
  110. package/dist/commands/run/__tests__/validators.test.d.ts.map +0 -1
  111. package/dist/commands/run/__tests__/validators.test.js +0 -80
  112. package/dist/commands/run/__tests__/validators.test.js.map +0 -1
  113. package/dist/commands/run/execution.d.ts +0 -14
  114. package/dist/commands/run/execution.d.ts.map +0 -1
  115. package/dist/commands/run/execution.js +0 -41
  116. package/dist/commands/run/execution.js.map +0 -1
  117. package/dist/commands/run/index.d.ts +0 -38
  118. package/dist/commands/run/index.d.ts.map +0 -1
  119. package/dist/commands/run/index.js +0 -154
  120. package/dist/commands/run/index.js.map +0 -1
  121. package/dist/commands/run/types.d.ts +0 -65
  122. package/dist/commands/run/types.d.ts.map +0 -1
  123. package/dist/commands/run/types.js +0 -7
  124. package/dist/commands/run/types.js.map +0 -1
  125. package/dist/commands/run/utils.d.ts +0 -29
  126. package/dist/commands/run/utils.d.ts.map +0 -1
  127. package/dist/commands/run/utils.js +0 -52
  128. package/dist/commands/run/utils.js.map +0 -1
  129. package/dist/commands/run/validators.d.ts +0 -33
  130. package/dist/commands/run/validators.d.ts.map +0 -1
  131. package/dist/commands/run/validators.js +0 -58
  132. package/dist/commands/run/validators.js.map +0 -1
  133. package/dist/commands/simulate/env-loader.d.ts +0 -19
  134. package/dist/commands/simulate/env-loader.d.ts.map +0 -1
  135. package/dist/commands/simulate/env-loader.js +0 -44
  136. package/dist/commands/simulate/env-loader.js.map +0 -1
  137. package/dist/commands/simulate/index.d.ts +0 -48
  138. package/dist/commands/simulate/index.d.ts.map +0 -1
  139. package/dist/commands/simulate/index.js +0 -113
  140. package/dist/commands/simulate/index.js.map +0 -1
  141. package/dist/commands/simulate/jsdom-executor.d.ts +0 -37
  142. package/dist/commands/simulate/jsdom-executor.d.ts.map +0 -1
  143. package/dist/commands/simulate/jsdom-executor.js +0 -137
  144. package/dist/commands/simulate/jsdom-executor.js.map +0 -1
  145. package/dist/commands/simulate/node-executor.d.ts +0 -28
  146. package/dist/commands/simulate/node-executor.d.ts.map +0 -1
  147. package/dist/commands/simulate/node-executor.js +0 -94
  148. package/dist/commands/simulate/node-executor.js.map +0 -1
  149. package/dist/commands/simulate/simulator.d.ts +0 -14
  150. package/dist/commands/simulate/simulator.d.ts.map +0 -1
  151. package/dist/commands/simulate/simulator.js +0 -163
  152. package/dist/commands/simulate/simulator.js.map +0 -1
  153. package/dist/commands/simulate/tracker.d.ts +0 -30
  154. package/dist/commands/simulate/tracker.d.ts.map +0 -1
  155. package/dist/commands/simulate/tracker.js +0 -96
  156. package/dist/commands/simulate/tracker.js.map +0 -1
  157. package/dist/commands/simulate/types.d.ts +0 -20
  158. package/dist/commands/simulate/types.d.ts.map +0 -1
  159. package/dist/commands/simulate/types.js +0 -2
  160. package/dist/commands/simulate/types.js.map +0 -1
  161. package/dist/config/build-defaults.d.ts +0 -49
  162. package/dist/config/build-defaults.d.ts.map +0 -1
  163. package/dist/config/build-defaults.js +0 -68
  164. package/dist/config/build-defaults.js.map +0 -1
  165. package/dist/config/index.d.ts +0 -13
  166. package/dist/config/index.d.ts.map +0 -1
  167. package/dist/config/index.js +0 -15
  168. package/dist/config/index.js.map +0 -1
  169. package/dist/config/loader.d.ts +0 -81
  170. package/dist/config/loader.d.ts.map +0 -1
  171. package/dist/config/loader.js +0 -153
  172. package/dist/config/loader.js.map +0 -1
  173. package/dist/config/utils.d.ts +0 -101
  174. package/dist/config/utils.d.ts.map +0 -1
  175. package/dist/config/utils.js +0 -235
  176. package/dist/config/utils.js.map +0 -1
  177. package/dist/config/validators.d.ts +0 -52
  178. package/dist/config/validators.d.ts.map +0 -1
  179. package/dist/config/validators.js +0 -85
  180. package/dist/config/validators.js.map +0 -1
  181. package/dist/core/asset-resolver.d.ts +0 -34
  182. package/dist/core/asset-resolver.d.ts.map +0 -1
  183. package/dist/core/asset-resolver.js +0 -70
  184. package/dist/core/asset-resolver.js.map +0 -1
  185. package/dist/core/build-cache.d.ts +0 -23
  186. package/dist/core/build-cache.d.ts.map +0 -1
  187. package/dist/core/build-cache.js +0 -44
  188. package/dist/core/build-cache.js.map +0 -1
  189. package/dist/core/cache-utils.d.ts +0 -27
  190. package/dist/core/cache-utils.d.ts.map +0 -1
  191. package/dist/core/cache-utils.js +0 -60
  192. package/dist/core/cache-utils.js.map +0 -1
  193. package/dist/core/index.d.ts +0 -8
  194. package/dist/core/index.d.ts.map +0 -1
  195. package/dist/core/index.js +0 -8
  196. package/dist/core/index.js.map +0 -1
  197. package/dist/core/local-packages.d.ts +0 -19
  198. package/dist/core/local-packages.d.ts.map +0 -1
  199. package/dist/core/local-packages.js +0 -60
  200. package/dist/core/local-packages.js.map +0 -1
  201. package/dist/core/logger.d.ts +0 -30
  202. package/dist/core/logger.d.ts.map +0 -1
  203. package/dist/core/logger.js +0 -85
  204. package/dist/core/logger.js.map +0 -1
  205. package/dist/core/output.d.ts +0 -30
  206. package/dist/core/output.d.ts.map +0 -1
  207. package/dist/core/output.js +0 -46
  208. package/dist/core/output.js.map +0 -1
  209. package/dist/core/timer.d.ts +0 -14
  210. package/dist/core/timer.d.ts.map +0 -1
  211. package/dist/core/timer.js +0 -29
  212. package/dist/core/timer.js.map +0 -1
  213. package/dist/core/tmp.d.ts +0 -27
  214. package/dist/core/tmp.d.ts.map +0 -1
  215. package/dist/core/tmp.js +0 -36
  216. package/dist/core/tmp.js.map +0 -1
  217. package/dist/core/utils.d.ts +0 -10
  218. package/dist/core/utils.d.ts.map +0 -1
  219. package/dist/core/utils.js +0 -12
  220. package/dist/core/utils.js.map +0 -1
  221. package/dist/index.d.ts.map +0 -1
  222. package/dist/runtime/index.d.ts +0 -10
  223. package/dist/runtime/index.d.ts.map +0 -1
  224. package/dist/runtime/index.js +0 -10
  225. package/dist/runtime/index.js.map +0 -1
  226. package/dist/runtime/main.d.ts.map +0 -1
  227. package/dist/runtime/runner.d.ts +0 -20
  228. package/dist/runtime/runner.d.ts.map +0 -1
  229. package/dist/runtime/runner.js +0 -72
  230. package/dist/runtime/runner.js.map +0 -1
  231. package/dist/runtime/serve.d.ts +0 -19
  232. package/dist/runtime/serve.d.ts.map +0 -1
  233. package/dist/runtime/serve.js +0 -97
  234. package/dist/runtime/serve.js.map +0 -1
  235. package/dist/schemas/index.d.ts +0 -9
  236. package/dist/schemas/index.d.ts.map +0 -1
  237. package/dist/schemas/index.js +0 -9
  238. package/dist/schemas/index.js.map +0 -1
  239. package/dist/schemas/primitives.d.ts +0 -37
  240. package/dist/schemas/primitives.d.ts.map +0 -1
  241. package/dist/schemas/primitives.js +0 -43
  242. package/dist/schemas/primitives.js.map +0 -1
  243. package/dist/schemas/run.d.ts +0 -23
  244. package/dist/schemas/run.d.ts.map +0 -1
  245. package/dist/schemas/run.js +0 -20
  246. package/dist/schemas/run.js.map +0 -1
  247. package/dist/types/bundle.d.ts +0 -141
  248. package/dist/types/bundle.d.ts.map +0 -1
  249. package/dist/types/bundle.js +0 -10
  250. package/dist/types/bundle.js.map +0 -1
  251. package/dist/types/global.d.ts +0 -38
  252. package/dist/types/global.d.ts.map +0 -1
  253. package/dist/types/global.js +0 -24
  254. package/dist/types/global.js.map +0 -1
  255. package/dist/types/index.d.ts +0 -8
  256. package/dist/types/index.d.ts.map +0 -1
  257. package/dist/types/index.js +0 -8
  258. package/dist/types/index.js.map +0 -1
  259. package/dist/version.d.ts +0 -3
  260. package/dist/version.d.ts.map +0 -1
  261. package/dist/version.js +0 -27
  262. package/dist/version.js.map +0 -1
  263. package/dist/walker.js +0 -1
@@ -1,569 +0,0 @@
1
- import esbuild from 'esbuild';
2
- import path from 'path';
3
- import fs from 'fs-extra';
4
- import { packageNameToVariable } from '@walkeros/core';
5
- import { downloadPackages } from './package-manager.js';
6
- import { getTmpPath } from '../../core/tmp.js';
7
- import { isBuildCached, getCachedBuild, cacheBuild, } from '../../core/build-cache.js';
8
- /**
9
- * Copy included folders to output directory.
10
- * Used to make credential files and other assets available alongside the bundle.
11
- */
12
- async function copyIncludes(includes, sourceDir, outputDir, logger) {
13
- for (const include of includes) {
14
- const sourcePath = path.resolve(sourceDir, include);
15
- const folderName = path.basename(include);
16
- const destPath = path.join(outputDir, folderName);
17
- if (await fs.pathExists(sourcePath)) {
18
- await fs.copy(sourcePath, destPath);
19
- logger.debug(`Copied ${include} to output`);
20
- // TODO: Add logging for copied folders
21
- }
22
- else {
23
- logger.debug(`Include folder not found: ${include}`);
24
- // TODO: Add logging for skipped folders (not found)
25
- }
26
- }
27
- }
28
- /**
29
- * Generate cache key content from flow config and build options.
30
- * Excludes non-deterministic fields (tempDir, output) from cache key.
31
- */
32
- function generateCacheKeyContent(flowConfig, buildOptions) {
33
- const configForCache = {
34
- flow: flowConfig,
35
- build: {
36
- ...buildOptions,
37
- // Exclude non-deterministic fields from cache key
38
- tempDir: undefined,
39
- output: undefined,
40
- },
41
- };
42
- return JSON.stringify(configForCache);
43
- }
44
- export async function bundleCore(flowConfig, buildOptions, logger, showStats = false) {
45
- const bundleStartTime = Date.now();
46
- // Use provided temp dir or default .tmp/
47
- const TEMP_DIR = buildOptions.tempDir || getTmpPath();
48
- // Check build cache if caching is enabled
49
- if (buildOptions.cache !== false) {
50
- const configContent = generateCacheKeyContent(flowConfig, buildOptions);
51
- const cached = await isBuildCached(configContent);
52
- if (cached) {
53
- const cachedBuild = await getCachedBuild(configContent);
54
- if (cachedBuild) {
55
- logger.debug('Using cached build');
56
- // Write cached build to output
57
- const outputPath = path.resolve(buildOptions.output);
58
- await fs.ensureDir(path.dirname(outputPath));
59
- await fs.writeFile(outputPath, cachedBuild);
60
- const stats = await fs.stat(outputPath);
61
- const sizeKB = (stats.size / 1024).toFixed(1);
62
- logger.log(`Output: ${outputPath} (${sizeKB} KB, cached)`);
63
- // Return stats if requested
64
- if (showStats) {
65
- const stats = await fs.stat(outputPath);
66
- // Generate basic package stats from buildOptions
67
- const packageStats = Object.entries(buildOptions.packages).map(([name, pkg]) => ({
68
- name: `${name}@${pkg.version || 'latest'}`,
69
- size: 0, // Size estimation not available for cached builds
70
- }));
71
- return {
72
- totalSize: stats.size,
73
- packages: packageStats,
74
- buildTime: Date.now() - bundleStartTime,
75
- treeshakingEffective: true,
76
- };
77
- }
78
- return;
79
- }
80
- }
81
- }
82
- try {
83
- // Step 1: Ensure temporary directory exists
84
- await fs.ensureDir(TEMP_DIR);
85
- // Step 2: Download packages
86
- logger.debug('Downloading packages');
87
- // Convert packages object to array format expected by downloadPackages
88
- const packagesArray = Object.entries(buildOptions.packages).map(([name, packageConfig]) => ({
89
- name,
90
- version: packageConfig.version || 'latest',
91
- path: packageConfig.path, // Pass local path if defined
92
- }));
93
- // downloadPackages adds 'node_modules' subdirectory automatically
94
- const packagePaths = await downloadPackages(packagesArray, TEMP_DIR, logger, buildOptions.cache, buildOptions.configDir);
95
- // Fix @walkeros packages to have proper ESM exports
96
- // This ensures Node resolves to .mjs files instead of .js (CJS)
97
- for (const [pkgName, pkgPath] of packagePaths.entries()) {
98
- if (pkgName.startsWith('@walkeros/')) {
99
- const pkgJsonPath = path.join(pkgPath, 'package.json');
100
- const pkgJson = await fs.readJSON(pkgJsonPath);
101
- // Add exports field to force ESM resolution
102
- if (!pkgJson.exports && pkgJson.module) {
103
- pkgJson.exports = {
104
- '.': {
105
- import: pkgJson.module,
106
- require: pkgJson.main,
107
- },
108
- };
109
- await fs.writeJSON(pkgJsonPath, pkgJson, { spaces: 2 });
110
- }
111
- }
112
- }
113
- // Step 3: Create package.json to enable ESM in temp directory
114
- // This ensures Node treats all .js files as ESM and resolves @walkeros packages correctly
115
- const packageJsonPath = path.join(TEMP_DIR, 'package.json');
116
- await fs.writeFile(packageJsonPath, JSON.stringify({ type: 'module' }, null, 2));
117
- // Step 4: Create entry point
118
- logger.debug('Creating entry point');
119
- const entryContent = await createEntryPoint(flowConfig, buildOptions, packagePaths);
120
- const entryPath = path.join(TEMP_DIR, 'entry.js');
121
- await fs.writeFile(entryPath, entryContent);
122
- // Step 4: Bundle with esbuild
123
- logger.debug(`Running esbuild (target: ${buildOptions.target || 'es2018'}, format: ${buildOptions.format})`);
124
- const outputPath = path.resolve(buildOptions.output);
125
- // Ensure output directory exists
126
- await fs.ensureDir(path.dirname(outputPath));
127
- const esbuildOptions = createEsbuildOptions(buildOptions, entryPath, outputPath, TEMP_DIR, packagePaths, logger);
128
- try {
129
- await esbuild.build(esbuildOptions);
130
- }
131
- catch (buildError) {
132
- // Enhanced error handling for build failures
133
- throw createBuildError(buildError, buildOptions.code || '');
134
- }
135
- // Get file size and calculate build time
136
- const outputStats = await fs.stat(outputPath);
137
- const sizeKB = (outputStats.size / 1024).toFixed(1);
138
- const buildTime = ((Date.now() - bundleStartTime) / 1000).toFixed(1);
139
- logger.log(`Output: ${outputPath} (${sizeKB} KB, ${buildTime}s)`);
140
- // Step 5: Cache the build result if caching is enabled
141
- if (buildOptions.cache !== false) {
142
- const configContent = generateCacheKeyContent(flowConfig, buildOptions);
143
- const buildOutput = await fs.readFile(outputPath, 'utf-8');
144
- await cacheBuild(configContent, buildOutput);
145
- logger.debug('Build cached for future use');
146
- }
147
- // Step 6: Collect stats if requested
148
- let stats;
149
- if (showStats) {
150
- stats = await collectBundleStats(outputPath, buildOptions.packages, bundleStartTime, entryContent);
151
- }
152
- // Step 7: Copy included folders to output directory
153
- if (buildOptions.include && buildOptions.include.length > 0) {
154
- const outputDir = path.dirname(outputPath);
155
- await copyIncludes(buildOptions.include, buildOptions.configDir || process.cwd(), outputDir, logger);
156
- }
157
- // No auto-cleanup - user runs `walkeros clean` explicitly
158
- return stats;
159
- }
160
- catch (error) {
161
- throw error;
162
- }
163
- }
164
- async function collectBundleStats(outputPath, packages, startTime, entryContent) {
165
- const stats = await fs.stat(outputPath);
166
- const totalSize = stats.size;
167
- const buildTime = Date.now() - startTime;
168
- // Estimate package sizes by analyzing imports in entry content
169
- const packageStats = Object.entries(packages).map(([name, pkg]) => {
170
- const importPattern = new RegExp(`from\\s+['"]${name}['"]`, 'g');
171
- const namedImportPattern = new RegExp(`import\\s+\\{[^}]*\\}\\s+from\\s+['"]${name}['"]`, 'g');
172
- const hasImports = importPattern.test(entryContent) || namedImportPattern.test(entryContent);
173
- // Rough estimation: if package is imported, assign proportional size
174
- const packagesCount = Object.keys(packages).length;
175
- const estimatedSize = hasImports
176
- ? Math.floor(totalSize / packagesCount)
177
- : 0;
178
- return {
179
- name: `${name}@${pkg.version || 'latest'}`,
180
- size: estimatedSize,
181
- };
182
- });
183
- // Tree-shaking is effective if we use named imports (not wildcard imports)
184
- const hasWildcardImports = /import\s+\*\s+as\s+\w+\s+from/.test(entryContent);
185
- const treeshakingEffective = !hasWildcardImports;
186
- return {
187
- totalSize,
188
- packages: packageStats,
189
- buildTime,
190
- treeshakingEffective,
191
- };
192
- }
193
- function createEsbuildOptions(buildOptions, entryPath, outputPath, tempDir, packagePaths, logger) {
194
- // Don't use aliases - they cause esbuild to bundle even external packages
195
- // Instead, use absWorkingDir to point to temp directory where node_modules is
196
- const alias = {};
197
- const baseOptions = {
198
- entryPoints: [entryPath],
199
- bundle: true,
200
- format: buildOptions.format,
201
- platform: buildOptions.platform,
202
- outfile: outputPath,
203
- absWorkingDir: tempDir, // Resolve modules from temp directory
204
- // alias removed - not needed with absWorkingDir
205
- mainFields: ['module', 'main'], // Prefer ESM over CJS
206
- treeShaking: true,
207
- logLevel: 'error',
208
- minify: buildOptions.minify,
209
- sourcemap: buildOptions.sourcemap,
210
- resolveExtensions: ['.mjs', '.js', '.ts', '.json'], // Prefer .mjs
211
- // Enhanced minification options when minify is enabled
212
- ...(buildOptions.minify && {
213
- minifyWhitespace: buildOptions.minifyOptions?.whitespace ?? true,
214
- minifyIdentifiers: buildOptions.minifyOptions?.identifiers ?? true,
215
- minifySyntax: buildOptions.minifyOptions?.syntax ?? true,
216
- legalComments: buildOptions.minifyOptions?.legalComments ?? 'none',
217
- keepNames: buildOptions.minifyOptions?.keepNames ?? false,
218
- charset: 'utf8',
219
- }),
220
- };
221
- // Platform-specific configurations
222
- if (buildOptions.platform === 'browser') {
223
- baseOptions.define = {
224
- 'process.env.NODE_ENV': '"production"',
225
- global: 'globalThis',
226
- };
227
- // For browser bundles, let users handle Node.js built-ins as needed
228
- baseOptions.external = buildOptions.external || [];
229
- }
230
- else if (buildOptions.platform === 'node') {
231
- // For Node.js bundles, mark Node built-ins as external
232
- const nodeBuiltins = [
233
- 'crypto',
234
- 'fs',
235
- 'path',
236
- 'os',
237
- 'util',
238
- 'stream',
239
- 'buffer',
240
- 'events',
241
- 'http',
242
- 'https',
243
- 'url',
244
- 'querystring',
245
- 'zlib',
246
- ];
247
- // Mark runtime dependencies as external
248
- // These packages are installed in the Docker container and should not be bundled
249
- // - express/cors: Runtime dependencies for server sources
250
- // Note: zod is bundled inline via @walkeros/core (not marked external)
251
- // Use wildcard patterns to match both ESM and CJS imports
252
- const npmPackages = ['express', 'express/*', 'cors', 'cors/*'];
253
- // All downloaded @walkeros packages will be bundled into the output
254
- // Only Node.js built-ins and runtime server packages (express/cors) are marked external
255
- baseOptions.external = buildOptions.external
256
- ? [...nodeBuiltins, ...npmPackages, ...buildOptions.external]
257
- : [...nodeBuiltins, ...npmPackages];
258
- // Add createRequire shim for ESM bundles with CJS external dependencies
259
- // This allows require() calls generated by esbuild to work in ESM context
260
- if (buildOptions.format === 'esm') {
261
- baseOptions.banner = {
262
- js: `import { createRequire } from 'module';const require = createRequire(import.meta.url);`,
263
- };
264
- }
265
- }
266
- // Set target if specified
267
- if (buildOptions.target) {
268
- baseOptions.target = buildOptions.target;
269
- }
270
- else if (buildOptions.platform === 'node') {
271
- baseOptions.target = 'node18';
272
- }
273
- else {
274
- baseOptions.target = 'es2018';
275
- }
276
- return baseOptions;
277
- }
278
- /**
279
- * Detects destination packages from flow configuration.
280
- * Extracts package names from destinations that have explicit 'package' field.
281
- */
282
- function detectDestinationPackages(flowConfig) {
283
- const destinationPackages = new Set();
284
- const destinations = flowConfig.destinations;
285
- if (destinations) {
286
- for (const [destKey, destConfig] of Object.entries(destinations)) {
287
- // Require explicit package field - no inference for any packages
288
- if (typeof destConfig === 'object' &&
289
- destConfig !== null &&
290
- 'package' in destConfig &&
291
- typeof destConfig.package === 'string') {
292
- destinationPackages.add(destConfig.package);
293
- }
294
- // If no package field, skip auto-importing examples for this destination
295
- }
296
- }
297
- return destinationPackages;
298
- }
299
- /**
300
- * Detects source packages from flow configuration.
301
- * Extracts package names from sources that have explicit 'package' field.
302
- */
303
- function detectSourcePackages(flowConfig) {
304
- const sourcePackages = new Set();
305
- const sources = flowConfig.sources;
306
- if (sources) {
307
- for (const [sourceKey, sourceConfig] of Object.entries(sources)) {
308
- // Require explicit package field - no inference for any packages
309
- if (typeof sourceConfig === 'object' &&
310
- sourceConfig !== null &&
311
- 'package' in sourceConfig &&
312
- typeof sourceConfig.package === 'string') {
313
- sourcePackages.add(sourceConfig.package);
314
- }
315
- }
316
- }
317
- return sourcePackages;
318
- }
319
- /**
320
- * Detects explicit code imports from destinations and sources.
321
- * Returns a map of package names to sets of export names.
322
- */
323
- function detectExplicitCodeImports(flowConfig) {
324
- const explicitCodeImports = new Map();
325
- // Check destinations
326
- const destinations = flowConfig.destinations;
327
- if (destinations) {
328
- for (const [destKey, destConfig] of Object.entries(destinations)) {
329
- if (typeof destConfig === 'object' &&
330
- destConfig !== null &&
331
- 'package' in destConfig &&
332
- typeof destConfig.package === 'string' &&
333
- 'code' in destConfig &&
334
- typeof destConfig.code === 'string') {
335
- // Only treat as explicit if code doesn't match auto-generated pattern
336
- // Auto-generated code starts with '_' (from packageNameToVariable)
337
- const isAutoGenerated = destConfig.code.startsWith('_');
338
- if (!isAutoGenerated) {
339
- if (!explicitCodeImports.has(destConfig.package)) {
340
- explicitCodeImports.set(destConfig.package, new Set());
341
- }
342
- explicitCodeImports.get(destConfig.package).add(destConfig.code);
343
- }
344
- }
345
- }
346
- }
347
- // Check sources
348
- const sources = flowConfig.sources;
349
- if (sources) {
350
- for (const [sourceKey, sourceConfig] of Object.entries(sources)) {
351
- if (typeof sourceConfig === 'object' &&
352
- sourceConfig !== null &&
353
- 'package' in sourceConfig &&
354
- typeof sourceConfig.package === 'string' &&
355
- 'code' in sourceConfig &&
356
- typeof sourceConfig.code === 'string') {
357
- // Only treat as explicit if code doesn't match auto-generated pattern
358
- // Auto-generated code starts with '_' (from packageNameToVariable)
359
- const isAutoGenerated = sourceConfig.code.startsWith('_');
360
- if (!isAutoGenerated) {
361
- if (!explicitCodeImports.has(sourceConfig.package)) {
362
- explicitCodeImports.set(sourceConfig.package, new Set());
363
- }
364
- explicitCodeImports.get(sourceConfig.package).add(sourceConfig.code);
365
- }
366
- }
367
- }
368
- }
369
- return explicitCodeImports;
370
- }
371
- /**
372
- * Generates import statements and examples mappings from build packages.
373
- * Handles explicit imports, default imports for destinations/sources, and utility imports.
374
- */
375
- function generateImportStatements(packages, destinationPackages, sourcePackages, explicitCodeImports) {
376
- const importStatements = [];
377
- const examplesMappings = [];
378
- const usedPackages = new Set([...destinationPackages, ...sourcePackages]);
379
- for (const [packageName, packageConfig] of Object.entries(packages)) {
380
- const isUsedByDestOrSource = usedPackages.has(packageName);
381
- const hasExplicitCode = explicitCodeImports.has(packageName);
382
- if (packageConfig.imports && packageConfig.imports.length > 0) {
383
- // Explicit imports (utilities) - existing logic
384
- // Remove duplicates within the same package
385
- const uniqueImports = [...new Set(packageConfig.imports)];
386
- // Handle special "default as X" syntax
387
- const defaultImports = [];
388
- const namedImports = [];
389
- for (const imp of uniqueImports) {
390
- if (imp.startsWith('default as ')) {
391
- defaultImports.push(imp.replace('default as ', ''));
392
- }
393
- else {
394
- namedImports.push(imp);
395
- }
396
- }
397
- // Generate import statements
398
- if (defaultImports.length > 0) {
399
- for (const defaultImport of defaultImports) {
400
- importStatements.push(`import ${defaultImport} from '${packageName}';`);
401
- }
402
- }
403
- if (namedImports.length > 0) {
404
- const importList = namedImports.join(', ');
405
- importStatements.push(`import { ${importList} } from '${packageName}';`);
406
- }
407
- // Check if this package imports examples and create mappings
408
- const examplesImport = uniqueImports.find((imp) => imp.includes('examples as '));
409
- if (examplesImport) {
410
- // Extract destination name and examples variable name
411
- // Format: "examples as gtagExamples" -> gtagExamples
412
- const examplesVarName = examplesImport.split(' as ')[1];
413
- // Get destination name from package (assumes @walkeros/web-destination-xxx format)
414
- const destinationMatch = packageName.match(/@walkeros\/web-destination-(.+)$/);
415
- if (destinationMatch) {
416
- const destinationName = destinationMatch[1];
417
- examplesMappings.push(` ${destinationName}: typeof ${examplesVarName} !== 'undefined' ? ${examplesVarName} : undefined`);
418
- }
419
- }
420
- }
421
- else if (hasExplicitCode) {
422
- // Package with explicit code specified in destinations/sources
423
- // → Generate named imports
424
- const codes = Array.from(explicitCodeImports.get(packageName));
425
- importStatements.push(`import { ${codes.join(', ')} } from '${packageName}';`);
426
- }
427
- else if (isUsedByDestOrSource) {
428
- // Package used by destination/source but no explicit imports or code
429
- // → Generate default import
430
- const varName = packageNameToVariable(packageName);
431
- importStatements.push(`import ${varName} from '${packageName}';`);
432
- }
433
- // If package declared but not used by any dest/source, skip import
434
- // Examples are no longer auto-imported - simulator loads them dynamically
435
- }
436
- return { importStatements, examplesMappings };
437
- }
438
- /**
439
- * Creates the entry point code for the bundle.
440
- * Generates imports, config object, and platform-specific wrapper programmatically.
441
- */
442
- export async function createEntryPoint(flowConfig, buildOptions, packagePaths) {
443
- // Detect packages used by destinations and sources
444
- const destinationPackages = detectDestinationPackages(flowConfig);
445
- const sourcePackages = detectSourcePackages(flowConfig);
446
- const explicitCodeImports = detectExplicitCodeImports(flowConfig);
447
- // Generate import statements
448
- const { importStatements } = generateImportStatements(buildOptions.packages, destinationPackages, sourcePackages, explicitCodeImports);
449
- const importsCode = importStatements.join('\n');
450
- const hasFlow = destinationPackages.size > 0 || sourcePackages.size > 0;
451
- // If no sources/destinations, just return user code with imports (no flow wrapper)
452
- if (!hasFlow) {
453
- const userCode = buildOptions.code || '';
454
- return importsCode ? `${importsCode}\n\n${userCode}` : userCode;
455
- }
456
- // Build config object programmatically (DRY - single source of truth)
457
- const configObject = buildConfigObject(flowConfig, explicitCodeImports);
458
- // Generate platform-specific wrapper
459
- const wrappedCode = generatePlatformWrapper(configObject, buildOptions.code || '', buildOptions);
460
- // Assemble final code
461
- return importsCode ? `${importsCode}\n\n${wrappedCode}` : wrappedCode;
462
- }
463
- function createBuildError(buildError, code) {
464
- if (!buildError.errors || buildError.errors.length === 0) {
465
- return new Error(`Build failed: ${buildError.message || buildError}`);
466
- }
467
- const firstError = buildError.errors[0];
468
- const location = firstError.location;
469
- if (location && location.file && location.file.includes('entry.js')) {
470
- // Error is in our generated entry point (code)
471
- const line = location.line;
472
- const column = location.column;
473
- const codeLines = code.split('\n');
474
- const errorLine = codeLines[line - 1] || '';
475
- return new Error(`Code syntax error at line ${line}, column ${column}:\n` +
476
- ` ${errorLine}\n` +
477
- ` ${' '.repeat(column - 1)}^\n` +
478
- `${firstError.text}`);
479
- }
480
- // Error is in package code or other build issue
481
- return new Error(`Build error: ${firstError.text}\n` +
482
- (location
483
- ? ` at ${location.file}:${location.line}:${location.column}`
484
- : ''));
485
- }
486
- /**
487
- * Build config object string from flow configuration.
488
- * Respects import strategy decisions from detectExplicitCodeImports.
489
- */
490
- export function buildConfigObject(flowConfig, explicitCodeImports) {
491
- const flowWithProps = flowConfig;
492
- const sources = flowWithProps.sources || {};
493
- const destinations = flowWithProps.destinations || {};
494
- // Build sources
495
- const sourcesEntries = Object.entries(sources).map(([key, source]) => {
496
- const hasExplicitCode = source.code && explicitCodeImports.has(source.package);
497
- const codeVar = hasExplicitCode
498
- ? source.code
499
- : packageNameToVariable(source.package);
500
- const configStr = source.config ? processConfigValue(source.config) : '{}';
501
- const envStr = source.env
502
- ? `,\n env: ${processConfigValue(source.env)}`
503
- : '';
504
- return ` ${key}: {\n code: ${codeVar},\n config: ${configStr}${envStr}\n }`;
505
- });
506
- // Build destinations
507
- const destinationsEntries = Object.entries(destinations).map(([key, dest]) => {
508
- const hasExplicitCode = dest.code && explicitCodeImports.has(dest.package);
509
- const codeVar = hasExplicitCode
510
- ? dest.code
511
- : packageNameToVariable(dest.package);
512
- const configStr = dest.config ? processConfigValue(dest.config) : '{}';
513
- const envStr = dest.env
514
- ? `,\n env: ${processConfigValue(dest.env)}`
515
- : '';
516
- return ` ${key}: {\n code: ${codeVar},\n config: ${configStr}${envStr}\n }`;
517
- });
518
- // Build collector
519
- const collectorStr = flowWithProps.collector
520
- ? `,\n ...${processConfigValue(flowWithProps.collector)}`
521
- : '';
522
- return `{
523
- sources: {
524
- ${sourcesEntries.join(',\n')}
525
- },
526
- destinations: {
527
- ${destinationsEntries.join(',\n')}
528
- }${collectorStr}
529
- }`;
530
- }
531
- /**
532
- * Process config value for serialization.
533
- * Uses existing serializer utilities.
534
- */
535
- function processConfigValue(value) {
536
- return JSON.stringify(value, null, 2);
537
- }
538
- /**
539
- * Generate platform-specific wrapper code.
540
- */
541
- export function generatePlatformWrapper(configObject, userCode, buildOptions) {
542
- if (buildOptions.platform === 'browser') {
543
- // Web platform: IIFE with browser globals
544
- const windowAssignments = [];
545
- if (buildOptions.windowCollector) {
546
- windowAssignments.push(` if (typeof window !== 'undefined') window['${buildOptions.windowCollector}'] = collector;`);
547
- }
548
- if (buildOptions.windowElb) {
549
- windowAssignments.push(` if (typeof window !== 'undefined') window['${buildOptions.windowElb}'] = elb;`);
550
- }
551
- const assignments = windowAssignments.length > 0 ? '\n' + windowAssignments.join('\n') : '';
552
- return `(async () => {
553
- const config = ${configObject};
554
-
555
- ${userCode}
556
-
557
- const { collector, elb } = await startFlow(config);${assignments}
558
- })();`;
559
- }
560
- else {
561
- // Server platform: Export default function
562
- const codeSection = userCode ? `\n ${userCode}\n` : '';
563
- return `export default async function(context = {}) {
564
- const config = ${configObject};${codeSection}
565
- return await startFlow(config);
566
- }`;
567
- }
568
- }
569
- //# sourceMappingURL=bundler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bundler.js","sourceRoot":"","sources":["../../../src/commands/bundle/bundler.ts"],"names":[],"mappings":"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"}
@@ -1,59 +0,0 @@
1
- /**
2
- * Bundle Command
3
- *
4
- * Supports both single-flow and multi-flow builds.
5
- */
6
- import type { BuildOptions } from '../../types/bundle.js';
7
- export interface BundleCommandOptions {
8
- config: string;
9
- flow?: string;
10
- all?: boolean;
11
- stats?: boolean;
12
- json?: boolean;
13
- cache?: boolean;
14
- verbose?: boolean;
15
- dryRun?: boolean;
16
- silent?: boolean;
17
- }
18
- export declare function bundleCommand(options: BundleCommandOptions): Promise<void>;
19
- /**
20
- * High-level bundle function for programmatic usage.
21
- *
22
- * Handles configuration loading, parsing, and logger creation internally.
23
- *
24
- * @param configOrPath - Bundle configuration (Flow.Setup) or path to config file
25
- * @param options - Bundle options
26
- * @param options.silent - Suppress all output (default: false)
27
- * @param options.verbose - Enable verbose logging (default: false)
28
- * @param options.stats - Collect and return bundle statistics (default: false)
29
- * @param options.cache - Enable package caching (default: true)
30
- * @param options.flowName - Flow to use (required for multi-flow configs)
31
- * @returns Bundle statistics if stats option is true, otherwise void
32
- *
33
- * @example
34
- * ```typescript
35
- * // With Flow.Setup config object
36
- * await bundle({
37
- * version: 1,
38
- * flows: {
39
- * default: {
40
- * web: {},
41
- * packages: { '@walkeros/collector': { imports: ['startFlow'] } },
42
- * destinations: { api: { code: 'destinationApi' } },
43
- * }
44
- * }
45
- * });
46
- *
47
- * // With config file
48
- * await bundle('./walker.config.json', { stats: true });
49
- * ```
50
- */
51
- export declare function bundle(configOrPath: unknown, options?: {
52
- silent?: boolean;
53
- verbose?: boolean;
54
- stats?: boolean;
55
- cache?: boolean;
56
- flowName?: string;
57
- buildOverrides?: Partial<BuildOptions>;
58
- }): Promise<import('./bundler').BundleStats | void>;
59
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/bundle/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAiBH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAI1D,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,aAAa,CACjC,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAmJf;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAsB,MAAM,CAC1B,YAAY,EAAE,OAAO,EACrB,OAAO,GAAE;IACP,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;CACnC,GACL,OAAO,CAAC,OAAO,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC,CAmCjD"}