footprintjs 9.40.0 → 9.41.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.
- package/CLAUDE.md +3 -3
- package/dist/esm/lib/builder/FlowChartBuilder.d.ts +10 -3
- package/dist/esm/lib/builder/FlowChartBuilder.js +93 -86
- package/dist/esm/lib/capture/freeze.d.ts +1 -1
- package/dist/esm/lib/capture/freeze.js +2 -2
- package/dist/esm/lib/engine/traversal/FlowchartTraverser.d.ts +12 -0
- package/dist/esm/lib/engine/traversal/FlowchartTraverser.js +49 -15
- package/dist/esm/lib/memory/StageContext.d.ts +16 -0
- package/dist/esm/lib/memory/StageContext.js +35 -40
- package/dist/esm/lib/reactive/types.js +4 -4
- package/dist/esm/lib/recorder/hooks.d.ts +2 -2
- package/dist/esm/lib/recorder/hooks.js +2 -2
- package/dist/esm/lib/recorder/snapshot.d.ts +1 -1
- package/dist/esm/lib/recorder/snapshot.js +2 -2
- package/dist/esm/lib/runner/FlowChartExecutor.d.ts +93 -377
- package/dist/esm/lib/runner/FlowChartExecutor.js +184 -1059
- package/dist/esm/lib/runner/attach.d.ts +95 -0
- package/dist/esm/lib/runner/attach.js +247 -0
- package/dist/esm/lib/runner/checkpoint.d.ts +69 -0
- package/dist/esm/lib/runner/checkpoint.js +254 -0
- package/dist/esm/lib/runner/index.d.ts +1 -1
- package/dist/esm/lib/runner/index.js +1 -1
- package/dist/esm/lib/runner/options.d.ts +79 -0
- package/dist/esm/lib/runner/options.js +31 -0
- package/dist/esm/lib/runner/resume.d.ts +73 -0
- package/dist/esm/lib/runner/resume.js +301 -0
- package/dist/esm/lib/runner/snapshot.d.ts +41 -0
- package/dist/esm/lib/runner/snapshot.js +93 -0
- package/dist/lib/builder/FlowChartBuilder.js +93 -86
- package/dist/lib/capture/freeze.js +2 -2
- package/dist/lib/engine/traversal/FlowchartTraverser.js +49 -15
- package/dist/lib/memory/StageContext.js +35 -40
- package/dist/lib/reactive/types.js +4 -4
- package/dist/lib/recorder/hooks.js +2 -2
- package/dist/lib/recorder/snapshot.js +2 -2
- package/dist/lib/runner/FlowChartExecutor.js +182 -1057
- package/dist/lib/runner/attach.js +251 -0
- package/dist/lib/runner/checkpoint.js +258 -0
- package/dist/lib/runner/index.js +1 -1
- package/dist/lib/runner/options.js +35 -0
- package/dist/lib/runner/resume.js +307 -0
- package/dist/lib/runner/snapshot.js +98 -0
- package/dist/types/lib/builder/FlowChartBuilder.d.ts +10 -3
- package/dist/types/lib/capture/freeze.d.ts +1 -1
- package/dist/types/lib/engine/traversal/FlowchartTraverser.d.ts +12 -0
- package/dist/types/lib/memory/StageContext.d.ts +16 -0
- package/dist/types/lib/recorder/hooks.d.ts +2 -2
- package/dist/types/lib/recorder/snapshot.d.ts +1 -1
- package/dist/types/lib/runner/FlowChartExecutor.d.ts +93 -377
- package/dist/types/lib/runner/attach.d.ts +95 -0
- package/dist/types/lib/runner/checkpoint.d.ts +69 -0
- package/dist/types/lib/runner/index.d.ts +1 -1
- package/dist/types/lib/runner/options.d.ts +79 -0
- package/dist/types/lib/runner/resume.d.ts +73 -0
- package/dist/types/lib/runner/snapshot.d.ts +41 -0
- package/package.json +1 -1
- package/dist/esm/lib/runner/checkpointSanitize.d.ts +0 -44
- package/dist/esm/lib/runner/checkpointSanitize.js +0 -133
- package/dist/lib/runner/checkpointSanitize.js +0 -138
- package/dist/types/lib/runner/checkpointSanitize.d.ts +0 -44
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* WHY HERE. Five places freeze a tree, all through this walk: run args (`readonlyInput ·
|
|
5
5
|
* createFrozenArgs`), the fold base served as `initialState` (`ExecutionRuntime · getFoldBase`), the
|
|
6
|
-
* dev-mode snapshot (`
|
|
6
|
+
* dev-mode snapshot (`runner/snapshot.ts · servedSnapshot`), every state `stateAt` hands out
|
|
7
7
|
* (`time-travel/stateAt.ts`) and, since F3, every commit bundle (`EventLog · record`). `memory/` must
|
|
8
8
|
* not import `scope/` (that edge closed the memory ⇄ scope ⇄ recorder module cycle F0 removed), so the
|
|
9
9
|
* walk lives in this leaf, which imports nothing.
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* WHY HERE. Five places freeze a tree, all through this walk: run args (`readonlyInput ·
|
|
5
5
|
* createFrozenArgs`), the fold base served as `initialState` (`ExecutionRuntime · getFoldBase`), the
|
|
6
|
-
* dev-mode snapshot (`
|
|
6
|
+
* dev-mode snapshot (`runner/snapshot.ts · servedSnapshot`), every state `stateAt` hands out
|
|
7
7
|
* (`time-travel/stateAt.ts`) and, since F3, every commit bundle (`EventLog · record`). `memory/` must
|
|
8
8
|
* not import `scope/` (that edge closed the memory ⇄ scope ⇄ recorder module cycle F0 removed), so the
|
|
9
9
|
* walk lives in this leaf, which imports nothing.
|
|
@@ -57,4 +57,4 @@ function freezeValue(value, indices) {
|
|
|
57
57
|
freezeValue(child, indices);
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlZXplLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jYXB0dXJlL2ZyZWV6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBZUg7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxNQUFNLFVBQVUsVUFBVSxDQUFJLEdBQU0sRUFBRSxTQUFvQixXQUFXO0lBQ25FLFdBQVcsQ0FBQyxHQUFHLEVBQUUsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZDLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLEtBQWMsRUFBRSxPQUFnQjtJQUNuRCxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7UUFBRSxPQUFPO0lBQy9HLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckIsb0dBQW9HO0lBQ3BHLHdEQUF3RDtJQUN4RCxJQUFJLE9BQU8sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDcEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUN0QyxNQUFNLEtBQUssR0FBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEMsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVE7Z0JBQUUsV0FBVyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMvRSxDQUFDO1FBQ0QsT0FBTztJQUNULENBQUM7SUFDRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUN0QyxNQUFNLEtBQUssR0FBSSxLQUFpQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNELElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRO1lBQUUsV0FBVyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMvRSxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogZnJlZXplLnRzIOKAlCB0aGUgT05FIGRlZXAtZnJlZXplIHdhbGsgKG1vdmVkIGhlcmUgZnJvbSBgc2NvcGUvcHJvdGVjdGlvbi9yZWFkb25seUlucHV0LnRzYCBpbiBGMykuXG4gKlxuICogV0hZIEhFUkUuIEZpdmUgcGxhY2VzIGZyZWV6ZSBhIHRyZWUsIGFsbCB0aHJvdWdoIHRoaXMgd2FsazogcnVuIGFyZ3MgKGByZWFkb25seUlucHV0IMK3XG4gKiBjcmVhdGVGcm96ZW5BcmdzYCksIHRoZSBmb2xkIGJhc2Ugc2VydmVkIGFzIGBpbml0aWFsU3RhdGVgIChgRXhlY3V0aW9uUnVudGltZSDCtyBnZXRGb2xkQmFzZWApLCB0aGVcbiAqIGRldi1tb2RlIHNuYXBzaG90IChgcnVubmVyL3NuYXBzaG90LnRzIMK3IHNlcnZlZFNuYXBzaG90YCksIGV2ZXJ5IHN0YXRlIGBzdGF0ZUF0YCBoYW5kcyBvdXRcbiAqIChgdGltZS10cmF2ZWwvc3RhdGVBdC50c2ApIGFuZCwgc2luY2UgRjMsIGV2ZXJ5IGNvbW1pdCBidW5kbGUgKGBFdmVudExvZyDCtyByZWNvcmRgKS4gYG1lbW9yeS9gIG11c3RcbiAqIG5vdCBpbXBvcnQgYHNjb3BlL2AgKHRoYXQgZWRnZSBjbG9zZWQgdGhlIG1lbW9yeSDih4Qgc2NvcGUg4oeEIHJlY29yZGVyIG1vZHVsZSBjeWNsZSBGMCByZW1vdmVkKSwgc28gdGhlXG4gKiB3YWxrIGxpdmVzIGluIHRoaXMgbGVhZiwgd2hpY2ggaW1wb3J0cyBub3RoaW5nLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBpbXBvcnQgeyBkZWVwRnJlZXplIH0gZnJvbSAnLi9mcmVlemUuanMnO1xuICpcbiAqIGNvbnN0IGFyZ3MgPSBkZWVwRnJlZXplKHsgb3JkZXI6IHsgbGluZXM6IFt7IHNrdTogJ0EnIH1dIH0sIGJ5dGVzOiBuZXcgVWludDhBcnJheShbMV0pIH0pO1xuICogT2JqZWN0LmlzRnJvemVuKGFyZ3Mub3JkZXIubGluZXNbMF0pOyAvLyB0cnVlXG4gKiBPYmplY3QuaXNGcm96ZW4oYXJncy5ieXRlcyk7IC8vIGZhbHNlIOKAlCBhIHR5cGVkIGFycmF5IGNhbm5vdCBiZSBmcm96ZW47IGl0IGlzIHNraXBwZWRcbiAqIGBgYFxuICovXG5cbi8qKlxuICogSG93IHtAbGluayBkZWVwRnJlZXplfSB3YWxrcyBhbiBBUlJBWS5cbiAqXG4gKiAtIGAnZXZlcnkta2V5J2AgKHRoZSBkZWZhdWx0KSDigJQgZXZlcnkgb3duIHByb3BlcnR5LCBhcyBmb3IgYW55IG90aGVyIG9iamVjdDogdGhlIGluZGV4IGVsZW1lbnRzXG4gKiAgIEFORCBhbnkgZXhwYW5kbyAoYGFyci5ub3RlID0geyDigKYgfWApLiBUaGUgY29udHJhY3QgYXJncyBwcm90ZWN0aW9uIGFuZCB0aGUgZGV2LW1vZGUgc25hcHNob3RcbiAqICAgcmVseSBvbi5cbiAqIC0gYCdpbmRpY2VzJ2Ag4oCUIHRoZSBpbmRleCBlbGVtZW50cyBvbmx5LCBzbyBubyBrZXkgc3RyaW5nIGlzIGFsbG9jYXRlZCBwZXIgZWxlbWVudDsgdGhpcyBpcyB3aGF0XG4gKiAgIGtlZXBzIGZyZWV6aW5nIGEgMTAsMDAwLWVsZW1lbnQgY29tbWl0IGluc2lkZSBpdHMgYnVkZ2V0IChgYmVuY2gvZWxlbWVudC13cml0ZXMudHNgKS4gQW4gb2JqZWN0XG4gKiAgIGh1bmcgb24gYW4gYXJyYXkgRVhQQU5ETyBpcyB0aGVuIGxlZnQgdW5mcm96ZW4g4oCUIHRoZSBjb21taXQgbG9nJ3MgbmFtZWQgaG9sZVxuICogICAoYEV2ZW50TG9nIMK3IHJlY29yZGApLlxuICovXG5leHBvcnQgdHlwZSBBcnJheVdhbGsgPSAnZXZlcnkta2V5JyB8ICdpbmRpY2VzJztcblxuLyoqXG4gKiBGcmVlemVzIGBvYmpgIGFuZCBldmVyeSBvYmplY3QgcmVhY2hhYmxlIHRocm91Z2ggaXRzIG93biBwcm9wZXJ0aWVzLCBhbmQgcmV0dXJucyBgb2JqYC5cbiAqXG4gKiAtIEFuIG9iamVjdCB0aGF0IGlzIEFMUkVBRFkgZnJvemVuIGlzIGxlZnQgYXMgaXQgaXMsIGFuZCBub3QgZGVzY2VuZGVkIOKAlCA5LjMyLjAncyBjb250cmFjdCwga2VwdDpcbiAqICAgYXJncyBtYXkgaG9sZCBhIGNhbGxlcidzIGZyb3plbiBvYmplY3Qgd2l0aCBsaXZlIHBhcnRzIGluc2lkZSAoYSBjbGFzcyBpbnN0YW5jZSBhIHN0YWdlIGNhbGxzKSxcbiAqICAgYW5kIGZyZWV6aW5nIHBhc3QgaXQgd291bGQgYnJlYWsgdGhlbS4gSXQgaXMgYWxzbyB3aGF0IGVuZHMgYSBjeWNsZS4gVGhlIGNvbW1pdCBsb2cgbmV2ZXIgbWVldHNcbiAqICAgb25lOiBpdHMgcGF5bG9hZHMgYXJlIGZyZXNoIGBzdHJ1Y3R1cmVkQ2xvbmVgcy5cbiAqIC0gQXJyYXlCdWZmZXIgdmlld3MgKHR5cGVkIGFycmF5cywgYERhdGFWaWV3YCkgYXJlIHNraXBwZWQ6IGBPYmplY3QuZnJlZXplYCB0aHJvd3Mgb24gYSBub24tZW1wdHlcbiAqICAgdHlwZWQgYXJyYXksIHNvIGEgYFVpbnQ4QXJyYXlgIGluIHN0YXRlLCBhcmdzIG9yIHRoZSBmb2xkIGJhc2UgdXNlZCB0byBmYWlsIHRoZSBydW4gb3IgdGhlXG4gKiAgIHNuYXBzaG90IGhlcmUuXG4gKiAtIFdoYXQgYE9iamVjdC5mcmVlemVgIGNhbm5vdCByZWFjaCBzdGF5cyBtdXRhYmxlIOKAlCBNYXAgYW5kIFNldCBjb250ZW50cywgYSBEYXRlJ3MgdGltZSwgdGhlXG4gKiAgIGJ5dGVzIGJlaGluZCBhIGJ1ZmZlci4gQSBmcm96ZW4gUmVnRXhwJ3MgYGxhc3RJbmRleGAgaXMgcmVhZC1vbmx5LCBzbyBhIGAvZ2Agb3IgYC95YCByZWdleFxuICogICB0YWtlbiBmcm9tIGEgZnJvemVuIHRyZWUgdGhyb3dzIHdoZW4gYGV4ZWNgIG9yIGByZXBsYWNlYCBhZHZhbmNlIGl0LlxuICogLSBGdW5jdGlvbnMgYXJlIG5vdCBkZXNjZW5kZWQgKHRoZXkgYXJlIG5vdCB2YWx1ZXMgdGhlIGVuZ2luZSBzdG9yZXMpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVlcEZyZWV6ZTxUPihvYmo6IFQsIGFycmF5czogQXJyYXlXYWxrID0gJ2V2ZXJ5LWtleScpOiBUIHtcbiAgZnJlZXplVmFsdWUob2JqLCBhcnJheXMgPT09ICdpbmRpY2VzJyk7XG4gIHJldHVybiBvYmo7XG59XG5cbmZ1bmN0aW9uIGZyZWV6ZVZhbHVlKHZhbHVlOiB1bmtub3duLCBpbmRpY2VzOiBib29sZWFuKTogdm9pZCB7XG4gIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB0eXBlb2YgdmFsdWUgIT09ICdvYmplY3QnIHx8IEFycmF5QnVmZmVyLmlzVmlldyh2YWx1ZSkgfHwgT2JqZWN0LmlzRnJvemVuKHZhbHVlKSkgcmV0dXJuO1xuICBPYmplY3QuZnJlZXplKHZhbHVlKTtcbiAgLy8gVGhlIHR3byBsb29wcyBhcmUgd3JpdHRlbiBvdXQgcmF0aGVyIHRoYW4gc2hhcmVkIHRocm91Z2ggYSBjYWxsYmFjazogdGhpcyBydW5zIG9uY2UgcGVyIG9iamVjdCBvZlxuICAvLyBldmVyeSBjb21taXQsIGFuZCBhIGNsb3N1cmUgcGVyIG9iamVjdCBpcyBtZWFzdXJhYmxlLlxuICBpZiAoaW5kaWNlcyAmJiBBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGNoaWxkOiB1bmtub3duID0gdmFsdWVbaV07XG4gICAgICBpZiAoY2hpbGQgIT09IG51bGwgJiYgdHlwZW9mIGNoaWxkID09PSAnb2JqZWN0JykgZnJlZXplVmFsdWUoY2hpbGQsIGluZGljZXMpO1xuICAgIH1cbiAgICByZXR1cm47XG4gIH1cbiAgY29uc3QgbmFtZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh2YWx1ZSk7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbmFtZXMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBjaGlsZCA9ICh2YWx1ZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbbmFtZXNbaV1dO1xuICAgIGlmIChjaGlsZCAhPT0gbnVsbCAmJiB0eXBlb2YgY2hpbGQgPT09ICdvYmplY3QnKSBmcmVlemVWYWx1ZShjaGlsZCwgaW5kaWNlcyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -242,6 +242,8 @@ export declare class FlowchartTraverser<TOut = any, TScope = any> {
|
|
|
242
242
|
* composition.
|
|
243
243
|
*/
|
|
244
244
|
private readonly _frameOf;
|
|
245
|
+
/** `next`-chain ids per decider continuation head (`tailIds`). */
|
|
246
|
+
private readonly _tailIds;
|
|
245
247
|
/**
|
|
246
248
|
* Shared mutable execution counter — monotonic, incremented per stage execution.
|
|
247
249
|
* Shared with child traversers (subflows) so indices are globally unique within a run.
|
|
@@ -438,6 +440,16 @@ export declare class FlowchartTraverser<TOut = any, TScope = any> {
|
|
|
438
440
|
* `bench/depth-probe.ts` and the trampoline tests.
|
|
439
441
|
*/
|
|
440
442
|
private nestingDepthOf;
|
|
443
|
+
/**
|
|
444
|
+
* What a decider's branch frame inherits: the ran-sets of the drivers it is
|
|
445
|
+
* nested in, and every enclosing decider's `next` chain plus this one's.
|
|
446
|
+
*/
|
|
447
|
+
private branchFrameFor;
|
|
448
|
+
/**
|
|
449
|
+
* The ids on a decider's `next` chain — `next`, its `next`, … — up to a
|
|
450
|
+
* loop-ref stub (a back-edge, not the tail). Cached per chain head.
|
|
451
|
+
*/
|
|
452
|
+
private tailIds;
|
|
441
453
|
/** Build a flat continuation hop for the driver loop. */
|
|
442
454
|
private hop;
|
|
443
455
|
/**
|