@walkeros/cli 0.4.1 → 0.4.2
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.
- package/CHANGELOG.md +13 -0
- package/README.md +112 -42
- package/dist/__tests__/bundle/bundler.test.js +174 -164
- package/dist/__tests__/bundle/bundler.test.js.map +1 -1
- package/dist/__tests__/bundle/programmatic.test.js +76 -53
- package/dist/__tests__/bundle/programmatic.test.js.map +1 -1
- package/dist/__tests__/cli.test.js +58 -46
- package/dist/__tests__/cli.test.js.map +1 -1
- package/dist/__tests__/config-loader.test.d.ts +1 -1
- package/dist/__tests__/config-loader.test.js +231 -212
- package/dist/__tests__/config-loader.test.js.map +1 -1
- package/dist/__tests__/core/build-cache.test.d.ts +2 -0
- package/dist/__tests__/core/build-cache.test.d.ts.map +1 -0
- package/dist/__tests__/core/build-cache.test.js +55 -0
- package/dist/__tests__/core/build-cache.test.js.map +1 -0
- package/dist/__tests__/core/cache-utils.test.d.ts +2 -0
- package/dist/__tests__/core/cache-utils.test.d.ts.map +1 -0
- package/dist/__tests__/core/cache-utils.test.js +70 -0
- package/dist/__tests__/core/cache-utils.test.js.map +1 -0
- package/dist/__tests__/integration/bundle-run.integration.test.js +8 -4
- package/dist/__tests__/integration/bundle-run.integration.test.js.map +1 -1
- package/dist/__tests__/simulate/node-executor.test.d.ts +5 -0
- package/dist/__tests__/simulate/node-executor.test.d.ts.map +1 -0
- package/dist/__tests__/simulate/node-executor.test.js +25 -0
- package/dist/__tests__/simulate/node-executor.test.js.map +1 -0
- package/dist/__tests__/simulate/server-simulate.integration.test.d.ts +5 -0
- package/dist/__tests__/simulate/server-simulate.integration.test.d.ts.map +1 -0
- package/dist/__tests__/simulate/server-simulate.integration.test.js +59 -0
- package/dist/__tests__/simulate/server-simulate.integration.test.js.map +1 -0
- package/dist/__tests__/smoke/production.smoke.test.js +9 -2
- package/dist/__tests__/smoke/production.smoke.test.js.map +1 -1
- package/dist/commands/bundle/bundler.d.ts.map +1 -1
- package/dist/commands/bundle/bundler.js +93 -3
- package/dist/commands/bundle/bundler.js.map +1 -1
- package/dist/commands/bundle/index.d.ts +16 -10
- package/dist/commands/bundle/index.d.ts.map +1 -1
- package/dist/commands/bundle/index.js +44 -32
- package/dist/commands/bundle/index.js.map +1 -1
- package/dist/commands/bundle/package-manager.d.ts +2 -1
- package/dist/commands/bundle/package-manager.d.ts.map +1 -1
- package/dist/commands/bundle/package-manager.js +34 -7
- package/dist/commands/bundle/package-manager.js.map +1 -1
- package/dist/commands/cache.d.ts +3 -0
- package/dist/commands/cache.d.ts.map +1 -0
- package/dist/commands/cache.js +44 -0
- package/dist/commands/cache.js.map +1 -0
- package/dist/commands/push/index.d.ts.map +1 -1
- package/dist/commands/push/index.js +49 -44
- package/dist/commands/push/index.js.map +1 -1
- package/dist/commands/push/types.d.ts +1 -1
- package/dist/commands/push/types.d.ts.map +1 -1
- package/dist/commands/run/__tests__/run.integration.test.js +14 -15
- package/dist/commands/run/__tests__/run.integration.test.js.map +1 -1
- package/dist/commands/run/utils.d.ts +4 -1
- package/dist/commands/run/utils.d.ts.map +1 -1
- package/dist/commands/run/utils.js +18 -24
- package/dist/commands/run/utils.js.map +1 -1
- package/dist/commands/run/validators.d.ts +9 -5
- package/dist/commands/run/validators.d.ts.map +1 -1
- package/dist/commands/run/validators.js +14 -11
- package/dist/commands/run/validators.js.map +1 -1
- package/dist/commands/simulate/index.d.ts +1 -0
- package/dist/commands/simulate/index.d.ts.map +1 -1
- package/dist/commands/simulate/index.js +1 -0
- package/dist/commands/simulate/index.js.map +1 -1
- package/dist/commands/simulate/node-executor.d.ts +28 -0
- package/dist/commands/simulate/node-executor.d.ts.map +1 -0
- package/dist/commands/simulate/node-executor.js +94 -0
- package/dist/commands/simulate/node-executor.js.map +1 -0
- package/dist/commands/simulate/simulator.d.ts.map +1 -1
- package/dist/commands/simulate/simulator.js +36 -32
- package/dist/commands/simulate/simulator.js.map +1 -1
- package/dist/config/build-defaults.d.ts +49 -0
- package/dist/config/build-defaults.d.ts.map +1 -0
- package/dist/config/build-defaults.js +72 -0
- package/dist/config/build-defaults.js.map +1 -0
- package/dist/config/index.d.ts +6 -7
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +6 -7
- package/dist/config/index.js.map +1 -1
- package/dist/config/loader.d.ts +34 -27
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +107 -92
- package/dist/config/loader.js.map +1 -1
- package/dist/config/validators.d.ts +34 -8
- package/dist/config/validators.d.ts.map +1 -1
- package/dist/config/validators.js +59 -21
- package/dist/config/validators.js.map +1 -1
- package/dist/core/asset-resolver.d.ts +8 -15
- package/dist/core/asset-resolver.d.ts.map +1 -1
- package/dist/core/asset-resolver.js +30 -37
- package/dist/core/asset-resolver.js.map +1 -1
- package/dist/core/build-cache.d.ts +23 -0
- package/dist/core/build-cache.d.ts.map +1 -0
- package/dist/core/build-cache.js +43 -0
- package/dist/core/build-cache.js.map +1 -0
- package/dist/core/cache-utils.d.ts +27 -0
- package/dist/core/cache-utils.d.ts.map +1 -0
- package/dist/core/cache-utils.js +60 -0
- package/dist/core/cache-utils.js.map +1 -0
- package/dist/core/docker.d.ts.map +1 -1
- package/dist/core/docker.js +8 -25
- package/dist/core/docker.js.map +1 -1
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1 -0
- package/dist/core/index.js.map +1 -1
- package/dist/core/local-packages.d.ts +19 -0
- package/dist/core/local-packages.d.ts.map +1 -0
- package/dist/core/local-packages.js +60 -0
- package/dist/core/local-packages.js.map +1 -0
- package/dist/examples/.npm-cache/content-v2/sha512/0d/2d/7581c288670eaf8538ddd9df145b78756ce3be0791c6e0b9cd33429b3bae894525b9bda287a3cedffbcdd2c7b3107bafc03f2b0367eea489eee1cc042abb +1 -0
- package/dist/examples/.npm-cache/content-v2/sha512/12/20/bc4f5acca143809f7e07da1fdafb38137d93243de4d5b403e6e10b92d0d3a6e51eab24fe9dbc9d3ed1cd72e8f7a406085e99c422bb2c7d1166cf9f1f564e +0 -0
- package/dist/examples/.npm-cache/content-v2/sha512/22/ee/fb2695b01871c1d36946bdcfb49f1b520a57200d0a0b221b1e7d5f047ab38a8b2ab0e5f0e25a00acde1f3f2f9d24430a18f1092d438bc1a9e9891cc45f75 +0 -0
- package/dist/examples/.npm-cache/content-v2/sha512/24/89/da1ce6a61bca6de7e132f241a675c01c83738bf6b78af25b5cce01d3030361332b3fe938571e2b721f1555da9ddf930fdcf8c02f0471556071590e68cc09 +0 -0
- package/dist/examples/.npm-cache/content-v2/sha512/47/fd/c6be997da99228c3e279b95d4a46d6913947078a178f54ac71795a159f3513b1483232f4c2d0a1f403178bf9f96bb19615de32a9e2133e949880c6bc15e2 +0 -0
- package/dist/examples/.npm-cache/content-v2/sha512/4b/1c/c1cb7f8b32102071a89fef97158daa32080ebaedfbbd596880d2213d84e305abc76d2a95a412ded55c1c3d487adcb1ceff87fc2c85d7e2856ebd9d3f16f3 +0 -0
- package/dist/examples/.npm-cache/content-v2/sha512/6e/53/ff864769671f44f39d8a3bf904cd646535b745cc4824a8bb3189193b474678049f43b5178ba15cad7f0289046105e70f1565afc84e907120b35a466690fd +1 -0
- package/dist/examples/.npm-cache/content-v2/sha512/70/4c/4c8837d446965c5551b4ea527e95fa011744fb727581d82cf35bb5599ea0b57d18baa490f7af93ef9a16e8e45e5c0802737da20575f4056a4a5c9a3cd288 +0 -0
- package/dist/examples/.npm-cache/content-v2/sha512/96/ad/05de3bbb12d7de8ea353f962bdaea7d2eb44f707f2973462a6635daf537c67b46cca7764fed7d464fe62152c3f783a07aba1ceb35e09ad446bff05a4b466 +1 -0
- package/dist/examples/.npm-cache/content-v2/sha512/b5/20/52dde94e6cef7170f6089c64a4843e57be18be450d956f4e455905aed047ae6a368451c93035e6ac3ee59576b600f03f815afba0836b3a16e10a9aaca4ba +1 -0
- package/dist/examples/.npm-cache/content-v2/sha512/c7/a9/d166a1c39f97df312c59261319ba1cf9aac178bda0a0cb697d5ddd78bd8dd38ef1bf40017bcc8633c2049896c2d70696d9bff9280851f270792ff38bb3a0 +1 -0
- package/dist/examples/.npm-cache/content-v2/sha512/e0/d0/8c14083b633e6adbd3c6a93da5fc0f6bbd456c5512ef276920bedd8d85d551052adff992de977aff326616a211aaa2d6ddcc801149e9b7f914f566359b6a +1 -0
- package/dist/examples/.npm-cache/content-v2/sha512/e7/c5/06ad3fd79ac4f1031fe0b16ea5e54e232ca397bbcd7592c679021cbfb027276099f8c848f3f7a7691f0102ad53aa64f9141e61d729b037a678bd60440d17 +1 -0
- package/dist/examples/.npm-cache/content-v2/sha512/f3/28/d5d32329604ed7d471a4949105daa2cc98858cf24f45b0b97c41d0eb0d5a9fe7bf1f69c792161cc6693e4fc1b52e886ac41875ebfb8fe47fafe417ca3e6e +0 -0
- package/dist/examples/.npm-cache/index-v5/04/5a/2b5d7a7c407d85d746baa0f5c9388a333e35a717a8a0a81943daa6cb1364 +3 -0
- package/dist/examples/.npm-cache/index-v5/12/9a/eba560cbace295d8ee04cf283015377bd77b379e70968fb6bc407c7fc410 +15 -0
- package/dist/examples/.npm-cache/index-v5/2f/a2/7b047564b0ee21ac835ec609e89153dd6549be554d098584d5bfd19fe043 +15 -0
- package/dist/examples/.npm-cache/index-v5/32/8e/322d58dd8d1e000be248ada51385bf96288e56039de9feec1a4c6a467653 +3 -0
- package/dist/examples/.npm-cache/index-v5/57/93/d1d7cd1402e3e26468db03f2870822bb2c9018a506cdfb3b405f38cd3e1c +3 -0
- package/dist/examples/.npm-cache/index-v5/5d/f8/0a1f4fa7149e4ff33e09eb6aea41ac8d1730c868a5d3ace91f762698acff +3 -0
- package/dist/examples/.npm-cache/index-v5/69/a4/a92c72d838259b051cdf8e0acfb2bc680b6d4cfc642314a7836c3f7b2c50 +15 -0
- package/dist/examples/.npm-cache/index-v5/71/31/6da3423bb203f3de5eb16c942431073f89be2cfcb40058ec91dcb5ce0abc +15 -0
- package/dist/examples/.npm-cache/index-v5/7b/94/72b6bffa050d9ef52a558dd220663695bc606f756be0dfa196ef4f3913ba +3 -0
- package/dist/examples/.npm-cache/index-v5/85/9e/99e97fdd562517e56285337db91d1a8f2f416b8d631cf4d7d754fa671299 +15 -0
- package/dist/examples/.npm-cache/index-v5/92/4c/9416ada81a9b3c679539fd1ab53f8de3d41ff268f35eba7a194389a85b06 +3 -0
- package/dist/examples/.npm-cache/index-v5/c1/5a/13df76b218deed8a6ef12961116af5183db98c53fad1b922fd9edc075247 +3 -0
- package/dist/examples/.npm-cache/index-v5/cb/11/253c55410a8ab7c4a9ea9d6e1bf8ef1450a581da64c478074dfd82c8bff6 +3 -0
- package/dist/examples/.npm-cache/index-v5/d5/ae/b57fad3a62b5ba2dbdf24b042a9e7b70820f3db00e5a630f02e1fea020dc +3 -0
- package/dist/examples/.npm-cache/index-v5/d6/32/2f620f83c7d14451de98de8298c2408e05a16cc0829bd16c891ac19d7a67 +3 -0
- package/dist/examples/.npm-cache/index-v5/dd/b5/01dc7a3cd8b6a03a69aee9af500d51ae19cb0aa12631a4aafd152148b8e5 +15 -0
- package/dist/examples/.npm-cache/index-v5/e0/cf/6b862c15d74630d3871cd813d305210ab741311deb10baf8813014e0bc30 +3 -0
- package/dist/examples/.npm-cache/index-v5/e2/be/e880ccd35950a814d3c1dded34d3938ac61b15a195321dc51357f801aad4 +15 -0
- package/dist/examples/.npm-cache/index-v5/e5/1f/f4affe0b392cd03288f23cc03abcb274ff11a2c8f8965299de681914abb2 +3 -0
- package/dist/examples/.npm-cache/index-v5/f3/5b/9ebe450958ff0d7cc44ab0a00080cb8a3ff1389744b5eab5f97b68a6a6af +3 -0
- package/dist/examples/.npm-cache/index-v5/fb/c1/0de405e902866d53e7c30cf36a97dc2578838622b261816f44dc377c9a80 +3 -0
- package/dist/examples/README.md +343 -0
- package/dist/examples/event.json +53 -0
- package/dist/examples/flow-order-complete.json +68 -0
- package/dist/examples/flow-simple.json +32 -0
- package/dist/examples/flow.json +82 -0
- package/dist/examples/server-collect.json +60 -0
- package/dist/examples/server-collect.mjs +13540 -0
- package/dist/examples/test.html +43 -0
- package/dist/examples/web-serve.js +25503 -0
- package/dist/examples/web-serve.json +74 -0
- package/dist/index.d.ts +84 -201
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +675 -422
- package/dist/index.js.map +1 -1
- package/dist/schemas/index.d.ts +9 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +9 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/primitives.d.ts +37 -0
- package/dist/schemas/primitives.d.ts.map +1 -0
- package/dist/schemas/primitives.js +43 -0
- package/dist/schemas/primitives.js.map +1 -0
- package/dist/schemas/run.d.ts +23 -0
- package/dist/schemas/run.d.ts.map +1 -0
- package/dist/schemas/run.js +20 -0
- package/dist/schemas/run.js.map +1 -0
- package/dist/templates/server.hbs +29 -0
- package/dist/templates/web.hbs +45 -0
- package/dist/types/bundle.d.ts +68 -190
- package/dist/types/bundle.d.ts.map +1 -1
- package/dist/types/bundle.js +2 -2
- package/dist/walker.js +1 -0
- package/examples/README.md +42 -29
- package/examples/flow-order-complete.json +57 -57
- package/examples/flow-simple.json +25 -25
- package/examples/flow.json +69 -69
- package/examples/server-collect.json +51 -44
- package/examples/server-collect.mjs +1 -1
- package/examples/web-serve.json +62 -63
- package/package.json +2 -2
- package/dist/config/defaults.d.ts +0 -33
- package/dist/config/defaults.d.ts.map +0 -1
- package/dist/config/defaults.js +0 -69
- package/dist/config/defaults.js.map +0 -1
- package/dist/config/parser.d.ts +0 -128
- package/dist/config/parser.d.ts.map +0 -1
- package/dist/config/parser.js +0 -256
- package/dist/config/parser.js.map +0 -1
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Node.js-based executor for simulating ESM server bundles
|
|
3
|
+
*
|
|
4
|
+
* Executes server bundles via dynamic import with env-based mocking.
|
|
5
|
+
*/
|
|
6
|
+
import { pathToFileURL } from 'url';
|
|
7
|
+
import { getErrorMessage } from '../../core/index.js';
|
|
8
|
+
/**
|
|
9
|
+
* Build global mocks from destination-provided envs
|
|
10
|
+
*/
|
|
11
|
+
function buildGlobalMocksFromEnvs(envs, destinations, tracker) {
|
|
12
|
+
const globalMocks = {};
|
|
13
|
+
for (const [destKey] of Object.entries(destinations)) {
|
|
14
|
+
const destEnv = envs[destKey];
|
|
15
|
+
if (!destEnv?.push)
|
|
16
|
+
continue;
|
|
17
|
+
const mockEnv = destEnv.push;
|
|
18
|
+
const trackPaths = destEnv.simulation || [];
|
|
19
|
+
const trackedEnv = tracker.wrapEnv(mockEnv, trackPaths.map((p) => `${destKey}:${p}`));
|
|
20
|
+
Object.assign(globalMocks, trackedEnv);
|
|
21
|
+
}
|
|
22
|
+
return globalMocks;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Inject mocks into global scope and return cleanup function
|
|
26
|
+
*/
|
|
27
|
+
function injectGlobalMocks(mocks) {
|
|
28
|
+
const originalValues = {};
|
|
29
|
+
for (const [key, value] of Object.entries(mocks)) {
|
|
30
|
+
originalValues[key] = globalThis[key];
|
|
31
|
+
globalThis[key] = value;
|
|
32
|
+
}
|
|
33
|
+
return () => {
|
|
34
|
+
for (const [key, value] of Object.entries(originalValues)) {
|
|
35
|
+
if (value === undefined) {
|
|
36
|
+
delete globalThis[key];
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
globalThis[key] = value;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Execute server ESM bundle in Node.js with env-based mocking
|
|
46
|
+
*/
|
|
47
|
+
export async function executeInNode(bundlePath, destinations, event, tracker, envs, timeout = 30000) {
|
|
48
|
+
const start = Date.now();
|
|
49
|
+
const globalMocks = buildGlobalMocksFromEnvs(envs, destinations, tracker);
|
|
50
|
+
const cleanupMocks = injectGlobalMocks(globalMocks);
|
|
51
|
+
try {
|
|
52
|
+
const executeWithTimeout = async () => {
|
|
53
|
+
// Jest has issues with file:// URLs in dynamic imports, use path directly
|
|
54
|
+
// Outside Jest, use file:// URL with cache-busting to prevent module caching
|
|
55
|
+
const importUrl = process.env.JEST_WORKER_ID
|
|
56
|
+
? bundlePath
|
|
57
|
+
: `${pathToFileURL(bundlePath).href}?t=${Date.now()}`;
|
|
58
|
+
const module = await import(importUrl);
|
|
59
|
+
if (!module.default || typeof module.default !== 'function') {
|
|
60
|
+
throw new Error('Bundle does not export default factory function');
|
|
61
|
+
}
|
|
62
|
+
const result = await module.default();
|
|
63
|
+
if (!result || !result.elb || typeof result.elb !== 'function') {
|
|
64
|
+
throw new Error('Factory function did not return valid result with elb');
|
|
65
|
+
}
|
|
66
|
+
const { collector, elb } = result;
|
|
67
|
+
let elbResult;
|
|
68
|
+
try {
|
|
69
|
+
elbResult = (await elb(event.name, event.data));
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
throw new Error(`Event execution failed: ${getErrorMessage(error)}`);
|
|
73
|
+
}
|
|
74
|
+
return {
|
|
75
|
+
collector,
|
|
76
|
+
elb,
|
|
77
|
+
elbResult,
|
|
78
|
+
usage: tracker.getCalls(),
|
|
79
|
+
duration: Date.now() - start,
|
|
80
|
+
};
|
|
81
|
+
};
|
|
82
|
+
const timeoutPromise = new Promise((_, reject) => {
|
|
83
|
+
setTimeout(() => reject(new Error(`Server simulation timeout after ${timeout}ms`)), timeout);
|
|
84
|
+
});
|
|
85
|
+
return await Promise.race([executeWithTimeout(), timeoutPromise]);
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
throw new Error(`Node execution failed: ${getErrorMessage(error)}`);
|
|
89
|
+
}
|
|
90
|
+
finally {
|
|
91
|
+
cleanupMocks();
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=node-executor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-executor.js","sourceRoot":"","sources":["../../../src/commands/simulate/node-executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simulator.d.ts","sourceRoot":"","sources":["../../../src/commands/simulate/simulator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"simulator.d.ts","sourceRoot":"","sources":["../../../src/commands/simulate/simulator.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAS3E;;GAEG;AACH,wBAAsB,YAAY,CAChC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,IAAI,CAAC,sBAAsB,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAM,GACxE,OAAO,CAAC,gBAAgB,CAAC,CAqC3B;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,gBAAgB,EACxB,OAAO,GAAE,IAAI,CAAC,sBAAsB,EAAE,MAAM,CAAM,GACjD,MAAM,CAeR;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,OAAO,EACd,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,gBAAgB,CAAC,CA6H3B"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import path from 'path';
|
|
2
2
|
import fs from 'fs-extra';
|
|
3
|
+
import { getPlatform } from '@walkeros/core';
|
|
3
4
|
import { createLogger, getErrorMessage } from '../../core/index.js';
|
|
4
|
-
import { loadJsonConfig, getTempDir, isObject,
|
|
5
|
+
import { loadJsonConfig, loadBundleConfig, getTempDir, isObject, } from '../../config/index.js';
|
|
5
6
|
import { bundleCore } from '../bundle/bundler.js';
|
|
6
|
-
import { downloadPackages } from '../bundle/package-manager.js';
|
|
7
7
|
import { CallTracker } from './tracker.js';
|
|
8
8
|
import { executeInJSDOM } from './jsdom-executor.js';
|
|
9
|
+
import { executeInNode } from './node-executor.js';
|
|
9
10
|
import { loadDestinationEnvs } from './env-loader.js';
|
|
10
11
|
/**
|
|
11
12
|
* Generate a unique ID for temp files
|
|
@@ -28,7 +29,7 @@ export async function simulateCore(configPath, event, options = {}) {
|
|
|
28
29
|
logger.info('📦 Loading bundle configuration...');
|
|
29
30
|
const fullConfigPath = path.resolve(configPath);
|
|
30
31
|
const rawConfig = await loadJsonConfig(fullConfigPath);
|
|
31
|
-
|
|
32
|
+
loadBundleConfig(rawConfig, { configPath: fullConfigPath });
|
|
32
33
|
// Execute simulation
|
|
33
34
|
logger.info(`🚀 Executing simulation with event: ${JSON.stringify(event)}`);
|
|
34
35
|
const result = await executeSimulation(event, fullConfigPath);
|
|
@@ -88,44 +89,47 @@ export async function executeSimulation(event, configPath) {
|
|
|
88
89
|
await fs.ensureDir(tempDir);
|
|
89
90
|
// 1. Load config
|
|
90
91
|
const rawConfig = await loadJsonConfig(configPath);
|
|
91
|
-
const { flowConfig, buildOptions } =
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
packageConfig !== null &&
|
|
98
|
-
'version' in packageConfig &&
|
|
99
|
-
typeof packageConfig.version === 'string'
|
|
100
|
-
? packageConfig.version
|
|
101
|
-
: undefined) || 'latest',
|
|
102
|
-
}));
|
|
103
|
-
const packagePaths = await downloadPackages(packagesArray, tempDir, // downloadPackages will add 'node_modules' subdirectory itself
|
|
104
|
-
createLogger({ silent: true }), buildOptions.cache);
|
|
105
|
-
// 3. Create tracker
|
|
92
|
+
const { flowConfig, buildOptions } = loadBundleConfig(rawConfig, {
|
|
93
|
+
configPath,
|
|
94
|
+
});
|
|
95
|
+
// Detect platform from flowConfig
|
|
96
|
+
const platform = getPlatform(flowConfig);
|
|
97
|
+
// 2. Create tracker
|
|
106
98
|
const tracker = new CallTracker();
|
|
107
|
-
//
|
|
108
|
-
const tempOutput = path.join(tempDir, `simulation-bundle-${generateId()}
|
|
99
|
+
// 3. Create temporary bundle
|
|
100
|
+
const tempOutput = path.join(tempDir, `simulation-bundle-${generateId()}.${platform === 'web' ? 'js' : 'mjs'}`);
|
|
109
101
|
const destinations = flowConfig.destinations;
|
|
110
|
-
// Create build options for simulation -
|
|
102
|
+
// Create build options for simulation - platform-aware bundling
|
|
111
103
|
const simulationBuildOptions = {
|
|
112
104
|
...buildOptions,
|
|
113
|
-
code: buildOptions.code || '',
|
|
105
|
+
code: buildOptions.code || '',
|
|
114
106
|
output: tempOutput,
|
|
115
|
-
tempDir,
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
107
|
+
tempDir,
|
|
108
|
+
...(platform === 'web'
|
|
109
|
+
? {
|
|
110
|
+
format: 'iife',
|
|
111
|
+
platform: 'browser',
|
|
112
|
+
windowCollector: 'collector',
|
|
113
|
+
windowElb: 'elb',
|
|
114
|
+
}
|
|
115
|
+
: {
|
|
116
|
+
format: 'esm',
|
|
117
|
+
platform: 'node',
|
|
118
|
+
}),
|
|
120
119
|
};
|
|
121
|
-
//
|
|
120
|
+
// 4. Bundle (downloads packages internally)
|
|
122
121
|
await bundleCore(flowConfig, simulationBuildOptions, createLogger({ silent: true }), false);
|
|
123
122
|
bundlePath = tempOutput;
|
|
124
|
-
//
|
|
123
|
+
// 5. Load env examples dynamically from destination packages
|
|
125
124
|
const envs = await loadDestinationEnvs(destinations || {});
|
|
126
|
-
//
|
|
127
|
-
|
|
128
|
-
|
|
125
|
+
// 6. Execute based on platform
|
|
126
|
+
let result;
|
|
127
|
+
if (platform === 'web') {
|
|
128
|
+
result = await executeInJSDOM(tempOutput, destinations || {}, typedEvent, tracker, envs, 10000);
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
result = await executeInNode(tempOutput, destinations || {}, typedEvent, tracker, envs, 30000);
|
|
132
|
+
}
|
|
129
133
|
const elbResult = result.elbResult;
|
|
130
134
|
const usage = result.usage;
|
|
131
135
|
const duration = Date.now() - startTime;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simulator.js","sourceRoot":"","sources":["../../../src/commands/simulate/simulator.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,UAAU,CAAC;AAE1B,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EACL,cAAc,EACd,UAAU,EACV,QAAQ,
|
|
1
|
+
{"version":3,"file":"simulator.js","sourceRoot":"","sources":["../../../src/commands/simulate/simulator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Static Build Defaults
|
|
3
|
+
*
|
|
4
|
+
* Platform-specific build defaults for CLI bundling.
|
|
5
|
+
* Build options are CLI concerns, separate from Flow configuration.
|
|
6
|
+
*/
|
|
7
|
+
import type { BuildOptions } from '../types/bundle.js';
|
|
8
|
+
/**
|
|
9
|
+
* Build defaults for web platform (browser bundles).
|
|
10
|
+
*
|
|
11
|
+
* @remarks
|
|
12
|
+
* These settings produce browser-compatible IIFE bundles.
|
|
13
|
+
*/
|
|
14
|
+
export declare const WEB_BUILD_DEFAULTS: Omit<BuildOptions, 'output' | 'packages'>;
|
|
15
|
+
/**
|
|
16
|
+
* Build defaults for server platform (Node.js bundles).
|
|
17
|
+
*
|
|
18
|
+
* @remarks
|
|
19
|
+
* These settings produce Node.js-compatible ESM bundles.
|
|
20
|
+
*/
|
|
21
|
+
export declare const SERVER_BUILD_DEFAULTS: Omit<BuildOptions, 'output' | 'packages'>;
|
|
22
|
+
/**
|
|
23
|
+
* Default output paths by platform.
|
|
24
|
+
*/
|
|
25
|
+
export declare const DEFAULT_OUTPUT_PATHS: {
|
|
26
|
+
readonly web: "./dist/walker.js";
|
|
27
|
+
readonly server: "./dist/bundle.mjs";
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Get build defaults for a platform.
|
|
31
|
+
*
|
|
32
|
+
* @param platform - Target platform ('web' or 'server')
|
|
33
|
+
* @returns Platform-specific build defaults
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```typescript
|
|
37
|
+
* const defaults = getBuildDefaults('web');
|
|
38
|
+
* // { format: 'iife', platform: 'browser', ... }
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export declare function getBuildDefaults(platform: 'web' | 'server'): Omit<BuildOptions, 'output' | 'packages'>;
|
|
42
|
+
/**
|
|
43
|
+
* Get default output path for a platform.
|
|
44
|
+
*
|
|
45
|
+
* @param platform - Target platform ('web' or 'server')
|
|
46
|
+
* @returns Default output file path
|
|
47
|
+
*/
|
|
48
|
+
export declare function getDefaultOutput(platform: 'web' | 'server'): string;
|
|
49
|
+
//# sourceMappingURL=build-defaults.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-defaults.d.ts","sourceRoot":"","sources":["../../src/config/build-defaults.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,UAAU,CAWxE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,UAAU,CAUzE,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;CAGvB,CAAC;AAEX;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,KAAK,GAAG,QAAQ,GACzB,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,UAAU,CAAC,CAE3C;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAEnE"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Static Build Defaults
|
|
3
|
+
*
|
|
4
|
+
* Platform-specific build defaults for CLI bundling.
|
|
5
|
+
* Build options are CLI concerns, separate from Flow configuration.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Build defaults for web platform (browser bundles).
|
|
9
|
+
*
|
|
10
|
+
* @remarks
|
|
11
|
+
* These settings produce browser-compatible IIFE bundles.
|
|
12
|
+
*/
|
|
13
|
+
export const WEB_BUILD_DEFAULTS = {
|
|
14
|
+
format: 'iife',
|
|
15
|
+
platform: 'browser',
|
|
16
|
+
target: 'es2020',
|
|
17
|
+
template: 'web.hbs',
|
|
18
|
+
minify: true,
|
|
19
|
+
sourcemap: false,
|
|
20
|
+
cache: true,
|
|
21
|
+
tempDir: '.tmp',
|
|
22
|
+
windowCollector: 'collector',
|
|
23
|
+
windowElb: 'elb',
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Build defaults for server platform (Node.js bundles).
|
|
27
|
+
*
|
|
28
|
+
* @remarks
|
|
29
|
+
* These settings produce Node.js-compatible ESM bundles.
|
|
30
|
+
*/
|
|
31
|
+
export const SERVER_BUILD_DEFAULTS = {
|
|
32
|
+
format: 'esm',
|
|
33
|
+
platform: 'node',
|
|
34
|
+
target: 'node20',
|
|
35
|
+
template: 'server.hbs',
|
|
36
|
+
minify: true,
|
|
37
|
+
sourcemap: false,
|
|
38
|
+
cache: true,
|
|
39
|
+
tempDir: '.tmp',
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Default output paths by platform.
|
|
43
|
+
*/
|
|
44
|
+
export const DEFAULT_OUTPUT_PATHS = {
|
|
45
|
+
web: './dist/walker.js',
|
|
46
|
+
server: './dist/bundle.mjs',
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Get build defaults for a platform.
|
|
50
|
+
*
|
|
51
|
+
* @param platform - Target platform ('web' or 'server')
|
|
52
|
+
* @returns Platform-specific build defaults
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```typescript
|
|
56
|
+
* const defaults = getBuildDefaults('web');
|
|
57
|
+
* // { format: 'iife', platform: 'browser', ... }
|
|
58
|
+
* ```
|
|
59
|
+
*/
|
|
60
|
+
export function getBuildDefaults(platform) {
|
|
61
|
+
return platform === 'web' ? WEB_BUILD_DEFAULTS : SERVER_BUILD_DEFAULTS;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Get default output path for a platform.
|
|
65
|
+
*
|
|
66
|
+
* @param platform - Target platform ('web' or 'server')
|
|
67
|
+
* @returns Default output file path
|
|
68
|
+
*/
|
|
69
|
+
export function getDefaultOutput(platform) {
|
|
70
|
+
return DEFAULT_OUTPUT_PATHS[platform];
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=build-defaults.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-defaults.js","sourceRoot":"","sources":["../../src/config/build-defaults.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAA8C;IAC3E,MAAM,EAAE,MAAM;IACd,QAAQ,EAAE,SAAS;IACnB,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,SAAS;IACnB,MAAM,EAAE,IAAI;IACZ,SAAS,EAAE,KAAK;IAChB,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,MAAM;IACf,eAAe,EAAE,WAAW;IAC5B,SAAS,EAAE,KAAK;CACjB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAChC;IACE,MAAM,EAAE,KAAK;IACb,QAAQ,EAAE,MAAM;IAChB,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,YAAY;IACtB,MAAM,EAAE,IAAI;IACZ,SAAS,EAAE,KAAK;IAChB,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,MAAM;CAChB,CAAC;AAEJ;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,GAAG,EAAE,kBAAkB;IACvB,MAAM,EAAE,mBAAmB;CACnB,CAAC;AAEX;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gBAAgB,CAC9B,QAA0B;IAE1B,OAAO,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,qBAAqB,CAAC;AACzE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAA0B;IACzD,OAAO,oBAAoB,CAAC,QAAQ,CAAC,CAAC;AACxC,CAAC"}
|
package/dist/config/index.d.ts
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Configuration Module
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Config format: Flow.Setup from @walkeros/core
|
|
5
|
+
* Build options: Static platform defaults from build-defaults.ts
|
|
5
6
|
*/
|
|
6
|
-
export { isObject,
|
|
7
|
+
export { isObject, detectPlatform, isFlowSetup, validateFlowSetup, getAvailableFlows as getFlowNames, } from './validators.js';
|
|
8
|
+
export { WEB_BUILD_DEFAULTS, SERVER_BUILD_DEFAULTS, DEFAULT_OUTPUT_PATHS, getBuildDefaults, getDefaultOutput, } from './build-defaults.js';
|
|
7
9
|
export { substituteEnvVariables, loadJsonConfig, loadJsonFromSource, getTempDir, } from './utils.js';
|
|
8
|
-
export {
|
|
9
|
-
export { parseBundleConfig, safeParseBundleConfig, normalizeConfigs, } from './parser.js';
|
|
10
|
-
export type { ParsedConfig } from './parser.js';
|
|
11
|
-
export { loadBundleConfig, loadAllEnvironments, getAvailableEnvironments, } from './loader.js';
|
|
10
|
+
export { loadBundleConfig, loadAllFlows, getAvailableFlows } from './loader.js';
|
|
12
11
|
export type { LoadConfigResult, LoadConfigOptions } from './loader.js';
|
|
13
|
-
export type { BuildOptions,
|
|
12
|
+
export type { BuildOptions, CLIBuildOptions, MinifyOptions, Flow, } from '../types/bundle.js';
|
|
14
13
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,QAAQ,EACR,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,iBAAiB,IAAI,YAAY,GAClC,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,sBAAsB,EACtB,cAAc,EACd,kBAAkB,EAClB,UAAU,GACX,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChF,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGvE,YAAY,EACV,YAAY,EACZ,eAAe,EACf,aAAa,EACb,IAAI,GACL,MAAM,oBAAoB,CAAC"}
|
package/dist/config/index.js
CHANGED
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Configuration Module
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Config format: Flow.Setup from @walkeros/core
|
|
5
|
+
* Build options: Static platform defaults from build-defaults.ts
|
|
5
6
|
*/
|
|
6
7
|
// Type guards and validators
|
|
7
|
-
export { isObject,
|
|
8
|
+
export { isObject, detectPlatform, isFlowSetup, validateFlowSetup, getAvailableFlows as getFlowNames, } from './validators.js';
|
|
9
|
+
// Build defaults
|
|
10
|
+
export { WEB_BUILD_DEFAULTS, SERVER_BUILD_DEFAULTS, DEFAULT_OUTPUT_PATHS, getBuildDefaults, getDefaultOutput, } from './build-defaults.js';
|
|
8
11
|
// Utility functions
|
|
9
12
|
export { substituteEnvVariables, loadJsonConfig, loadJsonFromSource, getTempDir, } from './utils.js';
|
|
10
|
-
// Platform defaults
|
|
11
|
-
export { getDefaultBuildOptions, ensureBuildOptions } from './defaults.js';
|
|
12
|
-
// Parser
|
|
13
|
-
export { parseBundleConfig, safeParseBundleConfig, normalizeConfigs, } from './parser.js';
|
|
14
13
|
// Loader
|
|
15
|
-
export { loadBundleConfig,
|
|
14
|
+
export { loadBundleConfig, loadAllFlows, getAvailableFlows } from './loader.js';
|
|
16
15
|
//# sourceMappingURL=index.js.map
|
package/dist/config/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,6BAA6B;AAC7B,OAAO,EACL,QAAQ,EACR,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,iBAAiB,IAAI,YAAY,GAClC,MAAM,iBAAiB,CAAC;AAEzB,iBAAiB;AACjB,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAE7B,oBAAoB;AACpB,OAAO,EACL,sBAAsB,EACtB,cAAc,EACd,kBAAkB,EAClB,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB,SAAS;AACT,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/config/loader.d.ts
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Configuration Loader
|
|
3
3
|
*
|
|
4
|
-
* Loads and parses configurations
|
|
5
|
-
*
|
|
6
|
-
* - Multi-environment setups
|
|
7
|
-
* - Environment selection
|
|
4
|
+
* Loads and parses Flow.Setup configurations using core getFlowConfig().
|
|
5
|
+
* Build options are determined by static platform defaults.
|
|
8
6
|
*/
|
|
9
|
-
import type
|
|
7
|
+
import { type Flow } from '@walkeros/core';
|
|
10
8
|
import type { BuildOptions } from '../types/bundle.js';
|
|
11
9
|
/**
|
|
12
10
|
* Result of configuration loading.
|
|
@@ -16,12 +14,12 @@ export interface LoadConfigResult {
|
|
|
16
14
|
flowConfig: Flow.Config;
|
|
17
15
|
/** Build-time configuration */
|
|
18
16
|
buildOptions: BuildOptions;
|
|
19
|
-
/** Name of the selected
|
|
20
|
-
|
|
21
|
-
/** Whether
|
|
22
|
-
|
|
23
|
-
/** All available
|
|
24
|
-
|
|
17
|
+
/** Name of the selected flow */
|
|
18
|
+
flowName: string;
|
|
19
|
+
/** Whether multiple flows are available */
|
|
20
|
+
isMultiFlow: boolean;
|
|
21
|
+
/** All available flow names */
|
|
22
|
+
availableFlows: string[];
|
|
25
23
|
}
|
|
26
24
|
/**
|
|
27
25
|
* Options for loading configuration.
|
|
@@ -29,8 +27,10 @@ export interface LoadConfigResult {
|
|
|
29
27
|
export interface LoadConfigOptions {
|
|
30
28
|
/** Path to config file */
|
|
31
29
|
configPath: string;
|
|
32
|
-
/**
|
|
33
|
-
|
|
30
|
+
/** Flow name to load (required for multi-flow, optional for single-flow) */
|
|
31
|
+
flowName?: string;
|
|
32
|
+
/** CLI build overrides (future: --output, --minify, etc.) */
|
|
33
|
+
buildOverrides?: Partial<BuildOptions>;
|
|
34
34
|
/** Logger for warnings */
|
|
35
35
|
logger?: {
|
|
36
36
|
warn: (message: string) => void;
|
|
@@ -41,34 +41,41 @@ export interface LoadConfigOptions {
|
|
|
41
41
|
* Load and parse bundle configuration.
|
|
42
42
|
*
|
|
43
43
|
* @remarks
|
|
44
|
-
*
|
|
45
|
-
* -
|
|
46
|
-
* -
|
|
47
|
-
* -
|
|
48
|
-
*
|
|
49
|
-
* For multi-environment configs, requires `environment` option.
|
|
44
|
+
* Uses Flow.Setup from @walkeros/core as the only config format.
|
|
45
|
+
* - Validates config structure
|
|
46
|
+
* - Uses core getFlowConfig() for variable/definition resolution
|
|
47
|
+
* - Determines platform from resolved config
|
|
48
|
+
* - Applies static build defaults based on platform
|
|
50
49
|
*
|
|
51
50
|
* @param rawConfig - Raw configuration object from JSON file
|
|
52
51
|
* @param options - Loading options
|
|
53
52
|
* @returns Parsed configuration with flow and build separated
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```typescript
|
|
56
|
+
* const config = loadBundleConfig(rawConfig, {
|
|
57
|
+
* configPath: './walkeros.config.json',
|
|
58
|
+
* flowName: 'production',
|
|
59
|
+
* });
|
|
60
|
+
* ```
|
|
54
61
|
*/
|
|
55
62
|
export declare function loadBundleConfig(rawConfig: unknown, options: LoadConfigOptions): LoadConfigResult;
|
|
56
63
|
/**
|
|
57
|
-
* Load all
|
|
64
|
+
* Load all flows from a configuration.
|
|
58
65
|
*
|
|
59
66
|
* @remarks
|
|
60
|
-
* Used by the --all flag to build all
|
|
67
|
+
* Used by the --all flag to build all flows.
|
|
61
68
|
*
|
|
62
69
|
* @param rawConfig - Raw configuration object
|
|
63
|
-
* @param options - Loading options
|
|
64
|
-
* @returns Array of loaded configurations for all
|
|
70
|
+
* @param options - Loading options (without flowName)
|
|
71
|
+
* @returns Array of loaded configurations for all flows
|
|
65
72
|
*/
|
|
66
|
-
export declare function
|
|
73
|
+
export declare function loadAllFlows(rawConfig: unknown, options: Omit<LoadConfigOptions, 'flowName'>): LoadConfigResult[];
|
|
67
74
|
/**
|
|
68
|
-
* Get list of available
|
|
75
|
+
* Get list of available flows from configuration.
|
|
69
76
|
*
|
|
70
77
|
* @param rawConfig - Raw configuration object
|
|
71
|
-
* @returns Array of
|
|
78
|
+
* @returns Array of flow names
|
|
72
79
|
*/
|
|
73
|
-
export declare function
|
|
80
|
+
export declare function getAvailableFlows(rawConfig: unknown): string[];
|
|
74
81
|
//# sourceMappingURL=loader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAA8B,KAAK,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAWvD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,6CAA6C;IAC7C,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;IACxB,+BAA+B;IAC/B,YAAY,EAAE,YAAY,CAAC;IAC3B,gCAAgC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,WAAW,EAAE,OAAO,CAAC;IACrB,+BAA+B;IAC/B,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,0BAA0B;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,cAAc,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IACvC,0BAA0B;IAC1B,MAAM,CAAC,EAAE;QACP,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;QAChC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;KACjC,CAAC;CACH;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,OAAO,EAClB,OAAO,EAAE,iBAAiB,GACzB,gBAAgB,CAyElB;AAwCD;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAC1B,SAAS,EAAE,OAAO,EAClB,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,UAAU,CAAC,GAC3C,gBAAgB,EAAE,CAkBpB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,EAAE,CAK9D"}
|