@walkeros/cli 0.7.0-next.0 → 0.8.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 (269) hide show
  1. package/README.md +123 -37
  2. package/dist/examples/flow-order-complete.json +0 -1
  3. package/dist/examples/flow-simple.json +0 -3
  4. package/dist/examples/flow.json +0 -1
  5. package/dist/index.d.ts +23 -13
  6. package/dist/index.js +882 -846
  7. package/dist/index.js.map +1 -1
  8. package/dist/runtime/main.d.ts +2 -0
  9. package/dist/runtime/main.js +271 -0
  10. package/dist/runtime/main.js.map +1 -0
  11. package/dist/walker.js +1 -1
  12. package/examples/flow-order-complete.json +0 -1
  13. package/examples/flow-simple.json +0 -3
  14. package/examples/flow.json +0 -1
  15. package/package.json +10 -7
  16. package/CHANGELOG.md +0 -159
  17. package/dist/__tests__/bundle/bundler-helpers.test.d.ts +0 -2
  18. package/dist/__tests__/bundle/bundler-helpers.test.d.ts.map +0 -1
  19. package/dist/__tests__/bundle/bundler-helpers.test.js +0 -151
  20. package/dist/__tests__/bundle/bundler-helpers.test.js.map +0 -1
  21. package/dist/__tests__/bundle/bundler.test.d.ts +0 -2
  22. package/dist/__tests__/bundle/bundler.test.d.ts.map +0 -1
  23. package/dist/__tests__/bundle/bundler.test.js +0 -353
  24. package/dist/__tests__/bundle/bundler.test.js.map +0 -1
  25. package/dist/__tests__/bundle/programmatic.test.d.ts +0 -2
  26. package/dist/__tests__/bundle/programmatic.test.d.ts.map +0 -1
  27. package/dist/__tests__/bundle/programmatic.test.js +0 -148
  28. package/dist/__tests__/bundle/programmatic.test.js.map +0 -1
  29. package/dist/__tests__/cli-e2e.test.d.ts +0 -8
  30. package/dist/__tests__/cli-e2e.test.d.ts.map +0 -1
  31. package/dist/__tests__/cli-e2e.test.js +0 -130
  32. package/dist/__tests__/cli-e2e.test.js.map +0 -1
  33. package/dist/__tests__/cli.test.d.ts +0 -2
  34. package/dist/__tests__/cli.test.d.ts.map +0 -1
  35. package/dist/__tests__/cli.test.js +0 -180
  36. package/dist/__tests__/cli.test.js.map +0 -1
  37. package/dist/__tests__/config-loader.test.d.ts +0 -7
  38. package/dist/__tests__/config-loader.test.d.ts.map +0 -1
  39. package/dist/__tests__/config-loader.test.js +0 -414
  40. package/dist/__tests__/config-loader.test.js.map +0 -1
  41. package/dist/__tests__/core/asset-resolver.test.d.ts +0 -2
  42. package/dist/__tests__/core/asset-resolver.test.d.ts.map +0 -1
  43. package/dist/__tests__/core/asset-resolver.test.js +0 -14
  44. package/dist/__tests__/core/asset-resolver.test.js.map +0 -1
  45. package/dist/__tests__/core/build-cache.test.d.ts +0 -2
  46. package/dist/__tests__/core/build-cache.test.d.ts.map +0 -1
  47. package/dist/__tests__/core/build-cache.test.js +0 -55
  48. package/dist/__tests__/core/build-cache.test.js.map +0 -1
  49. package/dist/__tests__/core/cache-utils.test.d.ts +0 -2
  50. package/dist/__tests__/core/cache-utils.test.d.ts.map +0 -1
  51. package/dist/__tests__/core/cache-utils.test.js +0 -70
  52. package/dist/__tests__/core/cache-utils.test.js.map +0 -1
  53. package/dist/__tests__/core/config.test.d.ts +0 -2
  54. package/dist/__tests__/core/config.test.d.ts.map +0 -1
  55. package/dist/__tests__/core/config.test.js +0 -72
  56. package/dist/__tests__/core/config.test.js.map +0 -1
  57. package/dist/__tests__/core/docker-url.test.d.ts +0 -2
  58. package/dist/__tests__/core/docker-url.test.d.ts.map +0 -1
  59. package/dist/__tests__/core/docker-url.test.js +0 -54
  60. package/dist/__tests__/core/docker-url.test.js.map +0 -1
  61. package/dist/__tests__/core/logger.test.d.ts +0 -2
  62. package/dist/__tests__/core/logger.test.d.ts.map +0 -1
  63. package/dist/__tests__/core/logger.test.js +0 -53
  64. package/dist/__tests__/core/logger.test.js.map +0 -1
  65. package/dist/__tests__/integration/bundle-run.integration.test.d.ts +0 -8
  66. package/dist/__tests__/integration/bundle-run.integration.test.d.ts.map +0 -1
  67. package/dist/__tests__/integration/bundle-run.integration.test.js +0 -54
  68. package/dist/__tests__/integration/bundle-run.integration.test.js.map +0 -1
  69. package/dist/__tests__/push/push.test.d.ts +0 -7
  70. package/dist/__tests__/push/push.test.d.ts.map +0 -1
  71. package/dist/__tests__/push/push.test.js +0 -197
  72. package/dist/__tests__/push/push.test.js.map +0 -1
  73. package/dist/__tests__/simulate/env-loader.test.d.ts +0 -2
  74. package/dist/__tests__/simulate/env-loader.test.d.ts.map +0 -1
  75. package/dist/__tests__/simulate/env-loader.test.js +0 -47
  76. package/dist/__tests__/simulate/env-loader.test.js.map +0 -1
  77. package/dist/__tests__/simulate/node-executor.test.d.ts +0 -5
  78. package/dist/__tests__/simulate/node-executor.test.d.ts.map +0 -1
  79. package/dist/__tests__/simulate/node-executor.test.js +0 -25
  80. package/dist/__tests__/simulate/node-executor.test.js.map +0 -1
  81. package/dist/__tests__/simulate/server-simulate.integration.test.d.ts +0 -5
  82. package/dist/__tests__/simulate/server-simulate.integration.test.d.ts.map +0 -1
  83. package/dist/__tests__/simulate/server-simulate.integration.test.js +0 -58
  84. package/dist/__tests__/simulate/server-simulate.integration.test.js.map +0 -1
  85. package/dist/__tests__/smoke/production.smoke.test.d.ts +0 -8
  86. package/dist/__tests__/smoke/production.smoke.test.d.ts.map +0 -1
  87. package/dist/__tests__/smoke/production.smoke.test.js +0 -65
  88. package/dist/__tests__/smoke/production.smoke.test.js.map +0 -1
  89. package/dist/commands/bundle/bundler.d.ts +0 -32
  90. package/dist/commands/bundle/bundler.d.ts.map +0 -1
  91. package/dist/commands/bundle/bundler.js +0 -583
  92. package/dist/commands/bundle/bundler.js.map +0 -1
  93. package/dist/commands/bundle/index.d.ts +0 -57
  94. package/dist/commands/bundle/index.d.ts.map +0 -1
  95. package/dist/commands/bundle/index.js +0 -200
  96. package/dist/commands/bundle/index.js.map +0 -1
  97. package/dist/commands/bundle/package-manager.d.ts +0 -8
  98. package/dist/commands/bundle/package-manager.d.ts.map +0 -1
  99. package/dist/commands/bundle/package-manager.js +0 -197
  100. package/dist/commands/bundle/package-manager.js.map +0 -1
  101. package/dist/commands/bundle/stats.d.ts +0 -23
  102. package/dist/commands/bundle/stats.d.ts.map +0 -1
  103. package/dist/commands/bundle/stats.js +0 -52
  104. package/dist/commands/bundle/stats.js.map +0 -1
  105. package/dist/commands/cache.d.ts +0 -3
  106. package/dist/commands/cache.d.ts.map +0 -1
  107. package/dist/commands/cache.js +0 -44
  108. package/dist/commands/cache.js.map +0 -1
  109. package/dist/commands/push/index.d.ts +0 -7
  110. package/dist/commands/push/index.d.ts.map +0 -1
  111. package/dist/commands/push/index.js +0 -257
  112. package/dist/commands/push/index.js.map +0 -1
  113. package/dist/commands/push/types.d.ts +0 -21
  114. package/dist/commands/push/types.d.ts.map +0 -1
  115. package/dist/commands/push/types.js +0 -2
  116. package/dist/commands/push/types.js.map +0 -1
  117. package/dist/commands/run/__tests__/run.integration.test.d.ts +0 -8
  118. package/dist/commands/run/__tests__/run.integration.test.d.ts.map +0 -1
  119. package/dist/commands/run/__tests__/run.integration.test.js +0 -52
  120. package/dist/commands/run/__tests__/run.integration.test.js.map +0 -1
  121. package/dist/commands/run/__tests__/validators.test.d.ts +0 -2
  122. package/dist/commands/run/__tests__/validators.test.d.ts.map +0 -1
  123. package/dist/commands/run/__tests__/validators.test.js +0 -80
  124. package/dist/commands/run/__tests__/validators.test.js.map +0 -1
  125. package/dist/commands/run/execution.d.ts +0 -14
  126. package/dist/commands/run/execution.d.ts.map +0 -1
  127. package/dist/commands/run/execution.js +0 -41
  128. package/dist/commands/run/execution.js.map +0 -1
  129. package/dist/commands/run/index.d.ts +0 -39
  130. package/dist/commands/run/index.d.ts.map +0 -1
  131. package/dist/commands/run/index.js +0 -191
  132. package/dist/commands/run/index.js.map +0 -1
  133. package/dist/commands/run/types.d.ts +0 -60
  134. package/dist/commands/run/types.d.ts.map +0 -1
  135. package/dist/commands/run/types.js +0 -7
  136. package/dist/commands/run/types.js.map +0 -1
  137. package/dist/commands/run/utils.d.ts +0 -29
  138. package/dist/commands/run/utils.d.ts.map +0 -1
  139. package/dist/commands/run/utils.js +0 -52
  140. package/dist/commands/run/utils.js.map +0 -1
  141. package/dist/commands/run/validators.d.ts +0 -33
  142. package/dist/commands/run/validators.d.ts.map +0 -1
  143. package/dist/commands/run/validators.js +0 -58
  144. package/dist/commands/run/validators.js.map +0 -1
  145. package/dist/commands/simulate/env-loader.d.ts +0 -19
  146. package/dist/commands/simulate/env-loader.d.ts.map +0 -1
  147. package/dist/commands/simulate/env-loader.js +0 -46
  148. package/dist/commands/simulate/env-loader.js.map +0 -1
  149. package/dist/commands/simulate/index.d.ts +0 -48
  150. package/dist/commands/simulate/index.d.ts.map +0 -1
  151. package/dist/commands/simulate/index.js +0 -116
  152. package/dist/commands/simulate/index.js.map +0 -1
  153. package/dist/commands/simulate/jsdom-executor.d.ts +0 -37
  154. package/dist/commands/simulate/jsdom-executor.d.ts.map +0 -1
  155. package/dist/commands/simulate/jsdom-executor.js +0 -137
  156. package/dist/commands/simulate/jsdom-executor.js.map +0 -1
  157. package/dist/commands/simulate/node-executor.d.ts +0 -28
  158. package/dist/commands/simulate/node-executor.d.ts.map +0 -1
  159. package/dist/commands/simulate/node-executor.js +0 -94
  160. package/dist/commands/simulate/node-executor.js.map +0 -1
  161. package/dist/commands/simulate/simulator.d.ts +0 -14
  162. package/dist/commands/simulate/simulator.d.ts.map +0 -1
  163. package/dist/commands/simulate/simulator.js +0 -162
  164. package/dist/commands/simulate/simulator.js.map +0 -1
  165. package/dist/commands/simulate/tracker.d.ts +0 -30
  166. package/dist/commands/simulate/tracker.d.ts.map +0 -1
  167. package/dist/commands/simulate/tracker.js +0 -96
  168. package/dist/commands/simulate/tracker.js.map +0 -1
  169. package/dist/commands/simulate/types.d.ts +0 -18
  170. package/dist/commands/simulate/types.d.ts.map +0 -1
  171. package/dist/commands/simulate/types.js +0 -2
  172. package/dist/commands/simulate/types.js.map +0 -1
  173. package/dist/config/build-defaults.d.ts +0 -49
  174. package/dist/config/build-defaults.d.ts.map +0 -1
  175. package/dist/config/build-defaults.js +0 -70
  176. package/dist/config/build-defaults.js.map +0 -1
  177. package/dist/config/index.d.ts +0 -13
  178. package/dist/config/index.d.ts.map +0 -1
  179. package/dist/config/index.js +0 -15
  180. package/dist/config/index.js.map +0 -1
  181. package/dist/config/loader.d.ts +0 -81
  182. package/dist/config/loader.d.ts.map +0 -1
  183. package/dist/config/loader.js +0 -155
  184. package/dist/config/loader.js.map +0 -1
  185. package/dist/config/utils.d.ts +0 -114
  186. package/dist/config/utils.d.ts.map +0 -1
  187. package/dist/config/utils.js +0 -257
  188. package/dist/config/utils.js.map +0 -1
  189. package/dist/config/validators.d.ts +0 -52
  190. package/dist/config/validators.d.ts.map +0 -1
  191. package/dist/config/validators.js +0 -85
  192. package/dist/config/validators.js.map +0 -1
  193. package/dist/core/asset-resolver.d.ts +0 -34
  194. package/dist/core/asset-resolver.d.ts.map +0 -1
  195. package/dist/core/asset-resolver.js +0 -70
  196. package/dist/core/asset-resolver.js.map +0 -1
  197. package/dist/core/build-cache.d.ts +0 -23
  198. package/dist/core/build-cache.d.ts.map +0 -1
  199. package/dist/core/build-cache.js +0 -43
  200. package/dist/core/build-cache.js.map +0 -1
  201. package/dist/core/cache-utils.d.ts +0 -27
  202. package/dist/core/cache-utils.d.ts.map +0 -1
  203. package/dist/core/cache-utils.js +0 -60
  204. package/dist/core/cache-utils.js.map +0 -1
  205. package/dist/core/docker.d.ts +0 -102
  206. package/dist/core/docker.d.ts.map +0 -1
  207. package/dist/core/docker.js +0 -278
  208. package/dist/core/docker.js.map +0 -1
  209. package/dist/core/execution.d.ts +0 -34
  210. package/dist/core/execution.d.ts.map +0 -1
  211. package/dist/core/execution.js +0 -64
  212. package/dist/core/execution.js.map +0 -1
  213. package/dist/core/index.d.ts +0 -10
  214. package/dist/core/index.d.ts.map +0 -1
  215. package/dist/core/index.js +0 -10
  216. package/dist/core/index.js.map +0 -1
  217. package/dist/core/local-packages.d.ts +0 -19
  218. package/dist/core/local-packages.d.ts.map +0 -1
  219. package/dist/core/local-packages.js +0 -60
  220. package/dist/core/local-packages.js.map +0 -1
  221. package/dist/core/logger.d.ts +0 -28
  222. package/dist/core/logger.d.ts.map +0 -1
  223. package/dist/core/logger.js +0 -88
  224. package/dist/core/logger.js.map +0 -1
  225. package/dist/core/output.d.ts +0 -30
  226. package/dist/core/output.d.ts.map +0 -1
  227. package/dist/core/output.js +0 -46
  228. package/dist/core/output.js.map +0 -1
  229. package/dist/core/temp-manager.d.ts +0 -51
  230. package/dist/core/temp-manager.d.ts.map +0 -1
  231. package/dist/core/temp-manager.js +0 -73
  232. package/dist/core/temp-manager.js.map +0 -1
  233. package/dist/core/timer.d.ts +0 -14
  234. package/dist/core/timer.d.ts.map +0 -1
  235. package/dist/core/timer.js +0 -29
  236. package/dist/core/timer.js.map +0 -1
  237. package/dist/core/utils.d.ts +0 -10
  238. package/dist/core/utils.d.ts.map +0 -1
  239. package/dist/core/utils.js +0 -12
  240. package/dist/core/utils.js.map +0 -1
  241. package/dist/index.d.ts.map +0 -1
  242. package/dist/schemas/index.d.ts +0 -9
  243. package/dist/schemas/index.d.ts.map +0 -1
  244. package/dist/schemas/index.js +0 -9
  245. package/dist/schemas/index.js.map +0 -1
  246. package/dist/schemas/primitives.d.ts +0 -37
  247. package/dist/schemas/primitives.d.ts.map +0 -1
  248. package/dist/schemas/primitives.js +0 -43
  249. package/dist/schemas/primitives.js.map +0 -1
  250. package/dist/schemas/run.d.ts +0 -23
  251. package/dist/schemas/run.d.ts.map +0 -1
  252. package/dist/schemas/run.js +0 -20
  253. package/dist/schemas/run.js.map +0 -1
  254. package/dist/types/bundle.d.ts +0 -141
  255. package/dist/types/bundle.d.ts.map +0 -1
  256. package/dist/types/bundle.js +0 -10
  257. package/dist/types/bundle.js.map +0 -1
  258. package/dist/types/global.d.ts +0 -51
  259. package/dist/types/global.d.ts.map +0 -1
  260. package/dist/types/global.js +0 -30
  261. package/dist/types/global.js.map +0 -1
  262. package/dist/types/index.d.ts +0 -8
  263. package/dist/types/index.d.ts.map +0 -1
  264. package/dist/types/index.js +0 -8
  265. package/dist/types/index.js.map +0 -1
  266. package/dist/version.d.ts +0 -3
  267. package/dist/version.d.ts.map +0 -1
  268. package/dist/version.js +0 -27
  269. package/dist/version.js.map +0 -1
@@ -0,0 +1,2 @@
1
+
2
+ export { }
@@ -0,0 +1,271 @@
1
+ #!/usr/bin/env node
2
+
3
+ // src/runtime/runner.ts
4
+ import { pathToFileURL } from "url";
5
+ import { resolve, dirname } from "path";
6
+ async function runFlow(file, config, logger, loggerConfig) {
7
+ logger.info(`Loading flow from ${file}`);
8
+ try {
9
+ const absolutePath = resolve(file);
10
+ const flowDir = dirname(absolutePath);
11
+ process.chdir(flowDir);
12
+ const fileUrl = pathToFileURL(absolutePath).href;
13
+ const module = await import(fileUrl);
14
+ if (!module.default || typeof module.default !== "function") {
15
+ logger.throw(
16
+ `Invalid flow bundle: ${file} must export a default function`
17
+ );
18
+ }
19
+ const flowContext = loggerConfig ? { ...config, logger: loggerConfig } : config;
20
+ const result = await module.default(flowContext);
21
+ if (!result || !result.collector) {
22
+ logger.throw(`Invalid flow bundle: ${file} must return { collector }`);
23
+ }
24
+ const { collector } = result;
25
+ logger.info("Flow running");
26
+ if (config?.port) {
27
+ logger.info(`Port: ${config.port}`);
28
+ }
29
+ const shutdown = async (signal) => {
30
+ logger.info(`Received ${signal}, shutting down gracefully...`);
31
+ try {
32
+ if (collector.command) {
33
+ await collector.command("shutdown");
34
+ }
35
+ logger.info("Shutdown complete");
36
+ process.exit(0);
37
+ } catch (error) {
38
+ const message = error instanceof Error ? error.message : String(error);
39
+ logger.error(`Error during shutdown: ${message}`);
40
+ process.exit(1);
41
+ }
42
+ };
43
+ process.on("SIGTERM", () => shutdown("SIGTERM"));
44
+ process.on("SIGINT", () => shutdown("SIGINT"));
45
+ await new Promise(() => {
46
+ });
47
+ } catch (error) {
48
+ const message = error instanceof Error ? error.message : String(error);
49
+ logger.error(`Failed to run flow: ${message}`);
50
+ if (error instanceof Error && error.stack) {
51
+ logger.debug("Stack trace:", { stack: error.stack });
52
+ }
53
+ throw error;
54
+ }
55
+ }
56
+
57
+ // src/runtime/serve.ts
58
+ import express from "express";
59
+ import { resolve as resolve2 } from "path";
60
+
61
+ // src/version.ts
62
+ import { readFileSync } from "fs";
63
+ import { fileURLToPath } from "url";
64
+ import { dirname as dirname2, join } from "path";
65
+ var versionFilename = fileURLToPath(import.meta.url);
66
+ var versionDirname = dirname2(versionFilename);
67
+ function findPackageJson() {
68
+ const paths = [
69
+ join(versionDirname, "../package.json"),
70
+ // dist/ or src/
71
+ join(versionDirname, "../../package.json")
72
+ // src/core/ (not used, but safe)
73
+ ];
74
+ for (const p of paths) {
75
+ try {
76
+ return readFileSync(p, "utf-8");
77
+ } catch {
78
+ }
79
+ }
80
+ return JSON.stringify({ version: "0.0.0" });
81
+ }
82
+ var VERSION = JSON.parse(findPackageJson()).version;
83
+
84
+ // src/runtime/serve.ts
85
+ async function runServeMode(config, logger) {
86
+ const port = process.env.PORT ? parseInt(process.env.PORT, 10) : config?.port || 8080;
87
+ const host = process.env.HOST || config?.host || "0.0.0.0";
88
+ const file = resolve2(
89
+ process.env.BUNDLE || config?.file || "./dist/walker.js"
90
+ );
91
+ const serveName = process.env.SERVE_NAME || config?.serveName || "walker.js";
92
+ const servePath = process.env.SERVE_PATH || config?.servePath || "";
93
+ const urlPath = servePath ? `/${servePath}/${serveName}` : `/${serveName}`;
94
+ logger.info("Starting single-file server...");
95
+ logger.info(`File: ${file}`);
96
+ logger.info(`URL: http://${host}:${port}${urlPath}`);
97
+ try {
98
+ const app = express();
99
+ app.get("/health", (req, res) => {
100
+ res.json({
101
+ status: "ok",
102
+ version: VERSION,
103
+ timestamp: Date.now(),
104
+ mode: "serve",
105
+ file,
106
+ url: urlPath
107
+ });
108
+ });
109
+ app.get(urlPath, (req, res) => {
110
+ res.type("application/javascript");
111
+ res.sendFile(file, { dotfiles: "allow" }, (err) => {
112
+ if (err && !res.headersSent) {
113
+ const errCode = err.code;
114
+ const errStatus = err.status || err.statusCode;
115
+ if (errCode !== "ECONNABORTED") {
116
+ logger.error(
117
+ `sendFile error for ${file}: ${err.message} (code: ${errCode}, status: ${errStatus})`
118
+ );
119
+ }
120
+ if (errStatus === 404 || errCode === "ENOENT" || errCode === "EISDIR" || errCode === "ENOTDIR") {
121
+ res.status(404).send("File not found");
122
+ } else if (errCode !== "ECONNABORTED") {
123
+ res.status(500).send("Internal server error");
124
+ }
125
+ }
126
+ });
127
+ });
128
+ const server = app.listen(port, host, () => {
129
+ logger.info(`Server listening on http://${host}:${port}`);
130
+ logger.info(`GET ${urlPath} - Bundle file`);
131
+ logger.info(`GET /health - Health check`);
132
+ });
133
+ const shutdownHandler = (signal) => {
134
+ logger.info(`Received ${signal}, shutting down...`);
135
+ server.close(() => {
136
+ logger.info("Server closed");
137
+ process.exit(0);
138
+ });
139
+ };
140
+ process.on("SIGTERM", () => shutdownHandler("SIGTERM"));
141
+ process.on("SIGINT", () => shutdownHandler("SIGINT"));
142
+ await new Promise(() => {
143
+ });
144
+ } catch (error) {
145
+ const message = error instanceof Error ? error.message : String(error);
146
+ logger.error(`Server failed: ${message}`);
147
+ process.exit(1);
148
+ }
149
+ }
150
+
151
+ // src/core/logger.ts
152
+ import chalk from "chalk";
153
+ var BRAND_COLOR = "#01b5e2";
154
+ function createLogger(options = {}) {
155
+ const { verbose = false, silent = false, json = false } = options;
156
+ const shouldLog = !silent && !json;
157
+ const shouldDebug = verbose && !silent && !json;
158
+ return {
159
+ log: (...args) => {
160
+ if (shouldLog) {
161
+ const message = args.map((arg) => String(arg)).join(" ");
162
+ console.log(message);
163
+ }
164
+ },
165
+ brand: (...args) => {
166
+ if (shouldLog) {
167
+ const message = args.map((arg) => String(arg)).join(" ");
168
+ console.log(chalk.hex(BRAND_COLOR)(message));
169
+ }
170
+ },
171
+ error: (...args) => {
172
+ if (!json) {
173
+ const message = args.map((arg) => String(arg)).join(" ");
174
+ console.error(chalk.red(message));
175
+ }
176
+ },
177
+ debug: (...args) => {
178
+ if (shouldDebug) {
179
+ const message = args.map((arg) => String(arg)).join(" ");
180
+ console.log(` ${message}`);
181
+ }
182
+ },
183
+ json: (data) => {
184
+ if (!silent) {
185
+ console.log(JSON.stringify(data, null, 2));
186
+ }
187
+ },
188
+ // Backward-compatible methods (all use default terminal color per design)
189
+ info: (...args) => {
190
+ if (shouldLog) {
191
+ const message = args.map((arg) => String(arg)).join(" ");
192
+ console.log(message);
193
+ }
194
+ },
195
+ success: (...args) => {
196
+ if (shouldLog) {
197
+ const message = args.map((arg) => String(arg)).join(" ");
198
+ console.log(message);
199
+ }
200
+ },
201
+ warning: (...args) => {
202
+ if (shouldLog) {
203
+ const message = args.map((arg) => String(arg)).join(" ");
204
+ console.log(message);
205
+ }
206
+ },
207
+ warn: (...args) => {
208
+ if (shouldLog) {
209
+ const message = args.map((arg) => String(arg)).join(" ");
210
+ console.log(message);
211
+ }
212
+ },
213
+ gray: (...args) => {
214
+ if (shouldLog) {
215
+ const message = args.map((arg) => String(arg)).join(" ");
216
+ console.log(message);
217
+ }
218
+ }
219
+ };
220
+ }
221
+
222
+ // src/runtime/main.ts
223
+ function adaptLogger(cliLogger) {
224
+ return {
225
+ error: (message) => {
226
+ const msg = message instanceof Error ? message.message : message;
227
+ cliLogger.error(msg);
228
+ },
229
+ info: (message) => {
230
+ const msg = message instanceof Error ? message.message : message;
231
+ cliLogger.info(msg);
232
+ },
233
+ debug: (message) => {
234
+ const msg = message instanceof Error ? message.message : message;
235
+ cliLogger.debug(msg);
236
+ },
237
+ throw: (message) => {
238
+ const msg = message instanceof Error ? message.message : message;
239
+ cliLogger.error(msg);
240
+ throw message instanceof Error ? message : new Error(msg);
241
+ },
242
+ scope: (name) => {
243
+ return adaptLogger(cliLogger);
244
+ }
245
+ };
246
+ }
247
+ async function main() {
248
+ const mode = process.env.MODE || "collect";
249
+ const file = process.env.BUNDLE || "/app/flow/bundle.mjs";
250
+ const port = parseInt(process.env.PORT || "8080", 10);
251
+ const cliLogger = createLogger({ silent: false, verbose: true });
252
+ const logger = adaptLogger(cliLogger);
253
+ cliLogger.log(`Starting walkeros/flow in ${mode} mode`);
254
+ cliLogger.log(`File: ${file}`);
255
+ cliLogger.log(`Port: ${port}`);
256
+ try {
257
+ if (mode === "collect") {
258
+ await runFlow(file, { port }, logger);
259
+ } else if (mode === "serve") {
260
+ await runServeMode({ file, port }, logger);
261
+ } else {
262
+ cliLogger.error(`Unknown mode: ${mode}. Use 'collect' or 'serve'.`);
263
+ process.exit(1);
264
+ }
265
+ } catch (error) {
266
+ cliLogger.error(`Failed to start: ${error}`);
267
+ process.exit(1);
268
+ }
269
+ }
270
+ main();
271
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/runtime/runner.ts","../../src/runtime/serve.ts","../../src/version.ts","../../src/core/logger.ts","../../src/runtime/main.ts"],"sourcesContent":["/**\n * Runtime executor for pre-built walkerOS flows\n *\n * This module runs pre-built .mjs flow bundles without any build-time operations.\n * All bundling, package downloading, and code generation happens BEFORE this runs.\n */\n\nimport { pathToFileURL } from 'url';\nimport { resolve, dirname } from 'path';\nimport type { Logger } from '@walkeros/core';\n\nexport interface RuntimeConfig {\n port?: number;\n host?: string;\n}\n\n/**\n * Run a pre-built flow bundle\n *\n * @param file - Absolute path to pre-built .mjs flow file\n * @param config - Optional runtime configuration\n * @param logger - Logger instance for output\n * @param loggerConfig - Optional logger config to forward to the flow's collector\n */\nexport async function runFlow(\n file: string,\n config: RuntimeConfig | undefined,\n logger: Logger.Instance,\n loggerConfig?: Logger.Config,\n): Promise<void> {\n logger.info(`Loading flow from ${file}`);\n\n try {\n const absolutePath = resolve(file);\n const flowDir = dirname(absolutePath);\n\n // Change working directory to flow's directory\n // This ensures relative paths (e.g., ./shared/credentials.json) work\n // consistently in both local and Docker execution modes\n process.chdir(flowDir);\n\n const fileUrl = pathToFileURL(absolutePath).href;\n const module = await import(fileUrl);\n\n if (!module.default || typeof module.default !== 'function') {\n logger.throw(\n `Invalid flow bundle: ${file} must export a default function`,\n );\n }\n\n // Execute the flow's factory function with runtime config and logger\n const flowContext = loggerConfig\n ? { ...config, logger: loggerConfig }\n : config;\n const result = await module.default(flowContext);\n\n if (!result || !result.collector) {\n logger.throw(`Invalid flow bundle: ${file} must return { collector }`);\n }\n\n const { collector } = result;\n\n logger.info('Flow running');\n if (config?.port) {\n logger.info(`Port: ${config.port}`);\n }\n\n // Graceful shutdown handler\n const shutdown = async (signal: string) => {\n logger.info(`Received ${signal}, shutting down gracefully...`);\n\n try {\n // Use collector's shutdown command if available\n if (collector.command) {\n await collector.command('shutdown');\n }\n logger.info('Shutdown complete');\n process.exit(0);\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n logger.error(`Error during shutdown: ${message}`);\n process.exit(1);\n }\n };\n\n // Register shutdown handlers\n process.on('SIGTERM', () => shutdown('SIGTERM'));\n process.on('SIGINT', () => shutdown('SIGINT'));\n\n // Keep process alive\n await new Promise(() => {});\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n logger.error(`Failed to run flow: ${message}`);\n if (error instanceof Error && error.stack) {\n logger.debug('Stack trace:', { stack: error.stack });\n }\n throw error;\n }\n}\n","/**\n * Serve mode - serve single file (typically generated bundle)\n */\n\nimport express from 'express';\nimport { resolve } from 'path';\nimport type { Logger } from '@walkeros/core';\nimport { VERSION } from '../version';\n\nexport interface ServeConfig {\n port?: number;\n host?: string;\n servePath?: string;\n serveName?: string;\n file?: string;\n}\n\n/**\n * Run serve mode - serve single file (typically generated bundle)\n *\n * @param config - Server configuration\n * @param logger - Logger instance for output\n */\nexport async function runServeMode(\n config: ServeConfig | undefined,\n logger: Logger.Instance,\n): Promise<void> {\n // Port priority: ENV variable > config > default\n const port = process.env.PORT\n ? parseInt(process.env.PORT, 10)\n : config?.port || 8080;\n\n // Host priority: ENV variable > config > default\n const host = process.env.HOST || config?.host || '0.0.0.0';\n\n // Bundle path: ENV variable > config > default (resolve to absolute)\n const file = resolve(\n process.env.BUNDLE || config?.file || './dist/walker.js',\n );\n\n // Serve name (filename in URL): ENV variable > config > default\n const serveName = process.env.SERVE_NAME || config?.serveName || 'walker.js';\n\n // Serve path (URL directory): ENV variable > config > default (empty = root)\n const servePath = process.env.SERVE_PATH || config?.servePath || '';\n\n // Build full URL path\n const urlPath = servePath ? `/${servePath}/${serveName}` : `/${serveName}`;\n\n logger.info('Starting single-file server...');\n logger.info(`File: ${file}`);\n logger.info(`URL: http://${host}:${port}${urlPath}`);\n\n try {\n const app = express();\n\n // Health check\n app.get('/health', (req, res) => {\n res.json({\n status: 'ok',\n version: VERSION,\n timestamp: Date.now(),\n mode: 'serve',\n file: file,\n url: urlPath,\n });\n });\n\n // Serve single file at custom URL path\n app.get(urlPath, (req, res) => {\n // Set content type before streaming\n res.type('application/javascript');\n\n // Allow dotfiles since file paths may include dotfile directories\n res.sendFile(file, { dotfiles: 'allow' }, (err) => {\n if (err && !res.headersSent) {\n const errCode = (err as NodeJS.ErrnoException).code;\n // Express 5 uses HTTP-style errors with status/statusCode\n const errStatus =\n (err as { status?: number; statusCode?: number }).status ||\n (err as { status?: number; statusCode?: number }).statusCode;\n\n // Log errors (except client disconnections)\n if (errCode !== 'ECONNABORTED') {\n logger.error(\n `sendFile error for ${file}: ${err.message} (code: ${errCode}, status: ${errStatus})`,\n );\n }\n\n // Send appropriate error response (check both Node.js codes and HTTP status)\n if (\n errStatus === 404 ||\n errCode === 'ENOENT' ||\n errCode === 'EISDIR' ||\n errCode === 'ENOTDIR'\n ) {\n res.status(404).send('File not found');\n } else if (errCode !== 'ECONNABORTED') {\n res.status(500).send('Internal server error');\n }\n }\n });\n });\n\n // Start server\n const server = app.listen(port, host, () => {\n logger.info(`Server listening on http://${host}:${port}`);\n logger.info(`GET ${urlPath} - Bundle file`);\n logger.info(`GET /health - Health check`);\n });\n\n // Graceful shutdown\n const shutdownHandler = (signal: string) => {\n logger.info(`Received ${signal}, shutting down...`);\n server.close(() => {\n logger.info('Server closed');\n process.exit(0);\n });\n };\n\n process.on('SIGTERM', () => shutdownHandler('SIGTERM'));\n process.on('SIGINT', () => shutdownHandler('SIGINT'));\n\n // Keep process alive\n await new Promise(() => {});\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n logger.error(`Server failed: ${message}`);\n process.exit(1);\n }\n}\n","import { readFileSync } from 'fs';\nimport { fileURLToPath } from 'url';\nimport { dirname, join } from 'path';\n\nconst versionFilename = fileURLToPath(import.meta.url);\nconst versionDirname = dirname(versionFilename);\n\n/**\n * Find package.json in parent directories\n * Handles both source (src/) and bundled (dist/) contexts\n */\nfunction findPackageJson(): string {\n const paths = [\n join(versionDirname, '../package.json'), // dist/ or src/\n join(versionDirname, '../../package.json'), // src/core/ (not used, but safe)\n ];\n for (const p of paths) {\n try {\n return readFileSync(p, 'utf-8');\n } catch {\n // Continue to next path\n }\n }\n return JSON.stringify({ version: '0.0.0' });\n}\n\n/** CLI package version */\nexport const VERSION: string = JSON.parse(findPackageJson()).version;\n","/* eslint-disable no-console */\nimport chalk from 'chalk';\nimport type { GlobalOptions } from '../types/global.js';\n\nconst BRAND_COLOR = '#01b5e2';\n\nexport interface LoggerOptions {\n verbose?: boolean;\n silent?: boolean;\n json?: boolean;\n}\n\nexport interface Logger {\n log: (...args: unknown[]) => void;\n brand: (...args: unknown[]) => void;\n error: (...args: unknown[]) => void;\n debug: (...args: unknown[]) => void;\n json: (data: unknown) => void;\n // Backward-compatible methods (map to default terminal color per design)\n info: (...args: unknown[]) => void;\n success: (...args: unknown[]) => void;\n warning: (...args: unknown[]) => void;\n warn: (...args: unknown[]) => void;\n gray: (...args: unknown[]) => void;\n}\n\nexport function createLogger(options: LoggerOptions = {}): Logger {\n const { verbose = false, silent = false, json = false } = options;\n\n const shouldLog = !silent && !json;\n const shouldDebug = verbose && !silent && !json;\n\n return {\n log: (...args: unknown[]) => {\n if (shouldLog) {\n const message = args.map((arg) => String(arg)).join(' ');\n console.log(message);\n }\n },\n\n brand: (...args: unknown[]) => {\n if (shouldLog) {\n const message = args.map((arg) => String(arg)).join(' ');\n console.log(chalk.hex(BRAND_COLOR)(message));\n }\n },\n\n error: (...args: unknown[]) => {\n if (!json) {\n const message = args.map((arg) => String(arg)).join(' ');\n console.error(chalk.red(message));\n }\n },\n\n debug: (...args: unknown[]) => {\n if (shouldDebug) {\n const message = args.map((arg) => String(arg)).join(' ');\n console.log(` ${message}`);\n }\n },\n\n json: (data: unknown) => {\n if (!silent) {\n console.log(JSON.stringify(data, null, 2));\n }\n },\n\n // Backward-compatible methods (all use default terminal color per design)\n info: (...args: unknown[]) => {\n if (shouldLog) {\n const message = args.map((arg) => String(arg)).join(' ');\n console.log(message);\n }\n },\n\n success: (...args: unknown[]) => {\n if (shouldLog) {\n const message = args.map((arg) => String(arg)).join(' ');\n console.log(message);\n }\n },\n\n warning: (...args: unknown[]) => {\n if (shouldLog) {\n const message = args.map((arg) => String(arg)).join(' ');\n console.log(message);\n }\n },\n\n warn: (...args: unknown[]) => {\n if (shouldLog) {\n const message = args.map((arg) => String(arg)).join(' ');\n console.log(message);\n }\n },\n\n gray: (...args: unknown[]) => {\n if (shouldLog) {\n const message = args.map((arg) => String(arg)).join(' ');\n console.log(message);\n }\n },\n };\n}\n\n/**\n * Create logger from command options\n * Factory function that standardizes logger creation across commands\n *\n * @param options - Command options containing verbose, silent, and json flags\n * @returns Configured logger instance\n */\nexport function createCommandLogger(\n options: GlobalOptions & { json?: boolean },\n): Logger {\n return createLogger({\n verbose: options.verbose,\n silent: options.silent ?? false,\n json: options.json,\n });\n}\n","/**\n * Entry point for walkeros/flow Docker container\n * Reads environment variables and starts the appropriate mode\n */\n\nimport { runFlow } from './runner.js';\nimport { runServeMode } from './serve.js';\nimport { createLogger } from '../core/logger.js';\nimport type { Logger } from '@walkeros/core';\n\n/**\n * Adapt CLI logger to core Logger.Instance interface\n */\nfunction adaptLogger(\n cliLogger: ReturnType<typeof createLogger>,\n): Logger.Instance {\n return {\n error: (message: string | Error) => {\n const msg = message instanceof Error ? message.message : message;\n cliLogger.error(msg);\n },\n info: (message: string | Error) => {\n const msg = message instanceof Error ? message.message : message;\n cliLogger.info(msg);\n },\n debug: (message: string | Error) => {\n const msg = message instanceof Error ? message.message : message;\n cliLogger.debug(msg);\n },\n throw: (message: string | Error): never => {\n const msg = message instanceof Error ? message.message : message;\n cliLogger.error(msg);\n throw message instanceof Error ? message : new Error(msg);\n },\n scope: (name: string) => {\n // Simple pass-through for scoped loggers - CLI logger doesn't use scopes\n return adaptLogger(cliLogger);\n },\n };\n}\n\nasync function main() {\n const mode = process.env.MODE || 'collect';\n const file = process.env.BUNDLE || '/app/flow/bundle.mjs';\n const port = parseInt(process.env.PORT || '8080', 10);\n\n const cliLogger = createLogger({ silent: false, verbose: true });\n const logger = adaptLogger(cliLogger);\n\n cliLogger.log(`Starting walkeros/flow in ${mode} mode`);\n cliLogger.log(`File: ${file}`);\n cliLogger.log(`Port: ${port}`);\n\n try {\n if (mode === 'collect') {\n await runFlow(file, { port }, logger);\n } else if (mode === 'serve') {\n await runServeMode({ file, port }, logger);\n } else {\n cliLogger.error(`Unknown mode: ${mode}. Use 'collect' or 'serve'.`);\n process.exit(1);\n }\n } catch (error) {\n cliLogger.error(`Failed to start: ${error}`);\n process.exit(1);\n }\n}\n\nmain();\n"],"mappings":"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","names":["resolve","dirname","resolve"]}
package/dist/walker.js CHANGED
@@ -1 +1 @@
1
- "use strict";(()=>{var o=Object.defineProperty;var i={};((t,e)=>{for(var n in e)o(t,n,{get:e[n],enumerable:!0})})(i,{Level:()=>r});var r=(t=>(t[t.ERROR=0]="ERROR",t[t.INFO=1]="INFO",t[t.DEBUG=2]="DEBUG",t))(r||{});})();
1
+ "use strict";(()=>{var o=Object.defineProperty;var s={};((t,e)=>{for(var n in e)o(t,n,{get:e[n],enumerable:!0})})(s,{Level:()=>r});var r=(t=>(t[t.ERROR=0]="ERROR",t[t.INFO=1]="INFO",t[t.DEBUG=2]="DEBUG",t))(r||{});})();
@@ -56,7 +56,6 @@
56
56
  }
57
57
  },
58
58
  "collector": {
59
- "run": true,
60
59
  "globals": {
61
60
  "environment": "production",
62
61
  "version": "1.0.0"
@@ -22,9 +22,6 @@
22
22
  }
23
23
  }
24
24
  }
25
- },
26
- "collector": {
27
- "run": true
28
25
  }
29
26
  }
30
27
  }
@@ -71,7 +71,6 @@
71
71
  }
72
72
  },
73
73
  "collector": {
74
- "run": true,
75
74
  "globals": {
76
75
  "environment": "production",
77
76
  "version": "1.0.0"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@walkeros/cli",
3
- "version": "0.7.0-next.0",
3
+ "version": "0.8.0",
4
4
  "description": "walkerOS CLI - Bundle and deploy walkerOS components",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -26,26 +26,29 @@
26
26
  "dev": "tsx src/index.ts",
27
27
  "start": "node dist/index.js",
28
28
  "test": "jest --colors",
29
- "lint": "tsc && eslint \"src/**/*.ts*\"",
29
+ "lint": "tsc --noEmit && eslint \"src/**/*.ts*\"",
30
30
  "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist && rm -rf coverage && rm -rf .temp && rm -rf .tmp",
31
31
  "docker:build": "bash scripts/build-docker.sh",
32
32
  "docker:test": "bash scripts/test-docker.sh",
33
33
  "docker:publish": "bash scripts/publish-docker.sh"
34
34
  },
35
35
  "dependencies": {
36
- "@walkeros/core": "^0.5.1-next.0",
37
- "@walkeros/docker": "0.7.0-next.0",
38
- "@walkeros/server-core": "0.5.1-next.0",
36
+ "@walkeros/core": "0.8.0",
37
+ "@walkeros/server-core": "0.8.0",
39
38
  "chalk": "^5.6.2",
40
39
  "commander": "^14.0.2",
40
+ "cors": "^2.8.5",
41
41
  "esbuild": "^0.27.1",
42
+ "express": "^4.21.2",
42
43
  "fs-extra": "^11.3.2",
43
- "jsdom": "^27.3.0",
44
+ "jsdom": "^26.1.0",
44
45
  "pacote": "^21.0.4"
45
46
  },
46
47
  "devDependencies": {
48
+ "@types/cors": "^2.8.17",
49
+ "@types/express": "^5.0.0",
47
50
  "@types/fs-extra": "^11.0.4",
48
- "@types/jsdom": "^27.0.0",
51
+ "@types/jsdom": "^21.1.7",
49
52
  "@types/pacote": "^11.1.8",
50
53
  "@walkeros/config": "*",
51
54
  "tsx": "^4.21.0"
package/CHANGELOG.md DELETED
@@ -1,159 +0,0 @@
1
- # @walkeros/cli
2
-
3
- ## 0.7.0-next.0
4
-
5
- ### Minor Changes
6
-
7
- - 42d06c8: Fix Docker runtime version display - versions now read reliably from
8
- package.json at runtime instead of fragile build-time injection
9
-
10
- ### Patch Changes
11
-
12
- - Updated dependencies [42d06c8]
13
- - @walkeros/docker@0.7.0-next.0
14
-
15
- ## 0.5.1-next.1
16
-
17
- ### Patch Changes
18
-
19
- - 71b615f: Fix URL handling in resolveAsset - URLs are now passed through
20
- unchanged instead of being mangled into invalid filesystem paths
21
-
22
- ## 0.5.1-next.0
23
-
24
- ### Patch Changes
25
-
26
- - Updated dependencies [5163b01]
27
- - @walkeros/core@0.5.1-next.0
28
- - @walkeros/docker@0.3.1-next.0
29
- - @walkeros/server-core@0.5.1-next.0
30
-
31
- ## 0.5.0
32
-
33
- ### Minor Changes
34
-
35
- - just flow
36
-
37
- ### Patch Changes
38
-
39
- - Updated dependencies
40
- - @walkeros/core@0.5.0
41
- - @walkeros/docker@0.3.0
42
- - @walkeros/server-core@0.5.0
43
-
44
- ## 0.4.2
45
-
46
- ### Patch Changes
47
-
48
- - simulate server and local packages
49
- - cli cache
50
- - Updated dependencies
51
- - Updated dependencies
52
- - Updated dependencies
53
- - @walkeros/core@0.4.2
54
- - @walkeros/docker@0.2.2
55
- - @walkeros/server-core@0.4.2
56
-
57
- ## 0.4.1
58
-
59
- ### Patch Changes
60
-
61
- - dev entry
62
- - Updated dependencies
63
- - @walkeros/server-core@0.4.1
64
- - @walkeros/docker@0.2.1
65
- - @walkeros/core@0.4.1
66
-
67
- ## 0.4.0
68
-
69
- ### Minor Changes
70
-
71
- - Consolidate schemas and examples under `/dev` export
72
-
73
- ### Patch Changes
74
-
75
- - Updated dependencies
76
- - @walkeros/docker@0.2.0
77
- - @walkeros/core@0.4.0
78
-
79
- ## 0.3.6
80
-
81
- ### Patch Changes
82
-
83
- - port path and name
84
- - df4b2a1: Read CLI version dynamically from package.json instead of hardcoded
85
- value
86
- - Updated dependencies
87
- - @walkeros/docker@0.1.5
88
-
89
- ## 0.3.5
90
-
91
- ### Patch Changes
92
-
93
- - cli usage
94
- - Updated dependencies
95
- - @walkeros/docker@0.1.4
96
-
97
- ## 0.3.4
98
-
99
- ### Patch Changes
100
-
101
- - main module exec
102
-
103
- ## 0.3.3
104
-
105
- ### Patch Changes
106
-
107
- - force local
108
-
109
- ## 0.3.2
110
-
111
- ### Patch Changes
112
-
113
- - walkeros cli with docker
114
- - Updated dependencies
115
- - @walkeros/docker@0.1.2
116
-
117
- ## 0.3.1
118
-
119
- ### Patch Changes
120
-
121
- - 25f7e10: Fix bundle command template path resolution to support relative paths
122
-
123
- **CLI Changes:**
124
- - Template paths starting with `./` or `../` in config files are now resolved
125
- relative to the config file's directory
126
- - Maintains backward compatibility for other relative paths (resolved from
127
- cwd)
128
- - Enables portable flow configs that reference templates next to them
129
-
130
- **Docker Changes:**
131
- - Updated demo.json and express-console.json to include template and output
132
- fields
133
- - Flow files can now be bundled standalone using the CLI bundle command
134
- - Templates are referenced using `../templates/base.hbs` relative to flow file
135
-
136
- **Example:**
137
-
138
- ```bash
139
- # Now works from any directory
140
- node dist/index.mjs bundle -c packages/docker/flows/demo.json
141
- ```
142
-
143
- - hello
144
- - Updated dependencies [25f7e10]
145
- - Updated dependencies
146
- - Updated dependencies
147
- - @walkeros/docker@0.1.1
148
- - @walkeros/core@0.3.1
149
-
150
- ## 0.2.0
151
-
152
- ### Minor Changes
153
-
154
- - env
155
-
156
- ### Patch Changes
157
-
158
- - Updated dependencies
159
- - @walkeros/core@0.2.0
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=bundler-helpers.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bundler-helpers.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/bundle/bundler-helpers.test.ts"],"names":[],"mappings":""}