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
|
@@ -25,19 +25,22 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
25
25
|
exports.MetricRecorder = void 0;
|
|
26
26
|
const KeyedRecorder_js_1 = require("../../recorder/KeyedRecorder.js");
|
|
27
27
|
class MetricRecorder extends KeyedRecorder_js_1.KeyedRecorder {
|
|
28
|
+
static _counter = 0;
|
|
29
|
+
id;
|
|
30
|
+
preferredOperation;
|
|
31
|
+
stageStartTimes = new Map();
|
|
32
|
+
currentRuntimeStageId = '';
|
|
33
|
+
stageFilter;
|
|
28
34
|
constructor(idOrOptions) {
|
|
29
|
-
var _a, _b;
|
|
30
35
|
super();
|
|
31
|
-
this.stageStartTimes = new Map();
|
|
32
|
-
this.currentRuntimeStageId = '';
|
|
33
36
|
if (typeof idOrOptions === 'string') {
|
|
34
37
|
this.id = idOrOptions;
|
|
35
38
|
this.preferredOperation = 'aggregate';
|
|
36
39
|
}
|
|
37
40
|
else {
|
|
38
|
-
this.id =
|
|
39
|
-
this.stageFilter = idOrOptions
|
|
40
|
-
this.preferredOperation =
|
|
41
|
+
this.id = idOrOptions?.id ?? `metrics-${++MetricRecorder._counter}`;
|
|
42
|
+
this.stageFilter = idOrOptions?.stageFilter;
|
|
43
|
+
this.preferredOperation = idOrOptions?.preferredOperation ?? 'aggregate';
|
|
41
44
|
}
|
|
42
45
|
}
|
|
43
46
|
shouldRecord(stageName) {
|
|
@@ -168,5 +171,4 @@ class MetricRecorder extends KeyedRecorder_js_1.KeyedRecorder {
|
|
|
168
171
|
}
|
|
169
172
|
}
|
|
170
173
|
exports.MetricRecorder = MetricRecorder;
|
|
171
|
-
MetricRecorder._counter = 0;
|
|
172
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWV0cmljUmVjb3JkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3Njb3BlL3JlY29yZGVycy9NZXRyaWNSZWNvcmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCRzs7O0FBRUgsc0VBQWdFO0FBb0RoRSxNQUFhLGNBQWUsU0FBUSxnQ0FBMEI7SUFTNUQsWUFBWSxXQUE0Qzs7UUFDdEQsS0FBSyxFQUFFLENBQUM7UUFMRixvQkFBZSxHQUFHLElBQUksR0FBRyxFQUFrQixDQUFDO1FBQzVDLDBCQUFxQixHQUFHLEVBQUUsQ0FBQztRQUtqQyxJQUFJLE9BQU8sV0FBVyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxFQUFFLEdBQUcsV0FBVyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxXQUFXLENBQUM7UUFDeEMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsRUFBRSxHQUFHLE1BQUEsV0FBVyxhQUFYLFdBQVcsdUJBQVgsV0FBVyxDQUFFLEVBQUUsbUNBQUksV0FBVyxFQUFFLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNwRSxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsYUFBWCxXQUFXLHVCQUFYLFdBQVcsQ0FBRSxXQUFXLENBQUM7WUFDNUMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE1BQUEsV0FBVyxhQUFYLFdBQVcsdUJBQVgsV0FBVyxDQUFFLGtCQUFrQixtQ0FBSSxXQUFXLENBQUM7UUFDM0UsQ0FBQztJQUNILENBQUM7SUFFTyxZQUFZLENBQUMsU0FBaUI7UUFDcEMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsMkRBQTJEO0lBQ25ELE9BQU87UUFDYixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMs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QUssQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDckIsQ0FBQztRQUNELE9BQU87WUFDTCxJQUFJLEVBQUUsU0FBUztZQUNmLFdBQVcsRUFBRSw2REFBNkQ7WUFDMUUsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGtCQUFrQjtZQUMzQyxJQUFJLEVBQUU7Z0JBQ0osWUFBWSxFQUFFLFdBQVc7Z0JBQ3pCLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVTtnQkFDOUIsYUFBYSxFQUFFLE9BQU8sQ0FBQyxhQUFhO2dCQUNwQyxVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVU7Z0JBQzlCLFdBQVcsRUFBRSxPQUFPLENBQUMsV0FBVztnQkFDaEMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxZQUFZO2dCQUNsQyxXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVc7Z0JBQ2hDLEtBQUs7YUFDTjtTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsOERBQThEO0lBQ3JELEtBQUs7UUFDWixLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDZCxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELDJDQUEyQztJQUMzQyxLQUFLO1FBQ0gsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2YsQ0FBQzs7QUF6Skgsd0NBMEpDO0FBekpnQix1QkFBUSxHQUFHLENBQUMsQUFBSixDQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBNZXRyaWNSZWNvcmRlciDigJQgcGVyLXN0ZXAgdGltaW5nIGFuZCBleGVjdXRpb24gY291bnRzLCBrZXllZCBieSBydW50aW1lU3RhZ2VJZC5cbiAqXG4gKiBTdG9yZXMgcGVyLWludm9jYXRpb24gZGF0YSBkdXJpbmcgdHJhdmVyc2FsLiBBZ2dyZWdhdGVkIHZpZXdzIGNvbXB1dGVkIG9uIHJlYWQuXG4gKiBFeHRlbmRzIEtleWVkUmVjb3JkZXI8U3RlcE1ldHJpY3M+IGZvciBPKDEpIGxvb2t1cCBhbmQgc3RhbmRhcmQgb3BlcmF0aW9ucy5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgbWV0cmljID0gbmV3IE1ldHJpY1JlY29yZGVyKCk7XG4gKiBleGVjdXRvci5hdHRhY2hSZWNvcmRlcihtZXRyaWMpO1xuICogYXdhaXQgZXhlY3V0b3IucnVuKCk7XG4gKlxuICogLy8gUGVyLXN0ZXAgKHRpbWUtdHJhdmVsKTpcbiAqIG1ldHJpYy5nZXRCeUtleSgnY2FsbC1sbG0jNScpOyAgLy8geyBzdGFnZU5hbWUsIHJlYWRDb3VudCwgd3JpdGVDb3VudCwgZHVyYXRpb24gfVxuICpcbiAqIC8vIEFnZ3JlZ2F0ZWQgKGJhY2t3YXJkIGNvbXBhdCk6XG4gKiBtZXRyaWMuZ2V0TWV0cmljcygpOyAgLy8geyB0b3RhbER1cmF0aW9uLCB0b3RhbFJlYWRzLCBzdGFnZU1ldHJpY3M6IE1hcDxzdGFnZU5hbWUsIGFnZ3JlZ2F0ZWQ+IH1cbiAqXG4gKiAvLyBQcm9ncmVzc2l2ZSAoc2xpZGVyKTpcbiAqIG1ldHJpYy5hY2N1bXVsYXRlKChzdW0sIG0pID0+IHN1bSArIG0uZHVyYXRpb24sIDAsIHZpc2libGVLZXlzKTtcbiAqIGBgYFxuICovXG5cbmltcG9ydCB7IEtleWVkUmVjb3JkZXIgfSBmcm9tICcuLi8uLi9yZWNvcmRlci9LZXllZFJlY29yZGVyLmpzJztcbmltcG9ydCB0eXBlIHsgUmVjb3JkZXJPcGVyYXRpb24gfSBmcm9tICcuLi8uLi9yZWNvcmRlci9SZWNvcmRlck9wZXJhdGlvbi5qcyc7XG5pbXBvcnQgdHlwZSB7IENvbW1pdEV2ZW50LCBQYXVzZUV2ZW50LCBSZWFkRXZlbnQsIFJlY29yZGVyLCBTdGFnZUV2ZW50LCBXcml0ZUV2ZW50IH0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG4vKiogUGVyLWludm9jYXRpb24gbWV0cmljcyBmb3IgYSBzaW5nbGUgZXhlY3V0aW9uIHN0ZXAuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0ZXBNZXRyaWNzIHtcbiAgLyoqIEh1bWFuLXJlYWRhYmxlIHN0YWdlIG5hbWUuICovXG4gIHN0YWdlTmFtZTogc3RyaW5nO1xuICAvKiogTnVtYmVyIG9mIHNjb3BlIHJlYWRzIGR1cmluZyB0aGlzIGludm9jYXRpb24uICovXG4gIHJlYWRDb3VudDogbnVtYmVyO1xuICAvKiogTnVtYmVyIG9mIHNjb3BlIHdyaXRlcyBkdXJpbmcgdGhpcyBpbnZvY2F0aW9uLiAqL1xuICB3cml0ZUNvdW50OiBudW1iZXI7XG4gIC8qKiBOdW1iZXIgb2YgY29tbWl0cyBkdXJpbmcgdGhpcyBpbnZvY2F0aW9uLiAqL1xuICBjb21taXRDb3VudDogbnVtYmVyO1xuICAvKiogTnVtYmVyIG9mIHBhdXNlcyBkdXJpbmcgdGhpcyBpbnZvY2F0aW9uLiAqL1xuICBwYXVzZUNvdW50OiBudW1iZXI7XG4gIC8qKiBEdXJhdGlvbiBpbiBtcyBmb3IgdGhpcyBpbnZvY2F0aW9uLiAqL1xuICBkdXJhdGlvbjogbnVtYmVyO1xufVxuXG4vKiogQWdncmVnYXRlZCBtZXRyaWNzIGFjcm9zcyBhbGwgaW52b2NhdGlvbnMgKGJhY2t3YXJkIGNvbXBhdGlibGUpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBBZ2dyZWdhdGVkTWV0cmljcyB7XG4gIHRvdGFsRHVyYXRpb246IG51bWJlcjtcbiAgdG90YWxSZWFkczogbnVtYmVyO1xuICB0b3RhbFdyaXRlczogbnVtYmVyO1xuICB0b3RhbENvbW1pdHM6IG51bWJlcjtcbiAgdG90YWxQYXVzZXM6IG51bWJlcjtcbiAgLyoqIEFnZ3JlZ2F0ZWQgYnkgc3RhZ2VOYW1lIOKAlCBzdW1zIGFjcm9zcyBsb29wIGludm9jYXRpb25zLiAqL1xuICBzdGFnZU1ldHJpY3M6IE1hcDxzdHJpbmcsIFN0YWdlTWV0cmljcz47XG59XG5cbi8qKiBBZ2dyZWdhdGVkIHBlci1zdGFnZU5hbWUgKGJhY2t3YXJkIGNvbXBhdGlibGUgd2l0aCBwcmUtcnVudGltZVN0YWdlSWQgQVBJKS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RhZ2VNZXRyaWNzIHtcbiAgc3RhZ2VOYW1lOiBzdHJpbmc7XG4gIHJlYWRDb3VudDogbnVtYmVyO1xuICB3cml0ZUNvdW50OiBudW1iZXI7XG4gIGNvbW1pdENvdW50OiBudW1iZXI7XG4gIHBhdXNlQ291bnQ6IG51bWJlcjtcbiAgdG90YWxEdXJhdGlvbjogbnVtYmVyO1xuICBpbnZvY2F0aW9uQ291bnQ6IG51bWJlcjtcbn1cblxuLyoqIE9wdGlvbnMgZm9yIE1ldHJpY1JlY29yZGVyLiAqL1xuZXhwb3J0IGludGVyZmFjZSBNZXRyaWNSZWNvcmRlck9wdGlvbnMge1xuICAvKiogUmVjb3JkZXIgSUQuIERlZmF1bHRzIHRvIGF1dG8taW5jcmVtZW50IChgbWV0cmljcy0xYCwgYG1ldHJpY3MtMmAsIC4uLikuICovXG4gIGlkPzogc3RyaW5nO1xuICAvKiogRmlsdGVyIHdoaWNoIHN0YWdlcyBhcmUgcmVjb3JkZWQuIFJldHVybiBgdHJ1ZWAgdG8gcmVjb3JkLCBgZmFsc2VgIHRvIHNraXAuICovXG4gIHN0YWdlRmlsdGVyPzogKHN0YWdlTmFtZTogc3RyaW5nKSA9PiBib29sZWFuO1xuICAvKiogUHJlZmVycmVkIFVJIG9wZXJhdGlvbi4gRGVmYXVsdHMgdG8gJ2FnZ3JlZ2F0ZScgKGRhc2hib2FyZCB0b3RhbHMpLiAqL1xuICBwcmVmZXJyZWRPcGVyYXRpb24/OiBSZWNvcmRlck9wZXJhdGlvbjtcbn1cblxuZXhwb3J0IGNsYXNzIE1ldHJpY1JlY29yZGVyIGV4dGVuZHMgS2V5ZWRSZWNvcmRlcjxTdGVwTWV0cmljcz4gaW1wbGVtZW50cyBSZWNvcmRlciB7XG4gIHByaXZhdGUgc3RhdGljIF9jb3VudGVyID0gMDtcblxuICByZWFkb25seSBpZDogc3RyaW5nO1xuICByZWFkb25seSBwcmVmZXJyZWRPcGVyYXRpb246IFJlY29yZGVyT3BlcmF0aW9uO1xuICBwcml2YXRlIHN0YWdlU3RhcnRUaW1lcyA9IG5ldyBNYXA8c3RyaW5nLCBudW1iZXI+KCk7XG4gIHByaXZhdGUgY3VycmVudFJ1bnRpbWVTdGFnZUlkID0gJyc7XG4gIHByaXZhdGUgc3RhZ2VGaWx0ZXI/OiAoc3RhZ2VOYW1lOiBzdHJpbmcpID0+IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoaWRPck9wdGlvbnM/OiBzdHJpbmcgfCBNZXRyaWNSZWNvcmRlck9wdGlvbnMpIHtcbiAgICBzdXBlcigpO1xuICAgIGlmICh0eXBlb2YgaWRPck9wdGlvbnMgPT09ICdzdHJpbmcnKSB7XG4gICAgICB0aGlzLmlkID0gaWRPck9wdGlvbnM7XG4gICAgICB0aGlzLnByZWZlcnJlZE9wZXJhdGlvbiA9ICdhZ2dyZWdhdGUnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlkID0gaWRPck9wdGlvbnM/LmlkID8/IGBtZXRyaWNzLSR7KytNZXRyaWNSZWNvcmRlci5fY291bnRlcn1gO1xuICAgICAgdGhpcy5zdGFnZUZpbHRlciA9IGlkT3JPcHRpb25zPy5zdGFnZUZpbHRlcjtcbiAgICAgIHRoaXMucHJlZmVycmVkT3BlcmF0aW9uID0gaWRPck9wdGlvbnM/LnByZWZlcnJlZE9wZXJhdGlvbiA/PyAnYWdncmVnYXRlJztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNob3VsZFJlY29yZChzdGFnZU5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5zdGFnZUZpbHRlciB8fCB0aGlzLnN0YWdlRmlsdGVyKHN0YWdlTmFtZSk7XG4gIH1cblxuICAvKiogR2V0IG9yIGNyZWF0ZSB0aGUgU3RlcE1ldHJpY3MgZm9yIHRoZSBjdXJyZW50IHN0YWdlLiAqL1xuICBwcml2YXRlIGN1cnJlbnQoKTogU3RlcE1ldHJpY3Mge1xuICAgIGNvbnN0IGtleSA9IHRoaXMuY3VycmVudFJ1bnRpbWVTdGFnZUlkO1xuICAgIGxldCBtID0gdGhpcy5nZXRCeUtleShrZXkpO1xuICAgIGlmICghbSkge1xuICAgICAgbSA9IHsgc3RhZ2VOYW1lOiAnJywgcmVhZENvdW50OiAwLCB3cml0ZUNvdW50OiAwLCBjb21taXRDb3VudDogMCwgcGF1c2VDb3VudDogMCwgZHVyYXRpb246IDAgfTtcbiAgICAgIHRoaXMuc3RvcmUoa2V5LCBtKTtcbiAgICB9XG4gICAgcmV0dXJuIG07XG4gIH1cblxuICBvblN0YWdlU3RhcnQoZXZlbnQ6IFN0YWdlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2hvdWxkUmVjb3JkKGV2ZW50LnN0YWdlTmFtZSkpIHJldHVybjtcbiAgICB0aGlzLmN1cnJlbnRSdW50aW1lU3RhZ2VJZCA9IGV2ZW50LnJ1bnRpbWVTdGFnZUlkO1xuICAgIHRoaXMuc3RhZ2VTdGFydFRpbWVzLnNldChldmVudC5ydW50aW1lU3RhZ2VJZCwgZXZlbnQudGltZXN0YW1wKTtcbiAgICBjb25zdCBtID0gdGhpcy5jdXJyZW50KCk7XG4gICAgbS5zdGFnZU5hbWUgPSBldmVudC5zdGFnZU5hbWU7XG4gIH1cblxuICBvblJlYWQoZXZlbnQ6IFJlYWRFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zaG91bGRSZWNvcmQoZXZlbnQuc3RhZ2VOYW1lKSkgcmV0dXJuO1xuICAgIHRoaXMuY3VycmVudCgpLnJlYWRDb3VudCsrO1xuICB9XG5cbiAgb25Xcml0ZShldmVudDogV3JpdGVFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zaG91bGRSZWNvcmQoZXZlbnQuc3RhZ2VOYW1lKSkgcmV0dXJuO1xuICAgIHRoaXMuY3VycmVudCgpLndyaXRlQ291bnQrKztcbiAgfVxuXG4gIG9uQ29tbWl0KGV2ZW50OiBDb21taXRFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zaG91bGRSZWNvcmQoZXZlbnQuc3RhZ2VOYW1lKSkgcmV0dXJuO1xuICAgIHRoaXMuY3VycmVudCgpLmNvbW1pdENvdW50Kys7XG4gIH1cblxuICBvblBhdXNlKGV2ZW50OiBQYXVzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNob3VsZFJlY29yZChldmVudC5zdGFnZU5hbWUpKSByZXR1cm47XG4gICAgdGhpcy5jdXJyZW50KCkucGF1c2VDb3VudCsrO1xuICB9XG5cbiAgb25TdGFnZUVuZChldmVudDogU3RhZ2VFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zaG91bGRSZWNvcmQoZXZlbnQuc3RhZ2VOYW1lKSkgcmV0dXJuO1xuICAgIGNvbnN0IG0gPSB0aGlzLmN1cnJlbnQoKTtcbiAgICBpZiAoZXZlbnQuZHVyYXRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgbS5kdXJhdGlvbiA9IGV2ZW50LmR1cmF0aW9uO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBzdGFydFRpbWUgPSB0aGlzLnN0YWdlU3RhcnRUaW1lcy5nZXQoZXZlbnQucnVudGltZVN0YWdlSWQpO1xuICAgICAgbS5kdXJhdGlvbiA9IHN0YXJ0VGltZSAhPT0gdW5kZWZpbmVkID8gZXZlbnQudGltZXN0YW1wIC0gc3RhcnRUaW1lIDogMDtcbiAgICB9XG4gICAgdGhpcy5zdGFnZVN0YXJ0VGltZXMuZGVsZXRlKGV2ZW50LnJ1bnRpbWVTdGFnZUlkKTtcbiAgfVxuXG4gIC8qKiBBZ2dyZWdhdGVkIG1ldHJpY3Mg4oCUIGNvbXB1dGVzIHRvdGFscyBvbiB0aGUgZmx5IGZyb20gcGVyLXN0ZXAgZGF0YSAoYmFja3dhcmQgY29tcGF0aWJsZSkuICovXG4gIGdldE1ldHJpY3MoKTogQWdncmVnYXRlZE1ldHJpY3Mge1xuICAgIGNvbnN0IGJ5TmFtZSA9IG5ldyBNYXA8c3RyaW5nLCBTdGFnZU1ldHJpY3M+KCk7XG5cbiAgICBjb25zdCB0b3RhbER1cmF0aW9uID0gdGhpcy5hZ2dyZWdhdGUoKHN1bSwgbSkgPT4gc3VtICsgbS5kdXJhdGlvbiwgMCk7XG4gICAgY29uc3QgdG90YWxSZWFkcyA9IHRoaXMuYWdncmVnYXRlKChzdW0sIG0pID0+IHN1bSArIG0ucmVhZENvdW50LCAwKTtcbiAgICBjb25zdCB0b3RhbFdyaXRlcyA9IHRoaXMuYWdncmVnYXRlKChzdW0sIG0pID0+IHN1bSArIG0ud3JpdGVDb3VudCwgMCk7XG4gICAgY29uc3QgdG90YWxDb21taXRzID0gdGhpcy5hZ2dyZWdhdGUoKHN1bSwgbSkgPT4gc3VtICsgbS5jb21taXRDb3VudCwgMCk7XG4gICAgY29uc3QgdG90YWxQYXVzZXMgPSB0aGlzLmFnZ3JlZ2F0ZSgoc3VtLCBtKSA9PiBzdW0gKyBtLnBhdXNlQ291bnQsIDApO1xuXG4gICAgLy8gR3JvdXAgYnkgc3RhZ2VOYW1lIGZvciBiYWNrd2FyZCBjb21wYXRcbiAgICBmb3IgKGNvbnN0IG0gb2YgdGhpcy52YWx1ZXMoKSkge1xuICAgICAgY29uc3QgZXhpc3RpbmcgPSBieU5hbWUuZ2V0KG0uc3RhZ2VOYW1lKTtcbiAgICAgIGlmIChleGlzdGluZykge1xuICAgICAgICBleGlzdGluZy5yZWFkQ291bnQgKz0gbS5yZWFkQ291bnQ7XG4gICAgICAgIGV4aXN0aW5nLndyaXRlQ291bnQgKz0gbS53cml0ZUNvdW50O1xuICAgICAgICBleGlzdGluZy5jb21taXRDb3VudCArPSBtLmNvbW1pdENvdW50O1xuICAgICAgICBleGlzdGluZy5wYXVzZUNvdW50ICs9IG0ucGF1c2VDb3VudDtcbiAgICAgICAgZXhpc3RpbmcudG90YWxEdXJhdGlvbiArPSBtLmR1cmF0aW9uO1xuICAgICAgICBleGlzdGluZy5pbnZvY2F0aW9uQ291bnQrKztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGJ5TmFtZS5zZXQobS5zdGFnZU5hbWUsIHtcbiAgICAgICAgICBzdGFnZU5hbWU6IG0uc3RhZ2VOYW1lLFxuICAgICAgICAgIHJlYWRDb3VudDogbS5yZWFkQ291bnQsXG4gICAgICAgICAgd3JpdGVDb3VudDogbS53cml0ZUNvdW50LFxuICAgICAgICAgIGNvbW1pdENvdW50OiBtLmNvbW1pdENvdW50LFxuICAgICAgICAgIHBhdXNlQ291bnQ6IG0ucGF1c2VDb3VudCxcbiAgICAgICAgICB0b3RhbER1cmF0aW9uOiBtLmR1cmF0aW9uLFxuICAgICAgICAgIGludm9jYXRpb25Db3VudDogMSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgdG90YWxEdXJhdGlvbiwgdG90YWxSZWFkcywgdG90YWxXcml0ZXMsIHRvdGFsQ29tbWl0cywgdG90YWxQYXVzZXMsIHN0YWdlTWV0cmljczogYnlOYW1lIH07XG4gIH1cblxuICAvKiogR2V0IGFnZ3JlZ2F0ZWQgbWV0cmljcyBmb3IgYSBzcGVjaWZpYyBzdGFnZSBuYW1lIChiYWNrd2FyZCBjb21wYXRpYmxlKS4gKi9cbiAgZ2V0U3RhZ2VNZXRyaWNzKHN0YWdlTmFtZTogc3RyaW5nKTogU3RhZ2VNZXRyaWNzIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBtZXRyaWNzID0gdGhpcy5nZXRNZXRyaWNzKCk7XG4gICAgcmV0dXJuIG1ldHJpY3Muc3RhZ2VNZXRyaWNzLmdldChzdGFnZU5hbWUpO1xuICB9XG5cbiAgdG9TbmFwc2hvdCgpIHtcbiAgICBjb25zdCBtZXRyaWNzID0gdGhpcy5nZXRNZXRyaWNzKCk7XG4gICAgLy8gRXhwb3NlIHBlci1zdGVwIGRhdGEga2V5ZWQgYnkgcnVudGltZVN0YWdlSWQgKGZvciB0aW1lLXRyYXZlbCBVSSlcbiAgICAvLyBhbG9uZ3NpZGUgdGhlIGFnZ3JlZ2F0ZWQgdG90YWxzXG4gICAgY29uc3Qgc3RlcHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge307XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgdGhpcy5nZXRNYXAoKSkge1xuICAgICAgc3RlcHNba2V5XSA9IHZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogJ01ldHJpY3MnLFxuICAgICAgZGVzY3JpcHRpb246ICdBZ2dyZWdhdG9yIChLZXllZFJlY29yZGVyKSDigJQgcGVyLXN0ZXAgdGltaW5nIGFuZCBJL08gY291bnRzJyxcbiAgICAgIHByZWZlcnJlZE9wZXJhdGlvbjogdGhpcy5wcmVmZXJyZWRPcGVyYXRpb24sXG4gICAgICBkYXRhOiB7XG4gICAgICAgIG51bWVyaWNGaWVsZDogJ3JlYWRDb3VudCcsXG4gICAgICAgIGdyYW5kVG90YWw6IG1ldHJpY3MudG90YWxSZWFkcyxcbiAgICAgICAgdG90YWxEdXJhdGlvbjogbWV0cmljcy50b3RhbER1cmF0aW9uLFxuICAgICAgICB0b3RhbFJlYWRzOiBtZXRyaWNzLnRvdGFsUmVhZHMsXG4gICAgICAgIHRvdGFsV3JpdGVzOiBtZXRyaWNzLnRvdGFsV3JpdGVzLFxuICAgICAgICB0b3RhbENvbW1pdHM6IG1ldHJpY3MudG90YWxDb21taXRzLFxuICAgICAgICB0b3RhbFBhdXNlczogbWV0cmljcy50b3RhbFBhdXNlcyxcbiAgICAgICAgc3RlcHMsXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICAvKiogQ2xlYXIgYWxsIHN0YXRlIOKAlCBjYWxsZWQgYnkgZXhlY3V0b3IgYmVmb3JlIGVhY2ggcnVuKCkuICovXG4gIG92ZXJyaWRlIGNsZWFyKCk6IHZvaWQge1xuICAgIHN1cGVyLmNsZWFyKCk7XG4gICAgdGhpcy5zdGFnZVN0YXJ0VGltZXMuY2xlYXIoKTtcbiAgICB0aGlzLmN1cnJlbnRSdW50aW1lU3RhZ2VJZCA9ICcnO1xuICB9XG5cbiAgLyoqIEFsaWFzIGZvciBjbGVhcigpIChiYWNrd2FyZCBjb21wYXQpLiAqL1xuICByZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyKCk7XG4gIH1cbn1cbiJdfQ==
|
|
174
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWV0cmljUmVjb3JkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3Njb3BlL3JlY29yZGVycy9NZXRyaWNSZWNvcmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCRzs7O0FBRUgsc0VBQWdFO0FBb0RoRSxNQUFhLGNBQWUsU0FBUSxnQ0FBMEI7SUFDcEQsTUFBTSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7SUFFbkIsRUFBRSxDQUFTO0lBQ1gsa0JBQWtCLENBQW9CO0lBQ3ZDLGVBQWUsR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQztJQUM1QyxxQkFBcUIsR0FBRyxFQUFFLENBQUM7SUFDM0IsV0FBVyxDQUFrQztJQUVyRCxZQUFZLFdBQTRDO1FBQ3RELEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxPQUFPLFdBQVcsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsRUFBRSxHQUFHLFdBQVcsQ0FBQztZQUN0QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsV0FBVyxDQUFDO1FBQ3hDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLEVBQUUsR0FBRyxXQUFXLEVBQUUsRUFBRSxJQUFJLFdBQVcsRUFBRSxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDcEUsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLEVBQUUsV0FBVyxDQUFDO1lBQzVDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxXQUFXLEVBQUUsa0JBQWtCLElBQUksV0FBVyxDQUFDO1FBQzNFLENBQUM7SUFDSCxDQUFDO0lBRU8sWUFBWSxDQUFDLFNBQWlCO1FBQ3BDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELDJEQUEyRDtJQUNuRCxPQUFPO1FBQ2IsTUFBTSxHQUFHLEdBQUcs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QztZQUN6QyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLENBQUM7UUFDRCxPQUFPO1lBQ0wsSUFBSSxFQUFFLFNBQVM7WUFDZixXQUFXLEVBQUUsNkRBQTZEO1lBQzFFLGtCQUFrQixFQUFFLElBQUksQ0FBQyxrQkFBa0I7WUFDM0MsSUFBSSxFQUFFO2dCQUNKLFlBQVksRUFBRSxXQUFXO2dCQUN6QixVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVU7Z0JBQzlCLGFBQWEsRUFBRSxPQUFPLENBQUMsYUFBYTtnQkFDcEMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVO2dCQUM5QixXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVc7Z0JBQ2hDLFlBQVksRUFBRSxPQUFPLENBQUMsWUFBWTtnQkFDbEMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxXQUFXO2dCQUNoQyxLQUFLO2FBQ047U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELDhEQUE4RDtJQUNyRCxLQUFLO1FBQ1osS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMscUJBQXFCLEdBQUcsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCwyQ0FBMkM7SUFDM0MsS0FBSztRQUNILElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNmLENBQUM7O0FBekpILHdDQTBKQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTWV0cmljUmVjb3JkZXIg4oCUIHBlci1zdGVwIHRpbWluZyBhbmQgZXhlY3V0aW9uIGNvdW50cywga2V5ZWQgYnkgcnVudGltZVN0YWdlSWQuXG4gKlxuICogU3RvcmVzIHBlci1pbnZvY2F0aW9uIGRhdGEgZHVyaW5nIHRyYXZlcnNhbC4gQWdncmVnYXRlZCB2aWV3cyBjb21wdXRlZCBvbiByZWFkLlxuICogRXh0ZW5kcyBLZXllZFJlY29yZGVyPFN0ZXBNZXRyaWNzPiBmb3IgTygxKSBsb29rdXAgYW5kIHN0YW5kYXJkIG9wZXJhdGlvbnMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG1ldHJpYyA9IG5ldyBNZXRyaWNSZWNvcmRlcigpO1xuICogZXhlY3V0b3IuYXR0YWNoUmVjb3JkZXIobWV0cmljKTtcbiAqIGF3YWl0IGV4ZWN1dG9yLnJ1bigpO1xuICpcbiAqIC8vIFBlci1zdGVwICh0aW1lLXRyYXZlbCk6XG4gKiBtZXRyaWMuZ2V0QnlLZXkoJ2NhbGwtbGxtIzUnKTsgIC8vIHsgc3RhZ2VOYW1lLCByZWFkQ291bnQsIHdyaXRlQ291bnQsIGR1cmF0aW9uIH1cbiAqXG4gKiAvLyBBZ2dyZWdhdGVkIChiYWNrd2FyZCBjb21wYXQpOlxuICogbWV0cmljLmdldE1ldHJpY3MoKTsgIC8vIHsgdG90YWxEdXJhdGlvbiwgdG90YWxSZWFkcywgc3RhZ2VNZXRyaWNzOiBNYXA8c3RhZ2VOYW1lLCBhZ2dyZWdhdGVkPiB9XG4gKlxuICogLy8gUHJvZ3Jlc3NpdmUgKHNsaWRlcik6XG4gKiBtZXRyaWMuYWNjdW11bGF0ZSgoc3VtLCBtKSA9PiBzdW0gKyBtLmR1cmF0aW9uLCAwLCB2aXNpYmxlS2V5cyk7XG4gKiBgYGBcbiAqL1xuXG5pbXBvcnQgeyBLZXllZFJlY29yZGVyIH0gZnJvbSAnLi4vLi4vcmVjb3JkZXIvS2V5ZWRSZWNvcmRlci5qcyc7XG5pbXBvcnQgdHlwZSB7IFJlY29yZGVyT3BlcmF0aW9uIH0gZnJvbSAnLi4vLi4vcmVjb3JkZXIvUmVjb3JkZXJPcGVyYXRpb24uanMnO1xuaW1wb3J0IHR5cGUgeyBDb21taXRFdmVudCwgUGF1c2VFdmVudCwgUmVhZEV2ZW50LCBSZWNvcmRlciwgU3RhZ2VFdmVudCwgV3JpdGVFdmVudCB9IGZyb20gJy4uL3R5cGVzLmpzJztcblxuLyoqIFBlci1pbnZvY2F0aW9uIG1ldHJpY3MgZm9yIGEgc2luZ2xlIGV4ZWN1dGlvbiBzdGVwLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdGVwTWV0cmljcyB7XG4gIC8qKiBIdW1hbi1yZWFkYWJsZSBzdGFnZSBuYW1lLiAqL1xuICBzdGFnZU5hbWU6IHN0cmluZztcbiAgLyoqIE51bWJlciBvZiBzY29wZSByZWFkcyBkdXJpbmcgdGhpcyBpbnZvY2F0aW9uLiAqL1xuICByZWFkQ291bnQ6IG51bWJlcjtcbiAgLyoqIE51bWJlciBvZiBzY29wZSB3cml0ZXMgZHVyaW5nIHRoaXMgaW52b2NhdGlvbi4gKi9cbiAgd3JpdGVDb3VudDogbnVtYmVyO1xuICAvKiogTnVtYmVyIG9mIGNvbW1pdHMgZHVyaW5nIHRoaXMgaW52b2NhdGlvbi4gKi9cbiAgY29tbWl0Q291bnQ6IG51bWJlcjtcbiAgLyoqIE51bWJlciBvZiBwYXVzZXMgZHVyaW5nIHRoaXMgaW52b2NhdGlvbi4gKi9cbiAgcGF1c2VDb3VudDogbnVtYmVyO1xuICAvKiogRHVyYXRpb24gaW4gbXMgZm9yIHRoaXMgaW52b2NhdGlvbi4gKi9cbiAgZHVyYXRpb246IG51bWJlcjtcbn1cblxuLyoqIEFnZ3JlZ2F0ZWQgbWV0cmljcyBhY3Jvc3MgYWxsIGludm9jYXRpb25zIChiYWNrd2FyZCBjb21wYXRpYmxlKS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWdncmVnYXRlZE1ldHJpY3Mge1xuICB0b3RhbER1cmF0aW9uOiBudW1iZXI7XG4gIHRvdGFsUmVhZHM6IG51bWJlcjtcbiAgdG90YWxXcml0ZXM6IG51bWJlcjtcbiAgdG90YWxDb21taXRzOiBudW1iZXI7XG4gIHRvdGFsUGF1c2VzOiBudW1iZXI7XG4gIC8qKiBBZ2dyZWdhdGVkIGJ5IHN0YWdlTmFtZSDigJQgc3VtcyBhY3Jvc3MgbG9vcCBpbnZvY2F0aW9ucy4gKi9cbiAgc3RhZ2VNZXRyaWNzOiBNYXA8c3RyaW5nLCBTdGFnZU1ldHJpY3M+O1xufVxuXG4vKiogQWdncmVnYXRlZCBwZXItc3RhZ2VOYW1lIChiYWNrd2FyZCBjb21wYXRpYmxlIHdpdGggcHJlLXJ1bnRpbWVTdGFnZUlkIEFQSSkuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0YWdlTWV0cmljcyB7XG4gIHN0YWdlTmFtZTogc3RyaW5nO1xuICByZWFkQ291bnQ6IG51bWJlcjtcbiAgd3JpdGVDb3VudDogbnVtYmVyO1xuICBjb21taXRDb3VudDogbnVtYmVyO1xuICBwYXVzZUNvdW50OiBudW1iZXI7XG4gIHRvdGFsRHVyYXRpb246IG51bWJlcjtcbiAgaW52b2NhdGlvbkNvdW50OiBudW1iZXI7XG59XG5cbi8qKiBPcHRpb25zIGZvciBNZXRyaWNSZWNvcmRlci4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWV0cmljUmVjb3JkZXJPcHRpb25zIHtcbiAgLyoqIFJlY29yZGVyIElELiBEZWZhdWx0cyB0byBhdXRvLWluY3JlbWVudCAoYG1ldHJpY3MtMWAsIGBtZXRyaWNzLTJgLCAuLi4pLiAqL1xuICBpZD86IHN0cmluZztcbiAgLyoqIEZpbHRlciB3aGljaCBzdGFnZXMgYXJlIHJlY29yZGVkLiBSZXR1cm4gYHRydWVgIHRvIHJlY29yZCwgYGZhbHNlYCB0byBza2lwLiAqL1xuICBzdGFnZUZpbHRlcj86IChzdGFnZU5hbWU6IHN0cmluZykgPT4gYm9vbGVhbjtcbiAgLyoqIFByZWZlcnJlZCBVSSBvcGVyYXRpb24uIERlZmF1bHRzIHRvICdhZ2dyZWdhdGUnIChkYXNoYm9hcmQgdG90YWxzKS4gKi9cbiAgcHJlZmVycmVkT3BlcmF0aW9uPzogUmVjb3JkZXJPcGVyYXRpb247XG59XG5cbmV4cG9ydCBjbGFzcyBNZXRyaWNSZWNvcmRlciBleHRlbmRzIEtleWVkUmVjb3JkZXI8U3RlcE1ldHJpY3M+IGltcGxlbWVudHMgUmVjb3JkZXIge1xuICBwcml2YXRlIHN0YXRpYyBfY291bnRlciA9IDA7XG5cbiAgcmVhZG9ubHkgaWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgcHJlZmVycmVkT3BlcmF0aW9uOiBSZWNvcmRlck9wZXJhdGlvbjtcbiAgcHJpdmF0ZSBzdGFnZVN0YXJ0VGltZXMgPSBuZXcgTWFwPHN0cmluZywgbnVtYmVyPigpO1xuICBwcml2YXRlIGN1cnJlbnRSdW50aW1lU3RhZ2VJZCA9ICcnO1xuICBwcml2YXRlIHN0YWdlRmlsdGVyPzogKHN0YWdlTmFtZTogc3RyaW5nKSA9PiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKGlkT3JPcHRpb25zPzogc3RyaW5nIHwgTWV0cmljUmVjb3JkZXJPcHRpb25zKSB7XG4gICAgc3VwZXIoKTtcbiAgICBpZiAodHlwZW9mIGlkT3JPcHRpb25zID09PSAnc3RyaW5nJykge1xuICAgICAgdGhpcy5pZCA9IGlkT3JPcHRpb25zO1xuICAgICAgdGhpcy5wcmVmZXJyZWRPcGVyYXRpb24gPSAnYWdncmVnYXRlJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pZCA9IGlkT3JPcHRpb25zPy5pZCA/PyBgbWV0cmljcy0keysrTWV0cmljUmVjb3JkZXIuX2NvdW50ZXJ9YDtcbiAgICAgIHRoaXMuc3RhZ2VGaWx0ZXIgPSBpZE9yT3B0aW9ucz8uc3RhZ2VGaWx0ZXI7XG4gICAgICB0aGlzLnByZWZlcnJlZE9wZXJhdGlvbiA9IGlkT3JPcHRpb25zPy5wcmVmZXJyZWRPcGVyYXRpb24gPz8gJ2FnZ3JlZ2F0ZSc7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzaG91bGRSZWNvcmQoc3RhZ2VOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuc3RhZ2VGaWx0ZXIgfHwgdGhpcy5zdGFnZUZpbHRlcihzdGFnZU5hbWUpO1xuICB9XG5cbiAgLyoqIEdldCBvciBjcmVhdGUgdGhlIFN0ZXBNZXRyaWNzIGZvciB0aGUgY3VycmVudCBzdGFnZS4gKi9cbiAgcHJpdmF0ZSBjdXJyZW50KCk6IFN0ZXBNZXRyaWNzIHtcbiAgICBjb25zdCBrZXkgPSB0aGlzLmN1cnJlbnRSdW50aW1lU3RhZ2VJZDtcbiAgICBsZXQgbSA9IHRoaXMuZ2V0QnlLZXkoa2V5KTtcbiAgICBpZiAoIW0pIHtcbiAgICAgIG0gPSB7IHN0YWdlTmFtZTogJycsIHJlYWRDb3VudDogMCwgd3JpdGVDb3VudDogMCwgY29tbWl0Q291bnQ6IDAsIHBhdXNlQ291bnQ6IDAsIGR1cmF0aW9uOiAwIH07XG4gICAgICB0aGlzLnN0b3JlKGtleSwgbSk7XG4gICAgfVxuICAgIHJldHVybiBtO1xuICB9XG5cbiAgb25TdGFnZVN0YXJ0KGV2ZW50OiBTdGFnZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNob3VsZFJlY29yZChldmVudC5zdGFnZU5hbWUpKSByZXR1cm47XG4gICAgdGhpcy5jdXJyZW50UnVudGltZVN0YWdlSWQgPSBldmVudC5ydW50aW1lU3RhZ2VJZDtcbiAgICB0aGlzLnN0YWdlU3RhcnRUaW1lcy5zZXQoZXZlbnQucnVudGltZVN0YWdlSWQsIGV2ZW50LnRpbWVzdGFtcCk7XG4gICAgY29uc3QgbSA9IHRoaXMuY3VycmVudCgpO1xuICAgIG0uc3RhZ2VOYW1lID0gZXZlbnQuc3RhZ2VOYW1lO1xuICB9XG5cbiAgb25SZWFkKGV2ZW50OiBSZWFkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2hvdWxkUmVjb3JkKGV2ZW50LnN0YWdlTmFtZSkpIHJldHVybjtcbiAgICB0aGlzLmN1cnJlbnQoKS5yZWFkQ291bnQrKztcbiAgfVxuXG4gIG9uV3JpdGUoZXZlbnQ6IFdyaXRlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2hvdWxkUmVjb3JkKGV2ZW50LnN0YWdlTmFtZSkpIHJldHVybjtcbiAgICB0aGlzLmN1cnJlbnQoKS53cml0ZUNvdW50Kys7XG4gIH1cblxuICBvbkNvbW1pdChldmVudDogQ29tbWl0RXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2hvdWxkUmVjb3JkKGV2ZW50LnN0YWdlTmFtZSkpIHJldHVybjtcbiAgICB0aGlzLmN1cnJlbnQoKS5jb21taXRDb3VudCsrO1xuICB9XG5cbiAgb25QYXVzZShldmVudDogUGF1c2VFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zaG91bGRSZWNvcmQoZXZlbnQuc3RhZ2VOYW1lKSkgcmV0dXJuO1xuICAgIHRoaXMuY3VycmVudCgpLnBhdXNlQ291bnQrKztcbiAgfVxuXG4gIG9uU3RhZ2VFbmQoZXZlbnQ6IFN0YWdlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2hvdWxkUmVjb3JkKGV2ZW50LnN0YWdlTmFtZSkpIHJldHVybjtcbiAgICBjb25zdCBtID0gdGhpcy5jdXJyZW50KCk7XG4gICAgaWYgKGV2ZW50LmR1cmF0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG0uZHVyYXRpb24gPSBldmVudC5kdXJhdGlvbjtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgc3RhcnRUaW1lID0gdGhpcy5zdGFnZVN0YXJ0VGltZXMuZ2V0KGV2ZW50LnJ1bnRpbWVTdGFnZUlkKTtcbiAgICAgIG0uZHVyYXRpb24gPSBzdGFydFRpbWUgIT09IHVuZGVmaW5lZCA/IGV2ZW50LnRpbWVzdGFtcCAtIHN0YXJ0VGltZSA6IDA7XG4gICAgfVxuICAgIHRoaXMuc3RhZ2VTdGFydFRpbWVzLmRlbGV0ZShldmVudC5ydW50aW1lU3RhZ2VJZCk7XG4gIH1cblxuICAvKiogQWdncmVnYXRlZCBtZXRyaWNzIOKAlCBjb21wdXRlcyB0b3RhbHMgb24gdGhlIGZseSBmcm9tIHBlci1zdGVwIGRhdGEgKGJhY2t3YXJkIGNvbXBhdGlibGUpLiAqL1xuICBnZXRNZXRyaWNzKCk6IEFnZ3JlZ2F0ZWRNZXRyaWNzIHtcbiAgICBjb25zdCBieU5hbWUgPSBuZXcgTWFwPHN0cmluZywgU3RhZ2VNZXRyaWNzPigpO1xuXG4gICAgY29uc3QgdG90YWxEdXJhdGlvbiA9IHRoaXMuYWdncmVnYXRlKChzdW0sIG0pID0+IHN1bSArIG0uZHVyYXRpb24sIDApO1xuICAgIGNvbnN0IHRvdGFsUmVhZHMgPSB0aGlzLmFnZ3JlZ2F0ZSgoc3VtLCBtKSA9PiBzdW0gKyBtLnJlYWRDb3VudCwgMCk7XG4gICAgY29uc3QgdG90YWxXcml0ZXMgPSB0aGlzLmFnZ3JlZ2F0ZSgoc3VtLCBtKSA9PiBzdW0gKyBtLndyaXRlQ291bnQsIDApO1xuICAgIGNvbnN0IHRvdGFsQ29tbWl0cyA9IHRoaXMuYWdncmVnYXRlKChzdW0sIG0pID0+IHN1bSArIG0uY29tbWl0Q291bnQsIDApO1xuICAgIGNvbnN0IHRvdGFsUGF1c2VzID0gdGhpcy5hZ2dyZWdhdGUoKHN1bSwgbSkgPT4gc3VtICsgbS5wYXVzZUNvdW50LCAwKTtcblxuICAgIC8vIEdyb3VwIGJ5IHN0YWdlTmFtZSBmb3IgYmFja3dhcmQgY29tcGF0XG4gICAgZm9yIChjb25zdCBtIG9mIHRoaXMudmFsdWVzKCkpIHtcbiAgICAgIGNvbnN0IGV4aXN0aW5nID0gYnlOYW1lLmdldChtLnN0YWdlTmFtZSk7XG4gICAgICBpZiAoZXhpc3RpbmcpIHtcbiAgICAgICAgZXhpc3RpbmcucmVhZENvdW50ICs9IG0ucmVhZENvdW50O1xuICAgICAgICBleGlzdGluZy53cml0ZUNvdW50ICs9IG0ud3JpdGVDb3VudDtcbiAgICAgICAgZXhpc3RpbmcuY29tbWl0Q291bnQgKz0gbS5jb21taXRDb3VudDtcbiAgICAgICAgZXhpc3RpbmcucGF1c2VDb3VudCArPSBtLnBhdXNlQ291bnQ7XG4gICAgICAgIGV4aXN0aW5nLnRvdGFsRHVyYXRpb24gKz0gbS5kdXJhdGlvbjtcbiAgICAgICAgZXhpc3RpbmcuaW52b2NhdGlvbkNvdW50Kys7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBieU5hbWUuc2V0KG0uc3RhZ2VOYW1lLCB7XG4gICAgICAgICAgc3RhZ2VOYW1lOiBtLnN0YWdlTmFtZSxcbiAgICAgICAgICByZWFkQ291bnQ6IG0ucmVhZENvdW50LFxuICAgICAgICAgIHdyaXRlQ291bnQ6IG0ud3JpdGVDb3VudCxcbiAgICAgICAgICBjb21taXRDb3VudDogbS5jb21taXRDb3VudCxcbiAgICAgICAgICBwYXVzZUNvdW50OiBtLnBhdXNlQ291bnQsXG4gICAgICAgICAgdG90YWxEdXJhdGlvbjogbS5kdXJhdGlvbixcbiAgICAgICAgICBpbnZvY2F0aW9uQ291bnQ6IDEsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7IHRvdGFsRHVyYXRpb24sIHRvdGFsUmVhZHMsIHRvdGFsV3JpdGVzLCB0b3RhbENvbW1pdHMsIHRvdGFsUGF1c2VzLCBzdGFnZU1ldHJpY3M6IGJ5TmFtZSB9O1xuICB9XG5cbiAgLyoqIEdldCBhZ2dyZWdhdGVkIG1ldHJpY3MgZm9yIGEgc3BlY2lmaWMgc3RhZ2UgbmFtZSAoYmFja3dhcmQgY29tcGF0aWJsZSkuICovXG4gIGdldFN0YWdlTWV0cmljcyhzdGFnZU5hbWU6IHN0cmluZyk6IFN0YWdlTWV0cmljcyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgbWV0cmljcyA9IHRoaXMuZ2V0TWV0cmljcygpO1xuICAgIHJldHVybiBtZXRyaWNzLnN0YWdlTWV0cmljcy5nZXQoc3RhZ2VOYW1lKTtcbiAgfVxuXG4gIHRvU25hcHNob3QoKSB7XG4gICAgY29uc3QgbWV0cmljcyA9IHRoaXMuZ2V0TWV0cmljcygpO1xuICAgIC8vIEV4cG9zZSBwZXItc3RlcCBkYXRhIGtleWVkIGJ5IHJ1bnRpbWVTdGFnZUlkIChmb3IgdGltZS10cmF2ZWwgVUkpXG4gICAgLy8gYWxvbmdzaWRlIHRoZSBhZ2dyZWdhdGVkIHRvdGFsc1xuICAgIGNvbnN0IHN0ZXBzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9O1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIHRoaXMuZ2V0TWFwKCkpIHtcbiAgICAgIHN0ZXBzW2tleV0gPSB2YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6ICdNZXRyaWNzJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnQWdncmVnYXRvciAoS2V5ZWRSZWNvcmRlcikg4oCUIHBlci1zdGVwIHRpbWluZyBhbmQgSS9PIGNvdW50cycsXG4gICAgICBwcmVmZXJyZWRPcGVyYXRpb246IHRoaXMucHJlZmVycmVkT3BlcmF0aW9uLFxuICAgICAgZGF0YToge1xuICAgICAgICBudW1lcmljRmllbGQ6ICdyZWFkQ291bnQnLFxuICAgICAgICBncmFuZFRvdGFsOiBtZXRyaWNzLnRvdGFsUmVhZHMsXG4gICAgICAgIHRvdGFsRHVyYXRpb246IG1ldHJpY3MudG90YWxEdXJhdGlvbixcbiAgICAgICAgdG90YWxSZWFkczogbWV0cmljcy50b3RhbFJlYWRzLFxuICAgICAgICB0b3RhbFdyaXRlczogbWV0cmljcy50b3RhbFdyaXRlcyxcbiAgICAgICAgdG90YWxDb21taXRzOiBtZXRyaWNzLnRvdGFsQ29tbWl0cyxcbiAgICAgICAgdG90YWxQYXVzZXM6IG1ldHJpY3MudG90YWxQYXVzZXMsXG4gICAgICAgIHN0ZXBzLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLyoqIENsZWFyIGFsbCBzdGF0ZSDigJQgY2FsbGVkIGJ5IGV4ZWN1dG9yIGJlZm9yZSBlYWNoIHJ1bigpLiAqL1xuICBvdmVycmlkZSBjbGVhcigpOiB2b2lkIHtcbiAgICBzdXBlci5jbGVhcigpO1xuICAgIHRoaXMuc3RhZ2VTdGFydFRpbWVzLmNsZWFyKCk7XG4gICAgdGhpcy5jdXJyZW50UnVudGltZVN0YWdlSWQgPSAnJztcbiAgfVxuXG4gIC8qKiBBbGlhcyBmb3IgY2xlYXIoKSAoYmFja3dhcmQgY29tcGF0KS4gKi9cbiAgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhcigpO1xuICB9XG59XG4iXX0=
|
|
@@ -7,12 +7,11 @@ exports.defineScopeFromZod = void 0;
|
|
|
7
7
|
const baseStateCompatible_js_1 = require("../../providers/baseStateCompatible.js");
|
|
8
8
|
const scopeFactory_js_1 = require("./scopeFactory.js");
|
|
9
9
|
function defineScopeFromZod(schema, opts) {
|
|
10
|
-
|
|
11
|
-
const strict = (_a = opts === null || opts === void 0 ? void 0 : opts.strict) !== null && _a !== void 0 ? _a : 'warn';
|
|
10
|
+
const strict = opts?.strict ?? 'warn';
|
|
12
11
|
return (ctx, stageName, readOnly) => {
|
|
13
12
|
const proxy = (0, scopeFactory_js_1.createScopeProxyFromZod)(ctx, schema, strict, readOnly);
|
|
14
13
|
return (0, baseStateCompatible_js_1.attachScopeMethods)(proxy, ctx, stageName, readOnly);
|
|
15
14
|
};
|
|
16
15
|
}
|
|
17
16
|
exports.defineScopeFromZod = defineScopeFromZod;
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmaW5lU2NvcGVGcm9tWm9kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zY29wZS9zdGF0ZS96b2QvZGVmaW5lU2NvcGVGcm9tWm9kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7R0FFRzs7O0FBSUgsbUZBQTRFO0FBRTVFLHVEQUE0RDtBQU01RCxTQUFnQixrQkFBa0IsQ0FDaEMsTUFBUyxFQUNULElBQXlCO0lBRXpCLE1BQU0sTUFBTSxHQUFHLElBQUksRUFBRSxNQUFNLElBQUksTUFBTSxDQUFDO0lBQ3RDLE9BQU8sQ0FBQyxHQUFxQixFQUFFLFNBQWlCLEVBQUUsUUFBa0IsRUFBRSxFQUFFO1FBQ3RFLE1BQU0sS0FBSyxHQUFHLElBQUEseUNBQXVCLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDckUsT0FBTyxJQUFBLDJDQUFrQixFQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzdELENBQUMsQ0FBQztBQUNKLENBQUM7QUFURCxnREFTQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogZGVmaW5lU2NvcGVGcm9tWm9kIOKAlCBCdWlsZCBhIFNjb3BlRmFjdG9yeSBmcm9tIGEgWm9kIG9iamVjdCBzY2hlbWFcbiAqL1xuXG5pbXBvcnQgeyB6IH0gZnJvbSAnem9kJztcblxuaW1wb3J0IHsgYXR0YWNoU2NvcGVNZXRob2RzIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL2Jhc2VTdGF0ZUNvbXBhdGlibGUuanMnO1xuaW1wb3J0IHR5cGUgeyBTY29wZUZhY3RvcnksIFN0YWdlQ29udGV4dExpa2UsIFN0cmljdE1vZGUgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvdHlwZXMuanMnO1xuaW1wb3J0IHsgY3JlYXRlU2NvcGVQcm94eUZyb21ab2QgfSBmcm9tICcuL3Njb3BlRmFjdG9yeS5qcyc7XG5cbmV4cG9ydCB0eXBlIERlZmluZVNjb3BlT3B0aW9ucyA9IHtcbiAgc3RyaWN0PzogU3RyaWN0TW9kZTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWZpbmVTY29wZUZyb21ab2Q8UyBleHRlbmRzIHouWm9kT2JqZWN0PGFueT4+KFxuICBzY2hlbWE6IFMsXG4gIG9wdHM/OiBEZWZpbmVTY29wZU9wdGlvbnMsXG4pOiBTY29wZUZhY3Rvcnk8YW55PiB7XG4gIGNvbnN0IHN0cmljdCA9IG9wdHM/LnN0cmljdCA/PyAnd2Fybic7XG4gIHJldHVybiAoY3R4OiBTdGFnZUNvbnRleHRMaWtlLCBzdGFnZU5hbWU6IHN0cmluZywgcmVhZE9ubHk/OiB1bmtub3duKSA9PiB7XG4gICAgY29uc3QgcHJveHkgPSBjcmVhdGVTY29wZVByb3h5RnJvbVpvZChjdHgsIHNjaGVtYSwgc3RyaWN0LCByZWFkT25seSk7XG4gICAgcmV0dXJuIGF0dGFjaFNjb3BlTWV0aG9kcyhwcm94eSwgY3R4LCBzdGFnZU5hbWUsIHJlYWRPbmx5KTtcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -22,10 +22,9 @@ exports.ZodScopeResolver = {
|
|
|
22
22
|
return (0, builder_js_1.isScopeSchema)(input);
|
|
23
23
|
},
|
|
24
24
|
makeProvider(input, options) {
|
|
25
|
-
var _a, _b;
|
|
26
25
|
const schema = input;
|
|
27
|
-
const strict =
|
|
26
|
+
const strict = options?.zod?.strict ?? 'warn';
|
|
28
27
|
return makeZodProvider(schema, strict);
|
|
29
28
|
},
|
|
30
29
|
};
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3Njb3BlL3N0YXRlL3pvZC9yZXNvbHZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7O0dBRUc7OztBQUlILG1GQUE0RTtBQUU1RSxvREFBb0Q7QUFDcEQsdURBQTREO0FBRTVELFNBQVMsZUFBZSxDQUFDLE1BQXdCLEVBQUUsU0FBcUIsTUFBTTtJQUM1RSxPQUFPO1FBQ0wsSUFBSSxFQUFFLEtBQUs7UUFDWCxNQUFNLEVBQUUsQ0FBQyxHQUFxQixFQUFFLFNBQWlCLEVBQUUsRUFBWSxFQUFFLEVBQUU7WUFDakUsTUFBTSxLQUFLLEdBQUcsSUFBQSx5Q0FBdUIsRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMvRCxPQUFPLElBQUEsMkNBQWtCLEVBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdkQsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDO0FBRVksUUFBQSxnQkFBZ0IsR0FBcUI7SUFDaEQsSUFBSSxFQUFFLEtBQUs7SUFDWCxTQUFTLENBQUMsS0FBYztRQUN0QixPQUFPLElBQUEsMEJBQWEsRUFBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBQ0QsWUFBWSxDQUFDLEtBQWMsRUFBRSxPQUEyQztRQUN0RSxNQUFNLE1BQU0sR0FBRyxLQUFvQyxDQUFDO1FBQ3BELE1BQU0sTUFBTSxHQUFHLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxJQUFJLE1BQU0sQ0FBQztRQUM5QyxPQUFPLGVBQWUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDekMsQ0FBQztDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFpvZFNjb3BlUmVzb2x2ZXIg4oCUIFByb3ZpZGVyUmVzb2x2ZXIgZm9yIFpvZC1icmFuZGVkIHNjb3BlIHNjaGVtYXNcbiAqL1xuXG5pbXBvcnQgeyB6IH0gZnJvbSAnem9kJztcblxuaW1wb3J0IHsgYXR0YWNoU2NvcGVNZXRob2RzIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL2Jhc2VTdGF0ZUNvbXBhdGlibGUuanMnO1xuaW1wb3J0IHR5cGUgeyBQcm92aWRlclJlc29sdmVyLCBTY29wZVByb3ZpZGVyLCBTdGFnZUNvbnRleHRMaWtlLCBTdHJpY3RNb2RlIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL3R5cGVzLmpzJztcbmltcG9ydCB7IGlzU2NvcGVTY2hlbWEgfSBmcm9tICcuL3NjaGVtYS9idWlsZGVyLmpzJztcbmltcG9ydCB7IGNyZWF0ZVNjb3BlUHJveHlGcm9tWm9kIH0gZnJvbSAnLi9zY29wZUZhY3RvcnkuanMnO1xuXG5mdW5jdGlvbiBtYWtlWm9kUHJvdmlkZXIoc2NoZW1hOiB6LlpvZE9iamVjdDxhbnk+LCBzdHJpY3Q6IFN0cmljdE1vZGUgPSAnd2FybicpOiBTY29wZVByb3ZpZGVyPGFueT4ge1xuICByZXR1cm4ge1xuICAgIGtpbmQ6ICd6b2QnLFxuICAgIGNyZWF0ZTogKGN0eDogU3RhZ2VDb250ZXh0TGlrZSwgc3RhZ2VOYW1lOiBzdHJpbmcsIHJvPzogdW5rbm93bikgPT4ge1xuICAgICAgY29uc3QgcHJveHkgPSBjcmVhdGVTY29wZVByb3h5RnJvbVpvZChjdHgsIHNjaGVtYSwgc3RyaWN0LCBybyk7XG4gICAgICByZXR1cm4gYXR0YWNoU2NvcGVNZXRob2RzKHByb3h5LCBjdHgsIHN0YWdlTmFtZSwgcm8pO1xuICAgIH0sXG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBab2RTY29wZVJlc29sdmVyOiBQcm92aWRlclJlc29sdmVyID0ge1xuICBuYW1lOiAnem9kJyxcbiAgY2FuSGFuZGxlKGlucHV0OiB1bmtub3duKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzU2NvcGVTY2hlbWEoaW5wdXQpO1xuICB9LFxuICBtYWtlUHJvdmlkZXIoaW5wdXQ6IHVua25vd24sIG9wdGlvbnM/OiB7IHpvZD86IHsgc3RyaWN0PzogU3RyaWN0TW9kZSB9IH0pOiBTY29wZVByb3ZpZGVyPGFueT4ge1xuICAgIGNvbnN0IHNjaGVtYSA9IGlucHV0IGFzIHVua25vd24gYXMgei5ab2RPYmplY3Q8YW55PjtcbiAgICBjb25zdCBzdHJpY3QgPSBvcHRpb25zPy56b2Q/LnN0cmljdCA/PyAnd2Fybic7XG4gICAgcmV0dXJuIG1ha2Vab2RQcm92aWRlcihzY2hlbWEsIHN0cmljdCk7XG4gIH0sXG59O1xuIl19
|
|
@@ -7,7 +7,6 @@ exports.createScopeProxyFromZod = void 0;
|
|
|
7
7
|
const zod_1 = require("zod");
|
|
8
8
|
const validateHelper_js_1 = require("./utils/validateHelper.js");
|
|
9
9
|
function validateOnWrite(schema, value, ctx, strict = 'warn', tag) {
|
|
10
|
-
var _a, _b;
|
|
11
10
|
if (strict === 'off')
|
|
12
11
|
return true;
|
|
13
12
|
try {
|
|
@@ -15,20 +14,19 @@ function validateOnWrite(schema, value, ctx, strict = 'warn', tag) {
|
|
|
15
14
|
return true;
|
|
16
15
|
}
|
|
17
16
|
catch (err) {
|
|
18
|
-
const msg = `[schema] invalid value in ${tag
|
|
19
|
-
|
|
17
|
+
const msg = `[schema] invalid value in ${tag ?? 'set'}: ${err?.message ?? 'zod error'}`;
|
|
18
|
+
ctx?.addError?.('schema', msg);
|
|
20
19
|
if (strict === 'warn')
|
|
21
20
|
return false;
|
|
22
21
|
throw err;
|
|
23
22
|
}
|
|
24
23
|
}
|
|
25
24
|
function analyze(schema) {
|
|
26
|
-
|
|
27
|
-
const base = (_a = (0, validateHelper_js_1.unwrap)(schema)) !== null && _a !== void 0 ? _a : schema;
|
|
25
|
+
const base = (0, validateHelper_js_1.unwrap)(schema) ?? schema;
|
|
28
26
|
if (base instanceof zod_1.z.ZodObject) {
|
|
29
27
|
const def = base._def;
|
|
30
|
-
const shapeOrFn = def
|
|
31
|
-
const shapeObj = typeof shapeOrFn === 'function' ? shapeOrFn() : shapeOrFn
|
|
28
|
+
const shapeOrFn = def?.shape;
|
|
29
|
+
const shapeObj = typeof shapeOrFn === 'function' ? shapeOrFn() : shapeOrFn ?? {};
|
|
32
30
|
const fields = {};
|
|
33
31
|
for (const [k, v] of Object.entries(shapeObj))
|
|
34
32
|
fields[k] = analyze(v);
|
|
@@ -36,12 +34,12 @@ function analyze(schema) {
|
|
|
36
34
|
}
|
|
37
35
|
if (base instanceof zod_1.z.ZodRecord) {
|
|
38
36
|
const valueType = (0, validateHelper_js_1.getRecordValueType)(base);
|
|
39
|
-
return { kind: 'record', schema: base, value: analyze((valueType
|
|
37
|
+
return { kind: 'record', schema: base, value: analyze((valueType ?? zod_1.z.any())) };
|
|
40
38
|
}
|
|
41
39
|
if (base instanceof zod_1.z.ZodArray) {
|
|
42
40
|
const def = base._def;
|
|
43
|
-
const elemType = def
|
|
44
|
-
return { kind: 'array', schema: base, element: analyze((elemType
|
|
41
|
+
const elemType = def?.type;
|
|
42
|
+
return { kind: 'array', schema: base, element: analyze((elemType ?? zod_1.z.any())) };
|
|
45
43
|
}
|
|
46
44
|
return { kind: 'scalar', schema: base };
|
|
47
45
|
}
|
|
@@ -56,18 +54,17 @@ function makeProxy(ctx, node, path, key, strict) {
|
|
|
56
54
|
set: (v) => {
|
|
57
55
|
if (!validateOnWrite(node.schema, v, ctx, strict, `set:${join(path, key)}`))
|
|
58
56
|
return;
|
|
59
|
-
ctx.setObject(path, key
|
|
57
|
+
ctx.setObject(path, key ?? '__', v);
|
|
60
58
|
},
|
|
61
59
|
};
|
|
62
60
|
case 'array': {
|
|
63
61
|
const base = makeProxy(ctx, { ...node, kind: 'scalar' }, path, key, strict);
|
|
64
62
|
base.push = (item) => {
|
|
65
|
-
|
|
66
|
-
const cur = (_a = readAt(ctx, path, key)) !== null && _a !== void 0 ? _a : [];
|
|
63
|
+
const cur = readAt(ctx, path, key) ?? [];
|
|
67
64
|
const next = [...cur, item];
|
|
68
65
|
if (!validateOnWrite(node.schema, next, ctx, strict, `push:${join(path, key)}`))
|
|
69
66
|
return;
|
|
70
|
-
ctx.setObject(path, key
|
|
67
|
+
ctx.setObject(path, key ?? '__', next);
|
|
71
68
|
};
|
|
72
69
|
return base;
|
|
73
70
|
}
|
|
@@ -76,22 +73,21 @@ function makeProxy(ctx, node, path, key, strict) {
|
|
|
76
73
|
const set = (v) => {
|
|
77
74
|
if (!validateOnWrite(node.schema, v, ctx, strict, `set:${join(path, key)}`))
|
|
78
75
|
return;
|
|
79
|
-
ctx.setObject(path, key
|
|
76
|
+
ctx.setObject(path, key ?? '__', v);
|
|
80
77
|
};
|
|
81
78
|
const merge = (p) => {
|
|
82
|
-
|
|
83
|
-
const cur = (_a = get()) !== null && _a !== void 0 ? _a : {};
|
|
79
|
+
const cur = get() ?? {};
|
|
84
80
|
const next = { ...cur, ...p };
|
|
85
81
|
if (!validateOnWrite(node.schema, next, ctx, strict, `merge:${join(path, key)}`))
|
|
86
82
|
return;
|
|
87
|
-
ctx.updateObject(path, key
|
|
83
|
+
ctx.updateObject(path, key ?? '__', p);
|
|
88
84
|
};
|
|
89
85
|
return {
|
|
90
86
|
at: (dynKey) => {
|
|
91
87
|
const parentPath = typeof key === 'string' ? [...path, key] : path;
|
|
92
88
|
return makeProxy(ctx, node.value, parentPath, dynKey, strict);
|
|
93
89
|
},
|
|
94
|
-
keys: () =>
|
|
90
|
+
keys: () => Object.keys(get() ?? {}),
|
|
95
91
|
get,
|
|
96
92
|
set,
|
|
97
93
|
merge,
|
|
@@ -157,4 +153,4 @@ function createScopeProxyFromZod(ctx, schema, strict = 'warn', readOnly) {
|
|
|
157
153
|
return proxy;
|
|
158
154
|
}
|
|
159
155
|
exports.createScopeProxyFromZod = createScopeProxyFromZod;
|
|
160
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NvcGVGYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zY29wZS9zdGF0ZS96b2Qvc2NvcGVGYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7R0FFRzs7O0FBRUgsNkJBQXlDO0FBR3pDLGlFQUFpRztBQUVqRyxTQUFTLGVBQWUsQ0FDdEIsTUFBa0IsRUFDbEIsS0FBYyxFQUNkLEdBQXNCLEVBQ3RCLFNBQXFCLE1BQU0sRUFDM0IsR0FBWTs7SUFFWixJQUFJLE1BQU0sS0FBSyxLQUFLO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDbEMsSUFBSSxDQUFDO1FBQ0gsSUFBQSxpQ0FBYSxFQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM3QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2IsTUFBTSxHQUFHLEdBQUcsNkJBQTZCLEdBQUcsYUFBSCxHQUFHLGNBQUgsR0FBRyxHQUFJLEtBQUssS0FBSyxNQUFDLEdBQVcsYUFBWCxHQUFHLHVCQUFILEdBQUcsQ0FBVSxPQUFPLG1DQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2pHLE1BQUEsR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLFFBQVEsb0RBQUcsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQy9CLElBQUksTUFBTSxLQUFLLE1BQU07WUFBRSxPQUFPLEtBQUssQ0FBQztRQUNwQyxNQUFNLEdBQUcsQ0FBQztJQUNaLENBQUM7QUFDSCxDQUFDO0FBV0QsU0FBUyxPQUFPLENBQUMsTUFBa0I7O0lBQ2pDLE1BQU0sSUFBSSxHQUFHLE1BQUEsSUFBQSwwQkFBTSxFQUFDLE1BQU0sQ0FBQyxtQ0FBSSxNQUFNLENBQUM7SUFFdEMsSUFBSSxJQUFJLFlBQVksT0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sR0FBRyxHQUFJLElBQVksQ0FBQyxJQUFJLENB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bGF6eSwgY29weS1vbi13cml0ZSBzY29wZSBmcm9tIGEgWm9kIG9iamVjdCBzY2hlbWFcbiAqL1xuXG5pbXBvcnQgeyB0eXBlIFpvZFR5cGVBbnksIHogfSBmcm9tICd6b2QnO1xuXG5pbXBvcnQgdHlwZSB7IFN0YWdlQ29udGV4dExpa2UsIFN0cmljdE1vZGUgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvdHlwZXMuanMnO1xuaW1wb3J0IHsgZ2V0UmVjb3JkVmFsdWVUeXBlLCBpc1pvZE5vZGUsIHBhcnNlV2l0aFRoaXMsIHVud3JhcCB9IGZyb20gJy4vdXRpbHMvdmFsaWRhdGVIZWxwZXIuanMnO1xuXG5mdW5jdGlvbiB2YWxpZGF0ZU9uV3JpdGUoXG4gIHNjaGVtYTogWm9kVHlwZUFueSxcbiAgdmFsdWU6IHVua25vd24sXG4gIGN0eD86IFN0YWdlQ29udGV4dExpa2UsXG4gIHN0cmljdDogU3RyaWN0TW9kZSA9ICd3YXJuJyxcbiAgdGFnPzogc3RyaW5nLFxuKTogYm9vbGVhbiB7XG4gIGlmIChzdHJpY3QgPT09ICdvZmYnKSByZXR1cm4gdHJ1ZTtcbiAgdHJ5IHtcbiAgICBwYXJzZVdpdGhUaGlzKHNjaGVtYSwgdmFsdWUpO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBjb25zdCBtc2cgPSBgW3NjaGVtYV0gaW52YWxpZCB2YWx1ZSBpbiAke3RhZyA/PyAnc2V0J306ICR7KGVyciBhcyBhbnkpPy5tZXNzYWdlID8/ICd6b2QgZXJyb3InfWA7XG4gICAgY3R4Py5hZGRFcnJvcj8uKCdzY2hlbWEnLCBtc2cpO1xuICAgIGlmIChzdHJpY3QgPT09ICd3YXJuJykgcmV0dXJuIGZhbHNlO1xuICAgIHRocm93IGVycjtcbiAgfVxufVxuXG50eXBlIE5vZGVLaW5kID0gJ29iamVjdCcgfCAncmVjb3JkJyB8ICdhcnJheScgfCAnc2NhbGFyJztcbnR5cGUgTm9kZSA9IHtcbiAga2luZDogTm9kZUtpbmQ7XG4gIHNjaGVtYTogWm9kVHlwZUFueTtcbiAgZmllbGRzPzogUmVjb3JkPHN0cmluZywgTm9kZT47XG4gIHZhbHVlPzogTm9kZTtcbiAgZWxlbWVudD86IE5vZGU7XG59O1xuXG5mdW5jdGlvbiBhbmFseXplKHNjaGVtYTogWm9kVHlwZUFueSk6IE5vZGUge1xuICBjb25zdCBiYXNlID0gdW53cmFwKHNjaGVtYSkgPz8gc2NoZW1hO1xuXG4gIGlmIChiYXNlIGluc3RhbmNlb2Ygei5ab2RPYmplY3QpIHtcbiAgICBjb25zdCBkZWYgPSAoYmFzZSBhcyBhbnkpLl9kZWY7XG4gICAgY29uc3Qgc2hhcGVPckZuID0gZGVmPy5zaGFwZTtcbiAgICBjb25zdCBzaGFwZU9iajogUmVjb3JkPHN0cmluZywgWm9kVHlwZUFueT4gPSB0eXBlb2Ygc2hhcGVPckZuID09PSAnZnVuY3Rpb24nID8gc2hhcGVPckZuKCkgOiBzaGFwZU9yRm4gPz8ge307XG4gICAgY29uc3QgZmllbGRzOiBSZWNvcmQ8c3RyaW5nLCBOb2RlPiA9IHt9O1xuICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKHNoYXBlT2JqKSkgZmllbGRzW2tdID0gYW5hbHl6ZSh2IGFzIFpvZFR5cGVBbnkpO1xuICAgIHJldHVybiB7IGtpbmQ6ICdvYmplY3QnLCBzY2hlbWE6IGJhc2UsIGZpZWxkcyB9O1xuICB9XG5cbiAgaWYgKGJhc2UgaW5zdGFuY2VvZiB6LlpvZFJlY29yZCkge1xuICAgIGNvbnN0IHZhbHVlVHlwZSA9IGdldFJlY29yZFZhbHVlVHlwZShiYXNlKTtcbiAgICByZXR1cm4geyBraW5kOiAncmVjb3JkJywgc2NoZW1hOiBiYXNlLCB2YWx1ZTogYW5hbHl6ZSgodmFsdWVUeXBlID8/IHouYW55KCkpIGFzIFpvZFR5cGVBbnkpIH07XG4gIH1cblxuICBpZiAoYmFzZSBpbnN0YW5jZW9mIHouWm9kQXJyYXkpIHtcbiAgICBjb25zdCBkZWYgPSAoYmFzZSBhcyBhbnkpLl9kZWY7XG4gICAgY29uc3QgZWxlbVR5cGUgPSBkZWY/LnR5cGUgYXMgWm9kVHlwZUFueTtcbiAgICByZXR1cm4geyBraW5kOiAnYXJyYXknLCBzY2hlbWE6IGJhc2UsIGVsZW1lbnQ6IGFuYWx5emUoKGVsZW1UeXBlID8/IHouYW55KCkpIGFzIFpvZFR5cGVBbnkpIH07XG4gIH1cblxuICByZXR1cm4geyBraW5kOiAnc2NhbGFyJywgc2NoZW1hOiBiYXNlIH07XG59XG5cbmNvbnN0IGpvaW4gPSAocGF0aDogc3RyaW5nW10sIGtleT86IHN0cmluZykgPT4gKGtleSA/IFsuLi5wYXRoLCBrZXldLmpvaW4oJy4nKSA6IHBhdGguam9pbignLicpKTtcbmNvbnN0IHJlYWRBdCA9IDxUPihjdHg6IFN0YWdlQ29udGV4dExpa2UsIHBhdGg6IHN0cmluZ1tdLCBrZXk/OiBzdHJpbmcpID0+IGN0eC5nZXRWYWx1ZShwYXRoLCBrZXkpIGFzIFQgfCB1bmRlZmluZWQ7XG5cbmZ1bmN0aW9uIG1ha2VQcm94eShcbiAgY3R4OiBTdGFnZUNvbnRleHRMaWtlLFxuICBub2RlOiBOb2RlLFxuICBwYXRoOiBzdHJpbmdbXSxcbiAga2V5OiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIHN0cmljdDogU3RyaWN0TW9kZSxcbik6IGFueSB7XG4gIHN3aXRjaCAobm9kZS5raW5kKSB7XG4gICAgY2FzZSAnc2NhbGFyJzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGdldDogKCkgPT4gcmVhZEF0KGN0eCwgcGF0aCwga2V5KSxcbiAgICAgICAgZXhpc3RzOiAoKSA9PiB0eXBlb2YgcmVhZEF0KGN0eCwgcGF0aCwga2V5KSAhPT0gJ3VuZGVmaW5lZCcsXG4gICAgICAgIHNldDogKHY6IHVua25vd24pID0+IHtcbiAgICAgICAgICBpZiAoIXZhbGlkYXRlT25Xcml0ZShub2RlLnNjaGVtYSwgdiwgY3R4LCBzdHJpY3QsIGBzZXQ6JHtqb2luKHBhdGgsIGtleSl9YCkpIHJldHVybjtcbiAgICAgICAgICBjdHguc2V0T2JqZWN0KHBhdGgsIGtleSA/PyAnX18nLCB2KTtcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICBjYXNlICdhcnJheSc6IHtcbiAgICAgIGNvbnN0IGJhc2UgPSBtYWtlUHJveHkoY3R4LCB7IC4uLm5vZGUsIGtpbmQ6ICdzY2FsYXInIH0sIHBhdGgsIGtleSwgc3RyaWN0KTtcbiAgICAgIGJhc2UucHVzaCA9IChpdGVtOiB1bmtub3duKSA9PiB7XG4gICAgICAgIGNvbnN0IGN1ciA9IHJlYWRBdDxhbnlbXT4oY3R4LCBwYXRoLCBrZXkpID8/IFtdO1xuICAgICAgICBjb25zdCBuZXh0ID0gWy4uLmN1ciwgaXRlbV07XG4gICAgICAgIGlmICghdmFsaWRhdGVPbldyaXRlKG5vZGUuc2NoZW1hLCBuZXh0LCBjdHgsIHN0cmljdCwgYHB1c2g6JHtqb2luKHBhdGgsIGtleSl9YCkpIHJldHVybjtcbiAgICAgICAgY3R4LnNldE9iamVjdChwYXRoLCBrZXkgPz8gJ19fJywgbmV4dCk7XG4gICAgICB9O1xuICAgICAgcmV0dXJuIGJhc2U7XG4gICAgfVxuXG4gICAgY2FzZSAncmVjb3JkJzoge1xuICAgICAgY29uc3QgZ2V0ID0gKCkgPT4gcmVhZEF0PFJlY29yZDxzdHJpbmcsIHVua25vd24+PihjdHgsIHBhdGgsIGtleSk7XG4gICAgICBjb25zdCBzZXQgPSAodjogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IHtcbiAgICAgICAgaWYgKCF2YWxpZGF0ZU9uV3JpdGUobm9kZS5zY2hlbWEsIHYsIGN0eCwgc3RyaWN0LCBgc2V0OiR7am9pbihwYXRoLCBrZXkpfWApKSByZXR1cm47XG4gICAgICAgIGN0eC5zZXRPYmplY3QocGF0aCwga2V5ID8/ICdfXycsIHYpO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IG1lcmdlID0gKHA6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiB7XG4gICAgICAgIGNvbnN0IGN1ciA9IGdldCgpID8/IHt9O1xuICAgICAgICBjb25zdCBuZXh0ID0geyAuLi5jdXIsIC4uLnAgfTtcbiAgICAgICAgaWYgKCF2YWxpZGF0ZU9uV3JpdGUobm9kZS5zY2hlbWEsIG5leHQsIGN0eCwgc3RyaWN0LCBgbWVyZ2U6JHtqb2luKHBhdGgsIGtleSl9YCkpIHJldHVybjtcbiAgICAgICAgY3R4LnVwZGF0ZU9iamVjdChwYXRoLCBrZXkgPz8gJ19fJywgcCk7XG4gICAgICB9O1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYXQ6IChkeW5LZXk6IHN0cmluZykgPT4ge1xuICAgICAgICAgIGNvbnN0IHBhcmVudFBhdGggPSB0eXBlb2Yga2V5ID09PSAnc3RyaW5nJyA/IFsuLi5wYXRoLCBrZXldIDogcGF0aDtcbiAgICAgICAgICByZXR1cm4gbWFrZVByb3h5KGN0eCwgbm9kZS52YWx1ZSEsIHBhcmVudFBhdGgsIGR5bktleSwgc3RyaWN0KTtcbiAgICAgICAgfSxcbiAgICAgICAga2V5czogKCkgPT4gT2JqZWN0LmtleXMoZ2V0KCkgPz8ge30pLFxuICAgICAgICBnZXQsXG4gICAgICAgIHNldCxcbiAgICAgICAgbWVyZ2UsXG4gICAgICAgIGV4aXN0czogKCkgPT4gdHlwZW9mIGdldCgpICE9PSAndW5kZWZpbmVkJyxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY2FzZSAnb2JqZWN0Jzoge1xuICAgICAgY29uc3QgY2FjaGUgPSBuZXcgTWFwPHN0cmluZywgYW55PigpO1xuICAgICAgcmV0dXJuIG5ldyBQcm94eShcbiAgICAgICAge30sXG4gICAgICAgIHtcbiAgICAgICAgICBnZXQodGFyZ2V0LCBwcm9wOiBzdHJpbmcgfCBzeW1ib2wpIHtcbiAgICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGFyZ2V0LCBwcm9wKSkgcmV0dXJuIFJlZmxlY3QuZ2V0KHRhcmdldCBhcyBhbnksIHByb3AgYXMgYW55KTtcblxuICAgICAgICAgICAgaWYgKHByb3AgPT09ICd0aGVuJykgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGlmIChwcm9wID09PSAnYXN5bW1ldHJpY01hdGNoJykgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGlmIChwcm9wID09PSAnY29uc3RydWN0b3InKSByZXR1cm4gT2JqZWN0O1xuICAgICAgICAgICAgaWYgKHByb3AgPT09IFN5bWJvbC50b1N0cmluZ1RhZykgcmV0dXJuICdTY29wZVByb3h5JztcblxuICAgICAgICAgICAgaWYgKHByb3AgPT09ICdnZXQnKSByZXR1cm4gKCkgPT4gcmVhZEF0KGN0eCwgcGF0aCwga2V5KTtcbiAgICAgICAgICAgIGlmIChwcm9wID09PSAnZXhpc3RzJylcbiAgICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBkaXJlY3QgPSByZWFkQXQoY3R4LCBwYXRoLCBrZXkpO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgZGlyZWN0ICE9PSAndW5kZWZpbmVkJykgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgaWYgKG5vZGUuZmllbGRzKSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnRQYXRoID0gdHlwZW9mIGtleSA9PT0gJ3N0cmluZycgPyBbLi4ucGF0aCwga2V5XSA6IHBhdGg7XG4gICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGNoaWxkS2V5IG9mIE9iamVjdC5rZXlzKG5vZGUuZmllbGRzKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHJlYWRBdChjdHgsIHBhcmVudFBhdGgsIGNoaWxkS2V5KSAhPT0gJ3VuZGVmaW5lZCcpIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAocHJvcCA9PT0gJ3RvSlNPTicpIHJldHVybiAoKSA9PiByZWFkQXQoY3R4LCBwYXRoLCBrZXkpO1xuXG4gICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgIT09ICdzdHJpbmcnKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgaWYgKCFub2RlLmZpZWxkcyB8fCAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG5vZGUuZmllbGRzLCBwcm9wKSkge1xuICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gZmllbGQgJyR7U3RyaW5nKHByb3ApfScgdW5kZXIgJHtqb2luKHBhdGgsIGtleSkgfHwgJzxyb290Pid9IGApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGNhY2hlLmhhcyhwcm9wKSkgcmV0dXJuIGNhY2hlLmdldChwcm9wKTtcblxuICAgICAgICAgICAgY29uc3QgY2hpbGQgPSBub2RlLmZpZWxkc1twcm9wXSE7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnRQYXRoID0gdHlwZW9mIGtleSA9PT0gJ3N0cmluZycgPyBbLi4ucGF0aCwga2V5XSA6IHBhdGg7XG4gICAgICAgICAgICBjb25zdCBjaGlsZFByb3h5ID0gbWFrZVByb3h5KGN0eCwgY2hpbGQsIHBhcmVudFBhdGgsIHByb3AsIHN0cmljdCk7XG4gICAgICAgICAgICBjYWNoZS5zZXQocHJvcCwgY2hpbGRQcm94eSk7XG4gICAgICAgICAgICByZXR1cm4gY2hpbGRQcm94eTtcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqIEJ1aWxkIGxhenksIGNvcHktb24td3JpdGUgc2NvcGUgZnJvbSBhIFpvZCBvYmplY3Qgc2NoZW1hICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2NvcGVQcm94eUZyb21ab2Q8UyBleHRlbmRzIHouWm9kT2JqZWN0PGFueT4+KFxuICBjdHg6IFN0YWdlQ29udGV4dExpa2UsXG4gIHNjaGVtYTogUyxcbiAgc3RyaWN0OiBTdHJpY3RNb2RlID0gJ3dhcm4nLFxuICByZWFkT25seT86IHVua25vd24sXG4pOiB6LmluZmVyPFM+ICYgeyBybz86IHVua25vd24gfSB7XG4gIGlmICghaXNab2ROb2RlKHNjaGVtYSkpIHRocm93IG5ldyBUeXBlRXJyb3IoJ2NyZWF0ZVNjb3BlUHJveHlGcm9tWm9kOiBleHBlY3RlZCBhIFpvZCBvYmplY3Qgc2NoZW1hJyk7XG4gIGNvbnN0IHJvb3QgPSBhbmFseXplKHNjaGVtYSBhcyB1bmtub3duIGFzIFpvZFR5cGVBbnkpO1xuICBjb25zdCBwcm94eSA9IG1ha2VQcm94eShjdHgsIHJvb3QsIFtdLCB1bmRlZmluZWQsIHN0cmljdCk7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm94eSwgJ3JvJywgeyB2YWx1ZTogcmVhZE9ubHksIGVudW1lcmFibGU6IGZhbHNlIH0pO1xuICByZXR1cm4gcHJveHk7XG59XG4iXX0=
|
|
156
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NvcGVGYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zY29wZS9zdGF0ZS96b2Qvc2NvcGVGYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7R0FFRzs7O0FBRUgsNkJBQXlDO0FBR3pDLGlFQUFpRztBQUVqRyxTQUFTLGVBQWUsQ0FDdEIsTUFBa0IsRUFDbEIsS0FBYyxFQUNkLEdBQXNCLEVBQ3RCLFNBQXFCLE1BQU0sRUFDM0IsR0FBWTtJQUVaLElBQUksTUFBTSxLQUFLLEtBQUs7UUFBRSxPQUFPLElBQUksQ0FBQztJQUNsQyxJQUFJLENBQUM7UUFDSCxJQUFBLGlDQUFhLEVBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzdCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDYixNQUFNLEdBQUcsR0FBRyw2QkFBNkIsR0FBRyxJQUFJLEtBQUssS0FBTSxHQUFXLEVBQUUsT0FBTyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2pHLEdBQUcsRUFBRSxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDL0IsSUFBSSxNQUFNLEtBQUssTUFBTTtZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ3BDLE1BQU0sR0FBRyxDQUFDO0lBQ1osQ0FBQztBQUNILENBQUM7QUFXRCxTQUFTLE9BQU8sQ0FBQyxNQUFrQjtJQUNqQyxNQUFNLElBQUksR0FBRyxJQUFBLDBCQUFNLEVBQUMsTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDO0lBRXRDLElBQUksSUFBSSxZQUFZLE9BQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNoQyxNQUFNLEdBQUcsR0FBSSxJQUFZLENBQUMsSUFBSSxDQUFDO1FBQy9CLE1BQU0sU0FBUyxHQUFHLEdBQUcsRUFBRSxLQUFLLENBQUM7UUFDN0IsTUFBTSxRQUFRLEdBQStCLE9BQU8sU0FBUyxL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QyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7b0JBQzVCLE9BQU8sVUFBVSxDQUFDO2dCQUNwQixDQUFDO2FBQ0YsQ0FDRixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDO0FBRUQsK0RBQStEO0FBQy9ELFNBQWdCLHVCQUF1QixDQUNyQyxHQUFxQixFQUNyQixNQUFTLEVBQ1QsU0FBcUIsTUFBTSxFQUMzQixRQUFrQjtJQUVsQixJQUFJLENBQUMsSUFBQSw2QkFBUyxFQUFDLE1BQU0sQ0FBQztRQUFFLE1BQU0sSUFBSSxTQUFTLENBQUMsdURBQXVELENBQUMsQ0FBQztJQUNyRyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsTUFBK0IsQ0FBQyxDQUFDO0lBQ3RELE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDMUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUMzRSxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFYRCwwREFXQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU2NvcGUgUHJveHkgRmFjdG9yeSDigJQgQnVpbGQgbGF6eSwgY29weS1vbi13cml0ZSBzY29wZSBmcm9tIGEgWm9kIG9iamVjdCBzY2hlbWFcbiAqL1xuXG5pbXBvcnQgeyB0eXBlIFpvZFR5cGVBbnksIHogfSBmcm9tICd6b2QnO1xuXG5pbXBvcnQgdHlwZSB7IFN0YWdlQ29udGV4dExpa2UsIFN0cmljdE1vZGUgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvdHlwZXMuanMnO1xuaW1wb3J0IHsgZ2V0UmVjb3JkVmFsdWVUeXBlLCBpc1pvZE5vZGUsIHBhcnNlV2l0aFRoaXMsIHVud3JhcCB9IGZyb20gJy4vdXRpbHMvdmFsaWRhdGVIZWxwZXIuanMnO1xuXG5mdW5jdGlvbiB2YWxpZGF0ZU9uV3JpdGUoXG4gIHNjaGVtYTogWm9kVHlwZUFueSxcbiAgdmFsdWU6IHVua25vd24sXG4gIGN0eD86IFN0YWdlQ29udGV4dExpa2UsXG4gIHN0cmljdDogU3RyaWN0TW9kZSA9ICd3YXJuJyxcbiAgdGFnPzogc3RyaW5nLFxuKTogYm9vbGVhbiB7XG4gIGlmIChzdHJpY3QgPT09ICdvZmYnKSByZXR1cm4gdHJ1ZTtcbiAgdHJ5IHtcbiAgICBwYXJzZVdpdGhUaGlzKHNjaGVtYSwgdmFsdWUpO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBjb25zdCBtc2cgPSBgW3NjaGVtYV0gaW52YWxpZCB2YWx1ZSBpbiAke3RhZyA/PyAnc2V0J306ICR7KGVyciBhcyBhbnkpPy5tZXNzYWdlID8/ICd6b2QgZXJyb3InfWA7XG4gICAgY3R4Py5hZGRFcnJvcj8uKCdzY2hlbWEnLCBtc2cpO1xuICAgIGlmIChzdHJpY3QgPT09ICd3YXJuJykgcmV0dXJuIGZhbHNlO1xuICAgIHRocm93IGVycjtcbiAgfVxufVxuXG50eXBlIE5vZGVLaW5kID0gJ29iamVjdCcgfCAncmVjb3JkJyB8ICdhcnJheScgfCAnc2NhbGFyJztcbnR5cGUgTm9kZSA9IHtcbiAga2luZDogTm9kZUtpbmQ7XG4gIHNjaGVtYTogWm9kVHlwZUFueTtcbiAgZmllbGRzPzogUmVjb3JkPHN0cmluZywgTm9kZT47XG4gIHZhbHVlPzogTm9kZTtcbiAgZWxlbWVudD86IE5vZGU7XG59O1xuXG5mdW5jdGlvbiBhbmFseXplKHNjaGVtYTogWm9kVHlwZUFueSk6IE5vZGUge1xuICBjb25zdCBiYXNlID0gdW53cmFwKHNjaGVtYSkgPz8gc2NoZW1hO1xuXG4gIGlmIChiYXNlIGluc3RhbmNlb2Ygei5ab2RPYmplY3QpIHtcbiAgICBjb25zdCBkZWYgPSAoYmFzZSBhcyBhbnkpLl9kZWY7XG4gICAgY29uc3Qgc2hhcGVPckZuID0gZGVmPy5zaGFwZTtcbiAgICBjb25zdCBzaGFwZU9iajogUmVjb3JkPHN0cmluZywgWm9kVHlwZUFueT4gPSB0eXBlb2Ygc2hhcGVPckZuID09PSAnZnVuY3Rpb24nID8gc2hhcGVPckZuKCkgOiBzaGFwZU9yRm4gPz8ge307XG4gICAgY29uc3QgZmllbGRzOiBSZWNvcmQ8c3RyaW5nLCBOb2RlPiA9IHt9O1xuICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKHNoYXBlT2JqKSkgZmllbGRzW2tdID0gYW5hbHl6ZSh2IGFzIFpvZFR5cGVBbnkpO1xuICAgIHJldHVybiB7IGtpbmQ6ICdvYmplY3QnLCBzY2hlbWE6IGJhc2UsIGZpZWxkcyB9O1xuICB9XG5cbiAgaWYgKGJhc2UgaW5zdGFuY2VvZiB6LlpvZFJlY29yZCkge1xuICAgIGNvbnN0IHZhbHVlVHlwZSA9IGdldFJlY29yZFZhbHVlVHlwZShiYXNlKTtcbiAgICByZXR1cm4geyBraW5kOiAncmVjb3JkJywgc2NoZW1hOiBiYXNlLCB2YWx1ZTogYW5hbHl6ZSgodmFsdWVUeXBlID8/IHouYW55KCkpIGFzIFpvZFR5cGVBbnkpIH07XG4gIH1cblxuICBpZiAoYmFzZSBpbnN0YW5jZW9mIHouWm9kQXJyYXkpIHtcbiAgICBjb25zdCBkZWYgPSAoYmFzZSBhcyBhbnkpLl9kZWY7XG4gICAgY29uc3QgZWxlbVR5cGUgPSBkZWY/LnR5cGUgYXMgWm9kVHlwZUFueTtcbiAgICByZXR1cm4geyBraW5kOiAnYXJyYXknLCBzY2hlbWE6IGJhc2UsIGVsZW1lbnQ6IGFuYWx5emUoKGVsZW1UeXBlID8/IHouYW55KCkpIGFzIFpvZFR5cGVBbnkpIH07XG4gIH1cblxuICByZXR1cm4geyBraW5kOiAnc2NhbGFyJywgc2NoZW1hOiBiYXNlIH07XG59XG5cbmNvbnN0IGpvaW4gPSAocGF0aDogc3RyaW5nW10sIGtleT86IHN0cmluZykgPT4gKGtleSA/IFsuLi5wYXRoLCBrZXldLmpvaW4oJy4nKSA6IHBhdGguam9pbignLicpKTtcbmNvbnN0IHJlYWRBdCA9IDxUPihjdHg6IFN0YWdlQ29udGV4dExpa2UsIHBhdGg6IHN0cmluZ1tdLCBrZXk/OiBzdHJpbmcpID0+IGN0eC5nZXRWYWx1ZShwYXRoLCBrZXkpIGFzIFQgfCB1bmRlZmluZWQ7XG5cbmZ1bmN0aW9uIG1ha2VQcm94eShcbiAgY3R4OiBTdGFnZUNvbnRleHRMaWtlLFxuICBub2RlOiBOb2RlLFxuICBwYXRoOiBzdHJpbmdbXSxcbiAga2V5OiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIHN0cmljdDogU3RyaWN0TW9kZSxcbik6IGFueSB7XG4gIHN3aXRjaCAobm9kZS5raW5kKSB7XG4gICAgY2FzZSAnc2NhbGFyJzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGdldDogKCkgPT4gcmVhZEF0KGN0eCwgcGF0aCwga2V5KSxcbiAgICAgICAgZXhpc3RzOiAoKSA9PiB0eXBlb2YgcmVhZEF0KGN0eCwgcGF0aCwga2V5KSAhPT0gJ3VuZGVmaW5lZCcsXG4gICAgICAgIHNldDogKHY6IHVua25vd24pID0+IHtcbiAgICAgICAgICBpZiAoIXZhbGlkYXRlT25Xcml0ZShub2RlLnNjaGVtYSwgdiwgY3R4LCBzdHJpY3QsIGBzZXQ6JHtqb2luKHBhdGgsIGtleSl9YCkpIHJldHVybjtcbiAgICAgICAgICBjdHguc2V0T2JqZWN0KHBhdGgsIGtleSA/PyAnX18nLCB2KTtcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICBjYXNlICdhcnJheSc6IHtcbiAgICAgIGNvbnN0IGJhc2UgPSBtYWtlUHJveHkoY3R4LCB7IC4uLm5vZGUsIGtpbmQ6ICdzY2FsYXInIH0sIHBhdGgsIGtleSwgc3RyaWN0KTtcbiAgICAgIGJhc2UucHVzaCA9IChpdGVtOiB1bmtub3duKSA9PiB7XG4gICAgICAgIGNvbnN0IGN1ciA9IHJlYWRBdDxhbnlbXT4oY3R4LCBwYXRoLCBrZXkpID8/IFtdO1xuICAgICAgICBjb25zdCBuZXh0ID0gWy4uLmN1ciwgaXRlbV07XG4gICAgICAgIGlmICghdmFsaWRhdGVPbldyaXRlKG5vZGUuc2NoZW1hLCBuZXh0LCBjdHgsIHN0cmljdCwgYHB1c2g6JHtqb2luKHBhdGgsIGtleSl9YCkpIHJldHVybjtcbiAgICAgICAgY3R4LnNldE9iamVjdChwYXRoLCBrZXkgPz8gJ19fJywgbmV4dCk7XG4gICAgICB9O1xuICAgICAgcmV0dXJuIGJhc2U7XG4gICAgfVxuXG4gICAgY2FzZSAncmVjb3JkJzoge1xuICAgICAgY29uc3QgZ2V0ID0gKCkgPT4gcmVhZEF0PFJlY29yZDxzdHJpbmcsIHVua25vd24+PihjdHgsIHBhdGgsIGtleSk7XG4gICAgICBjb25zdCBzZXQgPSAodjogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IHtcbiAgICAgICAgaWYgKCF2YWxpZGF0ZU9uV3JpdGUobm9kZS5zY2hlbWEsIHYsIGN0eCwgc3RyaWN0LCBgc2V0OiR7am9pbihwYXRoLCBrZXkpfWApKSByZXR1cm47XG4gICAgICAgIGN0eC5zZXRPYmplY3QocGF0aCwga2V5ID8/ICdfXycsIHYpO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IG1lcmdlID0gKHA6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiB7XG4gICAgICAgIGNvbnN0IGN1ciA9IGdldCgpID8/IHt9O1xuICAgICAgICBjb25zdCBuZXh0ID0geyAuLi5jdXIsIC4uLnAgfTtcbiAgICAgICAgaWYgKCF2YWxpZGF0ZU9uV3JpdGUobm9kZS5zY2hlbWEsIG5leHQsIGN0eCwgc3RyaWN0LCBgbWVyZ2U6JHtqb2luKHBhdGgsIGtleSl9YCkpIHJldHVybjtcbiAgICAgICAgY3R4LnVwZGF0ZU9iamVjdChwYXRoLCBrZXkgPz8gJ19fJywgcCk7XG4gICAgICB9O1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYXQ6IChkeW5LZXk6IHN0cmluZykgPT4ge1xuICAgICAgICAgIGNvbnN0IHBhcmVudFBhdGggPSB0eXBlb2Yga2V5ID09PSAnc3RyaW5nJyA/IFsuLi5wYXRoLCBrZXldIDogcGF0aDtcbiAgICAgICAgICByZXR1cm4gbWFrZVByb3h5KGN0eCwgbm9kZS52YWx1ZSEsIHBhcmVudFBhdGgsIGR5bktleSwgc3RyaWN0KTtcbiAgICAgICAgfSxcbiAgICAgICAga2V5czogKCkgPT4gT2JqZWN0LmtleXMoZ2V0KCkgPz8ge30pLFxuICAgICAgICBnZXQsXG4gICAgICAgIHNldCxcbiAgICAgICAgbWVyZ2UsXG4gICAgICAgIGV4aXN0czogKCkgPT4gdHlwZW9mIGdldCgpICE9PSAndW5kZWZpbmVkJyxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY2FzZSAnb2JqZWN0Jzoge1xuICAgICAgY29uc3QgY2FjaGUgPSBuZXcgTWFwPHN0cmluZywgYW55PigpO1xuICAgICAgcmV0dXJuIG5ldyBQcm94eShcbiAgICAgICAge30sXG4gICAgICAgIHtcbiAgICAgICAgICBnZXQodGFyZ2V0LCBwcm9wOiBzdHJpbmcgfCBzeW1ib2wpIHtcbiAgICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGFyZ2V0LCBwcm9wKSkgcmV0dXJuIFJlZmxlY3QuZ2V0KHRhcmdldCBhcyBhbnksIHByb3AgYXMgYW55KTtcblxuICAgICAgICAgICAgaWYgKHByb3AgPT09ICd0aGVuJykgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGlmIChwcm9wID09PSAnYXN5bW1ldHJpY01hdGNoJykgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGlmIChwcm9wID09PSAnY29uc3RydWN0b3InKSByZXR1cm4gT2JqZWN0O1xuICAgICAgICAgICAgaWYgKHByb3AgPT09IFN5bWJvbC50b1N0cmluZ1RhZykgcmV0dXJuICdTY29wZVByb3h5JztcblxuICAgICAgICAgICAgaWYgKHByb3AgPT09ICdnZXQnKSByZXR1cm4gKCkgPT4gcmVhZEF0KGN0eCwgcGF0aCwga2V5KTtcbiAgICAgICAgICAgIGlmIChwcm9wID09PSAnZXhpc3RzJylcbiAgICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBkaXJlY3QgPSByZWFkQXQoY3R4LCBwYXRoLCBrZXkpO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgZGlyZWN0ICE9PSAndW5kZWZpbmVkJykgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgaWYgKG5vZGUuZmllbGRzKSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnRQYXRoID0gdHlwZW9mIGtleSA9PT0gJ3N0cmluZycgPyBbLi4ucGF0aCwga2V5XSA6IHBhdGg7XG4gICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGNoaWxkS2V5IG9mIE9iamVjdC5rZXlzKG5vZGUuZmllbGRzKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHJlYWRBdChjdHgsIHBhcmVudFBhdGgsIGNoaWxkS2V5KSAhPT0gJ3VuZGVmaW5lZCcpIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAocHJvcCA9PT0gJ3RvSlNPTicpIHJldHVybiAoKSA9PiByZWFkQXQoY3R4LCBwYXRoLCBrZXkpO1xuXG4gICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgIT09ICdzdHJpbmcnKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgaWYgKCFub2RlLmZpZWxkcyB8fCAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG5vZGUuZmllbGRzLCBwcm9wKSkge1xuICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gZmllbGQgJyR7U3RyaW5nKHByb3ApfScgdW5kZXIgJHtqb2luKHBhdGgsIGtleSkgfHwgJzxyb290Pid9IGApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGNhY2hlLmhhcyhwcm9wKSkgcmV0dXJuIGNhY2hlLmdldChwcm9wKTtcblxuICAgICAgICAgICAgY29uc3QgY2hpbGQgPSBub2RlLmZpZWxkc1twcm9wXSE7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnRQYXRoID0gdHlwZW9mIGtleSA9PT0gJ3N0cmluZycgPyBbLi4ucGF0aCwga2V5XSA6IHBhdGg7XG4gICAgICAgICAgICBjb25zdCBjaGlsZFByb3h5ID0gbWFrZVByb3h5KGN0eCwgY2hpbGQsIHBhcmVudFBhdGgsIHByb3AsIHN0cmljdCk7XG4gICAgICAgICAgICBjYWNoZS5zZXQocHJvcCwgY2hpbGRQcm94eSk7XG4gICAgICAgICAgICByZXR1cm4gY2hpbGRQcm94eTtcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqIEJ1aWxkIGxhenksIGNvcHktb24td3JpdGUgc2NvcGUgZnJvbSBhIFpvZCBvYmplY3Qgc2NoZW1hICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2NvcGVQcm94eUZyb21ab2Q8UyBleHRlbmRzIHouWm9kT2JqZWN0PGFueT4+KFxuICBjdHg6IFN0YWdlQ29udGV4dExpa2UsXG4gIHNjaGVtYTogUyxcbiAgc3RyaWN0OiBTdHJpY3RNb2RlID0gJ3dhcm4nLFxuICByZWFkT25seT86IHVua25vd24sXG4pOiB6LmluZmVyPFM+ICYgeyBybz86IHVua25vd24gfSB7XG4gIGlmICghaXNab2ROb2RlKHNjaGVtYSkpIHRocm93IG5ldyBUeXBlRXJyb3IoJ2NyZWF0ZVNjb3BlUHJveHlGcm9tWm9kOiBleHBlY3RlZCBhIFpvZCBvYmplY3Qgc2NoZW1hJyk7XG4gIGNvbnN0IHJvb3QgPSBhbmFseXplKHNjaGVtYSBhcyB1bmtub3duIGFzIFpvZFR5cGVBbnkpO1xuICBjb25zdCBwcm94eSA9IG1ha2VQcm94eShjdHgsIHJvb3QsIFtdLCB1bmRlZmluZWQsIHN0cmljdCk7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm94eSwgJ3JvJywgeyB2YWx1ZTogcmVhZE9ubHksIGVudW1lcmFibGU6IGZhbHNlIH0pO1xuICByZXR1cm4gcHJveHk7XG59XG4iXX0=
|
|
@@ -13,12 +13,38 @@ function isZodNode(x) {
|
|
|
13
13
|
return (0, detect_js_1.detectSchema)(x) !== 'none';
|
|
14
14
|
}
|
|
15
15
|
exports.isZodNode = isZodNode;
|
|
16
|
-
/** Peel wrappers; returns the underlying base Zod node (or null).
|
|
16
|
+
/** Peel wrappers; returns the underlying base Zod node (or null).
|
|
17
|
+
*
|
|
18
|
+
* Wrapper-aware: only descends through fields that are KNOWN to hold
|
|
19
|
+
* the inner schema for wrapper Zod types (Optional, Default, Nullable,
|
|
20
|
+
* Effects/Pipeline). Notably, `_def.type` is treated as the inner
|
|
21
|
+
* schema ONLY for v3 Effects/Pipeline — it is NOT the inner schema
|
|
22
|
+
* for ZodArray (where `_def.type` holds the ELEMENT schema, which is
|
|
23
|
+
* a separate concern from wrapper unwrapping).
|
|
24
|
+
*
|
|
25
|
+
* Without this gate, `unwrap(z.array(z.string()))` would incorrectly
|
|
26
|
+
* follow `_def.type` and return `ZodString`, breaking array detection
|
|
27
|
+
* in `scopeFactory.analyze()`.
|
|
28
|
+
*/
|
|
17
29
|
function unwrap(schema) {
|
|
18
|
-
|
|
19
|
-
let s = schema !== null && schema !== void 0 ? schema : null;
|
|
30
|
+
let s = schema ?? null;
|
|
20
31
|
while (isZodNode(s)) {
|
|
21
|
-
const def = (
|
|
32
|
+
const def = (s._def ?? {});
|
|
33
|
+
const tn = def.typeName;
|
|
34
|
+
// Only known wrapper typeNames descend. ZodArray / ZodObject /
|
|
35
|
+
// ZodRecord / ZodUnion etc. break out so the caller can branch
|
|
36
|
+
// on the base instance check.
|
|
37
|
+
const isWrapper = tn === 'ZodOptional' ||
|
|
38
|
+
tn === 'ZodDefault' ||
|
|
39
|
+
tn === 'ZodNullable' ||
|
|
40
|
+
tn === 'ZodReadonly' ||
|
|
41
|
+
tn === 'ZodBranded' ||
|
|
42
|
+
tn === 'ZodCatch' ||
|
|
43
|
+
tn === 'ZodEffects' ||
|
|
44
|
+
tn === 'ZodPipeline' ||
|
|
45
|
+
tn === 'ZodLazy';
|
|
46
|
+
if (!isWrapper)
|
|
47
|
+
break;
|
|
22
48
|
if (isZodNode(def.innerType)) {
|
|
23
49
|
s = def.innerType;
|
|
24
50
|
continue;
|
|
@@ -27,10 +53,24 @@ function unwrap(schema) {
|
|
|
27
53
|
s = def.schema;
|
|
28
54
|
continue;
|
|
29
55
|
}
|
|
30
|
-
|
|
31
|
-
|
|
56
|
+
// Pipeline (`in` / `out`) — descend into `in` (input side).
|
|
57
|
+
if (isZodNode(def.in)) {
|
|
58
|
+
s = def.in;
|
|
32
59
|
continue;
|
|
33
60
|
}
|
|
61
|
+
// Lazy holds a getter under `getter`. Last-resort fallback.
|
|
62
|
+
if (typeof def.getter === 'function') {
|
|
63
|
+
try {
|
|
64
|
+
const inner = def.getter();
|
|
65
|
+
if (isZodNode(inner)) {
|
|
66
|
+
s = inner;
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
/* fall through */
|
|
72
|
+
}
|
|
73
|
+
}
|
|
34
74
|
break;
|
|
35
75
|
}
|
|
36
76
|
return isZodNode(s) ? s : null;
|
|
@@ -38,20 +78,23 @@ function unwrap(schema) {
|
|
|
38
78
|
exports.unwrap = unwrap;
|
|
39
79
|
/** Version-tolerant access to ZodRecord value schema. */
|
|
40
80
|
function getRecordValueType(rec) {
|
|
41
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
42
81
|
const r = rec;
|
|
43
|
-
const def =
|
|
44
|
-
return (
|
|
82
|
+
const def = r._def ?? {};
|
|
83
|
+
return (r.valueSchema ??
|
|
84
|
+
r.valueType ??
|
|
85
|
+
def.valueType ??
|
|
86
|
+
def.value ??
|
|
87
|
+
(def.schema && (def.schema.valueType ?? def.schema.value)) ??
|
|
88
|
+
(def.innerType && (def.innerType.valueType ?? def.innerType.value)) ??
|
|
89
|
+
null);
|
|
45
90
|
}
|
|
46
91
|
exports.getRecordValueType = getRecordValueType;
|
|
47
92
|
function looksLikeBindingError(err) {
|
|
48
|
-
|
|
49
|
-
const msg = (_a = err === null || err === void 0 ? void 0 : err.message) !== null && _a !== void 0 ? _a : '';
|
|
93
|
+
const msg = err?.message ?? '';
|
|
50
94
|
return msg.includes('_zod') || msg.includes('inst._zod') || msg.includes('Cannot read properties of undefined');
|
|
51
95
|
}
|
|
52
96
|
const WRAPPER_CACHE = new WeakMap();
|
|
53
97
|
function parseWithThis(schema, value) {
|
|
54
|
-
var _a;
|
|
55
98
|
const anySchema = schema;
|
|
56
99
|
if (typeof anySchema.safeParse === 'function') {
|
|
57
100
|
try {
|
|
@@ -98,7 +141,7 @@ function parseWithThis(schema, value) {
|
|
|
98
141
|
const res = wrapper.safeParse(value);
|
|
99
142
|
if (res && res.success)
|
|
100
143
|
return res.data;
|
|
101
|
-
throw
|
|
144
|
+
throw res?.error ?? new TypeError('Zod validation binding failed (wrapper fallback).');
|
|
102
145
|
}
|
|
103
146
|
exports.parseWithThis = parseWithThis;
|
|
104
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGVIZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3Njb3BlL3N0YXRlL3pvZC91dGlscy92YWxpZGF0ZUhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7R0FJRzs7O0FBRUgsNkJBQXlEO0FBRXpELDREQUE0RDtBQUU1RCwrQ0FBK0M7QUFDL0MsU0FBZ0IsU0FBUyxDQUFDLENBQVU7SUFDbEMsT0FBTyxJQUFBLHdCQUFZLEVBQUMsQ0FBQyxDQUFDLEtBQUssTUFBTSxDQUFDO0FBQ3BDLENBQUM7QUFGRCw4QkFFQztBQUVELHFFQUFxRTtBQUNyRSxTQUFnQixNQUFNLENBQUMsTUFBcUM7O0lBQzFELElBQUksQ0FBQyxHQUFZLE1BQU0sYUFBTixNQUFNLGNBQU4sTUFBTSxHQUFJLElBQUksQ0FBQztJQUNoQyxPQUFPLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3BCLE1BQU0sR0FBRyxHQUFHLE1BQUMsQ0FBUyxDQUFDLElBQUksbUNBQUksRUFBRSxDQUFDO1FBQ2xDLElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQzdCLENBQUMsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDO1lBQ2xCLFNBQVM7UUFDWCxDQUFDO1FBQ0QsSUFBSSxTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDMUIsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7WUFDZixTQUFTO1FBQ1gsQ0FBQztRQUNELElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3hCLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO1lBQ2IsU0FBUztRQUNYLENBQUM7UUFDRCxNQUFNO0lBQ1IsQ0FBQztJQUNELE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBRSxD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RSxNQUFNLEdBQUcsQ0FBQztRQUM3QyxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksT0FBTyxTQUFTLENBQUMsS0FBSyxLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQzFDLElBQUksQ0FBQztZQUNILE9BQU8sU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQyxDQUFDO1FBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNiLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUM7Z0JBQUUsTUFBTSxHQUFHLENBQUM7UUFDN0MsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLE9BQU8sR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNiLE9BQU8sR0FBSSxPQUFDLENBQUMsR0FBRyxFQUFVLENBQUMsSUFBSSxDQUFDLE1BQWEsQ0FBQyxDQUFDO1FBQy9DLGFBQWEsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLE9BQVEsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFDRCxNQUFNLEdBQUcsR0FBSSxPQUFlLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlDLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxPQUFPO1FBQUUsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDO0lBRXhDLE1BQU0sTUFBQSxHQUFHLGFBQUgsR0FBRyx1QkFBSCxHQUFHLENBQUUsS0FBSyxtQ0FBSSxJQUFJLFNBQVMsQ0FBQyxtREFBbUQsQ0FBQyxDQUFDO0FBQ3pGLENBQUM7QUE1Q0Qsc0NBNENDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBab2QgVmFsaWRhdGlvbiBIZWxwZXJzIOKAlCBDcm9zcy12ZXJzaW9uIGNvbXBhdGlibGUgWm9kIHV0aWxpdGllc1xuICpcbiAqIERldGVjdGlvbiBkZWxlZ2F0ZWQgdG8gc2NoZW1hL2RldGVjdC50cyAoc2luZ2xlIHNvdXJjZSBvZiB0cnV0aCkuXG4gKi9cblxuaW1wb3J0IHsgdHlwZSBab2RSZWNvcmQsIHR5cGUgWm9kVHlwZUFueSwgeiB9IGZyb20gJ3pvZCc7XG5cbmltcG9ydCB7IGRldGVjdFNjaGVtYSB9IGZyb20gJy4uLy4uLy4uLy4uL3NjaGVtYS9kZXRlY3QuanMnO1xuXG4vKiogQ2hlY2sgaWYgdGhlIHZhbHVlIGlzIGEgWm9kIHNjaGVtYSBub2RlLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzWm9kTm9kZSh4OiB1bmtub3duKTogeCBpcyBab2RUeXBlQW55IHtcbiAgcmV0dXJuIGRldGVjdFNjaGVtYSh4KSAhPT0gJ25vbmUnO1xufVxuXG4vKiogUGVlbCB3cmFwcGVyczsgcmV0dXJucyB0aGUgdW5kZXJseWluZyBiYXNlIFpvZCBub2RlIChvciBudWxsKS4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1bndyYXAoc2NoZW1hOiBab2RUeXBlQW55IHwgbnVsbCB8IHVuZGVmaW5lZCk6IFpvZFR5cGVBbnkgfCBudWxsIHtcbiAgbGV0IHM6IHVua25vd24gPSBzY2hlbWEgPz8gbnVsbDtcbiAgd2hpbGUgKGlzWm9kTm9kZShzKSkge1xuICAgIGNvbnN0IGRlZiA9IChzIGFzIGFueSkuX2RlZiA/PyB7fTtcbiAgICBpZiAoaXNab2ROb2RlKGRlZi5pbm5lclR5cGUpKSB7XG4gICAgICBzID0gZGVmLmlubmVyVHlwZTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAoaXNab2ROb2RlKGRlZi5zY2hlbWEpKSB7XG4gICAgICBzID0gZGVmLnNjaGVtYTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAoaXNab2ROb2RlKGRlZi50eXBlKSkge1xuICAgICAgcyA9IGRlZi50eXBlO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGJyZWFrO1xuICB9XG4gIHJldHVybiBpc1pvZE5vZGUocykgPyAocyBhcyBab2RUeXBlQW55KSA6IG51bGw7XG59XG5cbi8qKiBWZXJzaW9uLXRvbGVyYW50IGFjY2VzcyB0byBab2RSZWNvcmQgdmFsdWUgc2NoZW1hLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJlY29yZFZhbHVlVHlwZShyZWM6IFpvZFJlY29yZDxhbnksIGFueT4pOiBab2RUeXBlQW55IHwgbnVsbCB7XG4gIGNvbnN0IHI6IGFueSA9IHJlYyBhcyBhbnk7XG4gIGNvbnN0IGRlZiA9IHIuX2RlZiA/PyB7fTtcbiAgcmV0dXJuIChcbiAgICByLnZhbHVlU2NoZW1hID8/XG4gICAgci52YWx1ZVR5cGUgPz9cbiAgICBkZWYudmFsdWVUeXBlID8/XG4gICAgZGVmLnZhbHVlID8/XG4gICAgKGRlZi5zY2hlbWEgJiYgKGRlZi5zY2hlbWEudmFsdWVUeXBlID8/IGRlZi5zY2hlbWEudmFsdWUpKSA/P1xuICAgIChkZWYuaW5uZXJUeXBlICYmIChkZWYuaW5uZXJUeXBlLnZhbHVlVHlwZSA/PyBkZWYuaW5uZXJUeXBlLnZhbHVlKSkgPz9cbiAgICBudWxsXG4gICk7XG59XG5cbmZ1bmN0aW9uIGxvb2tzTGlrZUJpbmRpbmdFcnJvcihlcnI6IHVua25vd24pOiBib29sZWFuIHtcbiAgY29uc3QgbXNnID0gKGVyciBhcyBhbnkpPy5tZXNzYWdlID8/ICcnO1xuICByZXR1cm4gbXNnLmluY2x1ZGVzKCdfem9kJykgfHwgbXNnLmluY2x1ZGVzKCdpbnN0Ll96b2QnKSB8fCBtc2cuaW5jbHVkZXMoJ0Nhbm5vdCByZWFkIHByb3BlcnRpZXMgb2YgdW5kZWZpbmVkJyk7XG59XG5cbmNvbnN0IFdSQVBQRVJfQ0FDSEUgPSBuZXcgV2Vha01hcDxab2RUeXBlQW55LCBab2RUeXBlQW55PigpO1xuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VXaXRoVGhpcyhzY2hlbWE6IFpvZFR5cGVBbnksIHZhbHVlOiB1bmtub3duKTogdW5rbm93biB7XG4gIGNvbnN0IGFueVNjaGVtYSA9IHNjaGVtYSBhcyBhbnk7XG5cbiAgaWYgKHR5cGVvZiBhbnlTY2hlbWEuc2FmZVBhcnNlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlcyA9IGFueVNjaGVtYS5zYWZlUGFyc2UodmFsdWUpO1xuICAgICAgaWYgKHJlcyAmJiB0eXBlb2YgcmVzID09PSAnb2JqZWN0JyAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocmVzLCAnc3VjY2VzcycpKSB7XG4gICAgICAgIGlmIChyZXMuc3VjY2VzcykgcmV0dXJuIHJlcy5kYXRhO1xuICAgICAgICB0aHJvdyByZXMuZXJyb3I7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBpZiAoIWxvb2tzTGlrZUJpbmRpbmdFcnJvcihlcnIpKSB0aHJvdyBlcnI7XG4gICAgfVxuICB9XG5cbiAgaWYgKHR5cGVvZiBhbnlTY2hlbWEuc2FmZVBhcnNlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlcyA9IGFueVNjaGVtYS5zYWZlUGFyc2UuY2FsbChzY2hlbWEsIHZhbHVlKTtcbiAgICAgIGlmIChyZXMgJiYgdHlwZW9mIHJlcyA9PT0gJ29iamVjdCcgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHJlcywgJ3N1Y2Nlc3MnKSkge1xuICAgICAgICBpZiAocmVzLnN1Y2Nlc3MpIHJldHVybiByZXMuZGF0YTtcbiAgICAgICAgdGhyb3cgcmVzLmVycm9yO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgaWYgKCFsb29rc0xpa2VCaW5kaW5nRXJyb3IoZXJyKSkgdGhyb3cgZXJyO1xuICAgIH1cbiAgfVxuXG4gIGlmICh0eXBlb2YgYW55U2NoZW1hLnBhcnNlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhbnlTY2hlbWEucGFyc2UodmFsdWUpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgaWYgKCFsb29rc0xpa2VCaW5kaW5nRXJyb3IoZXJyKSkgdGhyb3cgZXJyO1xuICAgIH1cbiAgfVxuXG4gIGxldCB3cmFwcGVyID0gV1JBUFBFUl9DQUNIRS5nZXQoc2NoZW1hKTtcbiAgaWYgKCF3cmFwcGVyKSB7XG4gICAgd3JhcHBlciA9ICh6LmFueSgpIGFzIGFueSkucGlwZShzY2hlbWEgYXMgYW55KTtcbiAgICBXUkFQUEVSX0NBQ0hFLnNldChzY2hlbWEsIHdyYXBwZXIhKTtcbiAgfVxuICBjb25zdCByZXMgPSAod3JhcHBlciBhcyBhbnkpLnNhZmVQYXJzZSh2YWx1ZSk7XG4gIGlmIChyZXMgJiYgcmVzLnN1Y2Nlc3MpIHJldHVybiByZXMuZGF0YTtcblxuICB0aHJvdyByZXM/LmVycm9yID8/IG5ldyBUeXBlRXJyb3IoJ1pvZCB2YWxpZGF0aW9uIGJpbmRpbmcgZmFpbGVkICh3cmFwcGVyIGZhbGxiYWNrKS4nKTtcbn1cbiJdfQ==
|
|
147
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGVIZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3Njb3BlL3N0YXRlL3pvZC91dGlscy92YWxpZGF0ZUhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7R0FJRzs7O0FBRUgsNkJBQXlEO0FBRXpELDREQUE0RDtBQUU1RCwrQ0FBK0M7QUFDL0MsU0FBZ0IsU0FBUyxDQUFDLENBQVU7SUFDbEMsT0FBTyxJQUFBLHdCQUFZLEVBQUMsQ0FBQyxDQUFDLEtBQUssTUFBTSxDQUFDO0FBQ3BDLENBQUM7QUFGRCw4QkFFQztBQUVEOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILFNBQWdCLE1BQU0sQ0FBQyxNQUFxQztJQUMxRCxJQUFJLENBQUMsR0FBWSxNQUFNLElBQUksSUFBSSxDQUFDO0lBQ2hDLE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDcEIsTUFBTSxHQUFHLEdBQUcsQ0FBRSxDQUFTLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBNEIsQ0FBQztRQUMvRCxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUMsUUFBOEIsQ0FBQztRQUM5QywrREFBK0Q7UUFDL0QsK0RBQStEO1FBQy9ELDhCQUE4QjtRQUM5QixNQUFNLFNBQVMsR0FDYixFQUFFLEtBQUssYUFBYTtZQUNwQixFQUFFLEtBQUssWUFBWTtZQUNuQixFQUFFLEtBQUssYUFBYTtZQUNwQixFQUFFLEtBQUssYUFBYTtZQUNwQixFQUFFLEtBQUssWUFBWTtZQUNuQixFQUFFLEtBQUssVUFBVTtZQUNqQixFQUFFLEtBQUssWUFBWTtZQUNuQixFQUFFLEtBQUssYUFBYTtZQUNwQixFQUFFLEtBQUssU0FBUyxDQUFDO1FBQ25CLElBQUksQ0FBQyxTQUFTO1lBQUUsTUFBTTtRQUN0QixJQUFJLFNBQVMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUM3QixDQUFDLEdBQUcsR0FBRyxD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QVUsQ0FBQyxJQUFJLENBQUMsTUFBYSxDQUFDLENBQUM7UUFDL0MsYUFBYSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsT0FBUSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUNELE1BQU0sR0FBRyxHQUFJLE9BQWUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUMsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLE9BQU87UUFBRSxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUM7SUFFeEMsTUFBTSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksU0FBUyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7QUFDekYsQ0FBQztBQTVDRCxzQ0E0Q0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFpvZCBWYWxpZGF0aW9uIEhlbHBlcnMg4oCUIENyb3NzLXZlcnNpb24gY29tcGF0aWJsZSBab2QgdXRpbGl0aWVzXG4gKlxuICogRGV0ZWN0aW9uIGRlbGVnYXRlZCB0byBzY2hlbWEvZGV0ZWN0LnRzIChzaW5nbGUgc291cmNlIG9mIHRydXRoKS5cbiAqL1xuXG5pbXBvcnQgeyB0eXBlIFpvZFJlY29yZCwgdHlwZSBab2RUeXBlQW55LCB6IH0gZnJvbSAnem9kJztcblxuaW1wb3J0IHsgZGV0ZWN0U2NoZW1hIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2NoZW1hL2RldGVjdC5qcyc7XG5cbi8qKiBDaGVjayBpZiB0aGUgdmFsdWUgaXMgYSBab2Qgc2NoZW1hIG5vZGUuICovXG5leHBvcnQgZnVuY3Rpb24gaXNab2ROb2RlKHg6IHVua25vd24pOiB4IGlzIFpvZFR5cGVBbnkge1xuICByZXR1cm4gZGV0ZWN0U2NoZW1hKHgpICE9PSAnbm9uZSc7XG59XG5cbi8qKiBQZWVsIHdyYXBwZXJzOyByZXR1cm5zIHRoZSB1bmRlcmx5aW5nIGJhc2UgWm9kIG5vZGUgKG9yIG51bGwpLlxuICpcbiAqICBXcmFwcGVyLWF3YXJlOiBvbmx5IGRlc2NlbmRzIHRocm91Z2ggZmllbGRzIHRoYXQgYXJlIEtOT1dOIHRvIGhvbGRcbiAqICB0aGUgaW5uZXIgc2NoZW1hIGZvciB3cmFwcGVyIFpvZCB0eXBlcyAoT3B0aW9uYWwsIERlZmF1bHQsIE51bGxhYmxlLFxuICogIEVmZmVjdHMvUGlwZWxpbmUpLiBOb3RhYmx5LCBgX2RlZi50eXBlYCBpcyB0cmVhdGVkIGFzIHRoZSBpbm5lclxuICogIHNjaGVtYSBPTkxZIGZvciB2MyBFZmZlY3RzL1BpcGVsaW5lIOKAlCBpdCBpcyBOT1QgdGhlIGlubmVyIHNjaGVtYVxuICogIGZvciBab2RBcnJheSAod2hlcmUgYF9kZWYudHlwZWAgaG9sZHMgdGhlIEVMRU1FTlQgc2NoZW1hLCB3aGljaCBpc1xuICogIGEgc2VwYXJhdGUgY29uY2VybiBmcm9tIHdyYXBwZXIgdW53cmFwcGluZykuXG4gKlxuICogIFdpdGhvdXQgdGhpcyBnYXRlLCBgdW53cmFwKHouYXJyYXkoei5zdHJpbmcoKSkpYCB3b3VsZCBpbmNvcnJlY3RseVxuICogIGZvbGxvdyBgX2RlZi50eXBlYCBhbmQgcmV0dXJuIGBab2RTdHJpbmdgLCBicmVha2luZyBhcnJheSBkZXRlY3Rpb25cbiAqICBpbiBgc2NvcGVGYWN0b3J5LmFuYWx5emUoKWAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1bndyYXAoc2NoZW1hOiBab2RUeXBlQW55IHwgbnVsbCB8IHVuZGVmaW5lZCk6IFpvZFR5cGVBbnkgfCBudWxsIHtcbiAgbGV0IHM6IHVua25vd24gPSBzY2hlbWEgPz8gbnVsbDtcbiAgd2hpbGUgKGlzWm9kTm9kZShzKSkge1xuICAgIGNvbnN0IGRlZiA9ICgocyBhcyBhbnkpLl9kZWYgPz8ge30pIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgIGNvbnN0IHRuID0gZGVmLnR5cGVOYW1lIGFzIHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvLyBPbmx5IGtub3duIHdyYXBwZXIgdHlwZU5hbWVzIGRlc2NlbmQuIFpvZEFycmF5IC8gWm9kT2JqZWN0IC9cbiAgICAvLyBab2RSZWNvcmQgLyBab2RVbmlvbiBldGMuIGJyZWFrIG91dCBzbyB0aGUgY2FsbGVyIGNhbiBicmFuY2hcbiAgICAvLyBvbiB0aGUgYmFzZSBpbnN0YW5jZSBjaGVjay5cbiAgICBjb25zdCBpc1dyYXBwZXIgPVxuICAgICAgdG4gPT09ICdab2RPcHRpb25hbCcgfHxcbiAgICAgIHRuID09PSAnWm9kRGVmYXVsdCcgfHxcbiAgICAgIHRuID09PSAnWm9kTnVsbGFibGUnIHx8XG4gICAgICB0biA9PT0gJ1pvZFJlYWRvbmx5JyB8fFxuICAgICAgdG4gPT09ICdab2RCcmFuZGVkJyB8fFxuICAgICAgdG4gPT09ICdab2RDYXRjaCcgfHxcbiAgICAgIHRuID09PSAnWm9kRWZmZWN0cycgfHxcbiAgICAgIHRuID09PSAnWm9kUGlwZWxpbmUnIHx8XG4gICAgICB0biA9PT0gJ1pvZExhenknO1xuICAgIGlmICghaXNXcmFwcGVyKSBicmVhaztcbiAgICBpZiAoaXNab2ROb2RlKGRlZi5pbm5lclR5cGUpKSB7XG4gICAgICBzID0gZGVmLmlubmVyVHlwZTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAoaXNab2ROb2RlKGRlZi5zY2hlbWEpKSB7XG4gICAgICBzID0gZGVmLnNjaGVtYTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICAvLyBQaXBlbGluZSAoYGluYCAvIGBvdXRgKSDigJQgZGVzY2VuZCBpbnRvIGBpbmAgKGlucHV0IHNpZGUpLlxuICAgIGlmIChpc1pvZE5vZGUoZGVmLmluKSkge1xuICAgICAgcyA9IGRlZi5pbjtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICAvLyBMYXp5IGhvbGRzIGEgZ2V0dGVyIHVuZGVyIGBnZXR0ZXJgLiBMYXN0LXJlc29ydCBmYWxsYmFjay5cbiAgICBpZiAodHlwZW9mIGRlZi5nZXR0ZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGlubmVyID0gKGRlZi5nZXR0ZXIgYXMgKCkgPT4gdW5rbm93bikoKTtcbiAgICAgICAgaWYgKGlzWm9kTm9kZShpbm5lcikpIHtcbiAgICAgICAgICBzID0gaW5uZXI7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICAvKiBmYWxsIHRocm91Z2ggKi9cbiAgICAgIH1cbiAgICB9XG4gICAgYnJlYWs7XG4gIH1cbiAgcmV0dXJuIGlzWm9kTm9kZShzKSA/IChzIGFzIFpvZFR5cGVBbnkpIDogbnVsbDtcbn1cblxuLyoqIFZlcnNpb24tdG9sZXJhbnQgYWNjZXNzIHRvIFpvZFJlY29yZCB2YWx1ZSBzY2hlbWEuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVjb3JkVmFsdWVUeXBlKHJlYzogWm9kUmVjb3JkPGFueSwgYW55Pik6IFpvZFR5cGVBbnkgfCBudWxsIHtcbiAgY29uc3QgcjogYW55ID0gcmVjIGFzIGFueTtcbiAgY29uc3QgZGVmID0gci5fZGVmID8/IHt9O1xuICByZXR1cm4gKFxuICAgIHIudmFsdWVTY2hlbWEgPz9cbiAgICByLnZhbHVlVHlwZSA/P1xuICAgIGRlZi52YWx1ZVR5cGUgPz9cbiAgICBkZWYudmFsdWUgPz9cbiAgICAoZGVmLnNjaGVtYSAmJiAoZGVmLnNjaGVtYS52YWx1ZVR5cGUgPz8gZGVmLnNjaGVtYS52YWx1ZSkpID8/XG4gICAgKGRlZi5pbm5lclR5cGUgJiYgKGRlZi5pbm5lclR5cGUudmFsdWVUeXBlID8/IGRlZi5pbm5lclR5cGUudmFsdWUpKSA/P1xuICAgIG51bGxcbiAgKTtcbn1cblxuZnVuY3Rpb24gbG9va3NMaWtlQmluZGluZ0Vycm9yKGVycjogdW5rbm93bik6IGJvb2xlYW4ge1xuICBjb25zdCBtc2cgPSAoZXJyIGFzIGFueSk/Lm1lc3NhZ2UgPz8gJyc7XG4gIHJldHVybiBtc2cuaW5jbHVkZXMoJ196b2QnKSB8fCBtc2cuaW5jbHVkZXMoJ2luc3QuX3pvZCcpIHx8IG1zZy5pbmNsdWRlcygnQ2Fubm90IHJlYWQgcHJvcGVydGllcyBvZiB1bmRlZmluZWQnKTtcbn1cblxuY29uc3QgV1JBUFBFUl9DQUNIRSA9IG5ldyBXZWFrTWFwPFpvZFR5cGVBbnksIFpvZFR5cGVBbnk+KCk7XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVdpdGhUaGlzKHNjaGVtYTogWm9kVHlwZUFueSwgdmFsdWU6IHVua25vd24pOiB1bmtub3duIHtcbiAgY29uc3QgYW55U2NoZW1hID0gc2NoZW1hIGFzIGFueTtcblxuICBpZiAodHlwZW9mIGFueVNjaGVtYS5zYWZlUGFyc2UgPT09ICdmdW5jdGlvbicpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzID0gYW55U2NoZW1hLnNhZmVQYXJzZSh2YWx1ZSk7XG4gICAgICBpZiAocmVzICYmIHR5cGVvZiByZXMgPT09ICdvYmplY3QnICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyZXMsICdzdWNjZXNzJykpIHtcbiAgICAgICAgaWYgKHJlcy5zdWNjZXNzKSByZXR1cm4gcmVzLmRhdGE7XG4gICAgICAgIHRocm93IHJlcy5lcnJvcjtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGlmICghbG9va3NMaWtlQmluZGluZ0Vycm9yKGVycikpIHRocm93IGVycjtcbiAgICB9XG4gIH1cblxuICBpZiAodHlwZW9mIGFueVNjaGVtYS5zYWZlUGFyc2UgPT09ICdmdW5jdGlvbicpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzID0gYW55U2NoZW1hLnNhZmVQYXJzZS5jYWxsKHNjaGVtYSwgdmFsdWUpO1xuICAgICAgaWYgKHJlcyAmJiB0eXBlb2YgcmVzID09PSAnb2JqZWN0JyAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocmVzLCAnc3VjY2VzcycpKSB7XG4gICAgICAgIGlmIChyZXMuc3VjY2VzcykgcmV0dXJuIHJlcy5kYXRhO1xuICAgICAgICB0aHJvdyByZXMuZXJyb3I7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBpZiAoIWxvb2tzTGlrZUJpbmRpbmdFcnJvcihlcnIpKSB0aHJvdyBlcnI7XG4gICAgfVxuICB9XG5cbiAgaWYgKHR5cGVvZiBhbnlTY2hlbWEucGFyc2UgPT09ICdmdW5jdGlvbicpIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGFueVNjaGVtYS5wYXJzZSh2YWx1ZSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBpZiAoIWxvb2tzTGlrZUJpbmRpbmdFcnJvcihlcnIpKSB0aHJvdyBlcnI7XG4gICAgfVxuICB9XG5cbiAgbGV0IHdyYXBwZXIgPSBXUkFQUEVSX0NBQ0hFLmdldChzY2hlbWEpO1xuICBpZiAoIXdyYXBwZXIpIHtcbiAgICB3cmFwcGVyID0gKHouYW55KCkgYXMgYW55KS5waXBlKHNjaGVtYSBhcyBhbnkpO1xuICAgIFdSQVBQRVJfQ0FDSEUuc2V0KHNjaGVtYSwgd3JhcHBlciEpO1xuICB9XG4gIGNvbnN0IHJlcyA9ICh3cmFwcGVyIGFzIGFueSkuc2FmZVBhcnNlKHZhbHVlKTtcbiAgaWYgKHJlcyAmJiByZXMuc3VjY2VzcykgcmV0dXJuIHJlcy5kYXRhO1xuXG4gIHRocm93IHJlcz8uZXJyb3IgPz8gbmV3IFR5cGVFcnJvcignWm9kIHZhbGlkYXRpb24gYmluZGluZyBmYWlsZWQgKHdyYXBwZXIgZmFsbGJhY2spLicpO1xufVxuIl19
|
package/dist/trace.js
CHANGED
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
* ```
|
|
23
23
|
*/
|
|
24
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
-
exports.qualityTrace = exports.formatQualityTrace = exports.QualityRecorder = exports.ROOT_SUBFLOW_ID = exports.ROOT_RUNTIME_STAGE_ID = exports.inOutRecorder = exports.InOutRecorder = exports.topologyRecorder = exports.TopologyRecorder = exports.SequenceRecorder = exports.KeyedRecorder = exports.formatCausalChain = exports.flattenCausalDAG = exports.causalChain = exports.findLastWriter = exports.findCommits = exports.findCommit = exports.parseRuntimeStageId = exports.createExecutionCounter = exports.buildRuntimeStageId = void 0;
|
|
25
|
+
exports.qualityTrace = exports.formatQualityTrace = exports.QualityRecorder = exports.ROOT_SUBFLOW_ID = exports.ROOT_RUNTIME_STAGE_ID = exports.inOutRecorder = exports.InOutRecorder = exports.topologyRecorder = exports.TopologyRecorder = exports.BoundaryStateTracker = exports.SequenceRecorder = exports.KeyedRecorder = exports.formatCausalChain = exports.flattenCausalDAG = exports.causalChain = exports.findLastWriter = exports.findCommits = exports.findCommit = exports.parseRuntimeStageId = exports.createExecutionCounter = exports.buildRuntimeStageId = void 0;
|
|
26
26
|
var runtimeStageId_js_1 = require("./lib/engine/runtimeStageId.js");
|
|
27
27
|
Object.defineProperty(exports, "buildRuntimeStageId", { enumerable: true, get: function () { return runtimeStageId_js_1.buildRuntimeStageId; } });
|
|
28
28
|
Object.defineProperty(exports, "createExecutionCounter", { enumerable: true, get: function () { return runtimeStageId_js_1.createExecutionCounter; } });
|
|
@@ -42,6 +42,10 @@ Object.defineProperty(exports, "KeyedRecorder", { enumerable: true, get: functio
|
|
|
42
42
|
// SequenceRecorder — base class for 1:N ordered sequence recorders with keyed index
|
|
43
43
|
var SequenceRecorder_js_1 = require("./lib/recorder/SequenceRecorder.js");
|
|
44
44
|
Object.defineProperty(exports, "SequenceRecorder", { enumerable: true, get: function () { return SequenceRecorder_js_1.SequenceRecorder; } });
|
|
45
|
+
// BoundaryStateTracker — base class for transient bracket-scoped state
|
|
46
|
+
// (live state DURING a matched [start, stop] event interval; clears on stop)
|
|
47
|
+
var BoundaryStateTracker_js_1 = require("./lib/recorder/BoundaryStateTracker.js");
|
|
48
|
+
Object.defineProperty(exports, "BoundaryStateTracker", { enumerable: true, get: function () { return BoundaryStateTracker_js_1.BoundaryStateTracker; } });
|
|
45
49
|
var TopologyRecorder_js_1 = require("./lib/recorder/TopologyRecorder.js");
|
|
46
50
|
Object.defineProperty(exports, "TopologyRecorder", { enumerable: true, get: function () { return TopologyRecorder_js_1.TopologyRecorder; } });
|
|
47
51
|
Object.defineProperty(exports, "topologyRecorder", { enumerable: true, get: function () { return TopologyRecorder_js_1.topologyRecorder; } });
|
|
@@ -55,4 +59,4 @@ Object.defineProperty(exports, "QualityRecorder", { enumerable: true, get: funct
|
|
|
55
59
|
var qualityTrace_js_1 = require("./lib/recorder/qualityTrace.js");
|
|
56
60
|
Object.defineProperty(exports, "formatQualityTrace", { enumerable: true, get: function () { return qualityTrace_js_1.formatQualityTrace; } });
|
|
57
61
|
Object.defineProperty(exports, "qualityTrace", { enumerable: true, get: function () { return qualityTrace_js_1.qualityTrace; } });
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHJhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7OztBQUlILG9FQUFrSDtBQUF6Ryx3SEFBQSxtQkFBbUIsT0FBQTtBQUFFLDJIQUFBLHNCQUFzQixPQUFBO0FBQUUsd0hBQUEsbUJBQW1CLE9BQUE7QUFFekUsd0RBQXdEO0FBQ3hELG9FQUF5RjtBQUFoRiwrR0FBQSxVQUFVLE9BQUE7QUFBRSxnSEFBQSxXQUFXLE9BQUE7QUFBRSxtSEFBQSxjQUFjLE9BQUE7QUFJaEQsMERBQTZGO0FBQXBGLDJHQUFBLFdBQVcsT0FBQTtBQUFFLGdIQUFBLGdCQUFnQixPQUFBO0FBQUUsaUhBQUEsaUJBQWlCLE9BQUE7QUFFekQseURBQXlEO0FBQ3pELG9FQUFnRTtBQUF2RCxpSEFBQSxhQUFhLE9BQUE7QUFFdEIsb0ZBQW9GO0FBQ3BGLDBFQUFzRTtBQUE3RCx1SEFBQSxnQkFBZ0IsT0FBQTtBQUV6Qix1RUFBdUU7QUFDdkUsNkVBQTZFO0FBQzdFLGtGQUE4RTtBQUFyRSwrSEFBQSxvQkFBb0IsT0FBQTtBQVU3QiwwRUFBd0Y7QUFBL0UsdUhBQUEsZ0JBQWdCLE9BQUE7QUFBRSx1SEFBQSxnQkFBZ0IsT0FBQTtBQUszQyxvRUFBdUg7QUFBOUcsaUhBQUEsYUFBYSxPQUFBO0FBQUUsaUhBQUEsYUFBYSxPQUFBO0FBQUUseUhBQUEscUJBQXFCLE9BQUE7QUFBRSxtSEFBQSxlQUFlLE9BQUE7QUFJN0Usd0VBQW9FO0FBQTNELHFIQUFBLGVBQWUsT0FBQTtBQUl4QixrRUFBa0Y7QUFBekUscUhBQUEsa0JBQWtCLE9BQUE7QUFBRSwrR0FBQSxZQUFZLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGZvb3RwcmludGpzL3RyYWNlIOKAlCBFeGVjdXRpb24gdHJhY2luZywgZGVidWdnaW5nLCBhbmQgYmFja3RyYWNraW5nIHV0aWxpdGllcy5cbiAqXG4gKiBSdW50aW1lIHN0YWdlIElEcywgY29tbWl0IGxvZyBxdWVyaWVzLCBhbmQgcmVjb3JkZXIgYmFzZSBjbGFzc2VzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBpbXBvcnQgeyBwYXJzZVJ1bnRpbWVTdGFnZUlkLCBmaW5kTGFzdFdyaXRlciwgS2V5ZWRSZWNvcmRlciwgU2VxdWVuY2VSZWNvcmRlciB9IGZyb20gJ2Zvb3RwcmludGpzL3RyYWNlJztcbiAqXG4gKiAvLyBQYXJzZSBhIHJ1bnRpbWVTdGFnZUlkXG4gKiBjb25zdCB7IHN0YWdlSWQsIGV4ZWN1dGlvbkluZGV4IH0gPSBwYXJzZVJ1bnRpbWVTdGFnZUlkKCdjYWxsLWxsbSM1Jyk7XG4gKlxuICogLy8gQmFja3RyYWNrOiB3aG8gd3JvdGUgJ3N5c3RlbVByb21wdCcgYmVmb3JlIHN0YWdlIGF0IGlkeCA4P1xuICogY29uc3Qgd3JpdGVyID0gZmluZExhc3RXcml0ZXIoY29tbWl0TG9nLCAnc3lzdGVtUHJvbXB0JywgOCk7XG4gKlxuICogLy8gQnVpbGQgYSBrZXllZCByZWNvcmRlciAoMToxIOKAlCBvbmUgZW50cnkgcGVyIHN0ZXApXG4gKiBjbGFzcyBNeVJlY29yZGVyIGV4dGVuZHMgS2V5ZWRSZWNvcmRlcjxNeUVudHJ5PiB7IC4uLiB9XG4gKlxuICogLy8gQnVpbGQgYSBzZXF1ZW5jZSByZWNvcmRlciAoMTpOIOKAlCBtdWx0aXBsZSBlbnRyaWVzIHBlciBzdGVwLCBvcmRlcmluZyBtYXR0ZXJzKVxuICogY2xhc3MgQXVkaXRSZWNvcmRlciBleHRlbmRzIFNlcXVlbmNlUmVjb3JkZXI8QXVkaXRFbnRyeT4geyAuLi4gfVxuICogYGBgXG4gKi9cblxuLy8gUnVudGltZSBzdGFnZSBJRCDigJQgdW5pcXVlIGV4ZWN1dGlvbiBzdGVwIGlkZW50aWZpZXJzXG5leHBvcnQgdHlwZSB7IEV4ZWN1dGlvbkNvdW50ZXIgfSBmcm9tICcuL2xpYi9lbmdpbmUvcnVudGltZVN0YWdlSWQuanMnO1xuZXhwb3J0IHsgYnVpbGRSdW50aW1lU3RhZ2VJZCwgY3JlYXRlRXhlY3V0aW9uQ291bnRlciwgcGFyc2VSdW50aW1lU3RhZ2VJZCB9IGZyb20gJy4vbGliL2VuZ2luZS9ydW50aW1lU3RhZ2VJZC5qcyc7XG5cbi8vIENvbW1pdCBsb2cgcXVlcmllcyDigJQgdHlwZWQgdXRpbGl0aWVzIGZvciBiYWNrdHJhY2tpbmdcbmV4cG9ydCB7IGZpbmRDb21taXQsIGZpbmRDb21taXRzLCBmaW5kTGFzdFdyaXRlciB9IGZyb20gJy4vbGliL21lbW9yeS9jb21taXRMb2dVdGlscy5qcyc7XG5cbi8vIENhdXNhbCBjaGFpbiDigJQgYmFja3dhcmQgcHJvZ3JhbSBzbGljaW5nIG9uIGNvbW1pdCBsb2cgKERBRylcbmV4cG9ydCB0eXBlIHsgQ2F1c2FsQ2hhaW5PcHRpb25zLCBDYXVzYWxOb2RlLCBLZXlzUmVhZExvb2t1cCB9IGZyb20gJy4vbGliL21lbW9yeS9iYWNrdHJhY2suanMnO1xuZXhwb3J0IHsgY2F1c2FsQ2hhaW4sIGZsYXR0ZW5DYXVzYWxEQUcsIGZvcm1hdENhdXNhbENoYWluIH0gZnJvbSAnLi9saWIvbWVtb3J5L2JhY2t0cmFjay5qcyc7XG5cbi8vIEtleWVkUmVjb3JkZXIg4oCUIGJhc2UgY2xhc3MgZm9yIDE6MSBNYXAtYmFzZWQgcmVjb3JkZXJzXG5leHBvcnQgeyBLZXllZFJlY29yZGVyIH0gZnJvbSAnLi9saWIvcmVjb3JkZXIvS2V5ZWRSZWNvcmRlci5qcyc7XG5cbi8vIFNlcXVlbmNlUmVjb3JkZXIg4oCUIGJhc2UgY2xhc3MgZm9yIDE6TiBvcmRlcmVkIHNlcXVlbmNlIHJlY29yZGVycyB3aXRoIGtleWVkIGluZGV4XG5leHBvcnQgeyBTZXF1ZW5jZVJlY29yZGVyIH0gZnJvbSAnLi9saWIvcmVjb3JkZXIvU2VxdWVuY2VSZWNvcmRlci5qcyc7XG5cbi8vIEJvdW5kYXJ5U3RhdGVUcmFja2VyIOKAlCBiYXNlIGNsYXNzIGZvciB0cmFuc2llbnQgYnJhY2tldC1zY29wZWQgc3RhdGVcbi8vIChsaXZlIHN0YXRlIERVUklORyBhIG1hdGNoZWQgW3N0YXJ0LCBzdG9wXSBldmVudCBpbnRlcnZhbDsgY2xlYXJzIG9uIHN0b3ApXG5leHBvcnQgeyBCb3VuZGFyeVN0YXRlVHJhY2tlciB9IGZyb20gJy4vbGliL3JlY29yZGVyL0JvdW5kYXJ5U3RhdGVUcmFja2VyLmpzJztcblxuLy8gVG9wb2xvZ3lSZWNvcmRlciDigJQgY29tcG9zaXRpb24gZ3JhcGggYWNjdW11bGF0b3IgKHN1YmZsb3dzICsgY29udHJvbC1mbG93IGVkZ2VzKVxuZXhwb3J0IHR5cGUge1xuICBUb3BvbG9neSxcbiAgVG9wb2xvZ3lFZGdlLFxuICBUb3BvbG9neUluY29taW5nS2luZCxcbiAgVG9wb2xvZ3lOb2RlLFxuICBUb3BvbG9neVJlY29yZGVyT3B0aW9ucyxcbn0gZnJvbSAnLi9saWIvcmVjb3JkZXIvVG9wb2xvZ3lSZWNvcmRlci5qcyc7XG5leHBvcnQgeyBUb3BvbG9neVJlY29yZGVyLCB0b3BvbG9neVJlY29yZGVyIH0gZnJvbSAnLi9saWIvcmVjb3JkZXIvVG9wb2xvZ3lSZWNvcmRlci5qcyc7XG5cbi8vIEluT3V0UmVjb3JkZXIg4oCUIGNoYXJ0IGluL291dCBzdHJlYW0gKGVudHJ5L2V4aXQgcGFpcnMgYXQgZXZlcnkgY2hhcnQgYm91bmRhcnksXG4vLyBpbmNsdWRpbmcgdGhlIHRvcC1sZXZlbCBydW4gYW5kIGV2ZXJ5IHN1YmZsb3cpXG5leHBvcnQgdHlwZSB7IEluT3V0RW50cnksIEluT3V0UGhhc2UsIEluT3V0UmVjb3JkZXJPcHRpb25zIH0gZnJvbSAnLi9saWIvcmVjb3JkZXIvSW5PdXRSZWNvcmRlci5qcyc7XG5leHBvcnQgeyBJbk91dFJlY29yZGVyLCBpbk91dFJlY29yZGVyLCBST09UX1JVTlRJTUVfU1RBR0VfSUQsIFJPT1RfU1VCRkxPV19JRCB9IGZyb20gJy4vbGliL3JlY29yZGVyL0luT3V0UmVjb3JkZXIuanMnO1xuXG4vLyBRdWFsaXR5UmVjb3JkZXIg4oCUIHBlci1zdGVwIHF1YWxpdHkgc2NvcmluZyB3aXRoIGJhY2t0cmFja2luZ1xuZXhwb3J0IHR5cGUgeyBRdWFsaXR5RW50cnksIFF1YWxpdHlSZWNvcmRlck9wdGlvbnMsIFF1YWxpdHlTY29yaW5nRm4gfSBmcm9tICcuL2xpYi9yZWNvcmRlci9RdWFsaXR5UmVjb3JkZXIuanMnO1xuZXhwb3J0IHsgUXVhbGl0eVJlY29yZGVyIH0gZnJvbSAnLi9saWIvcmVjb3JkZXIvUXVhbGl0eVJlY29yZGVyLmpzJztcblxuLy8gcXVhbGl0eVRyYWNlIOKAlCBRdWFsaXR5IFN0YWNrIFRyYWNlIChiYWNrdHJhY2sgZnJvbSBsb3ctc2NvcmluZyBzdGVwcylcbmV4cG9ydCB0eXBlIHsgUXVhbGl0eUZyYW1lLCBRdWFsaXR5U3RhY2tUcmFjZSB9IGZyb20gJy4vbGliL3JlY29yZGVyL3F1YWxpdHlUcmFjZS5qcyc7XG5leHBvcnQgeyBmb3JtYXRRdWFsaXR5VHJhY2UsIHF1YWxpdHlUcmFjZSB9IGZyb20gJy4vbGliL3JlY29yZGVyL3F1YWxpdHlUcmFjZS5qcyc7XG4iXX0=
|
package/dist/types/advanced.d.ts
CHANGED
|
@@ -51,4 +51,5 @@ export { applyOutputMapping, ChildrenExecutor, computeNodeType, ContinuationReso
|
|
|
51
51
|
export type { ExecutionCounter } from './lib/engine/runtimeStageId.js';
|
|
52
52
|
export { buildRuntimeStageId, createExecutionCounter, parseRuntimeStageId } from './lib/engine/runtimeStageId.js';
|
|
53
53
|
export { findCommit, findCommits, findLastWriter } from './lib/memory/commitLogUtils.js';
|
|
54
|
+
export { BoundaryStateTracker } from './lib/recorder/BoundaryStateTracker.js';
|
|
54
55
|
export { KeyedRecorder } from './lib/recorder/KeyedRecorder.js';
|