footprintjs 9.48.2 → 10.0.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/AGENTS.md +12 -10
- package/CLAUDE.md +21 -23
- package/README.md +1 -1
- package/dist/advanced.js +71 -128
- package/dist/esm/advanced.d.ts +24 -58
- package/dist/esm/advanced.js +13 -51
- package/dist/esm/index.d.ts +5 -8
- package/dist/esm/index.js +3 -3
- package/dist/esm/lib/builder/FlowChartBuilder.d.ts +1 -1
- package/dist/esm/lib/builder/FlowChartBuilder.js +3 -3
- package/dist/esm/lib/builder/structure/StructureRecorder.d.ts +1 -1
- package/dist/esm/lib/builder/structure/StructureRecorder.js +1 -1
- package/dist/esm/lib/capture/index.d.ts +0 -1
- package/dist/esm/lib/capture/index.js +1 -2
- package/dist/esm/lib/engine/graph/prefixNodeTree.js +2 -2
- package/dist/esm/lib/engine/handlers/ResumeEntry.d.ts +3 -3
- package/dist/esm/lib/engine/handlers/ResumeEntry.js +4 -4
- package/dist/esm/lib/engine/handlers/SubflowExecutor.d.ts +1 -2
- package/dist/esm/lib/engine/handlers/SubflowExecutor.js +4 -8
- package/dist/esm/lib/engine/index.d.ts +1 -1
- package/dist/esm/lib/engine/index.js +1 -1
- package/dist/esm/lib/engine/narrative/CombinedNarrativeRecorder.d.ts +4 -4
- package/dist/esm/lib/engine/narrative/CombinedNarrativeRecorder.js +1 -1
- package/dist/esm/lib/engine/narrative/index.d.ts +1 -1
- package/dist/esm/lib/engine/narrative/index.js +1 -1
- package/dist/esm/lib/engine/narrative/narrativeTypes.d.ts +1 -11
- package/dist/esm/lib/engine/narrative/narrativeTypes.js +1 -1
- package/dist/esm/lib/engine/traversal/FlowchartTraverser.d.ts +2 -10
- package/dist/esm/lib/engine/traversal/FlowchartTraverser.js +4 -6
- package/dist/esm/lib/engine/traversalContext.d.ts +1 -1
- package/dist/esm/lib/engine/traversalContext.js +2 -2
- package/dist/esm/lib/engine/types.d.ts +2 -10
- package/dist/esm/lib/engine/types.js +1 -1
- package/dist/esm/lib/engine/walkSubflowSpec.js +2 -2
- package/dist/esm/lib/ids/reservedIds.js +2 -2
- package/dist/esm/lib/memory/DiagnosticCollector.js +2 -2
- package/dist/esm/lib/memory/StageContext.d.ts +2 -4
- package/dist/esm/lib/memory/StageContext.js +2 -2
- package/dist/esm/lib/memory/borrowedMutation.js +2 -2
- package/dist/esm/lib/memory/index.d.ts +6 -21
- package/dist/esm/lib/memory/index.js +4 -22
- package/dist/esm/lib/memory/redaction.d.ts +1 -1
- package/dist/esm/lib/memory/redaction.js +2 -2
- package/dist/esm/lib/memory/runPolicy.d.ts +3 -2
- package/dist/esm/lib/memory/runPolicy.js +1 -1
- package/dist/esm/lib/reactive/createTypedScope.js +2 -2
- package/dist/esm/lib/reactive/writeTraps.js +2 -2
- package/dist/esm/lib/recorder/ControlDepRecorder.d.ts +3 -2
- package/dist/esm/lib/recorder/ControlDepRecorder.js +3 -2
- package/dist/esm/lib/recorder/EmitRecorder.d.ts +1 -1
- package/dist/esm/lib/recorder/EmitRecorder.js +1 -1
- package/dist/esm/lib/recorder/InOutRecorder.js +2 -2
- package/dist/esm/lib/recorder/qualityTrace.d.ts +1 -1
- package/dist/esm/lib/recorder/qualityTrace.js +2 -2
- package/dist/esm/lib/runner/DeferredObserverTier.js +2 -2
- package/dist/esm/lib/runner/ExecutionRuntime.d.ts +4 -5
- package/dist/esm/lib/runner/ExecutionRuntime.js +2 -5
- package/dist/esm/lib/runner/FlowChartExecutor.d.ts +1 -1
- package/dist/esm/lib/runner/FlowChartExecutor.js +1 -1
- package/dist/esm/lib/runner/getSubtreeSnapshot.d.ts +1 -1
- package/dist/esm/lib/runner/getSubtreeSnapshot.js +4 -4
- package/dist/esm/lib/runner/resume.js +2 -2
- package/dist/esm/lib/runner/snapshot.js +3 -2
- package/dist/esm/lib/scope/ScopeFacade.js +2 -2
- package/dist/esm/lib/scope/state/zod/scopeFactory.js +2 -2
- package/dist/esm/recorders.d.ts +2 -3
- package/dist/esm/recorders.js +1 -1
- package/dist/esm/trace.d.ts +11 -57
- package/dist/esm/trace.js +10 -68
- package/dist/index.js +3 -3
- package/dist/lib/builder/FlowChartBuilder.js +5 -5
- package/dist/lib/builder/structure/StructureRecorder.js +1 -1
- package/dist/lib/capture/index.js +2 -4
- package/dist/lib/engine/graph/prefixNodeTree.js +5 -5
- package/dist/lib/engine/handlers/ResumeEntry.js +4 -4
- package/dist/lib/engine/handlers/SubflowExecutor.js +5 -9
- package/dist/lib/engine/index.js +1 -1
- package/dist/lib/engine/narrative/CombinedNarrativeRecorder.js +1 -1
- package/dist/lib/engine/narrative/index.js +1 -1
- package/dist/lib/engine/narrative/narrativeTypes.js +1 -1
- package/dist/lib/engine/traversal/FlowchartTraverser.js +8 -10
- package/dist/lib/engine/traversalContext.js +4 -4
- package/dist/lib/engine/types.js +1 -1
- package/dist/lib/engine/walkSubflowSpec.js +3 -3
- package/dist/lib/ids/reservedIds.js +5 -5
- package/dist/lib/memory/DiagnosticCollector.js +3 -3
- package/dist/lib/memory/StageContext.js +3 -3
- package/dist/lib/memory/borrowedMutation.js +3 -3
- package/dist/lib/memory/index.js +7 -42
- package/dist/lib/memory/redaction.js +3 -3
- package/dist/lib/memory/runPolicy.js +1 -1
- package/dist/lib/reactive/createTypedScope.js +3 -3
- package/dist/lib/reactive/writeTraps.js +4 -4
- package/dist/lib/recorder/ControlDepRecorder.js +3 -2
- package/dist/lib/recorder/EmitRecorder.js +1 -1
- package/dist/lib/recorder/InOutRecorder.js +3 -3
- package/dist/lib/recorder/qualityTrace.js +4 -4
- package/dist/lib/runner/DeferredObserverTier.js +3 -3
- package/dist/lib/runner/ExecutionRuntime.js +6 -9
- package/dist/lib/runner/FlowChartExecutor.js +1 -1
- package/dist/lib/runner/getSubtreeSnapshot.js +6 -6
- package/dist/lib/runner/resume.js +3 -3
- package/dist/lib/runner/snapshot.js +6 -5
- package/dist/lib/scope/ScopeFacade.js +3 -3
- package/dist/lib/scope/state/zod/scopeFactory.js +4 -4
- package/dist/recorders.js +1 -1
- package/dist/trace.js +18 -120
- package/dist/types/advanced.d.ts +24 -58
- package/dist/types/index.d.ts +5 -8
- package/dist/types/lib/builder/FlowChartBuilder.d.ts +1 -1
- package/dist/types/lib/builder/structure/StructureRecorder.d.ts +1 -1
- package/dist/types/lib/capture/index.d.ts +0 -1
- package/dist/types/lib/engine/handlers/ResumeEntry.d.ts +3 -3
- package/dist/types/lib/engine/handlers/SubflowExecutor.d.ts +1 -2
- package/dist/types/lib/engine/index.d.ts +1 -1
- package/dist/types/lib/engine/narrative/CombinedNarrativeRecorder.d.ts +4 -4
- package/dist/types/lib/engine/narrative/index.d.ts +1 -1
- package/dist/types/lib/engine/narrative/narrativeTypes.d.ts +1 -11
- package/dist/types/lib/engine/traversal/FlowchartTraverser.d.ts +2 -10
- package/dist/types/lib/engine/traversalContext.d.ts +1 -1
- package/dist/types/lib/engine/types.d.ts +2 -10
- package/dist/types/lib/memory/StageContext.d.ts +2 -4
- package/dist/types/lib/memory/index.d.ts +6 -21
- package/dist/types/lib/memory/redaction.d.ts +1 -1
- package/dist/types/lib/memory/runPolicy.d.ts +3 -2
- package/dist/types/lib/recorder/ControlDepRecorder.d.ts +3 -2
- package/dist/types/lib/recorder/EmitRecorder.d.ts +1 -1
- package/dist/types/lib/recorder/qualityTrace.d.ts +1 -1
- package/dist/types/lib/runner/ExecutionRuntime.d.ts +4 -5
- package/dist/types/lib/runner/FlowChartExecutor.d.ts +1 -1
- package/dist/types/lib/runner/getSubtreeSnapshot.d.ts +1 -1
- package/dist/types/recorders.d.ts +2 -3
- package/dist/types/trace.d.ts +11 -57
- package/package.json +6 -15
- package/dist/esm/lib/capture/freeze.d.ts +0 -91
- package/dist/esm/lib/capture/freeze.js +0 -314
- package/dist/esm/lib/capture/ownData.d.ts +0 -7
- package/dist/esm/lib/capture/ownData.js +0 -15
- package/dist/esm/lib/capture/valueKinds.d.ts +0 -57
- package/dist/esm/lib/capture/valueKinds.js +0 -142
- package/dist/esm/lib/ids/runtimeStageId.d.ts +0 -173
- package/dist/esm/lib/ids/runtimeStageId.js +0 -194
- package/dist/esm/lib/memory/EventLog.d.ts +0 -105
- package/dist/esm/lib/memory/EventLog.js +0 -148
- package/dist/esm/lib/memory/RecordFrame.d.ts +0 -232
- package/dist/esm/lib/memory/RecordFrame.js +0 -296
- package/dist/esm/lib/memory/SharedMemory.d.ts +0 -46
- package/dist/esm/lib/memory/SharedMemory.js +0 -88
- package/dist/esm/lib/memory/TransactionBuffer.d.ts +0 -521
- package/dist/esm/lib/memory/TransactionBuffer.js +0 -946
- package/dist/esm/lib/memory/admission.d.ts +0 -81
- package/dist/esm/lib/memory/admission.js +0 -153
- package/dist/esm/lib/memory/backtrack.d.ts +0 -286
- package/dist/esm/lib/memory/backtrack.js +0 -457
- package/dist/esm/lib/memory/commitLogUtils.d.ts +0 -217
- package/dist/esm/lib/memory/commitLogUtils.js +0 -384
- package/dist/esm/lib/memory/deltaEncoding.d.ts +0 -66
- package/dist/esm/lib/memory/deltaEncoding.js +0 -122
- package/dist/esm/lib/memory/equality.d.ts +0 -93
- package/dist/esm/lib/memory/equality.js +0 -262
- package/dist/esm/lib/memory/eventPosition.d.ts +0 -18
- package/dist/esm/lib/memory/eventPosition.js +0 -2
- package/dist/esm/lib/memory/honesty.d.ts +0 -93
- package/dist/esm/lib/memory/honesty.js +0 -92
- package/dist/esm/lib/memory/keyPaths.d.ts +0 -125
- package/dist/esm/lib/memory/keyPaths.js +0 -227
- package/dist/esm/lib/memory/logModel.d.ts +0 -76
- package/dist/esm/lib/memory/logModel.js +0 -364
- package/dist/esm/lib/memory/merge.d.ts +0 -26
- package/dist/esm/lib/memory/merge.js +0 -60
- package/dist/esm/lib/memory/pathOps.d.ts +0 -115
- package/dist/esm/lib/memory/pathOps.js +0 -290
- package/dist/esm/lib/memory/paths.d.ts +0 -52
- package/dist/esm/lib/memory/paths.js +0 -57
- package/dist/esm/lib/memory/placeholders.d.ts +0 -39
- package/dist/esm/lib/memory/placeholders.js +0 -40
- package/dist/esm/lib/memory/recordCommit.d.ts +0 -45
- package/dist/esm/lib/memory/recordCommit.js +0 -61
- package/dist/esm/lib/memory/scrub.d.ts +0 -53
- package/dist/esm/lib/memory/scrub.js +0 -74
- package/dist/esm/lib/memory/types.d.ts +0 -209
- package/dist/esm/lib/memory/types.js +0 -10
- package/dist/esm/lib/memory/utils.d.ts +0 -73
- package/dist/esm/lib/memory/utils.js +0 -159
- package/dist/esm/lib/memory/verbs.d.ts +0 -333
- package/dist/esm/lib/memory/verbs.js +0 -427
- package/dist/esm/lib/recorder/CommitRangeIndex.d.ts +0 -147
- package/dist/esm/lib/recorder/CommitRangeIndex.js +0 -207
- package/dist/esm/lib/scope/detectCircular.d.ts +0 -13
- package/dist/esm/lib/scope/detectCircular.js +0 -14
- package/dist/esm/lib/scope/recorders/summarizeValue.d.ts +0 -5
- package/dist/esm/lib/scope/recorders/summarizeValue.js +0 -6
- package/dist/esm/lib/slice/elementProvenance.d.ts +0 -81
- package/dist/esm/lib/slice/elementProvenance.js +0 -190
- package/dist/esm/lib/slice/forwardSliceForKey.d.ts +0 -88
- package/dist/esm/lib/slice/forwardSliceForKey.js +0 -243
- package/dist/esm/lib/slice/index.d.ts +0 -25
- package/dist/esm/lib/slice/index.js +0 -25
- package/dist/esm/lib/slice/keyIndex.d.ts +0 -137
- package/dist/esm/lib/slice/keyIndex.js +0 -293
- package/dist/esm/lib/slice/keyTimeline.d.ts +0 -49
- package/dist/esm/lib/slice/keyTimeline.js +0 -113
- package/dist/esm/lib/slice/keysReadSources.d.ts +0 -51
- package/dist/esm/lib/slice/keysReadSources.js +0 -95
- package/dist/esm/lib/slice/serialize.d.ts +0 -78
- package/dist/esm/lib/slice/serialize.js +0 -278
- package/dist/esm/lib/slice/sliceForKey.d.ts +0 -47
- package/dist/esm/lib/slice/sliceForKey.js +0 -88
- package/dist/esm/lib/slice/types.d.ts +0 -567
- package/dist/esm/lib/slice/types.js +0 -25
- package/dist/esm/lib/time-travel/axis.d.ts +0 -119
- package/dist/esm/lib/time-travel/axis.js +0 -179
- package/dist/esm/lib/time-travel/bundles.d.ts +0 -77
- package/dist/esm/lib/time-travel/bundles.js +0 -136
- package/dist/esm/lib/time-travel/chain.d.ts +0 -93
- package/dist/esm/lib/time-travel/chain.js +0 -188
- package/dist/esm/lib/time-travel/commitStops.d.ts +0 -55
- package/dist/esm/lib/time-travel/commitStops.js +0 -202
- package/dist/esm/lib/time-travel/index.d.ts +0 -22
- package/dist/esm/lib/time-travel/index.js +0 -21
- package/dist/esm/lib/time-travel/stateAt.d.ts +0 -102
- package/dist/esm/lib/time-travel/stateAt.js +0 -153
- package/dist/esm/lib/time-travel/tagStops.d.ts +0 -72
- package/dist/esm/lib/time-travel/tagStops.js +0 -102
- package/dist/esm/lib/time-travel/timeTravel.d.ts +0 -70
- package/dist/esm/lib/time-travel/timeTravel.js +0 -360
- package/dist/esm/lib/time-travel/types.d.ts +0 -470
- package/dist/esm/lib/time-travel/types.js +0 -23
- package/dist/esm/write.d.ts +0 -47
- package/dist/esm/write.js +0 -46
- package/dist/lib/capture/freeze.js +0 -320
- package/dist/lib/capture/ownData.js +0 -19
- package/dist/lib/capture/valueKinds.js +0 -146
- package/dist/lib/ids/runtimeStageId.js +0 -210
- package/dist/lib/memory/EventLog.js +0 -152
- package/dist/lib/memory/RecordFrame.js +0 -300
- package/dist/lib/memory/SharedMemory.js +0 -92
- package/dist/lib/memory/TransactionBuffer.js +0 -950
- package/dist/lib/memory/admission.js +0 -159
- package/dist/lib/memory/backtrack.js +0 -463
- package/dist/lib/memory/commitLogUtils.js +0 -399
- package/dist/lib/memory/deltaEncoding.js +0 -128
- package/dist/lib/memory/equality.js +0 -266
- package/dist/lib/memory/eventPosition.js +0 -3
- package/dist/lib/memory/honesty.js +0 -95
- package/dist/lib/memory/keyPaths.js +0 -243
- package/dist/lib/memory/logModel.js +0 -372
- package/dist/lib/memory/merge.js +0 -64
- package/dist/lib/memory/pathOps.js +0 -306
- package/dist/lib/memory/paths.js +0 -62
- package/dist/lib/memory/placeholders.js +0 -43
- package/dist/lib/memory/recordCommit.js +0 -65
- package/dist/lib/memory/scrub.js +0 -79
- package/dist/lib/memory/types.js +0 -11
- package/dist/lib/memory/utils.js +0 -178
- package/dist/lib/memory/verbs.js +0 -444
- package/dist/lib/recorder/CommitRangeIndex.js +0 -211
- package/dist/lib/scope/detectCircular.js +0 -21
- package/dist/lib/scope/recorders/summarizeValue.js +0 -10
- package/dist/lib/slice/elementProvenance.js +0 -195
- package/dist/lib/slice/forwardSliceForKey.js +0 -247
- package/dist/lib/slice/index.js +0 -42
- package/dist/lib/slice/keyIndex.js +0 -313
- package/dist/lib/slice/keyTimeline.js +0 -117
- package/dist/lib/slice/keysReadSources.js +0 -101
- package/dist/lib/slice/serialize.js +0 -286
- package/dist/lib/slice/sliceForKey.js +0 -93
- package/dist/lib/slice/types.js +0 -26
- package/dist/lib/time-travel/axis.js +0 -184
- package/dist/lib/time-travel/bundles.js +0 -144
- package/dist/lib/time-travel/chain.js +0 -193
- package/dist/lib/time-travel/commitStops.js +0 -206
- package/dist/lib/time-travel/index.js +0 -32
- package/dist/lib/time-travel/stateAt.js +0 -160
- package/dist/lib/time-travel/tagStops.js +0 -106
- package/dist/lib/time-travel/timeTravel.js +0 -364
- package/dist/lib/time-travel/types.js +0 -24
- package/dist/types/lib/capture/freeze.d.ts +0 -91
- package/dist/types/lib/capture/ownData.d.ts +0 -7
- package/dist/types/lib/capture/valueKinds.d.ts +0 -57
- package/dist/types/lib/ids/runtimeStageId.d.ts +0 -173
- package/dist/types/lib/memory/EventLog.d.ts +0 -105
- package/dist/types/lib/memory/RecordFrame.d.ts +0 -232
- package/dist/types/lib/memory/SharedMemory.d.ts +0 -46
- package/dist/types/lib/memory/TransactionBuffer.d.ts +0 -521
- package/dist/types/lib/memory/admission.d.ts +0 -81
- package/dist/types/lib/memory/backtrack.d.ts +0 -286
- package/dist/types/lib/memory/commitLogUtils.d.ts +0 -217
- package/dist/types/lib/memory/deltaEncoding.d.ts +0 -66
- package/dist/types/lib/memory/equality.d.ts +0 -93
- package/dist/types/lib/memory/eventPosition.d.ts +0 -18
- package/dist/types/lib/memory/honesty.d.ts +0 -93
- package/dist/types/lib/memory/keyPaths.d.ts +0 -125
- package/dist/types/lib/memory/logModel.d.ts +0 -76
- package/dist/types/lib/memory/merge.d.ts +0 -26
- package/dist/types/lib/memory/pathOps.d.ts +0 -115
- package/dist/types/lib/memory/paths.d.ts +0 -52
- package/dist/types/lib/memory/placeholders.d.ts +0 -39
- package/dist/types/lib/memory/recordCommit.d.ts +0 -45
- package/dist/types/lib/memory/scrub.d.ts +0 -53
- package/dist/types/lib/memory/types.d.ts +0 -209
- package/dist/types/lib/memory/utils.d.ts +0 -73
- package/dist/types/lib/memory/verbs.d.ts +0 -333
- package/dist/types/lib/recorder/CommitRangeIndex.d.ts +0 -147
- package/dist/types/lib/scope/detectCircular.d.ts +0 -13
- package/dist/types/lib/scope/recorders/summarizeValue.d.ts +0 -5
- package/dist/types/lib/slice/elementProvenance.d.ts +0 -81
- package/dist/types/lib/slice/forwardSliceForKey.d.ts +0 -88
- package/dist/types/lib/slice/index.d.ts +0 -25
- package/dist/types/lib/slice/keyIndex.d.ts +0 -137
- package/dist/types/lib/slice/keyTimeline.d.ts +0 -49
- package/dist/types/lib/slice/keysReadSources.d.ts +0 -51
- package/dist/types/lib/slice/serialize.d.ts +0 -78
- package/dist/types/lib/slice/sliceForKey.d.ts +0 -47
- package/dist/types/lib/slice/types.d.ts +0 -567
- package/dist/types/lib/time-travel/axis.d.ts +0 -119
- package/dist/types/lib/time-travel/bundles.d.ts +0 -77
- package/dist/types/lib/time-travel/chain.d.ts +0 -93
- package/dist/types/lib/time-travel/commitStops.d.ts +0 -55
- package/dist/types/lib/time-travel/index.d.ts +0 -22
- package/dist/types/lib/time-travel/stateAt.d.ts +0 -102
- package/dist/types/lib/time-travel/tagStops.d.ts +0 -72
- package/dist/types/lib/time-travel/timeTravel.d.ts +0 -70
- package/dist/types/lib/time-travel/types.d.ts +0 -470
- package/dist/types/write.d.ts +0 -47
- package/dist/write.js +0 -52
package/dist/trace.js
CHANGED
|
@@ -1,143 +1,41 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* footprintjs/trace —
|
|
3
|
+
* footprintjs/trace — recorder stores, topology, chart boundaries and control dependencies.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* ```typescript
|
|
9
|
-
* import { parseRuntimeStageId, findLastWriter, KeyedStore, SequenceStore } from 'footprintjs/trace';
|
|
10
|
-
*
|
|
11
|
-
* // Parse a runtimeStageId
|
|
12
|
-
* const { stageId, executionIndex } = parseRuntimeStageId('call-llm#5');
|
|
13
|
-
*
|
|
14
|
-
* // Backtrack: who wrote 'systemPrompt' before commit at idx 8?
|
|
15
|
-
* const writer = findLastWriter(commitLog, 'systemPrompt', 8);
|
|
16
|
-
*
|
|
17
|
-
* // v5 primary API: compose a Store as a field (one purpose per recorder).
|
|
18
|
-
* // KeyedStore<T> — 1:1 (one entry per step)
|
|
19
|
-
* class MyRecorder {
|
|
20
|
-
* readonly id = 'my-recorder';
|
|
21
|
-
* private store = new KeyedStore<MyEntry>();
|
|
22
|
-
* onWrite(e) { this.store.set(e.runtimeStageId, { ... }); }
|
|
23
|
-
* }
|
|
24
|
-
*
|
|
25
|
-
* // SequenceStore<T> — 1:N (multiple entries per step, ordering matters)
|
|
26
|
-
* class AuditRecorder {
|
|
27
|
-
* readonly id = 'audit';
|
|
28
|
-
* private store = new SequenceStore<AuditEntry>();
|
|
29
|
-
* onRead(e) { this.store.push({ runtimeStageId: e.runtimeStageId, ... }); }
|
|
30
|
-
* }
|
|
31
|
-
* ```
|
|
5
|
+
* Record readers, types and runtime-ID grammar belong to `foottrace`; record path helpers belong
|
|
6
|
+
* to `foottrace/paths`, and record writers to `foottrace/write`. This door exports only engine-owned
|
|
7
|
+
* observer tools. Record symbols are never re-exported across the package boundary.
|
|
32
8
|
*/
|
|
33
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
|
-
exports.
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
Object.defineProperty(exports, "buildRuntimeStageId", { enumerable: true, get: function () { return runtimeStageId_js_1.buildRuntimeStageId; } });
|
|
38
|
-
Object.defineProperty(exports, "createExecutionCounter", { enumerable: true, get: function () { return runtimeStageId_js_1.createExecutionCounter; } });
|
|
39
|
-
Object.defineProperty(exports, "parseRuntimeStageId", { enumerable: true, get: function () { return runtimeStageId_js_1.parseRuntimeStageId; } });
|
|
40
|
-
Object.defineProperty(exports, "splitStageId", { enumerable: true, get: function () { return runtimeStageId_js_1.splitStageId; } });
|
|
41
|
-
// Generated branch segments — the subflow path segments `addParallelForEach`
|
|
42
|
-
// mints for its branches (`<stageId>~<index>`). A branch is addressed by the
|
|
43
|
-
// ORDINARY grammar above, so nothing here is needed to READ one; these exist so
|
|
44
|
-
// a consumer can TELL a generated branch from a hand-authored subflow (to label
|
|
45
|
-
// it "branch 2 of review-chunks" instead of a subflow name), and so the
|
|
46
|
-
// reserved marker is discoverable rather than folklore.
|
|
47
|
-
// Design: docs/design/execution-control.md.
|
|
10
|
+
exports.topologyRecorder = exports.TopologyRecorder = exports.SequenceStore = exports.qualityTrace = exports.formatQualityTrace = exports.QualityRecorder = exports.KeyedStore = exports.ROOT_SUBFLOW_ID = exports.ROOT_RUNTIME_STAGE_ID = exports.inOutRecorder = exports.InOutRecorder = exports.controlDepRecorder = exports.ControlDepRecorder = exports.BoundaryStateStore = exports.parseBranchSegment = exports.isBranchSegment = exports.hasBranchSegmentMarker = exports.buildBranchSegment = exports.BRANCH_SEGMENT_MARKER = exports.walkSubflowSpec = void 0;
|
|
11
|
+
var walkSubflowSpec_js_1 = require("./lib/engine/walkSubflowSpec.js");
|
|
12
|
+
Object.defineProperty(exports, "walkSubflowSpec", { enumerable: true, get: function () { return walkSubflowSpec_js_1.walkSubflowSpec; } });
|
|
48
13
|
var branchSegment_js_1 = require("./lib/ids/branchSegment.js");
|
|
49
14
|
Object.defineProperty(exports, "BRANCH_SEGMENT_MARKER", { enumerable: true, get: function () { return branchSegment_js_1.BRANCH_SEGMENT_MARKER; } });
|
|
50
15
|
Object.defineProperty(exports, "buildBranchSegment", { enumerable: true, get: function () { return branchSegment_js_1.buildBranchSegment; } });
|
|
51
16
|
Object.defineProperty(exports, "hasBranchSegmentMarker", { enumerable: true, get: function () { return branchSegment_js_1.hasBranchSegmentMarker; } });
|
|
52
17
|
Object.defineProperty(exports, "isBranchSegment", { enumerable: true, get: function () { return branchSegment_js_1.isBranchSegment; } });
|
|
53
18
|
Object.defineProperty(exports, "parseBranchSegment", { enumerable: true, get: function () { return branchSegment_js_1.parseBranchSegment; } });
|
|
54
|
-
var walkSubflowSpec_js_1 = require("./lib/engine/walkSubflowSpec.js");
|
|
55
|
-
Object.defineProperty(exports, "walkSubflowSpec", { enumerable: true, get: function () { return walkSubflowSpec_js_1.walkSubflowSpec; } });
|
|
56
|
-
// Path segments — the supported way to take a `TraceEntry.path` apart. Paths
|
|
57
|
-
// are joined with an ASCII Unit-Separator (never a dot: a state key may itself
|
|
58
|
-
// contain a dot, so a dot separator would make `['a.b']` and `['a','b']`
|
|
59
|
-
// indistinguishable), which is an encoding, not a display character. Render a
|
|
60
|
-
// path through this instead of splitting on the delimiter yourself.
|
|
61
|
-
var paths_js_1 = require("./lib/memory/paths.js");
|
|
62
|
-
Object.defineProperty(exports, "pathSegments", { enumerable: true, get: function () { return paths_js_1.pathSegments; } });
|
|
63
|
-
// The refusal the commit-log readers raise for a row whose verb is not
|
|
64
|
-
// set | merge | append | delete (`commitValueAt`, `arrayProvenance`, and
|
|
65
|
-
// `applySmartMerge` below): a foreign or corrupted log fails loudly,
|
|
66
|
-
// naming the row, instead of being folded as a merge.
|
|
67
|
-
var verbs_js_1 = require("./lib/memory/verbs.js");
|
|
68
|
-
Object.defineProperty(exports, "UnknownVerbError", { enumerable: true, get: function () { return verbs_js_1.UnknownVerbError; } });
|
|
69
|
-
var verbs_js_2 = require("./lib/memory/verbs.js");
|
|
70
|
-
Object.defineProperty(exports, "applySmartMerge", { enumerable: true, get: function () { return verbs_js_2.applySmartMerge; } });
|
|
71
|
-
var commitLogUtils_js_1 = require("./lib/memory/commitLogUtils.js");
|
|
72
|
-
Object.defineProperty(exports, "buildCommitIndex", { enumerable: true, get: function () { return commitLogUtils_js_1.buildCommitIndex; } });
|
|
73
|
-
Object.defineProperty(exports, "commitIndexOf", { enumerable: true, get: function () { return commitLogUtils_js_1.commitIndexOf; } });
|
|
74
|
-
Object.defineProperty(exports, "commitValueAt", { enumerable: true, get: function () { return commitLogUtils_js_1.commitValueAt; } });
|
|
75
|
-
Object.defineProperty(exports, "commitValueAtWithBasis", { enumerable: true, get: function () { return commitLogUtils_js_1.commitValueAtWithBasis; } });
|
|
76
|
-
Object.defineProperty(exports, "findCommit", { enumerable: true, get: function () { return commitLogUtils_js_1.findCommit; } });
|
|
77
|
-
Object.defineProperty(exports, "findCommits", { enumerable: true, get: function () { return commitLogUtils_js_1.findCommits; } });
|
|
78
|
-
Object.defineProperty(exports, "findLastWriter", { enumerable: true, get: function () { return commitLogUtils_js_1.findLastWriter; } });
|
|
79
|
-
Object.defineProperty(exports, "findLastWriterWithBasis", { enumerable: true, get: function () { return commitLogUtils_js_1.findLastWriterWithBasis; } });
|
|
80
|
-
// One stage, one record (F8, 9.39.0): does a log record its continuations
|
|
81
|
-
// (`CommitBundle.phase`), and — for a log written before it — the ONE legacy
|
|
82
|
-
// reader that infers them the way 9.38.0 did.
|
|
83
|
-
Object.defineProperty(exports, "inferLegacyPhases", { enumerable: true, get: function () { return commitLogUtils_js_1.inferLegacyPhases; } });
|
|
84
|
-
Object.defineProperty(exports, "recordsPhases", { enumerable: true, get: function () { return commitLogUtils_js_1.recordsPhases; } });
|
|
85
|
-
var index_js_1 = require("./lib/time-travel/index.js");
|
|
86
|
-
Object.defineProperty(exports, "commitStops", { enumerable: true, get: function () { return index_js_1.commitStops; } });
|
|
87
|
-
Object.defineProperty(exports, "commitStopsStrategy", { enumerable: true, get: function () { return index_js_1.commitStopsStrategy; } });
|
|
88
|
-
Object.defineProperty(exports, "filterStops", { enumerable: true, get: function () { return index_js_1.filterStops; } });
|
|
89
|
-
Object.defineProperty(exports, "isCommitBundle", { enumerable: true, get: function () { return index_js_1.isCommitBundle; } });
|
|
90
|
-
Object.defineProperty(exports, "splitAxis", { enumerable: true, get: function () { return index_js_1.splitAxis; } });
|
|
91
|
-
Object.defineProperty(exports, "stateAt", { enumerable: true, get: function () { return index_js_1.stateAt; } });
|
|
92
|
-
Object.defineProperty(exports, "tagStops", { enumerable: true, get: function () { return index_js_1.tagStops; } });
|
|
93
|
-
Object.defineProperty(exports, "timeTravel", { enumerable: true, get: function () { return index_js_1.timeTravel; } });
|
|
94
|
-
var backtrack_js_1 = require("./lib/memory/backtrack.js");
|
|
95
|
-
Object.defineProperty(exports, "causalChain", { enumerable: true, get: function () { return backtrack_js_1.causalChain; } });
|
|
96
|
-
Object.defineProperty(exports, "flattenCausalDAG", { enumerable: true, get: function () { return backtrack_js_1.flattenCausalDAG; } });
|
|
97
|
-
Object.defineProperty(exports, "formatCausalChain", { enumerable: true, get: function () { return backtrack_js_1.formatCausalChain; } });
|
|
98
|
-
var index_js_2 = require("./lib/slice/index.js");
|
|
99
|
-
Object.defineProperty(exports, "arrayProvenance", { enumerable: true, get: function () { return index_js_2.arrayProvenance; } });
|
|
100
|
-
Object.defineProperty(exports, "elementProvenance", { enumerable: true, get: function () { return index_js_2.elementProvenance; } });
|
|
101
|
-
Object.defineProperty(exports, "formatForwardSlice", { enumerable: true, get: function () { return index_js_2.formatForwardSlice; } });
|
|
102
|
-
Object.defineProperty(exports, "formatSlice", { enumerable: true, get: function () { return index_js_2.formatSlice; } });
|
|
103
|
-
Object.defineProperty(exports, "formatTimeline", { enumerable: true, get: function () { return index_js_2.formatTimeline; } });
|
|
104
|
-
Object.defineProperty(exports, "forwardSliceForKey", { enumerable: true, get: function () { return index_js_2.forwardSliceForKey; } });
|
|
105
|
-
Object.defineProperty(exports, "forwardSliceToJSON", { enumerable: true, get: function () { return index_js_2.forwardSliceToJSON; } });
|
|
106
|
-
Object.defineProperty(exports, "keysReadFromExecutionTree", { enumerable: true, get: function () { return index_js_2.keysReadFromExecutionTree; } });
|
|
107
|
-
Object.defineProperty(exports, "keysReadFromMap", { enumerable: true, get: function () { return index_js_2.keysReadFromMap; } });
|
|
108
|
-
Object.defineProperty(exports, "keyTimeline", { enumerable: true, get: function () { return index_js_2.keyTimeline; } });
|
|
109
|
-
Object.defineProperty(exports, "normaliseStateKey", { enumerable: true, get: function () { return index_js_2.normaliseStateKey; } });
|
|
110
|
-
Object.defineProperty(exports, "resolveKeysReadSource", { enumerable: true, get: function () { return index_js_2.resolveKeysReadSource; } });
|
|
111
|
-
Object.defineProperty(exports, "sliceForKey", { enumerable: true, get: function () { return index_js_2.sliceForKey; } });
|
|
112
|
-
Object.defineProperty(exports, "sliceToJSON", { enumerable: true, get: function () { return index_js_2.sliceToJSON; } });
|
|
113
|
-
var honesty_js_1 = require("./lib/memory/honesty.js");
|
|
114
|
-
Object.defineProperty(exports, "HONESTY_CODES", { enumerable: true, get: function () { return honesty_js_1.HONESTY_CODES; } });
|
|
115
|
-
// ── v5 Stores (concrete, composable — primary recorder API) ─────
|
|
116
|
-
// Compose these via `new Store<T>()` as a field on your recorder
|
|
117
|
-
// class. One purpose per recorder: stores are storage; recorders
|
|
118
|
-
// are event-hook interface implementations.
|
|
119
19
|
var BoundaryStateStore_js_1 = require("./lib/recorder/BoundaryStateStore.js");
|
|
120
20
|
Object.defineProperty(exports, "BoundaryStateStore", { enumerable: true, get: function () { return BoundaryStateStore_js_1.BoundaryStateStore; } });
|
|
121
|
-
var
|
|
122
|
-
Object.defineProperty(exports, "
|
|
123
|
-
|
|
124
|
-
Object.defineProperty(exports, "SequenceStore", { enumerable: true, get: function () { return SequenceStore_js_1.SequenceStore; } });
|
|
125
|
-
var CommitRangeIndex_js_1 = require("./lib/recorder/CommitRangeIndex.js");
|
|
126
|
-
Object.defineProperty(exports, "CommitRangeIndex", { enumerable: true, get: function () { return CommitRangeIndex_js_1.CommitRangeIndex; } });
|
|
127
|
-
var TopologyRecorder_js_1 = require("./lib/recorder/TopologyRecorder.js");
|
|
128
|
-
Object.defineProperty(exports, "TopologyRecorder", { enumerable: true, get: function () { return TopologyRecorder_js_1.TopologyRecorder; } });
|
|
129
|
-
Object.defineProperty(exports, "topologyRecorder", { enumerable: true, get: function () { return TopologyRecorder_js_1.topologyRecorder; } });
|
|
21
|
+
var ControlDepRecorder_js_1 = require("./lib/recorder/ControlDepRecorder.js");
|
|
22
|
+
Object.defineProperty(exports, "ControlDepRecorder", { enumerable: true, get: function () { return ControlDepRecorder_js_1.ControlDepRecorder; } });
|
|
23
|
+
Object.defineProperty(exports, "controlDepRecorder", { enumerable: true, get: function () { return ControlDepRecorder_js_1.controlDepRecorder; } });
|
|
130
24
|
var InOutRecorder_js_1 = require("./lib/recorder/InOutRecorder.js");
|
|
131
25
|
Object.defineProperty(exports, "InOutRecorder", { enumerable: true, get: function () { return InOutRecorder_js_1.InOutRecorder; } });
|
|
132
26
|
Object.defineProperty(exports, "inOutRecorder", { enumerable: true, get: function () { return InOutRecorder_js_1.inOutRecorder; } });
|
|
133
27
|
Object.defineProperty(exports, "ROOT_RUNTIME_STAGE_ID", { enumerable: true, get: function () { return InOutRecorder_js_1.ROOT_RUNTIME_STAGE_ID; } });
|
|
134
28
|
Object.defineProperty(exports, "ROOT_SUBFLOW_ID", { enumerable: true, get: function () { return InOutRecorder_js_1.ROOT_SUBFLOW_ID; } });
|
|
135
|
-
var
|
|
136
|
-
Object.defineProperty(exports, "
|
|
137
|
-
Object.defineProperty(exports, "controlDepRecorder", { enumerable: true, get: function () { return ControlDepRecorder_js_1.controlDepRecorder; } });
|
|
29
|
+
var KeyedStore_js_1 = require("./lib/recorder/KeyedStore.js");
|
|
30
|
+
Object.defineProperty(exports, "KeyedStore", { enumerable: true, get: function () { return KeyedStore_js_1.KeyedStore; } });
|
|
138
31
|
var QualityRecorder_js_1 = require("./lib/recorder/QualityRecorder.js");
|
|
139
32
|
Object.defineProperty(exports, "QualityRecorder", { enumerable: true, get: function () { return QualityRecorder_js_1.QualityRecorder; } });
|
|
140
33
|
var qualityTrace_js_1 = require("./lib/recorder/qualityTrace.js");
|
|
141
34
|
Object.defineProperty(exports, "formatQualityTrace", { enumerable: true, get: function () { return qualityTrace_js_1.formatQualityTrace; } });
|
|
142
35
|
Object.defineProperty(exports, "qualityTrace", { enumerable: true, get: function () { return qualityTrace_js_1.qualityTrace; } });
|
|
143
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHJhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4Qkc7Ozs7QUFJSCxpRUFLcUM7QUFKbkMsd0hBQUEsbUJBQW1CLE9BQUE7QUFDbkIsMkhBQUEsc0JBQXNCLE9BQUE7QUFDdEIsd0hBQUEsbUJBQW1CLE9BQUE7QUFDbkIsaUhBQUEsWUFBWSxPQUFBO0FBR2QsNkVBQTZFO0FBQzdFLDZFQUE2RTtBQUM3RSxnRkFBZ0Y7QUFDaEYsZ0ZBQWdGO0FBQ2hGLHdFQUF3RTtBQUN4RSx3REFBd0Q7QUFDeEQsNENBQTRDO0FBQzVDLCtEQU1vQztBQUxsQyx5SEFBQSxxQkFBcUIsT0FBQTtBQUNyQixzSEFBQSxrQkFBa0IsT0FBQTtBQUNsQiwwSEFBQSxzQkFBc0IsT0FBQTtBQUN0QixtSEFBQSxlQUFlLE9BQUE7QUFDZixzSEFBQSxrQkFBa0IsT0FBQTtBQU1wQixzRUFBa0U7QUFBekQscUhBQUEsZUFBZSxPQUFBO0FBRXhCLDZFQUE2RTtBQUM3RSwrRUFBK0U7QUFDL0UseUVBQXlFO0FBQ3pFLDhFQUE4RTtBQUM5RSxvRUFBb0U7QUFDcEUsa0RBQXFEO0FBQTVDLHdHQUFBLFlBQVksT0FBQTtBQUVyQix1RUFBdUU7QUFDdkUseUVBQXlFO0FBQ3pFLHFFQUFxRTtBQUNyRSxzREFBc0Q7QUFDdEQsa0RBQXlEO0FBQWhELDRHQUFBLGdCQUFnQixPQUFBO0FBV3pCLGtEQUF3RDtBQUEvQywyR0FBQSxlQUFlLE9BQUE7QUFheEIsb0VBY3dDO0FBYnRDLHFIQUFBLGdCQUFnQixPQUFBO0FBQ2hCLGtIQUFBLGFBQWEsT0FBQTtBQUNiLGtIQUFBLGFBQWEsT0FBQTtBQUNiLDJIQUFBLHNCQUFzQixPQUFBO0FBQ3RCLCtHQUFBLFVBQVUsT0FBQTtBQUNWLGdIQUFBLFdBQVcsT0FBQTtBQUNYLG1IQUFBLGNBQWMsT0FBQTtBQUNkLDRIQUFBLHVCQUF1QixPQUFBO0FBQ3ZCLDBFQUEwRTtBQUMxRSw2RUFBNkU7QUFDN0UsOENBQThDO0FBQzlDLHNIQUFBLGlCQUFpQixPQUFBO0FBQ2pCLGtIQUFBLGFBQWEsT0FBQTtBQTJDZix1REFTb0M7QUFSbEMsdUdBQUEsV0FBVyxPQUFBO0FBQ1gsK0dBQUEsbUJBQW1CLE9BQUE7QUFDbkIsdUdBQUEsV0FBVyxPQUFBO0FBQ1gsMEdBQUEsY0FBYyxPQUFBO0FBQ2QscUdBQUEsU0FBUyxPQUFBO0FBQ1QsbUdBQUEsT0FBTyxPQUFBO0FBQ1Asb0dBQUEsUUFBUSxPQUFBO0FBQ1Isc0dBQUEsVUFBVSxPQUFBO0FBZ0JaLDBEQUE2RjtBQUFwRiwyR0FBQSxXQUFXLE9BQUE7QUFBRSxnSEFBQSxnQkFBZ0IsT0FBQTtBQUFFLGlIQUFBLGlCQUFpQixPQUFBO0FBMkN6RCxpREFlOEI7QUFkNUIsMkdBQUEsZUFBZSxPQUFBO0FBQ2YsNkdBQUEsaUJBQWlCLE9BQUE7QUFDakIsOEdBQUEsa0JBQWtCLE9BQUE7QUFDbEIsdUdBQUEsV0FBVyxPQUFBO0FBQ1gsMEdBQUEsY0FBYyxPQUFBO0FBQ2QsOEdBQUEsa0JBQWtCLE9BQUE7QUFDbEIsOEdBQUEsa0JBQWtCLE9BQUE7QUFDbEIscUhBQUEseUJBQXlCLE9BQUE7QUFDekIsMkdBQUEsZUFBZSxPQUFBO0FBQ2YsdUdBQUEsV0FBVyxPQUFBO0FBQ1gsNkdBQUEsaUJBQWlCLE9BQUE7QUFDakIsaUhBQUEscUJBQXFCLE9BQUE7QUFDckIsdUdBQUEsV0FBVyxPQUFBO0FBQ1gsdUdBQUEsV0FBVyxPQUFBO0FBY2Isc0RBQXdEO0FBQS9DLDJHQUFBLGFBQWEsT0FBQTtBQUV0QixtRUFBbUU7QUFDbkUsaUVBQWlFO0FBQ2pFLGlFQUFpRTtBQUNqRSw0Q0FBNEM7QUFDNUMsOEVBQTBFO0FBQWpFLDJIQUFBLGtCQUFrQixPQUFBO0FBQzNCLDhEQUEwRDtBQUFqRCwyR0FBQSxVQUFVLE9BQUE7QUFDbkIsb0VBQWdFO0FBQXZELGlIQUFBLGFBQWEsT0FBQTtBQVN0QiwwRUFBc0U7QUFBN0QsdUhBQUEsZ0JBQWdCLE9BQUE7QUFVekIsMEVBQXdGO0FBQS9FLHVIQUFBLGdCQUFnQixPQUFBO0FBQUUsdUhBQUEsZ0JBQWdCLE9BQUE7QUFLM0Msb0VBQXVIO0FBQTlHLGlIQUFBLGFBQWEsT0FBQTtBQUFFLGlIQUFBLGFBQWEsT0FBQTtBQUFFLHlIQUFBLHFCQUFxQixPQUFBO0FBQUUsbUhBQUEsZUFBZSxPQUFBO0FBTzdFLDhFQUE4RjtBQUFyRiwySEFBQSxrQkFBa0IsT0FBQTtBQUFFLDJIQUFBLGtCQUFrQixPQUFBO0FBSS9DLHdFQUFvRTtBQUEzRCxxSEFBQSxlQUFlLE9BQUE7QUFJeEIsa0VBQWtGO0FBQXpFLHFIQUFBLGtCQUFrQixPQUFBO0FBQUUsK0dBQUEsWUFBWSxPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBmb290cHJpbnRqcy90cmFjZSDigJQgRXhlY3V0aW9uIHRyYWNpbmcsIGRlYnVnZ2luZywgYW5kIGJhY2t0cmFja2luZyB1dGlsaXRpZXMuXG4gKlxuICogUnVudGltZSBzdGFnZSBJRHMsIGNvbW1pdCBsb2cgcXVlcmllcywgYW5kIHJlY29yZGVyIGJhc2UgY2xhc3Nlcy5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0IHsgcGFyc2VSdW50aW1lU3RhZ2VJZCwgZmluZExhc3RXcml0ZXIsIEtleWVkU3RvcmUsIFNlcXVlbmNlU3RvcmUgfSBmcm9tICdmb290cHJpbnRqcy90cmFjZSc7XG4gKlxuICogLy8gUGFyc2UgYSBydW50aW1lU3RhZ2VJZFxuICogY29uc3QgeyBzdGFnZUlkLCBleGVjdXRpb25JbmRleCB9ID0gcGFyc2VSdW50aW1lU3RhZ2VJZCgnY2FsbC1sbG0jNScpO1xuICpcbiAqIC8vIEJhY2t0cmFjazogd2hvIHdyb3RlICdzeXN0ZW1Qcm9tcHQnIGJlZm9yZSBjb21taXQgYXQgaWR4IDg/XG4gKiBjb25zdCB3cml0ZXIgPSBmaW5kTGFzdFdyaXRlcihjb21taXRMb2csICdzeXN0ZW1Qcm9tcHQnLCA4KTtcbiAqXG4gKiAvLyB2NSBwcmltYXJ5IEFQSTogY29tcG9zZSBhIFN0b3JlIGFzIGEgZmllbGQgKG9uZSBwdXJwb3NlIHBlciByZWNvcmRlcikuXG4gKiAvLyBLZXllZFN0b3JlPFQ+IOKAlCAxOjEgKG9uZSBlbnRyeSBwZXIgc3RlcClcbiAqIGNsYXNzIE15UmVjb3JkZXIge1xuICogICByZWFkb25seSBpZCA9ICdteS1yZWNvcmRlcic7XG4gKiAgIHByaXZhdGUgc3RvcmUgPSBuZXcgS2V5ZWRTdG9yZTxNeUVudHJ5PigpO1xuICogICBvbldyaXRlKGUpIHsgdGhpcy5zdG9yZS5zZXQoZS5ydW50aW1lU3RhZ2VJZCwgeyAuLi4gfSk7IH1cbiAqIH1cbiAqXG4gKiAvLyBTZXF1ZW5jZVN0b3JlPFQ+IOKAlCAxOk4gKG11bHRpcGxlIGVudHJpZXMgcGVyIHN0ZXAsIG9yZGVyaW5nIG1hdHRlcnMpXG4gKiBjbGFzcyBBdWRpdFJlY29yZGVyIHtcbiAqICAgcmVhZG9ubHkgaWQgPSAnYXVkaXQnO1xuICogICBwcml2YXRlIHN0b3JlID0gbmV3IFNlcXVlbmNlU3RvcmU8QXVkaXRFbnRyeT4oKTtcbiAqICAgb25SZWFkKGUpIHsgdGhpcy5zdG9yZS5wdXNoKHsgcnVudGltZVN0YWdlSWQ6IGUucnVudGltZVN0YWdlSWQsIC4uLiB9KTsgfVxuICogfVxuICogYGBgXG4gKi9cblxuLy8gUnVudGltZSBzdGFnZSBJRCDigJQgdW5pcXVlIGV4ZWN1dGlvbiBzdGVwIGlkZW50aWZpZXJzXG5leHBvcnQgdHlwZSB7IENvbW1pdElkeCwgRXhlY3V0aW9uQ291bnRlciwgRXhlY3V0aW9uSW5kZXgsIFJ1bnRpbWVTdGFnZUlkIH0gZnJvbSAnLi9saWIvaWRzL3J1bnRpbWVTdGFnZUlkLmpzJztcbmV4cG9ydCB7XG4gIGJ1aWxkUnVudGltZVN0YWdlSWQsXG4gIGNyZWF0ZUV4ZWN1dGlvbkNvdW50ZXIsXG4gIHBhcnNlUnVudGltZVN0YWdlSWQsXG4gIHNwbGl0U3RhZ2VJZCxcbn0gZnJvbSAnLi9saWIvaWRzL3J1bnRpbWVTdGFnZUlkLmpzJztcblxuLy8gR2VuZXJhdGVkIGJyYW5jaCBzZWdtZW50cyDigJQgdGhlIHN1YmZsb3cgcGF0aCBzZWdtZW50cyBgYWRkUGFyYWxsZWxGb3JFYWNoYFxuLy8gbWludHMgZm9yIGl0cyBicmFuY2hlcyAoYDxzdGFnZUlkPn48aW5kZXg+YCkuIEEgYnJhbmNoIGlzIGFkZHJlc3NlZCBieSB0aGVcbi8vIE9SRElOQVJZIGdyYW1tYXIgYWJvdmUsIHNvIG5vdGhpbmcgaGVyZSBpcyBuZWVkZWQgdG8gUkVBRCBvbmU7IHRoZXNlIGV4aXN0IHNvXG4vLyBhIGNvbnN1bWVyIGNhbiBURUxMIGEgZ2VuZXJhdGVkIGJyYW5jaCBmcm9tIGEgaGFuZC1hdXRob3JlZCBzdWJmbG93ICh0byBsYWJlbFxuLy8gaXQgXCJicmFuY2ggMiBvZiByZXZpZXctY2h1bmtzXCIgaW5zdGVhZCBvZiBhIHN1YmZsb3cgbmFtZSksIGFuZCBzbyB0aGVcbi8vIHJlc2VydmVkIG1hcmtlciBpcyBkaXNjb3ZlcmFibGUgcmF0aGVyIHRoYW4gZm9sa2xvcmUuXG4vLyBEZXNpZ246IGRvY3MvZGVzaWduL2V4ZWN1dGlvbi1jb250cm9sLm1kLlxuZXhwb3J0IHtcbiAgQlJBTkNIX1NFR01FTlRfTUFSS0VSLFxuICBidWlsZEJyYW5jaFNlZ21lbnQsXG4gIGhhc0JyYW5jaFNlZ21lbnRNYXJrZXIsXG4gIGlzQnJhbmNoU2VnbWVudCxcbiAgcGFyc2VCcmFuY2hTZWdtZW50LFxufSBmcm9tICcuL2xpYi9pZHMvYnJhbmNoU2VnbWVudC5qcyc7XG5cbi8vIHdhbGtTdWJmbG93U3BlYyDigJQgZmxhdCBvcmRlcmVkIHRyYXZlcnNhbCBvZiBhIHN1YmZsb3cncyBzdHJ1Y3R1cmVcbi8vIChjb25zdW1lIHZpYSBTdHJ1Y3R1cmVSZWNvcmRlci5vblN1YmZsb3dNb3VudGVkJ3Mgc3ViZmxvd1NwZWMgcGF5bG9hZClcbmV4cG9ydCB0eXBlIHsgV2Fsa2VySXRlbSwgV2Fsa2VyT3B0aW9ucyB9IGZyb20gJy4vbGliL2VuZ2luZS93YWxrU3ViZmxvd1NwZWMuanMnO1xuZXhwb3J0IHsgd2Fsa1N1YmZsb3dTcGVjIH0gZnJvbSAnLi9saWIvZW5naW5lL3dhbGtTdWJmbG93U3BlYy5qcyc7XG5cbi8vIFBhdGggc2VnbWVudHMg4oCUIHRoZSBzdXBwb3J0ZWQgd2F5IHRvIHRha2UgYSBgVHJhY2VFbnRyeS5wYXRoYCBhcGFydC4gUGF0aHNcbi8vIGFyZSBqb2luZWQgd2l0aCBhbiBBU0NJSSBVbml0LVNlcGFyYXRvciAobmV2ZXIgYSBkb3Q6IGEgc3RhdGUga2V5IG1heSBpdHNlbGZcbi8vIGNvbnRhaW4gYSBkb3QsIHNvIGEgZG90IHNlcGFyYXRvciB3b3VsZCBtYWtlIGBbJ2EuYiddYCBhbmQgYFsnYScsJ2InXWBcbi8vIGluZGlzdGluZ3Vpc2hhYmxlKSwgd2hpY2ggaXMgYW4gZW5jb2RpbmcsIG5vdCBhIGRpc3BsYXkgY2hhcmFjdGVyLiBSZW5kZXIgYVxuLy8gcGF0aCB0aHJvdWdoIHRoaXMgaW5zdGVhZCBvZiBzcGxpdHRpbmcgb24gdGhlIGRlbGltaXRlciB5b3Vyc2VsZi5cbmV4cG9ydCB7IHBhdGhTZWdtZW50cyB9IGZyb20gJy4vbGliL21lbW9yeS9wYXRocy5qcyc7XG5cbi8vIFRoZSByZWZ1c2FsIHRoZSBjb21taXQtbG9nIHJlYWRlcnMgcmFpc2UgZm9yIGEgcm93IHdob3NlIHZlcmIgaXMgbm90XG4vLyBzZXQgfCBtZXJnZSB8IGFwcGVuZCB8IGRlbGV0ZSAoYGNvbW1pdFZhbHVlQXRgLCBgYXJyYXlQcm92ZW5hbmNlYCwgYW5kXG4vLyBgYXBwbHlTbWFydE1lcmdlYCBiZWxvdyk6IGEgZm9yZWlnbiBvciBjb3JydXB0ZWQgbG9nIGZhaWxzIGxvdWRseSxcbi8vIG5hbWluZyB0aGUgcm93LCBpbnN0ZWFkIG9mIGJlaW5nIGZvbGRlZCBhcyBhIG1lcmdlLlxuZXhwb3J0IHsgVW5rbm93blZlcmJFcnJvciB9IGZyb20gJy4vbGliL21lbW9yeS92ZXJicy5qcyc7XG5cbi8vIFRoZSByZWNvcmQncyBvd24gc2hhcGVzIOKAlCBvbmUgYnVuZGxlIHBlciBleGVjdXRlZCBzdGFnZSAoYENvbW1pdEJ1bmRsZWApLCBpdHNcbi8vIHJvd3MgKGBUcmFjZUVudHJ5YCkgYW5kIGl0cyB2YWx1ZSBwYXRjaGVzIChgTWVtb3J5UGF0Y2hgKSDigJQgYW5kIHRoZSBvbmUgZm9sZFxuLy8gb2YgYSBidW5kbGUgb250byBhIHN0YXRlIHRoYXQgaGFuZHMgYmFjayBhIGZ1bGx5IGRldGFjaGVkIHJlc3VsdFxuLy8gKGBhcHBseVNtYXJ0TWVyZ2VgLCB0aGUgdmVyYiBsYXcncyBwdWJsaWMgZG9vcikuIEFsc28gb24gYC9hZHZhbmNlZGAgdW50aWwgMTAuMC4wO1xuLy8gYSByZWNvcmQgaXMgV1JJVFRFTiB0aHJvdWdoIGBmb290cHJpbnRqcy93cml0ZWAuIFNlZSBkb2NzL2d1aWRlcy9yZWNvcmQtY29udHJhY3QubWQuXG5leHBvcnQgdHlwZSB7IENvbW1pdEJ1bmRsZSwgTWVtb3J5UGF0Y2gsIFRyYWNlRW50cnkgfSBmcm9tICcuL2xpYi9tZW1vcnkvdHlwZXMuanMnO1xuLy8gVGhlIGV4ZWN1dGlvbiB0cmVlIGFzIHRoZSByZWFkZXJzIHJlYWQgaXQgKEM2KTogd2hhdCBgY29tbWl0U3RvcHNgLCBgdGFnU3RvcHNgIGFuZFxuLy8gYGtleXNSZWFkRnJvbUV4ZWN1dGlvblRyZWVgIHRha2Ug4oCUIGEgYFN0YWdlU25hcHNob3RgIGlzIG9uZSwgYW5kIHNvIGlzIGEgc3RvcmVkIHRyZWUuXG5leHBvcnQgdHlwZSB7IEV4ZWN1dGlvblRyZWUgfSBmcm9tICcuL2xpYi9tZW1vcnkvdHlwZXMuanMnO1xuZXhwb3J0IHsgYXBwbHlTbWFydE1lcmdlIH0gZnJvbSAnLi9saWIvbWVtb3J5L3ZlcmJzLmpzJztcblxuLy8gQ29tbWl0IGxvZyBxdWVyaWVzIOKAlCB0eXBlZCB1dGlsaXRpZXMgZm9yIGJhY2t0cmFja2luZy5cbi8vIGNvbW1pdFZhbHVlQXQgcmVjb25zdHJ1Y3RzIHRoZSBGVUxMIHZhbHVlIG9mIGEga2V5IGF0IGEgY29tbWl0IGluZGV4IOKAlFxuLy8gcmVxdWlyZWQgdW5kZXIgYGNvbW1pdFZhbHVlczogJ2RlbHRhJ2AgKCMxM2MtQiksIHdoZXJlIGFuIGBhcHBlbmRgXG4vLyBidW5kbGUncyBgb3ZlcndyaXRlW2tleV1gIGhvbGRzIG9ubHkgdGhlIHRhaWwuXG5leHBvcnQgdHlwZSB7XG4gIFZhbHVlQmFzaXMsXG4gIFZhbHVlQmFzaXNPcHRpb25zLFxuICBWYWx1ZVdpdGhCYXNpcyxcbiAgV3JpdGVyQmFzaXMsXG4gIFdyaXRlcldpdGhCYXNpcyxcbn0gZnJvbSAnLi9saWIvbWVtb3J5L2NvbW1pdExvZ1V0aWxzLmpzJztcbmV4cG9ydCB7XG4gIGJ1aWxkQ29tbWl0SW5kZXgsXG4gIGNvbW1pdEluZGV4T2YsXG4gIGNvbW1pdFZhbHVlQXQsXG4gIGNvbW1pdFZhbHVlQXRXaXRoQmFzaXMsXG4gIGZpbmRDb21taXQsXG4gIGZpbmRDb21taXRzLFxuICBmaW5kTGFzdFdyaXRlcixcbiAgZmluZExhc3RXcml0ZXJXaXRoQmFzaXMsXG4gIC8vIE9uZSBzdGFnZSwgb25lIHJlY29yZCAoRjgsIDkuMzkuMCk6IGRvZXMgYSBsb2cgcmVjb3JkIGl0cyBjb250aW51YXRpb25zXG4gIC8vIChgQ29tbWl0QnVuZGxlLnBoYXNlYCksIGFuZCDigJQgZm9yIGEgbG9nIHdyaXR0ZW4gYmVmb3JlIGl0IOKAlCB0aGUgT05FIGxlZ2FjeVxuICAvLyByZWFkZXIgdGhhdCBpbmZlcnMgdGhlbSB0aGUgd2F5IDkuMzguMCBkaWQuXG4gIGluZmVyTGVnYWN5UGhhc2VzLFxuICByZWNvcmRzUGhhc2VzLFxufSBmcm9tICcuL2xpYi9tZW1vcnkvY29tbWl0TG9nVXRpbHMuanMnO1xuZXhwb3J0IHR5cGUgeyBDb21taXRQaGFzZSB9IGZyb20gJy4vbGliL21lbW9yeS90eXBlcy5qcyc7XG5cbi8vIOKUgOKUgCB0aW1lLXRyYXZlbC8g4oCUIHRoZSBSRUFERVInUyBjdXJzb3Igb3ZlciBhIGZpbmlzaGVkIHRyYWNlIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gQSBUcmFjZSBpcyB3aGF0IHRoZSBydW4gcmVjb3JkZWQ7IHRpbWUgdHJhdmVsIGlzIGEgY3Vyc29yIG92ZXIgaXQgd2l0aCBhXG4vLyBGb2xkIGF0IGVhY2ggc3RvcC4gSXQgaXMgTk9UIHRoZSBlbmdpbmUncyB3YWxrIGFuZCBuZXZlciBiZWNvbWVzIGEgc2Vjb25kXG4vLyBsaXZlIGN1cnNvcjogZXZlcnl0aGluZyBiZWxvdyBpcyBhIHJlYWQtdGltZSBxdWVyeSBvdmVyIGFscmVhZHktY29sbGVjdGVkXG4vLyBkYXRhLlxuLy9cbi8vIGBzdGF0ZUF0KHNuYXBzaG90IHwgc3VidHJlZSwgY29tbWl0SWR4KWAgaXMgdGhlIGZvbGQg4oCUIHRoZSBydW4nc1xuLy8gYGluaXRpYWxTdGF0ZWAgcmVwbGF5ZWQgdGhyb3VnaCBgY29tbWl0TG9nWzAuLmNvbW1pdElkeF1gIHdpdGggdGhlIFNBTUUgdmVyYlxuLy8gc3dpdGNoIHRoZSBsaXZlIGNvbW1pdCB1c2VzLCByZXR1cm5lZCBkZXRhY2hlZCBhbmQgZnJvemVuLCBhbmQgaG9uZXN0IGFib3V0XG4vLyBob3cgaXQgd2FzIGRlcml2ZWQgKGBiYXNpc2ApIGFuZCB3aGVyZSB0aGUgbG9nIHdhcyBzY3J1YmJlZCAoYHJlZGFjdGVkYCkuXG4vL1xuLy8gYHRpbWVUcmF2ZWwoc25hcHNob3QpYCBpcyB0aGUgY3Vyc29yOiBzdG9wcywgcHJldi9uZXh0L2p1bXBUbywgbWFya3MgYmVzaWRlXG4vLyB0aGUgbG9nLCBhbmQgYGRyaWxsKG1vdW50KWAgaW50byBhIHN1YmZsb3cncyBvd24gbG9nIOKAlCB0aGUgc2FtZSBpbnRlcmZhY2UsXG4vLyBpdHMgb3duIGJhc2UuIEhvdyBzdG9wcyBhcmUgREVSSVZFRCBpcyB0aGUgc2VhbSAoYFRpbWVUcmF2ZWxTdHJhdGVneWApO1xuLy8gZm9vdHByaW50anMgc2hpcHMgYGNvbW1pdFN0b3BzYCAob25lIHN0b3AgcGVyIGV4ZWN1dGVkIHN0YWdlKSBiZWNhdXNlIHRoYXRcbi8vIGlzIHRoZSBvbmx5IHN0b3AgZ3JhbW1hciB0aGUgc3Vic3RyYXRlIGl0c2VsZiBrbm93cyDigJQgYW5kLCBzaW5jZSA5LjIxLjAsXG4vLyBgdGFnU3RvcHModGFncz8pYDogdGhlIHN0b3BzIGEgY2hhcnQgREVDTEFSRUQgYXQgYnVpbGQgdGltZSAoYC50YWcoKWApLFxuLy8gcmVhZCBiYWNrIG9mZiBgQ29tbWl0QnVuZGxlLnRhZ3NgLCBzbyBhIHN0b3JlZCByZWNvcmRpbmcgc2NydWJzIGJ5IGl0cyBvd25cbi8vIG1pbGVzdG9uZXMgd2l0aCBubyBpZCBjb252ZW50aW9ucyBpbiB0aGUgcmVhZGVyLlxuLy8gU2VlIHNyYy9saWIvdGltZS10cmF2ZWwvUkVBRE1FLm1kLlxuZXhwb3J0IHR5cGUge1xuICBBeGlzUmVmdXNhbCxcbiAgQXhpc1NwbGl0LFxuICBCb29rZW5kZWRBeGlzLFxuICBGb2xkQmFzaXMsXG4gIEZvbGRlZFN0YXRlLFxuICBGb2xkU291cmNlLFxuICBMb2dHYXAsXG4gIE1hcmssXG4gIE1vdmUsXG4gIE1vdmVSZWZ1c2FsLFxuICBTdG9wLFxuICBTdG9wRmlsdGVyLFxuICBTdG9wS2luZCxcbiAgVGltZVRyYXZlbCxcbiAgVGltZVRyYXZlbE9wdGlvbnMsXG4gIFRpbWVUcmF2ZWxTb3VyY2UsXG4gIFRpbWVUcmF2ZWxTdHJhdGVneSxcbn0gZnJvbSAnLi9saWIvdGltZS10cmF2ZWwvaW5kZXguanMnO1xuZXhwb3J0IHtcbiAgY29tbWl0U3RvcHMsXG4gIGNvbW1pdFN0b3BzU3RyYXRlZ3ksXG4gIGZpbHRlclN0b3BzLFxuICBpc0NvbW1pdEJ1bmRsZSxcbiAgc3BsaXRBeGlzLFxuICBzdGF0ZUF0LFxuICB0YWdTdG9wcyxcbiAgdGltZVRyYXZlbCxcbn0gZnJvbSAnLi9saWIvdGltZS10cmF2ZWwvaW5kZXguanMnO1xuXG4vLyBDYXVzYWwgY2hhaW4g4oCUIGJhY2t3YXJkIHByb2dyYW0gc2xpY2luZyBvbiBjb21taXQgbG9nIChEQUcpLlxuLy8gUkZDLTAwMyBEMzogYENhdXNhbEVkZ2VgICh0eXBlZC9rZXllZC93ZWlnaHRlZCBwYXJlbnQgbGlua3Mgb25cbi8vIGBDYXVzYWxOb2RlLnBhcmVudEVkZ2VzYCkgKyB0aGUgYGNvbnRyb2xEZXBzYCBvcHRpb24gKGBDb250cm9sRGVwTG9va3VwYClcbi8vIGFkZCBjb250cm9sLWRlcGVuZGVuY2UgZWRnZXMgdG8gdGhlIHNsaWNlLlxuZXhwb3J0IHR5cGUge1xuICBDYXVzYWxDaGFpbk9wdGlvbnMsXG4gIENhdXNhbEVkZ2UsXG4gIENhdXNhbE5vZGUsXG4gIENvbnRyb2xEZXBlbmRlbmN5LFxuICBDb250cm9sRGVwTG9va3VwLFxuICBFZGdlV2VpZ2hlcixcbiAgS2V5c1JlYWRMb29rdXAsXG59IGZyb20gJy4vbGliL21lbW9yeS9iYWNrdHJhY2suanMnO1xuZXhwb3J0IHsgY2F1c2FsQ2hhaW4sIGZsYXR0ZW5DYXVzYWxEQUcsIGZvcm1hdENhdXNhbENoYWluIH0gZnJvbSAnLi9saWIvbWVtb3J5L2JhY2t0cmFjay5qcyc7XG4vLyBSRkMtMDAzIEQyIOKAlCBob25lc3R5IG1hcmtlcnM6IHRoZSB1bnRyYWNrZWQgcmVhZCBwYXRocyBhIHN0YWdlIGNvbnN1bWVkXG4vLyAoYENvbW1pdEJ1bmRsZS51bnRyYWNrZWRTb3VyY2VzYCDihpIgYENhdXNhbE5vZGUuaW5jb21wbGV0ZVNvdXJjZXNgKS5cbmV4cG9ydCB0eXBlIHsgVW50cmFja2VkU291cmNlIH0gZnJvbSAnLi9saWIvbWVtb3J5L3R5cGVzLmpzJztcblxuLy8g4pSA4pSAIHNsaWNlLyDigJQgdmFyaWFibGUtZmlyc3Qgc2xpY2luZywgYm90aCBkaXJlY3Rpb25zICh0cmlhZ2UgcXVlcnkgbGF5ZXIpIOKUgOKUgFxuLy8gT25lIGNvbnRyYWN0IGZvciBldmVyeSB0cmlhZ2Ugc3VyZmFjZSAoVUkgcGFuZWwsIExMTSB0b29sLCBvZmZsaW5lXG4vLyBhdXRvcHN5IGFnZW50KTogdmFyaWFibGUgaW4g4oaSIHNsaWNlIG91dC5cbi8vXG4vLyBCQUNLV0FSRCDigJQgYHNsaWNlRm9yS2V5YCBhbmNob3JzIGF0IHRoZSBrZXkncyBsYXN0IHdyaXRlciB0aGVuIGRlbGVnYXRlc1xuLy8gdG8gY2F1c2FsQ2hhaW47IGBhcnJheVByb3ZlbmFuY2VgIC8gYGVsZW1lbnRQcm92ZW5hbmNlYCAoYXBwZW5kLWZvbGQpXG4vLyBhbnN3ZXIgZWxlbWVudC1sZXZlbCBxdWVzdGlvbnMgbGlrZSBcIndoaWNoIHN0YWdlIHByb2R1Y2VkIGhpc3RvcnlbN10/XCIg4oCUXG4vLyB0aGUgZml4IGZvciB0aGUgYWdlbnQgbWVnYS1rZXkgcHJvYmxlbSwgd2l0aCBob25lc3QgYXR0cmlidXRpb24gbGFiZWxzLlxuLy9cbi8vIEZPUldBUkQg4oCUIGBmb3J3YXJkU2xpY2VGb3JLZXlgIHdhbGtzIHRoZSBvdGhlciB3YXk6IGZyb20gYSB3cml0ZSwgdGhyb3VnaFxuLy8gdGhlIHZhbHVlJ3MgTElWRSBSQU5HRSAoaXQgbGl2ZXMgdW50aWwgdGhlIGtleSdzIG5leHQgd3JpdGUpLCB0byBldmVyeVxuLy8gc3RhZ2UgdGhhdCByZWFkIGl0IGFuZCBldmVyeSB3cml0ZSB0aG9zZSByZWFkcyBmZWQuIGBrZXlUaW1lbGluZWAgaXMgdGhlXG4vLyBmbGF0IGNocm9ub2xvZ2ljYWwgdmlldyBvZiB0aGUgc2FtZSBmYWN0cy4gRmVkIGVkZ2VzIGFyZSBFWEFDVCB1bmRlciB0aGVcbi8vIGB3cml0ZVByb3ZlbmFuY2U6ICdyZWFkcy1wcmVmaXgnYCBkaWFsIGFuZCBzdGFtcGVkIENPTlNFUlZBVElWRSB3aXRob3V0XG4vLyBpdCDigJQgbmV2ZXIgdGhlIG90aGVyIHdheSByb3VuZC4gU2VlIHNyYy9saWIvc2xpY2UvUkVBRE1FLm1kLlxuZXhwb3J0IHR5cGUge1xuICBBcnJheVByb3ZlbmFuY2UsXG4gIEF0dHJpYnV0aW9uQmFzaXMsXG4gIEVsZW1lbnRCaXJ0aCxcbiAgRmVkQmFzaXMsXG4gIEZvcndhcmRFZGdlLFxuICBGb3J3YXJkTm9kZSxcbiAgRm9yd2FyZFJlYWQsXG4gIEZvcndhcmRTbGljZSxcbiAgRm9yd2FyZFNsaWNlSlNPTixcbiAgSG9uZXN0eU5vdGUsXG4gIEhvbmVzdHlOb3RlQ29kZSxcbiAgS2V5TW9tZW50LFxuICBLZXlzUmVhZFNvdXJjZSxcbiAgS2V5VGltZWxpbmUsXG4gIE1pc3NpbmdQcm92ZW5hbmNlUmVhc29uLFxuICBNaXNzaW5nU2xpY2VSZWFzb24sXG4gIFJlYWRzQ292ZXJhZ2UsXG4gIFNsaWNlSlNPTixcbiAgU3RhdGVLZXksXG4gIFZhcmlhYmxlU2xpY2UsXG59IGZyb20gJy4vbGliL3NsaWNlL2luZGV4LmpzJztcbmV4cG9ydCB0eXBlIHsgRm9yd2FyZFNsaWNlRm9yS2V5T3B0aW9ucywgS2V5VGltZWxpbmVPcHRpb25zLCBTbGljZUZvcktleU9wdGlvbnMgfSBmcm9tICcuL2xpYi9zbGljZS9pbmRleC5qcyc7XG5leHBvcnQge1xuICBhcnJheVByb3ZlbmFuY2UsXG4gIGVsZW1lbnRQcm92ZW5hbmNlLFxuICBmb3JtYXRGb3J3YXJkU2xpY2UsXG4gIGZvcm1hdFNsaWNlLFxuICBmb3JtYXRUaW1lbGluZSxcbiAgZm9yd2FyZFNsaWNlRm9yS2V5LFxuICBmb3J3YXJkU2xpY2VUb0pTT04sXG4gIGtleXNSZWFkRnJvbUV4ZWN1dGlvblRyZWUsXG4gIGtleXNSZWFkRnJvbU1hcCxcbiAga2V5VGltZWxpbmUsXG4gIG5vcm1hbGlzZVN0YXRlS2V5LFxuICByZXNvbHZlS2V5c1JlYWRTb3VyY2UsXG4gIHNsaWNlRm9yS2V5LFxuICBzbGljZVRvSlNPTixcbn0gZnJvbSAnLi9saWIvc2xpY2UvaW5kZXguanMnO1xuXG4vLyDilIDilIAgaG9uZXN0eSDigJQgdGhlIE9ORSByZWdpc3RyeSBvZiB3aGF0IGEgcmVhZGVyIGNhbm5vdCBzZWUg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBUaGUgaG9uZXN0eSBzaWduYWxzIHRoaXMgZG9vcidzIHJlYWRlcnMgcHJvZHVjZSDigJQgYSBzbGljZSdzIGBIb25lc3R5Tm90ZS5jb2RlYCBhbmQgYG1pc3NpbmdgXG4vLyByZWFzb24sIGEgZmVkIGVkZ2UncyBhbmQgYW4gZWxlbWVudCBiaXJ0aCdzIGBiYXNpc2AsIGEgZm9sZCdzIGBiYXNpc2AgYW5kIGByZWRhY3RlZGAgcGF0aHMsIGFcbi8vIGBMb2dHYXBgLCBhIGNhdXNhbCBub2RlJ3MgYGluY29tcGxldGVTb3VyY2VzYCBhbmQgYHRydW5jYXRlZGAg4oCUIGVhY2ggaGFzIGEgY29kZSBoZXJlIGFuZCB0aGUgT05FXG4vLyBzZW50ZW5jZSB0aGF0IHNheXMgd2hhdCBpdCBtZWFucywgc28gYSBsZW5zIG9yIGFuIGFnZW50IHRvb2wgZXhwbGFpbnMgYW55IG9mIHRoZW0gZnJvbSBvbmUgcGxhY2Vcbi8vIGluc3RlYWQgb2Yga2VlcGluZyBpdHMgb3duIHRhYmxlLiBUaGUgdW5pb25zIG9mIHRob3NlIGNvZGVzIGV4cG9ydGVkIGFib3ZlIChgSG9uZXN0eU5vdGVDb2RlYCxcbi8vIGBNaXNzaW5nU2xpY2VSZWFzb25gLCBgTWlzc2luZ1Byb3ZlbmFuY2VSZWFzb25gLCBgRmVkQmFzaXNgLCBgQXR0cmlidXRpb25CYXNpc2AsIGBGb2xkQmFzaXNgKSBhcmVcbi8vIHN1YnNldHMgb2YgYEhvbmVzdHlDb2RlYCwgYW5kIHRlc3QvYXJjaGl0ZWN0dXJlL2hvbmVzdHktdm9jYWJ1bGFyeS50ZXN0LnRzIGZhaWxzIG9uIGEgdW5pb24gb2Zcbi8vIHN0cmluZyBsaXRlcmFscyB0aGlzIGRvb3IgZXhwb3J0cyB0aGF0IGlzIG5laXRoZXIgcmVnaXN0ZXJlZCBub3IgbmFtZWQgdGhlcmUgYXMgYSBkaWZmZXJlbnQga2luZFxuLy8gb2Ygd29yZC4gU2VlIHNyYy9saWIvbWVtb3J5L1JFQURNRS5tZC5cbmV4cG9ydCB0eXBlIHsgSG9uZXN0eUNvZGUgfSBmcm9tICcuL2xpYi9tZW1vcnkvaG9uZXN0eS5qcyc7XG5leHBvcnQgeyBIT05FU1RZX0NPREVTIH0gZnJvbSAnLi9saWIvbWVtb3J5L2hvbmVzdHkuanMnO1xuXG4vLyDilIDilIAgdjUgU3RvcmVzIChjb25jcmV0ZSwgY29tcG9zYWJsZSDigJQgcHJpbWFyeSByZWNvcmRlciBBUEkpIOKUgOKUgOKUgOKUgOKUgFxuLy8gQ29tcG9zZSB0aGVzZSB2aWEgYG5ldyBTdG9yZTxUPigpYCBhcyBhIGZpZWxkIG9uIHlvdXIgcmVjb3JkZXJcbi8vIGNsYXNzLiBPbmUgcHVycG9zZSBwZXIgcmVjb3JkZXI6IHN0b3JlcyBhcmUgc3RvcmFnZTsgcmVjb3JkZXJzXG4vLyBhcmUgZXZlbnQtaG9vayBpbnRlcmZhY2UgaW1wbGVtZW50YXRpb25zLlxuZXhwb3J0IHsgQm91bmRhcnlTdGF0ZVN0b3JlIH0gZnJvbSAnLi9saWIvcmVjb3JkZXIvQm91bmRhcnlTdGF0ZVN0b3JlLmpzJztcbmV4cG9ydCB7IEtleWVkU3RvcmUgfSBmcm9tICcuL2xpYi9yZWNvcmRlci9LZXllZFN0b3JlLmpzJztcbmV4cG9ydCB7IFNlcXVlbmNlU3RvcmUgfSBmcm9tICcuL2xpYi9yZWNvcmRlci9TZXF1ZW5jZVN0b3JlLmpzJztcblxuLy8g4pSA4pSAIHY1LjEgQ29tbWl0IGdyb3VwaW5nIHByaW1pdGl2ZSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIEludGVydmFsIGluZGV4IG92ZXIgY29tbWl0IGluZGljZXMuIEJ1aWx0IGluY3JlbWVudGFsbHkgZHVyaW5nXG4vLyB0cmF2ZXJzYWw6IG9wZW4oKSBvbiBib3VuZGFyeSBlbnRyeSwgY2xvc2UoKSBvbiBleGl0LiBRdWVyeSBhdCBhbnlcbi8vIGNvbW1pdCBwb3NpdGlvbiB3aXRoIGVuY2xvc2luZygpL292ZXJsYXBwaW5nKCkuIEdlbmVyaWMgb3ZlciBUTGFiZWxcbi8vIOKAlCBmb290cHJpbnRqcyBvd25zIFpFUk8ga25vd2xlZGdlIG9mIHdoYXQgY29uc3VtZXJzIHVzZSBhcyBsYWJlbHMuXG4vLyBTZWUgZG9jcy9kZXNpZ24vY29tbWl0LXJhbmdlLWluZGV4Lm1kIGZvciB0aGUgZnVsbCBjb250cmFjdC5cbmV4cG9ydCB0eXBlIHsgUmFuZ2VFbnRyeSwgUmFuZ2VUb2tlbiB9IGZyb20gJy4vbGliL3JlY29yZGVyL0NvbW1pdFJhbmdlSW5kZXguanMnO1xuZXhwb3J0IHsgQ29tbWl0UmFuZ2VJbmRleCB9IGZyb20gJy4vbGliL3JlY29yZGVyL0NvbW1pdFJhbmdlSW5kZXguanMnO1xuXG4vLyBUb3BvbG9neVJlY29yZGVyIOKAlCBjb21wb3NpdGlvbiBncmFwaCBhY2N1bXVsYXRvciAoc3ViZmxvd3MgKyBjb250cm9sLWZsb3cgZWRnZXMpXG5leHBvcnQgdHlwZSB7XG4gIFRvcG9sb2d5LFxuICBUb3BvbG9neUVkZ2UsXG4gIFRvcG9sb2d5SW5jb21pbmdLaW5kLFxuICBUb3BvbG9neU5vZGUsXG4gIFRvcG9sb2d5UmVjb3JkZXJPcHRpb25zLFxufSBmcm9tICcuL2xpYi9yZWNvcmRlci9Ub3BvbG9neVJlY29yZGVyLmpzJztcbmV4cG9ydCB7IFRvcG9sb2d5UmVjb3JkZXIsIHRvcG9sb2d5UmVjb3JkZXIgfSBmcm9tICcuL2xpYi9yZWNvcmRlci9Ub3BvbG9neVJlY29yZGVyLmpzJztcblxuLy8gSW5PdXRSZWNvcmRlciDigJQgY2hhcnQgaW4vb3V0IHN0cmVhbSAoZW50cnkvZXhpdCBwYWlycyBhdCBldmVyeSBjaGFydCBib3VuZGFyeSxcbi8vIGluY2x1ZGluZyB0aGUgdG9wLWxldmVsIHJ1biBhbmQgZXZlcnkgc3ViZmxvdylcbmV4cG9ydCB0eXBlIHsgSW5PdXRFbnRyeSwgSW5PdXRQaGFzZSwgSW5PdXRSZWNvcmRlck9wdGlvbnMgfSBmcm9tICcuL2xpYi9yZWNvcmRlci9Jbk91dFJlY29yZGVyLmpzJztcbmV4cG9ydCB7IEluT3V0UmVjb3JkZXIsIGluT3V0UmVjb3JkZXIsIFJPT1RfUlVOVElNRV9TVEFHRV9JRCwgUk9PVF9TVUJGTE9XX0lEIH0gZnJvbSAnLi9saWIvcmVjb3JkZXIvSW5PdXRSZWNvcmRlci5qcyc7XG5cbi8vIENvbnRyb2xEZXBSZWNvcmRlciDigJQgY29udHJvbC1kZXBlbmRlbmNlIHRyYWNraW5nIChSRkMtMDAzIEQ1KTogcmVjb3Jkc1xuLy8gb25EZWNpc2lvbi9vblNlbGVjdGVkICsgdGhlIEQxIHJ1bnRpbWUgYW5jZXN0b3IgY2hhaW4sIGFuc3dlcnMgXCJ3aGljaFxuLy8gZGVjaXNpb24gYWxsb3dlZCB0aGlzIHN0YWdlIHRvIHJ1bj9cIiDigJQgdGhlIGJ1aWx0LWluIHByb2R1Y2VyIGZvclxuLy8gY2F1c2FsQ2hhaW4ncyBgY29udHJvbERlcHNgIG9wdGlvbi5cbmV4cG9ydCB0eXBlIHsgQ29udHJvbERlY2lzaW9uUmVjb3JkLCBDb250cm9sRGVwUmVjb3JkZXJPcHRpb25zIH0gZnJvbSAnLi9saWIvcmVjb3JkZXIvQ29udHJvbERlcFJlY29yZGVyLmpzJztcbmV4cG9ydCB7IENvbnRyb2xEZXBSZWNvcmRlciwgY29udHJvbERlcFJlY29yZGVyIH0gZnJvbSAnLi9saWIvcmVjb3JkZXIvQ29udHJvbERlcFJlY29yZGVyLmpzJztcblxuLy8gUXVhbGl0eVJlY29yZGVyIOKAlCBwZXItc3RlcCBxdWFsaXR5IHNjb3Jpbmcgd2l0aCBiYWNrdHJhY2tpbmdcbmV4cG9ydCB0eXBlIHsgUXVhbGl0eUVudHJ5LCBRdWFsaXR5UmVjb3JkZXJPcHRpb25zLCBRdWFsaXR5U2NvcmluZ0ZuIH0gZnJvbSAnLi9saWIvcmVjb3JkZXIvUXVhbGl0eVJlY29yZGVyLmpzJztcbmV4cG9ydCB7IFF1YWxpdHlSZWNvcmRlciB9IGZyb20gJy4vbGliL3JlY29yZGVyL1F1YWxpdHlSZWNvcmRlci5qcyc7XG5cbi8vIHF1YWxpdHlUcmFjZSDigJQgUXVhbGl0eSBTdGFjayBUcmFjZSAoYmFja3RyYWNrIGZyb20gbG93LXNjb3Jpbmcgc3RlcHMpXG5leHBvcnQgdHlwZSB7IFF1YWxpdHlGcmFtZSwgUXVhbGl0eVN0YWNrVHJhY2UgfSBmcm9tICcuL2xpYi9yZWNvcmRlci9xdWFsaXR5VHJhY2UuanMnO1xuZXhwb3J0IHsgZm9ybWF0UXVhbGl0eVRyYWNlLCBxdWFsaXR5VHJhY2UgfSBmcm9tICcuL2xpYi9yZWNvcmRlci9xdWFsaXR5VHJhY2UuanMnO1xuIl19
|
|
36
|
+
var SequenceStore_js_1 = require("./lib/recorder/SequenceStore.js");
|
|
37
|
+
Object.defineProperty(exports, "SequenceStore", { enumerable: true, get: function () { return SequenceStore_js_1.SequenceStore; } });
|
|
38
|
+
var TopologyRecorder_js_1 = require("./lib/recorder/TopologyRecorder.js");
|
|
39
|
+
Object.defineProperty(exports, "TopologyRecorder", { enumerable: true, get: function () { return TopologyRecorder_js_1.TopologyRecorder; } });
|
|
40
|
+
Object.defineProperty(exports, "topologyRecorder", { enumerable: true, get: function () { return TopologyRecorder_js_1.topologyRecorder; } });
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHJhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBR0gsc0VBQWtFO0FBQXpELHFIQUFBLGVBQWUsT0FBQTtBQUN4QiwrREFNb0M7QUFMbEMseUhBQUEscUJBQXFCLE9BQUE7QUFDckIsc0hBQUEsa0JBQWtCLE9BQUE7QUFDbEIsMEhBQUEsc0JBQXNCLE9BQUE7QUFDdEIsbUhBQUEsZUFBZSxPQUFBO0FBQ2Ysc0hBQUEsa0JBQWtCLE9BQUE7QUFFcEIsOEVBQTBFO0FBQWpFLDJIQUFBLGtCQUFrQixPQUFBO0FBRTNCLDhFQUE4RjtBQUFyRiwySEFBQSxrQkFBa0IsT0FBQTtBQUFFLDJIQUFBLGtCQUFrQixPQUFBO0FBRS9DLG9FQUF1SDtBQUE5RyxpSEFBQSxhQUFhLE9BQUE7QUFBRSxpSEFBQSxhQUFhLE9BQUE7QUFBRSx5SEFBQSxxQkFBcUIsT0FBQTtBQUFFLG1IQUFBLGVBQWUsT0FBQTtBQUM3RSw4REFBMEQ7QUFBakQsMkdBQUEsVUFBVSxPQUFBO0FBRW5CLHdFQUFvRTtBQUEzRCxxSEFBQSxlQUFlLE9BQUE7QUFFeEIsa0VBQWtGO0FBQXpFLHFIQUFBLGtCQUFrQixPQUFBO0FBQUUsK0dBQUEsWUFBWSxPQUFBO0FBQ3pDLG9FQUFnRTtBQUF2RCxpSEFBQSxhQUFhLE9BQUE7QUFRdEIsMEVBQXdGO0FBQS9FLHVIQUFBLGdCQUFnQixPQUFBO0FBQUUsdUhBQUEsZ0JBQWdCLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGZvb3RwcmludGpzL3RyYWNlIOKAlCByZWNvcmRlciBzdG9yZXMsIHRvcG9sb2d5LCBjaGFydCBib3VuZGFyaWVzIGFuZCBjb250cm9sIGRlcGVuZGVuY2llcy5cbiAqXG4gKiBSZWNvcmQgcmVhZGVycywgdHlwZXMgYW5kIHJ1bnRpbWUtSUQgZ3JhbW1hciBiZWxvbmcgdG8gYGZvb3R0cmFjZWA7IHJlY29yZCBwYXRoIGhlbHBlcnMgYmVsb25nXG4gKiB0byBgZm9vdHRyYWNlL3BhdGhzYCwgYW5kIHJlY29yZCB3cml0ZXJzIHRvIGBmb290dHJhY2Uvd3JpdGVgLiBUaGlzIGRvb3IgZXhwb3J0cyBvbmx5IGVuZ2luZS1vd25lZFxuICogb2JzZXJ2ZXIgdG9vbHMuIFJlY29yZCBzeW1ib2xzIGFyZSBuZXZlciByZS1leHBvcnRlZCBhY3Jvc3MgdGhlIHBhY2thZ2UgYm91bmRhcnkuXG4gKi9cblxuZXhwb3J0IHR5cGUgeyBXYWxrZXJJdGVtLCBXYWxrZXJPcHRpb25zIH0gZnJvbSAnLi9saWIvZW5naW5lL3dhbGtTdWJmbG93U3BlYy5qcyc7XG5leHBvcnQgeyB3YWxrU3ViZmxvd1NwZWMgfSBmcm9tICcuL2xpYi9lbmdpbmUvd2Fsa1N1YmZsb3dTcGVjLmpzJztcbmV4cG9ydCB7XG4gIEJSQU5DSF9TRUdNRU5UX01BUktFUixcbiAgYnVpbGRCcmFuY2hTZWdtZW50LFxuICBoYXNCcmFuY2hTZWdtZW50TWFya2VyLFxuICBpc0JyYW5jaFNlZ21lbnQsXG4gIHBhcnNlQnJhbmNoU2VnbWVudCxcbn0gZnJvbSAnLi9saWIvaWRzL2JyYW5jaFNlZ21lbnQuanMnO1xuZXhwb3J0IHsgQm91bmRhcnlTdGF0ZVN0b3JlIH0gZnJvbSAnLi9saWIvcmVjb3JkZXIvQm91bmRhcnlTdGF0ZVN0b3JlLmpzJztcbmV4cG9ydCB0eXBlIHsgQ29udHJvbERlY2lzaW9uUmVjb3JkLCBDb250cm9sRGVwUmVjb3JkZXJPcHRpb25zIH0gZnJvbSAnLi9saWIvcmVjb3JkZXIvQ29udHJvbERlcFJlY29yZGVyLmpzJztcbmV4cG9ydCB7IENvbnRyb2xEZXBSZWNvcmRlciwgY29udHJvbERlcFJlY29yZGVyIH0gZnJvbSAnLi9saWIvcmVjb3JkZXIvQ29udHJvbERlcFJlY29yZGVyLmpzJztcbmV4cG9ydCB0eXBlIHsgSW5PdXRFbnRyeSwgSW5PdXRQaGFzZSwgSW5PdXRSZWNvcmRlck9wdGlvbnMgfSBmcm9tICcuL2xpYi9yZWNvcmRlci9Jbk91dFJlY29yZGVyLmpzJztcbmV4cG9ydCB7IEluT3V0UmVjb3JkZXIsIGluT3V0UmVjb3JkZXIsIFJPT1RfUlVOVElNRV9TVEFHRV9JRCwgUk9PVF9TVUJGTE9XX0lEIH0gZnJvbSAnLi9saWIvcmVjb3JkZXIvSW5PdXRSZWNvcmRlci5qcyc7XG5leHBvcnQgeyBLZXllZFN0b3JlIH0gZnJvbSAnLi9saWIvcmVjb3JkZXIvS2V5ZWRTdG9yZS5qcyc7XG5leHBvcnQgdHlwZSB7IFF1YWxpdHlFbnRyeSwgUXVhbGl0eVJlY29yZGVyT3B0aW9ucywgUXVhbGl0eVNjb3JpbmdGbiB9IGZyb20gJy4vbGliL3JlY29yZGVyL1F1YWxpdHlSZWNvcmRlci5qcyc7XG5leHBvcnQgeyBRdWFsaXR5UmVjb3JkZXIgfSBmcm9tICcuL2xpYi9yZWNvcmRlci9RdWFsaXR5UmVjb3JkZXIuanMnO1xuZXhwb3J0IHR5cGUgeyBRdWFsaXR5RnJhbWUsIFF1YWxpdHlTdGFja1RyYWNlIH0gZnJvbSAnLi9saWIvcmVjb3JkZXIvcXVhbGl0eVRyYWNlLmpzJztcbmV4cG9ydCB7IGZvcm1hdFF1YWxpdHlUcmFjZSwgcXVhbGl0eVRyYWNlIH0gZnJvbSAnLi9saWIvcmVjb3JkZXIvcXVhbGl0eVRyYWNlLmpzJztcbmV4cG9ydCB7IFNlcXVlbmNlU3RvcmUgfSBmcm9tICcuL2xpYi9yZWNvcmRlci9TZXF1ZW5jZVN0b3JlLmpzJztcbmV4cG9ydCB0eXBlIHtcbiAgVG9wb2xvZ3ksXG4gIFRvcG9sb2d5RWRnZSxcbiAgVG9wb2xvZ3lJbmNvbWluZ0tpbmQsXG4gIFRvcG9sb2d5Tm9kZSxcbiAgVG9wb2xvZ3lSZWNvcmRlck9wdGlvbnMsXG59IGZyb20gJy4vbGliL3JlY29yZGVyL1RvcG9sb2d5UmVjb3JkZXIuanMnO1xuZXhwb3J0IHsgVG9wb2xvZ3lSZWNvcmRlciwgdG9wb2xvZ3lSZWNvcmRlciB9IGZyb20gJy4vbGliL3JlY29yZGVyL1RvcG9sb2d5UmVjb3JkZXIuanMnO1xuIl19
|
package/dist/types/advanced.d.ts
CHANGED
|
@@ -1,68 +1,34 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* footprintjs/advanced — Low-level internals for custom execution engines and testing.
|
|
3
|
-
*
|
|
4
|
-
* Most users never need this. Use `footprintjs` (main) instead.
|
|
5
|
-
* This entry point exposes the engine's frame (`StageContext`), the traverser
|
|
6
|
-
* (`FlowchartTraverser`), the scope providers and the other primitives that
|
|
7
|
-
* power the engine. The record has doors of its own: write one with
|
|
8
|
-
* `footprintjs/write` (`SharedMemory`, `EventLog`, `RecordFrame`), read one
|
|
9
|
-
* with `footprintjs/trace` (`CommitBundle`, `applySmartMerge`, the readers).
|
|
10
|
-
* The record's names this door handed out before 9.47.0 stay here until
|
|
11
|
-
* 10.0.0, the same symbols: import those from their own door (the nine record
|
|
12
|
-
* internals among them have none, and leave the public surface at 10.0.0).
|
|
13
|
-
*
|
|
14
|
-
* ```ts
|
|
15
|
-
* import { StageContext } from 'footprintjs/advanced';
|
|
16
|
-
* import { SharedMemory } from 'footprintjs/write';
|
|
17
|
-
* ```
|
|
18
|
-
*
|
|
19
|
-
* @module advanced
|
|
20
|
-
*/
|
|
21
|
-
/**
|
|
22
|
-
* FootPrint — Advanced / Internal API
|
|
23
|
-
*
|
|
24
|
-
* These exports are for advanced use cases, testing, and building
|
|
25
|
-
* custom execution engines. Most users should use the main 'footprint' entry point.
|
|
26
|
-
*
|
|
27
|
-
* Import via: import { ... } from 'footprint/advanced'
|
|
28
|
-
*/
|
|
29
|
-
export type { FlowControlType, FlowMessage, ReadSummaryMarker, ReadTrackingMode, RetentionPolicy, StageSnapshot, WriteSummaryMarker, WriteTrackingMode, } from './lib/memory/index.js';
|
|
30
|
-
export type { RedactionVerdict } from './lib/memory/index.js';
|
|
31
|
-
export { StageContext } from './lib/memory/index.js';
|
|
32
|
-
export { DiagnosticCollector } from './lib/memory/index.js';
|
|
33
|
-
export { RedactionRule } from './lib/memory/index.js';
|
|
34
|
-
export type { ExecutionCounter } from './lib/ids/runtimeStageId.js';
|
|
35
|
-
export { buildRuntimeStageId, createExecutionCounter, parseRuntimeStageId } from './lib/ids/runtimeStageId.js';
|
|
36
|
-
export { findCommit, findCommits, findLastWriter } from './lib/memory/commitLogUtils.js';
|
|
37
|
-
export type { CommitBundle, MemoryPatch, TraceEntry, UntrackedSource } from './lib/memory/index.js';
|
|
38
|
-
export { EventLog, SharedMemory, TransactionBuffer } from './lib/memory/index.js';
|
|
39
|
-
export { applySmartMerge, deepSmartMerge, getNestedValue, getRunAndGlobalPaths, normalisePath, pathSegments, redactPatch, setNestedValue, updateNestedValue, updateValue, } from './lib/memory/index.js';
|
|
1
|
+
/** Engine internals: scopes, traversal, frame policy, redaction and contracts. */
|
|
40
2
|
export type { ExecOptions, FlowChartOptions, FlowChartSpec, ILogger, ScopeProtectionMode, SerializedPipelineStructure, SimplifiedParallelSpec, StageFn, StageNode, StreamCallback, StreamLifecycleHandler, StreamTokenHandler, SubflowMountOptions, SubflowRef, } from './lib/builder/index.js';
|
|
41
3
|
export { ArrayMergeMode, DeciderList, SelectorFnList, specToStageNode } from './lib/builder/index.js';
|
|
42
4
|
export { createTypedScopeFactory } from './lib/builder/typedFlowChart.js';
|
|
43
|
-
export
|
|
44
|
-
export {
|
|
45
|
-
export {
|
|
46
|
-
export type { ScopeRuntime, ScopeRuntimeTarget } from './lib/scope/runtime.js';
|
|
47
|
-
export { registerScopeRuntime } from './lib/scope/runtime.js';
|
|
48
|
-
export type { AggregatedMetrics, DebugEntry, DebugRecorderOptions, DebugVerbosity, RecorderContext, StageEvent, StageMetrics, } from './lib/scope/index.js';
|
|
49
|
-
export type { RuntimeSnapshot } from './lib/runner/index.js';
|
|
50
|
-
export { ExecutionRuntime } from './lib/runner/index.js';
|
|
51
|
-
/** The run's policy an `ExecutionRuntime` is constructed with (F5). */
|
|
52
|
-
export type { RunPolicy } from './lib/memory/index.js';
|
|
53
|
-
export { DEFAULT_RUN_POLICY, runPolicy } from './lib/memory/index.js';
|
|
54
|
-
export type { ReactiveOptions, ReactiveTarget } from './lib/reactive/index.js';
|
|
55
|
-
export { buildNestedPatch, createArrayProxy, isHandle, joinPath, SCOPE_METHOD_NAMES, shouldWrapWithProxy, unwrapHandles, valueBehind, } from './lib/reactive/index.js';
|
|
5
|
+
export { normalizeSchema, zodToJsonSchema } from './lib/contract/index.js';
|
|
6
|
+
export type { FilterCondition } from './lib/decide/index.js';
|
|
7
|
+
export { evaluateFilter } from './lib/decide/index.js';
|
|
56
8
|
export type { TraverserOptions } from './lib/engine/index.js';
|
|
57
9
|
export type { Decider } from './lib/engine/index.js';
|
|
58
|
-
export { FlowchartTraverser } from './lib/engine/index.js';
|
|
59
|
-
export { isStageNodeReturn } from './lib/engine/index.js';
|
|
60
10
|
export type { IControlFlowNarrative } from './lib/engine/index.js';
|
|
61
11
|
export type { CombinedNarrativeEntry, CombinedNarrativeOptions } from './lib/engine/index.js';
|
|
62
12
|
export type { BranchResult, BranchResults, SerializedPipelineStructure as EngineSerializedPipelineStructure, HandlerDeps, IExecutionRuntime, NodeResultType, RuntimeStructureMetadata, ScopeFactory, SerializedPipelineNode, StageFunction, SubflowResult, TraversalResult, } from './lib/engine/index.js';
|
|
63
|
-
export { NullControlFlowNarrativeGenerator } from './lib/engine/index.js';
|
|
64
13
|
export type { ExecuteNodeFn, QueuedPause, ResumeHop, RunStageFn } from './lib/engine/index.js';
|
|
14
|
+
export { FlowchartTraverser } from './lib/engine/index.js';
|
|
15
|
+
export { isStageNodeReturn } from './lib/engine/index.js';
|
|
16
|
+
export { NullControlFlowNarrativeGenerator } from './lib/engine/index.js';
|
|
65
17
|
export { applyOutputMapping, ChildrenExecutor, computeNodeType, ContinuationResolver, createSubflowHandlerDeps, DeciderHandler, DEFAULT_MAX_ITERATIONS, extractParentScopeValues, getInitialScopeValues, NodeResolver, ResumeEntry, RuntimeStructureManager, seedSubflowGlobalStore, SelectorHandler, StageRunner, SubflowExecutor, } from './lib/engine/index.js';
|
|
66
|
-
export type {
|
|
67
|
-
export {
|
|
68
|
-
export {
|
|
18
|
+
export type { FlowControlType, FlowMessage, ReadSummaryMarker, ReadTrackingMode, RetentionPolicy, StageSnapshot, WriteSummaryMarker, WriteTrackingMode, } from './lib/memory/index.js';
|
|
19
|
+
export type { RedactionVerdict } from './lib/memory/index.js';
|
|
20
|
+
export type { RunPolicy } from './lib/memory/index.js';
|
|
21
|
+
export { StageContext } from './lib/memory/index.js';
|
|
22
|
+
export { DiagnosticCollector } from './lib/memory/index.js';
|
|
23
|
+
export { RedactionRule } from './lib/memory/index.js';
|
|
24
|
+
export { DEFAULT_RUN_POLICY, runPolicy } from './lib/memory/index.js';
|
|
25
|
+
export type { ReactiveOptions, ReactiveTarget } from './lib/reactive/index.js';
|
|
26
|
+
export { buildNestedPatch, createArrayProxy, isHandle, joinPath, SCOPE_METHOD_NAMES, shouldWrapWithProxy, unwrapHandles, valueBehind, } from './lib/reactive/index.js';
|
|
27
|
+
export type { RuntimeSnapshot } from './lib/runner/index.js';
|
|
28
|
+
export { ExecutionRuntime } from './lib/runner/index.js';
|
|
29
|
+
export type { ProviderResolver, ResolveOptions, ScopeProvider, StageContextLike, StrictMode, } from './lib/scope/index.js';
|
|
30
|
+
export type { AggregatedMetrics, DebugEntry, DebugRecorderOptions, DebugVerbosity, RecorderContext, StageEvent, StageMetrics, } from './lib/scope/index.js';
|
|
31
|
+
export { createErrorMessage, createProtectedScope, ScopeFacade } from './lib/scope/index.js';
|
|
32
|
+
export { attachScopeMethods, isSubclassOfScopeFacade, looksLikeClassCtor, looksLikeFactory, makeClassProvider, makeFactoryProvider, registerScopeResolver, resolveScopeProvider, toScopeFactory, } from './lib/scope/index.js';
|
|
33
|
+
export type { ScopeRuntime, ScopeRuntimeTarget } from './lib/scope/runtime.js';
|
|
34
|
+
export { registerScopeRuntime } from './lib/scope/runtime.js';
|
package/dist/types/index.d.ts
CHANGED
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
* ```ts
|
|
9
9
|
* import { flowChart, decide, narrative } from 'footprintjs'; // main — start here
|
|
10
10
|
* import { metrics, debug, manifest } from 'footprintjs/recorders'; // recorder factories
|
|
11
|
-
* import { stateAt, causalChain }
|
|
12
|
-
* import { RecordFrame, EventLog }
|
|
11
|
+
* import { stateAt, causalChain } from 'foottrace'; // read a finished run
|
|
12
|
+
* import { RecordFrame, EventLog } from 'foottrace/write'; // write a record yourself
|
|
13
13
|
* import { StageContext } from 'footprintjs/advanced'; // engine internals
|
|
14
14
|
* ```
|
|
15
15
|
*
|
|
@@ -108,11 +108,9 @@ export type { CombinedNarrativeEntry } from './lib/engine/index.js';
|
|
|
108
108
|
* @category Observe — Flow
|
|
109
109
|
*
|
|
110
110
|
* `NarrativeFormatter` — pluggable formatter that converts event context
|
|
111
|
-
* objects into the text lines of the narrative.
|
|
112
|
-
* code; `NarrativeRenderer` is a deprecated alias that will be removed in
|
|
113
|
-
* the next major release.
|
|
111
|
+
* objects into the text lines of the narrative.
|
|
114
112
|
*/
|
|
115
|
-
export type { NarrativeFormatter
|
|
113
|
+
export type { NarrativeFormatter } from './lib/engine/index.js';
|
|
116
114
|
/** @category Observe — Flow */
|
|
117
115
|
export { NarrativeFlowRecorder } from './lib/engine/index.js';
|
|
118
116
|
/** @category Observe — Flow */
|
|
@@ -197,12 +195,11 @@ export type { RetentionPolicy, WriteSummaryMarker, WriteTrackingMode } from './l
|
|
|
197
195
|
* storing only the tail; `deleteValue()` commits as a real `delete` verb;
|
|
198
196
|
* one trace entry per surviving path). Replay reconstructs every step's
|
|
199
197
|
* full state exactly. Consumers reading `bundle.overwrite[key]` as the full
|
|
200
|
-
* value must use `commitValueAt` from `
|
|
198
|
+
* value must use `commitValueAt` from `foottrace`. Pass as
|
|
201
199
|
* `new FlowChartExecutor(chart, { commitValues })` or call
|
|
202
200
|
* `executor.setCommitValues(mode)` before `run()`; the active mode is the
|
|
203
201
|
* snapshot discriminant `getSnapshot().commitValues`.
|
|
204
202
|
*/
|
|
205
|
-
export type { CommitValuesMode } from './lib/memory/index.js';
|
|
206
203
|
/** @category Contract & Validation */
|
|
207
204
|
export type { SchemaKind, ValidationIssue, ValidationResult } from './lib/schema/index.js';
|
|
208
205
|
/** @category Contract & Validation */
|
|
@@ -530,7 +530,7 @@ export declare class FlowChartBuilder<TOut = any, TScope = any> {
|
|
|
530
530
|
* stages from their ids — a switch over `runtimeStageId` that parses `#` and
|
|
531
531
|
* `/`, lives in the consumer, and silently goes stale when a stage is
|
|
532
532
|
* renamed. Declared here, the name travels WITH the commit: a recording from
|
|
533
|
-
* any chart carries its own milestones, and `tagStops` (
|
|
533
|
+
* any chart carries its own milestones, and `tagStops` (foottrace)
|
|
534
534
|
* scrubs them with no id conventions at all.
|
|
535
535
|
*
|
|
536
536
|
* ## What a tag is, and is not
|
|
@@ -173,7 +173,7 @@ export interface StructureStageAddedEvent {
|
|
|
173
173
|
* Note: `spec.id` is a LIVE reference. If you read it AFTER this
|
|
174
174
|
* chart has been mounted as a subflow, it may have been rewritten
|
|
175
175
|
* to the FULL prefixed form. Use `splitStageId(spec.id)` from
|
|
176
|
-
* `
|
|
176
|
+
* `foottrace` to decompose it back into local + subflowPath.
|
|
177
177
|
*
|
|
178
178
|
* Correlating with runtime events:
|
|
179
179
|
* - Same builder (no mount) →
|
|
@@ -16,7 +16,6 @@
|
|
|
16
16
|
* module — see the mapping notes in `policies.ts`.
|
|
17
17
|
*/
|
|
18
18
|
export { hasCircularReference } from './circular.js';
|
|
19
|
-
export { type ArrayWalk, deepFreeze } from './freeze.js';
|
|
20
19
|
export { invokeRecorderHook } from './invokeHook.js';
|
|
21
20
|
export type { RetentionPolicy } from './policies.js';
|
|
22
21
|
export type { ReadSummaryMarker, SummaryValueType, WriteSummaryMarker } from './summarize.js';
|
|
@@ -156,9 +156,9 @@ export declare class ResumeEntry<TOut = any, TScope = any> {
|
|
|
156
156
|
}): ResumeEntry<TOut, TScope>;
|
|
157
157
|
/**
|
|
158
158
|
* A seed-only entry: each capture seeds the FIRST entry into its subflow,
|
|
159
|
-
* which then starts at its own root.
|
|
160
|
-
*
|
|
161
|
-
*
|
|
159
|
+
* which then starts at its own root. Pass it explicitly as `resume` to
|
|
160
|
+
* TraverserOptions or HandlerDeps — the same one-shot law, without a
|
|
161
|
+
* stand-in or a path. Prefer `plan` when resuming a checkpoint.
|
|
162
162
|
*/
|
|
163
163
|
static fromCaptures<TOut, TScope>(captures: Record<string, Record<string, unknown>>): ResumeEntry<TOut, TScope>;
|
|
164
164
|
/**
|
|
@@ -21,8 +21,7 @@ export declare class SubflowExecutor<TOut = any, TScope = any> {
|
|
|
21
21
|
private deps;
|
|
22
22
|
private traverserFactory;
|
|
23
23
|
/**
|
|
24
|
-
* The resume's one-shot re-entry (`deps.resume`)
|
|
25
|
-
* from the deprecated `deps.subflowStatesForResume`. Undefined on a normal
|
|
24
|
+
* The resume's one-shot re-entry (`deps.resume`). Undefined on a normal
|
|
26
25
|
* run. Asked once per subflow entry — see {@link ResumeEntry}.
|
|
27
26
|
*/
|
|
28
27
|
private readonly resume;
|
|
@@ -9,7 +9,7 @@ export { FlowchartTraverser } from './traversal/FlowchartTraverser.js';
|
|
|
9
9
|
export { isStageNodeReturn } from './graph/StageNode.js';
|
|
10
10
|
export * from './types.js';
|
|
11
11
|
export * from './handlers/index.js';
|
|
12
|
-
export type { CombinedNarrativeEntry, CombinedNarrativeOptions, EmitRenderContext, NarrativeFormatter,
|
|
12
|
+
export type { CombinedNarrativeEntry, CombinedNarrativeOptions, EmitRenderContext, NarrativeFormatter, } from './narrative/narrativeTypes.js';
|
|
13
13
|
export { NullControlFlowNarrativeGenerator } from './narrative/NullControlFlowNarrativeGenerator.js';
|
|
14
14
|
export type { IControlFlowNarrative } from './narrative/types.js';
|
|
15
15
|
export { FlowRecorderDispatcher } from './narrative/FlowRecorderDispatcher.js';
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
import type { CombinedRecorder } from '../../recorder/CombinedRecorder.js';
|
|
18
18
|
import type { EmitEvent } from '../../recorder/EmitRecorder.js';
|
|
19
19
|
import type { ErrorEvent, PauseEvent, ReadEvent, ResumeEvent, WriteEvent } from '../../scope/types.js';
|
|
20
|
-
import type { CombinedNarrativeEntry,
|
|
20
|
+
import type { CombinedNarrativeEntry, NarrativeFormatter } from './narrativeTypes.js';
|
|
21
21
|
import type { FlowBreakEvent, FlowDecisionEvent, FlowErrorEvent, FlowForkEvent, FlowLoopEvent, FlowPauseEvent, FlowResumeEvent, FlowSelectedEvent, FlowStageEvent, FlowStageRetryEvent, FlowSubflowEvent } from './types.js';
|
|
22
22
|
export interface CombinedNarrativeRecorderOptions {
|
|
23
23
|
includeStepNumbers?: boolean;
|
|
@@ -27,8 +27,8 @@ export interface CombinedNarrativeRecorderOptions {
|
|
|
27
27
|
* Receives the raw value and maxValueLength. Defaults to summarizeValue(). */
|
|
28
28
|
formatValue?: (value: unknown, maxLen: number) => string;
|
|
29
29
|
/** Pluggable renderer for customizing narrative output. Unimplemented methods
|
|
30
|
-
* fall back to the default English renderer. See
|
|
31
|
-
renderer?:
|
|
30
|
+
* fall back to the default English renderer. See NarrativeFormatter docs. */
|
|
31
|
+
renderer?: NarrativeFormatter;
|
|
32
32
|
}
|
|
33
33
|
/**
|
|
34
34
|
* Implements `CombinedRecorder` — the library's first-class abstraction for
|
|
@@ -158,7 +158,7 @@ export declare class CombinedNarrativeRecorder implements CombinedRecorder {
|
|
|
158
158
|
description: string;
|
|
159
159
|
preferredOperation: "translate";
|
|
160
160
|
data: {
|
|
161
|
-
type: "subflow" | "loop" | "error" | "
|
|
161
|
+
type: "subflow" | "loop" | "error" | "pause" | "emit" | "fork" | "selector" | "stage" | "step" | "condition" | "break" | "resume" | "retry";
|
|
162
162
|
text: string;
|
|
163
163
|
depth: number;
|
|
164
164
|
stageName?: string | undefined;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export type { CombinedNarrativeRecorderOptions } from './CombinedNarrativeRecorder.js';
|
|
2
2
|
export { CombinedNarrativeRecorder } from './CombinedNarrativeRecorder.js';
|
|
3
|
-
export type { BreakRenderContext, CombinedNarrativeEntry, CombinedNarrativeOptions, DecisionRenderContext, EmitRenderContext, ErrorRenderContext, ForkRenderContext, LoopRenderContext, NarrativeFormatter,
|
|
3
|
+
export type { BreakRenderContext, CombinedNarrativeEntry, CombinedNarrativeOptions, DecisionRenderContext, EmitRenderContext, ErrorRenderContext, ForkRenderContext, LoopRenderContext, NarrativeFormatter, OpRenderContext, SelectedRenderContext, StageRenderContext, SubflowRenderContext, } from './narrativeTypes.js';
|
|
4
4
|
export { NullControlFlowNarrativeGenerator } from './NullControlFlowNarrativeGenerator.js';
|
|
5
5
|
export type { IControlFlowNarrative } from './types.js';
|
|
6
6
|
export { FlowRecorderDispatcher } from './FlowRecorderDispatcher.js';
|
|
@@ -150,9 +150,7 @@ export interface EmitRenderContext {
|
|
|
150
150
|
* In web terminology "renderer" usually means "turn data into a visible UI"
|
|
151
151
|
* (pixels, DOM, HTML). This interface does something smaller: it converts
|
|
152
152
|
* event context into a text string. That is more accurately called a
|
|
153
|
-
* *formatter
|
|
154
|
-
* is preserved for backward compatibility and marked `@deprecated`; it will
|
|
155
|
-
* be removed in the next major release.
|
|
153
|
+
* *formatter*.
|
|
156
154
|
*
|
|
157
155
|
* ## Behaviour
|
|
158
156
|
*
|
|
@@ -215,11 +213,3 @@ export interface NarrativeFormatter {
|
|
|
215
213
|
*/
|
|
216
214
|
renderEmit?(ctx: EmitRenderContext): string | null | undefined;
|
|
217
215
|
}
|
|
218
|
-
/**
|
|
219
|
-
* @deprecated Renamed to `NarrativeFormatter` for clarity — this interface
|
|
220
|
-
* formats event context into text lines, not "render to UI". Legacy alias
|
|
221
|
-
* kept for backward compatibility; will be removed in the next major
|
|
222
|
-
* release. Migrate by replacing `NarrativeRenderer` with
|
|
223
|
-
* `NarrativeFormatter` at imports — no behavioural change.
|
|
224
|
-
*/
|
|
225
|
-
export type NarrativeRenderer = NarrativeFormatter;
|
|
@@ -23,8 +23,7 @@
|
|
|
23
23
|
* Patch model: Stage writes into local patch; commitPatch() after return or throw.
|
|
24
24
|
*/
|
|
25
25
|
import type { ScopeProtectionMode } from '../../scope/protection/types.js';
|
|
26
|
-
import type { QueuedPause } from '../handlers/ResumeEntry.js';
|
|
27
|
-
import { ResumeEntry } from '../handlers/ResumeEntry.js';
|
|
26
|
+
import type { QueuedPause, ResumeEntry } from '../handlers/ResumeEntry.js';
|
|
28
27
|
import { FlowRecorderDispatcher } from '../narrative/FlowRecorderDispatcher.js';
|
|
29
28
|
import type { FlowRecorder, IControlFlowNarrative } from '../narrative/types.js';
|
|
30
29
|
import type { IExecutionRuntime, ILogger, ScopeFactory, Selector, SerializedPipelineStructure, StageFunction, StageNode, StreamHandlers, SubflowMountOptions, SubflowResult, TraversalResult } from '../types.js';
|
|
@@ -121,13 +120,6 @@ export interface TraverserOptions<TOut = any, TScope = any> {
|
|
|
121
120
|
* its first entry. See `ResumeEntry`. Undefined on normal `run()` paths.
|
|
122
121
|
*/
|
|
123
122
|
resume?: ResumeEntry<TOut, TScope>;
|
|
124
|
-
/**
|
|
125
|
-
* @deprecated since 9.28.0 — pass {@link resume}. Still honoured, under the
|
|
126
|
-
* same one-shot law: each capture seeds only the FIRST entry into its
|
|
127
|
-
* subflow (in place of the inputMapper's values); later entries are
|
|
128
|
-
* ordinary. Ignored when `resume` is set.
|
|
129
|
-
*/
|
|
130
|
-
subflowStatesForResume?: Record<string, Record<string, unknown>>;
|
|
131
123
|
/**
|
|
132
124
|
* Per-`executor.run()` identifier. Threaded into every TraversalContext
|
|
133
125
|
* this traverser produces so recorders can scope state to a single run.
|
|
@@ -340,7 +332,7 @@ export declare class FlowchartTraverser<TOut = any, TScope = any> {
|
|
|
340
332
|
executionTree: unknown;
|
|
341
333
|
initialState?: Record<string, unknown> | undefined;
|
|
342
334
|
commitLog: unknown[];
|
|
343
|
-
logAddress?: import("
|
|
335
|
+
logAddress?: import("foottrace").LogAddress | undefined;
|
|
344
336
|
subflowResults?: Record<string, unknown> | undefined;
|
|
345
337
|
recorders?: {
|
|
346
338
|
id: string;
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
* even when `undefined` if the caller names them, which is what a stage stamp
|
|
19
19
|
* has always done.
|
|
20
20
|
*/
|
|
21
|
-
import { type RuntimeStageId } from '
|
|
21
|
+
import { type RuntimeStageId } from 'foottrace';
|
|
22
22
|
import type { ResumeLink, TraversalContext } from './narrative/types.js';
|
|
23
23
|
/** Everything a stamp can carry; optional keys are written only when PRESENT on this object. */
|
|
24
24
|
export interface TraversalStamp {
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
* Centralizes type definitions to avoid circular dependencies.
|
|
5
5
|
* Every handler receives HandlerDeps (the DI bag) instead of importing the traverser.
|
|
6
6
|
*/
|
|
7
|
-
import type { LogAddress } from '
|
|
7
|
+
import type { LogAddress } from 'foottrace';
|
|
8
|
+
import type { SharedMemory } from 'foottrace/write';
|
|
8
9
|
import type { FlowControlType, FlowMessage } from '../memory/frameTypes.js';
|
|
9
|
-
import type { SharedMemory } from '../memory/SharedMemory.js';
|
|
10
10
|
import type { StageContext } from '../memory/StageContext.js';
|
|
11
11
|
import type { ScopeProtectionMode } from '../scope/protection/types.js';
|
|
12
12
|
import type { StageNode } from './graph/StageNode.js';
|
|
@@ -493,14 +493,6 @@ export interface HandlerDeps<TOut = any, TScope = any> {
|
|
|
493
493
|
* paths.
|
|
494
494
|
*/
|
|
495
495
|
resume?: ResumeEntry<TOut, TScope>;
|
|
496
|
-
/**
|
|
497
|
-
* @deprecated since 9.28.0 — the engine plans a resume with {@link resume}.
|
|
498
|
-
* Still honoured, under the same one-shot law: each capture (keyed by
|
|
499
|
-
* path-prefixed `subflowId`) seeds only the FIRST entry into its subflow,
|
|
500
|
-
* in place of the inputMapper's values; later entries are ordinary.
|
|
501
|
-
* Ignored when `resume` is set.
|
|
502
|
-
*/
|
|
503
|
-
subflowStatesForResume?: Record<string, Record<string, unknown>>;
|
|
504
496
|
}
|
|
505
497
|
/** Options for FlowChartExecutor.run(). */
|
|
506
498
|
export interface RunOptions {
|
|
@@ -11,15 +11,13 @@
|
|
|
11
11
|
* frame writes (`runAddress.ts`), the dev-mode warnings, the commit observer
|
|
12
12
|
* - DiagnosticCollector for logs, errors, metrics
|
|
13
13
|
*/
|
|
14
|
+
import type { CommitPhase, EmitSourcePosition, UntrackedSource } from 'foottrace';
|
|
15
|
+
import type { EventLog, SharedMemory } from 'foottrace/write';
|
|
14
16
|
import { type DiagnosticChannel, DiagnosticCollector } from './DiagnosticCollector.js';
|
|
15
|
-
import type { EventLog } from './EventLog.js';
|
|
16
|
-
import type { EmitSourcePosition } from './eventPosition.js';
|
|
17
17
|
import type { FlowControlType, StageSnapshot } from './frameTypes.js';
|
|
18
18
|
import type { RedactionVerdict } from './redaction.js';
|
|
19
19
|
import { RedactionRule } from './redaction.js';
|
|
20
20
|
import type { RunPolicy } from './runPolicy.js';
|
|
21
|
-
import type { SharedMemory } from './SharedMemory.js';
|
|
22
|
-
import type { CommitPhase, UntrackedSource } from './types.js';
|
|
23
21
|
export declare class StageContext {
|
|
24
22
|
/**
|
|
25
23
|
* The record half of this frame (`RecordFrame.ts`, L3, C3): the heap and,
|