footprintjs 3.1.0 → 4.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/dist/advanced.js +20 -23
- package/dist/esm/advanced.js +2 -3
- package/dist/esm/lib/builder/FlowChartBuilder.js +39 -14
- package/dist/esm/lib/builder/typedFlowChart.js +10 -31
- package/dist/esm/lib/builder/types.js +1 -1
- package/dist/esm/lib/engine/handlers/NodeResolver.js +22 -7
- package/dist/esm/lib/engine/handlers/RuntimeStructureManager.js +17 -4
- package/dist/esm/lib/engine/handlers/SelectorHandler.js +2 -2
- package/dist/esm/lib/engine/handlers/StageRunner.js +2 -2
- package/dist/esm/lib/engine/handlers/SubflowInputMapper.js +2 -2
- package/dist/esm/lib/engine/index.js +1 -2
- package/dist/esm/lib/engine/narrative/CombinedNarrativeBuilder.js +1 -1
- package/dist/esm/lib/engine/narrative/CombinedNarrativeRecorder.js +2 -2
- package/dist/esm/lib/engine/narrative/FlowRecorderDispatcher.js +41 -32
- package/dist/esm/lib/engine/narrative/NarrativeFlowRecorder.js +7 -12
- package/dist/esm/lib/engine/narrative/index.js +1 -2
- package/dist/esm/lib/engine/traversal/FlowchartTraverser.js +42 -10
- package/dist/esm/lib/engine/types.js +1 -1
- package/dist/esm/lib/memory/StageContext.js +1 -22
- package/dist/esm/lib/runner/FlowChartExecutor.js +24 -50
- package/dist/esm/lib/runner/RunnableChart.js +25 -1
- package/dist/esm/lib/runner/getSubtreeSnapshot.js +17 -27
- package/dist/esm/lib/scope/index.js +1 -1
- package/dist/esm/lib/scope/providers/types.js +1 -1
- package/dist/esm/lib/scope/recorders/index.js +1 -1
- package/dist/lib/builder/FlowChartBuilder.js +39 -14
- package/dist/lib/builder/typedFlowChart.js +11 -33
- package/dist/lib/builder/types.js +1 -1
- package/dist/lib/engine/handlers/NodeResolver.js +22 -7
- package/dist/lib/engine/handlers/RuntimeStructureManager.js +17 -4
- package/dist/lib/engine/handlers/SelectorHandler.js +2 -2
- package/dist/lib/engine/handlers/StageRunner.js +2 -2
- package/dist/lib/engine/handlers/SubflowInputMapper.js +2 -2
- package/dist/lib/engine/index.js +2 -4
- package/dist/lib/engine/narrative/CombinedNarrativeBuilder.js +1 -1
- package/dist/lib/engine/narrative/CombinedNarrativeRecorder.js +2 -2
- package/dist/lib/engine/narrative/FlowRecorderDispatcher.js +41 -32
- package/dist/lib/engine/narrative/NarrativeFlowRecorder.js +7 -12
- package/dist/lib/engine/narrative/index.js +2 -4
- package/dist/lib/engine/traversal/FlowchartTraverser.js +42 -10
- package/dist/lib/engine/types.js +1 -1
- package/dist/lib/memory/StageContext.js +1 -22
- package/dist/lib/runner/FlowChartExecutor.js +24 -50
- package/dist/lib/runner/RunnableChart.js +25 -1
- package/dist/lib/runner/getSubtreeSnapshot.js +17 -27
- package/dist/lib/scope/index.js +1 -1
- package/dist/lib/scope/providers/types.js +1 -1
- package/dist/lib/scope/recorders/index.js +1 -1
- package/dist/types/advanced.d.ts +2 -3
- package/dist/types/lib/builder/FlowChartBuilder.d.ts +2 -1
- package/dist/types/lib/builder/typedFlowChart.d.ts +9 -29
- package/dist/types/lib/builder/types.d.ts +4 -4
- package/dist/types/lib/engine/handlers/NodeResolver.d.ts +10 -3
- package/dist/types/lib/engine/handlers/RuntimeStructureManager.d.ts +1 -1
- package/dist/types/lib/engine/index.d.ts +0 -1
- package/dist/types/lib/engine/narrative/CombinedNarrativeBuilder.d.ts +1 -1
- package/dist/types/lib/engine/narrative/FlowRecorderDispatcher.d.ts +3 -2
- package/dist/types/lib/engine/narrative/NarrativeFlowRecorder.d.ts +0 -1
- package/dist/types/lib/engine/narrative/index.d.ts +0 -1
- package/dist/types/lib/engine/traversal/FlowchartTraverser.d.ts +6 -0
- package/dist/types/lib/engine/types.d.ts +3 -3
- package/dist/types/lib/memory/StageContext.d.ts +0 -15
- package/dist/types/lib/runner/FlowChartExecutor.d.ts +13 -37
- package/dist/types/lib/runner/RunnableChart.d.ts +2 -0
- package/dist/types/lib/scope/index.d.ts +0 -1
- package/dist/types/lib/scope/providers/types.d.ts +0 -6
- package/dist/types/lib/scope/recorders/index.d.ts +0 -1
- package/package.json +1 -1
- package/dist/esm/lib/engine/narrative/ControlFlowNarrativeGenerator.js +0 -112
- package/dist/esm/lib/scope/recorders/NarrativeRecorder.js +0 -149
- package/dist/lib/engine/narrative/ControlFlowNarrativeGenerator.js +0 -116
- package/dist/lib/scope/recorders/NarrativeRecorder.js +0 -153
- package/dist/types/lib/engine/narrative/ControlFlowNarrativeGenerator.d.ts +0 -31
- package/dist/types/lib/scope/recorders/NarrativeRecorder.d.ts +0 -50
|
@@ -36,7 +36,7 @@ exports.listSubflowPaths = exports.getSubtreeSnapshot = void 0;
|
|
|
36
36
|
* @returns the matching SubtreeSnapshot, or `undefined` if the path is not found
|
|
37
37
|
*/
|
|
38
38
|
function getSubtreeSnapshot(snapshot, path, allNarrativeEntries) {
|
|
39
|
-
var _a
|
|
39
|
+
var _a;
|
|
40
40
|
if (!snapshot || !path)
|
|
41
41
|
return undefined;
|
|
42
42
|
const normalizedPath = path.split('/').filter(Boolean).join('/');
|
|
@@ -53,9 +53,7 @@ function getSubtreeSnapshot(snapshot, path, allNarrativeEntries) {
|
|
|
53
53
|
subflowId: lastSegment,
|
|
54
54
|
executionTree: (_a = treeCtx === null || treeCtx === void 0 ? void 0 : treeCtx.stageContexts) !== null && _a !== void 0 ? _a : findSubflowInTree(snapshot.executionTree, lastSegment),
|
|
55
55
|
sharedState: treeCtx === null || treeCtx === void 0 ? void 0 : treeCtx.globalContext,
|
|
56
|
-
narrativeEntries: allNarrativeEntries
|
|
57
|
-
? extractScopedNarrative(allNarrativeEntries, (_b = sfResult.subflowName) !== null && _b !== void 0 ? _b : lastSegment)
|
|
58
|
-
: undefined,
|
|
56
|
+
narrativeEntries: allNarrativeEntries ? extractScopedNarrative(allNarrativeEntries, lastSegment) : undefined,
|
|
59
57
|
};
|
|
60
58
|
}
|
|
61
59
|
// Strategy 2: Find the node in the execution tree by subflowId
|
|
@@ -88,29 +86,21 @@ function listSubflowPaths(snapshot) {
|
|
|
88
86
|
exports.listSubflowPaths = listSubflowPaths;
|
|
89
87
|
/**
|
|
90
88
|
* Extract narrative entries scoped to a specific subflow.
|
|
91
|
-
*
|
|
89
|
+
* Filters by entry.subflowId field (set by CombinedNarrativeRecorder during traversal).
|
|
90
|
+
* Also includes the subflow entry/exit marker entries themselves.
|
|
92
91
|
*/
|
|
93
|
-
function extractScopedNarrative(entries,
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
inside = false;
|
|
106
|
-
continue;
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
if (inside) {
|
|
110
|
-
scoped.push(entry);
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
return scoped;
|
|
92
|
+
function extractScopedNarrative(entries, path) {
|
|
93
|
+
// The last segment of the path is the subflowId stored on entries
|
|
94
|
+
const subflowId = path.split('/').pop();
|
|
95
|
+
return entries.filter((entry) => {
|
|
96
|
+
// Include entries whose subflowId matches (events emitted while inside this subflow)
|
|
97
|
+
if (entry.subflowId === subflowId)
|
|
98
|
+
return true;
|
|
99
|
+
// Also include the subflow entry/exit markers (they carry the parent subflowId or undefined)
|
|
100
|
+
if (entry.type === 'subflow' && entry.stageId === subflowId)
|
|
101
|
+
return true;
|
|
102
|
+
return false;
|
|
103
|
+
});
|
|
114
104
|
}
|
|
115
105
|
/**
|
|
116
106
|
* Find a subflow node in the execution tree by searching for a node
|
|
@@ -134,4 +124,4 @@ function findSubflowInTree(node, subflowId) {
|
|
|
134
124
|
}
|
|
135
125
|
return undefined;
|
|
136
126
|
}
|
|
137
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0U3VidHJlZVNuYXBzaG90LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9ydW5uZXIvZ2V0U3VidHJlZVNuYXBzaG90LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJHOzs7QUFrQkg7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxTQUFnQixrQkFBa0IsQ0FDaEMsUUFBeUIsRUFDekIsSUFBWSxFQUNaLG1CQUE4Qzs7SUFFOUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUk7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUV6QyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakUsSUFBSSxDQUFDLGNBQWM7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUV0QyxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDO0lBQy9DLE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFHLENBQUM7SUFFckQsNERBQTREO0lBQzVELDZFQUE2RTtJQUM3RSxJQUFJLGNBQWMsSUFBSSxjQUFjLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztRQUNyRCxNQUFNLFFBQVEsR0FBRyxjQUFjLENBQUMsY0FBYyxDQUE0QixDQUFDO1FBQzNFLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxXQUFrRCxDQUFDO1FBRTVFLE9BQU87WUFDTCxTQUFTLEVBQUUsV0FBVztZQUN0QixhQUFhLEVBQ1gsTUFBQyxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsYUFBMEMsbUNBQUksaUJBQWlCLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUM7WUFDaEgsV0FBVyxFQUFFLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxhQUFvRDtZQUMxRSxnQkFBZ0IsRUFBRSxtQkFBbUI7Z0JBQ25DLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxtQkFBbUIsRUFBRSxNQUFDLFFBQVEsQ0FBQyxXQUFrQyxtQ0FBSSxXQUFXLENBQUM7Z0JBQzFHLENBQUMsQ0FBQyxTQUFTO1NBQ2QsQ0FBQztJQUNKLENBQUM7SUFFRCwrREFBK0Q7SUFDL0QsTUFBTSxTQUFTLEdBQUcsaUJBQWlCLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN6RSxJQUFJLENBQUMsU0FBUztRQUFFLE9BQU8sU0FBUyxDQUFDO0lBRWpDLE9BQU87UUFDTCxTQUFTLEVBQUUsV0FBVztRQUN0QixhQUFhLEVBQUUsU0FBUztRQUN4QixXQUFXLEVBQUUsU0FBUztRQUN0QixnQkFBZ0IsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUMsbUJBQW1CLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7S0FDN0csQ0FBQztBQUNKLENBQUM7QUF4Q0QsZ0RBd0NDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQUMsUUFBeUI7SUFDeEQsSUFBSSxDQUFDLENBQUEsUUFBUSxhQUFSLFFBQVEsdUJBQVIsUUFBUSxDQUFFLGNBQWMsQ0FBQTtRQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ3pDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDOUMsQ0FBQztBQUhELDRDQUdDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBUyxzQkFBc0IsQ0FBQyxPQUFpQyxFQUFFLFdBQW1CO0lBQ3BGLE1BQU0sTUFBTSxHQUE2QixFQUFFLENBQUM7SUFDNUMsSUFBSSxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBRW5CLEtBQUssTUFBTSxLQUFLLElBQUksT0FBTyxFQUFFLENBQUM7UUFDNUIsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFNBQVMsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ2pFLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztnQkFDbEQsTUFBTSxHQUFHLElBQUksQ0FBQztnQkFDZCxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNuQixTQUFTO1lBQ1gsQ0FBQztZQUNELElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztnQkFDakQsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDbkIsTUFBTSxHQUFHLEtBQUssQ0FBQztnQkFDZixTQUFTO1lBQ1gsQ0FBQztRQUNILENBQUM7UUFDRCxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBUyxpQkFBaUIsQ0FBQyxJQUErQixFQUFFLFNBQWlCO0lBQzNFLElBQUksQ0FBQyxJQUFJO1FBQUUsT0FBTyxTQUFTLENBQUM7SUFFNUIsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLFNBQVM7UUFBRSxPQUFPLElBQUksQ0FBQztJQUU5QyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsQixLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQyxNQUFNLEtBQUssR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDbEQsSUFBSSxLQUFLO2dCQUFFLE9BQU8sS0FBSyxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDZCxPQUFPLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGdldFN1YnRyZWVTbmFwc2hvdCDigJQgbmF2aWdhdGUgYW4gZXhlY3V0aW9uIHNuYXBzaG90IHRyZWUgYnkgc3ViZmxvdyBwYXRoLlxuICpcbiAqIEdpdmVuIGEgUnVudGltZVNuYXBzaG90IGFuZCBhIHNsYXNoLXNlcGFyYXRlZCBwYXRoIG9mIHN1YmZsb3cgSURzLFxuICogcmV0dXJucyB0aGUgc3VidHJlZSByb290ZWQgYXQgdGhhdCBzdWJmbG93LiBVc2VmdWwgZm9yIExMTSBkcmlsbC1kb3duOlxuICogaW5zdGVhZCBvZiBkdW1waW5nIHRoZSBmdWxsIHRyYWNlLCBmZXRjaCBvbmx5IHRoZSByZWxldmFudCBzdWJ0cmVlLlxuICpcbiAqIFVzYWdlOlxuICogICBjb25zdCBzbmFwc2hvdCA9IGV4ZWN1dG9yLmdldFNuYXBzaG90KCk7XG4gKlxuICogICAvLyBUb3AtbGV2ZWwgc3ViZmxvd1xuICogICBnZXRTdWJ0cmVlU25hcHNob3Qoc25hcHNob3QsICdzZi1wYXltZW50Jyk7XG4gKlxuICogICAvLyBOZXN0ZWQgc3ViZmxvdyAocGF5bWVudCDihpIgdmFsaWRhdGlvbilcbiAqICAgZ2V0U3VidHJlZVNuYXBzaG90KHNuYXBzaG90LCAnc2YtcGF5bWVudC9zZi12YWxpZGF0aW9uJyk7XG4gKlxuICogICAvLyBSZXR1cm5zIHVuZGVmaW5lZCBpZiBwYXRoIG5vdCBmb3VuZFxuICogICBnZXRTdWJ0cmVlU25hcHNob3Qoc25hcHNob3QsICdub25leGlzdGVudCcpOyAvLyB1bmRlZmluZWRcbiAqXG4gKiAgIC8vIERpc2NvdmVyIGF2YWlsYWJsZSBwYXRoc1xuICogICBsaXN0U3ViZmxvd1BhdGhzKHNuYXBzaG90KTsgLy8gWydzZi1wYXltZW50JywgJ3NmLXBheW1lbnQvc2YtdmFsaWRhdGlvbiddXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBDb21iaW5lZE5hcnJhdGl2ZUVudHJ5IH0gZnJvbSAnLi4vZW5naW5lL25hcnJhdGl2ZS9Db21iaW5lZE5hcnJhdGl2ZUJ1aWxkZXIuanMnO1xuaW1wb3J0IHR5cGUgeyBTdGFnZVNuYXBzaG90IH0gZnJvbSAnLi4vbWVtb3J5L3R5cGVzLmpzJztcbmltcG9ydCB0eXBlIHsgUnVudGltZVNuYXBzaG90IH0gZnJvbSAnLi9FeGVjdXRpb25SdW50aW1lLmpzJztcblxuLyoqIFRoZSByZXN1bHQgb2YgbmF2aWdhdGluZyB0byBhIHN1YnRyZWUgd2l0aGluIGEgc25hcHNob3QuICovXG5leHBvcnQgaW50ZXJmYWNlIFN1YnRyZWVTbmFwc2hvdCB7XG4gIC8qKiBUaGUgc3ViZmxvdyBJRCB0aGF0IHdhcyBtYXRjaGVkIChsYXN0IHNlZ21lbnQgb2YgdGhlIHBhdGgpLiAqL1xuICByZWFkb25seSBzdWJmbG93SWQ6IHN0cmluZztcbiAgLyoqIFRoZSBleGVjdXRpb24gdHJlZSByb290ZWQgYXQgdGhpcyBzdWJmbG93LiAqL1xuICByZWFkb25seSBleGVjdXRpb25UcmVlOiBTdGFnZVNuYXBzaG90O1xuICAvKiogU2hhcmVkIHN0YXRlIHNjb3BlZCB0byB0aGlzIHN1YmZsb3cgKGZyb20gc3ViZmxvd1Jlc3VsdHMgaWYgYXZhaWxhYmxlKS4gKi9cbiAgcmVhZG9ubHkgc2hhcmVkU3RhdGU/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgLyoqIE5hcnJhdGl2ZSBlbnRyaWVzIHNjb3BlZCB0byB0aGlzIHN1YmZsb3cgKGJldHdlZW4gZW50cnkvZXhpdCBldmVudHMpLiAqL1xuICByZWFkb25seSBuYXJyYXRpdmVFbnRyaWVzPzogQ29tYmluZWROYXJyYXRpdmVFbnRyeVtdO1xufVxuXG4vKipcbiAqIE5hdmlnYXRlIHRoZSBleGVjdXRpb24gc25hcHNob3QgdHJlZSBieSBhIHNsYXNoLXNlcGFyYXRlZCBzdWJmbG93IHBhdGguXG4gKlxuICogKipJbXBsZW1lbnRhdGlvbiBub3RlOioqIGZvb3RwcmludGpzJ3MgU3ViZmxvd0V4ZWN1dG9yIHN0b3JlcyBuZXN0ZWQgc3ViZmxvd1xuICogcmVzdWx0cyB3aXRoIGNvbXBvc2l0ZSBzbGFzaC1zZXBhcmF0ZWQga2V5cyAoZS5nLiBcInNmLW91dGVyL3NmLWlubmVyXCIpIGluXG4gKiB0aGUgZmxhdCBgc3ViZmxvd1Jlc3VsdHNgIG1hcC4gVGhpcyBmdW5jdGlvbiB1c2VzIHRob3NlIGtleXMgZm9yIGxvb2t1cC5cbiAqXG4gKiBAcGFyYW0gc25hcHNob3Qg4oCUIHRoZSBmdWxsIFJ1bnRpbWVTbmFwc2hvdCBmcm9tIGBleGVjdXRvci5nZXRTbmFwc2hvdCgpYFxuICogQHBhcmFtIHBhdGgg4oCUIHNsYXNoLXNlcGFyYXRlZCBzdWJmbG93IElEcywgZS5nLiBgXCJzZi1wYXltZW50XCJgIG9yIGBcInNmLXBheW1lbnQvc2YtdmFsaWRhdGlvblwiYFxuICogQHBhcmFtIGFsbE5hcnJhdGl2ZUVudHJpZXMg4oCUIG9wdGlvbmFsIGZ1bGwgbmFycmF0aXZlIGVudHJpZXMgZnJvbSBgZXhlY3V0b3IuZ2V0TmFycmF0aXZlRW50cmllcygpYCwgdXNlZCB0byBleHRyYWN0IHNjb3BlZCBuYXJyYXRpdmUgZm9yIHRoZSBzdWJ0cmVlXG4gKiBAcmV0dXJucyB0aGUgbWF0Y2hpbmcgU3VidHJlZVNuYXBzaG90LCBvciBgdW5kZWZpbmVkYCBpZiB0aGUgcGF0aCBpcyBub3QgZm91bmRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFN1YnRyZWVTbmFwc2hvdChcbiAgc25hcHNob3Q6IFJ1bnRpbWVTbmFwc2hvdCxcbiAgcGF0aDogc3RyaW5nLFxuICBhbGxOYXJyYXRpdmVFbnRyaWVzPzogQ29tYmluZWROYXJyYXRpdmVFbnRyeVtdLFxuKTogU3VidHJlZVNuYXBzaG90IHwgdW5kZWZpbmVkIHtcbiAgaWYgKCFzbmFwc2hvdCB8fCAhcGF0aCkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICBjb25zdCBub3JtYWxpemVkUGF0aCA9IHBhdGguc3BsaXQoJy8nKS5maWx0ZXIoQm9vbGVhbikuam9pbignLycpO1xuICBpZiAoIW5vcm1hbGl6ZWRQYXRoKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gIGNvbnN0IHN1YmZsb3dSZXN1bHRzID0gc25hcHNob3Quc3ViZmxvd1Jlc3VsdHM7XG4gIGNvbnN0IGxhc3RTZWdtZW50ID0gbm9ybWFsaXplZFBhdGguc3BsaXQoJy8nKS5wb3AoKSE7XG5cbiAgLy8gU3RyYXRlZ3kgMTogRGlyZWN0IGxvb2t1cCBpbiBzdWJmbG93UmVzdWx0cyBieSBmdWxsIHBhdGguXG4gIC8vIFN1YmZsb3dFeGVjdXRvciBzdG9yZXMgbmVzdGVkIHJlc3VsdHMgd2l0aCBjb21wb3NpdGUgc2xhc2gtc2VwYXJhdGVkIGtleXMuXG4gIGlmIChzdWJmbG93UmVzdWx0cyAmJiBzdWJmbG93UmVzdWx0c1tub3JtYWxpemVkUGF0aF0pIHtcbiAgICBjb25zdCBzZlJlc3VsdCA9IHN1YmZsb3dSZXN1bHRzW25vcm1hbGl6ZWRQYXRoXSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICBjb25zdCB0cmVlQ3R4ID0gc2ZSZXN1bHQudHJlZUNvbnRleHQgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCB1bmRlZmluZWQ7XG5cbiAgICByZXR1cm4ge1xuICAgICAgc3ViZmxvd0lkOiBsYXN0U2VnbWVudCxcbiAgICAgIGV4ZWN1dGlvblRyZWU6XG4gICAgICAgICh0cmVlQ3R4Py5zdGFnZUNvbnRleHRzIGFzIHVua25vd24gYXMgU3RhZ2VTbmFwc2hvdCkgPz8gZmluZFN1YmZsb3dJblRyZWUoc25hcHNob3QuZXhlY3V0aW9uVHJlZSwgbGFzdFNlZ21lbnQpLFxuICAgICAgc2hhcmVkU3RhdGU6IHRyZWVDdHg/Lmdsb2JhbENvbnRleHQgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCB1bmRlZmluZWQsXG4gICAgICBuYXJyYXRpdmVFbnRyaWVzOiBhbGxOYXJyYXRpdmVFbnRyaWVzXG4gICAgICAgID8gZXh0cmFjdFNjb3BlZE5hcnJhdGl2ZShhbGxOYXJyYXRpdmVFbnRyaWVzLCAoc2ZSZXN1bHQuc3ViZmxvd05hbWUgYXMgc3RyaW5nIHwgdW5kZWZpbmVkKSA/PyBsYXN0U2VnbWVudClcbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfVxuXG4gIC8vIFN0cmF0ZWd5IDI6IEZpbmQgdGhlIG5vZGUgaW4gdGhlIGV4ZWN1dGlvbiB0cmVlIGJ5IHN1YmZsb3dJZFxuICBjb25zdCBmb3VuZE5vZGUgPSBmaW5kU3ViZmxvd0luVHJlZShzbmFwc2hvdC5leGVjdXRpb25UcmVlLCBsYXN0U2VnbWVudCk7XG4gIGlmICghZm91bmROb2RlKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gIHJldHVybiB7XG4gICAgc3ViZmxvd0lkOiBsYXN0U2VnbWVudCxcbiAgICBleGVjdXRpb25UcmVlOiBmb3VuZE5vZGUsXG4gICAgc2hhcmVkU3RhdGU6IHVuZGVmaW5lZCxcbiAgICBuYXJyYXRpdmVFbnRyaWVzOiBhbGxOYXJyYXRpdmVFbnRyaWVzID8gZXh0cmFjdFNjb3BlZE5hcnJhdGl2ZShhbGxOYXJyYXRpdmVFbnRyaWVzLCBsYXN0U2VnbWVudCkgOiB1bmRlZmluZWQsXG4gIH07XG59XG5cbi8qKlxuICogTGlzdCBhbGwgYXZhaWxhYmxlIHN1YmZsb3cgcGF0aHMgaW4gYSBzbmFwc2hvdC5cbiAqXG4gKiBSZXR1cm5zIHRoZSBrZXlzIGZyb20gYHN1YmZsb3dSZXN1bHRzYCwgd2hpY2ggYXJlIHNsYXNoLXNlcGFyYXRlZFxuICogc3ViZmxvdyBJRCBwYXRocyAoZS5nLiBgW1wic2YtcGF5bWVudFwiLCBcInNmLW91dGVyL3NmLWlubmVyXCJdYCkuXG4gKiBVc2VmdWwgZm9yIGRpc2NvdmVyeSDigJQgYW4gTExNIG9yIFVJIGNhbiBlbnVtZXJhdGUgYXZhaWxhYmxlIGRyaWxsLWRvd24gdGFyZ2V0cy5cbiAqXG4gKiBAcGFyYW0gc25hcHNob3Qg4oCUIHRoZSBmdWxsIFJ1bnRpbWVTbmFwc2hvdCBmcm9tIGBleGVjdXRvci5nZXRTbmFwc2hvdCgpYFxuICogQHJldHVybnMgYXJyYXkgb2YgYXZhaWxhYmxlIHN1YmZsb3cgcGF0aHMsIGVtcHR5IGlmIG5vbmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxpc3RTdWJmbG93UGF0aHMoc25hcHNob3Q6IFJ1bnRpbWVTbmFwc2hvdCk6IHN0cmluZ1tdIHtcbiAgaWYgKCFzbmFwc2hvdD8uc3ViZmxvd1Jlc3VsdHMpIHJldHVybiBbXTtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKHNuYXBzaG90LnN1YmZsb3dSZXN1bHRzKTtcbn1cblxuLyoqXG4gKiBFeHRyYWN0IG5hcnJhdGl2ZSBlbnRyaWVzIHNjb3BlZCB0byBhIHNwZWNpZmljIHN1YmZsb3cuXG4gKiBGaW5kcyBlbnRyaWVzIGJldHdlZW4gdGhlIHN1YmZsb3cncyBlbnRyeSBhbmQgZXhpdCBldmVudHMuXG4gKi9cbmZ1bmN0aW9uIGV4dHJhY3RTY29wZWROYXJyYXRpdmUoZW50cmllczogQ29tYmluZWROYXJyYXRpdmVFbnRyeVtdLCBzdWJmbG93TmFtZTogc3RyaW5nKTogQ29tYmluZWROYXJyYXRpdmVFbnRyeVtdIHtcbiAgY29uc3Qgc2NvcGVkOiBDb21iaW5lZE5hcnJhdGl2ZUVudHJ5W10gPSBbXTtcbiAgbGV0IGluc2lkZSA9IGZhbHNlO1xuXG4gIGZvciAoY29uc3QgZW50cnkgb2YgZW50cmllcykge1xuICAgIGlmIChlbnRyeS50eXBlID09PSAnc3ViZmxvdycgJiYgZW50cnkudGV4dC5pbmNsdWRlcyhzdWJmbG93TmFtZSkpIHtcbiAgICAgIGlmIChlbnRyeS50ZXh0LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2VudGVyaW5nJykpIHtcbiAgICAgICAgaW5zaWRlID0gdHJ1ZTtcbiAgICAgICAgc2NvcGVkLnB1c2goZW50cnkpO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmIChlbnRyeS50ZXh0LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2V4aXRpbmcnKSkge1xuICAgICAgICBzY29wZWQucHVzaChlbnRyeSk7XG4gICAgICAgIGluc2lkZSA9IGZhbHNlO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGluc2lkZSkge1xuICAgICAgc2NvcGVkLnB1c2goZW50cnkpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzY29wZWQ7XG59XG5cbi8qKlxuICogRmluZCBhIHN1YmZsb3cgbm9kZSBpbiB0aGUgZXhlY3V0aW9uIHRyZWUgYnkgc2VhcmNoaW5nIGZvciBhIG5vZGVcbiAqIHdob3NlIHN1YmZsb3dJZCBtYXRjaGVzLlxuICogU2VhcmNoZXMgZGVwdGgtZmlyc3QgdGhyb3VnaCBgbmV4dGAgYW5kIGBjaGlsZHJlbmAgbGlua3MuXG4gKi9cbmZ1bmN0aW9uIGZpbmRTdWJmbG93SW5UcmVlKG5vZGU6IFN0YWdlU25hcHNob3QgfCB1bmRlZmluZWQsIHN1YmZsb3dJZDogc3RyaW5nKTogU3RhZ2VTbmFwc2hvdCB8IHVuZGVmaW5lZCB7XG4gIGlmICghbm9kZSkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICBpZiAobm9kZS5zdWJmbG93SWQgPT09IHN1YmZsb3dJZCkgcmV0dXJuIG5vZGU7XG5cbiAgaWYgKG5vZGUuY2hpbGRyZW4pIHtcbiAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgIGNvbnN0IGZvdW5kID0gZmluZFN1YmZsb3dJblRyZWUoY2hpbGQsIHN1YmZsb3dJZCk7XG4gICAgICBpZiAoZm91bmQpIHJldHVybiBmb3VuZDtcbiAgICB9XG4gIH1cblxuICBpZiAobm9kZS5uZXh0KSB7XG4gICAgcmV0dXJuIGZpbmRTdWJmbG93SW5UcmVlKG5vZGUubmV4dCwgc3ViZmxvd0lkKTtcbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG4iXX0=
|
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0U3VidHJlZVNuYXBzaG90LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9ydW5uZXIvZ2V0U3VidHJlZVNuYXBzaG90LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJHOzs7QUFrQkg7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxTQUFnQixrQkFBa0IsQ0FDaEMsUUFBeUIsRUFDekIsSUFBWSxFQUNaLG1CQUE4Qzs7SUFFOUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUk7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUV6QyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakUsSUFBSSxDQUFDLGNBQWM7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUV0QyxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDO0lBQy9DLE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFHLENBQUM7SUFFckQsNERBQTREO0lBQzVELDZFQUE2RTtJQUM3RSxJQUFJLGNBQWMsSUFBSSxjQUFjLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztRQUNyRCxNQUFNLFFBQVEsR0FBRyxjQUFjLENBQUMsY0FBYyxDQUE0QixDQUFDO1FBQzNFLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxXQUFrRCxDQUFDO1FBRTVFLE9BQU87WUFDTCxTQUFTLEVBQUUsV0FBVztZQUN0QixhQUFhLEVBQ1gsTUFBQyxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsYUFBMEMsbUNBQUksaUJBQWlCLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUM7WUFDaEgsV0FBVyxFQUFFLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxhQUFvRDtZQUMxRSxnQkFBZ0IsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUMsbUJBQW1CLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7U0FDN0csQ0FBQztJQUNKLENBQUM7SUFFRCwrREFBK0Q7SUFDL0QsTUFBTSxTQUFTLEdBQUcsaUJBQWlCLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN6RSxJQUFJLENBQUMsU0FBUztRQUFFLE9BQU8sU0FBUyxDQUFDO0lBRWpDLE9BQU87UUFDTCxTQUFTLEVBQUUsV0FBVztRQUN0QixhQUFhLEVBQUUsU0FBUztRQUN4QixXQUFXLEVBQUUsU0FBUztRQUN0QixnQkFBZ0IsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUMsbUJBQW1CLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7S0FDN0csQ0FBQztBQUNKLENBQUM7QUF0Q0QsZ0RBc0NDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQUMsUUFBeUI7SUFDeEQsSUFBSSxDQUFDLENBQUEsUUFBUSxhQUFSLFFBQVEsdUJBQVIsUUFBUSxDQUFFLGNBQWMsQ0FBQTtRQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ3pDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDOUMsQ0FBQztBQUhELDRDQUdDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQVMsc0JBQXNCLENBQUMsT0FBaUMsRUFBRSxJQUFZO0lBQzdFLGtFQUFrRTtJQUNsRSxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRyxDQUFDO0lBQ3pDLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQzlCLHFGQUFxRjtRQUNyRixJQUFJLEtBQUssQ0FBQyxTQUFTLEtBQUssU0FBUztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQy9DLDZGQUE2RjtRQUM3RixJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssU0FBUyxJQUFJLEtBQUssQ0FBQyxPQUFPLEtBQUssU0FBUztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ3pFLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQVMsaUJBQWlCLENBQUMsSUFBK0IsRUFBRSxTQUFpQjtJQUMzRSxJQUFJLENBQUMsSUFBSTtRQUFFLE9BQU8sU0FBUyxDQUFDO0lBRTVCLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxTQUFTO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFFOUMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbEIsS0FBSyxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEMsTUFBTSxLQUFLLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ2xELElBQUksS0FBSztnQkFBRSxPQUFPLEtBQUssQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2QsT0FBTyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBnZXRTdWJ0cmVlU25hcHNob3Qg4oCUIG5hdmlnYXRlIGFuIGV4ZWN1dGlvbiBzbmFwc2hvdCB0cmVlIGJ5IHN1YmZsb3cgcGF0aC5cbiAqXG4gKiBHaXZlbiBhIFJ1bnRpbWVTbmFwc2hvdCBhbmQgYSBzbGFzaC1zZXBhcmF0ZWQgcGF0aCBvZiBzdWJmbG93IElEcyxcbiAqIHJldHVybnMgdGhlIHN1YnRyZWUgcm9vdGVkIGF0IHRoYXQgc3ViZmxvdy4gVXNlZnVsIGZvciBMTE0gZHJpbGwtZG93bjpcbiAqIGluc3RlYWQgb2YgZHVtcGluZyB0aGUgZnVsbCB0cmFjZSwgZmV0Y2ggb25seSB0aGUgcmVsZXZhbnQgc3VidHJlZS5cbiAqXG4gKiBVc2FnZTpcbiAqICAgY29uc3Qgc25hcHNob3QgPSBleGVjdXRvci5nZXRTbmFwc2hvdCgpO1xuICpcbiAqICAgLy8gVG9wLWxldmVsIHN1YmZsb3dcbiAqICAgZ2V0U3VidHJlZVNuYXBzaG90KHNuYXBzaG90LCAnc2YtcGF5bWVudCcpO1xuICpcbiAqICAgLy8gTmVzdGVkIHN1YmZsb3cgKHBheW1lbnQg4oaSIHZhbGlkYXRpb24pXG4gKiAgIGdldFN1YnRyZWVTbmFwc2hvdChzbmFwc2hvdCwgJ3NmLXBheW1lbnQvc2YtdmFsaWRhdGlvbicpO1xuICpcbiAqICAgLy8gUmV0dXJucyB1bmRlZmluZWQgaWYgcGF0aCBub3QgZm91bmRcbiAqICAgZ2V0U3VidHJlZVNuYXBzaG90KHNuYXBzaG90LCAnbm9uZXhpc3RlbnQnKTsgLy8gdW5kZWZpbmVkXG4gKlxuICogICAvLyBEaXNjb3ZlciBhdmFpbGFibGUgcGF0aHNcbiAqICAgbGlzdFN1YmZsb3dQYXRocyhzbmFwc2hvdCk7IC8vIFsnc2YtcGF5bWVudCcsICdzZi1wYXltZW50L3NmLXZhbGlkYXRpb24nXVxuICovXG5cbmltcG9ydCB0eXBlIHsgQ29tYmluZWROYXJyYXRpdmVFbnRyeSB9IGZyb20gJy4uL2VuZ2luZS9uYXJyYXRpdmUvQ29tYmluZWROYXJyYXRpdmVCdWlsZGVyLmpzJztcbmltcG9ydCB0eXBlIHsgU3RhZ2VTbmFwc2hvdCB9IGZyb20gJy4uL21lbW9yeS90eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IFJ1bnRpbWVTbmFwc2hvdCB9IGZyb20gJy4vRXhlY3V0aW9uUnVudGltZS5qcyc7XG5cbi8qKiBUaGUgcmVzdWx0IG9mIG5hdmlnYXRpbmcgdG8gYSBzdWJ0cmVlIHdpdGhpbiBhIHNuYXBzaG90LiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdWJ0cmVlU25hcHNob3Qge1xuICAvKiogVGhlIHN1YmZsb3cgSUQgdGhhdCB3YXMgbWF0Y2hlZCAobGFzdCBzZWdtZW50IG9mIHRoZSBwYXRoKS4gKi9cbiAgcmVhZG9ubHkgc3ViZmxvd0lkOiBzdHJpbmc7XG4gIC8qKiBUaGUgZXhlY3V0aW9uIHRyZWUgcm9vdGVkIGF0IHRoaXMgc3ViZmxvdy4gKi9cbiAgcmVhZG9ubHkgZXhlY3V0aW9uVHJlZTogU3RhZ2VTbmFwc2hvdDtcbiAgLyoqIFNoYXJlZCBzdGF0ZSBzY29wZWQgdG8gdGhpcyBzdWJmbG93IChmcm9tIHN1YmZsb3dSZXN1bHRzIGlmIGF2YWlsYWJsZSkuICovXG4gIHJlYWRvbmx5IHNoYXJlZFN0YXRlPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIC8qKiBOYXJyYXRpdmUgZW50cmllcyBzY29wZWQgdG8gdGhpcyBzdWJmbG93IChiZXR3ZWVuIGVudHJ5L2V4aXQgZXZlbnRzKS4gKi9cbiAgcmVhZG9ubHkgbmFycmF0aXZlRW50cmllcz86IENvbWJpbmVkTmFycmF0aXZlRW50cnlbXTtcbn1cblxuLyoqXG4gKiBOYXZpZ2F0ZSB0aGUgZXhlY3V0aW9uIHNuYXBzaG90IHRyZWUgYnkgYSBzbGFzaC1zZXBhcmF0ZWQgc3ViZmxvdyBwYXRoLlxuICpcbiAqICoqSW1wbGVtZW50YXRpb24gbm90ZToqKiBmb290cHJpbnRqcydzIFN1YmZsb3dFeGVjdXRvciBzdG9yZXMgbmVzdGVkIHN1YmZsb3dcbiAqIHJlc3VsdHMgd2l0aCBjb21wb3NpdGUgc2xhc2gtc2VwYXJhdGVkIGtleXMgKGUuZy4gXCJzZi1vdXRlci9zZi1pbm5lclwiKSBpblxuICogdGhlIGZsYXQgYHN1YmZsb3dSZXN1bHRzYCBtYXAuIFRoaXMgZnVuY3Rpb24gdXNlcyB0aG9zZSBrZXlzIGZvciBsb29rdXAuXG4gKlxuICogQHBhcmFtIHNuYXBzaG90IOKAlCB0aGUgZnVsbCBSdW50aW1lU25hcHNob3QgZnJvbSBgZXhlY3V0b3IuZ2V0U25hcHNob3QoKWBcbiAqIEBwYXJhbSBwYXRoIOKAlCBzbGFzaC1zZXBhcmF0ZWQgc3ViZmxvdyBJRHMsIGUuZy4gYFwic2YtcGF5bWVudFwiYCBvciBgXCJzZi1wYXltZW50L3NmLXZhbGlkYXRpb25cImBcbiAqIEBwYXJhbSBhbGxOYXJyYXRpdmVFbnRyaWVzIOKAlCBvcHRpb25hbCBmdWxsIG5hcnJhdGl2ZSBlbnRyaWVzIGZyb20gYGV4ZWN1dG9yLmdldE5hcnJhdGl2ZUVudHJpZXMoKWAsIHVzZWQgdG8gZXh0cmFjdCBzY29wZWQgbmFycmF0aXZlIGZvciB0aGUgc3VidHJlZVxuICogQHJldHVybnMgdGhlIG1hdGNoaW5nIFN1YnRyZWVTbmFwc2hvdCwgb3IgYHVuZGVmaW5lZGAgaWYgdGhlIHBhdGggaXMgbm90IGZvdW5kXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdWJ0cmVlU25hcHNob3QoXG4gIHNuYXBzaG90OiBSdW50aW1lU25hcHNob3QsXG4gIHBhdGg6IHN0cmluZyxcbiAgYWxsTmFycmF0aXZlRW50cmllcz86IENvbWJpbmVkTmFycmF0aXZlRW50cnlbXSxcbik6IFN1YnRyZWVTbmFwc2hvdCB8IHVuZGVmaW5lZCB7XG4gIGlmICghc25hcHNob3QgfHwgIXBhdGgpIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgY29uc3Qgbm9ybWFsaXplZFBhdGggPSBwYXRoLnNwbGl0KCcvJykuZmlsdGVyKEJvb2xlYW4pLmpvaW4oJy8nKTtcbiAgaWYgKCFub3JtYWxpemVkUGF0aCkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICBjb25zdCBzdWJmbG93UmVzdWx0cyA9IHNuYXBzaG90LnN1YmZsb3dSZXN1bHRzO1xuICBjb25zdCBsYXN0U2VnbWVudCA9IG5vcm1hbGl6ZWRQYXRoLnNwbGl0KCcvJykucG9wKCkhO1xuXG4gIC8vIFN0cmF0ZWd5IDE6IERpcmVjdCBsb29rdXAgaW4gc3ViZmxvd1Jlc3VsdHMgYnkgZnVsbCBwYXRoLlxuICAvLyBTdWJmbG93RXhlY3V0b3Igc3RvcmVzIG5lc3RlZCByZXN1bHRzIHdpdGggY29tcG9zaXRlIHNsYXNoLXNlcGFyYXRlZCBrZXlzLlxuICBpZiAoc3ViZmxvd1Jlc3VsdHMgJiYgc3ViZmxvd1Jlc3VsdHNbbm9ybWFsaXplZFBhdGhdKSB7XG4gICAgY29uc3Qgc2ZSZXN1bHQgPSBzdWJmbG93UmVzdWx0c1tub3JtYWxpemVkUGF0aF0gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgY29uc3QgdHJlZUN0eCA9IHNmUmVzdWx0LnRyZWVDb250ZXh0IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgdW5kZWZpbmVkO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHN1YmZsb3dJZDogbGFzdFNlZ21lbnQsXG4gICAgICBleGVjdXRpb25UcmVlOlxuICAgICAgICAodHJlZUN0eD8uc3RhZ2VDb250ZXh0cyBhcyB1bmtub3duIGFzIFN0YWdlU25hcHNob3QpID8/IGZpbmRTdWJmbG93SW5UcmVlKHNuYXBzaG90LmV4ZWN1dGlvblRyZWUsIGxhc3RTZWdtZW50KSxcbiAgICAgIHNoYXJlZFN0YXRlOiB0cmVlQ3R4Py5nbG9iYWxDb250ZXh0IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgdW5kZWZpbmVkLFxuICAgICAgbmFycmF0aXZlRW50cmllczogYWxsTmFycmF0aXZlRW50cmllcyA/IGV4dHJhY3RTY29wZWROYXJyYXRpdmUoYWxsTmFycmF0aXZlRW50cmllcywgbGFzdFNlZ21lbnQpIDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH1cblxuICAvLyBTdHJhdGVneSAyOiBGaW5kIHRoZSBub2RlIGluIHRoZSBleGVjdXRpb24gdHJlZSBieSBzdWJmbG93SWRcbiAgY29uc3QgZm91bmROb2RlID0gZmluZFN1YmZsb3dJblRyZWUoc25hcHNob3QuZXhlY3V0aW9uVHJlZSwgbGFzdFNlZ21lbnQpO1xuICBpZiAoIWZvdW5kTm9kZSkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICByZXR1cm4ge1xuICAgIHN1YmZsb3dJZDogbGFzdFNlZ21lbnQsXG4gICAgZXhlY3V0aW9uVHJlZTogZm91bmROb2RlLFxuICAgIHNoYXJlZFN0YXRlOiB1bmRlZmluZWQsXG4gICAgbmFycmF0aXZlRW50cmllczogYWxsTmFycmF0aXZlRW50cmllcyA/IGV4dHJhY3RTY29wZWROYXJyYXRpdmUoYWxsTmFycmF0aXZlRW50cmllcywgbGFzdFNlZ21lbnQpIDogdW5kZWZpbmVkLFxuICB9O1xufVxuXG4vKipcbiAqIExpc3QgYWxsIGF2YWlsYWJsZSBzdWJmbG93IHBhdGhzIGluIGEgc25hcHNob3QuXG4gKlxuICogUmV0dXJucyB0aGUga2V5cyBmcm9tIGBzdWJmbG93UmVzdWx0c2AsIHdoaWNoIGFyZSBzbGFzaC1zZXBhcmF0ZWRcbiAqIHN1YmZsb3cgSUQgcGF0aHMgKGUuZy4gYFtcInNmLXBheW1lbnRcIiwgXCJzZi1vdXRlci9zZi1pbm5lclwiXWApLlxuICogVXNlZnVsIGZvciBkaXNjb3Zlcnkg4oCUIGFuIExMTSBvciBVSSBjYW4gZW51bWVyYXRlIGF2YWlsYWJsZSBkcmlsbC1kb3duIHRhcmdldHMuXG4gKlxuICogQHBhcmFtIHNuYXBzaG90IOKAlCB0aGUgZnVsbCBSdW50aW1lU25hcHNob3QgZnJvbSBgZXhlY3V0b3IuZ2V0U25hcHNob3QoKWBcbiAqIEByZXR1cm5zIGFycmF5IG9mIGF2YWlsYWJsZSBzdWJmbG93IHBhdGhzLCBlbXB0eSBpZiBub25lXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsaXN0U3ViZmxvd1BhdGhzKHNuYXBzaG90OiBSdW50aW1lU25hcHNob3QpOiBzdHJpbmdbXSB7XG4gIGlmICghc25hcHNob3Q/LnN1YmZsb3dSZXN1bHRzKSByZXR1cm4gW107XG4gIHJldHVybiBPYmplY3Qua2V5cyhzbmFwc2hvdC5zdWJmbG93UmVzdWx0cyk7XG59XG5cbi8qKlxuICogRXh0cmFjdCBuYXJyYXRpdmUgZW50cmllcyBzY29wZWQgdG8gYSBzcGVjaWZpYyBzdWJmbG93LlxuICogRmlsdGVycyBieSBlbnRyeS5zdWJmbG93SWQgZmllbGQgKHNldCBieSBDb21iaW5lZE5hcnJhdGl2ZVJlY29yZGVyIGR1cmluZyB0cmF2ZXJzYWwpLlxuICogQWxzbyBpbmNsdWRlcyB0aGUgc3ViZmxvdyBlbnRyeS9leGl0IG1hcmtlciBlbnRyaWVzIHRoZW1zZWx2ZXMuXG4gKi9cbmZ1bmN0aW9uIGV4dHJhY3RTY29wZWROYXJyYXRpdmUoZW50cmllczogQ29tYmluZWROYXJyYXRpdmVFbnRyeVtdLCBwYXRoOiBzdHJpbmcpOiBDb21iaW5lZE5hcnJhdGl2ZUVudHJ5W10ge1xuICAvLyBUaGUgbGFzdCBzZWdtZW50IG9mIHRoZSBwYXRoIGlzIHRoZSBzdWJmbG93SWQgc3RvcmVkIG9uIGVudHJpZXNcbiAgY29uc3Qgc3ViZmxvd0lkID0gcGF0aC5zcGxpdCgnLycpLnBvcCgpITtcbiAgcmV0dXJuIGVudHJpZXMuZmlsdGVyKChlbnRyeSkgPT4ge1xuICAgIC8vIEluY2x1ZGUgZW50cmllcyB3aG9zZSBzdWJmbG93SWQgbWF0Y2hlcyAoZXZlbnRzIGVtaXR0ZWQgd2hpbGUgaW5zaWRlIHRoaXMgc3ViZmxvdylcbiAgICBpZiAoZW50cnkuc3ViZmxvd0lkID09PSBzdWJmbG93SWQpIHJldHVybiB0cnVlO1xuICAgIC8vIEFsc28gaW5jbHVkZSB0aGUgc3ViZmxvdyBlbnRyeS9leGl0IG1hcmtlcnMgKHRoZXkgY2FycnkgdGhlIHBhcmVudCBzdWJmbG93SWQgb3IgdW5kZWZpbmVkKVxuICAgIGlmIChlbnRyeS50eXBlID09PSAnc3ViZmxvdycgJiYgZW50cnkuc3RhZ2VJZCA9PT0gc3ViZmxvd0lkKSByZXR1cm4gdHJ1ZTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH0pO1xufVxuXG4vKipcbiAqIEZpbmQgYSBzdWJmbG93IG5vZGUgaW4gdGhlIGV4ZWN1dGlvbiB0cmVlIGJ5IHNlYXJjaGluZyBmb3IgYSBub2RlXG4gKiB3aG9zZSBzdWJmbG93SWQgbWF0Y2hlcy5cbiAqIFNlYXJjaGVzIGRlcHRoLWZpcnN0IHRocm91Z2ggYG5leHRgIGFuZCBgY2hpbGRyZW5gIGxpbmtzLlxuICovXG5mdW5jdGlvbiBmaW5kU3ViZmxvd0luVHJlZShub2RlOiBTdGFnZVNuYXBzaG90IHwgdW5kZWZpbmVkLCBzdWJmbG93SWQ6IHN0cmluZyk6IFN0YWdlU25hcHNob3QgfCB1bmRlZmluZWQge1xuICBpZiAoIW5vZGUpIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgaWYgKG5vZGUuc3ViZmxvd0lkID09PSBzdWJmbG93SWQpIHJldHVybiBub2RlO1xuXG4gIGlmIChub2RlLmNoaWxkcmVuKSB7XG4gICAgZm9yIChjb25zdCBjaGlsZCBvZiBub2RlLmNoaWxkcmVuKSB7XG4gICAgICBjb25zdCBmb3VuZCA9IGZpbmRTdWJmbG93SW5UcmVlKGNoaWxkLCBzdWJmbG93SWQpO1xuICAgICAgaWYgKGZvdW5kKSByZXR1cm4gZm91bmQ7XG4gICAgfVxuICB9XG5cbiAgaWYgKG5vZGUubmV4dCkge1xuICAgIHJldHVybiBmaW5kU3ViZmxvd0luVHJlZShub2RlLm5leHQsIHN1YmZsb3dJZCk7XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuIl19
|
package/dist/lib/scope/index.js
CHANGED
|
@@ -38,4 +38,4 @@ Object.defineProperty(exports, "defineScopeSchema", { enumerable: true, get: fun
|
|
|
38
38
|
Object.defineProperty(exports, "isScopeSchema", { enumerable: true, get: function () { return builder_js_1.isScopeSchema; } });
|
|
39
39
|
var scopeFactory_js_1 = require("./state/zod/scopeFactory.js");
|
|
40
40
|
Object.defineProperty(exports, "createScopeProxyFromZod", { enumerable: true, get: function () { return scopeFactory_js_1.createScopeProxyFromZod; } });
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3Njb3BlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwwQkFBMEI7QUFDMUI7Ozs7O0dBS0c7OztBQUVILE9BQU87QUFDUCxtREFBK0M7QUFBdEMsNkdBQUEsV0FBVyxPQUFBO0FBaUJwQixpRUFBNkQ7QUFBcEQsaUhBQUEsYUFBYSxPQUFBO0FBRXRCLG1FQUErRDtBQUF0RCxtSEFBQSxjQUFjLE9BQUE7QUFJdkIsa0RBQWlGO0FBQXhFLDhHQUFBLGtCQUFrQixPQUFBO0FBQUUsZ0hBQUEsb0JBQW9CLE9BQUE7QUFXakQsaURBVzhCO0FBVjVCLHlIQUFBLDZCQUE2QixPQUFBO0FBQzdCLDhHQUFBLGtCQUFrQixPQUFBO0FBQ2xCLG1IQUFBLHVCQUF1QixPQUFBO0FBQ3ZCLDhHQUFBLGtCQUFrQixPQUFBO0FBQ2xCLDRHQUFBLGdCQUFnQixPQUFBO0FBQ2hCLDZHQUFBLGlCQUFpQixPQUFBO0FBQ2pCLCtHQUFBLG1CQUFtQixPQUFBO0FBQ25CLGlIQUFBLHFCQUFxQixPQUFBO0FBQ3JCLGdIQUFBLG9CQUFvQixPQUFBO0FBQ3BCLDBHQUFBLGNBQWMsT0FBQTtBQUtoQiwyRUFBdUU7QUFBOUQsMkhBQUEsa0JBQWtCLE9BQUE7QUFDM0IsdURBQTJEO0FBQWxELCtHQUFBLGdCQUFnQixPQUFBO0FBQ3pCLDREQUFpRjtBQUF4RSwrR0FBQSxpQkFBaUIsT0FBQTtBQUFFLDJHQUFBLGFBQWEsT0FBQTtBQUN6QywrREFBc0U7QUFBN0QsMEhBQUEsdUJBQXVCLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBpc3RhbmJ1bCBpZ25vcmUgZmlsZSAqL1xuLyoqXG4gKiBzY29wZS8g4oCUIFNjb3BlIG1hbmFnZW1lbnQgbGlicmFyeVxuICpcbiAqIERlcGVuZHMgb24gbWVtb3J5LyAoUGhhc2UgMSkuIFByb3ZpZGVzIFNjb3BlRmFjYWRlLCByZWNvcmRlcnMsXG4gKiBwcm92aWRlcnMsIHByb3RlY3Rpb24sIGFuZCBab2QtYmFzZWQgc2NvcGUgZGVmaW5pdGlvbnMuXG4gKi9cblxuLy8gQ29yZVxuZXhwb3J0IHsgU2NvcGVGYWNhZGUgfSBmcm9tICcuL1Njb3BlRmFjYWRlLmpzJztcblxuLy8gVHlwZXNcbmV4cG9ydCB0eXBlIHtcbiAgQ29tbWl0RXZlbnQsXG4gIEVycm9yRXZlbnQsXG4gIFJlYWRFdmVudCxcbiAgUmVjb3JkZXIsXG4gIFJlY29yZGVyQ29udGV4dCxcbiAgUmVkYWN0aW9uUG9saWN5LFxuICBSZWRhY3Rpb25SZXBvcnQsXG4gIFN0YWdlRXZlbnQsXG4gIFdyaXRlRXZlbnQsXG59IGZyb20gJy4vdHlwZXMuanMnO1xuXG4vLyBSZWNvcmRlcnNcbmV4cG9ydCB0eXBlIHsgRGVidWdFbnRyeSwgRGVidWdSZWNvcmRlck9wdGlvbnMsIERlYnVnVmVyYm9zaXR5IH0gZnJvbSAnLi9yZWNvcmRlcnMvRGVidWdSZWNvcmRlci5qcyc7XG5leHBvcnQgeyBEZWJ1Z1JlY29yZGVyIH0gZnJvbSAnLi9yZWNvcmRlcnMvRGVidWdSZWNvcmRlci5qcyc7XG5leHBvcnQgdHlwZSB7IEFnZ3JlZ2F0ZWRNZXRyaWNzLCBTdGFnZU1ldHJpY3MgfSBmcm9tICcuL3JlY29yZGVycy9NZXRyaWNSZWNvcmRlci5qcyc7XG5leHBvcnQgeyBNZXRyaWNSZWNvcmRlciB9IGZyb20gJy4vcmVjb3JkZXJzL01ldHJpY1JlY29yZGVyLmpzJztcblxuLy8gUHJvdGVjdGlvblxuZXhwb3J0IHR5cGUgeyBTY29wZVByb3RlY3Rpb25Nb2RlLCBTY29wZVByb3RlY3Rpb25PcHRpb25zIH0gZnJvbSAnLi9wcm90ZWN0aW9uL2luZGV4LmpzJztcbmV4cG9ydCB7IGNyZWF0ZUVycm9yTWVzc2FnZSwgY3JlYXRlUHJvdGVjdGVkU2NvcGUgfSBmcm9tICcuL3Byb3RlY3Rpb24vaW5kZXguanMnO1xuXG4vLyBQcm92aWRlcnNcbmV4cG9ydCB0eXBlIHtcbiAgUHJvdmlkZXJSZXNvbHZlcixcbiAgUmVzb2x2ZU9wdGlvbnMsXG4gIFNjb3BlRmFjdG9yeSxcbiAgU2NvcGVQcm92aWRlcixcbiAgU3RhZ2VDb250ZXh0TGlrZSxcbiAgU3RyaWN0TW9kZSxcbn0gZnJvbSAnLi9wcm92aWRlcnMvaW5kZXguanMnO1xuZXhwb3J0IHtcbiAgX19jbGVhclNjb3BlUmVzb2x2ZXJzRm9yVGVzdHMsXG4gIGF0dGFjaFNjb3BlTWV0aG9kcyxcbiAgaXNTdWJjbGFzc09mU2NvcGVGYWNhZGUsXG4gIGxvb2tzTGlrZUNsYXNzQ3RvcixcbiAgbG9va3NMaWtlRmFjdG9yeSxcbiAgbWFrZUNsYXNzUHJvdmlkZXIsXG4gIG1ha2VGYWN0b3J5UHJvdmlkZXIsXG4gIHJlZ2lzdGVyU2NvcGVSZXNvbHZlcixcbiAgcmVzb2x2ZVNjb3BlUHJvdmlkZXIsXG4gIHRvU2NvcGVGYWN0b3J5LFxufSBmcm9tICcuL3Byb3ZpZGVycy9pbmRleC5qcyc7XG5cbi8vIFN0YXRlIC8gWm9kXG5leHBvcnQgdHlwZSB7IERlZmluZVNjb3BlT3B0aW9ucyB9IGZyb20gJy4vc3RhdGUvem9kL2RlZmluZVNjb3BlRnJvbVpvZC5qcyc7XG5leHBvcnQgeyBkZWZpbmVTY29wZUZyb21ab2QgfSBmcm9tICcuL3N0YXRlL3pvZC9kZWZpbmVTY29wZUZyb21ab2QuanMnO1xuZXhwb3J0IHsgWm9kU2NvcGVSZXNvbHZlciB9IGZyb20gJy4vc3RhdGUvem9kL3Jlc29sdmVyLmpzJztcbmV4cG9ydCB7IGRlZmluZVNjb3BlU2NoZW1hLCBpc1Njb3BlU2NoZW1hIH0gZnJvbSAnLi9zdGF0ZS96b2Qvc2NoZW1hL2J1aWxkZXIuanMnO1xuZXhwb3J0IHsgY3JlYXRlU2NvcGVQcm94eUZyb21ab2QgfSBmcm9tICcuL3N0YXRlL3pvZC9zY29wZUZhY3RvcnkuanMnO1xuIl19
|
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
* StageContextLike is the minimal surface from StageContext to avoid tight coupling.
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3Njb3BlL3Byb3ZpZGVycy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7O0dBS0ciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFByb3ZpZGVyIFN5c3RlbSBUeXBlc1xuICpcbiAqIERlZmluZXMgY29udHJhY3RzIGJldHdlZW4gdGhlIHJlZ2lzdHJ5LCByZXNvbHZlcnMsIGFuZCBwcm92aWRlcnMuXG4gKiBTdGFnZUNvbnRleHRMaWtlIGlzIHRoZSBtaW5pbWFsIHN1cmZhY2UgZnJvbSBTdGFnZUNvbnRleHQgdG8gYXZvaWQgdGlnaHQgY291cGxpbmcuXG4gKi9cblxuLyoqIE1pbmltYWwgc3VyZmFjZSBmcm9tIFN0YWdlQ29udGV4dCAocGF0Y2gtYmFzZWQpICovXG5leHBvcnQgaW50ZXJmYWNlIFN0YWdlQ29udGV4dExpa2Uge1xuICBnZXRWYWx1ZShwYXRoOiBzdHJpbmdbXSwga2V5Pzogc3RyaW5nKTogdW5rbm93bjtcbiAgc2V0T2JqZWN0KHBhdGg6IHN0cmluZ1tdLCBrZXk6IHN0cmluZywgdmFsdWU6IHVua25vd24sIHNob3VsZFJlZGFjdD86IGJvb2xlYW4sIGRlc2NyaXB0aW9uPzogc3RyaW5nKTogdm9pZDtcbiAgdXBkYXRlT2JqZWN0KHBhdGg6IHN0cmluZ1tdLCBrZXk6IHN0cmluZywgdmFsdWU6IHVua25vd24sIGRlc2NyaXB0aW9uPzogc3RyaW5nKTogdm9pZDtcblxuICBhZGRMb2c/
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3Njb3BlL3Byb3ZpZGVycy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7O0dBS0ciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFByb3ZpZGVyIFN5c3RlbSBUeXBlc1xuICpcbiAqIERlZmluZXMgY29udHJhY3RzIGJldHdlZW4gdGhlIHJlZ2lzdHJ5LCByZXNvbHZlcnMsIGFuZCBwcm92aWRlcnMuXG4gKiBTdGFnZUNvbnRleHRMaWtlIGlzIHRoZSBtaW5pbWFsIHN1cmZhY2UgZnJvbSBTdGFnZUNvbnRleHQgdG8gYXZvaWQgdGlnaHQgY291cGxpbmcuXG4gKi9cblxuLyoqIE1pbmltYWwgc3VyZmFjZSBmcm9tIFN0YWdlQ29udGV4dCAocGF0Y2gtYmFzZWQpICovXG5leHBvcnQgaW50ZXJmYWNlIFN0YWdlQ29udGV4dExpa2Uge1xuICBnZXRWYWx1ZShwYXRoOiBzdHJpbmdbXSwga2V5Pzogc3RyaW5nKTogdW5rbm93bjtcbiAgc2V0T2JqZWN0KHBhdGg6IHN0cmluZ1tdLCBrZXk6IHN0cmluZywgdmFsdWU6IHVua25vd24sIHNob3VsZFJlZGFjdD86IGJvb2xlYW4sIGRlc2NyaXB0aW9uPzogc3RyaW5nKTogdm9pZDtcbiAgdXBkYXRlT2JqZWN0KHBhdGg6IHN0cmluZ1tdLCBrZXk6IHN0cmluZywgdmFsdWU6IHVua25vd24sIGRlc2NyaXB0aW9uPzogc3RyaW5nKTogdm9pZDtcblxuICBhZGRMb2c/KGtleTogc3RyaW5nLCB2YWw6IHVua25vd24pOiB2b2lkO1xuICBhZGRFcnJvcj8oa2V5OiBzdHJpbmcsIHZhbDogdW5rbm93bik6IHZvaWQ7XG5cbiAgZ2V0R2xvYmFsPyhrZXk6IHN0cmluZyk6IHVua25vd247XG4gIHNldFJvb3Q/KGtleTogc3RyaW5nLCB2YWx1ZTogdW5rbm93bik6IHZvaWQ7XG4gIHNldEdsb2JhbD8oa2V5OiBzdHJpbmcsIHZhbHVlOiB1bmtub3duLCBkZXNjcmlwdGlvbj86IHN0cmluZyk6IHZvaWQ7XG5cbiAgcGlwZWxpbmVJZD86IHN0cmluZztcbiAgcnVuSWQ/OiBzdHJpbmc7XG59XG5cbi8qKiBGYWN0b3J5IHR5cGUgdGhlIHBpcGVsaW5lIGV4cGVjdHMgKi9cbmV4cG9ydCB0eXBlIFNjb3BlRmFjdG9yeTxUU2NvcGU+ID0gKGN0eDogU3RhZ2VDb250ZXh0TGlrZSwgc3RhZ2VOYW1lOiBzdHJpbmcsIHJlYWRPbmx5PzogdW5rbm93bikgPT4gVFNjb3BlO1xuXG4vKiogU3RyYXRlZ3kgb2JqZWN0IHRoYXQgY3JlYXRlcyBhIHNjb3BlICovXG5leHBvcnQgaW50ZXJmYWNlIFNjb3BlUHJvdmlkZXI8VFNjb3BlPiB7XG4gIHJlYWRvbmx5IGtpbmQ6IHN0cmluZztcbiAgY3JlYXRlKGN0eDogU3RhZ2VDb250ZXh0TGlrZSwgc3RhZ2VOYW1lOiBzdHJpbmcsIHJlYWRPbmx5PzogdW5rbm93bik6IFRTY29wZTtcbn1cblxuLyoqIFJlc29sdmVyIHRoYXQgY2FuIHR1cm4gYW4gYXJiaXRyYXJ5IGlucHV0IGludG8gYSBTY29wZVByb3ZpZGVyICovXG5leHBvcnQgaW50ZXJmYWNlIFByb3ZpZGVyUmVzb2x2ZXI8VFNjb3BlID0gYW55PiB7XG4gIG5hbWU6IHN0cmluZztcbiAgY2FuSGFuZGxlKGlucHV0OiB1bmtub3duKTogYm9vbGVhbjtcbiAgbWFrZVByb3ZpZGVyKGlucHV0OiB1bmtub3duLCBvcHRpb25zPzogdW5rbm93bik6IFNjb3BlUHJvdmlkZXI8VFNjb3BlPjtcbn1cblxuLyoqIE9wdGlvbmFsIHN0cmljdG5lc3MgZm9yIHNjaGVtYS1iYWNrZWQgcHJvdmlkZXJzICovXG5leHBvcnQgdHlwZSBTdHJpY3RNb2RlID0gJ29mZicgfCAnd2FybicgfCAnZGVueSc7XG5cbi8qKiBPcHRpb25zIGJhZyBwYXNzZWQgdG8gcmVzb2x2ZSgpICovXG5leHBvcnQgdHlwZSBSZXNvbHZlT3B0aW9ucyA9IHtcbiAgem9kPzogeyBzdHJpY3Q/OiBTdHJpY3RNb2RlIH07XG59O1xuIl19
|
|
@@ -5,4 +5,4 @@ var DebugRecorder_js_1 = require("./DebugRecorder.js");
|
|
|
5
5
|
Object.defineProperty(exports, "DebugRecorder", { enumerable: true, get: function () { return DebugRecorder_js_1.DebugRecorder; } });
|
|
6
6
|
var MetricRecorder_js_1 = require("./MetricRecorder.js");
|
|
7
7
|
Object.defineProperty(exports, "MetricRecorder", { enumerable: true, get: function () { return MetricRecorder_js_1.MetricRecorder; } });
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3Njb3BlL3JlY29yZGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFXQSx1REFBbUQ7QUFBMUMsaUhBQUEsYUFBYSxPQUFBO0FBRXRCLHlEQUFxRDtBQUE1QyxtSEFBQSxjQUFjLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBpc3RhbmJ1bCBpZ25vcmUgZmlsZSAqL1xuZXhwb3J0IHR5cGUge1xuICBDb21taXRFdmVudCxcbiAgRXJyb3JFdmVudCxcbiAgUmVhZEV2ZW50LFxuICBSZWNvcmRlcixcbiAgUmVjb3JkZXJDb250ZXh0LFxuICBTdGFnZUV2ZW50LFxuICBXcml0ZUV2ZW50LFxufSBmcm9tICcuLi90eXBlcy5qcyc7XG5leHBvcnQgdHlwZSB7IERlYnVnRW50cnksIERlYnVnUmVjb3JkZXJPcHRpb25zLCBEZWJ1Z1ZlcmJvc2l0eSB9IGZyb20gJy4vRGVidWdSZWNvcmRlci5qcyc7XG5leHBvcnQgeyBEZWJ1Z1JlY29yZGVyIH0gZnJvbSAnLi9EZWJ1Z1JlY29yZGVyLmpzJztcbmV4cG9ydCB0eXBlIHsgQWdncmVnYXRlZE1ldHJpY3MsIFN0YWdlTWV0cmljcyB9IGZyb20gJy4vTWV0cmljUmVjb3JkZXIuanMnO1xuZXhwb3J0IHsgTWV0cmljUmVjb3JkZXIgfSBmcm9tICcuL01ldHJpY1JlY29yZGVyLmpzJztcbiJdfQ==
|
package/dist/types/advanced.d.ts
CHANGED
|
@@ -28,11 +28,11 @@ export { DiagnosticCollector } from './lib/memory/index.js';
|
|
|
28
28
|
export { applySmartMerge, deepSmartMerge, getNestedValue, getRunAndGlobalPaths, normalisePath, redactPatch, setNestedValue, updateNestedValue, updateValue, } from './lib/memory/index.js';
|
|
29
29
|
export type { BuildTimeExtractor, BuildTimeNodeMetadata, ExecOptions, FlowChartSpec, ILogger, ScopeProtectionMode, SerializedPipelineStructure, SimplifiedParallelSpec, StageFn, StageNode, StreamCallback, StreamLifecycleHandler, StreamTokenHandler, SubflowMountOptions, SubflowRef, } from './lib/builder/index.js';
|
|
30
30
|
export { DeciderList, SelectorFnList, specToStageNode } from './lib/builder/index.js';
|
|
31
|
-
export { createTypedScopeFactory
|
|
31
|
+
export { createTypedScopeFactory } from './lib/builder/typedFlowChart.js';
|
|
32
32
|
export type { ProviderResolver, ResolveOptions, ScopeProvider, StageContextLike, StrictMode, } from './lib/scope/index.js';
|
|
33
33
|
export { createErrorMessage, createProtectedScope, ScopeFacade } from './lib/scope/index.js';
|
|
34
34
|
export { attachScopeMethods, isSubclassOfScopeFacade, looksLikeClassCtor, looksLikeFactory, makeClassProvider, makeFactoryProvider, registerScopeResolver, resolveScopeProvider, toScopeFactory, } from './lib/scope/index.js';
|
|
35
|
-
export type { AggregatedMetrics, DebugEntry, DebugRecorderOptions, DebugVerbosity, DefineScopeOptions,
|
|
35
|
+
export type { AggregatedMetrics, DebugEntry, DebugRecorderOptions, DebugVerbosity, DefineScopeOptions, RecorderContext, StageEvent, StageMetrics, } from './lib/scope/index.js';
|
|
36
36
|
export { createScopeProxyFromZod, defineScopeSchema, isScopeSchema, ZodScopeResolver } from './lib/scope/index.js';
|
|
37
37
|
export type { NarrativeEntry, RuntimeSnapshot } from './lib/runner/index.js';
|
|
38
38
|
export { ExecutionRuntime } from './lib/runner/index.js';
|
|
@@ -45,7 +45,6 @@ export { isStageNodeReturn } from './lib/engine/index.js';
|
|
|
45
45
|
export type { IControlFlowNarrative } from './lib/engine/index.js';
|
|
46
46
|
export type { CombinedNarrativeEntry, CombinedNarrativeOptions } from './lib/engine/index.js';
|
|
47
47
|
export type { BranchResult, BranchResults, SerializedPipelineStructure as EngineSerializedPipelineStructure, StageSnapshot as EngineStageSnapshot, ExtractorError, HandlerDeps, IExecutionRuntime, NodeResultType, RuntimeStructureMetadata, SerializedPipelineNode, StageFunction, SubflowResult, TraversalExtractor, TraversalResult, } from './lib/engine/index.js';
|
|
48
|
-
export { ControlFlowNarrativeGenerator } from './lib/engine/index.js';
|
|
49
48
|
export { NullControlFlowNarrativeGenerator } from './lib/engine/index.js';
|
|
50
49
|
export type { CallExtractorFn, ExecuteNodeFn, GetStagePathFn, RunStageFn } from './lib/engine/index.js';
|
|
51
50
|
export { applyOutputMapping, ChildrenExecutor, computeNodeType, ContinuationResolver, createSubflowHandlerDeps, DeciderHandler, DEFAULT_MAX_ITERATIONS, ExtractorRunner, extractParentScopeValues, getInitialScopeValues, NodeResolver, RuntimeStructureManager, seedSubflowGlobalStore, SelectorHandler, StageRunner, SubflowExecutor, } from './lib/engine/index.js';
|
|
@@ -134,7 +134,8 @@ export declare class FlowChartBuilder<TOut = any, TScope = any> {
|
|
|
134
134
|
private _needCursor;
|
|
135
135
|
private _needCursorSpec;
|
|
136
136
|
_applyExtractorToNode(spec: SerializedPipelineStructure): SerializedPipelineStructure;
|
|
137
|
-
|
|
137
|
+
_stageMapHas(key: string): boolean;
|
|
138
|
+
_addToMap(id: string, fn: StageFunction<TOut, TScope>): void;
|
|
138
139
|
_mergeStageMap(other: Map<string, StageFunction<TOut, TScope>>, prefix?: string): void;
|
|
139
140
|
_prefixNodeTree(node: StageNode<TOut, TScope>, prefix: string): StageNode<TOut, TScope>;
|
|
140
141
|
_mergeSubflows(subflows: Record<string, {
|
|
@@ -1,16 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* typedFlowChart
|
|
2
|
+
* typedFlowChart.ts — TypedScope factory for FlowChartExecutor.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* receive typed property access without any casts.
|
|
6
|
-
*
|
|
7
|
-
* Also exports createTypedScopeFactory<T>() which creates the ScopeFactory
|
|
4
|
+
* Exports createTypedScopeFactory<T>() which creates the ScopeFactory
|
|
8
5
|
* that wraps ScopeFacade in a TypedScope proxy.
|
|
9
6
|
*/
|
|
10
7
|
import type { ScopeFactory } from '../engine/types.js';
|
|
11
8
|
import type { TypedScope } from '../reactive/types.js';
|
|
12
|
-
import { FlowChartBuilder } from './FlowChartBuilder.js';
|
|
13
|
-
import type { BuildTimeExtractor } from './types.js';
|
|
14
9
|
/**
|
|
15
10
|
* Clean stage function type for TypedScope users.
|
|
16
11
|
* No breakPipeline parameter — use scope.$break() instead.
|
|
@@ -19,27 +14,12 @@ export type TypedStageFunction<T extends object> = (scope: TypedScope<T>) => Pro
|
|
|
19
14
|
/**
|
|
20
15
|
* Creates a ScopeFactory that produces TypedScope<T> instances.
|
|
21
16
|
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
|
|
25
|
-
export declare function createTypedScopeFactory<T extends object>(): ScopeFactory<TypedScope<T>>;
|
|
26
|
-
/**
|
|
27
|
-
* Convenience builder for typed pipelines.
|
|
17
|
+
* `flowChart<T>()` auto-embeds this factory at build time — you rarely need
|
|
18
|
+
* to call this directly. Use it only when constructing a custom executor with
|
|
19
|
+
* a pre-built chart that was NOT created with `flowChart<T>()`.
|
|
28
20
|
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
* No changes to executor construction are required — `build()` now embeds the scope factory automatically.
|
|
33
|
-
*
|
|
34
|
-
* Migration:
|
|
35
|
-
* ```typescript
|
|
36
|
-
* // Before:
|
|
37
|
-
* import { typedFlowChart } from 'footprintjs/advanced';
|
|
38
|
-
* const chart = typedFlowChart<LoanState>('Intake', fn, 'intake').build();
|
|
39
|
-
*
|
|
40
|
-
* // After:
|
|
41
|
-
* import { flowChart } from 'footprintjs';
|
|
42
|
-
* const chart = flowChart<LoanState>('Intake', fn, 'intake').build();
|
|
43
|
-
* ```
|
|
21
|
+
* const factory = createTypedScopeFactory<MyState>();
|
|
22
|
+
* new FlowChartExecutor(chart, factory)
|
|
23
|
+
* // or: new FlowChartExecutor(chart, { scopeFactory: factory })
|
|
44
24
|
*/
|
|
45
|
-
export declare function
|
|
25
|
+
export declare function createTypedScopeFactory<T extends object>(): ScopeFactory<TypedScope<T>>;
|
|
@@ -18,8 +18,8 @@ export type StageFn = StageFunction<any, any>;
|
|
|
18
18
|
export type { ScopeProtectionMode };
|
|
19
19
|
export interface SerializedPipelineStructure {
|
|
20
20
|
name: string;
|
|
21
|
-
id
|
|
22
|
-
type: 'stage' | 'decider' | 'selector' | 'fork' | 'streaming';
|
|
21
|
+
id: string;
|
|
22
|
+
type: 'stage' | 'decider' | 'selector' | 'fork' | 'streaming' | 'subflow';
|
|
23
23
|
/** Semantic icon hint for visualization (e.g., "llm", "tool", "rag", "agent", "start") */
|
|
24
24
|
icon?: string;
|
|
25
25
|
description?: string;
|
|
@@ -50,9 +50,9 @@ export interface SerializedPipelineStructure {
|
|
|
50
50
|
}
|
|
51
51
|
export interface FlowChartSpec {
|
|
52
52
|
name: string;
|
|
53
|
-
id
|
|
53
|
+
id: string;
|
|
54
54
|
/** Node type — matches `SerializedPipelineStructure.type` for visualization alignment. */
|
|
55
|
-
type?: 'stage' | 'decider' | 'selector' | 'fork' | 'streaming';
|
|
55
|
+
type?: 'stage' | 'decider' | 'selector' | 'fork' | 'streaming' | 'subflow';
|
|
56
56
|
/** Semantic icon hint for visualization (e.g., "llm", "tool", "rag", "agent", "start") */
|
|
57
57
|
icon?: string;
|
|
58
58
|
description?: string;
|
|
@@ -10,12 +10,19 @@ import type { StageNode } from '../graph/StageNode.js';
|
|
|
10
10
|
import type { HandlerDeps } from '../types.js';
|
|
11
11
|
export declare class NodeResolver<TOut = any, TScope = any> {
|
|
12
12
|
private deps;
|
|
13
|
-
|
|
13
|
+
private readonly nodeIdMap;
|
|
14
|
+
constructor(deps: HandlerDeps<TOut, TScope>, nodeIdMap?: Map<string, StageNode<TOut, TScope>>);
|
|
14
15
|
/**
|
|
15
|
-
*
|
|
16
|
-
*
|
|
16
|
+
* O(1) node lookup via pre-built ID map.
|
|
17
|
+
* Falls back to DFS from startNode (for dynamic nodes added at runtime
|
|
18
|
+
* or subflow-local lookups that use an explicit startNode).
|
|
17
19
|
*/
|
|
18
20
|
findNodeById(nodeId: string, startNode?: StageNode<TOut, TScope>): StageNode<TOut, TScope> | undefined;
|
|
21
|
+
/**
|
|
22
|
+
* DFS search for a node by ID.
|
|
23
|
+
* Used as fallback when the node is not in the pre-built map.
|
|
24
|
+
*/
|
|
25
|
+
private _dfs;
|
|
19
26
|
/**
|
|
20
27
|
* Resolve a subflow reference node to its actual structure.
|
|
21
28
|
*
|
|
@@ -13,7 +13,7 @@ import type { SerializedPipelineStructure } from '../types.js';
|
|
|
13
13
|
* Compute the node type from node properties.
|
|
14
14
|
* Shared by RuntimeStructureManager (serialization) and ExtractorRunner (metadata).
|
|
15
15
|
*/
|
|
16
|
-
export declare function computeNodeType(node: StageNode): 'stage' | 'decider' | 'selector' | 'fork' | 'streaming';
|
|
16
|
+
export declare function computeNodeType(node: StageNode): 'stage' | 'decider' | 'selector' | 'fork' | 'streaming' | 'subflow';
|
|
17
17
|
export declare class RuntimeStructureManager {
|
|
18
18
|
private runtimePipelineStructure?;
|
|
19
19
|
private structureNodeMap;
|
|
@@ -10,7 +10,6 @@ export { isStageNodeReturn } from './graph/StageNode.js';
|
|
|
10
10
|
export * from './types.js';
|
|
11
11
|
export * from './handlers/index.js';
|
|
12
12
|
export type { CombinedNarrativeEntry, CombinedNarrativeOptions } from './narrative/CombinedNarrativeBuilder.js';
|
|
13
|
-
export { ControlFlowNarrativeGenerator } from './narrative/ControlFlowNarrativeGenerator.js';
|
|
14
13
|
export { NullControlFlowNarrativeGenerator } from './narrative/NullControlFlowNarrativeGenerator.js';
|
|
15
14
|
export type { IControlFlowNarrative } from './narrative/types.js';
|
|
16
15
|
export { FlowRecorderDispatcher } from './narrative/FlowRecorderDispatcher.js';
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Use CombinedNarrativeRecorder (auto-attached by setEnableNarrative()) instead.
|
|
6
6
|
*/
|
|
7
7
|
export interface CombinedNarrativeEntry {
|
|
8
|
-
type: 'stage' | 'step' | 'condition' | 'fork' | 'subflow' | 'loop' | 'break' | 'error';
|
|
8
|
+
type: 'stage' | 'step' | 'condition' | 'fork' | 'selector' | 'subflow' | 'loop' | 'break' | 'error';
|
|
9
9
|
text: string;
|
|
10
10
|
depth: number;
|
|
11
11
|
stageName?: string;
|
|
@@ -33,8 +33,9 @@ export declare class FlowRecorderDispatcher implements IControlFlowNarrative {
|
|
|
33
33
|
onBreak(stageName: string, traversalContext?: TraversalContext): void;
|
|
34
34
|
onError(stageName: string, errorMessage: string, error: unknown, traversalContext?: TraversalContext): void;
|
|
35
35
|
/**
|
|
36
|
-
* Returns sentences from
|
|
37
|
-
*
|
|
36
|
+
* Returns sentences from an attached NarrativeFlowRecorder (looked up by ID).
|
|
37
|
+
* Callers that need sentences should attach a NarrativeFlowRecorder with id 'narrative'
|
|
38
|
+
* and retrieve it directly via getRecorderById() if they need typed access.
|
|
38
39
|
*/
|
|
39
40
|
getSentences(): string[];
|
|
40
41
|
}
|
|
@@ -14,7 +14,6 @@ export declare class NarrativeFlowRecorder implements FlowRecorder {
|
|
|
14
14
|
private sentences;
|
|
15
15
|
/** Parallel array: the actual stage name that produced each sentence. */
|
|
16
16
|
private stageNames;
|
|
17
|
-
private isFirstStage;
|
|
18
17
|
constructor(id?: string);
|
|
19
18
|
onStageExecuted(event: FlowStageEvent): void;
|
|
20
19
|
onNext(event: FlowNextEvent): void;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
export type { CombinedNarrativeEntry, CombinedNarrativeOptions } from './CombinedNarrativeBuilder.js';
|
|
2
2
|
export type { CombinedNarrativeRecorderOptions } from './CombinedNarrativeRecorder.js';
|
|
3
3
|
export { CombinedNarrativeRecorder } from './CombinedNarrativeRecorder.js';
|
|
4
|
-
export { ControlFlowNarrativeGenerator } from './ControlFlowNarrativeGenerator.js';
|
|
5
4
|
export { NullControlFlowNarrativeGenerator } from './NullControlFlowNarrativeGenerator.js';
|
|
6
5
|
export type { IControlFlowNarrative } from './types.js';
|
|
7
6
|
export { FlowRecorderDispatcher } from './FlowRecorderDispatcher.js';
|
|
@@ -137,6 +137,12 @@ export declare class FlowchartTraverser<TOut = any, TScope = any> {
|
|
|
137
137
|
getNarrative(): string[];
|
|
138
138
|
/** Returns the FlowRecorderDispatcher, or undefined if narrative is disabled. */
|
|
139
139
|
getFlowRecorderDispatcher(): FlowRecorderDispatcher | undefined;
|
|
140
|
+
/**
|
|
141
|
+
* Build an O(1) ID→node map from the root graph.
|
|
142
|
+
* Used by NodeResolver to avoid repeated DFS on every loopTo() call.
|
|
143
|
+
* Depth-guarded at MAX_EXECUTE_DEPTH to prevent infinite recursion on cyclic graphs.
|
|
144
|
+
*/
|
|
145
|
+
private buildNodeIdMap;
|
|
140
146
|
private getStageFn;
|
|
141
147
|
private executeStage;
|
|
142
148
|
/**
|
|
@@ -112,7 +112,7 @@ export interface HandlerDeps<TOut = any, TScope = any> {
|
|
|
112
112
|
stageMap: Map<string, StageFunction<TOut, TScope>>;
|
|
113
113
|
root: StageNode<TOut, TScope>;
|
|
114
114
|
executionRuntime: IExecutionRuntime;
|
|
115
|
-
|
|
115
|
+
scopeFactory: ScopeFactory<TScope>;
|
|
116
116
|
subflows?: Record<string, {
|
|
117
117
|
root: StageNode<TOut, TScope>;
|
|
118
118
|
}>;
|
|
@@ -154,7 +154,7 @@ export interface RunOptions {
|
|
|
154
154
|
}
|
|
155
155
|
export type { FlowControlType, FlowMessage };
|
|
156
156
|
export interface RuntimeStructureMetadata {
|
|
157
|
-
type: 'stage' | 'decider' | 'selector' | 'fork' | 'streaming';
|
|
157
|
+
type: 'stage' | 'decider' | 'selector' | 'fork' | 'streaming' | 'subflow';
|
|
158
158
|
subflowId?: string;
|
|
159
159
|
isSubflowRoot?: boolean;
|
|
160
160
|
subflowName?: string;
|
|
@@ -207,7 +207,7 @@ export type TraversalResult = BranchResults | string | Error;
|
|
|
207
207
|
export interface SerializedPipelineNode {
|
|
208
208
|
name: string;
|
|
209
209
|
id?: string;
|
|
210
|
-
type?: 'stage' | 'decider' | 'selector' | 'fork' | 'streaming' | 'loop' | 'user' | 'tool' | 'function' | 'sequence';
|
|
210
|
+
type?: 'stage' | 'decider' | 'selector' | 'fork' | 'streaming' | 'subflow' | 'loop' | 'user' | 'tool' | 'function' | 'sequence';
|
|
211
211
|
description?: string;
|
|
212
212
|
children?: SerializedPipelineNode[];
|
|
213
213
|
next?: SerializedPipelineNode;
|
|
@@ -53,23 +53,8 @@ export declare class StageContext {
|
|
|
53
53
|
appendToArray(path: string[], key: string, items: unknown[], description?: string): void;
|
|
54
54
|
mergeObject(path: string[], key: string, obj: Record<string, unknown>, description?: string): void;
|
|
55
55
|
getValue(path: string[], key?: string, description?: string): any;
|
|
56
|
-
/**
|
|
57
|
-
* @deprecated since v3.1.0 — use {@link getValue} instead. Will be removed in v4.0.0.
|
|
58
|
-
* This alias exists for backward compatibility only.
|
|
59
|
-
*/
|
|
60
|
-
get(path: string[], key?: string): any;
|
|
61
56
|
getRoot(key: string): any;
|
|
62
57
|
getGlobal(key: string): any;
|
|
63
|
-
/**
|
|
64
|
-
* @deprecated since v3.1.0 — use {@link getRoot} instead. Will be removed in v4.0.0.
|
|
65
|
-
* This alias exists for backward compatibility only.
|
|
66
|
-
*/
|
|
67
|
-
getFromRoot(key: string): any;
|
|
68
|
-
/**
|
|
69
|
-
* @deprecated since v3.1.0 — use {@link getGlobal} instead. Will be removed in v4.0.0.
|
|
70
|
-
* This alias exists for backward compatibility only.
|
|
71
|
-
*/
|
|
72
|
-
getFromGlobalContext(key: string): any;
|
|
73
58
|
getScope(): Record<string, unknown>;
|
|
74
59
|
getRunId(): string;
|
|
75
60
|
commit(): void;
|
|
@@ -1,17 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* FlowChartExecutor — Public API for executing a compiled FlowChart.
|
|
3
3
|
*
|
|
4
|
-
* Wraps FlowchartTraverser.
|
|
4
|
+
* Wraps FlowchartTraverser. Build a chart with flowChart() and pass the result here:
|
|
5
|
+
*
|
|
5
6
|
* const chart = flowChart('entry', entryFn).addFunction('process', processFn).build();
|
|
6
7
|
*
|
|
7
|
-
* //
|
|
8
|
+
* // No-options form (uses auto-detected TypedScope factory from the chart):
|
|
8
9
|
* const executor = new FlowChartExecutor(chart);
|
|
10
|
+
*
|
|
11
|
+
* // Options-object form (preferred when you need to customize behavior):
|
|
9
12
|
* const executor = new FlowChartExecutor(chart, { scopeFactory: myFactory, enrichSnapshots: true });
|
|
10
13
|
*
|
|
11
|
-
* //
|
|
12
|
-
* const executor = new FlowChartExecutor(chart, myFactory);
|
|
14
|
+
* // 2-param form (accepts a ScopeFactory directly, for backward compatibility):
|
|
15
|
+
* const executor = new FlowChartExecutor(chart, myFactory);
|
|
13
16
|
*
|
|
14
|
-
* const result = await executor.run();
|
|
17
|
+
* const result = await executor.run({ input: data, env: { traceId: 'req-123' } });
|
|
15
18
|
*/
|
|
16
19
|
import type { CombinedNarrativeEntry } from '../engine/narrative/CombinedNarrativeBuilder.js';
|
|
17
20
|
import type { ManifestEntry } from '../engine/narrative/recorders/ManifestFlowRecorder.js';
|
|
@@ -81,45 +84,20 @@ export declare class FlowChartExecutor<TOut = any, TScope = any> {
|
|
|
81
84
|
/**
|
|
82
85
|
* Create a FlowChartExecutor.
|
|
83
86
|
*
|
|
84
|
-
* **
|
|
87
|
+
* **Options object form** (preferred):
|
|
85
88
|
* ```typescript
|
|
86
89
|
* new FlowChartExecutor(chart, { scopeFactory, enrichSnapshots: true })
|
|
87
90
|
* ```
|
|
88
91
|
*
|
|
89
|
-
* **
|
|
92
|
+
* **2-param form** (also supported):
|
|
90
93
|
* ```typescript
|
|
91
|
-
* new FlowChartExecutor(chart, scopeFactory)
|
|
92
|
-
* new FlowChartExecutor(chart, factory, defaultValues, ...) // deprecated: use options object
|
|
94
|
+
* new FlowChartExecutor(chart, scopeFactory)
|
|
93
95
|
* ```
|
|
94
96
|
*
|
|
95
97
|
* @param flowChart - The compiled FlowChart returned by `flowChart(...).build()`
|
|
96
|
-
* @param factoryOrOptions - A `ScopeFactory<TScope>`
|
|
97
|
-
* `FlowChartExecutorOptions<TScope>` options object (preferred for 3+ settings).
|
|
98
|
-
* Passing `(chart, scopeFactory)` — the 2-param form — is fine and will not be removed.
|
|
99
|
-
* Only params 3–9 are deprecated.
|
|
100
|
-
* @param defaultValuesForContext - @deprecated Pass via `options.defaultValuesForContext` instead.
|
|
101
|
-
* @param initialContext - @deprecated Pass via `options.initialContext` instead.
|
|
102
|
-
* @param readOnlyContext - @deprecated Pass via `options.readOnlyContext` instead.
|
|
103
|
-
* @param throttlingErrorChecker - @deprecated Pass via `options.throttlingErrorChecker` instead.
|
|
104
|
-
* @param streamHandlers - @deprecated Pass via `options.streamHandlers` instead.
|
|
105
|
-
* @param scopeProtectionMode - @deprecated Pass via `options.scopeProtectionMode` instead.
|
|
106
|
-
* @param enrichSnapshots - @deprecated Pass via `options.enrichSnapshots` instead.
|
|
98
|
+
* @param factoryOrOptions - A `ScopeFactory<TScope>` OR a `FlowChartExecutorOptions<TScope>` options object.
|
|
107
99
|
*/
|
|
108
|
-
constructor(flowChart: FlowChart<TOut, TScope>, factoryOrOptions?: ScopeFactory<TScope> | FlowChartExecutorOptions<TScope
|
|
109
|
-
/** @deprecated Use {@link FlowChartExecutorOptions} instead. */
|
|
110
|
-
defaultValuesForContext?: unknown,
|
|
111
|
-
/** @deprecated Use {@link FlowChartExecutorOptions} instead. */
|
|
112
|
-
initialContext?: unknown,
|
|
113
|
-
/** @deprecated Use {@link FlowChartExecutorOptions} instead. */
|
|
114
|
-
readOnlyContext?: unknown,
|
|
115
|
-
/** @deprecated Use {@link FlowChartExecutorOptions} instead. */
|
|
116
|
-
throttlingErrorChecker?: (error: unknown) => boolean,
|
|
117
|
-
/** @deprecated Use {@link FlowChartExecutorOptions} instead. */
|
|
118
|
-
streamHandlers?: StreamHandlers,
|
|
119
|
-
/** @deprecated Use {@link FlowChartExecutorOptions} instead. */
|
|
120
|
-
scopeProtectionMode?: ScopeProtectionMode,
|
|
121
|
-
/** @deprecated Use {@link FlowChartExecutorOptions} instead. */
|
|
122
|
-
enrichSnapshots?: boolean);
|
|
100
|
+
constructor(flowChart: FlowChart<TOut, TScope>, factoryOrOptions?: ScopeFactory<TScope> | FlowChartExecutorOptions<TScope>);
|
|
123
101
|
private createTraverser;
|
|
124
102
|
enableNarrative(): void;
|
|
125
103
|
/**
|
|
@@ -195,8 +173,6 @@ export declare class FlowChartExecutor<TOut = any, TScope = any> {
|
|
|
195
173
|
/** @internal */
|
|
196
174
|
getExtractedResults<TResult = unknown>(): Map<string, TResult>;
|
|
197
175
|
/** @internal */
|
|
198
|
-
getEnrichedResults<TResult = unknown>(): Map<string, TResult>;
|
|
199
|
-
/** @internal */
|
|
200
176
|
getExtractorErrors(): ExtractorError[];
|
|
201
177
|
/**
|
|
202
178
|
* Returns the subflow manifest from an attached ManifestFlowRecorder.
|
|
@@ -47,6 +47,8 @@ export interface RunnableFlowChart<TOut = any, TScope = any> extends FlowChart<T
|
|
|
47
47
|
toOpenAPI(options?: ChartOpenAPIOptions): object;
|
|
48
48
|
/** Generate MCP tool description from chart metadata. Cached. */
|
|
49
49
|
toMCPTool(): MCPToolDescription;
|
|
50
|
+
/** Generate a Mermaid flowchart diagram string from the chart's node graph. */
|
|
51
|
+
toMermaid(): string;
|
|
50
52
|
}
|
|
51
53
|
/**
|
|
52
54
|
* Enrich a FlowChart with run + describe methods.
|
|
@@ -10,7 +10,6 @@ export type { DebugEntry, DebugRecorderOptions, DebugVerbosity } from './recorde
|
|
|
10
10
|
export { DebugRecorder } from './recorders/DebugRecorder.js';
|
|
11
11
|
export type { AggregatedMetrics, StageMetrics } from './recorders/MetricRecorder.js';
|
|
12
12
|
export { MetricRecorder } from './recorders/MetricRecorder.js';
|
|
13
|
-
export type { NarrativeDetail, NarrativeOperation, NarrativeRecorderOptions, StageNarrativeData, } from './recorders/NarrativeRecorder.js';
|
|
14
13
|
export type { ScopeProtectionMode, ScopeProtectionOptions } from './protection/index.js';
|
|
15
14
|
export { createErrorMessage, createProtectedScope } from './protection/index.js';
|
|
16
15
|
export type { ProviderResolver, ResolveOptions, ScopeFactory, ScopeProvider, StageContextLike, StrictMode, } from './providers/index.js';
|
|
@@ -12,12 +12,6 @@ export interface StageContextLike {
|
|
|
12
12
|
addLog?(key: string, val: unknown): void;
|
|
13
13
|
addError?(key: string, val: unknown): void;
|
|
14
14
|
getGlobal?(key: string): unknown;
|
|
15
|
-
/**
|
|
16
|
-
* @deprecated since v3.1.0 — use {@link getGlobal} instead. Will be removed in v4.0.0.
|
|
17
|
-
* Internal callers no longer invoke this method — implementors of `StageContextLike`
|
|
18
|
-
* must provide `getGlobal?` (not just `getFromGlobalContext?`) for `getInitialValueFor` to work.
|
|
19
|
-
*/
|
|
20
|
-
getFromGlobalContext?(key: string): unknown;
|
|
21
15
|
setRoot?(key: string, value: unknown): void;
|
|
22
16
|
setGlobal?(key: string, value: unknown, description?: string): void;
|
|
23
17
|
pipelineId?: string;
|
|
@@ -3,4 +3,3 @@ export type { DebugEntry, DebugRecorderOptions, DebugVerbosity } from './DebugRe
|
|
|
3
3
|
export { DebugRecorder } from './DebugRecorder.js';
|
|
4
4
|
export type { AggregatedMetrics, StageMetrics } from './MetricRecorder.js';
|
|
5
5
|
export { MetricRecorder } from './MetricRecorder.js';
|
|
6
|
-
export type { NarrativeDetail, NarrativeOperation, NarrativeRecorderOptions, StageNarrativeData, } from './NarrativeRecorder.js';
|
package/package.json
CHANGED