footprintjs 8.2.0 → 8.3.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/esm/lib/engine/handlers/NodeResolver.js +14 -4
- package/dist/esm/lib/engine/traversal/FlowchartTraverser.js +137 -39
- package/dist/lib/engine/handlers/NodeResolver.js +14 -4
- package/dist/lib/engine/traversal/FlowchartTraverser.js +137 -39
- package/dist/types/lib/engine/handlers/NodeResolver.d.ts +9 -1
- package/dist/types/lib/engine/traversal/FlowchartTraverser.d.ts +65 -1
- package/package.json +1 -1
|
@@ -12,9 +12,18 @@ exports.NodeResolver = void 0;
|
|
|
12
12
|
class NodeResolver {
|
|
13
13
|
deps;
|
|
14
14
|
nodeIdMap;
|
|
15
|
-
|
|
15
|
+
getEffectiveChildren;
|
|
16
|
+
constructor(deps, nodeIdMap,
|
|
17
|
+
/**
|
|
18
|
+
* Overlay-aware children accessor injected by the traverser. The DFS
|
|
19
|
+
* fallback resolves loop targets against the LIVE runtime shape — a node
|
|
20
|
+
* patched by a dynamic StageNode return carries its children in the
|
|
21
|
+
* traverser-local overlay, not on the shared built-chart node.
|
|
22
|
+
*/
|
|
23
|
+
getEffectiveChildren) {
|
|
16
24
|
this.deps = deps;
|
|
17
25
|
this.nodeIdMap = nodeIdMap ?? new Map();
|
|
26
|
+
this.getEffectiveChildren = getEffectiveChildren;
|
|
18
27
|
}
|
|
19
28
|
/**
|
|
20
29
|
* O(1) node lookup via pre-built ID map.
|
|
@@ -38,8 +47,9 @@ class NodeResolver {
|
|
|
38
47
|
_dfs(nodeId, node) {
|
|
39
48
|
if (node.id === nodeId)
|
|
40
49
|
return node;
|
|
41
|
-
|
|
42
|
-
|
|
50
|
+
const children = this.getEffectiveChildren ? this.getEffectiveChildren(node) : node.children;
|
|
51
|
+
if (children) {
|
|
52
|
+
for (const child of children) {
|
|
43
53
|
const found = this._dfs(nodeId, child);
|
|
44
54
|
if (found)
|
|
45
55
|
return found;
|
|
@@ -91,4 +101,4 @@ class NodeResolver {
|
|
|
91
101
|
}
|
|
92
102
|
}
|
|
93
103
|
exports.NodeResolver = NodeResolver;
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTm9kZVJlc29sdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9lbmdpbmUvaGFuZGxlcnMvTm9kZVJlc29sdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7OztHQU9HOzs7QUFNSCxNQUFhLFlBQVk7SUFLYjtJQUpPLFNBQVMsQ0FBdUM7SUFDaEQsb0JBQW9CLENBQTRFO0lBRWpILFlBQ1UsSUFBK0IsRUFDdkMsU0FBZ0Q7SUFDaEQ7Ozs7O09BS0c7SUFDSCxvQkFBK0Y7UUFSdkYsU0FBSSxHQUFKLElBQUksQ0FBMkI7UUFVdkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsb0JBQW9CLENBQUM7SUFDbkQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxZQUFZLENBQUMsTUFBYyxFQUFFLFNBQW1DO1FBQzlELGtGQUFrRjtRQUNsRixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDZixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMxQyxJQUFJLE1BQU07Z0JBQUUsT0FBTyxNQUFNLENBQUM7UUFDNUIsQ0FBQztRQUVELCtFQUErRTtRQUMvRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFNBQVMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRDs7O09BR0c7SUFDSyxJQUFJLENBQUMsTUFBYyxFQUFFLElBQTZCO1FBQ3hELElBQUksSUFBSSxDQUFDLEVBQUUsS0FBSyxNQUFNO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFFcEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDN0YsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNiLEtBQUssTUFBTSxLQUFLLElBQUksUUFBUSxFQUFFLENBQUM7Z0JBQzdCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUN2QyxJQUFJLEtBQUs7b0JBQUUsT0FBTyxLQUFLLENBQUM7WUFDMUIsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNkLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzQyxJQUFJLEtBQUs7Z0JBQUUsT0FBTyxLQUFLLENBQUM7UUFDMUIsQ0FBQztRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHVCQUF1QixDQUFDLElBQTZCO1FBQ25ELDBDQUEwQztRQUMxQyxJQUFJLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRXhFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPLElBQUksQ0FBQztRQUVyQywyQ0FBMkM7UUFDM0MsTUFBTSxTQUFTLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQWEsQ0FBQztRQUM1RixJQUFJLFVBQXlELENBQUM7UUFFOUQsS0FBSyxNQUFNLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUM1QixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQzVCLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDckMsTUFBTTtZQUNSLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDbkIsNkNBQTZDLElBQUksQ0FBQyxJQUFJLGtCQUFrQixTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQ2hHLENBQUM7WUFDRixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxrREFBa0Q7UUFDbEQsK0VBQStFO1FBQy9FLHVFQUF1RTtRQUN2RSxPQUFPO1lBQ0wsR0FBRyxVQUFVLENBQUMsSUFBSTtZQUNsQixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDakMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3pCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixFQUFFLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUU7WUFDakMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CO1NBQ3JGLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFwR0Qsb0NBb0dDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBOb2RlUmVzb2x2ZXIg4oCUIERGUyBub2RlIGxvb2t1cCArIHN1YmZsb3cgcmVmZXJlbmNlIHJlc29sdXRpb24uXG4gKlxuICogUmVzcG9uc2liaWxpdGllczpcbiAqIC0gRmluZCBub2RlcyBieSBJRCB2aWEgcmVjdXJzaXZlIGRlcHRoLWZpcnN0IHNlYXJjaCAoZm9yIGJhY2stZWRnZS9sb29wIHN1cHBvcnQpXG4gKiAtIFJlc29sdmUgc3ViZmxvdyByZWZlcmVuY2Ugbm9kZXMgdG8gYWN0dWFsIHN1YmZsb3cgc3RydWN0dXJlc1xuICogLSBFdmFsdWF0ZSBkZWNpZGVycyB0byBkZXRlcm1pbmUgbmV4dCBub2RlIGluIGJyYW5jaGluZyBzY2VuYXJpb3NcbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFN0YWdlQ29udGV4dCB9IGZyb20gJy4uLy4uL21lbW9yeS9TdGFnZUNvbnRleHQuanMnO1xuaW1wb3J0IHR5cGUgeyBTdGFnZU5vZGUgfSBmcm9tICcuLi9ncmFwaC9TdGFnZU5vZGUuanMnO1xuaW1wb3J0IHR5cGUgeyBIYW5kbGVyRGVwcyB9IGZyb20gJy4uL3R5cGVzLmpzJztcblxuZXhwb3J0IGNsYXNzIE5vZGVSZXNvbHZlcjxUT3V0ID0gYW55LCBUU2NvcGUgPSBhbnk+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBub2RlSWRNYXA6IE1hcDxzdHJpbmcsIFN0YWdlTm9kZTxUT3V0LCBUU2NvcGU+PjtcbiAgcHJpdmF0ZSByZWFkb25seSBnZXRFZmZlY3RpdmVDaGlsZHJlbj86IChub2RlOiBTdGFnZU5vZGU8VE91dCwgVFNjb3BlPikgPT4gU3RhZ2VOb2RlPFRPdXQsIFRTY29wZT5bXSB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGRlcHM6IEhhbmRsZXJEZXBzPFRPdXQsIFRTY29wZT4sXG4gICAgbm9kZUlkTWFwPzogTWFwPHN0cmluZywgU3RhZ2VOb2RlPFRPdXQsIFRTY29wZT4+LFxuICAgIC8qKlxuICAgICAqIE92ZXJsYXktYXdhcmUgY2hpbGRyZW4gYWNjZXNzb3IgaW5qZWN0ZWQgYnkgdGhlIHRyYXZlcnNlci4gVGhlIERGU1xuICAgICAqIGZhbGxiYWNrIHJlc29sdmVzIGxvb3AgdGFyZ2V0cyBhZ2FpbnN0IHRoZSBMSVZFIHJ1bnRpbWUgc2hhcGUg4oCUIGEgbm9kZVxuICAgICAqIHBhdGNoZWQgYnkgYSBkeW5hbWljIFN0YWdlTm9kZSByZXR1cm4gY2FycmllcyBpdHMgY2hpbGRyZW4gaW4gdGhlXG4gICAgICogdHJhdmVyc2VyLWxvY2FsIG92ZXJsYXksIG5vdCBvbiB0aGUgc2hhcmVkIGJ1aWx0LWNoYXJ0IG5vZGUuXG4gICAgICovXG4gICAgZ2V0RWZmZWN0aXZlQ2hpbGRyZW4/OiAobm9kZTogU3RhZ2VOb2RlPFRPdXQsIFRTY29wZT4pID0+IFN0YWdlTm9kZTxUT3V0LCBUU2NvcGU+W10gfCB1bmRlZmluZWQsXG4gICkge1xuICAgIHRoaXMubm9kZUlkTWFwID0gbm9kZUlkTWFwID8/IG5ldyBNYXAoKTtcbiAgICB0aGlzLmdldEVmZmVjdGl2ZUNoaWxkcmVuID0gZ2V0RWZmZWN0aXZlQ2hpbGRyZW47XG4gIH1cblxuICAvKipcbiAgICogTygxKSBub2RlIGxvb2t1cCB2aWEgcHJlLWJ1aWx0IElEIG1hcC5cbiAgICogRmFsbHMgYmFjayB0byBERlMgZnJvbSBzdGFydE5vZGUgKGZvciBkeW5hbWljIG5vZGVzIGFkZGVkIGF0IHJ1bnRpbWVcbiAgICogb3Igc3ViZmxvdy1sb2NhbCBsb29rdXBzIHRoYXQgdXNlIGFuIGV4cGxpY2l0IHN0YXJ0Tm9kZSkuXG4gICAqL1xuICBmaW5kTm9kZUJ5SWQobm9kZUlkOiBzdHJpbmcsIHN0YXJ0Tm9kZT86IFN0YWdlTm9kZTxUT3V0LCBUU2NvcGU+KTogU3RhZ2VOb2RlPFRPdXQsIFRTY29wZT4gfCB1bmRlZmluZWQge1xuICAgIC8vIEZhc3QgcGF0aDogTygxKSBtYXAgbG9va3VwIChvbmx5IHZhbGlkIGZvciByb290LWxldmVsIGdyYXBoLCBub3Qgc3ViZmxvdy1sb2NhbClcbiAgICBpZiAoIXN0YXJ0Tm9kZSkge1xuICAgICAgY29uc3QgbWFwcGVkID0gdGhpcy5ub2RlSWRNYXAuZ2V0KG5vZGVJZCk7XG4gICAgICBpZiAobWFwcGVkKSByZXR1cm4gbWFwcGVkO1xuICAgIH1cblxuICAgIC8vIEZhbGxiYWNrOiBERlMgZnJvbSBzdGFydE5vZGUgKHN1YmZsb3ctbG9jYWwgb3IgZHluYW1pYyBub2RlcyBub3QgaW4gdGhlIG1hcClcbiAgICByZXR1cm4gdGhpcy5fZGZzKG5vZGVJZCwgc3RhcnROb2RlID8/IHRoaXMuZGVwcy5yb290KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBERlMgc2VhcmNoIGZvciBhIG5vZGUgYnkgSUQuXG4gICAqIFVzZWQgYXMgZmFsbGJhY2sgd2hlbiB0aGUgbm9kZSBpcyBub3QgaW4gdGhlIHByZS1idWlsdCBtYXAuXG4gICAqL1xuICBwcml2YXRlIF9kZnMobm9kZUlkOiBzdHJpbmcsIG5vZGU6IFN0YWdlTm9kZTxUT3V0LCBUU2NvcGU+KTogU3RhZ2VOb2RlPFRPdXQsIFRTY29wZT4gfCB1bmRlZmluZWQge1xuICAgIGlmIChub2RlLmlkID09PSBub2RlSWQpIHJldHVybiBub2RlO1xuXG4gICAgY29uc3QgY2hpbGRyZW4gPSB0aGlzLmdldEVmZmVjdGl2ZUNoaWxkcmVuID8gdGhpcy5nZXRFZmZlY3RpdmVDaGlsZHJlbihub2RlKSA6IG5vZGUuY2hpbGRyZW47XG4gICAgaWYgKGNoaWxkcmVuKSB7XG4gICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIGNoaWxkcmVuKSB7XG4gICAgICAgIGNvbnN0IGZvdW5kID0gdGhpcy5fZGZzKG5vZGVJZCwgY2hpbGQpO1xuICAgICAgICBpZiAoZm91bmQpIHJldHVybiBmb3VuZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobm9kZS5uZXh0KSB7XG4gICAgICBjb25zdCBmb3VuZCA9IHRoaXMuX2Rmcyhub2RlSWQsIG5vZGUubmV4dCk7XG4gICAgICBpZiAoZm91bmQpIHJldHVybiBmb3VuZDtcbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc29sdmUgYSBzdWJmbG93IHJlZmVyZW5jZSBub2RlIHRvIGl0cyBhY3R1YWwgc3RydWN0dXJlLlxuICAgKlxuICAgKiBSZWZlcmVuY2Ugbm9kZXMgYXJlIGxpZ2h0d2VpZ2h0IHBsYWNlaG9sZGVycyAoaXNTdWJmbG93Um9vdCBidXQgbm8gZm4vY2hpbGRyZW4pLlxuICAgKiBUaGUgYWN0dWFsIHN0cnVjdHVyZSBsaXZlcyBpbiB0aGUgc3ViZmxvd3MgZGljdGlvbmFyeS5cbiAgICovXG4gIHJlc29sdmVTdWJmbG93UmVmZXJlbmNlKG5vZGU6IFN0YWdlTm9kZTxUT3V0LCBUU2NvcGU+KTogU3RhZ2VOb2RlPFRPdXQsIFRTY29wZT4ge1xuICAgIC8vIEFscmVhZHkgaGFzIHN0cnVjdHVyZSDigJQgbm90IGEgcmVmZXJlbmNlXG4gICAgaWYgKG5vZGUuZm4gfHwgKG5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwKSkgcmV0dXJuIG5vZGU7XG5cbiAgICBpZiAoIXRoaXMuZGVwcy5zdWJmbG93cykgcmV0dXJuIG5vZGU7XG5cbiAgICAvLyBUcnkgbXVsdGlwbGUga2V5cyBpbiBvcmRlciBvZiBwcmVmZXJlbmNlXG4gICAgY29uc3Qga2V5c1RvVHJ5ID0gW25vZGUuc3ViZmxvd0lkLCBub2RlLnN1YmZsb3dOYW1lLCBub2RlLm5hbWVdLmZpbHRlcihCb29sZWFuKSBhcyBzdHJpbmdbXTtcbiAgICBsZXQgc3ViZmxvd0RlZjogeyByb290OiBTdGFnZU5vZGU8VE91dCwgVFNjb3BlPiB9IHwgdW5kZWZpbmVkO1xuXG4gICAgZm9yIChjb25zdCBrZXkgb2Yga2V5c1RvVHJ5KSB7XG4gICAgICBpZiAodGhpcy5kZXBzLnN1YmZsb3dzW2tleV0pIHtcbiAgICAgICAgc3ViZmxvd0RlZiA9IHRoaXMuZGVwcy5zdWJmbG93c1trZXldO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIXN1YmZsb3dEZWYpIHtcbiAgICAgIHRoaXMuZGVwcy5sb2dnZXIuaW5mbyhcbiAgICAgICAgYFN1YmZsb3cgbm90IGZvdW5kIGluIGRpY3Rpb25hcnkgZm9yIG5vZGUgJyR7bm9kZS5uYW1lfScgKHRyaWVkIGtleXM6ICR7a2V5c1RvVHJ5LmpvaW4oJywgJyl9KWAsXG4gICAgICApO1xuICAgICAgcmV0dXJuIG5vZGU7XG4gICAgfVxuXG4gICAgLy8gTWVyZ2UgcmVmZXJlbmNlIG1ldGFkYXRhIHdpdGggYWN0dWFsIHN0cnVjdHVyZS5cbiAgICAvLyBpZCBjb21lcyBmcm9tIHRoZSBpbm5lciByb290ICh0aGUgYWN0dWFsIHN0YWdlIGlkZW50aXR5IGZvciB0cmFjZSBtYXRjaGluZyksXG4gICAgLy8gbm90IHRoZSBtb3VudCBub2RlICh3aGljaCBpcyB0aGUgc3ViZmxvdyBlbnRyeSBwb2ludCBpbiB0aGUgcGFyZW50KS5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3ViZmxvd0RlZi5yb290LFxuICAgICAgaXNTdWJmbG93Um9vdDogbm9kZS5pc1N1YmZsb3dSb290LFxuICAgICAgc3ViZmxvd0lkOiBub2RlLnN1YmZsb3dJZCxcbiAgICAgIHN1YmZsb3dOYW1lOiBub2RlLnN1YmZsb3dOYW1lLFxuICAgICAgaWQ6IHN1YmZsb3dEZWYucm9vdC5pZCB8fCBub2RlLmlkLFxuICAgICAgc3ViZmxvd01vdW50T3B0aW9uczogbm9kZS5zdWJmbG93TW91bnRPcHRpb25zIHx8IHN1YmZsb3dEZWYucm9vdC5zdWJmbG93TW91bnRPcHRpb25zLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|