@walkeros/cli 0.5.1-next.0 → 0.6.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 (264) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/README.md +51 -28
  3. package/dist/__tests__/bundle/bundler-helpers.test.d.ts +2 -0
  4. package/dist/__tests__/bundle/bundler-helpers.test.d.ts.map +1 -0
  5. package/dist/__tests__/bundle/bundler-helpers.test.js +151 -0
  6. package/dist/__tests__/bundle/bundler-helpers.test.js.map +1 -0
  7. package/dist/__tests__/bundle/bundler.test.d.ts +2 -0
  8. package/dist/__tests__/bundle/bundler.test.d.ts.map +1 -0
  9. package/dist/__tests__/bundle/bundler.test.js +352 -0
  10. package/dist/__tests__/bundle/bundler.test.js.map +1 -0
  11. package/dist/__tests__/bundle/programmatic.test.d.ts +2 -0
  12. package/dist/__tests__/bundle/programmatic.test.d.ts.map +1 -0
  13. package/dist/__tests__/bundle/programmatic.test.js +148 -0
  14. package/dist/__tests__/bundle/programmatic.test.js.map +1 -0
  15. package/dist/__tests__/cli-e2e.test.d.ts +8 -0
  16. package/dist/__tests__/cli-e2e.test.d.ts.map +1 -0
  17. package/dist/__tests__/cli-e2e.test.js +145 -0
  18. package/dist/__tests__/cli-e2e.test.js.map +1 -0
  19. package/dist/__tests__/cli.test.d.ts +2 -0
  20. package/dist/__tests__/cli.test.d.ts.map +1 -0
  21. package/dist/__tests__/cli.test.js +179 -0
  22. package/dist/__tests__/cli.test.js.map +1 -0
  23. package/dist/__tests__/config-loader.test.d.ts +7 -0
  24. package/dist/__tests__/config-loader.test.d.ts.map +1 -0
  25. package/dist/__tests__/config-loader.test.js +414 -0
  26. package/dist/__tests__/config-loader.test.js.map +1 -0
  27. package/dist/__tests__/core/asset-resolver.test.d.ts +2 -0
  28. package/dist/__tests__/core/asset-resolver.test.d.ts.map +1 -0
  29. package/dist/__tests__/core/asset-resolver.test.js +14 -0
  30. package/dist/__tests__/core/asset-resolver.test.js.map +1 -0
  31. package/dist/__tests__/core/build-cache.test.d.ts +2 -0
  32. package/dist/__tests__/core/build-cache.test.d.ts.map +1 -0
  33. package/dist/__tests__/core/build-cache.test.js +55 -0
  34. package/dist/__tests__/core/build-cache.test.js.map +1 -0
  35. package/dist/__tests__/core/cache-utils.test.d.ts +2 -0
  36. package/dist/__tests__/core/cache-utils.test.d.ts.map +1 -0
  37. package/dist/__tests__/core/cache-utils.test.js +70 -0
  38. package/dist/__tests__/core/cache-utils.test.js.map +1 -0
  39. package/dist/__tests__/core/config.test.d.ts +2 -0
  40. package/dist/__tests__/core/config.test.d.ts.map +1 -0
  41. package/dist/__tests__/core/config.test.js +79 -0
  42. package/dist/__tests__/core/config.test.js.map +1 -0
  43. package/dist/__tests__/core/logger.test.d.ts +2 -0
  44. package/dist/__tests__/core/logger.test.d.ts.map +1 -0
  45. package/dist/__tests__/core/logger.test.js +53 -0
  46. package/dist/__tests__/core/logger.test.js.map +1 -0
  47. package/dist/__tests__/integration/bundle-run.integration.test.d.ts +8 -0
  48. package/dist/__tests__/integration/bundle-run.integration.test.d.ts.map +1 -0
  49. package/dist/__tests__/integration/bundle-run.integration.test.js +54 -0
  50. package/dist/__tests__/integration/bundle-run.integration.test.js.map +1 -0
  51. package/dist/__tests__/push/push.test.d.ts +7 -0
  52. package/dist/__tests__/push/push.test.d.ts.map +1 -0
  53. package/dist/__tests__/push/push.test.js +197 -0
  54. package/dist/__tests__/push/push.test.js.map +1 -0
  55. package/dist/__tests__/simulate/env-loader.test.d.ts +2 -0
  56. package/dist/__tests__/simulate/env-loader.test.d.ts.map +1 -0
  57. package/dist/__tests__/simulate/env-loader.test.js +47 -0
  58. package/dist/__tests__/simulate/env-loader.test.js.map +1 -0
  59. package/dist/__tests__/simulate/node-executor.test.d.ts +5 -0
  60. package/dist/__tests__/simulate/node-executor.test.d.ts.map +1 -0
  61. package/dist/__tests__/simulate/node-executor.test.js +25 -0
  62. package/dist/__tests__/simulate/node-executor.test.js.map +1 -0
  63. package/dist/__tests__/simulate/server-simulate.integration.test.d.ts +5 -0
  64. package/dist/__tests__/simulate/server-simulate.integration.test.d.ts.map +1 -0
  65. package/dist/__tests__/simulate/server-simulate.integration.test.js +58 -0
  66. package/dist/__tests__/simulate/server-simulate.integration.test.js.map +1 -0
  67. package/dist/__tests__/smoke/production.smoke.test.d.ts +8 -0
  68. package/dist/__tests__/smoke/production.smoke.test.d.ts.map +1 -0
  69. package/dist/__tests__/smoke/production.smoke.test.js +65 -0
  70. package/dist/__tests__/smoke/production.smoke.test.js.map +1 -0
  71. package/dist/commands/bundle/bundler.d.ts +32 -0
  72. package/dist/commands/bundle/bundler.d.ts.map +1 -0
  73. package/dist/commands/bundle/bundler.js +569 -0
  74. package/dist/commands/bundle/bundler.js.map +1 -0
  75. package/dist/commands/bundle/index.d.ts +59 -0
  76. package/dist/commands/bundle/index.d.ts.map +1 -0
  77. package/dist/commands/bundle/index.js +184 -0
  78. package/dist/commands/bundle/index.js.map +1 -0
  79. package/dist/commands/bundle/package-manager.d.ts +8 -0
  80. package/dist/commands/bundle/package-manager.d.ts.map +1 -0
  81. package/dist/commands/bundle/package-manager.js +220 -0
  82. package/dist/commands/bundle/package-manager.js.map +1 -0
  83. package/dist/commands/bundle/stats.d.ts +23 -0
  84. package/dist/commands/bundle/stats.d.ts.map +1 -0
  85. package/dist/commands/bundle/stats.js +52 -0
  86. package/dist/commands/bundle/stats.js.map +1 -0
  87. package/dist/commands/cache.d.ts +7 -0
  88. package/dist/commands/cache.d.ts.map +1 -0
  89. package/dist/commands/cache.js +68 -0
  90. package/dist/commands/cache.js.map +1 -0
  91. package/dist/commands/push/index.d.ts +7 -0
  92. package/dist/commands/push/index.d.ts.map +1 -0
  93. package/dist/commands/push/index.js +247 -0
  94. package/dist/commands/push/index.js.map +1 -0
  95. package/dist/commands/push/types.d.ts +22 -0
  96. package/dist/commands/push/types.d.ts.map +1 -0
  97. package/dist/commands/push/types.js +2 -0
  98. package/dist/commands/push/types.js.map +1 -0
  99. package/dist/commands/run/__tests__/run.integration.test.d.ts +7 -0
  100. package/dist/commands/run/__tests__/run.integration.test.d.ts.map +1 -0
  101. package/dist/commands/run/__tests__/run.integration.test.js +51 -0
  102. package/dist/commands/run/__tests__/run.integration.test.js.map +1 -0
  103. package/dist/commands/run/__tests__/validators.test.d.ts +2 -0
  104. package/dist/commands/run/__tests__/validators.test.d.ts.map +1 -0
  105. package/dist/commands/run/__tests__/validators.test.js +80 -0
  106. package/dist/commands/run/__tests__/validators.test.js.map +1 -0
  107. package/dist/commands/run/execution.d.ts +14 -0
  108. package/dist/commands/run/execution.d.ts.map +1 -0
  109. package/dist/commands/run/execution.js +41 -0
  110. package/dist/commands/run/execution.js.map +1 -0
  111. package/dist/commands/run/index.d.ts +38 -0
  112. package/dist/commands/run/index.d.ts.map +1 -0
  113. package/dist/commands/run/index.js +154 -0
  114. package/dist/commands/run/index.js.map +1 -0
  115. package/dist/commands/run/types.d.ts +65 -0
  116. package/dist/commands/run/types.d.ts.map +1 -0
  117. package/dist/commands/run/types.js +7 -0
  118. package/dist/commands/run/types.js.map +1 -0
  119. package/dist/commands/run/utils.d.ts +29 -0
  120. package/dist/commands/run/utils.d.ts.map +1 -0
  121. package/dist/commands/run/utils.js +52 -0
  122. package/dist/commands/run/utils.js.map +1 -0
  123. package/dist/commands/run/validators.d.ts +33 -0
  124. package/dist/commands/run/validators.d.ts.map +1 -0
  125. package/dist/commands/run/validators.js +58 -0
  126. package/dist/commands/run/validators.js.map +1 -0
  127. package/dist/commands/simulate/env-loader.d.ts +19 -0
  128. package/dist/commands/simulate/env-loader.d.ts.map +1 -0
  129. package/dist/commands/simulate/env-loader.js +44 -0
  130. package/dist/commands/simulate/env-loader.js.map +1 -0
  131. package/dist/commands/simulate/index.d.ts +48 -0
  132. package/dist/commands/simulate/index.d.ts.map +1 -0
  133. package/dist/commands/simulate/index.js +113 -0
  134. package/dist/commands/simulate/index.js.map +1 -0
  135. package/dist/commands/simulate/jsdom-executor.d.ts +37 -0
  136. package/dist/commands/simulate/jsdom-executor.d.ts.map +1 -0
  137. package/dist/commands/simulate/jsdom-executor.js +137 -0
  138. package/dist/commands/simulate/jsdom-executor.js.map +1 -0
  139. package/dist/commands/simulate/node-executor.d.ts +28 -0
  140. package/dist/commands/simulate/node-executor.d.ts.map +1 -0
  141. package/dist/commands/simulate/node-executor.js +94 -0
  142. package/dist/commands/simulate/node-executor.js.map +1 -0
  143. package/dist/commands/simulate/simulator.d.ts +14 -0
  144. package/dist/commands/simulate/simulator.d.ts.map +1 -0
  145. package/dist/commands/simulate/simulator.js +163 -0
  146. package/dist/commands/simulate/simulator.js.map +1 -0
  147. package/dist/commands/simulate/tracker.d.ts +30 -0
  148. package/dist/commands/simulate/tracker.d.ts.map +1 -0
  149. package/dist/commands/simulate/tracker.js +96 -0
  150. package/dist/commands/simulate/tracker.js.map +1 -0
  151. package/dist/commands/simulate/types.d.ts +20 -0
  152. package/dist/commands/simulate/types.d.ts.map +1 -0
  153. package/dist/commands/simulate/types.js +2 -0
  154. package/dist/commands/simulate/types.js.map +1 -0
  155. package/dist/config/build-defaults.d.ts +49 -0
  156. package/dist/config/build-defaults.d.ts.map +1 -0
  157. package/dist/config/build-defaults.js +68 -0
  158. package/dist/config/build-defaults.js.map +1 -0
  159. package/dist/config/index.d.ts +13 -0
  160. package/dist/config/index.d.ts.map +1 -0
  161. package/dist/config/index.js +15 -0
  162. package/dist/config/index.js.map +1 -0
  163. package/dist/config/loader.d.ts +81 -0
  164. package/dist/config/loader.d.ts.map +1 -0
  165. package/dist/config/loader.js +153 -0
  166. package/dist/config/loader.js.map +1 -0
  167. package/dist/config/utils.d.ts +101 -0
  168. package/dist/config/utils.d.ts.map +1 -0
  169. package/dist/config/utils.js +235 -0
  170. package/dist/config/utils.js.map +1 -0
  171. package/dist/config/validators.d.ts +52 -0
  172. package/dist/config/validators.d.ts.map +1 -0
  173. package/dist/config/validators.js +85 -0
  174. package/dist/config/validators.js.map +1 -0
  175. package/dist/core/asset-resolver.d.ts +34 -0
  176. package/dist/core/asset-resolver.d.ts.map +1 -0
  177. package/dist/core/asset-resolver.js +70 -0
  178. package/dist/core/asset-resolver.js.map +1 -0
  179. package/dist/core/build-cache.d.ts +23 -0
  180. package/dist/core/build-cache.d.ts.map +1 -0
  181. package/dist/core/build-cache.js +44 -0
  182. package/dist/core/build-cache.js.map +1 -0
  183. package/dist/core/cache-utils.d.ts +27 -0
  184. package/dist/core/cache-utils.d.ts.map +1 -0
  185. package/dist/core/cache-utils.js +60 -0
  186. package/dist/core/cache-utils.js.map +1 -0
  187. package/dist/core/index.d.ts +8 -0
  188. package/dist/core/index.d.ts.map +1 -0
  189. package/dist/core/index.js +8 -0
  190. package/dist/core/index.js.map +1 -0
  191. package/dist/core/local-packages.d.ts +19 -0
  192. package/dist/core/local-packages.d.ts.map +1 -0
  193. package/dist/core/local-packages.js +60 -0
  194. package/dist/core/local-packages.js.map +1 -0
  195. package/dist/core/logger.d.ts +30 -0
  196. package/dist/core/logger.d.ts.map +1 -0
  197. package/dist/core/logger.js +85 -0
  198. package/dist/core/logger.js.map +1 -0
  199. package/dist/core/output.d.ts +30 -0
  200. package/dist/core/output.d.ts.map +1 -0
  201. package/dist/core/output.js +46 -0
  202. package/dist/core/output.js.map +1 -0
  203. package/dist/core/timer.d.ts +14 -0
  204. package/dist/core/timer.d.ts.map +1 -0
  205. package/dist/core/timer.js +29 -0
  206. package/dist/core/timer.js.map +1 -0
  207. package/dist/core/tmp.d.ts +27 -0
  208. package/dist/core/tmp.d.ts.map +1 -0
  209. package/dist/core/tmp.js +36 -0
  210. package/dist/core/tmp.js.map +1 -0
  211. package/dist/core/utils.d.ts +10 -0
  212. package/dist/core/utils.d.ts.map +1 -0
  213. package/dist/core/utils.js +12 -0
  214. package/dist/core/utils.js.map +1 -0
  215. package/dist/index.d.ts +20 -13
  216. package/dist/index.d.ts.map +1 -0
  217. package/dist/index.js +633 -761
  218. package/dist/index.js.map +1 -1
  219. package/dist/runtime/index.d.ts +10 -0
  220. package/dist/runtime/index.d.ts.map +1 -0
  221. package/dist/runtime/index.js +10 -0
  222. package/dist/runtime/index.js.map +1 -0
  223. package/dist/runtime/main.d.ts +2 -0
  224. package/dist/runtime/main.d.ts.map +1 -0
  225. package/dist/runtime/main.js +268 -0
  226. package/dist/runtime/main.js.map +1 -0
  227. package/dist/runtime/runner.d.ts +20 -0
  228. package/dist/runtime/runner.d.ts.map +1 -0
  229. package/dist/runtime/runner.js +72 -0
  230. package/dist/runtime/runner.js.map +1 -0
  231. package/dist/runtime/serve.d.ts +19 -0
  232. package/dist/runtime/serve.d.ts.map +1 -0
  233. package/dist/runtime/serve.js +97 -0
  234. package/dist/runtime/serve.js.map +1 -0
  235. package/dist/schemas/index.d.ts +9 -0
  236. package/dist/schemas/index.d.ts.map +1 -0
  237. package/dist/schemas/index.js +9 -0
  238. package/dist/schemas/index.js.map +1 -0
  239. package/dist/schemas/primitives.d.ts +37 -0
  240. package/dist/schemas/primitives.d.ts.map +1 -0
  241. package/dist/schemas/primitives.js +43 -0
  242. package/dist/schemas/primitives.js.map +1 -0
  243. package/dist/schemas/run.d.ts +23 -0
  244. package/dist/schemas/run.d.ts.map +1 -0
  245. package/dist/schemas/run.js +20 -0
  246. package/dist/schemas/run.js.map +1 -0
  247. package/dist/types/bundle.d.ts +141 -0
  248. package/dist/types/bundle.d.ts.map +1 -0
  249. package/dist/types/bundle.js +10 -0
  250. package/dist/types/bundle.js.map +1 -0
  251. package/dist/types/global.d.ts +38 -0
  252. package/dist/types/global.d.ts.map +1 -0
  253. package/dist/types/global.js +24 -0
  254. package/dist/types/global.js.map +1 -0
  255. package/dist/types/index.d.ts +8 -0
  256. package/dist/types/index.d.ts.map +1 -0
  257. package/dist/types/index.js +8 -0
  258. package/dist/types/index.js.map +1 -0
  259. package/dist/version.d.ts +3 -0
  260. package/dist/version.d.ts.map +1 -0
  261. package/dist/version.js +27 -0
  262. package/dist/version.js.map +1 -0
  263. package/dist/walker.js +1 -0
  264. package/package.json +7 -4
@@ -0,0 +1,247 @@
1
+ import path from 'path';
2
+ import { JSDOM, VirtualConsole } from 'jsdom';
3
+ import fs from 'fs-extra';
4
+ import { getPlatform } from '@walkeros/core';
5
+ import { schemas } from '@walkeros/core/dev';
6
+ import { createCommandLogger, getErrorMessage, } from '../../core/index.js';
7
+ import { loadJsonConfig, loadJsonFromSource, loadBundleConfig, } from '../../config/index.js';
8
+ import { bundleCore } from '../bundle/bundler.js';
9
+ /**
10
+ * CLI command handler for push command
11
+ */
12
+ export async function pushCommand(options) {
13
+ const logger = createCommandLogger(options);
14
+ const startTime = Date.now();
15
+ try {
16
+ // Step 1: Load event
17
+ logger.debug('Loading event');
18
+ const event = await loadJsonFromSource(options.event, {
19
+ name: 'event',
20
+ });
21
+ // Validate event format using Zod schema
22
+ const eventResult = schemas.PartialEventSchema.safeParse(event);
23
+ if (!eventResult.success) {
24
+ const errors = eventResult.error.issues
25
+ .map((issue) => `${String(issue.path.join('.'))}: ${issue.message}`)
26
+ .join(', ');
27
+ throw new Error(`Invalid event: ${errors}`);
28
+ }
29
+ const parsedEvent = eventResult.data;
30
+ if (!parsedEvent.name) {
31
+ throw new Error('Invalid event: Missing required "name" property');
32
+ }
33
+ // Create typed event object for execution
34
+ const validatedEvent = {
35
+ name: parsedEvent.name,
36
+ data: (parsedEvent.data || {}),
37
+ };
38
+ // Warn about event naming format (walkerOS business logic)
39
+ if (!validatedEvent.name.includes(' ')) {
40
+ logger.log(`Warning: Event name "${validatedEvent.name}" should follow "ENTITY ACTION" format (e.g., "page view")`);
41
+ }
42
+ // Step 2: Load config
43
+ logger.debug('Loading flow configuration');
44
+ const configPath = path.resolve(options.config);
45
+ const rawConfig = await loadJsonConfig(configPath);
46
+ const { flowConfig, buildOptions, flowName, isMultiFlow } = loadBundleConfig(rawConfig, {
47
+ configPath: options.config,
48
+ flowName: options.flow,
49
+ logger,
50
+ });
51
+ const platform = getPlatform(flowConfig);
52
+ // Step 3: Bundle to temp file in config directory (so Node.js can find node_modules)
53
+ logger.debug('Bundling flow configuration');
54
+ const configDir = path.dirname(configPath);
55
+ const tempDir = path.join(configDir, '.tmp', `push-${Date.now()}-${Math.random().toString(36).slice(2, 9)}`);
56
+ await fs.ensureDir(tempDir);
57
+ const tempPath = path.join(tempDir, `bundle.${platform === 'web' ? 'js' : 'mjs'}`);
58
+ const pushBuildOptions = {
59
+ ...buildOptions,
60
+ output: tempPath,
61
+ // Web uses IIFE for browser-like execution, server uses ESM
62
+ format: platform === 'web' ? 'iife' : 'esm',
63
+ platform: platform === 'web' ? 'browser' : 'node',
64
+ ...(platform === 'web' && {
65
+ windowCollector: 'collector',
66
+ windowElb: 'elb',
67
+ }),
68
+ };
69
+ await bundleCore(flowConfig, pushBuildOptions, logger, false);
70
+ logger.debug(`Bundle created: ${tempPath}`);
71
+ // Step 4: Execute based on platform
72
+ let result;
73
+ if (platform === 'web') {
74
+ logger.debug('Executing in web environment (JSDOM)');
75
+ result = await executeWebPush(tempPath, validatedEvent, logger);
76
+ }
77
+ else if (platform === 'server') {
78
+ logger.debug('Executing in server environment (Node.js)');
79
+ result = await executeServerPush(tempPath, validatedEvent, logger);
80
+ }
81
+ else {
82
+ throw new Error(`Unsupported platform: ${platform}`);
83
+ }
84
+ // Step 5: Output results
85
+ const duration = Date.now() - startTime;
86
+ if (options.json) {
87
+ logger.json({
88
+ success: result.success,
89
+ event: result.elbResult,
90
+ duration,
91
+ });
92
+ }
93
+ else {
94
+ // Standard output
95
+ if (result.success) {
96
+ logger.log('Event pushed successfully');
97
+ if (result.elbResult && typeof result.elbResult === 'object') {
98
+ const pushResult = result.elbResult;
99
+ if ('id' in pushResult && pushResult.id) {
100
+ logger.log(` Event ID: ${pushResult.id}`);
101
+ }
102
+ if ('entity' in pushResult && pushResult.entity) {
103
+ logger.log(` Entity: ${pushResult.entity}`);
104
+ }
105
+ if ('action' in pushResult && pushResult.action) {
106
+ logger.log(` Action: ${pushResult.action}`);
107
+ }
108
+ }
109
+ logger.log(` Duration: ${duration}ms`);
110
+ }
111
+ else {
112
+ logger.error(`Error: ${result.error}`);
113
+ process.exit(1);
114
+ }
115
+ }
116
+ // Cleanup temp directory
117
+ try {
118
+ await fs.remove(tempDir);
119
+ }
120
+ catch {
121
+ // Ignore cleanup errors
122
+ }
123
+ }
124
+ catch (error) {
125
+ const duration = Date.now() - startTime;
126
+ const errorMessage = getErrorMessage(error);
127
+ if (options.json) {
128
+ logger.json({
129
+ success: false,
130
+ error: errorMessage,
131
+ duration,
132
+ });
133
+ }
134
+ else {
135
+ logger.error(`Error: ${errorMessage}`);
136
+ }
137
+ process.exit(1);
138
+ }
139
+ }
140
+ /**
141
+ * Execute push for web platform using JSDOM with real APIs
142
+ */
143
+ async function executeWebPush(bundlePath, event, logger) {
144
+ const startTime = Date.now();
145
+ try {
146
+ // Create JSDOM with silent console
147
+ const virtualConsole = new VirtualConsole();
148
+ const dom = new JSDOM('<!DOCTYPE html><html><body></body></html>', {
149
+ url: 'http://localhost',
150
+ runScripts: 'dangerously',
151
+ resources: 'usable',
152
+ virtualConsole,
153
+ });
154
+ const { window } = dom;
155
+ // JSDOM provides fetch natively, no need to inject node-fetch
156
+ // Load and execute bundle
157
+ logger.debug('Loading bundle...');
158
+ const bundleCode = await fs.readFile(bundlePath, 'utf8');
159
+ window.eval(bundleCode);
160
+ // Wait for window.elb assignment
161
+ logger.debug('Waiting for elb...');
162
+ await waitForWindowProperty(window, 'elb', 5000);
163
+ const windowObj = window;
164
+ const elb = windowObj.elb;
165
+ // Push event
166
+ logger.log(`Pushing event: ${event.name}`);
167
+ const elbResult = await elb(event.name, event.data);
168
+ return {
169
+ success: true,
170
+ elbResult,
171
+ duration: Date.now() - startTime,
172
+ };
173
+ }
174
+ catch (error) {
175
+ return {
176
+ success: false,
177
+ duration: Date.now() - startTime,
178
+ error: getErrorMessage(error),
179
+ };
180
+ }
181
+ }
182
+ /**
183
+ * Execute push for server platform using Node.js
184
+ */
185
+ async function executeServerPush(bundlePath, event, logger, timeout = 60000) {
186
+ const startTime = Date.now();
187
+ try {
188
+ // Create timeout promise
189
+ const timeoutPromise = new Promise((_, reject) => {
190
+ setTimeout(() => reject(new Error(`Server push timeout after ${timeout}ms`)), timeout);
191
+ });
192
+ // Execute with timeout
193
+ const executePromise = (async () => {
194
+ // Dynamic import of ESM bundle
195
+ logger.debug('Importing bundle...');
196
+ const flowModule = await import(bundlePath);
197
+ if (!flowModule.default || typeof flowModule.default !== 'function') {
198
+ throw new Error('Bundle does not export default factory function');
199
+ }
200
+ // Call factory function to start flow
201
+ logger.debug('Calling factory function...');
202
+ const result = await flowModule.default();
203
+ if (!result || !result.elb || typeof result.elb !== 'function') {
204
+ throw new Error('Factory function did not return valid result with elb');
205
+ }
206
+ const { elb } = result;
207
+ // Push event
208
+ logger.log(`Pushing event: ${event.name}`);
209
+ const elbResult = await elb(event.name, event.data);
210
+ return {
211
+ success: true,
212
+ elbResult,
213
+ duration: Date.now() - startTime,
214
+ };
215
+ })();
216
+ // Race between execution and timeout
217
+ return await Promise.race([executePromise, timeoutPromise]);
218
+ }
219
+ catch (error) {
220
+ return {
221
+ success: false,
222
+ duration: Date.now() - startTime,
223
+ error: getErrorMessage(error),
224
+ };
225
+ }
226
+ }
227
+ /**
228
+ * Wait for window property to be assigned
229
+ */
230
+ function waitForWindowProperty(window, prop, timeout = 5000) {
231
+ return new Promise((resolve, reject) => {
232
+ const start = Date.now();
233
+ const check = () => {
234
+ if (window[prop] !== undefined) {
235
+ resolve();
236
+ }
237
+ else if (Date.now() - start > timeout) {
238
+ reject(new Error(`Timeout waiting for window.${prop}. IIFE may have failed to execute.`));
239
+ }
240
+ else {
241
+ setImmediate(check);
242
+ }
243
+ };
244
+ check();
245
+ });
246
+ }
247
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/push/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { Elb } from '@walkeros/core';
2
+ /**
3
+ * Push command options
4
+ */
5
+ export interface PushCommandOptions {
6
+ config: string;
7
+ event: string;
8
+ flow?: string;
9
+ json?: boolean;
10
+ verbose?: boolean;
11
+ silent?: boolean;
12
+ }
13
+ /**
14
+ * Push execution result
15
+ */
16
+ export interface PushResult {
17
+ success: boolean;
18
+ elbResult?: Elb.PushResult;
19
+ duration: number;
20
+ error?: string;
21
+ }
22
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/commands/push/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAE1C;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/commands/push/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Run Command Integration Tests
3
+ *
4
+ * Tests the CLI run command using local runtime module
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=run.integration.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.integration.test.d.ts","sourceRoot":"","sources":["../../../../src/commands/run/__tests__/run.integration.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Run Command Integration Tests
3
+ *
4
+ * Tests the CLI run command using local runtime module
5
+ */
6
+ import { runCommand } from '../index.js';
7
+ import { join } from 'path';
8
+ import { existsSync, readFileSync } from 'fs';
9
+ describe('Run Command Integration', () => {
10
+ const projectRoot = process.cwd();
11
+ describe('runCommand() programmatic API', () => {
12
+ it('should export runCommand function', () => {
13
+ expect(runCommand).toBeDefined();
14
+ expect(typeof runCommand).toBe('function');
15
+ });
16
+ it('should accept pre-built bundle files', () => {
17
+ // Use the pre-built bundle at convention-based path
18
+ const bundlePath = join(projectRoot, 'examples/dist/bundle.mjs');
19
+ // Bundle may not exist if tests run in isolation
20
+ // Just verify the bundle command API exists
21
+ expect(typeof runCommand).toBe('function');
22
+ });
23
+ it('should validate JSON config structure (Flow.Setup format)', async () => {
24
+ // Use the server-collect.json config
25
+ const configPath = join(projectRoot, 'examples/server-collect.json');
26
+ // Verify the config exists and is valid JSON
27
+ expect(existsSync(configPath)).toBe(true);
28
+ const content = readFileSync(configPath, 'utf-8');
29
+ const config = JSON.parse(content);
30
+ // New Flow.Setup format
31
+ expect(config.version).toBe(1);
32
+ expect(config.flows).toBeDefined();
33
+ expect(config.flows.default).toBeDefined();
34
+ expect(config.flows.default.server).toBeDefined();
35
+ });
36
+ });
37
+ describe('Integration with local runtime', () => {
38
+ it('should be able to import runtime module', async () => {
39
+ // Verify the runtime module is available
40
+ const runtimeModule = await import('../../../runtime/index.js');
41
+ expect(runtimeModule.runFlow).toBeDefined();
42
+ expect(runtimeModule.runServeMode).toBeDefined();
43
+ });
44
+ it('should have correct types from runtime module', () => {
45
+ // TypeScript compilation ensures this works
46
+ // If this test runs, types are correctly exported
47
+ expect(true).toBe(true);
48
+ });
49
+ });
50
+ });
51
+ //# sourceMappingURL=run.integration.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.integration.test.js","sourceRoot":"","sources":["../../../../src/commands/run/__tests__/run.integration.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAE9C,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAElC,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;QAC7C,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC3C,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;YACjC,MAAM,CAAC,OAAO,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,oDAAoD;YACpD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,0BAA0B,CAAC,CAAC;YAEjE,iDAAiD;YACjD,4CAA4C;YAC5C,MAAM,CAAC,OAAO,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;YACzE,qCAAqC;YACrC,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,8BAA8B,CAAC,CAAC;YAErE,6CAA6C;YAC7C,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE1C,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAClD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAEnC,wBAAwB;YACxB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;YAC3C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QACpD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;QAC9C,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;YACvD,yCAAyC;YACzC,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;YAEhE,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;YAC5C,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACvD,4CAA4C;YAC5C,kDAAkD;YAClD,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=validators.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validators.test.d.ts","sourceRoot":"","sources":["../../../../src/commands/run/__tests__/validators.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,80 @@
1
+ import { describe, it, expect } from '@jest/globals';
2
+ import { mkdirSync, writeFileSync, rmSync } from 'fs';
3
+ import { join } from 'path';
4
+ import { validateMode, validateFlowFile, validatePort } from '../validators.js';
5
+ describe('validators', () => {
6
+ describe('validateMode', () => {
7
+ it('should accept valid modes', () => {
8
+ expect(() => validateMode('collect')).not.toThrow();
9
+ expect(() => validateMode('serve')).not.toThrow();
10
+ });
11
+ it('should reject invalid modes', () => {
12
+ expect(() => validateMode('invalid')).toThrow(/Invalid mode/);
13
+ expect(() => validateMode('bundle')).toThrow(/Invalid mode/);
14
+ expect(() => validateMode('COLLECT')).toThrow(/Invalid mode/);
15
+ expect(() => validateMode('')).toThrow(/Invalid mode/);
16
+ });
17
+ it('should provide helpful error message', () => {
18
+ expect(() => validateMode('invalid')).toThrow(/Valid modes: collect, serve/);
19
+ expect(() => validateMode('invalid')).toThrow(/Example:/);
20
+ });
21
+ });
22
+ describe('validateFlowFile', () => {
23
+ const testDir = join(process.cwd(), '.test-tmp-validators');
24
+ const testFile = join(testDir, 'test-flow.json');
25
+ beforeEach(() => {
26
+ // Create test directory and file
27
+ mkdirSync(testDir, { recursive: true });
28
+ writeFileSync(testFile, '{}');
29
+ });
30
+ afterEach(() => {
31
+ // Cleanup
32
+ rmSync(testDir, { recursive: true, force: true });
33
+ });
34
+ it('should accept existing file', () => {
35
+ const result = validateFlowFile(testFile);
36
+ expect(result).toBe(testFile);
37
+ });
38
+ it('should accept relative path', () => {
39
+ const relativePath = '.test-tmp-validators/test-flow.json';
40
+ const result = validateFlowFile(relativePath);
41
+ expect(result).toContain('test-flow.json');
42
+ expect(result).not.toBe(relativePath); // Should be absolute
43
+ });
44
+ it('should return absolute path', () => {
45
+ const result = validateFlowFile(testFile);
46
+ expect(result).toMatch(/^[/\\]/); // Starts with / or \
47
+ });
48
+ it('should reject non-existent file', () => {
49
+ expect(() => validateFlowFile('./missing.json')).toThrow(/Flow file not found/);
50
+ });
51
+ it('should provide helpful error message', () => {
52
+ expect(() => validateFlowFile('./missing.json')).toThrow(/Resolved path:/);
53
+ expect(() => validateFlowFile('./missing.json')).toThrow(/Make sure the file exists/);
54
+ });
55
+ });
56
+ describe('validatePort', () => {
57
+ it('should accept valid ports', () => {
58
+ expect(() => validatePort(1)).not.toThrow();
59
+ expect(() => validatePort(80)).not.toThrow();
60
+ expect(() => validatePort(8080)).not.toThrow();
61
+ expect(() => validatePort(65535)).not.toThrow();
62
+ });
63
+ it('should reject invalid ports', () => {
64
+ expect(() => validatePort(0)).toThrow(/Invalid port/);
65
+ expect(() => validatePort(-1)).toThrow(/Invalid port/);
66
+ expect(() => validatePort(65536)).toThrow(/Invalid port/);
67
+ expect(() => validatePort(99999)).toThrow(/Invalid port/);
68
+ });
69
+ it('should reject non-integer ports', () => {
70
+ expect(() => validatePort(8080.5)).toThrow(/Invalid port/);
71
+ expect(() => validatePort(NaN)).toThrow(/Invalid port/);
72
+ expect(() => validatePort(Infinity)).toThrow(/Invalid port/);
73
+ });
74
+ it('should provide helpful error message', () => {
75
+ expect(() => validatePort(99999)).toThrow(/between 1 and 65535/);
76
+ expect(() => validatePort(99999)).toThrow(/Example: --port 8080/);
77
+ });
78
+ });
79
+ });
80
+ //# sourceMappingURL=validators.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validators.test.js","sourceRoot":"","sources":["../../../../src/commands/run/__tests__/validators.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Execute run command locally
3
+ *
4
+ * @param mode - Run mode (collect | serve)
5
+ * @param flowPath - Path to flow bundle (required for collect, optional for serve)
6
+ * @param options - Runtime options
7
+ */
8
+ export declare function executeRunLocal(mode: 'collect' | 'serve', flowPath: string | null, options: {
9
+ port?: number;
10
+ host?: string;
11
+ serveName?: string;
12
+ servePath?: string;
13
+ }): Promise<void>;
14
+ //# sourceMappingURL=execution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../../src/commands/run/execution.ts"],"names":[],"mappings":"AAQA;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,SAAS,GAAG,OAAO,EACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,OAAO,EAAE;IACP,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GACA,OAAO,CAAC,IAAI,CAAC,CA6Bf"}
@@ -0,0 +1,41 @@
1
+ import { createLogger, Level } from '@walkeros/core';
2
+ import { runFlow, runServeMode } from '../../runtime/index.js';
3
+ // Create logger for local execution - DEBUG level when VERBOSE, otherwise INFO
4
+ const logLevel = process.env.VERBOSE === 'true' ? Level.DEBUG : Level.INFO;
5
+ const logger = createLogger({ level: logLevel });
6
+ /**
7
+ * Execute run command locally
8
+ *
9
+ * @param mode - Run mode (collect | serve)
10
+ * @param flowPath - Path to flow bundle (required for collect, optional for serve)
11
+ * @param options - Runtime options
12
+ */
13
+ export async function executeRunLocal(mode, flowPath, options) {
14
+ switch (mode) {
15
+ case 'collect': {
16
+ if (!flowPath) {
17
+ throw new Error('Flow path is required for collect mode');
18
+ }
19
+ const config = {
20
+ port: options.port,
21
+ host: options.host,
22
+ };
23
+ await runFlow(flowPath, config, logger.scope('runner'));
24
+ break;
25
+ }
26
+ case 'serve': {
27
+ const config = {
28
+ port: options.port,
29
+ host: options.host,
30
+ serveName: options.serveName,
31
+ servePath: options.servePath,
32
+ file: flowPath || undefined,
33
+ };
34
+ await runServeMode(config, logger.scope('serve'));
35
+ break;
36
+ }
37
+ default:
38
+ throw new Error(`Unknown mode: ${mode}`);
39
+ }
40
+ }
41
+ //# sourceMappingURL=execution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution.js","sourceRoot":"","sources":["../../../src/commands/run/execution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAErD,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE/D,+EAA+E;AAC/E,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;AAC3E,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;AAEjD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAyB,EACzB,QAAuB,EACvB,OAKC;IAED,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;YAC5D,CAAC;YACD,MAAM,MAAM,GAAkB;gBAC5B,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,IAAI,EAAE,OAAO,CAAC,IAAI;aACnB,CAAC;YACF,MAAM,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;YACxD,MAAM;QACR,CAAC;QAED,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,MAAM,GAAgB;gBAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,IAAI,EAAE,QAAQ,IAAI,SAAS;aAC5B,CAAC;YACF,MAAM,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YAClD,MAAM;QACR,CAAC;QAED;YACE,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Run Command
3
+ *
4
+ * Runs walkerOS flows using local runtime
5
+ */
6
+ import type { RunMode, RunCommandOptions, RunOptions, RunResult } from './types.js';
7
+ /**
8
+ * CLI command function for `walkeros run`
9
+ *
10
+ * @param mode - Run mode (collect | serve)
11
+ * @param options - Command options
12
+ */
13
+ export declare function runCommand(mode: string, options: RunCommandOptions): Promise<void>;
14
+ /**
15
+ * Programmatic run function
16
+ *
17
+ * @param mode - Run mode (collect | serve)
18
+ * @param options - Run options
19
+ * @returns Run result
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * // Run with JSON config (bundles automatically)
24
+ * await run('collect', {
25
+ * config: './flow.json',
26
+ * port: 8080
27
+ * });
28
+ *
29
+ * // Run with pre-built bundle
30
+ * await run('collect', {
31
+ * config: './flow.mjs',
32
+ * port: 8080
33
+ * });
34
+ * ```
35
+ */
36
+ export declare function run(mode: RunMode, options: RunOptions): Promise<RunResult>;
37
+ export type { RunMode, RunCommandOptions, RunOptions, RunResult };
38
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/run/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH,OAAO,KAAK,EACV,OAAO,EACP,iBAAiB,EACjB,UAAU,EACV,SAAS,EACV,MAAM,YAAY,CAAC;AAEpB;;;;;GAKG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CAyEf;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,GAAG,CACvB,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,SAAS,CAAC,CAuDpB;AAGD,YAAY,EAAE,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC"}