footprintjs 4.16.0 → 4.17.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +567 -82
- package/CLAUDE.md +57 -0
- package/README.md +2 -0
- package/dist/advanced.js +4 -2
- package/dist/detach.js +78 -0
- package/dist/esm/advanced.js +2 -1
- package/dist/esm/detach.js +57 -0
- package/dist/esm/lib/builder/FlowChartBuilder.js +171 -61
- package/dist/esm/lib/contract/openapi.js +4 -5
- package/dist/esm/lib/contract/schema.js +115 -4
- package/dist/esm/lib/decide/decide.js +4 -5
- package/dist/esm/lib/decide/evidence.js +3 -2
- package/dist/esm/lib/detach/drivers/immediate.js +66 -0
- package/dist/esm/lib/detach/drivers/microtaskBatch.js +113 -0
- package/dist/esm/lib/detach/drivers/sendBeacon.js +78 -0
- package/dist/esm/lib/detach/drivers/setImmediate.js +81 -0
- package/dist/esm/lib/detach/drivers/setTimeout.js +69 -0
- package/dist/esm/lib/detach/drivers/workerThread.js +117 -0
- package/dist/esm/lib/detach/flush.js +91 -0
- package/dist/esm/lib/detach/handle.js +134 -0
- package/dist/esm/lib/detach/registry.js +97 -0
- package/dist/esm/lib/detach/runChild.js +40 -0
- package/dist/esm/lib/detach/spawn.js +86 -0
- package/dist/esm/lib/detach/types.js +37 -0
- package/dist/esm/lib/engine/errors/errorInfo.js +4 -4
- package/dist/esm/lib/engine/graph/StageNode.js +2 -2
- package/dist/esm/lib/engine/handlers/ChildrenExecutor.js +9 -8
- package/dist/esm/lib/engine/handlers/ContinuationResolver.js +12 -9
- package/dist/esm/lib/engine/handlers/DeciderHandler.js +7 -8
- package/dist/esm/lib/engine/handlers/ExtractorRunner.js +14 -8
- package/dist/esm/lib/engine/handlers/NodeResolver.js +5 -3
- package/dist/esm/lib/engine/handlers/RuntimeStructureManager.js +11 -14
- package/dist/esm/lib/engine/handlers/SelectorHandler.js +9 -9
- package/dist/esm/lib/engine/handlers/StageRunner.js +9 -11
- package/dist/esm/lib/engine/handlers/SubflowExecutor.js +13 -12
- package/dist/esm/lib/engine/handlers/SubflowInputMapper.js +4 -4
- package/dist/esm/lib/engine/narrative/CombinedNarrativeRecorder.js +85 -96
- package/dist/esm/lib/engine/narrative/FlowRecorderDispatcher.js +18 -36
- package/dist/esm/lib/engine/narrative/NarrativeFlowRecorder.js +6 -5
- package/dist/esm/lib/engine/narrative/recorders/AdaptiveNarrativeFlowRecorder.js +7 -6
- package/dist/esm/lib/engine/narrative/recorders/ManifestFlowRecorder.js +10 -10
- package/dist/esm/lib/engine/narrative/recorders/MilestoneNarrativeFlowRecorder.js +5 -3
- package/dist/esm/lib/engine/narrative/recorders/ProgressiveNarrativeFlowRecorder.js +4 -3
- package/dist/esm/lib/engine/narrative/recorders/RLENarrativeFlowRecorder.js +4 -4
- package/dist/esm/lib/engine/narrative/recorders/SeparateNarrativeFlowRecorder.js +5 -6
- package/dist/esm/lib/engine/narrative/recorders/SilentNarrativeFlowRecorder.js +5 -6
- package/dist/esm/lib/engine/narrative/recorders/WindowedNarrativeFlowRecorder.js +5 -3
- package/dist/esm/lib/engine/traversal/FlowchartTraverser.js +97 -71
- package/dist/esm/lib/memory/DiagnosticCollector.js +6 -8
- package/dist/esm/lib/memory/EventLog.js +5 -3
- package/dist/esm/lib/memory/SharedMemory.js +3 -2
- package/dist/esm/lib/memory/StageContext.js +44 -14
- package/dist/esm/lib/memory/TransactionBuffer.js +9 -8
- package/dist/esm/lib/memory/backtrack.js +3 -4
- package/dist/esm/lib/memory/commitLogUtils.js +2 -2
- package/dist/esm/lib/memory/utils.js +2 -3
- package/dist/esm/lib/pause/types.js +33 -14
- package/dist/esm/lib/reactive/createTypedScope.js +10 -8
- package/dist/esm/lib/reactive/types.js +3 -1
- package/dist/esm/lib/recorder/BoundaryStateTracker.js +263 -0
- package/dist/esm/lib/recorder/CompositeRecorder.js +3 -1
- package/dist/esm/lib/recorder/InOutRecorder.js +5 -6
- package/dist/esm/lib/recorder/KeyedRecorder.js +2 -4
- package/dist/esm/lib/recorder/QualityRecorder.js +15 -14
- package/dist/esm/lib/recorder/SequenceRecorder.js +11 -12
- package/dist/esm/lib/recorder/TopologyRecorder.js +36 -40
- package/dist/esm/lib/recorder/index.js +2 -1
- package/dist/esm/lib/recorder/qualityTrace.js +4 -5
- package/dist/esm/lib/runner/ExecutionRuntime.js +20 -4
- package/dist/esm/lib/runner/FlowChartExecutor.js +99 -55
- package/dist/esm/lib/runner/RunContext.js +5 -3
- package/dist/esm/lib/runner/RunnableChart.js +7 -9
- package/dist/esm/lib/runner/getSubtreeSnapshot.js +4 -5
- package/dist/esm/lib/schema/errors.js +4 -3
- package/dist/esm/lib/schema/validate.js +4 -5
- package/dist/esm/lib/scope/ScopeFacade.js +52 -35
- package/dist/esm/lib/scope/providers/baseStateCompatible.js +9 -9
- package/dist/esm/lib/scope/providers/guards.js +2 -2
- package/dist/esm/lib/scope/recorders/DebugRecorder.js +9 -7
- package/dist/esm/lib/scope/recorders/MetricRecorder.js +10 -8
- package/dist/esm/lib/scope/state/zod/defineScopeFromZod.js +2 -3
- package/dist/esm/lib/scope/state/zod/resolver.js +2 -3
- package/dist/esm/lib/scope/state/zod/scopeFactory.js +16 -20
- package/dist/esm/lib/scope/state/zod/utils/validateHelper.js +57 -14
- package/dist/esm/trace.js +4 -1
- package/dist/lib/builder/FlowChartBuilder.js +171 -61
- package/dist/lib/contract/openapi.js +4 -5
- package/dist/lib/contract/schema.js +115 -4
- package/dist/lib/decide/decide.js +4 -5
- package/dist/lib/decide/evidence.js +3 -2
- package/dist/lib/detach/drivers/immediate.js +70 -0
- package/dist/lib/detach/drivers/microtaskBatch.js +117 -0
- package/dist/lib/detach/drivers/sendBeacon.js +82 -0
- package/dist/lib/detach/drivers/setImmediate.js +85 -0
- package/dist/lib/detach/drivers/setTimeout.js +73 -0
- package/dist/lib/detach/drivers/workerThread.js +121 -0
- package/dist/lib/detach/flush.js +95 -0
- package/dist/lib/detach/handle.js +140 -0
- package/dist/lib/detach/registry.js +106 -0
- package/dist/lib/detach/runChild.js +67 -0
- package/dist/lib/detach/spawn.js +92 -0
- package/dist/lib/detach/types.js +38 -0
- package/dist/lib/engine/errors/errorInfo.js +4 -4
- package/dist/lib/engine/graph/StageNode.js +2 -2
- package/dist/lib/engine/handlers/ChildrenExecutor.js +9 -8
- package/dist/lib/engine/handlers/ContinuationResolver.js +12 -9
- package/dist/lib/engine/handlers/DeciderHandler.js +7 -8
- package/dist/lib/engine/handlers/ExtractorRunner.js +14 -8
- package/dist/lib/engine/handlers/NodeResolver.js +5 -3
- package/dist/lib/engine/handlers/RuntimeStructureManager.js +11 -14
- package/dist/lib/engine/handlers/SelectorHandler.js +9 -9
- package/dist/lib/engine/handlers/StageRunner.js +9 -11
- package/dist/lib/engine/handlers/SubflowExecutor.js +13 -12
- package/dist/lib/engine/handlers/SubflowInputMapper.js +4 -4
- package/dist/lib/engine/narrative/CombinedNarrativeRecorder.js +85 -96
- package/dist/lib/engine/narrative/FlowRecorderDispatcher.js +18 -36
- package/dist/lib/engine/narrative/NarrativeFlowRecorder.js +6 -5
- package/dist/lib/engine/narrative/recorders/AdaptiveNarrativeFlowRecorder.js +7 -6
- package/dist/lib/engine/narrative/recorders/ManifestFlowRecorder.js +10 -10
- package/dist/lib/engine/narrative/recorders/MilestoneNarrativeFlowRecorder.js +5 -3
- package/dist/lib/engine/narrative/recorders/ProgressiveNarrativeFlowRecorder.js +4 -3
- package/dist/lib/engine/narrative/recorders/RLENarrativeFlowRecorder.js +4 -4
- package/dist/lib/engine/narrative/recorders/SeparateNarrativeFlowRecorder.js +5 -6
- package/dist/lib/engine/narrative/recorders/SilentNarrativeFlowRecorder.js +5 -6
- package/dist/lib/engine/narrative/recorders/WindowedNarrativeFlowRecorder.js +5 -3
- package/dist/lib/engine/traversal/FlowchartTraverser.js +97 -71
- package/dist/lib/memory/DiagnosticCollector.js +6 -8
- package/dist/lib/memory/EventLog.js +5 -3
- package/dist/lib/memory/SharedMemory.js +3 -2
- package/dist/lib/memory/StageContext.js +44 -14
- package/dist/lib/memory/TransactionBuffer.js +9 -8
- package/dist/lib/memory/backtrack.js +3 -4
- package/dist/lib/memory/commitLogUtils.js +2 -2
- package/dist/lib/memory/utils.js +2 -3
- package/dist/lib/pause/types.js +33 -14
- package/dist/lib/reactive/createTypedScope.js +10 -8
- package/dist/lib/reactive/types.js +3 -1
- package/dist/lib/recorder/BoundaryStateTracker.js +267 -0
- package/dist/lib/recorder/CompositeRecorder.js +3 -1
- package/dist/lib/recorder/InOutRecorder.js +5 -6
- package/dist/lib/recorder/KeyedRecorder.js +2 -4
- package/dist/lib/recorder/QualityRecorder.js +15 -14
- package/dist/lib/recorder/SequenceRecorder.js +11 -12
- package/dist/lib/recorder/TopologyRecorder.js +36 -40
- package/dist/lib/recorder/index.js +4 -2
- package/dist/lib/recorder/qualityTrace.js +4 -5
- package/dist/lib/runner/ExecutionRuntime.js +20 -4
- package/dist/lib/runner/FlowChartExecutor.js +99 -55
- package/dist/lib/runner/RunContext.js +5 -3
- package/dist/lib/runner/RunnableChart.js +7 -9
- package/dist/lib/runner/getSubtreeSnapshot.js +4 -5
- package/dist/lib/schema/errors.js +4 -3
- package/dist/lib/schema/validate.js +4 -5
- package/dist/lib/scope/ScopeFacade.js +52 -35
- package/dist/lib/scope/providers/baseStateCompatible.js +9 -9
- package/dist/lib/scope/providers/guards.js +2 -2
- package/dist/lib/scope/recorders/DebugRecorder.js +9 -7
- package/dist/lib/scope/recorders/MetricRecorder.js +10 -8
- package/dist/lib/scope/state/zod/defineScopeFromZod.js +2 -3
- package/dist/lib/scope/state/zod/resolver.js +2 -3
- package/dist/lib/scope/state/zod/scopeFactory.js +16 -20
- package/dist/lib/scope/state/zod/utils/validateHelper.js +57 -14
- package/dist/trace.js +6 -2
- package/dist/types/advanced.d.ts +1 -0
- package/dist/types/detach.d.ts +59 -0
- package/dist/types/lib/builder/FlowChartBuilder.d.ts +81 -0
- package/dist/types/lib/detach/drivers/immediate.d.ts +39 -0
- package/dist/types/lib/detach/drivers/microtaskBatch.d.ts +57 -0
- package/dist/types/lib/detach/drivers/sendBeacon.d.ts +38 -0
- package/dist/types/lib/detach/drivers/setImmediate.d.ts +32 -0
- package/dist/types/lib/detach/drivers/setTimeout.d.ts +34 -0
- package/dist/types/lib/detach/drivers/workerThread.d.ts +50 -0
- package/dist/types/lib/detach/flush.d.ts +62 -0
- package/dist/types/lib/detach/handle.d.ts +83 -0
- package/dist/types/lib/detach/registry.d.ts +82 -0
- package/dist/types/lib/detach/runChild.d.ts +41 -0
- package/dist/types/lib/detach/spawn.d.ts +64 -0
- package/dist/types/lib/detach/types.d.ts +200 -0
- package/dist/types/lib/engine/traversal/FlowchartTraverser.d.ts +0 -1
- package/dist/types/lib/engine/types.d.ts +0 -1
- package/dist/types/lib/reactive/types.d.ts +4 -0
- package/dist/types/lib/recorder/BoundaryStateTracker.d.ts +215 -0
- package/dist/types/lib/recorder/index.d.ts +1 -0
- package/dist/types/lib/runner/FlowChartExecutor.d.ts +28 -0
- package/dist/types/lib/scope/ScopeFacade.d.ts +4 -0
- package/dist/types/lib/scope/state/zod/utils/validateHelper.d.ts +13 -1
- package/dist/types/trace.d.ts +1 -0
- package/package.json +6 -1
|
@@ -12,9 +12,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.RunContext = void 0;
|
|
13
13
|
const FlowChartExecutor_js_1 = require("./FlowChartExecutor.js");
|
|
14
14
|
class RunContext {
|
|
15
|
+
chart;
|
|
16
|
+
scopeRecorders = [];
|
|
17
|
+
flowRecorders = [];
|
|
18
|
+
redactionPolicy;
|
|
15
19
|
constructor(chart) {
|
|
16
|
-
this.scopeRecorders = [];
|
|
17
|
-
this.flowRecorders = [];
|
|
18
20
|
this.chart = chart;
|
|
19
21
|
}
|
|
20
22
|
/** Attach a recorder. Auto-detects scope vs flow recorder. Chainable. */
|
|
@@ -75,4 +77,4 @@ class RunContext {
|
|
|
75
77
|
}
|
|
76
78
|
}
|
|
77
79
|
exports.RunContext = RunContext;
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUnVuQ29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvcnVubmVyL1J1bkNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7OztHQVFHOzs7QUFNSCxpRUFBMkQ7QUFjM0QsTUFBYSxVQUFVO0lBQ0osS0FBSyxDQUEwQjtJQUMvQixjQUFjLEdBQWUsRUFBRSxDQUFDO0lBQ2hDLGFBQWEsR0FBbUIsRUFBRSxDQUFDO0lBQzVDLGVBQWUsQ0FBbUI7SUFFMUMsWUFBWSxLQUE4QjtRQUN4QyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBRUQseUVBQXlFO0lBQ3pFLFFBQVEsQ0FBQyxDQUEwQjtRQUNqQyxNQUFNLEtBQUssR0FBRyxPQUFRLENBQVMsQ0FBQyxFQUFFLEtBQUssUUFBUSxDQUFDO1FBQ2hELE1BQU0sY0FBYyxHQUNsQixLQUFLO1lBQ0wsQ0FBQyxPQUFRLENBQWtCLENBQUMsZUFBZSxLQUFLLFVBQVU7Z0JBQ3hELE9BQVEsQ0FBa0IsQ0FBQyxVQUFVLEtBQUssVUFBVTtnQkFDcEQsT0FBUSxDQUFrQixDQUFDLE1BQU0sS0FBSyxVQUFVO2dCQUNoRCxPQUFRLENBQWtCLENBQUMsTUFBTSxLQUFLLFVBQVUsQ0FBQyxDQUFDO1FBQ3RELE1BQU0sZUFBZSxHQUNuQixLQUFLO1lBQ0wsQ0FBQyxPQUFRLENBQWMsQ0FBQyxNQUFNLEtBQUssVUFBVTtnQkFDM0MsT0FBUSxDQUFjLENBQUMsT0FBTyxLQUFLLFVBQVU7Z0JBQzdDLE9BQVEsQ0FBYyxDQUFDLFFBQVEsS0FBSyxVQUFVLENBQUMsQ0FBQztRQUVwRCxnRUFBZ0U7UUFDaEUsSUFBSSxjQUFjO1lBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBaUIsQ0FBQyxDQUFDO1FBQy9ELElBQUksZUFBZTtZQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQWEsQ0FBQyxDQUFDO1FBRTdELHNDQUFzQztRQUN0QyxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsZUFBZSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ2pELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQWEsQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxvREFBb0Q7SUFDcEQsTUFBTSxDQUFDLE1BQXVCO1FBQzVCLElBQUksQ0FBQyxlQUFlLEdBQUcsTUFBTSxDQUFDO1FBQzlCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELG9FQUFvRTtJQUNwRSxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQW9CO1FBQzVCLE1BQU0sUUFBUSxHQUFHLElBQUksd0NBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRW5ELHlCQUF5QjtRQUN6QixLQUFLLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNwQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdCLENBQUM7UUFFRCxpREFBaUQ7UUFDakQsS0FBSyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDbkMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLENBQUM7UUFFRCxnQkFBZ0I7UUFDaEIsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDekIsUUFBUSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNwRCxDQUFDO1FBRUQsTUFBTTtRQUNOLE1BQU0sUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUU1QixlQUFlO1FBQ2YsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3hDLE1BQU0sTUFBTSxHQUFJLElBQUksQ0FBQyxLQUFhLENBQUMsWUFBcUUsQ0FBQztRQUN6RyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDO1FBRWxGLE9BQU87WUFDTCxLQUFLLEVBQUUsUUFBUSxDQUFDLFdBQVcsSUFBSSxFQUFFO1lBQ2pDLE1BQU07WUFDTixhQUFhLEVBQUUsUUFBUSxDQUFDLGFBQWE7WUFDckMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxTQUFTLElBQUksRUFBRTtTQUNwQyxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBN0VELGdDQTZFQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUnVuQ29udGV4dCAtLSBkMy1zdHlsZSBjaGFpbmFibGUgcnVuIGNvbmZpZ3VyYXRpb24uXG4gKlxuICogUmV0dXJuZWQgYnkgY2hhcnQucmVjb3JkZXIoKSBhbmQgY2hhcnQucmVkYWN0KCkuXG4gKiBBY2N1bXVsYXRlcyByZWNvcmRlcnMgYW5kIHJlZGFjdGlvbiBwb2xpY3ksIHRoZW4gY3JlYXRlc1xuICogYSBGbG93Q2hhcnRFeGVjdXRvciBpbnRlcm5hbGx5IHdoZW4gLnJ1bigpIGlzIGNhbGxlZC5cbiAqXG4gKiBUaGUgY2hhcnQgaXMgaW1tdXRhYmxlLiBSdW5Db250ZXh0IGlzIGVwaGVtZXJhbCBwZXItcnVuIGNvbmZpZy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEZsb3dDaGFydCB9IGZyb20gJy4uL2J1aWxkZXIvdHlwZXMuanMnO1xuaW1wb3J0IHR5cGUgeyBGbG93UmVjb3JkZXIgfSBmcm9tICcuLi9lbmdpbmUvbmFycmF0aXZlL3R5cGVzLmpzJztcbmltcG9ydCB0eXBlIHsgUnVuT3B0aW9ucyB9IGZyb20gJy4uL2VuZ2luZS90eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IFJlY29yZGVyLCBSZWRhY3Rpb25Qb2xpY3kgfSBmcm9tICcuLi9zY29wZS90eXBlcy5qcyc7XG5pbXBvcnQgeyBGbG93Q2hhcnRFeGVjdXRvciB9IGZyb20gJy4vRmxvd0NoYXJ0RXhlY3V0b3IuanMnO1xuXG4vKiogUmVzdWx0IGZyb20gUnVuQ29udGV4dC5ydW4oKSDigJQgb3ducyBzdGF0ZSBhbmQgb3V0cHV0LiAqL1xuZXhwb3J0IGludGVyZmFjZSBSdW5SZXN1bHQge1xuICAvKiogUmF3IHNjb3BlIHN0YXRlIGFmdGVyIGV4ZWN1dGlvbi4gKi9cbiAgc3RhdGU6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAvKiogTWFwcGVkIG91dHB1dCB2aWEgY29udHJhY3QgbWFwcGVyIChpZiBkZWNsYXJlZCkuICovXG4gIG91dHB1dDogdW5rbm93bjtcbiAgLyoqIEZ1bGwgZXhlY3V0aW9uIHRyZWUgZm9yIGRlYnVnZ2luZy4gKi9cbiAgZXhlY3V0aW9uVHJlZTogdW5rbm93bjtcbiAgLyoqIENvbW1pdCBsb2cgZm9yIHRpbWUtdHJhdmVsLiAqL1xuICBjb21taXRMb2c6IHVua25vd25bXTtcbn1cblxuZXhwb3J0IGNsYXNzIFJ1bkNvbnRleHQ8VE91dCA9IGFueSwgVFNjb3BlID0gYW55PiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2hhcnQ6IEZsb3dDaGFydDxUT3V0LCBUU2NvcGU+O1xuICBwcml2YXRlIHJlYWRvbmx5IHNjb3BlUmVjb3JkZXJzOiBSZWNvcmRlcltdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgZmxvd1JlY29yZGVyczogRmxvd1JlY29yZGVyW10gPSBbXTtcbiAgcHJpdmF0ZSByZWRhY3Rpb25Qb2xpY3k/OiBSZWRhY3Rpb25Qb2xpY3k7XG5cbiAgY29uc3RydWN0b3IoY2hhcnQ6IEZsb3dDaGFydDxUT3V0LCBUU2NvcGU+KSB7XG4gICAgdGhpcy5jaGFydCA9IGNoYXJ0O1xuICB9XG5cbiAgLyoqIEF0dGFjaCBhIHJlY29yZGVyLiBBdXRvLWRldGVjdHMgc2NvcGUgdnMgZmxvdyByZWNvcmRlci4gQ2hhaW5hYmxlLiAqL1xuICByZWNvcmRlcihyOiBSZWNvcmRlciB8IEZsb3dSZWNvcmRlcik6IFJ1bkNvbnRleHQ8VE91dCwgVFNjb3BlPiB7XG4gICAgY29uc3QgaGFzSWQgPSB0eXBlb2YgKHIgYXMgYW55KS5pZCA9PT0gJ3N0cmluZyc7XG4gICAgY29uc3QgaXNGbG93UmVjb3JkZXIgPVxuICAgICAgaGFzSWQgJiZcbiAgICAgICh0eXBlb2YgKHIgYXMgRmxvd1JlY29yZGVyKS5vblN0YWdlRXhlY3V0ZWQgPT09ICdmdW5jdGlvbicgfHxcbiAgICAgICAgdHlwZW9mIChyIGFzIEZsb3dSZWNvcmRlcikub25EZWNpc2lvbiA9PT0gJ2Z1bmN0aW9uJyB8fFxuICAgICAgICB0eXBlb2YgKHIgYXMgRmxvd1JlY29yZGVyKS5vbkZvcmsgPT09ICdmdW5jdGlvbicgfHxcbiAgICAgICAgdHlwZW9mIChyIGFzIEZsb3dSZWNvcmRlcikub25OZXh0ID09PSAnZnVuY3Rpb24nKTtcbiAgICBjb25zdCBpc1Njb3BlUmVjb3JkZXIgPVxuICAgICAgaGFzSWQgJiZcbiAgICAgICh0eXBlb2YgKHIgYXMgUmVjb3JkZXIpLm9uUmVhZCA9PT0gJ2Z1bmN0aW9uJyB8fFxuICAgICAgICB0eXBlb2YgKHIgYXMgUmVjb3JkZXIpLm9uV3JpdGUgPT09ICdmdW5jdGlvbicgfHxcbiAgICAgICAgdHlwZW9mIChyIGFzIFJlY29yZGVyKS5vbkNvbW1pdCA9PT0gJ2Z1bmN0aW9uJyk7XG5cbiAgICAvLyBDb21iaW5lZE5hcnJhdGl2ZVJlY29yZGVyIGltcGxlbWVudHMgQk9USCDigJQgYWRkIHRvIGJvdGggbGlzdHNcbiAgICBpZiAoaXNGbG93UmVjb3JkZXIpIHRoaXMuZmxvd1JlY29yZGVycy5wdXNoKHIgYXMgRmxvd1JlY29yZGVyKTtcbiAgICBpZiAoaXNTY29wZVJlY29yZGVyKSB0aGlzLnNjb3BlUmVjb3JkZXJzLnB1c2gociBhcyBSZWNvcmRlcik7XG5cbiAgICAvLyBQdXJlIHNjb3BlIHJlY29yZGVyIChubyBmbG93IGhvb2tzKVxuICAgIGlmICghaXNGbG93UmVjb3JkZXIgJiYgIWlzU2NvcGVSZWNvcmRlciAmJiBoYXNJZCkge1xuICAgICAgdGhpcy5zY29wZVJlY29yZGVycy5wdXNoKHIgYXMgUmVjb3JkZXIpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIFNldCByZWRhY3Rpb24gcG9saWN5IGZvciB0aGlzIHJ1bi4gQ2hhaW5hYmxlLiAqL1xuICByZWRhY3QocG9saWN5OiBSZWRhY3Rpb25Qb2xpY3kpOiBSdW5Db250ZXh0PFRPdXQsIFRTY29wZT4ge1xuICAgIHRoaXMucmVkYWN0aW9uUG9saWN5ID0gcG9saWN5O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIEV4ZWN1dGUgdGhlIGNoYXJ0IHdpdGggYWNjdW11bGF0ZWQgY29uZmlnLiBSZXR1cm5zIFJ1blJlc3VsdC4gKi9cbiAgYXN5bmMgcnVuKG9wdGlvbnM/OiBSdW5PcHRpb25zKTogUHJvbWlzZTxSdW5SZXN1bHQ+IHtcbiAgICBjb25zdCBleGVjdXRvciA9IG5ldyBGbG93Q2hhcnRFeGVjdXRvcih0aGlzLmNoYXJ0KTtcblxuICAgIC8vIEF0dGFjaCBzY29wZSByZWNvcmRlcnNcbiAgICBmb3IgKGNvbnN0IHIgb2YgdGhpcy5zY29wZVJlY29yZGVycykge1xuICAgICAgZXhlY3V0b3IuYXR0YWNoUmVjb3JkZXIocik7XG4gICAgfVxuXG4gICAgLy8gQXR0YWNoIGZsb3cgcmVjb3JkZXJzIChhdXRvLWVuYWJsZXMgbmFycmF0aXZlKVxuICAgIGZvciAoY29uc3QgciBvZiB0aGlzLmZsb3dSZWNvcmRlcnMpIHtcbiAgICAgIGV4ZWN1dG9yLmF0dGFjaEZsb3dSZWNvcmRlcihyKTtcbiAgICB9XG5cbiAgICAvLyBTZXQgcmVkYWN0aW9uXG4gICAgaWYgKHRoaXMucmVkYWN0aW9uUG9saWN5KSB7XG4gICAgICBleGVjdXRvci5zZXRSZWRhY3Rpb25Qb2xpY3kodGhpcy5yZWRhY3Rpb25Qb2xpY3kpO1xuICAgIH1cblxuICAgIC8vIFJ1blxuICAgIGF3YWl0IGV4ZWN1dG9yLnJ1bihvcHRpb25zKTtcblxuICAgIC8vIEJ1aWxkIHJlc3VsdFxuICAgIGNvbnN0IHNuYXBzaG90ID0gZXhlY3V0b3IuZ2V0U25hcHNob3QoKTtcbiAgICBjb25zdCBtYXBwZXIgPSAodGhpcy5jaGFydCBhcyBhbnkpLm91dHB1dE1hcHBlciBhcyAoKHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiB1bmtub3duKSB8IHVuZGVmaW5lZDtcbiAgICBjb25zdCBvdXRwdXQgPSBtYXBwZXIgPyBtYXBwZXIoc25hcHNob3Quc2hhcmVkU3RhdGUgfHwge30pIDogc25hcHNob3Quc2hhcmVkU3RhdGU7XG5cbiAgICByZXR1cm4ge1xuICAgICAgc3RhdGU6IHNuYXBzaG90LnNoYXJlZFN0YXRlIHx8IHt9LFxuICAgICAgb3V0cHV0LFxuICAgICAgZXhlY3V0aW9uVHJlZTogc25hcHNob3QuZXhlY3V0aW9uVHJlZSxcbiAgICAgIGNvbW1pdExvZzogc25hcHNob3QuY29tbWl0TG9nIHx8IFtdLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -30,7 +30,6 @@ function makeRunnable(chart) {
|
|
|
30
30
|
return new RunContext_js_1.RunContext(chart).run(options);
|
|
31
31
|
};
|
|
32
32
|
runnable.toOpenAPI = function (options) {
|
|
33
|
-
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
34
33
|
// Only cache no-options calls — parameterized calls vary by options
|
|
35
34
|
if (!options) {
|
|
36
35
|
const cached = openAPICache.get(chart);
|
|
@@ -38,14 +37,14 @@ function makeRunnable(chart) {
|
|
|
38
37
|
return cached;
|
|
39
38
|
}
|
|
40
39
|
const builderChart = chart;
|
|
41
|
-
const title =
|
|
42
|
-
const version =
|
|
40
|
+
const title = options?.title ?? builderChart.description?.split('\n')[0] ?? 'API';
|
|
41
|
+
const version = options?.version ?? '1.0.0';
|
|
43
42
|
// Use root.id (the explicit machine-readable id) as the path segment, sanitized
|
|
44
|
-
const rawId =
|
|
45
|
-
const path =
|
|
43
|
+
const rawId = builderChart.root?.id ?? 'execute';
|
|
44
|
+
const path = options?.path ?? `/${slugify(rawId)}`;
|
|
46
45
|
const spec = {
|
|
47
46
|
openapi: '3.1.0',
|
|
48
|
-
info: { title, version, description:
|
|
47
|
+
info: { title, version, description: options?.description ?? builderChart.description },
|
|
49
48
|
paths: {
|
|
50
49
|
[path]: {
|
|
51
50
|
post: {
|
|
@@ -99,13 +98,12 @@ function makeRunnable(chart) {
|
|
|
99
98
|
return lines.join('\n');
|
|
100
99
|
};
|
|
101
100
|
runnable.toMCPTool = function () {
|
|
102
|
-
var _a, _b;
|
|
103
101
|
const cached = mcpCache.get(chart);
|
|
104
102
|
if (cached)
|
|
105
103
|
return cached;
|
|
106
104
|
const builderChart = chart;
|
|
107
105
|
// Use root.id (explicit machine-readable id), sanitized to MCP name character allowlist
|
|
108
|
-
const name = sanitizeMCPName(
|
|
106
|
+
const name = sanitizeMCPName(builderChart.root?.id ?? 'execute');
|
|
109
107
|
const description = builderChart.description || `Execute the ${name} flowchart`;
|
|
110
108
|
// MCP spec requires inputSchema to always be present.
|
|
111
109
|
// When no contract is defined, use the recommended no-parameter form.
|
|
@@ -137,4 +135,4 @@ function slugify(id) {
|
|
|
137
135
|
.replace(/[^a-z0-9]+/g, '-')
|
|
138
136
|
.replace(/^-|-$/g, '') || 'execute');
|
|
139
137
|
}
|
|
140
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUnVubmFibGVDaGFydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvcnVubmVyL1J1bm5hYmxlQ2hhcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBR0gscURBQXdEO0FBS3hELG1EQUE2RDtBQTRDN0QsbUZBQW1GO0FBQ25GLHNEQUFzRDtBQUN0RCxNQUFNLFlBQVksR0FBRyxJQUFJLE9BQU8sRUFBcUIsQ0FBQztBQUN0RCxNQUFNLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBaUMsQ0FBQztBQUU5RDs7O0dBR0c7QUFDSCxTQUFnQixZQUFZLENBQWUsS0FBOEI7SUFDdkUsTUFBTSxRQUFRLEdBQUcsS0FBd0MsQ0FBQztJQUUxRCxRQUFRLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBMEI7UUFDdEQsT0FBTyxJQUFJLDBCQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNDLENBQUMsQ0FBQztJQUVGLFFBQVEsQ0FBQyxNQUFNLEdBQUcsVUFBVSxNQUF1QjtRQUNqRCxPQUFPLElBQUksMEJBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUMsQ0FBQyxDQUFDO0lBRUYsUUFBUSxDQUFDLEdBQUcsR0FBRyxVQUFVLE9BQW9CO1FBQzNDLE9BQU8sSUFBSSwwQkFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QyxDQUFDLENBQUM7SUFFRixRQUFRLENBQUMsU0FBUyxHQUFHLFVBQVUsT0FBNkI7O1FBQzFELG9FQUFvRTtRQUNwRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDYixNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZDLElBQUksTUFBTTtnQkFBRSxPQUFPLE1BQU0sQ0FBQztRQUM1QixDQUFD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VztZQUN0RCxDQUFDLENBQUMsSUFBQSwyQkFBZSxFQUFDLFlBQVksQ0FBQyxXQUFXLENBQUM7WUFDM0MsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLG9CQUFvQixFQUFFLEtBQUssRUFBRSxDQUFDO1FBRXBFLE1BQU0sSUFBSSxHQUF1QixFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFFcEUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDMUIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDLENBQUM7SUFFRixPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBM0dELG9DQTJHQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFTLGVBQWUsQ0FBQyxFQUFVO0lBQ2pDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJLFNBQVMsQ0FBQztBQUNuRixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBUyxPQUFPLENBQUMsRUFBVTtJQUN6QixPQUFPLENBQ0wsRUFBRTtTQUNDLFdBQVcsRUFBRTtTQUNiLE9BQU8sQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDO1NBQzNCLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLElBQUksU0FBUyxDQUN0QyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUnVubmFibGVDaGFydCAtLSBBZGRzIC5yZWNvcmRlcigpLCAucmVkYWN0KCksIC5ydW4oKSwgLnRvT3BlbkFQSSgpLCAudG9NQ1BUb29sKClcbiAqIHRvIGEgRmxvd0NoYXJ0IG9iamVjdC5cbiAqXG4gKiBDYWxsZWQgYnkgRmxvd0NoYXJ0QnVpbGRlci5idWlsZCgpIHRvIGVucmljaCB0aGUgY29tcGlsZWQgY2hhcnQgd2l0aFxuICogZDMtc3R5bGUgY2hhaW5hYmxlIHJ1biBtZXRob2RzIGFuZCBzZWxmLWRlc2NyaWJpbmcgb3V0cHV0cy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEZsb3dDaGFydCB9IGZyb20gJy4uL2J1aWxkZXIvdHlwZXMuanMnO1xuaW1wb3J0IHsgbm9ybWFsaXplU2NoZW1hIH0gZnJvbSAnLi4vY29udHJhY3Qvc2NoZW1hLmpzJztcbmltcG9ydCB0eXBlIHsgSnNvblNjaGVtYSB9IGZyb20gJy4uL2NvbnRyYWN0L3R5cGVzLmpzJztcbmltcG9ydCB0eXBlIHsgRmxvd1JlY29yZGVyIH0gZnJvbSAnLi4vZW5naW5lL25hcnJhdGl2ZS90eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IFJ1bk9wdGlvbnMsIFN0YWdlTm9kZSB9IGZyb20gJy4uL2VuZ2luZS90eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IFJlY29yZGVyLCBSZWRhY3Rpb25Qb2xpY3kgfSBmcm9tICcuLi9zY29wZS90eXBlcy5qcyc7XG5pbXBvcnQgeyB0eXBlIFJ1blJlc3VsdCwgUnVuQ29udGV4dCB9IGZyb20gJy4vUnVuQ29udGV4dC5qcyc7XG5cbi8qKiBPcGVuQVBJIGdlbmVyYXRpb24gb3B0aW9ucy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhcnRPcGVuQVBJT3B0aW9ucyB7XG4gIHRpdGxlPzogc3RyaW5nO1xuICB2ZXJzaW9uPzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgcGF0aD86IHN0cmluZztcbn1cblxuLyoqIE1DUCB0b29sIGRlc2NyaXB0aW9uIOKAlCBzaGFwZSByZXF1aXJlZCBieSB0aGUgTW9kZWwgQ29udGV4dCBQcm90b2NvbCBzcGVjLiAqL1xuZXhwb3J0IGludGVyZmFjZSBNQ1BUb29sRGVzY3JpcHRpb24ge1xuICBuYW1lOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBKU09OIFNjaGVtYSBvYmplY3QgZGVzY3JpYmluZyB0aGUgdG9vbCdzIGlucHV0LlxuICAgKiBBbHdheXMgcHJlc2VudCDigJQgdGhlIE1DUCBzcGVjIHJlcXVpcmVzIGlucHV0U2NoZW1hIGV2ZW4gZm9yIHRvb2xzIHdpdGggbm8gcGFyYW1ldGVycy5cbiAgICogRGVmYXVsdHMgdG8gYHsgdHlwZTogJ29iamVjdCcsIHByb3BlcnRpZXM6IHt9LCBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UgfWAuXG4gICAqL1xuICBpbnB1dFNjaGVtYTogSnNvblNjaGVtYTtcbn1cblxuLyoqXG4gKiBGbG93Q2hhcnQgZW5yaWNoZWQgd2l0aCBkMy1zdHlsZSBydW4gbWV0aG9kcyBhbmQgc2VsZi1kZXNjcmliaW5nIG91dHB1dHMuXG4gKlxuICogRXh0ZW5kcyBidWlsZGVyLkZsb3dDaGFydCAod2hpY2ggYWxyZWFkeSBjYXJyaWVzIGJ1aWxkVGltZVN0cnVjdHVyZSwgZGVzY3JpcHRpb24sXG4gKiBzdGFnZURlc2NyaXB0aW9ucywgaW5wdXRTY2hlbWEsIG91dHB1dFNjaGVtYSwgb3V0cHV0TWFwcGVyKSBhbmQgYWRkcyB0aGUgcnVudGltZVxuICogbWV0aG9kcyBhdHRhY2hlZCBieSBtYWtlUnVubmFibGUoKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSdW5uYWJsZUZsb3dDaGFydDxUT3V0ID0gYW55LCBUU2NvcGUgPSBhbnk+IGV4dGVuZHMgRmxvd0NoYXJ0PFRPdXQsIFRTY29wZT4ge1xuICAvKiogQXR0YWNoIGEgcmVjb3JkZXIgZm9yIHRoZSBuZXh0IHJ1bi4gUmV0dXJucyBhIGNoYWluYWJsZSBSdW5Db250ZXh0LiAqL1xuICByZWNvcmRlcihyOiBSZWNvcmRlciB8IEZsb3dSZWNvcmRlcik6IFJ1bkNvbnRleHQ8VE91dCwgVFNjb3BlPjtcbiAgLyoqIFNldCByZWRhY3Rpb24gcG9saWN5IGZvciB0aGUgbmV4dCBydW4uIFJldHVybnMgYSBjaGFpbmFibGUgUnVuQ29udGV4dC4gKi9cbiAgcmVkYWN0KHBvbGljeTogUmVkYWN0aW9uUG9saWN5KTogUnVuQ29udGV4dDxUT3V0LCBUU2NvcGU+O1xuICAvKiogRXhlY3V0ZSB0aGUgY2hhcnQgZGlyZWN0bHkgKGJhcmUgcnVuLCBubyByZWNvcmRlcnMpLiAqL1xuICBydW4ob3B0aW9ucz86IFJ1bk9wdGlvbnMpOiBQcm9taXNlPFJ1blJlc3VsdD47XG4gIC8qKiBHZW5lcmF0ZSBPcGVuQVBJIDMuMSBzcGVjIGZyb20gY2hhcnQgbWV0YWRhdGEgKyBjb250cmFjdC4gQ2FjaGVkIGZvciBuby1vcHRpb25zIGNhbGxzLiAqL1xuICB0b09wZW5BUEkob3B0aW9ucz86IENoYXJ0T3BlbkFQSU9wdGlvbnMpOiBvYmplY3Q7XG4gIC8qKiBHZW5lcmF0ZSBNQ1AgdG9vbCBkZXNjcmlwdGlvbiBmcm9tIGNoYXJ0IG1ldGFkYXRhLiBDYWNoZWQuICovXG4gIHRvTUNQVG9vbCgpOiBNQ1BUb29sRGVzY3JpcHRpb247XG4gIC8qKiBHZW5lcmF0ZSBhIE1lcm1haWQgZmxvd2NoYXJ0IGRpYWdyYW0gc3RyaW5nIGZyb20gdGhlIGNoYXJ0J3Mgbm9kZSBncmFwaC4gKi9cbiAgdG9NZXJtYWlkKCk6IHN0cmluZztcbn1cblxuLy8gQ2FjaGUgZm9yIG5vLW9wdGlvbnMgdG9PcGVuQVBJKCkgY2FsbHMgb25seSDigJQgcGFyYW1ldGVyaXplZCBjYWxscyBhcmUgbm90IGNhY2hlZFxuLy8gYmVjYXVzZSBkaWZmZXJlbnQgb3B0aW9ucyBwcm9kdWNlIGRpZmZlcmVudCBvdXRwdXQuXG5jb25zdCBvcGVuQVBJQ2FjaGUgPSBuZXcgV2Vha01hcDxGbG93Q2hhcnQsIG9iamVjdD4oKTtcbmNvbnN0IG1jcENhY2hlID0gbmV3IFdlYWtNYXA8Rmxvd0NoYXJ0LCBNQ1BUb29sRGVzY3JpcHRpb24+KCk7XG5cbi8qKlxuICogRW5yaWNoIGEgRmxvd0NoYXJ0IHdpdGggcnVuICsgZGVzY3JpYmUgbWV0aG9kcy5cbiAqIENhbGxlZCBieSBGbG93Q2hhcnRCdWlsZGVyLmJ1aWxkKCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYWtlUnVubmFibGU8VE91dCwgVFNjb3BlPihjaGFydDogRmxvd0NoYXJ0PFRPdXQsIFRTY29wZT4pOiBSdW5uYWJsZUZsb3dDaGFydDxUT3V0LCBUU2NvcGU+IHtcbiAgY29uc3QgcnVubmFibGUgPSBjaGFydCBhcyBSdW5uYWJsZUZsb3dDaGFydDxUT3V0LCBUU2NvcGU+O1xuXG4gIHJ1bm5hYmxlLnJlY29yZGVyID0gZnVuY3Rpb24gKHI6IFJlY29yZGVyIHwgRmxvd1JlY29yZGVyKTogUnVuQ29udGV4dDxUT3V0LCBUU2NvcGU+IHtcbiAgICByZXR1cm4gbmV3IFJ1bkNvbnRleHQoY2hhcnQpLnJlY29yZGVyKHIpO1xuICB9O1xuXG4gIHJ1bm5hYmxlLnJlZGFjdCA9IGZ1bmN0aW9uIChwb2xpY3k6IFJlZGFjdGlvblBvbGljeSk6IFJ1bkNvbnRleHQ8VE91dCwgVFNjb3BlPiB7XG4gICAgcmV0dXJuIG5ldyBSdW5Db250ZXh0KGNoYXJ0KS5yZWRhY3QocG9saWN5KTtcbiAgfTtcblxuICBydW5uYWJsZS5ydW4gPSBmdW5jdGlvbiAob3B0aW9ucz86IFJ1bk9wdGlvbnMpOiBQcm9taXNlPFJ1blJlc3VsdD4ge1xuICAgIHJldHVybiBuZXcgUnVuQ29udGV4dChjaGFydCkucnVuKG9wdGlvbnMpO1xuICB9O1xuXG4gIHJ1bm5hYmxlLnRvT3BlbkFQSSA9IGZ1bmN0aW9uIChvcHRpb25zPzogQ2hhcnRPcGVuQVBJT3B0aW9ucyk6IG9iamVjdCB7XG4gICAgLy8gT25seSBjYWNoZSBuby1vcHRpb25zIGNhbGxzIOKAlCBwYXJhbWV0ZXJpemVkIGNhbGxzIHZhcnkgYnkgb3B0aW9uc1xuICAgIGlmICghb3B0aW9ucykge1xuICAgICAgY29uc3QgY2FjaGVkID0gb3BlbkFQSUNhY2hlLmdldChjaGFydCk7XG4gICAgICBpZiAoY2FjaGVkKSByZXR1cm4gY2FjaGVkO1xuICAgIH1cblxuICAgIGNvbnN0IGJ1aWxkZXJDaGFydCA9IGNoYXJ0IGFzIGFueTtcbiAgICBjb25zdCB0aXRsZSA9IG9wdGlvbnM/LnRpdGxlID8/IGJ1aWxkZXJDaGFydC5kZXNjcmlwdGlvbj8uc3BsaXQoJ1xcbicpWzBdID8/ICdBUEknO1xuICAgIGNvbnN0IHZlcnNpb24gPSBvcHRpb25zPy52ZXJzaW9uID8/ICcxLjAuMCc7XG4gICAgLy8gVXNlIHJvb3QuaWQgKHRoZSBleHBsaWNpdCBtYWNoaW5lLXJlYWRhYmxlIGlkKSBhcyB0aGUgcGF0aCBzZWdtZW50LCBzYW5pdGl6ZWRcbiAgICBjb25zdCByYXdJZCA9IGJ1aWxkZXJDaGFydC5yb290Py5pZCA/PyAnZXhlY3V0ZSc7XG4gICAgY29uc3QgcGF0aCA9IG9wdGlvbnM/LnBhdGggPz8gYC8ke3NsdWdpZnkocmF3SWQpfWA7XG5cbiAgICBjb25zdCBzcGVjOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHtcbiAgICAgIG9wZW5hcGk6ICczLjEuMCcsXG4gICAgICBpbmZvOiB7IHRpdGxlLCB2ZXJzaW9uLCBkZXNjcmlwdGlvbjogb3B0aW9ucz8uZGVzY3JpcHRpb24gPz8gYnVpbGRlckNoYXJ0LmRlc2NyaXB0aW9uIH0sXG4gICAgICBwYXRoczoge1xuICAgICAgICBbcGF0aF06IHtcbiAgICAgICAgICBwb3N0OiB7XG4gICAgICAgICAgICBzdW1tYXJ5OiB0aXRsZSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBidWlsZGVyQ2hhcnQuZGVzY3JpcHRpb24sXG4gICAgICAgICAgICAuLi4oYnVpbGRlckNoYXJ0LmlucHV0U2NoZW1hXG4gICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogeyAnYXBwbGljYXRpb24vanNvbic6IHsgc2NoZW1hOiBub3JtYWxpemVTY2hlbWEoYnVpbGRlckNoYXJ0LmlucHV0U2NoZW1hKSB9IH0sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgICByZXNwb25zZXM6IHtcbiAgICAgICAgICAgICAgJzIwMCc6IHtcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1N1Y2Nlc3MnLFxuICAgICAgICAgICAgICAgIC4uLihidWlsZGVyQ2hhcnQub3V0cHV0U2NoZW1hXG4gICAgICAgICAgICAgICAgICA/IHsgY29udGVudDogeyAnYXBwbGljYXRpb24vanNvbic6IHsgc2NoZW1hOiBub3JtYWxpemVTY2hlbWEoYnVpbGRlckNoYXJ0Lm91dHB1dFNjaGVtYSkgfSB9IH1cbiAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgaWYgKCFvcHRpb25zKSBvcGVuQVBJQ2FjaGUuc2V0KGNoYXJ0LCBzcGVjKTtcbiAgICByZXR1cm4gc3BlYztcbiAgfTtcblxuICBydW5uYWJsZS50b01lcm1haWQgPSBmdW5jdGlvbiAoKTogc3RyaW5nIHtcbiAgICBjb25zdCBsaW5lczogc3RyaW5nW10gPSBbJ2Zsb3djaGFydCBURCddO1xuICAgIGNvbnN0IGlkT2YgPSAoazogc3RyaW5nKSA9PiAoayB8fCAnJykucmVwbGFjZSgvW15hLXpBLVowLTlfXS9nLCAnXycpIHx8ICdfJztcbiAgICBjb25zdCB2aXNpdGVkID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgY29uc3Qgd2FsayA9IChuOiBTdGFnZU5vZGUpID0+IHtcbiAgICAgIGNvbnN0IG5pZCA9IGlkT2Yobi5pZCk7XG4gICAgICBpZiAodmlzaXRlZC5oYXMobmlkKSkgcmV0dXJuO1xuICAgICAgdmlzaXRlZC5hZGQobmlkKTtcbiAgICAgIGxpbmVzLnB1c2goYCR7bmlkfVtcIiR7bi5uYW1lfVwiXWApO1xuICAgICAgZm9yIChjb25zdCBjIG9mIG4uY2hpbGRyZW4gfHwgW10pIHtcbiAgICAgICAgY29uc3QgY2lkID0gaWRPZihjLmlkKTtcbiAgICAgICAgbGluZXMucHVzaChgJHtuaWR9IC0tPiAke2NpZH1gKTtcbiAgICAgICAgd2FsayhjKTtcbiAgICAgIH1cbiAgICAgIGlmIChuLm5leHQpIHtcbiAgICAgICAgY29uc3QgbWlkID0gaWRPZihuLm5leHQuaWQpO1xuICAgICAgICBsaW5lcy5wdXNoKGAke25pZH0gLS0+ICR7bWlkfWApO1xuICAgICAgICB3YWxrKG4ubmV4dCk7XG4gICAgICB9XG4gICAgfTtcbiAgICB3YWxrKGNoYXJ0LnJvb3QpO1xuICAgIHJldHVybiBsaW5lcy5qb2luKCdcXG4nKTtcbiAgfTtcblxuICBydW5uYWJsZS50b01DUFRvb2wgPSBmdW5jdGlvbiAoKTogTUNQVG9vbERlc2NyaXB0aW9uIHtcbiAgICBjb25zdCBjYWNoZWQgPSBtY3BDYWNoZS5nZXQoY2hhcnQpO1xuICAgIGlmIChjYWNoZWQpIHJldHVybiBjYWNoZWQ7XG5cbiAgICBjb25zdCBidWlsZGVyQ2hhcnQgPSBjaGFydCBhcyBhbnk7XG4gICAgLy8gVXNlIHJvb3QuaWQgKGV4cGxpY2l0IG1hY2hpbmUtcmVhZGFibGUgaWQpLCBzYW5pdGl6ZWQgdG8gTUNQIG5hbWUgY2hhcmFjdGVyIGFsbG93bGlzdFxuICAgIGNvbnN0IG5hbWUgPSBzYW5pdGl6ZU1DUE5hbWUoYnVpbGRlckNoYXJ0LnJvb3Q/LmlkID8/ICdleGVjdXRlJyk7XG4gICAgY29uc3QgZGVzY3JpcHRpb24gPSBidWlsZGVyQ2hhcnQuZGVzY3JpcHRpb24gfHwgYEV4ZWN1dGUgdGhlICR7bmFtZX0gZmxvd2NoYXJ0YDtcblxuICAgIC8vIE1DUCBzcGVjIHJlcXVpcmVzIGlucHV0U2NoZW1hIHRvIGFsd2F5cyBiZSBwcmVzZW50LlxuICAgIC8vIFdoZW4gbm8gY29udHJhY3QgaXMgZGVmaW5lZCwgdXNlIHRoZSByZWNvbW1lbmRlZCBuby1wYXJhbWV0ZXIgZm9ybS5cbiAgICBjb25zdCBpbnB1dFNjaGVtYTogSnNvblNjaGVtYSA9IGJ1aWxkZXJDaGFydC5pbnB1dFNjaGVtYVxuICAgICAgPyBub3JtYWxpemVTY2hlbWEoYnVpbGRlckNoYXJ0LmlucHV0U2NoZW1hKVxuICAgICAgOiB7IHR5cGU6ICdvYmplY3QnLCBwcm9wZXJ0aWVzOiB7fSwgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlIH07XG5cbiAgICBjb25zdCB0b29sOiBNQ1BUb29sRGVzY3JpcHRpb24gPSB7IG5hbWUsIGRlc2NyaXB0aW9uLCBpbnB1dFNjaGVtYSB9O1xuXG4gICAgbWNwQ2FjaGUuc2V0KGNoYXJ0LCB0b29sKTtcbiAgICByZXR1cm4gdG9vbDtcbiAgfTtcblxuICByZXR1cm4gcnVubmFibGU7XG59XG5cbi8qKlxuICogU2FuaXRpemUgYSBzdHJpbmcgdG8gY29uZm9ybSB0byB0aGUgTUNQIHRvb2wgbmFtZSBjaGFyYWN0ZXIgYWxsb3dsaXN0OlxuICogW0EtWmEtejAtOV9cXC0uXSDigJQgYW55IG90aGVyIGNoYXJhY3RlciBpcyByZXBsYWNlZCB3aXRoIHVuZGVyc2NvcmUuXG4gKiBUcmltcyBsZWFkaW5nL3RyYWlsaW5nIHVuZGVyc2NvcmVzIGludHJvZHVjZWQgYnkgcmVwbGFjZW1lbnQuXG4gKi9cbmZ1bmN0aW9uIHNhbml0aXplTUNQTmFtZShpZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGlkLnJlcGxhY2UoL1teQS1aYS16MC05X1xcLS5dL2csICdfJykucmVwbGFjZSgvXl8rfF8rJC9nLCAnJykgfHwgJ2V4ZWN1dGUnO1xufVxuXG4vKipcbiAqIFNsdWdpZnkgYSBzdHJpbmcgZm9yIHVzZSBhcyBhbiBPcGVuQVBJIHBhdGggc2VnbWVudC5cbiAqIExvd2VyY2FzZXMgYW5kIHJlcGxhY2VzIG5vbi1hbHBoYW51bWVyaWMgcnVucyB3aXRoIGh5cGhlbnMuXG4gKi9cbmZ1bmN0aW9uIHNsdWdpZnkoaWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiAoXG4gICAgaWRcbiAgICAgIC50b0xvd2VyQ2FzZSgpXG4gICAgICAucmVwbGFjZSgvW15hLXowLTldKy9nLCAnLScpXG4gICAgICAucmVwbGFjZSgvXi18LSQvZywgJycpIHx8ICdleGVjdXRlJ1xuICApO1xufVxuIl19
|
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUnVubmFibGVDaGFydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvcnVubmVyL1J1bm5hYmxlQ2hhcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBR0gscURBQXdEO0FBS3hELG1EQUE2RDtBQTRDN0QsbUZBQW1GO0FBQ25GLHNEQUFzRDtBQUN0RCxNQUFNLFlBQVksR0FBRyxJQUFJLE9BQU8sRUFBcUIsQ0FBQztBQUN0RCxNQUFNLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBaUMsQ0FBQztBQUU5RDs7O0dBR0c7QUFDSCxTQUFnQixZQUFZLENBQWUsS0FBOEI7SUFDdkUsTUFBTSxRQUFRLEdBQUcsS0FBd0MsQ0FBQztJQUUxRCxRQUFRLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBMEI7UUFDdEQsT0FBTyxJQUFJLDBCQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNDLENBQUMsQ0FBQztJQUVGLFFBQVEsQ0FBQyxNQUFNLEdBQUcsVUFBVSxNQUF1QjtRQUNqRCxPQUFPLElBQUksMEJBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUMsQ0FBQyxDQUFDO0lBRUYsUUFBUSxDQUFDLEdBQUcsR0FBRyxVQUFVLE9BQW9CO1FBQzNDLE9BQU8sSUFBSSwwQkFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QyxDQUFDLENBQUM7SUFFRixRQUFRLENBQUMsU0FBUyxHQUFHLFVBQVUsT0FBNkI7UUFDMUQsb0VBQW9FO1FBQ3BFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNiLE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkMsSUFBSSxNQUFNO2dCQUFFLE9BQU8sTUFBTSxDQUFDO1FBQzVCLENBQUM7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O1FBRXBFLE1BQU0sSUFBSSxHQUF1QixFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFFcEUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDMUIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDLENBQUM7SUFFRixPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBM0dELG9DQTJHQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFTLGVBQWUsQ0FBQyxFQUFVO0lBQ2pDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJLFNBQVMsQ0FBQztBQUNuRixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBUyxPQUFPLENBQUMsRUFBVTtJQUN6QixPQUFPLENBQ0wsRUFBRTtTQUNDLFdBQVcsRUFBRTtTQUNiLE9BQU8sQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDO1NBQzNCLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLElBQUksU0FBUyxDQUN0QyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUnVubmFibGVDaGFydCAtLSBBZGRzIC5yZWNvcmRlcigpLCAucmVkYWN0KCksIC5ydW4oKSwgLnRvT3BlbkFQSSgpLCAudG9NQ1BUb29sKClcbiAqIHRvIGEgRmxvd0NoYXJ0IG9iamVjdC5cbiAqXG4gKiBDYWxsZWQgYnkgRmxvd0NoYXJ0QnVpbGRlci5idWlsZCgpIHRvIGVucmljaCB0aGUgY29tcGlsZWQgY2hhcnQgd2l0aFxuICogZDMtc3R5bGUgY2hhaW5hYmxlIHJ1biBtZXRob2RzIGFuZCBzZWxmLWRlc2NyaWJpbmcgb3V0cHV0cy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEZsb3dDaGFydCB9IGZyb20gJy4uL2J1aWxkZXIvdHlwZXMuanMnO1xuaW1wb3J0IHsgbm9ybWFsaXplU2NoZW1hIH0gZnJvbSAnLi4vY29udHJhY3Qvc2NoZW1hLmpzJztcbmltcG9ydCB0eXBlIHsgSnNvblNjaGVtYSB9IGZyb20gJy4uL2NvbnRyYWN0L3R5cGVzLmpzJztcbmltcG9ydCB0eXBlIHsgRmxvd1JlY29yZGVyIH0gZnJvbSAnLi4vZW5naW5lL25hcnJhdGl2ZS90eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IFJ1bk9wdGlvbnMsIFN0YWdlTm9kZSB9IGZyb20gJy4uL2VuZ2luZS90eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IFJlY29yZGVyLCBSZWRhY3Rpb25Qb2xpY3kgfSBmcm9tICcuLi9zY29wZS90eXBlcy5qcyc7XG5pbXBvcnQgeyB0eXBlIFJ1blJlc3VsdCwgUnVuQ29udGV4dCB9IGZyb20gJy4vUnVuQ29udGV4dC5qcyc7XG5cbi8qKiBPcGVuQVBJIGdlbmVyYXRpb24gb3B0aW9ucy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhcnRPcGVuQVBJT3B0aW9ucyB7XG4gIHRpdGxlPzogc3RyaW5nO1xuICB2ZXJzaW9uPzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgcGF0aD86IHN0cmluZztcbn1cblxuLyoqIE1DUCB0b29sIGRlc2NyaXB0aW9uIOKAlCBzaGFwZSByZXF1aXJlZCBieSB0aGUgTW9kZWwgQ29udGV4dCBQcm90b2NvbCBzcGVjLiAqL1xuZXhwb3J0IGludGVyZmFjZSBNQ1BUb29sRGVzY3JpcHRpb24ge1xuICBuYW1lOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBKU09OIFNjaGVtYSBvYmplY3QgZGVzY3JpYmluZyB0aGUgdG9vbCdzIGlucHV0LlxuICAgKiBBbHdheXMgcHJlc2VudCDigJQgdGhlIE1DUCBzcGVjIHJlcXVpcmVzIGlucHV0U2NoZW1hIGV2ZW4gZm9yIHRvb2xzIHdpdGggbm8gcGFyYW1ldGVycy5cbiAgICogRGVmYXVsdHMgdG8gYHsgdHlwZTogJ29iamVjdCcsIHByb3BlcnRpZXM6IHt9LCBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UgfWAuXG4gICAqL1xuICBpbnB1dFNjaGVtYTogSnNvblNjaGVtYTtcbn1cblxuLyoqXG4gKiBGbG93Q2hhcnQgZW5yaWNoZWQgd2l0aCBkMy1zdHlsZSBydW4gbWV0aG9kcyBhbmQgc2VsZi1kZXNjcmliaW5nIG91dHB1dHMuXG4gKlxuICogRXh0ZW5kcyBidWlsZGVyLkZsb3dDaGFydCAod2hpY2ggYWxyZWFkeSBjYXJyaWVzIGJ1aWxkVGltZVN0cnVjdHVyZSwgZGVzY3JpcHRpb24sXG4gKiBzdGFnZURlc2NyaXB0aW9ucywgaW5wdXRTY2hlbWEsIG91dHB1dFNjaGVtYSwgb3V0cHV0TWFwcGVyKSBhbmQgYWRkcyB0aGUgcnVudGltZVxuICogbWV0aG9kcyBhdHRhY2hlZCBieSBtYWtlUnVubmFibGUoKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSdW5uYWJsZUZsb3dDaGFydDxUT3V0ID0gYW55LCBUU2NvcGUgPSBhbnk+IGV4dGVuZHMgRmxvd0NoYXJ0PFRPdXQsIFRTY29wZT4ge1xuICAvKiogQXR0YWNoIGEgcmVjb3JkZXIgZm9yIHRoZSBuZXh0IHJ1bi4gUmV0dXJucyBhIGNoYWluYWJsZSBSdW5Db250ZXh0LiAqL1xuICByZWNvcmRlcihyOiBSZWNvcmRlciB8IEZsb3dSZWNvcmRlcik6IFJ1bkNvbnRleHQ8VE91dCwgVFNjb3BlPjtcbiAgLyoqIFNldCByZWRhY3Rpb24gcG9saWN5IGZvciB0aGUgbmV4dCBydW4uIFJldHVybnMgYSBjaGFpbmFibGUgUnVuQ29udGV4dC4gKi9cbiAgcmVkYWN0KHBvbGljeTogUmVkYWN0aW9uUG9saWN5KTogUnVuQ29udGV4dDxUT3V0LCBUU2NvcGU+O1xuICAvKiogRXhlY3V0ZSB0aGUgY2hhcnQgZGlyZWN0bHkgKGJhcmUgcnVuLCBubyByZWNvcmRlcnMpLiAqL1xuICBydW4ob3B0aW9ucz86IFJ1bk9wdGlvbnMpOiBQcm9taXNlPFJ1blJlc3VsdD47XG4gIC8qKiBHZW5lcmF0ZSBPcGVuQVBJIDMuMSBzcGVjIGZyb20gY2hhcnQgbWV0YWRhdGEgKyBjb250cmFjdC4gQ2FjaGVkIGZvciBuby1vcHRpb25zIGNhbGxzLiAqL1xuICB0b09wZW5BUEkob3B0aW9ucz86IENoYXJ0T3BlbkFQSU9wdGlvbnMpOiBvYmplY3Q7XG4gIC8qKiBHZW5lcmF0ZSBNQ1AgdG9vbCBkZXNjcmlwdGlvbiBmcm9tIGNoYXJ0IG1ldGFkYXRhLiBDYWNoZWQuICovXG4gIHRvTUNQVG9vbCgpOiBNQ1BUb29sRGVzY3JpcHRpb247XG4gIC8qKiBHZW5lcmF0ZSBhIE1lcm1haWQgZmxvd2NoYXJ0IGRpYWdyYW0gc3RyaW5nIGZyb20gdGhlIGNoYXJ0J3Mgbm9kZSBncmFwaC4gKi9cbiAgdG9NZXJtYWlkKCk6IHN0cmluZztcbn1cblxuLy8gQ2FjaGUgZm9yIG5vLW9wdGlvbnMgdG9PcGVuQVBJKCkgY2FsbHMgb25seSDigJQgcGFyYW1ldGVyaXplZCBjYWxscyBhcmUgbm90IGNhY2hlZFxuLy8gYmVjYXVzZSBkaWZmZXJlbnQgb3B0aW9ucyBwcm9kdWNlIGRpZmZlcmVudCBvdXRwdXQuXG5jb25zdCBvcGVuQVBJQ2FjaGUgPSBuZXcgV2Vha01hcDxGbG93Q2hhcnQsIG9iamVjdD4oKTtcbmNvbnN0IG1jcENhY2hlID0gbmV3IFdlYWtNYXA8Rmxvd0NoYXJ0LCBNQ1BUb29sRGVzY3JpcHRpb24+KCk7XG5cbi8qKlxuICogRW5yaWNoIGEgRmxvd0NoYXJ0IHdpdGggcnVuICsgZGVzY3JpYmUgbWV0aG9kcy5cbiAqIENhbGxlZCBieSBGbG93Q2hhcnRCdWlsZGVyLmJ1aWxkKCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYWtlUnVubmFibGU8VE91dCwgVFNjb3BlPihjaGFydDogRmxvd0NoYXJ0PFRPdXQsIFRTY29wZT4pOiBSdW5uYWJsZUZsb3dDaGFydDxUT3V0LCBUU2NvcGU+IHtcbiAgY29uc3QgcnVubmFibGUgPSBjaGFydCBhcyBSdW5uYWJsZUZsb3dDaGFydDxUT3V0LCBUU2NvcGU+O1xuXG4gIHJ1bm5hYmxlLnJlY29yZGVyID0gZnVuY3Rpb24gKHI6IFJlY29yZGVyIHwgRmxvd1JlY29yZGVyKTogUnVuQ29udGV4dDxUT3V0LCBUU2NvcGU+IHtcbiAgICByZXR1cm4gbmV3IFJ1bkNvbnRleHQoY2hhcnQpLnJlY29yZGVyKHIpO1xuICB9O1xuXG4gIHJ1bm5hYmxlLnJlZGFjdCA9IGZ1bmN0aW9uIChwb2xpY3k6IFJlZGFjdGlvblBvbGljeSk6IFJ1bkNvbnRleHQ8VE91dCwgVFNjb3BlPiB7XG4gICAgcmV0dXJuIG5ldyBSdW5Db250ZXh0KGNoYXJ0KS5yZWRhY3QocG9saWN5KTtcbiAgfTtcblxuICBydW5uYWJsZS5ydW4gPSBmdW5jdGlvbiAob3B0aW9ucz86IFJ1bk9wdGlvbnMpOiBQcm9taXNlPFJ1blJlc3VsdD4ge1xuICAgIHJldHVybiBuZXcgUnVuQ29udGV4dChjaGFydCkucnVuKG9wdGlvbnMpO1xuICB9O1xuXG4gIHJ1bm5hYmxlLnRvT3BlbkFQSSA9IGZ1bmN0aW9uIChvcHRpb25zPzogQ2hhcnRPcGVuQVBJT3B0aW9ucyk6IG9iamVjdCB7XG4gICAgLy8gT25seSBjYWNoZSBuby1vcHRpb25zIGNhbGxzIOKAlCBwYXJhbWV0ZXJpemVkIGNhbGxzIHZhcnkgYnkgb3B0aW9uc1xuICAgIGlmICghb3B0aW9ucykge1xuICAgICAgY29uc3QgY2FjaGVkID0gb3BlbkFQSUNhY2hlLmdldChjaGFydCk7XG4gICAgICBpZiAoY2FjaGVkKSByZXR1cm4gY2FjaGVkO1xuICAgIH1cblxuICAgIGNvbnN0IGJ1aWxkZXJDaGFydCA9IGNoYXJ0IGFzIGFueTtcbiAgICBjb25zdCB0aXRsZSA9IG9wdGlvbnM/LnRpdGxlID8/IGJ1aWxkZXJDaGFydC5kZXNjcmlwdGlvbj8uc3BsaXQoJ1xcbicpWzBdID8/ICdBUEknO1xuICAgIGNvbnN0IHZlcnNpb24gPSBvcHRpb25zPy52ZXJzaW9uID8/ICcxLjAuMCc7XG4gICAgLy8gVXNlIHJvb3QuaWQgKHRoZSBleHBsaWNpdCBtYWNoaW5lLXJlYWRhYmxlIGlkKSBhcyB0aGUgcGF0aCBzZWdtZW50LCBzYW5pdGl6ZWRcbiAgICBjb25zdCByYXdJZCA9IGJ1aWxkZXJDaGFydC5yb290Py5pZCA/PyAnZXhlY3V0ZSc7XG4gICAgY29uc3QgcGF0aCA9IG9wdGlvbnM/LnBhdGggPz8gYC8ke3NsdWdpZnkocmF3SWQpfWA7XG5cbiAgICBjb25zdCBzcGVjOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHtcbiAgICAgIG9wZW5hcGk6ICczLjEuMCcsXG4gICAgICBpbmZvOiB7IHRpdGxlLCB2ZXJzaW9uLCBkZXNjcmlwdGlvbjogb3B0aW9ucz8uZGVzY3JpcHRpb24gPz8gYnVpbGRlckNoYXJ0LmRlc2NyaXB0aW9uIH0sXG4gICAgICBwYXRoczoge1xuICAgICAgICBbcGF0aF06IHtcbiAgICAgICAgICBwb3N0OiB7XG4gICAgICAgICAgICBzdW1tYXJ5OiB0aXRsZSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBidWlsZGVyQ2hhcnQuZGVzY3JpcHRpb24sXG4gICAgICAgICAgICAuLi4oYnVpbGRlckNoYXJ0LmlucHV0U2NoZW1hXG4gICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogeyAnYXBwbGljYXRpb24vanNvbic6IHsgc2NoZW1hOiBub3JtYWxpemVTY2hlbWEoYnVpbGRlckNoYXJ0LmlucHV0U2NoZW1hKSB9IH0sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgICByZXNwb25zZXM6IHtcbiAgICAgICAgICAgICAgJzIwMCc6IHtcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1N1Y2Nlc3MnLFxuICAgICAgICAgICAgICAgIC4uLihidWlsZGVyQ2hhcnQub3V0cHV0U2NoZW1hXG4gICAgICAgICAgICAgICAgICA/IHsgY29udGVudDogeyAnYXBwbGljYXRpb24vanNvbic6IHsgc2NoZW1hOiBub3JtYWxpemVTY2hlbWEoYnVpbGRlckNoYXJ0Lm91dHB1dFNjaGVtYSkgfSB9IH1cbiAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgaWYgKCFvcHRpb25zKSBvcGVuQVBJQ2FjaGUuc2V0KGNoYXJ0LCBzcGVjKTtcbiAgICByZXR1cm4gc3BlYztcbiAgfTtcblxuICBydW5uYWJsZS50b01lcm1haWQgPSBmdW5jdGlvbiAoKTogc3RyaW5nIHtcbiAgICBjb25zdCBsaW5lczogc3RyaW5nW10gPSBbJ2Zsb3djaGFydCBURCddO1xuICAgIGNvbnN0IGlkT2YgPSAoazogc3RyaW5nKSA9PiAoayB8fCAnJykucmVwbGFjZSgvW15hLXpBLVowLTlfXS9nLCAnXycpIHx8ICdfJztcbiAgICBjb25zdCB2aXNpdGVkID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgY29uc3Qgd2FsayA9IChuOiBTdGFnZU5vZGUpID0+IHtcbiAgICAgIGNvbnN0IG5pZCA9IGlkT2Yobi5pZCk7XG4gICAgICBpZiAodmlzaXRlZC5oYXMobmlkKSkgcmV0dXJuO1xuICAgICAgdmlzaXRlZC5hZGQobmlkKTtcbiAgICAgIGxpbmVzLnB1c2goYCR7bmlkfVtcIiR7bi5uYW1lfVwiXWApO1xuICAgICAgZm9yIChjb25zdCBjIG9mIG4uY2hpbGRyZW4gfHwgW10pIHtcbiAgICAgICAgY29uc3QgY2lkID0gaWRPZihjLmlkKTtcbiAgICAgICAgbGluZXMucHVzaChgJHtuaWR9IC0tPiAke2NpZH1gKTtcbiAgICAgICAgd2FsayhjKTtcbiAgICAgIH1cbiAgICAgIGlmIChuLm5leHQpIHtcbiAgICAgICAgY29uc3QgbWlkID0gaWRPZihuLm5leHQuaWQpO1xuICAgICAgICBsaW5lcy5wdXNoKGAke25pZH0gLS0+ICR7bWlkfWApO1xuICAgICAgICB3YWxrKG4ubmV4dCk7XG4gICAgICB9XG4gICAgfTtcbiAgICB3YWxrKGNoYXJ0LnJvb3QpO1xuICAgIHJldHVybiBsaW5lcy5qb2luKCdcXG4nKTtcbiAgfTtcblxuICBydW5uYWJsZS50b01DUFRvb2wgPSBmdW5jdGlvbiAoKTogTUNQVG9vbERlc2NyaXB0aW9uIHtcbiAgICBjb25zdCBjYWNoZWQgPSBtY3BDYWNoZS5nZXQoY2hhcnQpO1xuICAgIGlmIChjYWNoZWQpIHJldHVybiBjYWNoZWQ7XG5cbiAgICBjb25zdCBidWlsZGVyQ2hhcnQgPSBjaGFydCBhcyBhbnk7XG4gICAgLy8gVXNlIHJvb3QuaWQgKGV4cGxpY2l0IG1hY2hpbmUtcmVhZGFibGUgaWQpLCBzYW5pdGl6ZWQgdG8gTUNQIG5hbWUgY2hhcmFjdGVyIGFsbG93bGlzdFxuICAgIGNvbnN0IG5hbWUgPSBzYW5pdGl6ZU1DUE5hbWUoYnVpbGRlckNoYXJ0LnJvb3Q/LmlkID8/ICdleGVjdXRlJyk7XG4gICAgY29uc3QgZGVzY3JpcHRpb24gPSBidWlsZGVyQ2hhcnQuZGVzY3JpcHRpb24gfHwgYEV4ZWN1dGUgdGhlICR7bmFtZX0gZmxvd2NoYXJ0YDtcblxuICAgIC8vIE1DUCBzcGVjIHJlcXVpcmVzIGlucHV0U2NoZW1hIHRvIGFsd2F5cyBiZSBwcmVzZW50LlxuICAgIC8vIFdoZW4gbm8gY29udHJhY3QgaXMgZGVmaW5lZCwgdXNlIHRoZSByZWNvbW1lbmRlZCBuby1wYXJhbWV0ZXIgZm9ybS5cbiAgICBjb25zdCBpbnB1dFNjaGVtYTogSnNvblNjaGVtYSA9IGJ1aWxkZXJDaGFydC5pbnB1dFNjaGVtYVxuICAgICAgPyBub3JtYWxpemVTY2hlbWEoYnVpbGRlckNoYXJ0LmlucHV0U2NoZW1hKVxuICAgICAgOiB7IHR5cGU6ICdvYmplY3QnLCBwcm9wZXJ0aWVzOiB7fSwgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlIH07XG5cbiAgICBjb25zdCB0b29sOiBNQ1BUb29sRGVzY3JpcHRpb24gPSB7IG5hbWUsIGRlc2NyaXB0aW9uLCBpbnB1dFNjaGVtYSB9O1xuXG4gICAgbWNwQ2FjaGUuc2V0KGNoYXJ0LCB0b29sKTtcbiAgICByZXR1cm4gdG9vbDtcbiAgfTtcblxuICByZXR1cm4gcnVubmFibGU7XG59XG5cbi8qKlxuICogU2FuaXRpemUgYSBzdHJpbmcgdG8gY29uZm9ybSB0byB0aGUgTUNQIHRvb2wgbmFtZSBjaGFyYWN0ZXIgYWxsb3dsaXN0OlxuICogW0EtWmEtejAtOV9cXC0uXSDigJQgYW55IG90aGVyIGNoYXJhY3RlciBpcyByZXBsYWNlZCB3aXRoIHVuZGVyc2NvcmUuXG4gKiBUcmltcyBsZWFkaW5nL3RyYWlsaW5nIHVuZGVyc2NvcmVzIGludHJvZHVjZWQgYnkgcmVwbGFjZW1lbnQuXG4gKi9cbmZ1bmN0aW9uIHNhbml0aXplTUNQTmFtZShpZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGlkLnJlcGxhY2UoL1teQS1aYS16MC05X1xcLS5dL2csICdfJykucmVwbGFjZSgvXl8rfF8rJC9nLCAnJykgfHwgJ2V4ZWN1dGUnO1xufVxuXG4vKipcbiAqIFNsdWdpZnkgYSBzdHJpbmcgZm9yIHVzZSBhcyBhbiBPcGVuQVBJIHBhdGggc2VnbWVudC5cbiAqIExvd2VyY2FzZXMgYW5kIHJlcGxhY2VzIG5vbi1hbHBoYW51bWVyaWMgcnVucyB3aXRoIGh5cGhlbnMuXG4gKi9cbmZ1bmN0aW9uIHNsdWdpZnkoaWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiAoXG4gICAgaWRcbiAgICAgIC50b0xvd2VyQ2FzZSgpXG4gICAgICAucmVwbGFjZSgvW15hLXowLTldKy9nLCAnLScpXG4gICAgICAucmVwbGFjZSgvXi18LSQvZywgJycpIHx8ICdleGVjdXRlJ1xuICApO1xufVxuIl19
|
|
@@ -37,7 +37,6 @@ const detectCircular_js_1 = require("../scope/detectCircular.js");
|
|
|
37
37
|
* @returns the matching SubtreeSnapshot, or `undefined` if the path is not found
|
|
38
38
|
*/
|
|
39
39
|
function getSubtreeSnapshot(snapshot, path, allNarrativeEntries) {
|
|
40
|
-
var _a;
|
|
41
40
|
if (!snapshot || !path)
|
|
42
41
|
return undefined;
|
|
43
42
|
const normalizedPath = path.split('/').filter(Boolean).join('/');
|
|
@@ -52,8 +51,8 @@ function getSubtreeSnapshot(snapshot, path, allNarrativeEntries) {
|
|
|
52
51
|
const treeCtx = sfResult.treeContext;
|
|
53
52
|
return {
|
|
54
53
|
subflowId: lastSegment,
|
|
55
|
-
executionTree:
|
|
56
|
-
sharedState: treeCtx
|
|
54
|
+
executionTree: treeCtx?.stageContexts ?? findSubflowInTree(snapshot.executionTree, lastSegment),
|
|
55
|
+
sharedState: treeCtx?.globalContext,
|
|
57
56
|
narrativeEntries: allNarrativeEntries ? extractScopedNarrative(allNarrativeEntries, lastSegment) : undefined,
|
|
58
57
|
};
|
|
59
58
|
}
|
|
@@ -86,7 +85,7 @@ exports.getSubtreeSnapshot = getSubtreeSnapshot;
|
|
|
86
85
|
* @returns array of available subflow paths, empty if none
|
|
87
86
|
*/
|
|
88
87
|
function listSubflowPaths(snapshot) {
|
|
89
|
-
if (!
|
|
88
|
+
if (!snapshot?.subflowResults)
|
|
90
89
|
return [];
|
|
91
90
|
return Object.keys(snapshot.subflowResults);
|
|
92
91
|
}
|
|
@@ -131,4 +130,4 @@ function findSubflowInTree(node, subflowId) {
|
|
|
131
130
|
}
|
|
132
131
|
return undefined;
|
|
133
132
|
}
|
|
134
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0U3VidHJlZVNuYXBzaG90LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9ydW5uZXIvZ2V0U3VidHJlZVNuYXBzaG90LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJHOzs7QUFJSCxrRUFBdUQ7QUFldkQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxTQUFnQixrQkFBa0IsQ0FDaEMsUUFBeUIsRUFDekIsSUFBWSxFQUNaLG1CQUE4Qzs7SUFFOUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUk7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUV6QyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakUsSUFBSSxDQUFDLGNBQWM7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUV0QyxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDO0lBQy9DLE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFHLENBQUM7SUFFckQsNERBQTREO0lBQzVELDZFQUE2RTtJQUM3RSxJQUFJLGNBQWMsSUFBSSxjQUFjLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztRQUNyRCxNQUFNLFFBQVEsR0FBRyxjQUFjLENBQUMsY0FBYyxDQUE0QixDQUFDO1FBQzNFLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxXQUFrRCxDQUFDO1FBRTVFLE9BQU87WUFDTCxTQUFTLEVBQUUsV0FBVztZQUN0QixhQUFhLEVBQ1gsTUFBQyxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsYUFBMEMsbUNBQUksaUJBQWlCLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUM7WUFDaEgsV0FBVyxFQUFFLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxhQUFvRDtZQUMxRSxnQkFBZ0IsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUMsbUJBQW1CLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7U0FDN0csQ0FBQztJQUNKLENBQUM7SUFFRCxnRUFBZ0U7SUFDaEUsa0VBQWtFO0lBQ2xFLDJFQUEyRTtJQUMzRSxNQUFNLFNBQVMsR0FBRyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3pFLElBQUksQ0FBQyxTQUFTO1FBQUUsT0FBTyxTQUFTLENBQUM7SUFFakMsSUFBSSxJQUFBLDZCQUFTLEdBQUUsRUFBRSxDQUFDO1FBQ2hCLE9BQU8sQ0FBQyxJQUFJLENBQ1YsbUNBQW1DLGNBQWMscUNBQXFDO1lBQ3BGLDZGQUE2RixDQUNoRyxDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU87UUFDTCxTQUFTLEVBQUUsV0FBVztRQUN0QixhQUFhLEVBQUUsU0FBUztRQUN4QixXQUFXLEVBQUUsU0FBUztRQUN0QixnQkFBZ0IsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUMsbUJBQW1CLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7S0FDN0csQ0FBQztBQUNKLENBQUM7QUEvQ0QsZ0RBK0NDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQUMsUUFBeUI7SUFDeEQsSUFBSSxDQUFDLENBQUEsUUFBUSxhQUFSLFFBQVEsdUJBQVIsUUFBUSxDQUFFLGNBQWMsQ0FBQTtRQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ3pDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDOUMsQ0FBQztBQUhELDRDQUdDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQVMsc0JBQXNCLENBQUMsT0FBaUMsRUFBRSxJQUFZO0lBQzdFLGtFQUFrRTtJQUNsRSxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRyxDQUFDO0lBQ3pDLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQzlCLHFGQUFxRjtRQUNyRixJQUFJLEtBQUssQ0FBQyxTQUFTLEtBQUssU0FBUztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQy9DLDZGQUE2RjtRQUM3RixJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssU0FBUyxJQUFJLEtBQUssQ0FBQyxPQUFPLEtBQUssU0FBUztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ3pFLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQVMsaUJBQWlCLENBQUMsSUFBK0IsRUFBRSxTQUFpQjtJQUMzRSxJQUFJLENBQUMsSUFBSTtRQUFFLE9BQU8sU0FBUyxDQUFDO0lBRTVCLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxTQUFTO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFFOUMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbEIsS0FBSyxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEMsTUFBTSxLQUFLLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ2xELElBQUksS0FBSztnQkFBRSxPQUFPLEtBQUssQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2QsT0FBTyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBnZXRTdWJ0cmVlU25hcHNob3Qg4oCUIG5hdmlnYXRlIGFuIGV4ZWN1dGlvbiBzbmFwc2hvdCB0cmVlIGJ5IHN1YmZsb3cgcGF0aC5cbiAqXG4gKiBHaXZlbiBhIFJ1bnRpbWVTbmFwc2hvdCBhbmQgYSBzbGFzaC1zZXBhcmF0ZWQgcGF0aCBvZiBzdWJmbG93IElEcyxcbiAqIHJldHVybnMgdGhlIHN1YnRyZWUgcm9vdGVkIGF0IHRoYXQgc3ViZmxvdy4gVXNlZnVsIGZvciBMTE0gZHJpbGwtZG93bjpcbiAqIGluc3RlYWQgb2YgZHVtcGluZyB0aGUgZnVsbCB0cmFjZSwgZmV0Y2ggb25seSB0aGUgcmVsZXZhbnQgc3VidHJlZS5cbiAqXG4gKiBVc2FnZTpcbiAqICAgY29uc3Qgc25hcHNob3QgPSBleGVjdXRvci5nZXRTbmFwc2hvdCgpO1xuICpcbiAqICAgLy8gVG9wLWxldmVsIHN1YmZsb3dcbiAqICAgZ2V0U3VidHJlZVNuYXBzaG90KHNuYXBzaG90LCAnc2YtcGF5bWVudCcpO1xuICpcbiAqICAgLy8gTmVzdGVkIHN1YmZsb3cgKHBheW1lbnQg4oaSIHZhbGlkYXRpb24pXG4gKiAgIGdldFN1YnRyZWVTbmFwc2hvdChzbmFwc2hvdCwgJ3NmLXBheW1lbnQvc2YtdmFsaWRhdGlvbicpO1xuICpcbiAqICAgLy8gUmV0dXJucyB1bmRlZmluZWQgaWYgcGF0aCBub3QgZm91bmRcbiAqICAgZ2V0U3VidHJlZVNuYXBzaG90KHNuYXBzaG90LCAnbm9uZXhpc3RlbnQnKTsgLy8gdW5kZWZpbmVkXG4gKlxuICogICAvLyBEaXNjb3ZlciBhdmFpbGFibGUgcGF0aHNcbiAqICAgbGlzdFN1YmZsb3dQYXRocyhzbmFwc2hvdCk7IC8vIFsnc2YtcGF5bWVudCcsICdzZi1wYXltZW50L3NmLXZhbGlkYXRpb24nXVxuICovXG5cbmltcG9ydCB0eXBlIHsgQ29tYmluZWROYXJyYXRpdmVFbnRyeSB9IGZyb20gJy4uL2VuZ2luZS9uYXJyYXRpdmUvbmFycmF0aXZlVHlwZXMuanMnO1xuaW1wb3J0IHR5cGUgeyBTdGFnZVNuYXBzaG90IH0gZnJvbSAnLi4vbWVtb3J5L3R5cGVzLmpzJztcbmltcG9ydCB7IGlzRGV2TW9kZSB9IGZyb20gJy4uL3Njb3BlL2RldGVjdENpcmN1bGFyLmpzJztcbmltcG9ydCB0eXBlIHsgUnVudGltZVNuYXBzaG90IH0gZnJvbSAnLi9FeGVjdXRpb25SdW50aW1lLmpzJztcblxuLyoqIFRoZSByZXN1bHQgb2YgbmF2aWdhdGluZyB0byBhIHN1YnRyZWUgd2l0aGluIGEgc25hcHNob3QuICovXG5leHBvcnQgaW50ZXJmYWNlIFN1YnRyZWVTbmFwc2hvdCB7XG4gIC8qKiBUaGUgc3ViZmxvdyBJRCB0aGF0IHdhcyBtYXRjaGVkIChsYXN0IHNlZ21lbnQgb2YgdGhlIHBhdGgpLiAqL1xuICByZWFkb25seSBzdWJmbG93SWQ6IHN0cmluZztcbiAgLyoqIFRoZSBleGVjdXRpb24gdHJlZSByb290ZWQgYXQgdGhpcyBzdWJmbG93LiAqL1xuICByZWFkb25seSBleGVjdXRpb25UcmVlOiBTdGFnZVNuYXBzaG90O1xuICAvKiogU2hhcmVkIHN0YXRlIHNjb3BlZCB0byB0aGlzIHN1YmZsb3cgKGZyb20gc3ViZmxvd1Jlc3VsdHMgaWYgYXZhaWxhYmxlKS4gKi9cbiAgcmVhZG9ubHkgc2hhcmVkU3RhdGU/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgLyoqIE5hcnJhdGl2ZSBlbnRyaWVzIHNjb3BlZCB0byB0aGlzIHN1YmZsb3cgKGJldHdlZW4gZW50cnkvZXhpdCBldmVudHMpLiAqL1xuICByZWFkb25seSBuYXJyYXRpdmVFbnRyaWVzPzogQ29tYmluZWROYXJyYXRpdmVFbnRyeVtdO1xufVxuXG4vKipcbiAqIE5hdmlnYXRlIHRoZSBleGVjdXRpb24gc25hcHNob3QgdHJlZSBieSBhIHNsYXNoLXNlcGFyYXRlZCBzdWJmbG93IHBhdGguXG4gKlxuICogKipJbXBsZW1lbnRhdGlvbiBub3RlOioqIGZvb3RwcmludGpzJ3MgU3ViZmxvd0V4ZWN1dG9yIHN0b3JlcyBuZXN0ZWQgc3ViZmxvd1xuICogcmVzdWx0cyB3aXRoIGNvbXBvc2l0ZSBzbGFzaC1zZXBhcmF0ZWQga2V5cyAoZS5nLiBcInNmLW91dGVyL3NmLWlubmVyXCIpIGluXG4gKiB0aGUgZmxhdCBgc3ViZmxvd1Jlc3VsdHNgIG1hcC4gVGhpcyBmdW5jdGlvbiB1c2VzIHRob3NlIGtleXMgZm9yIGxvb2t1cC5cbiAqXG4gKiBAcGFyYW0gc25hcHNob3Qg4oCUIHRoZSBmdWxsIFJ1bnRpbWVTbmFwc2hvdCBmcm9tIGBleGVjdXRvci5nZXRTbmFwc2hvdCgpYFxuICogQHBhcmFtIHBhdGgg4oCUIHNsYXNoLXNlcGFyYXRlZCBzdWJmbG93IElEcywgZS5nLiBgXCJzZi1wYXltZW50XCJgIG9yIGBcInNmLXBheW1lbnQvc2YtdmFsaWRhdGlvblwiYFxuICogQHBhcmFtIGFsbE5hcnJhdGl2ZUVudHJpZXMg4oCUIG9wdGlvbmFsIGZ1bGwgbmFycmF0aXZlIGVudHJpZXMgZnJvbSBgZXhlY3V0b3IuZ2V0TmFycmF0aXZlRW50cmllcygpYCwgdXNlZCB0byBleHRyYWN0IHNjb3BlZCBuYXJyYXRpdmUgZm9yIHRoZSBzdWJ0cmVlXG4gKiBAcmV0dXJucyB0aGUgbWF0Y2hpbmcgU3VidHJlZVNuYXBzaG90LCBvciBgdW5kZWZpbmVkYCBpZiB0aGUgcGF0aCBpcyBub3QgZm91bmRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFN1YnRyZWVTbmFwc2hvdChcbiAgc25hcHNob3Q6IFJ1bnRpbWVTbmFwc2hvdCxcbiAgcGF0aDogc3RyaW5nLFxuICBhbGxOYXJyYXRpdmVFbnRyaWVzPzogQ29tYmluZWROYXJyYXRpdmVFbnRyeVtdLFxuKTogU3VidHJlZVNuYXBzaG90IHwgdW5kZWZpbmVkIHtcbiAgaWYgKCFzbmFwc2hvdCB8fCAhcGF0aCkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICBjb25zdCBub3JtYWxpemVkUGF0aCA9IHBhdGguc3BsaXQoJy8nKS5maWx0ZXIoQm9vbGVhbikuam9pbignLycpO1xuICBpZiAoIW5vcm1hbGl6ZWRQYXRoKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gIGNvbnN0IHN1YmZsb3dSZXN1bHRzID0gc25hcHNob3Quc3ViZmxvd1Jlc3VsdHM7XG4gIGNvbnN0IGxhc3RTZWdtZW50ID0gbm9ybWFsaXplZFBhdGguc3BsaXQoJy8nKS5wb3AoKSE7XG5cbiAgLy8gU3RyYXRlZ3kgMTogRGlyZWN0IGxvb2t1cCBpbiBzdWJmbG93UmVzdWx0cyBieSBmdWxsIHBhdGguXG4gIC8vIFN1YmZsb3dFeGVjdXRvciBzdG9yZXMgbmVzdGVkIHJlc3VsdHMgd2l0aCBjb21wb3NpdGUgc2xhc2gtc2VwYXJhdGVkIGtleXMuXG4gIGlmIChzdWJmbG93UmVzdWx0cyAmJiBzdWJmbG93UmVzdWx0c1tub3JtYWxpemVkUGF0aF0pIHtcbiAgICBjb25zdCBzZlJlc3VsdCA9IHN1YmZsb3dSZXN1bHRzW25vcm1hbGl6ZWRQYXRoXSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICBjb25zdCB0cmVlQ3R4ID0gc2ZSZXN1bHQudHJlZUNvbnRleHQgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCB1bmRlZmluZWQ7XG5cbiAgICByZXR1cm4ge1xuICAgICAgc3ViZmxvd0lkOiBsYXN0U2VnbWVudCxcbiAgICAgIGV4ZWN1dGlvblRyZWU6XG4gICAgICAgICh0cmVlQ3R4Py5zdGFnZUNvbnRleHRzIGFzIHVua25vd24gYXMgU3RhZ2VTbmFwc2hvdCkgPz8gZmluZFN1YmZsb3dJblRyZWUoc25hcHNob3QuZXhlY3V0aW9uVHJlZSwgbGFzdFNlZ21lbnQpLFxuICAgICAgc2hhcmVkU3RhdGU6IHRyZWVDdHg/Lmdsb2JhbENvbnRleHQgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCB1bmRlZmluZWQsXG4gICAgICBuYXJyYXRpdmVFbnRyaWVzOiBhbGxOYXJyYXRpdmVFbnRyaWVzID8gZXh0cmFjdFNjb3BlZE5hcnJhdGl2ZShhbGxOYXJyYXRpdmVFbnRyaWVzLCBsYXN0U2VnbWVudCkgOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfVxuXG4gIC8vIFN0cmF0ZWd5IDI6IEZpbmQgdGhlIG5vZGUgaW4gdGhlIGV4ZWN1dGlvbiB0cmVlIGJ5IHN1YmZsb3dJZC5cbiAgLy8gVGhpcyBwYXRoIGxhY2tzIHNoYXJlZFN0YXRlIChzdWJmbG93UmVzdWx0cyB3YXMgbm90IHBvcHVsYXRlZCkuXG4gIC8vIFRoaXMgdHlwaWNhbGx5IG1lYW5zIHRoZSBleGVjdXRvciByYW4gd2l0aG91dCBzdWJmbG93IHJlc3VsdCBlbnJpY2htZW50LlxuICBjb25zdCBmb3VuZE5vZGUgPSBmaW5kU3ViZmxvd0luVHJlZShzbmFwc2hvdC5leGVjdXRpb25UcmVlLCBsYXN0U2VnbWVudCk7XG4gIGlmICghZm91bmROb2RlKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gIGlmIChpc0Rldk1vZGUoKSkge1xuICAgIGNvbnNvbGUud2FybihcbiAgICAgIGBbZm9vdHByaW50XSBnZXRTdWJ0cmVlU25hcHNob3QoJyR7bm9ybWFsaXplZFBhdGh9Jyk6IHN1YmZsb3dSZXN1bHRzIG5vdCBwb3B1bGF0ZWQg4oCUIGAgK1xuICAgICAgICAnc2hhcmVkU3RhdGUgd2lsbCBiZSB1bmRlZmluZWQuIERpZCB5b3UgZW5hYmxlIGVucmljaFNuYXBzaG90cyBvciBhdHRhY2ggYW4gRXh0cmFjdG9yUnVubmVyPycsXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgc3ViZmxvd0lkOiBsYXN0U2VnbWVudCxcbiAgICBleGVjdXRpb25UcmVlOiBmb3VuZE5vZGUsXG4gICAgc2hhcmVkU3RhdGU6IHVuZGVmaW5lZCxcbiAgICBuYXJyYXRpdmVFbnRyaWVzOiBhbGxOYXJyYXRpdmVFbnRyaWVzID8gZXh0cmFjdFNjb3BlZE5hcnJhdGl2ZShhbGxOYXJyYXRpdmVFbnRyaWVzLCBsYXN0U2VnbWVudCkgOiB1bmRlZmluZWQsXG4gIH07XG59XG5cbi8qKlxuICogTGlzdCBhbGwgYXZhaWxhYmxlIHN1YmZsb3cgcGF0aHMgaW4gYSBzbmFwc2hvdC5cbiAqXG4gKiBSZXR1cm5zIHRoZSBrZXlzIGZyb20gYHN1YmZsb3dSZXN1bHRzYCwgd2hpY2ggYXJlIHNsYXNoLXNlcGFyYXRlZFxuICogc3ViZmxvdyBJRCBwYXRocyAoZS5nLiBgW1wic2YtcGF5bWVudFwiLCBcInNmLW91dGVyL3NmLWlubmVyXCJdYCkuXG4gKiBVc2VmdWwgZm9yIGRpc2NvdmVyeSDigJQgYW4gTExNIG9yIFVJIGNhbiBlbnVtZXJhdGUgYXZhaWxhYmxlIGRyaWxsLWRvd24gdGFyZ2V0cy5cbiAqXG4gKiBAcGFyYW0gc25hcHNob3Qg4oCUIHRoZSBmdWxsIFJ1bnRpbWVTbmFwc2hvdCBmcm9tIGBleGVjdXRvci5nZXRTbmFwc2hvdCgpYFxuICogQHJldHVybnMgYXJyYXkgb2YgYXZhaWxhYmxlIHN1YmZsb3cgcGF0aHMsIGVtcHR5IGlmIG5vbmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxpc3RTdWJmbG93UGF0aHMoc25hcHNob3Q6IFJ1bnRpbWVTbmFwc2hvdCk6IHN0cmluZ1tdIHtcbiAgaWYgKCFzbmFwc2hvdD8uc3ViZmxvd1Jlc3VsdHMpIHJldHVybiBbXTtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKHNuYXBzaG90LnN1YmZsb3dSZXN1bHRzKTtcbn1cblxuLyoqXG4gKiBFeHRyYWN0IG5hcnJhdGl2ZSBlbnRyaWVzIHNjb3BlZCB0byBhIHNwZWNpZmljIHN1YmZsb3cuXG4gKiBGaWx0ZXJzIGJ5IGVudHJ5LnN1YmZsb3dJZCBmaWVsZCAoc2V0IGJ5IENvbWJpbmVkTmFycmF0aXZlUmVjb3JkZXIgZHVyaW5nIHRyYXZlcnNhbCkuXG4gKiBBbHNvIGluY2x1ZGVzIHRoZSBzdWJmbG93IGVudHJ5L2V4aXQgbWFya2VyIGVudHJpZXMgdGhlbXNlbHZlcy5cbiAqL1xuZnVuY3Rpb24gZXh0cmFjdFNjb3BlZE5hcnJhdGl2ZShlbnRyaWVzOiBDb21iaW5lZE5hcnJhdGl2ZUVudHJ5W10sIHBhdGg6IHN0cmluZyk6IENvbWJpbmVkTmFycmF0aXZlRW50cnlbXSB7XG4gIC8vIFRoZSBsYXN0IHNlZ21lbnQgb2YgdGhlIHBhdGggaXMgdGhlIHN1YmZsb3dJZCBzdG9yZWQgb24gZW50cmllc1xuICBjb25zdCBzdWJmbG93SWQgPSBwYXRoLnNwbGl0KCcvJykucG9wKCkhO1xuICByZXR1cm4gZW50cmllcy5maWx0ZXIoKGVudHJ5KSA9PiB7XG4gICAgLy8gSW5jbHVkZSBlbnRyaWVzIHdob3NlIHN1YmZsb3dJZCBtYXRjaGVzIChldmVudHMgZW1pdHRlZCB3aGlsZSBpbnNpZGUgdGhpcyBzdWJmbG93KVxuICAgIGlmIChlbnRyeS5zdWJmbG93SWQgPT09IHN1YmZsb3dJZCkgcmV0dXJuIHRydWU7XG4gICAgLy8gQWxzbyBpbmNsdWRlIHRoZSBzdWJmbG93IGVudHJ5L2V4aXQgbWFya2VycyAodGhleSBjYXJyeSB0aGUgcGFyZW50IHN1YmZsb3dJZCBvciB1bmRlZmluZWQpXG4gICAgaWYgKGVudHJ5LnR5cGUgPT09ICdzdWJmbG93JyAmJiBlbnRyeS5zdGFnZUlkID09PSBzdWJmbG93SWQpIHJldHVybiB0cnVlO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfSk7XG59XG5cbi8qKlxuICogRmluZCBhIHN1YmZsb3cgbm9kZSBpbiB0aGUgZXhlY3V0aW9uIHRyZWUgYnkgc2VhcmNoaW5nIGZvciBhIG5vZGVcbiAqIHdob3NlIHN1YmZsb3dJZCBtYXRjaGVzLlxuICogU2VhcmNoZXMgZGVwdGgtZmlyc3QgdGhyb3VnaCBgbmV4dGAgYW5kIGBjaGlsZHJlbmAgbGlua3MuXG4gKi9cbmZ1bmN0aW9uIGZpbmRTdWJmbG93SW5UcmVlKG5vZGU6IFN0YWdlU25hcHNob3QgfCB1bmRlZmluZWQsIHN1YmZsb3dJZDogc3RyaW5nKTogU3RhZ2VTbmFwc2hvdCB8IHVuZGVmaW5lZCB7XG4gIGlmICghbm9kZSkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICBpZiAobm9kZS5zdWJmbG93SWQgPT09IHN1YmZsb3dJZCkgcmV0dXJuIG5vZGU7XG5cbiAgaWYgKG5vZGUuY2hpbGRyZW4pIHtcbiAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgIGNvbnN0IGZvdW5kID0gZmluZFN1YmZsb3dJblRyZWUoY2hpbGQsIHN1YmZsb3dJZCk7XG4gICAgICBpZiAoZm91bmQpIHJldHVybiBmb3VuZDtcbiAgICB9XG4gIH1cblxuICBpZiAobm9kZS5uZXh0KSB7XG4gICAgcmV0dXJuIGZpbmRTdWJmbG93SW5UcmVlKG5vZGUubmV4dCwgc3ViZmxvd0lkKTtcbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG4iXX0=
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0U3VidHJlZVNuYXBzaG90LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9ydW5uZXIvZ2V0U3VidHJlZVNuYXBzaG90LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJHOzs7QUFJSCxrRUFBdUQ7QUFldkQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxTQUFnQixrQkFBa0IsQ0FDaEMsUUFBeUIsRUFDekIsSUFBWSxFQUNaLG1CQUE4QztJQUU5QyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSTtRQUFFLE9BQU8sU0FBUyxDQUFDO0lBRXpDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNqRSxJQUFJLENBQUMsY0FBYztRQUFFLE9BQU8sU0FBUyxDQUFDO0lBRXRDLE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUM7SUFDL0MsTUFBTSxXQUFXLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUcsQ0FBQztJQUVyRCw0REFBNEQ7SUFDNUQsNkVBQTZFO0lBQzdFLElBQUksY0FBYyxJQUFJLGNBQWMsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO1FBQ3JELE1BQU0sUUFBUSxHQUFHLGNBQWMsQ0FBQyxjQUFjLENBQTRCLENBQUM7UUFDM0UsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLFdBQWtELENBQUM7UUFFNUUsT0FBTztZQUNMLFNBQVMsRUFBRSxXQUFXO1lBQ3RCLGFBQWEsRUFDVixPQUFPLEVBQUUsYUFBMEMsSUFBSSxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQztZQUNoSCxXQUFXLEVBQUUsT0FBTyxFQUFFLGFBQW9EO1lBQzFFLGdCQUFnQixFQUFFLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxtQkFBbUIsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztTQUM3RyxDQUFDO0lBQ0osQ0FBQztJQUVELGdFQUFnRTtJQUNoRSxrRUFBa0U7SUFDbEUsMkVBQTJFO0lBQzNFLE1BQU0sU0FBUyxHQUFHLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDekUsSUFBSSxDQUFDLFNBQVM7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUVqQyxJQUFJLElBQUEsNkJBQVMsR0FBRSxFQUFFLENBQUM7UUFDaEIsT0FBTyxDQUFDLElBQUksQ0FDVixtQ0FBbUMsY0FBYyxxQ0FBcUM7WUFDcEYsNkZBQTZGLENBQ2hHLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTztRQUNMLFNBQVMsRUFBRSxXQUFXO1FBQ3RCLGFBQWEsRUFBRSxTQUFTO1FBQ3hCLFdBQVcsRUFBRSxTQUFTO1FBQ3RCLGdCQUFnQixFQUFFLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxtQkFBbUIsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztLQUM3RyxDQUFDO0FBQ0osQ0FBQztBQS9DRCxnREErQ0M7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFnQixnQkFBZ0IsQ0FBQyxRQUF5QjtJQUN4RCxJQUFJLENBQUMsUUFBUSxFQUFFLGNBQWM7UUFBRSxPQUFPLEVBQUUsQ0FBQztJQUN6QyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBQzlDLENBQUM7QUFIRCw0Q0FHQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFTLHNCQUFzQixDQUFDLE9BQWlDLEVBQUUsSUFBWTtJQUM3RSxrRUFBa0U7SUFDbEUsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUcsQ0FBQztJQUN6QyxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUM5QixxRkFBcUY7UUFDckYsSUFBSSxLQUFLLENBQUMsU0FBUyxLQUFLLFNBQVM7WUFBRSxPQUFPLElBQUksQ0FBQztRQUMvQyw2RkFBNkY7UUFDN0YsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFNBQVMsSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVM7WUFBRSxPQUFPLElBQUksQ0FBQztRQUN6RSxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFTLGlCQUFpQixDQUFDLElBQStCLEVBQUUsU0FBaUI7SUFDM0UsSUFBSSxDQUFDLElBQUk7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUU1QixJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssU0FBUztRQUFFLE9BQU8sSUFBSSxDQUFDO0lBRTlDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2xCLEtBQUssTUFBTSxLQUFLLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xDLE1BQU0sS0FBSyxHQUFHLGlCQUFpQixDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztZQUNsRCxJQUFJLEtBQUs7Z0JBQUUsT0FBTyxLQUFLLENBQUM7UUFDMUIsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNkLE9BQU8saUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogZ2V0U3VidHJlZVNuYXBzaG90IOKAlCBuYXZpZ2F0ZSBhbiBleGVjdXRpb24gc25hcHNob3QgdHJlZSBieSBzdWJmbG93IHBhdGguXG4gKlxuICogR2l2ZW4gYSBSdW50aW1lU25hcHNob3QgYW5kIGEgc2xhc2gtc2VwYXJhdGVkIHBhdGggb2Ygc3ViZmxvdyBJRHMsXG4gKiByZXR1cm5zIHRoZSBzdWJ0cmVlIHJvb3RlZCBhdCB0aGF0IHN1YmZsb3cuIFVzZWZ1bCBmb3IgTExNIGRyaWxsLWRvd246XG4gKiBpbnN0ZWFkIG9mIGR1bXBpbmcgdGhlIGZ1bGwgdHJhY2UsIGZldGNoIG9ubHkgdGhlIHJlbGV2YW50IHN1YnRyZWUuXG4gKlxuICogVXNhZ2U6XG4gKiAgIGNvbnN0IHNuYXBzaG90ID0gZXhlY3V0b3IuZ2V0U25hcHNob3QoKTtcbiAqXG4gKiAgIC8vIFRvcC1sZXZlbCBzdWJmbG93XG4gKiAgIGdldFN1YnRyZWVTbmFwc2hvdChzbmFwc2hvdCwgJ3NmLXBheW1lbnQnKTtcbiAqXG4gKiAgIC8vIE5lc3RlZCBzdWJmbG93IChwYXltZW50IOKGkiB2YWxpZGF0aW9uKVxuICogICBnZXRTdWJ0cmVlU25hcHNob3Qoc25hcHNob3QsICdzZi1wYXltZW50L3NmLXZhbGlkYXRpb24nKTtcbiAqXG4gKiAgIC8vIFJldHVybnMgdW5kZWZpbmVkIGlmIHBhdGggbm90IGZvdW5kXG4gKiAgIGdldFN1YnRyZWVTbmFwc2hvdChzbmFwc2hvdCwgJ25vbmV4aXN0ZW50Jyk7IC8vIHVuZGVmaW5lZFxuICpcbiAqICAgLy8gRGlzY292ZXIgYXZhaWxhYmxlIHBhdGhzXG4gKiAgIGxpc3RTdWJmbG93UGF0aHMoc25hcHNob3QpOyAvLyBbJ3NmLXBheW1lbnQnLCAnc2YtcGF5bWVudC9zZi12YWxpZGF0aW9uJ11cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IENvbWJpbmVkTmFycmF0aXZlRW50cnkgfSBmcm9tICcuLi9lbmdpbmUvbmFycmF0aXZlL25hcnJhdGl2ZVR5cGVzLmpzJztcbmltcG9ydCB0eXBlIHsgU3RhZ2VTbmFwc2hvdCB9IGZyb20gJy4uL21lbW9yeS90eXBlcy5qcyc7XG5pbXBvcnQgeyBpc0Rldk1vZGUgfSBmcm9tICcuLi9zY29wZS9kZXRlY3RDaXJjdWxhci5qcyc7XG5pbXBvcnQgdHlwZSB7IFJ1bnRpbWVTbmFwc2hvdCB9IGZyb20gJy4vRXhlY3V0aW9uUnVudGltZS5qcyc7XG5cbi8qKiBUaGUgcmVzdWx0IG9mIG5hdmlnYXRpbmcgdG8gYSBzdWJ0cmVlIHdpdGhpbiBhIHNuYXBzaG90LiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdWJ0cmVlU25hcHNob3Qge1xuICAvKiogVGhlIHN1YmZsb3cgSUQgdGhhdCB3YXMgbWF0Y2hlZCAobGFzdCBzZWdtZW50IG9mIHRoZSBwYXRoKS4gKi9cbiAgcmVhZG9ubHkgc3ViZmxvd0lkOiBzdHJpbmc7XG4gIC8qKiBUaGUgZXhlY3V0aW9uIHRyZWUgcm9vdGVkIGF0IHRoaXMgc3ViZmxvdy4gKi9cbiAgcmVhZG9ubHkgZXhlY3V0aW9uVHJlZTogU3RhZ2VTbmFwc2hvdDtcbiAgLyoqIFNoYXJlZCBzdGF0ZSBzY29wZWQgdG8gdGhpcyBzdWJmbG93IChmcm9tIHN1YmZsb3dSZXN1bHRzIGlmIGF2YWlsYWJsZSkuICovXG4gIHJlYWRvbmx5IHNoYXJlZFN0YXRlPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIC8qKiBOYXJyYXRpdmUgZW50cmllcyBzY29wZWQgdG8gdGhpcyBzdWJmbG93IChiZXR3ZWVuIGVudHJ5L2V4aXQgZXZlbnRzKS4gKi9cbiAgcmVhZG9ubHkgbmFycmF0aXZlRW50cmllcz86IENvbWJpbmVkTmFycmF0aXZlRW50cnlbXTtcbn1cblxuLyoqXG4gKiBOYXZpZ2F0ZSB0aGUgZXhlY3V0aW9uIHNuYXBzaG90IHRyZWUgYnkgYSBzbGFzaC1zZXBhcmF0ZWQgc3ViZmxvdyBwYXRoLlxuICpcbiAqICoqSW1wbGVtZW50YXRpb24gbm90ZToqKiBmb290cHJpbnRqcydzIFN1YmZsb3dFeGVjdXRvciBzdG9yZXMgbmVzdGVkIHN1YmZsb3dcbiAqIHJlc3VsdHMgd2l0aCBjb21wb3NpdGUgc2xhc2gtc2VwYXJhdGVkIGtleXMgKGUuZy4gXCJzZi1vdXRlci9zZi1pbm5lclwiKSBpblxuICogdGhlIGZsYXQgYHN1YmZsb3dSZXN1bHRzYCBtYXAuIFRoaXMgZnVuY3Rpb24gdXNlcyB0aG9zZSBrZXlzIGZvciBsb29rdXAuXG4gKlxuICogQHBhcmFtIHNuYXBzaG90IOKAlCB0aGUgZnVsbCBSdW50aW1lU25hcHNob3QgZnJvbSBgZXhlY3V0b3IuZ2V0U25hcHNob3QoKWBcbiAqIEBwYXJhbSBwYXRoIOKAlCBzbGFzaC1zZXBhcmF0ZWQgc3ViZmxvdyBJRHMsIGUuZy4gYFwic2YtcGF5bWVudFwiYCBvciBgXCJzZi1wYXltZW50L3NmLXZhbGlkYXRpb25cImBcbiAqIEBwYXJhbSBhbGxOYXJyYXRpdmVFbnRyaWVzIOKAlCBvcHRpb25hbCBmdWxsIG5hcnJhdGl2ZSBlbnRyaWVzIGZyb20gYGV4ZWN1dG9yLmdldE5hcnJhdGl2ZUVudHJpZXMoKWAsIHVzZWQgdG8gZXh0cmFjdCBzY29wZWQgbmFycmF0aXZlIGZvciB0aGUgc3VidHJlZVxuICogQHJldHVybnMgdGhlIG1hdGNoaW5nIFN1YnRyZWVTbmFwc2hvdCwgb3IgYHVuZGVmaW5lZGAgaWYgdGhlIHBhdGggaXMgbm90IGZvdW5kXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdWJ0cmVlU25hcHNob3QoXG4gIHNuYXBzaG90OiBSdW50aW1lU25hcHNob3QsXG4gIHBhdGg6IHN0cmluZyxcbiAgYWxsTmFycmF0aXZlRW50cmllcz86IENvbWJpbmVkTmFycmF0aXZlRW50cnlbXSxcbik6IFN1YnRyZWVTbmFwc2hvdCB8IHVuZGVmaW5lZCB7XG4gIGlmICghc25hcHNob3QgfHwgIXBhdGgpIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgY29uc3Qgbm9ybWFsaXplZFBhdGggPSBwYXRoLnNwbGl0KCcvJykuZmlsdGVyKEJvb2xlYW4pLmpvaW4oJy8nKTtcbiAgaWYgKCFub3JtYWxpemVkUGF0aCkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICBjb25zdCBzdWJmbG93UmVzdWx0cyA9IHNuYXBzaG90LnN1YmZsb3dSZXN1bHRzO1xuICBjb25zdCBsYXN0U2VnbWVudCA9IG5vcm1hbGl6ZWRQYXRoLnNwbGl0KCcvJykucG9wKCkhO1xuXG4gIC8vIFN0cmF0ZWd5IDE6IERpcmVjdCBsb29rdXAgaW4gc3ViZmxvd1Jlc3VsdHMgYnkgZnVsbCBwYXRoLlxuICAvLyBTdWJmbG93RXhlY3V0b3Igc3RvcmVzIG5lc3RlZCByZXN1bHRzIHdpdGggY29tcG9zaXRlIHNsYXNoLXNlcGFyYXRlZCBrZXlzLlxuICBpZiAoc3ViZmxvd1Jlc3VsdHMgJiYgc3ViZmxvd1Jlc3VsdHNbbm9ybWFsaXplZFBhdGhdKSB7XG4gICAgY29uc3Qgc2ZSZXN1bHQgPSBzdWJmbG93UmVzdWx0c1tub3JtYWxpemVkUGF0aF0gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgY29uc3QgdHJlZUN0eCA9IHNmUmVzdWx0LnRyZWVDb250ZXh0IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgdW5kZWZpbmVkO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHN1YmZsb3dJZDogbGFzdFNlZ21lbnQsXG4gICAgICBleGVjdXRpb25UcmVlOlxuICAgICAgICAodHJlZUN0eD8uc3RhZ2VDb250ZXh0cyBhcyB1bmtub3duIGFzIFN0YWdlU25hcHNob3QpID8/IGZpbmRTdWJmbG93SW5UcmVlKHNuYXBzaG90LmV4ZWN1dGlvblRyZWUsIGxhc3RTZWdtZW50KSxcbiAgICAgIHNoYXJlZFN0YXRlOiB0cmVlQ3R4Py5nbG9iYWxDb250ZXh0IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgdW5kZWZpbmVkLFxuICAgICAgbmFycmF0aXZlRW50cmllczogYWxsTmFycmF0aXZlRW50cmllcyA/IGV4dHJhY3RTY29wZWROYXJyYXRpdmUoYWxsTmFycmF0aXZlRW50cmllcywgbGFzdFNlZ21lbnQpIDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH1cblxuICAvLyBTdHJhdGVneSAyOiBGaW5kIHRoZSBub2RlIGluIHRoZSBleGVjdXRpb24gdHJlZSBieSBzdWJmbG93SWQuXG4gIC8vIFRoaXMgcGF0aCBsYWNrcyBzaGFyZWRTdGF0ZSAoc3ViZmxvd1Jlc3VsdHMgd2FzIG5vdCBwb3B1bGF0ZWQpLlxuICAvLyBUaGlzIHR5cGljYWxseSBtZWFucyB0aGUgZXhlY3V0b3IgcmFuIHdpdGhvdXQgc3ViZmxvdyByZXN1bHQgZW5yaWNobWVudC5cbiAgY29uc3QgZm91bmROb2RlID0gZmluZFN1YmZsb3dJblRyZWUoc25hcHNob3QuZXhlY3V0aW9uVHJlZSwgbGFzdFNlZ21lbnQpO1xuICBpZiAoIWZvdW5kTm9kZSkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICBjb25zb2xlLndhcm4oXG4gICAgICBgW2Zvb3RwcmludF0gZ2V0U3VidHJlZVNuYXBzaG90KCcke25vcm1hbGl6ZWRQYXRofScpOiBzdWJmbG93UmVzdWx0cyBub3QgcG9wdWxhdGVkIOKAlCBgICtcbiAgICAgICAgJ3NoYXJlZFN0YXRlIHdpbGwgYmUgdW5kZWZpbmVkLiBEaWQgeW91IGVuYWJsZSBlbnJpY2hTbmFwc2hvdHMgb3IgYXR0YWNoIGFuIEV4dHJhY3RvclJ1bm5lcj8nLFxuICAgICk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHN1YmZsb3dJZDogbGFzdFNlZ21lbnQsXG4gICAgZXhlY3V0aW9uVHJlZTogZm91bmROb2RlLFxuICAgIHNoYXJlZFN0YXRlOiB1bmRlZmluZWQsXG4gICAgbmFycmF0aXZlRW50cmllczogYWxsTmFycmF0aXZlRW50cmllcyA/IGV4dHJhY3RTY29wZWROYXJyYXRpdmUoYWxsTmFycmF0aXZlRW50cmllcywgbGFzdFNlZ21lbnQpIDogdW5kZWZpbmVkLFxuICB9O1xufVxuXG4vKipcbiAqIExpc3QgYWxsIGF2YWlsYWJsZSBzdWJmbG93IHBhdGhzIGluIGEgc25hcHNob3QuXG4gKlxuICogUmV0dXJucyB0aGUga2V5cyBmcm9tIGBzdWJmbG93UmVzdWx0c2AsIHdoaWNoIGFyZSBzbGFzaC1zZXBhcmF0ZWRcbiAqIHN1YmZsb3cgSUQgcGF0aHMgKGUuZy4gYFtcInNmLXBheW1lbnRcIiwgXCJzZi1vdXRlci9zZi1pbm5lclwiXWApLlxuICogVXNlZnVsIGZvciBkaXNjb3Zlcnkg4oCUIGFuIExMTSBvciBVSSBjYW4gZW51bWVyYXRlIGF2YWlsYWJsZSBkcmlsbC1kb3duIHRhcmdldHMuXG4gKlxuICogQHBhcmFtIHNuYXBzaG90IOKAlCB0aGUgZnVsbCBSdW50aW1lU25hcHNob3QgZnJvbSBgZXhlY3V0b3IuZ2V0U25hcHNob3QoKWBcbiAqIEByZXR1cm5zIGFycmF5IG9mIGF2YWlsYWJsZSBzdWJmbG93IHBhdGhzLCBlbXB0eSBpZiBub25lXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsaXN0U3ViZmxvd1BhdGhzKHNuYXBzaG90OiBSdW50aW1lU25hcHNob3QpOiBzdHJpbmdbXSB7XG4gIGlmICghc25hcHNob3Q/LnN1YmZsb3dSZXN1bHRzKSByZXR1cm4gW107XG4gIHJldHVybiBPYmplY3Qua2V5cyhzbmFwc2hvdC5zdWJmbG93UmVzdWx0cyk7XG59XG5cbi8qKlxuICogRXh0cmFjdCBuYXJyYXRpdmUgZW50cmllcyBzY29wZWQgdG8gYSBzcGVjaWZpYyBzdWJmbG93LlxuICogRmlsdGVycyBieSBlbnRyeS5zdWJmbG93SWQgZmllbGQgKHNldCBieSBDb21iaW5lZE5hcnJhdGl2ZVJlY29yZGVyIGR1cmluZyB0cmF2ZXJzYWwpLlxuICogQWxzbyBpbmNsdWRlcyB0aGUgc3ViZmxvdyBlbnRyeS9leGl0IG1hcmtlciBlbnRyaWVzIHRoZW1zZWx2ZXMuXG4gKi9cbmZ1bmN0aW9uIGV4dHJhY3RTY29wZWROYXJyYXRpdmUoZW50cmllczogQ29tYmluZWROYXJyYXRpdmVFbnRyeVtdLCBwYXRoOiBzdHJpbmcpOiBDb21iaW5lZE5hcnJhdGl2ZUVudHJ5W10ge1xuICAvLyBUaGUgbGFzdCBzZWdtZW50IG9mIHRoZSBwYXRoIGlzIHRoZSBzdWJmbG93SWQgc3RvcmVkIG9uIGVudHJpZXNcbiAgY29uc3Qgc3ViZmxvd0lkID0gcGF0aC5zcGxpdCgnLycpLnBvcCgpITtcbiAgcmV0dXJuIGVudHJpZXMuZmlsdGVyKChlbnRyeSkgPT4ge1xuICAgIC8vIEluY2x1ZGUgZW50cmllcyB3aG9zZSBzdWJmbG93SWQgbWF0Y2hlcyAoZXZlbnRzIGVtaXR0ZWQgd2hpbGUgaW5zaWRlIHRoaXMgc3ViZmxvdylcbiAgICBpZiAoZW50cnkuc3ViZmxvd0lkID09PSBzdWJmbG93SWQpIHJldHVybiB0cnVlO1xuICAgIC8vIEFsc28gaW5jbHVkZSB0aGUgc3ViZmxvdyBlbnRyeS9leGl0IG1hcmtlcnMgKHRoZXkgY2FycnkgdGhlIHBhcmVudCBzdWJmbG93SWQgb3IgdW5kZWZpbmVkKVxuICAgIGlmIChlbnRyeS50eXBlID09PSAnc3ViZmxvdycgJiYgZW50cnkuc3RhZ2VJZCA9PT0gc3ViZmxvd0lkKSByZXR1cm4gdHJ1ZTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH0pO1xufVxuXG4vKipcbiAqIEZpbmQgYSBzdWJmbG93IG5vZGUgaW4gdGhlIGV4ZWN1dGlvbiB0cmVlIGJ5IHNlYXJjaGluZyBmb3IgYSBub2RlXG4gKiB3aG9zZSBzdWJmbG93SWQgbWF0Y2hlcy5cbiAqIFNlYXJjaGVzIGRlcHRoLWZpcnN0IHRocm91Z2ggYG5leHRgIGFuZCBgY2hpbGRyZW5gIGxpbmtzLlxuICovXG5mdW5jdGlvbiBmaW5kU3ViZmxvd0luVHJlZShub2RlOiBTdGFnZVNuYXBzaG90IHwgdW5kZWZpbmVkLCBzdWJmbG93SWQ6IHN0cmluZyk6IFN0YWdlU25hcHNob3QgfCB1bmRlZmluZWQge1xuICBpZiAoIW5vZGUpIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgaWYgKG5vZGUuc3ViZmxvd0lkID09PSBzdWJmbG93SWQpIHJldHVybiBub2RlO1xuXG4gIGlmIChub2RlLmNoaWxkcmVuKSB7XG4gICAgZm9yIChjb25zdCBjaGlsZCBvZiBub2RlLmNoaWxkcmVuKSB7XG4gICAgICBjb25zdCBmb3VuZCA9IGZpbmRTdWJmbG93SW5UcmVlKGNoaWxkLCBzdWJmbG93SWQpO1xuICAgICAgaWYgKGZvdW5kKSByZXR1cm4gZm91bmQ7XG4gICAgfVxuICB9XG5cbiAgaWYgKG5vZGUubmV4dCkge1xuICAgIHJldHVybiBmaW5kU3ViZmxvd0luVHJlZShub2RlLm5leHQsIHN1YmZsb3dJZCk7XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuIl19
|
|
@@ -15,6 +15,8 @@ exports.extractIssuesFromZodError = exports.InputValidationError = void 0;
|
|
|
15
15
|
* Extends Error for compatibility, but carries structured .issues.
|
|
16
16
|
*/
|
|
17
17
|
class InputValidationError extends Error {
|
|
18
|
+
issues;
|
|
19
|
+
cause;
|
|
18
20
|
constructor(message, issues, cause) {
|
|
19
21
|
super(message);
|
|
20
22
|
this.name = 'InputValidationError';
|
|
@@ -30,12 +32,11 @@ exports.InputValidationError = InputValidationError;
|
|
|
30
32
|
* Works with both ZodError.issues (v3/v4) and ZodError.errors (v3 legacy).
|
|
31
33
|
*/
|
|
32
34
|
function extractIssuesFromZodError(zodError) {
|
|
33
|
-
var _a;
|
|
34
35
|
if (!zodError || typeof zodError !== 'object')
|
|
35
36
|
return [];
|
|
36
37
|
const err = zodError;
|
|
37
38
|
// Zod v3/v4: .issues array
|
|
38
|
-
const issues =
|
|
39
|
+
const issues = err.issues ?? err.errors;
|
|
39
40
|
if (!Array.isArray(issues))
|
|
40
41
|
return [];
|
|
41
42
|
return issues.map((issue) => ({
|
|
@@ -47,4 +48,4 @@ function extractIssuesFromZodError(zodError) {
|
|
|
47
48
|
}));
|
|
48
49
|
}
|
|
49
50
|
exports.extractIssuesFromZodError = extractIssuesFromZodError;
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9zY2hlbWEvZXJyb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7R0FRRzs7O0FBZ0JIOzs7R0FHRztBQUNILE1BQWEsb0JBQXFCLFNBQVEsS0FBSztJQUNwQyxNQUFNLENBQW9CO0lBQzFCLEtBQUssQ0FBVztJQUV6QixZQUFZLE9BQWUsRUFBRSxNQUF5QixFQUFFLEtBQWU7UUFDckUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxzQkFBc0IsQ0FBQztRQUNuQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNyQixDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBWkQsb0RBWUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQix5QkFBeUIsQ0FBQyxRQUFpQjtJQUN6RCxJQUFJLENBQUMsUUFBUSxJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVE7UUFBRSxPQUFPLEVBQUUsQ0FBQztJQUV6RCxNQUFNLEdBQUcsR0FBRyxRQUFtQyxDQUFDO0lBRWhELDJCQUEyQjtJQUMzQixNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUM7SUFDeEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQUUsT0FBTyxFQUFFLENBQUM7SUFFdEMsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBOEIsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNyRCxJQUFJLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDakQsT0FBTyxFQUFFLE9BQU8sS0FBSyxDQUFDLE9BQU8sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLG1CQUFtQjtRQUNoRixJQUFJLEVBQUUsT0FBTyxLQUFLLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUztRQUM3RCxRQUFRLEVBQUUsT0FBTyxLQUFLLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUN6RSxRQUFRLEVBQUUsT0FBTyxLQUFLLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUztLQUMxRSxDQUFDLENBQUMsQ0FBQztBQUNOLENBQUM7QUFoQkQsOERBZ0JDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBlcnJvcnMudHMg4oCUIFN0cnVjdHVyZWQgdmFsaWRhdGlvbiBlcnJvcnMgZm9yIHRoZSBzY2hlbWEgbGlicmFyeS5cbiAqXG4gKiBJbnB1dFZhbGlkYXRpb25FcnJvciBwcmVzZXJ2ZXMgZmllbGQtbGV2ZWwgZGV0YWlscyBmcm9tIFpvZCAob3IgYW55IHNjaGVtYSlcbiAqIHdoaWxlIHByb3ZpZGluZyBhIGh1bWFuLXJlYWRhYmxlIC5tZXNzYWdlIHN1bW1hcnkuIENvbnN1bWVycyBjYW46XG4gKiAtIENhdGNoIGFuZCByZWFkIC5tZXNzYWdlIGZvciBsb2dnaW5nXG4gKiAtIEl0ZXJhdGUgLmlzc3VlcyBmb3IgZmllbGQtbGV2ZWwgQVBJIHJlc3BvbnNlcyAvIGZvcm0gZXJyb3JzXG4gKiAtIEFjY2VzcyAuY2F1c2UgZm9yIHRoZSByYXcgb3JpZ2luYWwgZXJyb3IgKFpvZCBlcnJvciwgZXRjLilcbiAqL1xuXG4vKiogQSBzaW5nbGUgdmFsaWRhdGlvbiBpc3N1ZSDigJQgb25lIGZpZWxkLCBvbmUgcHJvYmxlbS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmFsaWRhdGlvbklzc3VlIHtcbiAgLyoqIERvdC1wYXRoIHRvIHRoZSBmaWVsZCAoZS5nLiBbJ2FkZHJlc3MnLCAnemlwJ10gb3IgWydhbW91bnQnXSkuICovXG4gIHBhdGg6IChzdHJpbmcgfCBudW1iZXIpW107XG4gIC8qKiBIdW1hbi1yZWFkYWJsZSBkZXNjcmlwdGlvbiBvZiB0aGUgcHJvYmxlbS4gKi9cbiAgbWVzc2FnZTogc3RyaW5nO1xuICAvKiogTWFjaGluZS1yZWFkYWJsZSBlcnJvciBjb2RlIChlLmcuICdpbnZhbGlkX3R5cGUnLCAndG9vX3NtYWxsJykuICovXG4gIGNvZGU/OiBzdHJpbmc7XG4gIC8qKiBXaGF0IHdhcyBleHBlY3RlZCAoZS5nLiAnbnVtYmVyJykuICovXG4gIGV4cGVjdGVkPzogc3RyaW5nO1xuICAvKiogV2hhdCB3YXMgcmVjZWl2ZWQgKGUuZy4gJ3N0cmluZycpLiAqL1xuICByZWNlaXZlZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaHJvd24gd2hlbiBydW50aW1lIGlucHV0IGZhaWxzIHNjaGVtYSB2YWxpZGF0aW9uLlxuICogRXh0ZW5kcyBFcnJvciBmb3IgY29tcGF0aWJpbGl0eSwgYnV0IGNhcnJpZXMgc3RydWN0dXJlZCAuaXNzdWVzLlxuICovXG5leHBvcnQgY2xhc3MgSW5wdXRWYWxpZGF0aW9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIHJlYWRvbmx5IGlzc3VlczogVmFsaWRhdGlvbklzc3VlW107XG4gIHJlYWRvbmx5IGNhdXNlPzogdW5rbm93bjtcblxuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcsIGlzc3VlczogVmFsaWRhdGlvbklzc3VlW10sIGNhdXNlPzogdW5rbm93bikge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMubmFtZSA9ICdJbnB1dFZhbGlkYXRpb25FcnJvcic7XG4gICAgdGhpcy5pc3N1ZXMgPSBpc3N1ZXM7XG4gICAgaWYgKGNhdXNlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuY2F1c2UgPSBjYXVzZTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBFeHRyYWN0IFZhbGlkYXRpb25Jc3N1ZXMgZnJvbSBhIFpvZCBlcnJvciAoZHVjay10eXBlZCDigJQgbm8gWm9kIGltcG9ydCkuXG4gKiBXb3JrcyB3aXRoIGJvdGggWm9kRXJyb3IuaXNzdWVzICh2My92NCkgYW5kIFpvZEVycm9yLmVycm9ycyAodjMgbGVnYWN5KS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RJc3N1ZXNGcm9tWm9kRXJyb3Ioem9kRXJyb3I6IHVua25vd24pOiBWYWxpZGF0aW9uSXNzdWVbXSB7XG4gIGlmICghem9kRXJyb3IgfHwgdHlwZW9mIHpvZEVycm9yICE9PSAnb2JqZWN0JykgcmV0dXJuIFtdO1xuXG4gIGNvbnN0IGVyciA9IHpvZEVycm9yIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG4gIC8vIFpvZCB2My92NDogLmlzc3VlcyBhcnJheVxuICBjb25zdCBpc3N1ZXMgPSBlcnIuaXNzdWVzID8/IGVyci5lcnJvcnM7XG4gIGlmICghQXJyYXkuaXNBcnJheShpc3N1ZXMpKSByZXR1cm4gW107XG5cbiAgcmV0dXJuIGlzc3Vlcy5tYXAoKGlzc3VlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPT4gKHtcbiAgICBwYXRoOiBBcnJheS5pc0FycmF5KGlzc3VlLnBhdGgpID8gaXNzdWUucGF0aCA6IFtdLFxuICAgIG1lc3NhZ2U6IHR5cGVvZiBpc3N1ZS5tZXNzYWdlID09PSAnc3RyaW5nJyA/IGlzc3VlLm1lc3NhZ2UgOiAnVmFsaWRhdGlvbiBmYWlsZWQnLFxuICAgIGNvZGU6IHR5cGVvZiBpc3N1ZS5jb2RlID09PSAnc3RyaW5nJyA/IGlzc3VlLmNvZGUgOiB1bmRlZmluZWQsXG4gICAgZXhwZWN0ZWQ6IHR5cGVvZiBpc3N1ZS5leHBlY3RlZCA9PT0gJ3N0cmluZycgPyBpc3N1ZS5leHBlY3RlZCA6IHVuZGVmaW5lZCxcbiAgICByZWNlaXZlZDogdHlwZW9mIGlzc3VlLnJlY2VpdmVkID09PSAnc3RyaW5nJyA/IGlzc3VlLnJlY2VpdmVkIDogdW5kZWZpbmVkLFxuICB9KSk7XG59XG4iXX0=
|
|
@@ -43,13 +43,12 @@ function validateOrThrow(schema, data) {
|
|
|
43
43
|
exports.validateOrThrow = validateOrThrow;
|
|
44
44
|
// ── Parseable (Zod, yup, superstruct, etc.) ──────────────────────────────
|
|
45
45
|
function validateParseable(schema, data) {
|
|
46
|
-
var _a;
|
|
47
46
|
// Prefer safeParse (non-throwing)
|
|
48
47
|
if (typeof schema.safeParse === 'function') {
|
|
49
48
|
try {
|
|
50
49
|
const result = schema.safeParse(data);
|
|
51
50
|
if (result.success) {
|
|
52
|
-
return { success: true, data:
|
|
51
|
+
return { success: true, data: result.data ?? data };
|
|
53
52
|
}
|
|
54
53
|
const issues = (0, errors_js_1.extractIssuesFromZodError)(result.error);
|
|
55
54
|
const message = formatIssues(issues);
|
|
@@ -58,7 +57,7 @@ function validateParseable(schema, data) {
|
|
|
58
57
|
error: new errors_js_1.InputValidationError(message, issues, result.error),
|
|
59
58
|
};
|
|
60
59
|
}
|
|
61
|
-
catch
|
|
60
|
+
catch {
|
|
62
61
|
// safeParse threw (binding error, etc.) — fall through to parse
|
|
63
62
|
}
|
|
64
63
|
}
|
|
@@ -66,7 +65,7 @@ function validateParseable(schema, data) {
|
|
|
66
65
|
if (typeof schema.parse === 'function') {
|
|
67
66
|
try {
|
|
68
67
|
const parsed = schema.parse(data);
|
|
69
|
-
return { success: true, data: parsed
|
|
68
|
+
return { success: true, data: parsed ?? data };
|
|
70
69
|
}
|
|
71
70
|
catch (err) {
|
|
72
71
|
const issues = (0, errors_js_1.extractIssuesFromZodError)(err);
|
|
@@ -149,4 +148,4 @@ function formatIssues(issues) {
|
|
|
149
148
|
return `Input validation failed: ${issues[0].message}`;
|
|
150
149
|
return `Input validation failed: ${issues.length} issues — ${issues.map((i) => i.message).join('; ')}`;
|
|
151
150
|
}
|
|
152
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3NjaGVtYS92YWxpZGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7OztHQVNHOzs7QUFFSCwyQ0FBMkM7QUFDM0MsMkNBQW9HO0FBU3BHOzs7O0dBSUc7QUFDSCxTQUFnQixxQkFBcUIsQ0FBQyxNQUFlLEVBQUUsSUFBYTtJQUNsRSxNQUFNLElBQUksR0FBRyxJQUFBLHdCQUFZLEVBQUMsTUFBTSxDQUFDLENBQUM7SUFFbEMsUUFBUSxJQUFJLEVBQUUsQ0FBQztRQUNiLEtBQUssS0FBSyxDQUFDO1FBQ1gsS0FBSyxXQUFXO1lBQ2QsT0FBTyxpQkFBaUIsQ0FBQyxNQUFpQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BFLEtBQUssYUFBYTtZQUNoQixPQUFPLGtCQUFrQixDQUFDLE1BQWlDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDckUsS0FBSyxNQUFNO1lBQ1QsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDbkMsQ0FBQztBQUNILENBQUM7QUFaRCxzREFZQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsZUFBZSxDQUFDLE1BQWUsRUFBRSxJQUFhO0lBQzVELE1BQU0sTUFBTSxHQUFHLHFCQUFxQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNuRCxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU87UUFBRSxNQUFNLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDeEMsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDO0FBQ3JCLENBQUM7QUFKRCwwQ0FJQztBQUVELDRFQUE0RTtBQUU1RSxTQUFTLGlCQUFpQixDQUFDLE1BQStCLEVBQUUsSUFBYTs7SUFDdkUsa0NBQWtDO0lBQ2xDLElBQUksT0FBTyxNQUFNLENBQUMsU0FBUyxLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQztZQUNI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cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiB2YWxpZGF0ZS50cyDigJQgU2luZ2xlIHZhbGlkYXRpb24gZW50cnkgcG9pbnQgZm9yIGFueSBzY2hlbWEga2luZC5cbiAqXG4gKiBEaXNwYXRjaGVzIGJhc2VkIG9uIGRldGVjdFNjaGVtYSgpOlxuICogLSAnem9kJyAvICdwYXJzZWFibGUnIOKGkiBjYWxscyAuc2FmZVBhcnNlKCkgb3IgLnBhcnNlKClcbiAqIC0gJ2pzb24tc2NoZW1hJyAgICAgICAg4oaSIGxpZ2h0d2VpZ2h0IHN0cnVjdHVyYWwgdmFsaWRhdGlvbiAocmVxdWlyZWQgZmllbGRzLCB0eXBlIGNoZWNrcylcbiAqIC0gJ25vbmUnICAgICAgICAgICAgICAg4oaSIHBhc3MtdGhyb3VnaFxuICpcbiAqIFJldHVybnMgYSByZXN1bHQgdHlwZSDigJQgY2FsbGVycyBkZWNpZGUgd2hldGhlciB0byB0aHJvdy5cbiAqL1xuXG5pbXBvcnQgeyBkZXRlY3RTY2hlbWEgfSBmcm9tICcuL2RldGVjdC5qcyc7XG5pbXBvcnQgeyB0eXBlIFZhbGlkYXRpb25Jc3N1ZSwgZXh0cmFjdElzc3Vlc0Zyb21ab2RFcnJvciwgSW5wdXRWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICcuL2Vycm9ycy5qcyc7XG5cbi8qKiBTdWNjZXNzZnVsIHZhbGlkYXRpb24gcmVzdWx0IOKAlCBtYXkgY29udGFpbiB0cmFuc2Zvcm1lZCBkYXRhLiAqL1xuZXhwb3J0IHR5cGUgVmFsaWRhdGlvblN1Y2Nlc3MgPSB7IHN1Y2Nlc3M6IHRydWU7IGRhdGE6IHVua25vd24gfTtcbi8qKiBGYWlsZWQgdmFsaWRhdGlvbiByZXN1bHQg4oCUIGNhcnJpZXMgc3RydWN0dXJlZCBpc3N1ZXMuICovXG5leHBvcnQgdHlwZSBWYWxpZGF0aW9uRmFpbHVyZSA9IHsgc3VjY2VzczogZmFsc2U7IGVycm9yOiBJbnB1dFZhbGlkYXRpb25FcnJvciB9O1xuLyoqIFVuaW9uIHJlc3VsdCB0eXBlLiAqL1xuZXhwb3J0IHR5cGUgVmFsaWRhdGlvblJlc3VsdCA9IFZhbGlkYXRpb25TdWNjZXNzIHwgVmFsaWRhdGlvbkZhaWx1cmU7XG5cbi8qKlxuICogVmFsaWRhdGUgZGF0YSBhZ2FpbnN0IGEgc2NoZW1hLiBSZXR1cm5zIGEgcmVzdWx0IOKAlCBkb2VzIG5vdCB0aHJvdy5cbiAqXG4gKiBGb3IgdGhyb3dpbmcgYmVoYXZpb3IsIHVzZSBgdmFsaWRhdGVPclRocm93KClgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVBZ2FpbnN0U2NoZW1hKHNjaGVtYTogdW5rbm93biwgZGF0YTogdW5rbm93bik6IFZhbGlkYXRpb25SZXN1bHQge1xuICBjb25zdCBraW5kID0gZGV0ZWN0U2NoZW1hKHNjaGVtYSk7XG5cbiAgc3dpdGNoIChraW5kKSB7XG4gICAgY2FzZSAnem9kJzpcbiAgICBjYXNlICdwYXJzZWFibGUnOlxuICAgICAgcmV0dXJuIHZhbGlkYXRlUGFyc2VhYmxlKHNjaGVtYSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiwgZGF0YSk7XG4gICAgY2FzZSAnanNvbi1zY2hlbWEnOlxuICAgICAgcmV0dXJuIHZhbGlkYXRlSnNvblNjaGVtYShzY2hlbWEgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sIGRhdGEpO1xuICAgIGNhc2UgJ25vbmUnOlxuICAgICAgcmV0dXJuIHsgc3VjY2VzczogdHJ1ZSwgZGF0YSB9O1xuICB9XG59XG5cbi8qKlxuICogVmFsaWRhdGUgZGF0YSBhZ2FpbnN0IGEgc2NoZW1hLiBUaHJvd3MgSW5wdXRWYWxpZGF0aW9uRXJyb3Igb24gZmFpbHVyZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlT3JUaHJvdyhzY2hlbWE6IHVua25vd24sIGRhdGE6IHVua25vd24pOiB1bmtub3duIHtcbiAgY29uc3QgcmVzdWx0ID0gdmFsaWRhdGVBZ2FpbnN0U2NoZW1hKHNjaGVtYSwgZGF0YSk7XG4gIGlmICghcmVzdWx0LnN1Y2Nlc3MpIHRocm93IHJlc3VsdC5lcnJvcjtcbiAgcmV0dXJuIHJlc3VsdC5kYXRhO1xufVxuXG4vLyDilIDilIAgUGFyc2VhYmxlIChab2QsIHl1cCwgc3VwZXJzdHJ1Y3QsIGV0Yy4pIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG5mdW5jdGlvbiB2YWxpZGF0ZVBhcnNlYWJsZShzY2hlbWE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBkYXRhOiB1bmtub3duKTogVmFsaWRhdGlvblJlc3VsdCB7XG4gIC8vIFByZWZlciBzYWZlUGFyc2UgKG5vbi10aHJvd2luZylcbiAgaWYgKHR5cGVvZiBzY2hlbWEuc2FmZVBhcnNlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IChzY2hlbWEuc2FmZVBhcnNlIGFzICh2OiB1bmtub3duKSA9PiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikoZGF0YSk7XG4gICAgICBpZiAocmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgcmV0dXJuIHsgc3VjY2VzczogdHJ1ZSwgZGF0YTogcmVzdWx0LmRhdGEgPz8gZGF0YSB9O1xuICAgICAgfVxuICAgICAgY29uc3QgaXNzdWVzID0gZXh0cmFjdElzc3Vlc0Zyb21ab2RFcnJvcihyZXN1bHQuZXJyb3IpO1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGZvcm1hdElzc3Vlcyhpc3N1ZXMpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgIGVycm9yOiBuZXcgSW5wdXRWYWxpZGF0aW9uRXJyb3IobWVzc2FnZSwgaXNzdWVzLCByZXN1bHQuZXJyb3IpLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIHNhZmVQYXJzZSB0aHJldyAoYmluZGluZyBlcnJvciwgZXRjLikg4oCUIGZhbGwgdGhyb3VnaCB0byBwYXJzZVxuICAgIH1cbiAgfVxuXG4gIC8vIEZhbGxiYWNrIHRvIHBhcnNlICh0aHJvd2luZylcbiAgaWYgKHR5cGVvZiBzY2hlbWEucGFyc2UgPT09ICdmdW5jdGlvbicpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcGFyc2VkID0gKHNjaGVtYS5wYXJzZSBhcyAodjogdW5rbm93bikgPT4gdW5rbm93bikoZGF0YSk7XG4gICAgICByZXR1cm4geyBzdWNjZXNzOiB0cnVlLCBkYXRhOiBwYXJzZWQgPz8gZGF0YSB9O1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc3QgaXNzdWVzID0gZXh0cmFjdElzc3Vlc0Zyb21ab2RFcnJvcihlcnIpO1xuICAgICAgaWYgKGlzc3Vlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgICAgZXJyb3I6IG5ldyBJbnB1dFZhbGlkYXRpb25FcnJvcihmb3JtYXRJc3N1ZXMoaXNzdWVzKSwgaXNzdWVzLCBlcnIpLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgLy8gTm9uLVpvZCBlcnJvciBmcm9tIHBhcnNlKClcbiAgICAgIGNvbnN0IHJhd01lc3NhZ2UgPSBlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5tZXNzYWdlIDogJ1ZhbGlkYXRpb24gZmFpbGVkJztcbiAgICAgIGNvbnN0IGZhbGxiYWNrSXNzdWVzOiBWYWxpZGF0aW9uSXNzdWVbXSA9IFt7IHBhdGg6IFtdLCBtZXNzYWdlOiByYXdNZXNzYWdlIH1dO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgIGVycm9yOiBuZXcgSW5wdXRWYWxpZGF0aW9uRXJyb3IoZm9ybWF0SXNzdWVzKGZhbGxiYWNrSXNzdWVzKSwgZmFsbGJhY2tJc3N1ZXMsIGVyciksXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIC8vIEhhcyBuZWl0aGVyIHNhZmVQYXJzZSBub3IgcGFyc2Ug4oCUIHNob3VsZG4ndCByZWFjaCBoZXJlIHZpYSBkZXRlY3RTY2hlbWEsIGJ1dCBiZSBzYWZlXG4gIHJldHVybiB7IHN1Y2Nlc3M6IHRydWUsIGRhdGEgfTtcbn1cblxuLy8g4pSA4pSAIEpTT04gU2NoZW1hIChsaWdodHdlaWdodCDigJQgbm8gYWp2IGRlcGVuZGVuY3kpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG5mdW5jdGlvbiB2YWxpZGF0ZUpzb25TY2hlbWEoc2NoZW1hOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiwgZGF0YTogdW5rbm93bik6IFZhbGlkYXRpb25SZXN1bHQge1xuICBpZiAoIWRhdGEgfHwgdHlwZW9mIGRhdGEgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgZXJyb3I6IG5ldyBJbnB1dFZhbGlkYXRpb25FcnJvcignRXhwZWN0ZWQgYW4gb2JqZWN0JywgW1xuICAgICAgICB7IHBhdGg6IFtdLCBtZXNzYWdlOiAnRXhwZWN0ZWQgYW4gb2JqZWN0JywgY29kZTogJ2ludmFsaWRfdHlwZScsIGV4cGVjdGVkOiAnb2JqZWN0JyB9LFxuICAgICAgXSksXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IHJlY29yZCA9IGRhdGEgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGNvbnN0IGlzc3VlczogVmFsaWRhdGlvbklzc3VlW10gPSBbXTtcblxuICAvLyBDaGVjayByZXF1aXJlZCBmaWVsZHNcbiAgY29uc3QgcmVxdWlyZWQgPSBzY2hlbWEucmVxdWlyZWQ7XG4gIGlmIChBcnJheS5pc0FycmF5KHJlcXVpcmVkKSkge1xuICAgIGZvciAoY29uc3Qga2V5IG9mIHJlcXVpcmVkKSB7XG4gICAgICBpZiAodHlwZW9mIGtleSA9PT0gJ3N0cmluZycgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyZWNvcmQsIGtleSkpIHtcbiAgICAgICAgaXNzdWVzLnB1c2goeyBwYXRoOiBba2V5XSwgbWVzc2FnZTogYE1pc3NpbmcgcmVxdWlyZWQgZmllbGQgXCIke2tleX1cImAsIGNvZGU6ICdtaXNzaW5nX2ZpZWxkJyB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBDaGVjayB0b3AtbGV2ZWwgcHJvcGVydHkgdHlwZXNcbiAgY29uc3QgcHJvcGVydGllcyA9IHNjaGVtYS5wcm9wZXJ0aWVzO1xuICBpZiAocHJvcGVydGllcyAmJiB0eXBlb2YgcHJvcGVydGllcyA9PT0gJ29iamVjdCcpIHtcbiAgICBmb3IgKGNvbnN0IFtrZXksIHByb3BTY2hlbWFdIG9mIE9iamVjdC5lbnRyaWVzKHByb3BlcnRpZXMgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pKSB7XG4gICAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyZWNvcmQsIGtleSkpIGNvbnRpbnVlOyAvLyBza2lwIG1pc3Npbmcg4oCUIHJlcXVpcmVkIGNoZWNrIGhhbmRsZXMgdGhhdFxuXG4gICAgICBjb25zdCB2YWx1ZSA9IHJlY29yZFtrZXldO1xuICAgICAgaWYgKHByb3BTY2hlbWEgJiYgdHlwZW9mIHByb3BTY2hlbWEgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIGNvbnN0IGV4cGVjdGVkVHlwZSA9IChwcm9wU2NoZW1hIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KS50eXBlO1xuICAgICAgICBpZiAodHlwZW9mIGV4cGVjdGVkVHlwZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGNvbnN0IGFjdHVhbFR5cGUgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/ICdhcnJheScgOiB0eXBlb2YgdmFsdWU7XG4gICAgICAgICAgaWYgKGV4cGVjdGVkVHlwZSAhPT0gYWN0dWFsVHlwZSkge1xuICAgICAgICAgICAgaXNzdWVzLnB1c2goe1xuICAgICAgICAgICAgICBwYXRoOiBba2V5XSxcbiAgICAgICAgICAgICAgbWVzc2FnZTogYEV4cGVjdGVkICR7ZXhwZWN0ZWRUeXBlfSwgcmVjZWl2ZWQgJHthY3R1YWxUeXBlfWAsXG4gICAgICAgICAgICAgIGNvZGU6ICdpbnZhbGlkX3R5cGUnLFxuICAgICAgICAgICAgICBleHBlY3RlZDogZXhwZWN0ZWRUeXBlLFxuICAgICAgICAgICAgICByZWNlaXZlZDogYWN0dWFsVHlwZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmIChpc3N1ZXMubGVuZ3RoID4gMCkge1xuICAgIHJldHVybiB7XG4gICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgIGVycm9yOiBuZXcgSW5wdXRWYWxpZGF0aW9uRXJyb3IoZm9ybWF0SXNzdWVzKGlzc3VlcyksIGlzc3VlcyksXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiB7IHN1Y2Nlc3M6IHRydWUsIGRhdGEgfTtcbn1cblxuLy8g4pSA4pSAIEZvcm1hdHRpbmcg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbmZ1bmN0aW9uIGZvcm1hdElzc3Vlcyhpc3N1ZXM6IFZhbGlkYXRpb25Jc3N1ZVtdKTogc3RyaW5nIHtcbiAgaWYgKGlzc3Vlcy5sZW5ndGggPT09IDApIHJldHVybiAnVmFsaWRhdGlvbiBmYWlsZWQnO1xuICBpZiAoaXNzdWVzLmxlbmd0aCA9PT0gMSkgcmV0dXJuIGBJbnB1dCB2YWxpZGF0aW9uIGZhaWxlZDogJHtpc3N1ZXNbMF0ubWVzc2FnZX1gO1xuICByZXR1cm4gYElucHV0IHZhbGlkYXRpb24gZmFpbGVkOiAke2lzc3Vlcy5sZW5ndGh9IGlzc3VlcyDigJQgJHtpc3N1ZXMubWFwKChpKSA9PiBpLm1lc3NhZ2UpLmpvaW4oJzsgJyl9YDtcbn1cbiJdfQ==
|
|
151
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3NjaGVtYS92YWxpZGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7OztHQVNHOzs7QUFFSCwyQ0FBMkM7QUFDM0MsMkNBQW9HO0FBU3BHOzs7O0dBSUc7QUFDSCxTQUFnQixxQkFBcUIsQ0FBQyxNQUFlLEVBQUUsSUFBYTtJQUNsRSxNQUFNLElBQUksR0FBRyxJQUFBLHdCQUFZLEVBQUMsTUFBTSxDQUFDLENBQUM7SUFFbEMsUUFBUSxJQUFJLEVBQUUsQ0FBQztRQUNiLEtBQUssS0FBSyxDQUFDO1FBQ1gsS0FBSyxXQUFXO1lBQ2QsT0FBTyxpQkFBaUIsQ0FBQyxNQUFpQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BFLEtBQUssYUFBYTtZQUNoQixPQUFPLGtCQUFrQixDQUFDLE1BQWlDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDckUsS0FBSyxNQUFNO1lBQ1QsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDbkMsQ0FBQztBQUNILENBQUM7QUFaRCxzREFZQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsZUFBZSxDQUFDLE1BQWUsRUFBRSxJQUFhO0lBQzVELE1BQU0sTUFBTSxHQUFHLHFCQUFxQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNuRCxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU87UUFBRSxNQUFNLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDeEMsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDO0FBQ3JCLENBQUM7QUFKRCwwQ0FJQztBQUVELDRFQUE0RTtBQUU1RSxTQUFTLGlCQUFpQixDQUFDLE1BQStCLEVBQUUsSUFBYTtJQUN2RSxrQ0FBa0M7SUFDbEMsSUFBSSxPQUFPLE1BQU0sQ0FBQyxTQUFTLEtBQUssVUFBVSxFQUFFLENBQUM7UUFDM0MsSUFBSSxDQUFDO1lBQ0gs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ZGF0ZS50cyDigJQgU2luZ2xlIHZhbGlkYXRpb24gZW50cnkgcG9pbnQgZm9yIGFueSBzY2hlbWEga2luZC5cbiAqXG4gKiBEaXNwYXRjaGVzIGJhc2VkIG9uIGRldGVjdFNjaGVtYSgpOlxuICogLSAnem9kJyAvICdwYXJzZWFibGUnIOKGkiBjYWxscyAuc2FmZVBhcnNlKCkgb3IgLnBhcnNlKClcbiAqIC0gJ2pzb24tc2NoZW1hJyAgICAgICAg4oaSIGxpZ2h0d2VpZ2h0IHN0cnVjdHVyYWwgdmFsaWRhdGlvbiAocmVxdWlyZWQgZmllbGRzLCB0eXBlIGNoZWNrcylcbiAqIC0gJ25vbmUnICAgICAgICAgICAgICAg4oaSIHBhc3MtdGhyb3VnaFxuICpcbiAqIFJldHVybnMgYSByZXN1bHQgdHlwZSDigJQgY2FsbGVycyBkZWNpZGUgd2hldGhlciB0byB0aHJvdy5cbiAqL1xuXG5pbXBvcnQgeyBkZXRlY3RTY2hlbWEgfSBmcm9tICcuL2RldGVjdC5qcyc7XG5pbXBvcnQgeyB0eXBlIFZhbGlkYXRpb25Jc3N1ZSwgZXh0cmFjdElzc3Vlc0Zyb21ab2RFcnJvciwgSW5wdXRWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICcuL2Vycm9ycy5qcyc7XG5cbi8qKiBTdWNjZXNzZnVsIHZhbGlkYXRpb24gcmVzdWx0IOKAlCBtYXkgY29udGFpbiB0cmFuc2Zvcm1lZCBkYXRhLiAqL1xuZXhwb3J0IHR5cGUgVmFsaWRhdGlvblN1Y2Nlc3MgPSB7IHN1Y2Nlc3M6IHRydWU7IGRhdGE6IHVua25vd24gfTtcbi8qKiBGYWlsZWQgdmFsaWRhdGlvbiByZXN1bHQg4oCUIGNhcnJpZXMgc3RydWN0dXJlZCBpc3N1ZXMuICovXG5leHBvcnQgdHlwZSBWYWxpZGF0aW9uRmFpbHVyZSA9IHsgc3VjY2VzczogZmFsc2U7IGVycm9yOiBJbnB1dFZhbGlkYXRpb25FcnJvciB9O1xuLyoqIFVuaW9uIHJlc3VsdCB0eXBlLiAqL1xuZXhwb3J0IHR5cGUgVmFsaWRhdGlvblJlc3VsdCA9IFZhbGlkYXRpb25TdWNjZXNzIHwgVmFsaWRhdGlvbkZhaWx1cmU7XG5cbi8qKlxuICogVmFsaWRhdGUgZGF0YSBhZ2FpbnN0IGEgc2NoZW1hLiBSZXR1cm5zIGEgcmVzdWx0IOKAlCBkb2VzIG5vdCB0aHJvdy5cbiAqXG4gKiBGb3IgdGhyb3dpbmcgYmVoYXZpb3IsIHVzZSBgdmFsaWRhdGVPclRocm93KClgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVBZ2FpbnN0U2NoZW1hKHNjaGVtYTogdW5rbm93biwgZGF0YTogdW5rbm93bik6IFZhbGlkYXRpb25SZXN1bHQge1xuICBjb25zdCBraW5kID0gZGV0ZWN0U2NoZW1hKHNjaGVtYSk7XG5cbiAgc3dpdGNoIChraW5kKSB7XG4gICAgY2FzZSAnem9kJzpcbiAgICBjYXNlICdwYXJzZWFibGUnOlxuICAgICAgcmV0dXJuIHZhbGlkYXRlUGFyc2VhYmxlKHNjaGVtYSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiwgZGF0YSk7XG4gICAgY2FzZSAnanNvbi1zY2hlbWEnOlxuICAgICAgcmV0dXJuIHZhbGlkYXRlSnNvblNjaGVtYShzY2hlbWEgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sIGRhdGEpO1xuICAgIGNhc2UgJ25vbmUnOlxuICAgICAgcmV0dXJuIHsgc3VjY2VzczogdHJ1ZSwgZGF0YSB9O1xuICB9XG59XG5cbi8qKlxuICogVmFsaWRhdGUgZGF0YSBhZ2FpbnN0IGEgc2NoZW1hLiBUaHJvd3MgSW5wdXRWYWxpZGF0aW9uRXJyb3Igb24gZmFpbHVyZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlT3JUaHJvdyhzY2hlbWE6IHVua25vd24sIGRhdGE6IHVua25vd24pOiB1bmtub3duIHtcbiAgY29uc3QgcmVzdWx0ID0gdmFsaWRhdGVBZ2FpbnN0U2NoZW1hKHNjaGVtYSwgZGF0YSk7XG4gIGlmICghcmVzdWx0LnN1Y2Nlc3MpIHRocm93IHJlc3VsdC5lcnJvcjtcbiAgcmV0dXJuIHJlc3VsdC5kYXRhO1xufVxuXG4vLyDilIDilIAgUGFyc2VhYmxlIChab2QsIHl1cCwgc3VwZXJzdHJ1Y3QsIGV0Yy4pIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG5mdW5jdGlvbiB2YWxpZGF0ZVBhcnNlYWJsZShzY2hlbWE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBkYXRhOiB1bmtub3duKTogVmFsaWRhdGlvblJlc3VsdCB7XG4gIC8vIFByZWZlciBzYWZlUGFyc2UgKG5vbi10aHJvd2luZylcbiAgaWYgKHR5cGVvZiBzY2hlbWEuc2FmZVBhcnNlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IChzY2hlbWEuc2FmZVBhcnNlIGFzICh2OiB1bmtub3duKSA9PiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikoZGF0YSk7XG4gICAgICBpZiAocmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgcmV0dXJuIHsgc3VjY2VzczogdHJ1ZSwgZGF0YTogcmVzdWx0LmRhdGEgPz8gZGF0YSB9O1xuICAgICAgfVxuICAgICAgY29uc3QgaXNzdWVzID0gZXh0cmFjdElzc3Vlc0Zyb21ab2RFcnJvcihyZXN1bHQuZXJyb3IpO1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGZvcm1hdElzc3Vlcyhpc3N1ZXMpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgIGVycm9yOiBuZXcgSW5wdXRWYWxpZGF0aW9uRXJyb3IobWVzc2FnZSwgaXNzdWVzLCByZXN1bHQuZXJyb3IpLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIHNhZmVQYXJzZSB0aHJldyAoYmluZGluZyBlcnJvciwgZXRjLikg4oCUIGZhbGwgdGhyb3VnaCB0byBwYXJzZVxuICAgIH1cbiAgfVxuXG4gIC8vIEZhbGxiYWNrIHRvIHBhcnNlICh0aHJvd2luZylcbiAgaWYgKHR5cGVvZiBzY2hlbWEucGFyc2UgPT09ICdmdW5jdGlvbicpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcGFyc2VkID0gKHNjaGVtYS5wYXJzZSBhcyAodjogdW5rbm93bikgPT4gdW5rbm93bikoZGF0YSk7XG4gICAgICByZXR1cm4geyBzdWNjZXNzOiB0cnVlLCBkYXRhOiBwYXJzZWQgPz8gZGF0YSB9O1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc3QgaXNzdWVzID0gZXh0cmFjdElzc3Vlc0Zyb21ab2RFcnJvcihlcnIpO1xuICAgICAgaWYgKGlzc3Vlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgICAgZXJyb3I6IG5ldyBJbnB1dFZhbGlkYXRpb25FcnJvcihmb3JtYXRJc3N1ZXMoaXNzdWVzKSwgaXNzdWVzLCBlcnIpLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgLy8gTm9uLVpvZCBlcnJvciBmcm9tIHBhcnNlKClcbiAgICAgIGNvbnN0IHJhd01lc3NhZ2UgPSBlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5tZXNzYWdlIDogJ1ZhbGlkYXRpb24gZmFpbGVkJztcbiAgICAgIGNvbnN0IGZhbGxiYWNrSXNzdWVzOiBWYWxpZGF0aW9uSXNzdWVbXSA9IFt7IHBhdGg6IFtdLCBtZXNzYWdlOiByYXdNZXNzYWdlIH1dO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgIGVycm9yOiBuZXcgSW5wdXRWYWxpZGF0aW9uRXJyb3IoZm9ybWF0SXNzdWVzKGZhbGxiYWNrSXNzdWVzKSwgZmFsbGJhY2tJc3N1ZXMsIGVyciksXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIC8vIEhhcyBuZWl0aGVyIHNhZmVQYXJzZSBub3IgcGFyc2Ug4oCUIHNob3VsZG4ndCByZWFjaCBoZXJlIHZpYSBkZXRlY3RTY2hlbWEsIGJ1dCBiZSBzYWZlXG4gIHJldHVybiB7IHN1Y2Nlc3M6IHRydWUsIGRhdGEgfTtcbn1cblxuLy8g4pSA4pSAIEpTT04gU2NoZW1hIChsaWdodHdlaWdodCDigJQgbm8gYWp2IGRlcGVuZGVuY3kpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG5mdW5jdGlvbiB2YWxpZGF0ZUpzb25TY2hlbWEoc2NoZW1hOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiwgZGF0YTogdW5rbm93bik6IFZhbGlkYXRpb25SZXN1bHQge1xuICBpZiAoIWRhdGEgfHwgdHlwZW9mIGRhdGEgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgZXJyb3I6IG5ldyBJbnB1dFZhbGlkYXRpb25FcnJvcignRXhwZWN0ZWQgYW4gb2JqZWN0JywgW1xuICAgICAgICB7IHBhdGg6IFtdLCBtZXNzYWdlOiAnRXhwZWN0ZWQgYW4gb2JqZWN0JywgY29kZTogJ2ludmFsaWRfdHlwZScsIGV4cGVjdGVkOiAnb2JqZWN0JyB9LFxuICAgICAgXSksXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IHJlY29yZCA9IGRhdGEgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGNvbnN0IGlzc3VlczogVmFsaWRhdGlvbklzc3VlW10gPSBbXTtcblxuICAvLyBDaGVjayByZXF1aXJlZCBmaWVsZHNcbiAgY29uc3QgcmVxdWlyZWQgPSBzY2hlbWEucmVxdWlyZWQ7XG4gIGlmIChBcnJheS5pc0FycmF5KHJlcXVpcmVkKSkge1xuICAgIGZvciAoY29uc3Qga2V5IG9mIHJlcXVpcmVkKSB7XG4gICAgICBpZiAodHlwZW9mIGtleSA9PT0gJ3N0cmluZycgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyZWNvcmQsIGtleSkpIHtcbiAgICAgICAgaXNzdWVzLnB1c2goeyBwYXRoOiBba2V5XSwgbWVzc2FnZTogYE1pc3NpbmcgcmVxdWlyZWQgZmllbGQgXCIke2tleX1cImAsIGNvZGU6ICdtaXNzaW5nX2ZpZWxkJyB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBDaGVjayB0b3AtbGV2ZWwgcHJvcGVydHkgdHlwZXNcbiAgY29uc3QgcHJvcGVydGllcyA9IHNjaGVtYS5wcm9wZXJ0aWVzO1xuICBpZiAocHJvcGVydGllcyAmJiB0eXBlb2YgcHJvcGVydGllcyA9PT0gJ29iamVjdCcpIHtcbiAgICBmb3IgKGNvbnN0IFtrZXksIHByb3BTY2hlbWFdIG9mIE9iamVjdC5lbnRyaWVzKHByb3BlcnRpZXMgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pKSB7XG4gICAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyZWNvcmQsIGtleSkpIGNvbnRpbnVlOyAvLyBza2lwIG1pc3Npbmcg4oCUIHJlcXVpcmVkIGNoZWNrIGhhbmRsZXMgdGhhdFxuXG4gICAgICBjb25zdCB2YWx1ZSA9IHJlY29yZFtrZXldO1xuICAgICAgaWYgKHByb3BTY2hlbWEgJiYgdHlwZW9mIHByb3BTY2hlbWEgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIGNvbnN0IGV4cGVjdGVkVHlwZSA9IChwcm9wU2NoZW1hIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KS50eXBlO1xuICAgICAgICBpZiAodHlwZW9mIGV4cGVjdGVkVHlwZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGNvbnN0IGFjdHVhbFR5cGUgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/ICdhcnJheScgOiB0eXBlb2YgdmFsdWU7XG4gICAgICAgICAgaWYgKGV4cGVjdGVkVHlwZSAhPT0gYWN0dWFsVHlwZSkge1xuICAgICAgICAgICAgaXNzdWVzLnB1c2goe1xuICAgICAgICAgICAgICBwYXRoOiBba2V5XSxcbiAgICAgICAgICAgICAgbWVzc2FnZTogYEV4cGVjdGVkICR7ZXhwZWN0ZWRUeXBlfSwgcmVjZWl2ZWQgJHthY3R1YWxUeXBlfWAsXG4gICAgICAgICAgICAgIGNvZGU6ICdpbnZhbGlkX3R5cGUnLFxuICAgICAgICAgICAgICBleHBlY3RlZDogZXhwZWN0ZWRUeXBlLFxuICAgICAgICAgICAgICByZWNlaXZlZDogYWN0dWFsVHlwZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmIChpc3N1ZXMubGVuZ3RoID4gMCkge1xuICAgIHJldHVybiB7XG4gICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgIGVycm9yOiBuZXcgSW5wdXRWYWxpZGF0aW9uRXJyb3IoZm9ybWF0SXNzdWVzKGlzc3VlcyksIGlzc3VlcyksXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiB7IHN1Y2Nlc3M6IHRydWUsIGRhdGEgfTtcbn1cblxuLy8g4pSA4pSAIEZvcm1hdHRpbmcg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbmZ1bmN0aW9uIGZvcm1hdElzc3Vlcyhpc3N1ZXM6IFZhbGlkYXRpb25Jc3N1ZVtdKTogc3RyaW5nIHtcbiAgaWYgKGlzc3Vlcy5sZW5ndGggPT09IDApIHJldHVybiAnVmFsaWRhdGlvbiBmYWlsZWQnO1xuICBpZiAoaXNzdWVzLmxlbmd0aCA9PT0gMSkgcmV0dXJuIGBJbnB1dCB2YWxpZGF0aW9uIGZhaWxlZDogJHtpc3N1ZXNbMF0ubWVzc2FnZX1gO1xuICByZXR1cm4gYElucHV0IHZhbGlkYXRpb24gZmFpbGVkOiAke2lzc3Vlcy5sZW5ndGh9IGlzc3VlcyDigJQgJHtpc3N1ZXMubWFwKChpKSA9PiBpLm1lc3NhZ2UpLmpvaW4oJzsgJyl9YDtcbn1cbiJdfQ==
|