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
|
@@ -22,19 +22,22 @@
|
|
|
22
22
|
*/
|
|
23
23
|
import { KeyedRecorder } from '../../recorder/KeyedRecorder.js';
|
|
24
24
|
export class MetricRecorder extends KeyedRecorder {
|
|
25
|
+
static _counter = 0;
|
|
26
|
+
id;
|
|
27
|
+
preferredOperation;
|
|
28
|
+
stageStartTimes = new Map();
|
|
29
|
+
currentRuntimeStageId = '';
|
|
30
|
+
stageFilter;
|
|
25
31
|
constructor(idOrOptions) {
|
|
26
|
-
var _a, _b;
|
|
27
32
|
super();
|
|
28
|
-
this.stageStartTimes = new Map();
|
|
29
|
-
this.currentRuntimeStageId = '';
|
|
30
33
|
if (typeof idOrOptions === 'string') {
|
|
31
34
|
this.id = idOrOptions;
|
|
32
35
|
this.preferredOperation = 'aggregate';
|
|
33
36
|
}
|
|
34
37
|
else {
|
|
35
|
-
this.id =
|
|
36
|
-
this.stageFilter = idOrOptions
|
|
37
|
-
this.preferredOperation =
|
|
38
|
+
this.id = idOrOptions?.id ?? `metrics-${++MetricRecorder._counter}`;
|
|
39
|
+
this.stageFilter = idOrOptions?.stageFilter;
|
|
40
|
+
this.preferredOperation = idOrOptions?.preferredOperation ?? 'aggregate';
|
|
38
41
|
}
|
|
39
42
|
}
|
|
40
43
|
shouldRecord(stageName) {
|
|
@@ -164,5 +167,4 @@ export class MetricRecorder extends KeyedRecorder {
|
|
|
164
167
|
this.clear();
|
|
165
168
|
}
|
|
166
169
|
}
|
|
167
|
-
MetricRecorder._counter = 0;
|
|
168
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWV0cmljUmVjb3JkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3Njb3BlL3JlY29yZGVycy9NZXRyaWNSZWNvcmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJHO0FBRUgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBb0RoRSxNQUFNLE9BQU8sY0FBZSxTQUFRLGFBQTBCO0lBUzVELFlBQVksV0FBNEM7O1FBQ3RELEtBQUssRUFBRSxDQUFDO1FBTEYsb0JBQWUsR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQztRQUM1QywwQkFBcUIsR0FBRyxFQUFFLENBQUM7UUFLakMsSUFBSSxPQUFPLFdBQVcsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsRUFBRSxHQUFHLFdBQVcsQ0FBQztZQUN0QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsV0FBVyxDQUFDO1FBQ3hDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLEVBQUUsR0FBRyxNQUFBLFdBQVcsYUFBWCxXQUFXLHVCQUFYLFdBQVcsQ0FBRSxFQUFFLG1DQUFJLFdBQVcsRUFBRSxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDcEUsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLGFBQVgsV0FBVyx1QkFBWCxXQUFXLENBQUUsV0FBVyxDQUFDO1lBQzVDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxNQUFBLFdBQVcsYUFBWCxXQUFXLHVCQUFYLFdBQVcsQ0FBRSxrQkFBa0IsbUNBQUksV0FBVyxDQUFDO1FBQzNFLENBQUM7SUFDSCxDQUFDO0lBRU8sWUFBWSxDQUFDLFNBQWlCO1FBQ3BDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELDJEQUEyRDtJQUNuRCxPQUFPO1FBQ2IsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDO1FBQ3ZDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ1AsQ0FBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUMvRixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNyQixDQUFDO1FBQ0QsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQWlCO1FBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7WUFBRSxPQUFPO1FBQ2hELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUMsY0FBYyxDQUFDO1FBQ2xELElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2hFLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN6QixDQUFDLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7SUFDaEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFnQjtRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO1lBQUUsT0FBTztRQUNoRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFpQjtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO1lBQUUsT0FBTztRQUNoRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFrQjtRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO1lBQUUsT0FBTztRQUNoRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFpQjtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO1lBQUUsT0FBTztRQUNoRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFpQjtRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO1lBQUUsT0FBTztRQUNoRCxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDekIsSUFBSSxLQUFLLENBQUMsUUFBUSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2pDLENBQUMsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztRQUM5QixDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUNqRSxDQUFDLENBQUMsUUFBUSxHQUFHLFNBQVMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekUsQ0FBQztRQUNELElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsZ0dBQWdHO0lBQ2hHLFVBQVU7UUFDUixNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBd0IsQ0FBQztRQUUvQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdEUsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN0RSxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDeEUsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRXRFLHlDQUF5QztRQUN6QyxLQUFLLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO1lBQzlCLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3pDLElBQUksUUFBUSxFQUFFLENBQUM7Z0JBQ2IsUUFBUSxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDO2dCQUNsQyxRQUFRLENBQUMsVUFBVSxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUM7Z0JBQ3BDLFFBQVEsQ0FBQyxXQUFXLElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQztnQkFDdEMsUUFBUSxDQUFDLFVBQVUsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDO2dCQUNwQyxRQUFRLENBQUMsYUFBYSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUM7Z0JBQ3JDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUM3QixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFO29CQUN0QixTQUFTLEVBQUUsQ0FBQyxDQUFDLFNBQVM7b0JBQ3RCLFNBQVMsRUFBRSxDQUFDLENBQUMsU0FBUztvQkFDdEIsVUFBVSxFQUFFLENBQUMsQ0FBQyxVQUFVO29CQUN4QixXQUFXLEVBQUUsQ0FBQyxDQUFDLFdBQVc7b0JBQzFCLFVBQVUsRUFBRSxDQUFDLENBQUMsVUFBVTtvQkFDeEIsYUFBYSxFQUFFLENBQUMsQ0FBQyxRQUFRO29CQUN6QixlQUFlLEVBQUUsQ0FBQztpQkFDbkIsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDckcsQ0FBQztJQUVELDhFQUE4RTtJQUM5RSxlQUFlLENBQUMsU0FBaUI7UUFDL0IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xDLE9BQU8sT0FBTyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELFVBQVU7UUFDUixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEMsb0VBQW9FO1FBQ3BFLGtDQUFrQztRQUNsQyxNQUFNLEtBQUssR0FBNEIsRUFBRSxDQUFDO1FBQzFDLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztZQUN6QyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLENBQUM7UUFDRCxPQUFPO1lBQ0wsSUFBSSxFQUFFLFNBQVM7WUFDZixXQUFXLEVBQUUsNkRBQTZEO1lBQzFFLGtCQUFrQixFQUFFLElBQUksQ0FBQyxrQkFBa0I7WUFDM0MsSUFBSSxFQUFFO2dCQUNKLFlBQVksRUFBRSxXQUFXO2dCQUN6QixVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVU7Z0JBQzlCLGFBQWEsRUFBRSxPQUFPLENBQUMsYUFBYTtnQkFDcEMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVO2dCQUM5QixXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVc7Z0JBQ2hDLFlBQVksRUFBRSxPQUFPLENBQUMsWUFBWTtnQkFDbEMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxXQUFXO2dCQUNoQyxLQUFLO2FBQ047U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELDhEQUE4RDtJQUNyRCxLQUFLO1FBQ1osS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMscUJBQXFCLEdBQUcsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCwyQ0FBMkM7SUFDM0MsS0FBSztRQUNILElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNmLENBQUM7O0FBeEpjLHVCQUFRLEdBQUcsQ0FBQyxBQUFKLENBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIE1ldHJpY1JlY29yZGVyIOKAlCBwZXItc3RlcCB0aW1pbmcgYW5kIGV4ZWN1dGlvbiBjb3VudHMsIGtleWVkIGJ5IHJ1bnRpbWVTdGFnZUlkLlxuICpcbiAqIFN0b3JlcyBwZXItaW52b2NhdGlvbiBkYXRhIGR1cmluZyB0cmF2ZXJzYWwuIEFnZ3JlZ2F0ZWQgdmlld3MgY29tcHV0ZWQgb24gcmVhZC5cbiAqIEV4dGVuZHMgS2V5ZWRSZWNvcmRlcjxTdGVwTWV0cmljcz4gZm9yIE8oMSkgbG9va3VwIGFuZCBzdGFuZGFyZCBvcGVyYXRpb25zLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBtZXRyaWMgPSBuZXcgTWV0cmljUmVjb3JkZXIoKTtcbiAqIGV4ZWN1dG9yLmF0dGFjaFJlY29yZGVyKG1ldHJpYyk7XG4gKiBhd2FpdCBleGVjdXRvci5ydW4oKTtcbiAqXG4gKiAvLyBQZXItc3RlcCAodGltZS10cmF2ZWwpOlxuICogbWV0cmljLmdldEJ5S2V5KCdjYWxsLWxsbSM1Jyk7ICAvLyB7IHN0YWdlTmFtZSwgcmVhZENvdW50LCB3cml0ZUNvdW50LCBkdXJhdGlvbiB9XG4gKlxuICogLy8gQWdncmVnYXRlZCAoYmFja3dhcmQgY29tcGF0KTpcbiAqIG1ldHJpYy5nZXRNZXRyaWNzKCk7ICAvLyB7IHRvdGFsRHVyYXRpb24sIHRvdGFsUmVhZHMsIHN0YWdlTWV0cmljczogTWFwPHN0YWdlTmFtZSwgYWdncmVnYXRlZD4gfVxuICpcbiAqIC8vIFByb2dyZXNzaXZlIChzbGlkZXIpOlxuICogbWV0cmljLmFjY3VtdWxhdGUoKHN1bSwgbSkgPT4gc3VtICsgbS5kdXJhdGlvbiwgMCwgdmlzaWJsZUtleXMpO1xuICogYGBgXG4gKi9cblxuaW1wb3J0IHsgS2V5ZWRSZWNvcmRlciB9IGZyb20gJy4uLy4uL3JlY29yZGVyL0tleWVkUmVjb3JkZXIuanMnO1xuaW1wb3J0IHR5cGUgeyBSZWNvcmRlck9wZXJhdGlvbiB9IGZyb20gJy4uLy4uL3JlY29yZGVyL1JlY29yZGVyT3BlcmF0aW9uLmpzJztcbmltcG9ydCB0eXBlIHsgQ29tbWl0RXZlbnQsIFBhdXNlRXZlbnQsIFJlYWRFdmVudCwgUmVjb3JkZXIsIFN0YWdlRXZlbnQsIFdyaXRlRXZlbnQgfSBmcm9tICcuLi90eXBlcy5qcyc7XG5cbi8qKiBQZXItaW52b2NhdGlvbiBtZXRyaWNzIGZvciBhIHNpbmdsZSBleGVjdXRpb24gc3RlcC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RlcE1ldHJpY3Mge1xuICAvKiogSHVtYW4tcmVhZGFibGUgc3RhZ2UgbmFtZS4gKi9cbiAgc3RhZ2VOYW1lOiBzdHJpbmc7XG4gIC8qKiBOdW1iZXIgb2Ygc2NvcGUgcmVhZHMgZHVyaW5nIHRoaXMgaW52b2NhdGlvbi4gKi9cbiAgcmVhZENvdW50OiBudW1iZXI7XG4gIC8qKiBOdW1iZXIgb2Ygc2NvcGUgd3JpdGVzIGR1cmluZyB0aGlzIGludm9jYXRpb24uICovXG4gIHdyaXRlQ291bnQ6IG51bWJlcjtcbiAgLyoqIE51bWJlciBvZiBjb21taXRzIGR1cmluZyB0aGlzIGludm9jYXRpb24uICovXG4gIGNvbW1pdENvdW50OiBudW1iZXI7XG4gIC8qKiBOdW1iZXIgb2YgcGF1c2VzIGR1cmluZyB0aGlzIGludm9jYXRpb24uICovXG4gIHBhdXNlQ291bnQ6IG51bWJlcjtcbiAgLyoqIER1cmF0aW9uIGluIG1zIGZvciB0aGlzIGludm9jYXRpb24uICovXG4gIGR1cmF0aW9uOiBudW1iZXI7XG59XG5cbi8qKiBBZ2dyZWdhdGVkIG1ldHJpY3MgYWNyb3NzIGFsbCBpbnZvY2F0aW9ucyAoYmFja3dhcmQgY29tcGF0aWJsZSkuICovXG5leHBvcnQgaW50ZXJmYWNlIEFnZ3JlZ2F0ZWRNZXRyaWNzIHtcbiAgdG90YWxEdXJhdGlvbjogbnVtYmVyO1xuICB0b3RhbFJlYWRzOiBudW1iZXI7XG4gIHRvdGFsV3JpdGVzOiBudW1iZXI7XG4gIHRvdGFsQ29tbWl0czogbnVtYmVyO1xuICB0b3RhbFBhdXNlczogbnVtYmVyO1xuICAvKiogQWdncmVnYXRlZCBieSBzdGFnZU5hbWUg4oCUIHN1bXMgYWNyb3NzIGxvb3AgaW52b2NhdGlvbnMuICovXG4gIHN0YWdlTWV0cmljczogTWFwPHN0cmluZywgU3RhZ2VNZXRyaWNzPjtcbn1cblxuLyoqIEFnZ3JlZ2F0ZWQgcGVyLXN0YWdlTmFtZSAoYmFja3dhcmQgY29tcGF0aWJsZSB3aXRoIHByZS1ydW50aW1lU3RhZ2VJZCBBUEkpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdGFnZU1ldHJpY3Mge1xuICBzdGFnZU5hbWU6IHN0cmluZztcbiAgcmVhZENvdW50OiBudW1iZXI7XG4gIHdyaXRlQ291bnQ6IG51bWJlcjtcbiAgY29tbWl0Q291bnQ6IG51bWJlcjtcbiAgcGF1c2VDb3VudDogbnVtYmVyO1xuICB0b3RhbER1cmF0aW9uOiBudW1iZXI7XG4gIGludm9jYXRpb25Db3VudDogbnVtYmVyO1xufVxuXG4vKiogT3B0aW9ucyBmb3IgTWV0cmljUmVjb3JkZXIuICovXG5leHBvcnQgaW50ZXJmYWNlIE1ldHJpY1JlY29yZGVyT3B0aW9ucyB7XG4gIC8qKiBSZWNvcmRlciBJRC4gRGVmYXVsdHMgdG8gYXV0by1pbmNyZW1lbnQgKGBtZXRyaWNzLTFgLCBgbWV0cmljcy0yYCwgLi4uKS4gKi9cbiAgaWQ/OiBzdHJpbmc7XG4gIC8qKiBGaWx0ZXIgd2hpY2ggc3RhZ2VzIGFyZSByZWNvcmRlZC4gUmV0dXJuIGB0cnVlYCB0byByZWNvcmQsIGBmYWxzZWAgdG8gc2tpcC4gKi9cbiAgc3RhZ2VGaWx0ZXI/OiAoc3RhZ2VOYW1lOiBzdHJpbmcpID0+IGJvb2xlYW47XG4gIC8qKiBQcmVmZXJyZWQgVUkgb3BlcmF0aW9uLiBEZWZhdWx0cyB0byAnYWdncmVnYXRlJyAoZGFzaGJvYXJkIHRvdGFscykuICovXG4gIHByZWZlcnJlZE9wZXJhdGlvbj86IFJlY29yZGVyT3BlcmF0aW9uO1xufVxuXG5leHBvcnQgY2xhc3MgTWV0cmljUmVjb3JkZXIgZXh0ZW5kcyBLZXllZFJlY29yZGVyPFN0ZXBNZXRyaWNzPiBpbXBsZW1lbnRzIFJlY29yZGVyIHtcbiAgcHJpdmF0ZSBzdGF0aWMgX2NvdW50ZXIgPSAwO1xuXG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHByZWZlcnJlZE9wZXJhdGlvbjogUmVjb3JkZXJPcGVyYXRpb247XG4gIHByaXZhdGUgc3RhZ2VTdGFydFRpbWVzID0gbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKTtcbiAgcHJpdmF0ZSBjdXJyZW50UnVudGltZVN0YWdlSWQgPSAnJztcbiAgcHJpdmF0ZSBzdGFnZUZpbHRlcj86IChzdGFnZU5hbWU6IHN0cmluZykgPT4gYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihpZE9yT3B0aW9ucz86IHN0cmluZyB8IE1ldHJpY1JlY29yZGVyT3B0aW9ucykge1xuICAgIHN1cGVyKCk7XG4gICAgaWYgKHR5cGVvZiBpZE9yT3B0aW9ucyA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHRoaXMuaWQgPSBpZE9yT3B0aW9ucztcbiAgICAgIHRoaXMucHJlZmVycmVkT3BlcmF0aW9uID0gJ2FnZ3JlZ2F0ZSc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaWQgPSBpZE9yT3B0aW9ucz8uaWQgPz8gYG1ldHJpY3MtJHsrK01ldHJpY1JlY29yZGVyLl9jb3VudGVyfWA7XG4gICAgICB0aGlzLnN0YWdlRmlsdGVyID0gaWRPck9wdGlvbnM/LnN0YWdlRmlsdGVyO1xuICAgICAgdGhpcy5wcmVmZXJyZWRPcGVyYXRpb24gPSBpZE9yT3B0aW9ucz8ucHJlZmVycmVkT3BlcmF0aW9uID8/ICdhZ2dyZWdhdGUnO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2hvdWxkUmVjb3JkKHN0YWdlTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLnN0YWdlRmlsdGVyIHx8IHRoaXMuc3RhZ2VGaWx0ZXIoc3RhZ2VOYW1lKTtcbiAgfVxuXG4gIC8qKiBHZXQgb3IgY3JlYXRlIHRoZSBTdGVwTWV0cmljcyBmb3IgdGhlIGN1cnJlbnQgc3RhZ2UuICovXG4gIHByaXZhdGUgY3VycmVudCgpOiBTdGVwTWV0cmljcyB7XG4gICAgY29uc3Qga2V5ID0gdGhpcy5jdXJyZW50UnVudGltZVN0YWdlSWQ7XG4gICAgbGV0IG0gPSB0aGlzLmdldEJ5S2V5KGtleSk7XG4gICAgaWYgKCFtKSB7XG4gICAgICBtID0geyBzdGFnZU5hbWU6ICcnLCByZWFkQ291bnQ6IDAsIHdyaXRlQ291bnQ6IDAsIGNvbW1pdENvdW50OiAwLCBwYXVzZUNvdW50OiAwLCBkdXJhdGlvbjogMCB9O1xuICAgICAgdGhpcy5zdG9yZShrZXksIG0pO1xuICAgIH1cbiAgICByZXR1cm4gbTtcbiAgfVxuXG4gIG9uU3RhZ2VTdGFydChldmVudDogU3RhZ2VFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zaG91bGRSZWNvcmQoZXZlbnQuc3RhZ2VOYW1lKSkgcmV0dXJuO1xuICAgIHRoaXMuY3VycmVudFJ1bnRpbWVTdGFnZUlkID0gZXZlbnQucnVudGltZVN0YWdlSWQ7XG4gICAgdGhpcy5zdGFnZVN0YXJ0VGltZXMuc2V0KGV2ZW50LnJ1bnRpbWVTdGFnZUlkLCBldmVudC50aW1lc3RhbXApO1xuICAgIGNvbnN0IG0gPSB0aGlzLmN1cnJlbnQoKTtcbiAgICBtLnN0YWdlTmFtZSA9IGV2ZW50LnN0YWdlTmFtZTtcbiAgfVxuXG4gIG9uUmVhZChldmVudDogUmVhZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNob3VsZFJlY29yZChldmVudC5zdGFnZU5hbWUpKSByZXR1cm47XG4gICAgdGhpcy5jdXJyZW50KCkucmVhZENvdW50Kys7XG4gIH1cblxuICBvbldyaXRlKGV2ZW50OiBXcml0ZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNob3VsZFJlY29yZChldmVudC5zdGFnZU5hbWUpKSByZXR1cm47XG4gICAgdGhpcy5jdXJyZW50KCkud3JpdGVDb3VudCsrO1xuICB9XG5cbiAgb25Db21taXQoZXZlbnQ6IENvbW1pdEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNob3VsZFJlY29yZChldmVudC5zdGFnZU5hbWUpKSByZXR1cm47XG4gICAgdGhpcy5jdXJyZW50KCkuY29tbWl0Q291bnQrKztcbiAgfVxuXG4gIG9uUGF1c2UoZXZlbnQ6IFBhdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2hvdWxkUmVjb3JkKGV2ZW50LnN0YWdlTmFtZSkpIHJldHVybjtcbiAgICB0aGlzLmN1cnJlbnQoKS5wYXVzZUNvdW50Kys7XG4gIH1cblxuICBvblN0YWdlRW5kKGV2ZW50OiBTdGFnZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNob3VsZFJlY29yZChldmVudC5zdGFnZU5hbWUpKSByZXR1cm47XG4gICAgY29uc3QgbSA9IHRoaXMuY3VycmVudCgpO1xuICAgIGlmIChldmVudC5kdXJhdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBtLmR1cmF0aW9uID0gZXZlbnQuZHVyYXRpb247XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHN0YXJ0VGltZSA9IHRoaXMuc3RhZ2VTdGFydFRpbWVzLmdldChldmVudC5ydW50aW1lU3RhZ2VJZCk7XG4gICAgICBtLmR1cmF0aW9uID0gc3RhcnRUaW1lICE9PSB1bmRlZmluZWQgPyBldmVudC50aW1lc3RhbXAgLSBzdGFydFRpbWUgOiAwO1xuICAgIH1cbiAgICB0aGlzLnN0YWdlU3RhcnRUaW1lcy5kZWxldGUoZXZlbnQucnVudGltZVN0YWdlSWQpO1xuICB9XG5cbiAgLyoqIEFnZ3JlZ2F0ZWQgbWV0cmljcyDigJQgY29tcHV0ZXMgdG90YWxzIG9uIHRoZSBmbHkgZnJvbSBwZXItc3RlcCBkYXRhIChiYWNrd2FyZCBjb21wYXRpYmxlKS4gKi9cbiAgZ2V0TWV0cmljcygpOiBBZ2dyZWdhdGVkTWV0cmljcyB7XG4gICAgY29uc3QgYnlOYW1lID0gbmV3IE1hcDxzdHJpbmcsIFN0YWdlTWV0cmljcz4oKTtcblxuICAgIGNvbnN0IHRvdGFsRHVyYXRpb24gPSB0aGlzLmFnZ3JlZ2F0ZSgoc3VtLCBtKSA9PiBzdW0gKyBtLmR1cmF0aW9uLCAwKTtcbiAgICBjb25zdCB0b3RhbFJlYWRzID0gdGhpcy5hZ2dyZWdhdGUoKHN1bSwgbSkgPT4gc3VtICsgbS5yZWFkQ291bnQsIDApO1xuICAgIGNvbnN0IHRvdGFsV3JpdGVzID0gdGhpcy5hZ2dyZWdhdGUoKHN1bSwgbSkgPT4gc3VtICsgbS53cml0ZUNvdW50LCAwKTtcbiAgICBjb25zdCB0b3RhbENvbW1pdHMgPSB0aGlzLmFnZ3JlZ2F0ZSgoc3VtLCBtKSA9PiBzdW0gKyBtLmNvbW1pdENvdW50LCAwKTtcbiAgICBjb25zdCB0b3RhbFBhdXNlcyA9IHRoaXMuYWdncmVnYXRlKChzdW0sIG0pID0+IHN1bSArIG0ucGF1c2VDb3VudCwgMCk7XG5cbiAgICAvLyBHcm91cCBieSBzdGFnZU5hbWUgZm9yIGJhY2t3YXJkIGNvbXBhdFxuICAgIGZvciAoY29uc3QgbSBvZiB0aGlzLnZhbHVlcygpKSB7XG4gICAgICBjb25zdCBleGlzdGluZyA9IGJ5TmFtZS5nZXQobS5zdGFnZU5hbWUpO1xuICAgICAgaWYgKGV4aXN0aW5nKSB7XG4gICAgICAgIGV4aXN0aW5nLnJlYWRDb3VudCArPSBtLnJlYWRDb3VudDtcbiAgICAgICAgZXhpc3Rpbmcud3JpdGVDb3VudCArPSBtLndyaXRlQ291bnQ7XG4gICAgICAgIGV4aXN0aW5nLmNvbW1pdENvdW50ICs9IG0uY29tbWl0Q291bnQ7XG4gICAgICAgIGV4aXN0aW5nLnBhdXNlQ291bnQgKz0gbS5wYXVzZUNvdW50O1xuICAgICAgICBleGlzdGluZy50b3RhbER1cmF0aW9uICs9IG0uZHVyYXRpb247XG4gICAgICAgIGV4aXN0aW5nLmludm9jYXRpb25Db3VudCsrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYnlOYW1lLnNldChtLnN0YWdlTmFtZSwge1xuICAgICAgICAgIHN0YWdlTmFtZTogbS5zdGFnZU5hbWUsXG4gICAgICAgICAgcmVhZENvdW50OiBtLnJlYWRDb3VudCxcbiAgICAgICAgICB3cml0ZUNvdW50OiBtLndyaXRlQ291bnQsXG4gICAgICAgICAgY29tbWl0Q291bnQ6IG0uY29tbWl0Q291bnQsXG4gICAgICAgICAgcGF1c2VDb3VudDogbS5wYXVzZUNvdW50LFxuICAgICAgICAgIHRvdGFsRHVyYXRpb246IG0uZHVyYXRpb24sXG4gICAgICAgICAgaW52b2NhdGlvbkNvdW50OiAxLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4geyB0b3RhbER1cmF0aW9uLCB0b3RhbFJlYWRzLCB0b3RhbFdyaXRlcywgdG90YWxDb21taXRzLCB0b3RhbFBhdXNlcywgc3RhZ2VNZXRyaWNzOiBieU5hbWUgfTtcbiAgfVxuXG4gIC8qKiBHZXQgYWdncmVnYXRlZCBtZXRyaWNzIGZvciBhIHNwZWNpZmljIHN0YWdlIG5hbWUgKGJhY2t3YXJkIGNvbXBhdGlibGUpLiAqL1xuICBnZXRTdGFnZU1ldHJpY3Moc3RhZ2VOYW1lOiBzdHJpbmcpOiBTdGFnZU1ldHJpY3MgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IG1ldHJpY3MgPSB0aGlzLmdldE1ldHJpY3MoKTtcbiAgICByZXR1cm4gbWV0cmljcy5zdGFnZU1ldHJpY3MuZ2V0KHN0YWdlTmFtZSk7XG4gIH1cblxuICB0b1NuYXBzaG90KCkge1xuICAgIGNvbnN0IG1ldHJpY3MgPSB0aGlzLmdldE1ldHJpY3MoKTtcbiAgICAvLyBFeHBvc2UgcGVyLXN0ZXAgZGF0YSBrZXllZCBieSBydW50aW1lU3RhZ2VJZCAoZm9yIHRpbWUtdHJhdmVsIFVJKVxuICAgIC8vIGFsb25nc2lkZSB0aGUgYWdncmVnYXRlZCB0b3RhbHNcbiAgICBjb25zdCBzdGVwczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiB0aGlzLmdldE1hcCgpKSB7XG4gICAgICBzdGVwc1trZXldID0gdmFsdWU7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiAnTWV0cmljcycsXG4gICAgICBkZXNjcmlwdGlvbjogJ0FnZ3JlZ2F0b3IgKEtleWVkUmVjb3JkZXIpIOKAlCBwZXItc3RlcCB0aW1pbmcgYW5kIEkvTyBjb3VudHMnLFxuICAgICAgcHJlZmVycmVkT3BlcmF0aW9uOiB0aGlzLnByZWZlcnJlZE9wZXJhdGlvbixcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgbnVtZXJpY0ZpZWxkOiAncmVhZENvdW50JyxcbiAgICAgICAgZ3JhbmRUb3RhbDogbWV0cmljcy50b3RhbFJlYWRzLFxuICAgICAgICB0b3RhbER1cmF0aW9uOiBtZXRyaWNzLnRvdGFsRHVyYXRpb24sXG4gICAgICAgIHRvdGFsUmVhZHM6IG1ldHJpY3MudG90YWxSZWFkcyxcbiAgICAgICAgdG90YWxXcml0ZXM6IG1ldHJpY3MudG90YWxXcml0ZXMsXG4gICAgICAgIHRvdGFsQ29tbWl0czogbWV0cmljcy50b3RhbENvbW1pdHMsXG4gICAgICAgIHRvdGFsUGF1c2VzOiBtZXRyaWNzLnRvdGFsUGF1c2VzLFxuICAgICAgICBzdGVwcyxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKiBDbGVhciBhbGwgc3RhdGUg4oCUIGNhbGxlZCBieSBleGVjdXRvciBiZWZvcmUgZWFjaCBydW4oKS4gKi9cbiAgb3ZlcnJpZGUgY2xlYXIoKTogdm9pZCB7XG4gICAgc3VwZXIuY2xlYXIoKTtcbiAgICB0aGlzLnN0YWdlU3RhcnRUaW1lcy5jbGVhcigpO1xuICAgIHRoaXMuY3VycmVudFJ1bnRpbWVTdGFnZUlkID0gJyc7XG4gIH1cblxuICAvKiogQWxpYXMgZm9yIGNsZWFyKCkgKGJhY2t3YXJkIGNvbXBhdCkuICovXG4gIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXIoKTtcbiAgfVxufVxuIl19
|
|
170
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWV0cmljUmVjb3JkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3Njb3BlL3JlY29yZGVycy9NZXRyaWNSZWNvcmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJHO0FBRUgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBb0RoRSxNQUFNLE9BQU8sY0FBZSxTQUFRLGFBQTBCO0lBQ3BELE1BQU0sQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO0lBRW5CLEVBQUUsQ0FBUztJQUNYLGtCQUFrQixDQUFvQjtJQUN2QyxlQUFlLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7SUFDNUMscUJBQXFCLEdBQUcsRUFBRSxDQUFDO0lBQzNCLFdBQVcsQ0FBa0M7SUFFckQsWUFBWSxXQUE0QztRQUN0RCxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksT0FBTyxXQUFXLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLEVBQUUsR0FBRyxXQUFXLENBQUM7WUFDdEIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFdBQVcsQ0FBQztRQUN4QyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxFQUFFLEdBQUcsV0FBVyxFQUFFLEVBQUUsSUFBSSxXQUFXLEVBQUUsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3BFLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxFQUFFLFdBQVcsQ0FBQztZQUM1QyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsV0FBVyxFQUFFLGtCQUFrQixJQUFJLFdBQVcsQ0FBQztRQUMzRSxDQUFDO0lBQ0gsQ0FBQztJQUVPLFlBQVksQ0FBQyxTQUFpQjtRQUNwQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCwyREFB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LElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7WUFDekMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUNyQixDQUFDO1FBQ0QsT0FBTztZQUNMLElBQUksRUFBRSxTQUFTO1lBQ2YsV0FBVyxFQUFFLDZEQUE2RDtZQUMxRSxrQkFBa0IsRUFBRSxJQUFJLENBQUMsa0JBQWtCO1lBQzNDLElBQUksRUFBRTtnQkFDSixZQUFZLEVBQUUsV0FBVztnQkFDekIsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVO2dCQUM5QixhQUFhLEVBQUUsT0FBTyxDQUFDLGFBQWE7Z0JBQ3BDLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVTtnQkFDOUIsV0FBVyxFQUFFLE9BQU8sQ0FBQyxXQUFXO2dCQUNoQyxZQUFZLEVBQUUsT0FBTyxDQUFDLFlBQVk7Z0JBQ2xDLFdBQVcsRUFBRSxPQUFPLENBQUMsV0FBVztnQkFDaEMsS0FBSzthQUNOO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCw4REFBOEQ7SUFDckQsS0FBSztRQUNaLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNkLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsMkNBQTJDO0lBQzNDLEtBQUs7UUFDSCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBNZXRyaWNSZWNvcmRlciDigJQgcGVyLXN0ZXAgdGltaW5nIGFuZCBleGVjdXRpb24gY291bnRzLCBrZXllZCBieSBydW50aW1lU3RhZ2VJZC5cbiAqXG4gKiBTdG9yZXMgcGVyLWludm9jYXRpb24gZGF0YSBkdXJpbmcgdHJhdmVyc2FsLiBBZ2dyZWdhdGVkIHZpZXdzIGNvbXB1dGVkIG9uIHJlYWQuXG4gKiBFeHRlbmRzIEtleWVkUmVjb3JkZXI8U3RlcE1ldHJpY3M+IGZvciBPKDEpIGxvb2t1cCBhbmQgc3RhbmRhcmQgb3BlcmF0aW9ucy5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgbWV0cmljID0gbmV3IE1ldHJpY1JlY29yZGVyKCk7XG4gKiBleGVjdXRvci5hdHRhY2hSZWNvcmRlcihtZXRyaWMpO1xuICogYXdhaXQgZXhlY3V0b3IucnVuKCk7XG4gKlxuICogLy8gUGVyLXN0ZXAgKHRpbWUtdHJhdmVsKTpcbiAqIG1ldHJpYy5nZXRCeUtleSgnY2FsbC1sbG0jNScpOyAgLy8geyBzdGFnZU5hbWUsIHJlYWRDb3VudCwgd3JpdGVDb3VudCwgZHVyYXRpb24gfVxuICpcbiAqIC8vIEFnZ3JlZ2F0ZWQgKGJhY2t3YXJkIGNvbXBhdCk6XG4gKiBtZXRyaWMuZ2V0TWV0cmljcygpOyAgLy8geyB0b3RhbER1cmF0aW9uLCB0b3RhbFJlYWRzLCBzdGFnZU1ldHJpY3M6IE1hcDxzdGFnZU5hbWUsIGFnZ3JlZ2F0ZWQ+IH1cbiAqXG4gKiAvLyBQcm9ncmVzc2l2ZSAoc2xpZGVyKTpcbiAqIG1ldHJpYy5hY2N1bXVsYXRlKChzdW0sIG0pID0+IHN1bSArIG0uZHVyYXRpb24sIDAsIHZpc2libGVLZXlzKTtcbiAqIGBgYFxuICovXG5cbmltcG9ydCB7IEtleWVkUmVjb3JkZXIgfSBmcm9tICcuLi8uLi9yZWNvcmRlci9LZXllZFJlY29yZGVyLmpzJztcbmltcG9ydCB0eXBlIHsgUmVjb3JkZXJPcGVyYXRpb24gfSBmcm9tICcuLi8uLi9yZWNvcmRlci9SZWNvcmRlck9wZXJhdGlvbi5qcyc7XG5pbXBvcnQgdHlwZSB7IENvbW1pdEV2ZW50LCBQYXVzZUV2ZW50LCBSZWFkRXZlbnQsIFJlY29yZGVyLCBTdGFnZUV2ZW50LCBXcml0ZUV2ZW50IH0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG4vKiogUGVyLWludm9jYXRpb24gbWV0cmljcyBmb3IgYSBzaW5nbGUgZXhlY3V0aW9uIHN0ZXAuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0ZXBNZXRyaWNzIHtcbiAgLyoqIEh1bWFuLXJlYWRhYmxlIHN0YWdlIG5hbWUuICovXG4gIHN0YWdlTmFtZTogc3RyaW5nO1xuICAvKiogTnVtYmVyIG9mIHNjb3BlIHJlYWRzIGR1cmluZyB0aGlzIGludm9jYXRpb24uICovXG4gIHJlYWRDb3VudDogbnVtYmVyO1xuICAvKiogTnVtYmVyIG9mIHNjb3BlIHdyaXRlcyBkdXJpbmcgdGhpcyBpbnZvY2F0aW9uLiAqL1xuICB3cml0ZUNvdW50OiBudW1iZXI7XG4gIC8qKiBOdW1iZXIgb2YgY29tbWl0cyBkdXJpbmcgdGhpcyBpbnZvY2F0aW9uLiAqL1xuICBjb21taXRDb3VudDogbnVtYmVyO1xuICAvKiogTnVtYmVyIG9mIHBhdXNlcyBkdXJpbmcgdGhpcyBpbnZvY2F0aW9uLiAqL1xuICBwYXVzZUNvdW50OiBudW1iZXI7XG4gIC8qKiBEdXJhdGlvbiBpbiBtcyBmb3IgdGhpcyBpbnZvY2F0aW9uLiAqL1xuICBkdXJhdGlvbjogbnVtYmVyO1xufVxuXG4vKiogQWdncmVnYXRlZCBtZXRyaWNzIGFjcm9zcyBhbGwgaW52b2NhdGlvbnMgKGJhY2t3YXJkIGNvbXBhdGlibGUpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBBZ2dyZWdhdGVkTWV0cmljcyB7XG4gIHRvdGFsRHVyYXRpb246IG51bWJlcjtcbiAgdG90YWxSZWFkczogbnVtYmVyO1xuICB0b3RhbFdyaXRlczogbnVtYmVyO1xuICB0b3RhbENvbW1pdHM6IG51bWJlcjtcbiAgdG90YWxQYXVzZXM6IG51bWJlcjtcbiAgLyoqIEFnZ3JlZ2F0ZWQgYnkgc3RhZ2VOYW1lIOKAlCBzdW1zIGFjcm9zcyBsb29wIGludm9jYXRpb25zLiAqL1xuICBzdGFnZU1ldHJpY3M6IE1hcDxzdHJpbmcsIFN0YWdlTWV0cmljcz47XG59XG5cbi8qKiBBZ2dyZWdhdGVkIHBlci1zdGFnZU5hbWUgKGJhY2t3YXJkIGNvbXBhdGlibGUgd2l0aCBwcmUtcnVudGltZVN0YWdlSWQgQVBJKS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RhZ2VNZXRyaWNzIHtcbiAgc3RhZ2VOYW1lOiBzdHJpbmc7XG4gIHJlYWRDb3VudDogbnVtYmVyO1xuICB3cml0ZUNvdW50OiBudW1iZXI7XG4gIGNvbW1pdENvdW50OiBudW1iZXI7XG4gIHBhdXNlQ291bnQ6IG51bWJlcjtcbiAgdG90YWxEdXJhdGlvbjogbnVtYmVyO1xuICBpbnZvY2F0aW9uQ291bnQ6IG51bWJlcjtcbn1cblxuLyoqIE9wdGlvbnMgZm9yIE1ldHJpY1JlY29yZGVyLiAqL1xuZXhwb3J0IGludGVyZmFjZSBNZXRyaWNSZWNvcmRlck9wdGlvbnMge1xuICAvKiogUmVjb3JkZXIgSUQuIERlZmF1bHRzIHRvIGF1dG8taW5jcmVtZW50IChgbWV0cmljcy0xYCwgYG1ldHJpY3MtMmAsIC4uLikuICovXG4gIGlkPzogc3RyaW5nO1xuICAvKiogRmlsdGVyIHdoaWNoIHN0YWdlcyBhcmUgcmVjb3JkZWQuIFJldHVybiBgdHJ1ZWAgdG8gcmVjb3JkLCBgZmFsc2VgIHRvIHNraXAuICovXG4gIHN0YWdlRmlsdGVyPzogKHN0YWdlTmFtZTogc3RyaW5nKSA9PiBib29sZWFuO1xuICAvKiogUHJlZmVycmVkIFVJIG9wZXJhdGlvbi4gRGVmYXVsdHMgdG8gJ2FnZ3JlZ2F0ZScgKGRhc2hib2FyZCB0b3RhbHMpLiAqL1xuICBwcmVmZXJyZWRPcGVyYXRpb24/OiBSZWNvcmRlck9wZXJhdGlvbjtcbn1cblxuZXhwb3J0IGNsYXNzIE1ldHJpY1JlY29yZGVyIGV4dGVuZHMgS2V5ZWRSZWNvcmRlcjxTdGVwTWV0cmljcz4gaW1wbGVtZW50cyBSZWNvcmRlciB7XG4gIHByaXZhdGUgc3RhdGljIF9jb3VudGVyID0gMDtcblxuICByZWFkb25seSBpZDogc3RyaW5nO1xuICByZWFkb25seSBwcmVmZXJyZWRPcGVyYXRpb246IFJlY29yZGVyT3BlcmF0aW9uO1xuICBwcml2YXRlIHN0YWdlU3RhcnRUaW1lcyA9IG5ldyBNYXA8c3RyaW5nLCBudW1iZXI+KCk7XG4gIHByaXZhdGUgY3VycmVudFJ1bnRpbWVTdGFnZUlkID0gJyc7XG4gIHByaXZhdGUgc3RhZ2VGaWx0ZXI/OiAoc3RhZ2VOYW1lOiBzdHJpbmcpID0+IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoaWRPck9wdGlvbnM/OiBzdHJpbmcgfCBNZXRyaWNSZWNvcmRlck9wdGlvbnMpIHtcbiAgICBzdXBlcigpO1xuICAgIGlmICh0eXBlb2YgaWRPck9wdGlvbnMgPT09ICdzdHJpbmcnKSB7XG4gICAgICB0aGlzLmlkID0gaWRPck9wdGlvbnM7XG4gICAgICB0aGlzLnByZWZlcnJlZE9wZXJhdGlvbiA9ICdhZ2dyZWdhdGUnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlkID0gaWRPck9wdGlvbnM/LmlkID8/IGBtZXRyaWNzLSR7KytNZXRyaWNSZWNvcmRlci5fY291bnRlcn1gO1xuICAgICAgdGhpcy5zdGFnZUZpbHRlciA9IGlkT3JPcHRpb25zPy5zdGFnZUZpbHRlcjtcbiAgICAgIHRoaXMucHJlZmVycmVkT3BlcmF0aW9uID0gaWRPck9wdGlvbnM/LnByZWZlcnJlZE9wZXJhdGlvbiA/PyAnYWdncmVnYXRlJztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNob3VsZFJlY29yZChzdGFnZU5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5zdGFnZUZpbHRlciB8fCB0aGlzLnN0YWdlRmlsdGVyKHN0YWdlTmFtZSk7XG4gIH1cblxuICAvKiogR2V0IG9yIGNyZWF0ZSB0aGUgU3RlcE1ldHJpY3MgZm9yIHRoZSBjdXJyZW50IHN0YWdlLiAqL1xuICBwcml2YXRlIGN1cnJlbnQoKTogU3RlcE1ldHJpY3Mge1xuICAgIGNvbnN0IGtleSA9IHRoaXMuY3VycmVudFJ1bnRpbWVTdGFnZUlkO1xuICAgIGxldCBtID0gdGhpcy5nZXRCeUtleShrZXkpO1xuICAgIGlmICghbSkge1xuICAgICAgbSA9IHsgc3RhZ2VOYW1lOiAnJywgcmVhZENvdW50OiAwLCB3cml0ZUNvdW50OiAwLCBjb21taXRDb3VudDogMCwgcGF1c2VDb3VudDogMCwgZHVyYXRpb246IDAgfTtcbiAgICAgIHRoaXMuc3RvcmUoa2V5LCBtKTtcbiAgICB9XG4gICAgcmV0dXJuIG07XG4gIH1cblxuICBvblN0YWdlU3RhcnQoZXZlbnQ6IFN0YWdlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2hvdWxkUmVjb3JkKGV2ZW50LnN0YWdlTmFtZSkpIHJldHVybjtcbiAgICB0aGlzLmN1cnJlbnRSdW50aW1lU3RhZ2VJZCA9IGV2ZW50LnJ1bnRpbWVTdGFnZUlkO1xuICAgIHRoaXMuc3RhZ2VTdGFydFRpbWVzLnNldChldmVudC5ydW50aW1lU3RhZ2VJZCwgZXZlbnQudGltZXN0YW1wKTtcbiAgICBjb25zdCBtID0gdGhpcy5jdXJyZW50KCk7XG4gICAgbS5zdGFnZU5hbWUgPSBldmVudC5zdGFnZU5hbWU7XG4gIH1cblxuICBvblJlYWQoZXZlbnQ6IFJlYWRFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zaG91bGRSZWNvcmQoZXZlbnQuc3RhZ2VOYW1lKSkgcmV0dXJuO1xuICAgIHRoaXMuY3VycmVudCgpLnJlYWRDb3VudCsrO1xuICB9XG5cbiAgb25Xcml0ZShldmVudDogV3JpdGVFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zaG91bGRSZWNvcmQoZXZlbnQuc3RhZ2VOYW1lKSkgcmV0dXJuO1xuICAgIHRoaXMuY3VycmVudCgpLndyaXRlQ291bnQrKztcbiAgfVxuXG4gIG9uQ29tbWl0KGV2ZW50OiBDb21taXRFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zaG91bGRSZWNvcmQoZXZlbnQuc3RhZ2VOYW1lKSkgcmV0dXJuO1xuICAgIHRoaXMuY3VycmVudCgpLmNvbW1pdENvdW50Kys7XG4gIH1cblxuICBvblBhdXNlKGV2ZW50OiBQYXVzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNob3VsZFJlY29yZChldmVudC5zdGFnZU5hbWUpKSByZXR1cm47XG4gICAgdGhpcy5jdXJyZW50KCkucGF1c2VDb3VudCsrO1xuICB9XG5cbiAgb25TdGFnZUVuZChldmVudDogU3RhZ2VFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zaG91bGRSZWNvcmQoZXZlbnQuc3RhZ2VOYW1lKSkgcmV0dXJuO1xuICAgIGNvbnN0IG0gPSB0aGlzLmN1cnJlbnQoKTtcbiAgICBpZiAoZXZlbnQuZHVyYXRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgbS5kdXJhdGlvbiA9IGV2ZW50LmR1cmF0aW9uO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBzdGFydFRpbWUgPSB0aGlzLnN0YWdlU3RhcnRUaW1lcy5nZXQoZXZlbnQucnVudGltZVN0YWdlSWQpO1xuICAgICAgbS5kdXJhdGlvbiA9IHN0YXJ0VGltZSAhPT0gdW5kZWZpbmVkID8gZXZlbnQudGltZXN0YW1wIC0gc3RhcnRUaW1lIDogMDtcbiAgICB9XG4gICAgdGhpcy5zdGFnZVN0YXJ0VGltZXMuZGVsZXRlKGV2ZW50LnJ1bnRpbWVTdGFnZUlkKTtcbiAgfVxuXG4gIC8qKiBBZ2dyZWdhdGVkIG1ldHJpY3Mg4oCUIGNvbXB1dGVzIHRvdGFscyBvbiB0aGUgZmx5IGZyb20gcGVyLXN0ZXAgZGF0YSAoYmFja3dhcmQgY29tcGF0aWJsZSkuICovXG4gIGdldE1ldHJpY3MoKTogQWdncmVnYXRlZE1ldHJpY3Mge1xuICAgIGNvbnN0IGJ5TmFtZSA9IG5ldyBNYXA8c3RyaW5nLCBTdGFnZU1ldHJpY3M+KCk7XG5cbiAgICBjb25zdCB0b3RhbER1cmF0aW9uID0gdGhpcy5hZ2dyZWdhdGUoKHN1bSwgbSkgPT4gc3VtICsgbS5kdXJhdGlvbiwgMCk7XG4gICAgY29uc3QgdG90YWxSZWFkcyA9IHRoaXMuYWdncmVnYXRlKChzdW0sIG0pID0+IHN1bSArIG0ucmVhZENvdW50LCAwKTtcbiAgICBjb25zdCB0b3RhbFdyaXRlcyA9IHRoaXMuYWdncmVnYXRlKChzdW0sIG0pID0+IHN1bSArIG0ud3JpdGVDb3VudCwgMCk7XG4gICAgY29uc3QgdG90YWxDb21taXRzID0gdGhpcy5hZ2dyZWdhdGUoKHN1bSwgbSkgPT4gc3VtICsgbS5jb21taXRDb3VudCwgMCk7XG4gICAgY29uc3QgdG90YWxQYXVzZXMgPSB0aGlzLmFnZ3JlZ2F0ZSgoc3VtLCBtKSA9PiBzdW0gKyBtLnBhdXNlQ291bnQsIDApO1xuXG4gICAgLy8gR3JvdXAgYnkgc3RhZ2VOYW1lIGZvciBiYWNrd2FyZCBjb21wYXRcbiAgICBmb3IgKGNvbnN0IG0gb2YgdGhpcy52YWx1ZXMoKSkge1xuICAgICAgY29uc3QgZXhpc3RpbmcgPSBieU5hbWUuZ2V0KG0uc3RhZ2VOYW1lKTtcbiAgICAgIGlmIChleGlzdGluZykge1xuICAgICAgICBleGlzdGluZy5yZWFkQ291bnQgKz0gbS5yZWFkQ291bnQ7XG4gICAgICAgIGV4aXN0aW5nLndyaXRlQ291bnQgKz0gbS53cml0ZUNvdW50O1xuICAgICAgICBleGlzdGluZy5jb21taXRDb3VudCArPSBtLmNvbW1pdENvdW50O1xuICAgICAgICBleGlzdGluZy5wYXVzZUNvdW50ICs9IG0ucGF1c2VDb3VudDtcbiAgICAgICAgZXhpc3RpbmcudG90YWxEdXJhdGlvbiArPSBtLmR1cmF0aW9uO1xuICAgICAgICBleGlzdGluZy5pbnZvY2F0aW9uQ291bnQrKztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGJ5TmFtZS5zZXQobS5zdGFnZU5hbWUsIHtcbiAgICAgICAgICBzdGFnZU5hbWU6IG0uc3RhZ2VOYW1lLFxuICAgICAgICAgIHJlYWRDb3VudDogbS5yZWFkQ291bnQsXG4gICAgICAgICAgd3JpdGVDb3VudDogbS53cml0ZUNvdW50LFxuICAgICAgICAgIGNvbW1pdENvdW50OiBtLmNvbW1pdENvdW50LFxuICAgICAgICAgIHBhdXNlQ291bnQ6IG0ucGF1c2VDb3VudCxcbiAgICAgICAgICB0b3RhbER1cmF0aW9uOiBtLmR1cmF0aW9uLFxuICAgICAgICAgIGludm9jYXRpb25Db3VudDogMSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgdG90YWxEdXJhdGlvbiwgdG90YWxSZWFkcywgdG90YWxXcml0ZXMsIHRvdGFsQ29tbWl0cywgdG90YWxQYXVzZXMsIHN0YWdlTWV0cmljczogYnlOYW1lIH07XG4gIH1cblxuICAvKiogR2V0IGFnZ3JlZ2F0ZWQgbWV0cmljcyBmb3IgYSBzcGVjaWZpYyBzdGFnZSBuYW1lIChiYWNrd2FyZCBjb21wYXRpYmxlKS4gKi9cbiAgZ2V0U3RhZ2VNZXRyaWNzKHN0YWdlTmFtZTogc3RyaW5nKTogU3RhZ2VNZXRyaWNzIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBtZXRyaWNzID0gdGhpcy5nZXRNZXRyaWNzKCk7XG4gICAgcmV0dXJuIG1ldHJpY3Muc3RhZ2VNZXRyaWNzLmdldChzdGFnZU5hbWUpO1xuICB9XG5cbiAgdG9TbmFwc2hvdCgpIHtcbiAgICBjb25zdCBtZXRyaWNzID0gdGhpcy5nZXRNZXRyaWNzKCk7XG4gICAgLy8gRXhwb3NlIHBlci1zdGVwIGRhdGEga2V5ZWQgYnkgcnVudGltZVN0YWdlSWQgKGZvciB0aW1lLXRyYXZlbCBVSSlcbiAgICAvLyBhbG9uZ3NpZGUgdGhlIGFnZ3JlZ2F0ZWQgdG90YWxzXG4gICAgY29uc3Qgc3RlcHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge307XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgdGhpcy5nZXRNYXAoKSkge1xuICAgICAgc3RlcHNba2V5XSA9IHZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogJ01ldHJpY3MnLFxuICAgICAgZGVzY3JpcHRpb246ICdBZ2dyZWdhdG9yIChLZXllZFJlY29yZGVyKSDigJQgcGVyLXN0ZXAgdGltaW5nIGFuZCBJL08gY291bnRzJyxcbiAgICAgIHByZWZlcnJlZE9wZXJhdGlvbjogdGhpcy5wcmVmZXJyZWRPcGVyYXRpb24sXG4gICAgICBkYXRhOiB7XG4gICAgICAgIG51bWVyaWNGaWVsZDogJ3JlYWRDb3VudCcsXG4gICAgICAgIGdyYW5kVG90YWw6IG1ldHJpY3MudG90YWxSZWFkcyxcbiAgICAgICAgdG90YWxEdXJhdGlvbjogbWV0cmljcy50b3RhbER1cmF0aW9uLFxuICAgICAgICB0b3RhbFJlYWRzOiBtZXRyaWNzLnRvdGFsUmVhZHMsXG4gICAgICAgIHRvdGFsV3JpdGVzOiBtZXRyaWNzLnRvdGFsV3JpdGVzLFxuICAgICAgICB0b3RhbENvbW1pdHM6IG1ldHJpY3MudG90YWxDb21taXRzLFxuICAgICAgICB0b3RhbFBhdXNlczogbWV0cmljcy50b3RhbFBhdXNlcyxcbiAgICAgICAgc3RlcHMsXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICAvKiogQ2xlYXIgYWxsIHN0YXRlIOKAlCBjYWxsZWQgYnkgZXhlY3V0b3IgYmVmb3JlIGVhY2ggcnVuKCkuICovXG4gIG92ZXJyaWRlIGNsZWFyKCk6IHZvaWQge1xuICAgIHN1cGVyLmNsZWFyKCk7XG4gICAgdGhpcy5zdGFnZVN0YXJ0VGltZXMuY2xlYXIoKTtcbiAgICB0aGlzLmN1cnJlbnRSdW50aW1lU3RhZ2VJZCA9ICcnO1xuICB9XG5cbiAgLyoqIEFsaWFzIGZvciBjbGVhcigpIChiYWNrd2FyZCBjb21wYXQpLiAqL1xuICByZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyKCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -4,11 +4,10 @@
|
|
|
4
4
|
import { attachScopeMethods } from '../../providers/baseStateCompatible.js';
|
|
5
5
|
import { createScopeProxyFromZod } from './scopeFactory.js';
|
|
6
6
|
export function defineScopeFromZod(schema, opts) {
|
|
7
|
-
|
|
8
|
-
const strict = (_a = opts === null || opts === void 0 ? void 0 : opts.strict) !== null && _a !== void 0 ? _a : 'warn';
|
|
7
|
+
const strict = opts?.strict ?? 'warn';
|
|
9
8
|
return (ctx, stageName, readOnly) => {
|
|
10
9
|
const proxy = createScopeProxyFromZod(ctx, schema, strict, readOnly);
|
|
11
10
|
return attachScopeMethods(proxy, ctx, stageName, readOnly);
|
|
12
11
|
};
|
|
13
12
|
}
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmaW5lU2NvcGVGcm9tWm9kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zY29wZS9zdGF0ZS96b2QvZGVmaW5lU2NvcGVGcm9tWm9kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBSUgsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFNUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFNNUQsTUFBTSxVQUFVLGtCQUFrQixDQUNoQyxNQUFTLEVBQ1QsSUFBeUI7SUFFekIsTUFBTSxNQUFNLEdBQUcsSUFBSSxFQUFFLE1BQU0sSUFBSSxNQUFNLENBQUM7SUFDdEMsT0FBTyxDQUFDLEdBQXFCLEVBQUUsU0FBaUIsRUFBRSxRQUFrQixFQUFFLEVBQUU7UUFDdEUsTUFBTSxLQUFLLEdBQUcsdUJBQXVCLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDckUsT0FBTyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM3RCxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBkZWZpbmVTY29wZUZyb21ab2Qg4oCUIEJ1aWxkIGEgU2NvcGVGYWN0b3J5IGZyb20gYSBab2Qgb2JqZWN0IHNjaGVtYVxuICovXG5cbmltcG9ydCB7IHogfSBmcm9tICd6b2QnO1xuXG5pbXBvcnQgeyBhdHRhY2hTY29wZU1ldGhvZHMgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvYmFzZVN0YXRlQ29tcGF0aWJsZS5qcyc7XG5pbXBvcnQgdHlwZSB7IFNjb3BlRmFjdG9yeSwgU3RhZ2VDb250ZXh0TGlrZSwgU3RyaWN0TW9kZSB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy90eXBlcy5qcyc7XG5pbXBvcnQgeyBjcmVhdGVTY29wZVByb3h5RnJvbVpvZCB9IGZyb20gJy4vc2NvcGVGYWN0b3J5LmpzJztcblxuZXhwb3J0IHR5cGUgRGVmaW5lU2NvcGVPcHRpb25zID0ge1xuICBzdHJpY3Q/OiBTdHJpY3RNb2RlO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGRlZmluZVNjb3BlRnJvbVpvZDxTIGV4dGVuZHMgei5ab2RPYmplY3Q8YW55Pj4oXG4gIHNjaGVtYTogUyxcbiAgb3B0cz86IERlZmluZVNjb3BlT3B0aW9ucyxcbik6IFNjb3BlRmFjdG9yeTxhbnk+IHtcbiAgY29uc3Qgc3RyaWN0ID0gb3B0cz8uc3RyaWN0ID8/ICd3YXJuJztcbiAgcmV0dXJuIChjdHg6IFN0YWdlQ29udGV4dExpa2UsIHN0YWdlTmFtZTogc3RyaW5nLCByZWFkT25seT86IHVua25vd24pID0+IHtcbiAgICBjb25zdCBwcm94eSA9IGNyZWF0ZVNjb3BlUHJveHlGcm9tWm9kKGN0eCwgc2NoZW1hLCBzdHJpY3QsIHJlYWRPbmx5KTtcbiAgICByZXR1cm4gYXR0YWNoU2NvcGVNZXRob2RzKHByb3h5LCBjdHgsIHN0YWdlTmFtZSwgcmVhZE9ubHkpO1xuICB9O1xufVxuIl19
|
|
@@ -19,10 +19,9 @@ export const ZodScopeResolver = {
|
|
|
19
19
|
return isScopeSchema(input);
|
|
20
20
|
},
|
|
21
21
|
makeProvider(input, options) {
|
|
22
|
-
var _a, _b;
|
|
23
22
|
const schema = input;
|
|
24
|
-
const strict =
|
|
23
|
+
const strict = options?.zod?.strict ?? 'warn';
|
|
25
24
|
return makeZodProvider(schema, strict);
|
|
26
25
|
},
|
|
27
26
|
};
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3Njb3BlL3N0YXRlL3pvZC9yZXNvbHZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUlILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRTVFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUU1RCxTQUFTLGVBQWUsQ0FBQyxNQUF3QixFQUFFLFNBQXFCLE1BQU07SUFDNUUsT0FBTztRQUNMLElBQUksRUFBRSxLQUFLO1FBQ1gsTUFBTSxFQUFFLENBQUMsR0FBcUIsRUFBRSxTQUFpQixFQUFFLEVBQVksRUFBRSxFQUFFO1lBQ2pFLE1BQU0sS0FBSyxHQUFHLHVCQUF1QixDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQy9ELE9BQU8sa0JBQWtCLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdkQsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQXFCO0lBQ2hELElBQUksRUFBRSxLQUFLO0lBQ1gsU0FBUyxDQUFDLEtBQWM7UUFDdEIsT0FBTyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUNELFlBQVksQ0FBQyxLQUFjLEVBQUUsT0FBMkM7UUFDdEUsTUFBTSxNQUFNLEdBQUcsS0FBb0MsQ0FBQztRQUNwRCxNQUFNLE1BQU0sR0FBRyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sSUFBSSxNQUFNLENBQUM7UUFDOUMsT0FBTyxlQUFlLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBab2RTY29wZVJlc29sdmVyIOKAlCBQcm92aWRlclJlc29sdmVyIGZvciBab2QtYnJhbmRlZCBzY29wZSBzY2hlbWFzXG4gKi9cblxuaW1wb3J0IHsgeiB9IGZyb20gJ3pvZCc7XG5cbmltcG9ydCB7IGF0dGFjaFNjb3BlTWV0aG9kcyB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9iYXNlU3RhdGVDb21wYXRpYmxlLmpzJztcbmltcG9ydCB0eXBlIHsgUHJvdmlkZXJSZXNvbHZlciwgU2NvcGVQcm92aWRlciwgU3RhZ2VDb250ZXh0TGlrZSwgU3RyaWN0TW9kZSB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy90eXBlcy5qcyc7XG5pbXBvcnQgeyBpc1Njb3BlU2NoZW1hIH0gZnJvbSAnLi9zY2hlbWEvYnVpbGRlci5qcyc7XG5pbXBvcnQgeyBjcmVhdGVTY29wZVByb3h5RnJvbVpvZCB9IGZyb20gJy4vc2NvcGVGYWN0b3J5LmpzJztcblxuZnVuY3Rpb24gbWFrZVpvZFByb3ZpZGVyKHNjaGVtYTogei5ab2RPYmplY3Q8YW55Piwgc3RyaWN0OiBTdHJpY3RNb2RlID0gJ3dhcm4nKTogU2NvcGVQcm92aWRlcjxhbnk+IHtcbiAgcmV0dXJuIHtcbiAgICBraW5kOiAnem9kJyxcbiAgICBjcmVhdGU6IChjdHg6IFN0YWdlQ29udGV4dExpa2UsIHN0YWdlTmFtZTogc3RyaW5nLCBybz86IHVua25vd24pID0+IHtcbiAgICAgIGNvbnN0IHByb3h5ID0gY3JlYXRlU2NvcGVQcm94eUZyb21ab2QoY3R4LCBzY2hlbWEsIHN0cmljdCwgcm8pO1xuICAgICAgcmV0dXJuIGF0dGFjaFNjb3BlTWV0aG9kcyhwcm94eSwgY3R4LCBzdGFnZU5hbWUsIHJvKTtcbiAgICB9LFxuICB9O1xufVxuXG5leHBvcnQgY29uc3QgWm9kU2NvcGVSZXNvbHZlcjogUHJvdmlkZXJSZXNvbHZlciA9IHtcbiAgbmFtZTogJ3pvZCcsXG4gIGNhbkhhbmRsZShpbnB1dDogdW5rbm93bik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1Njb3BlU2NoZW1hKGlucHV0KTtcbiAgfSxcbiAgbWFrZVByb3ZpZGVyKGlucHV0OiB1bmtub3duLCBvcHRpb25zPzogeyB6b2Q/OiB7IHN0cmljdD86IFN0cmljdE1vZGUgfSB9KTogU2NvcGVQcm92aWRlcjxhbnk+IHtcbiAgICBjb25zdCBzY2hlbWEgPSBpbnB1dCBhcyB1bmtub3duIGFzIHouWm9kT2JqZWN0PGFueT47XG4gICAgY29uc3Qgc3RyaWN0ID0gb3B0aW9ucz8uem9kPy5zdHJpY3QgPz8gJ3dhcm4nO1xuICAgIHJldHVybiBtYWtlWm9kUHJvdmlkZXIoc2NoZW1hLCBzdHJpY3QpO1xuICB9LFxufTtcbiJdfQ==
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
import { z } from 'zod';
|
|
5
5
|
import { getRecordValueType, isZodNode, parseWithThis, unwrap } from './utils/validateHelper.js';
|
|
6
6
|
function validateOnWrite(schema, value, ctx, strict = 'warn', tag) {
|
|
7
|
-
var _a, _b;
|
|
8
7
|
if (strict === 'off')
|
|
9
8
|
return true;
|
|
10
9
|
try {
|
|
@@ -12,20 +11,19 @@ function validateOnWrite(schema, value, ctx, strict = 'warn', tag) {
|
|
|
12
11
|
return true;
|
|
13
12
|
}
|
|
14
13
|
catch (err) {
|
|
15
|
-
const msg = `[schema] invalid value in ${tag
|
|
16
|
-
|
|
14
|
+
const msg = `[schema] invalid value in ${tag ?? 'set'}: ${err?.message ?? 'zod error'}`;
|
|
15
|
+
ctx?.addError?.('schema', msg);
|
|
17
16
|
if (strict === 'warn')
|
|
18
17
|
return false;
|
|
19
18
|
throw err;
|
|
20
19
|
}
|
|
21
20
|
}
|
|
22
21
|
function analyze(schema) {
|
|
23
|
-
|
|
24
|
-
const base = (_a = unwrap(schema)) !== null && _a !== void 0 ? _a : schema;
|
|
22
|
+
const base = unwrap(schema) ?? schema;
|
|
25
23
|
if (base instanceof z.ZodObject) {
|
|
26
24
|
const def = base._def;
|
|
27
|
-
const shapeOrFn = def
|
|
28
|
-
const shapeObj = typeof shapeOrFn === 'function' ? shapeOrFn() : shapeOrFn
|
|
25
|
+
const shapeOrFn = def?.shape;
|
|
26
|
+
const shapeObj = typeof shapeOrFn === 'function' ? shapeOrFn() : shapeOrFn ?? {};
|
|
29
27
|
const fields = {};
|
|
30
28
|
for (const [k, v] of Object.entries(shapeObj))
|
|
31
29
|
fields[k] = analyze(v);
|
|
@@ -33,12 +31,12 @@ function analyze(schema) {
|
|
|
33
31
|
}
|
|
34
32
|
if (base instanceof z.ZodRecord) {
|
|
35
33
|
const valueType = getRecordValueType(base);
|
|
36
|
-
return { kind: 'record', schema: base, value: analyze((valueType
|
|
34
|
+
return { kind: 'record', schema: base, value: analyze((valueType ?? z.any())) };
|
|
37
35
|
}
|
|
38
36
|
if (base instanceof z.ZodArray) {
|
|
39
37
|
const def = base._def;
|
|
40
|
-
const elemType = def
|
|
41
|
-
return { kind: 'array', schema: base, element: analyze((elemType
|
|
38
|
+
const elemType = def?.type;
|
|
39
|
+
return { kind: 'array', schema: base, element: analyze((elemType ?? z.any())) };
|
|
42
40
|
}
|
|
43
41
|
return { kind: 'scalar', schema: base };
|
|
44
42
|
}
|
|
@@ -53,18 +51,17 @@ function makeProxy(ctx, node, path, key, strict) {
|
|
|
53
51
|
set: (v) => {
|
|
54
52
|
if (!validateOnWrite(node.schema, v, ctx, strict, `set:${join(path, key)}`))
|
|
55
53
|
return;
|
|
56
|
-
ctx.setObject(path, key
|
|
54
|
+
ctx.setObject(path, key ?? '__', v);
|
|
57
55
|
},
|
|
58
56
|
};
|
|
59
57
|
case 'array': {
|
|
60
58
|
const base = makeProxy(ctx, { ...node, kind: 'scalar' }, path, key, strict);
|
|
61
59
|
base.push = (item) => {
|
|
62
|
-
|
|
63
|
-
const cur = (_a = readAt(ctx, path, key)) !== null && _a !== void 0 ? _a : [];
|
|
60
|
+
const cur = readAt(ctx, path, key) ?? [];
|
|
64
61
|
const next = [...cur, item];
|
|
65
62
|
if (!validateOnWrite(node.schema, next, ctx, strict, `push:${join(path, key)}`))
|
|
66
63
|
return;
|
|
67
|
-
ctx.setObject(path, key
|
|
64
|
+
ctx.setObject(path, key ?? '__', next);
|
|
68
65
|
};
|
|
69
66
|
return base;
|
|
70
67
|
}
|
|
@@ -73,22 +70,21 @@ function makeProxy(ctx, node, path, key, strict) {
|
|
|
73
70
|
const set = (v) => {
|
|
74
71
|
if (!validateOnWrite(node.schema, v, ctx, strict, `set:${join(path, key)}`))
|
|
75
72
|
return;
|
|
76
|
-
ctx.setObject(path, key
|
|
73
|
+
ctx.setObject(path, key ?? '__', v);
|
|
77
74
|
};
|
|
78
75
|
const merge = (p) => {
|
|
79
|
-
|
|
80
|
-
const cur = (_a = get()) !== null && _a !== void 0 ? _a : {};
|
|
76
|
+
const cur = get() ?? {};
|
|
81
77
|
const next = { ...cur, ...p };
|
|
82
78
|
if (!validateOnWrite(node.schema, next, ctx, strict, `merge:${join(path, key)}`))
|
|
83
79
|
return;
|
|
84
|
-
ctx.updateObject(path, key
|
|
80
|
+
ctx.updateObject(path, key ?? '__', p);
|
|
85
81
|
};
|
|
86
82
|
return {
|
|
87
83
|
at: (dynKey) => {
|
|
88
84
|
const parentPath = typeof key === 'string' ? [...path, key] : path;
|
|
89
85
|
return makeProxy(ctx, node.value, parentPath, dynKey, strict);
|
|
90
86
|
},
|
|
91
|
-
keys: () =>
|
|
87
|
+
keys: () => Object.keys(get() ?? {}),
|
|
92
88
|
get,
|
|
93
89
|
set,
|
|
94
90
|
merge,
|
|
@@ -153,4 +149,4 @@ export function createScopeProxyFromZod(ctx, schema, strict = 'warn', readOnly)
|
|
|
153
149
|
Object.defineProperty(proxy, 'ro', { value: readOnly, enumerable: false });
|
|
154
150
|
return proxy;
|
|
155
151
|
}
|
|
156
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NvcGVGYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zY29wZS9zdGF0ZS96b2Qvc2NvcGVGYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsT0FBTyxFQUFtQixDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFHekMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFakcsU0FBUyxlQUFlLENBQ3RCLE1BQWtCLEVBQ2xCLEtBQWMsRUFDZCxHQUFzQixFQUN0QixTQUFxQixNQUFNLEVBQzNCLEdBQVk7O0lBRVosSUFBSSxNQUFNLEtBQUssS0FBSztRQUFFLE9BQU8sSUFBSSxDQUFDO0lBQ2xDLElBQUksQ0FBQztRQUNILGFBQWEsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDN0IsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLE1BQU0sR0FBRyxHQUFHLDZCQUE2QixHQUFHLGFBQUgsR0FBRyxjQUFILEdBQUcsR0FBSSxLQUFLLEtBQUssTUFBQyxHQUFXLGFBQVgsR0FBRyx1QkFBSCxHQUFHLENBQVUsT0FBTyxtQ0FBSSxXQUFXLEVBQUUsQ0FBQztRQUNqRyxNQUFBLEdBQUcsYUFBSCxHQUFHLHVCQUFILEdBQUcsQ0FBRSxRQUFRLG9EQUFHLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMvQixJQUFJLE1BQU0sS0FBSyxNQUFNO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDcEMsTUFBTSxHQUFHLENBQUM7SUFDWixDQUFDO0FBQ0gsQ0FBQztBQVdELFNBQVMsT0FBTyxDQUFDLE1BQWtCOztJQUNqQyxNQUFNLElBQUksR0FBRyxNQUFBLE1BQU0sQ0FBQyxNQUFNLENBQUMsbUNBQUksTUFBTSxDQUFDO0lBRXRD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QUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFNjb3BlIFByb3h5IEZhY3Rvcnkg4oCUIEJ1aWxkIGxhenksIGNvcHktb24td3JpdGUgc2NvcGUgZnJvbSBhIFpvZCBvYmplY3Qgc2NoZW1hXG4gKi9cblxuaW1wb3J0IHsgdHlwZSBab2RUeXBlQW55LCB6IH0gZnJvbSAnem9kJztcblxuaW1wb3J0IHR5cGUgeyBTdGFnZUNvbnRleHRMaWtlLCBTdHJpY3RNb2RlIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL3R5cGVzLmpzJztcbmltcG9ydCB7IGdldFJlY29yZFZhbHVlVHlwZSwgaXNab2ROb2RlLCBwYXJzZVdpdGhUaGlzLCB1bndyYXAgfSBmcm9tICcuL3V0aWxzL3ZhbGlkYXRlSGVscGVyLmpzJztcblxuZnVuY3Rpb24gdmFsaWRhdGVPbldyaXRlKFxuICBzY2hlbWE6IFpvZFR5cGVBbnksXG4gIHZhbHVlOiB1bmtub3duLFxuICBjdHg/OiBTdGFnZUNvbnRleHRMaWtlLFxuICBzdHJpY3Q6IFN0cmljdE1vZGUgPSAnd2FybicsXG4gIHRhZz86IHN0cmluZyxcbik6IGJvb2xlYW4ge1xuICBpZiAoc3RyaWN0ID09PSAnb2ZmJykgcmV0dXJuIHRydWU7XG4gIHRyeSB7XG4gICAgcGFyc2VXaXRoVGhpcyhzY2hlbWEsIHZhbHVlKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgY29uc3QgbXNnID0gYFtzY2hlbWFdIGludmFsaWQgdmFsdWUgaW4gJHt0YWcgPz8gJ3NldCd9OiAkeyhlcnIgYXMgYW55KT8ubWVzc2FnZSA/PyAnem9kIGVycm9yJ31gO1xuICAgIGN0eD8uYWRkRXJyb3I/Lignc2NoZW1hJywgbXNnKTtcbiAgICBpZiAoc3RyaWN0ID09PSAnd2FybicpIHJldHVybiBmYWxzZTtcbiAgICB0aHJvdyBlcnI7XG4gIH1cbn1cblxudHlwZSBOb2RlS2luZCA9ICdvYmplY3QnIHwgJ3JlY29yZCcgfCAnYXJyYXknIHwgJ3NjYWxhcic7XG50eXBlIE5vZGUgPSB7XG4gIGtpbmQ6IE5vZGVLaW5kO1xuICBzY2hlbWE6IFpvZFR5cGVBbnk7XG4gIGZpZWxkcz86IFJlY29yZDxzdHJpbmcsIE5vZGU+O1xuICB2YWx1ZT86IE5vZGU7XG4gIGVsZW1lbnQ/OiBOb2RlO1xufTtcblxuZnVuY3Rpb24gYW5hbHl6ZShzY2hlbWE6IFpvZFR5cGVBbnkpOiBOb2RlIHtcbiAgY29uc3QgYmFzZSA9IHVud3JhcChzY2hlbWEpID8/IHNjaGVtYTtcblxuICBpZiAoYmFzZSBpbnN0YW5jZW9mIHouWm9kT2JqZWN0KSB7XG4gICAgY29uc3QgZGVmID0gKGJhc2UgYXMgYW55KS5fZGVmO1xuICAgIGNvbnN0IHNoYXBlT3JGbiA9IGRlZj8uc2hhcGU7XG4gICAgY29uc3Qgc2hhcGVPYmo6IFJlY29yZDxzdHJpbmcsIFpvZFR5cGVBbnk+ID0gdHlwZW9mIHNoYXBlT3JGbiA9PT0gJ2Z1bmN0aW9uJyA/IHNoYXBlT3JGbigpIDogc2hhcGVPckZuID8/IHt9O1xuICAgIGNvbnN0IGZpZWxkczogUmVjb3JkPHN0cmluZywgTm9kZT4gPSB7fTtcbiAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyhzaGFwZU9iaikpIGZpZWxkc1trXSA9IGFuYWx5emUodiBhcyBab2RUeXBlQW55KTtcbiAgICByZXR1cm4geyBraW5kOiAnb2JqZWN0Jywgc2NoZW1hOiBiYXNlLCBmaWVsZHMgfTtcbiAgfVxuXG4gIGlmIChiYXNlIGluc3RhbmNlb2Ygei5ab2RSZWNvcmQpIHtcbiAgICBjb25zdCB2YWx1ZVR5cGUgPSBnZXRSZWNvcmRWYWx1ZVR5cGUoYmFzZSk7XG4gICAgcmV0dXJuIHsga2luZDogJ3JlY29yZCcsIHNjaGVtYTogYmFzZSwgdmFsdWU6IGFuYWx5emUoKHZhbHVlVHlwZSA/PyB6LmFueSgpKSBhcyBab2RUeXBlQW55KSB9O1xuICB9XG5cbiAgaWYgKGJhc2UgaW5zdGFuY2VvZiB6LlpvZEFycmF5KSB7XG4gICAgY29uc3QgZGVmID0gKGJhc2UgYXMgYW55KS5fZGVmO1xuICAgIGNvbnN0IGVsZW1UeXBlID0gZGVmPy50eXBlIGFzIFpvZFR5cGVBbnk7XG4gICAgcmV0dXJuIHsga2luZDogJ2FycmF5Jywgc2NoZW1hOiBiYXNlLCBlbGVtZW50OiBhbmFseXplKChlbGVtVHlwZSA/PyB6LmFueSgpKSBhcyBab2RUeXBlQW55KSB9O1xuICB9XG5cbiAgcmV0dXJuIHsga2luZDogJ3NjYWxhcicsIHNjaGVtYTogYmFzZSB9O1xufVxuXG5jb25zdCBqb2luID0gKHBhdGg6IHN0cmluZ1tdLCBrZXk/OiBzdHJpbmcpID0+IChrZXkgPyBbLi4ucGF0aCwga2V5XS5qb2luKCcuJykgOiBwYXRoLmpvaW4oJy4nKSk7XG5jb25zdCByZWFkQXQgPSA8VD4oY3R4OiBTdGFnZUNvbnRleHRMaWtlLCBwYXRoOiBzdHJpbmdbXSwga2V5Pzogc3RyaW5nKSA9PiBjdHguZ2V0VmFsdWUocGF0aCwga2V5KSBhcyBUIHwgdW5kZWZpbmVkO1xuXG5mdW5jdGlvbiBtYWtlUHJveHkoXG4gIGN0eDogU3RhZ2VDb250ZXh0TGlrZSxcbiAgbm9kZTogTm9kZSxcbiAgcGF0aDogc3RyaW5nW10sXG4gIGtleTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICBzdHJpY3Q6IFN0cmljdE1vZGUsXG4pOiBhbnkge1xuICBzd2l0Y2ggKG5vZGUua2luZCkge1xuICAgIGNhc2UgJ3NjYWxhcic6XG4gICAgICByZXR1cm4ge1xuICAgICAgICBnZXQ6ICgpID0+IHJlYWRBdChjdHgsIHBhdGgsIGtleSksXG4gICAgICAgIGV4aXN0czogKCkgPT4gdHlwZW9mIHJlYWRBdChjdHgsIHBhdGgsIGtleSkgIT09ICd1bmRlZmluZWQnLFxuICAgICAgICBzZXQ6ICh2OiB1bmtub3duKSA9PiB7XG4gICAgICAgICAgaWYgKCF2YWxpZGF0ZU9uV3JpdGUobm9kZS5zY2hlbWEsIHYsIGN0eCwgc3RyaWN0LCBgc2V0OiR7am9pbihwYXRoLCBrZXkpfWApKSByZXR1cm47XG4gICAgICAgICAgY3R4LnNldE9iamVjdChwYXRoLCBrZXkgPz8gJ19fJywgdik7XG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgY2FzZSAnYXJyYXknOiB7XG4gICAgICBjb25zdCBiYXNlID0gbWFrZVByb3h5KGN0eCwgeyAuLi5ub2RlLCBraW5kOiAnc2NhbGFyJyB9LCBwYXRoLCBrZXksIHN0cmljdCk7XG4gICAgICBiYXNlLnB1c2ggPSAoaXRlbTogdW5rbm93bikgPT4ge1xuICAgICAgICBjb25zdCBjdXIgPSByZWFkQXQ8YW55W10+KGN0eCwgcGF0aCwga2V5KSA/PyBbXTtcbiAgICAgICAgY29uc3QgbmV4dCA9IFsuLi5jdXIsIGl0ZW1dO1xuICAgICAgICBpZiAoIXZhbGlkYXRlT25Xcml0ZShub2RlLnNjaGVtYSwgbmV4dCwgY3R4LCBzdHJpY3QsIGBwdXNoOiR7am9pbihwYXRoLCBrZXkpfWApKSByZXR1cm47XG4gICAgICAgIGN0eC5zZXRPYmplY3QocGF0aCwga2V5ID8/ICdfXycsIG5leHQpO1xuICAgICAgfTtcbiAgICAgIHJldHVybiBiYXNlO1xuICAgIH1cblxuICAgIGNhc2UgJ3JlY29yZCc6IHtcbiAgICAgIGNvbnN0IGdldCA9ICgpID0+IHJlYWRBdDxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oY3R4LCBwYXRoLCBrZXkpO1xuICAgICAgY29uc3Qgc2V0ID0gKHY6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiB7XG4gICAgICAgIGlmICghdmFsaWRhdGVPbldyaXRlKG5vZGUuc2NoZW1hLCB2LCBjdHgsIHN0cmljdCwgYHNldDoke2pvaW4ocGF0aCwga2V5KX1gKSkgcmV0dXJuO1xuICAgICAgICBjdHguc2V0T2JqZWN0KHBhdGgsIGtleSA/PyAnX18nLCB2KTtcbiAgICAgIH07XG4gICAgICBjb25zdCBtZXJnZSA9IChwOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPT4ge1xuICAgICAgICBjb25zdCBjdXIgPSBnZXQoKSA/PyB7fTtcbiAgICAgICAgY29uc3QgbmV4dCA9IHsgLi4uY3VyLCAuLi5wIH07XG4gICAgICAgIGlmICghdmFsaWRhdGVPbldyaXRlKG5vZGUuc2NoZW1hLCBuZXh0LCBjdHgsIHN0cmljdCwgYG1lcmdlOiR7am9pbihwYXRoLCBrZXkpfWApKSByZXR1cm47XG4gICAgICAgIGN0eC51cGRhdGVPYmplY3QocGF0aCwga2V5ID8/ICdfXycsIHApO1xuICAgICAgfTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGF0OiAoZHluS2V5OiBzdHJpbmcpID0+IHtcbiAgICAgICAgICBjb25zdCBwYXJlbnRQYXRoID0gdHlwZW9mIGtleSA9PT0gJ3N0cmluZycgPyBbLi4ucGF0aCwga2V5XSA6IHBhdGg7XG4gICAgICAgICAgcmV0dXJuIG1ha2VQcm94eShjdHgsIG5vZGUudmFsdWUhLCBwYXJlbnRQYXRoLCBkeW5LZXksIHN0cmljdCk7XG4gICAgICAgIH0sXG4gICAgICAgIGtleXM6ICgpID0+IE9iamVjdC5rZXlzKGdldCgpID8/IHt9KSxcbiAgICAgICAgZ2V0LFxuICAgICAgICBzZXQsXG4gICAgICAgIG1lcmdlLFxuICAgICAgICBleGlzdHM6ICgpID0+IHR5cGVvZiBnZXQoKSAhPT0gJ3VuZGVmaW5lZCcsXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNhc2UgJ29iamVjdCc6IHtcbiAgICAgIGNvbnN0IGNhY2hlID0gbmV3IE1hcDxzdHJpbmcsIGFueT4oKTtcbiAgICAgIHJldHVybiBuZXcgUHJveHkoXG4gICAgICAgIHt9LFxuICAgICAgICB7XG4gICAgICAgICAgZ2V0KHRhcmdldCwgcHJvcDogc3RyaW5nIHwgc3ltYm9sKSB7XG4gICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRhcmdldCwgcHJvcCkpIHJldHVybiBSZWZsZWN0LmdldCh0YXJnZXQgYXMgYW55LCBwcm9wIGFzIGFueSk7XG5cbiAgICAgICAgICAgIGlmIChwcm9wID09PSAndGhlbicpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBpZiAocHJvcCA9PT0gJ2FzeW1tZXRyaWNNYXRjaCcpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBpZiAocHJvcCA9PT0gJ2NvbnN0cnVjdG9yJykgcmV0dXJuIE9iamVjdDtcbiAgICAgICAgICAgIGlmIChwcm9wID09PSBTeW1ib2wudG9TdHJpbmdUYWcpIHJldHVybiAnU2NvcGVQcm94eSc7XG5cbiAgICAgICAgICAgIGlmIChwcm9wID09PSAnZ2V0JykgcmV0dXJuICgpID0+IHJlYWRBdChjdHgsIHBhdGgsIGtleSk7XG4gICAgICAgICAgICBpZiAocHJvcCA9PT0gJ2V4aXN0cycpXG4gICAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGlyZWN0ID0gcmVhZEF0KGN0eCwgcGF0aCwga2V5KTtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGRpcmVjdCAhPT0gJ3VuZGVmaW5lZCcpIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIGlmIChub2RlLmZpZWxkcykge1xuICAgICAgICAgICAgICAgICAgY29uc3QgcGFyZW50UGF0aCA9IHR5cGVvZiBrZXkgPT09ICdzdHJpbmcnID8gWy4uLnBhdGgsIGtleV0gOiBwYXRoO1xuICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBjaGlsZEtleSBvZiBPYmplY3Qua2V5cyhub2RlLmZpZWxkcykpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiByZWFkQXQoY3R4LCBwYXJlbnRQYXRoLCBjaGlsZEtleSkgIT09ICd1bmRlZmluZWQnKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKHByb3AgPT09ICd0b0pTT04nKSByZXR1cm4gKCkgPT4gcmVhZEF0KGN0eCwgcGF0aCwga2V5KTtcblxuICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wICE9PSAnc3RyaW5nJykgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGlmICghbm9kZS5maWVsZHMgfHwgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChub2RlLmZpZWxkcywgcHJvcCkpIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGZpZWxkICcke1N0cmluZyhwcm9wKX0nIHVuZGVyICR7am9pbihwYXRoLCBrZXkpIHx8ICc8cm9vdD4nfSBgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjYWNoZS5oYXMocHJvcCkpIHJldHVybiBjYWNoZS5nZXQocHJvcCk7XG5cbiAgICAgICAgICAgIGNvbnN0IGNoaWxkID0gbm9kZS5maWVsZHNbcHJvcF0hO1xuICAgICAgICAgICAgY29uc3QgcGFyZW50UGF0aCA9IHR5cGVvZiBrZXkgPT09ICdzdHJpbmcnID8gWy4uLnBhdGgsIGtleV0gOiBwYXRoO1xuICAgICAgICAgICAgY29uc3QgY2hpbGRQcm94eSA9IG1ha2VQcm94eShjdHgsIGNoaWxkLCBwYXJlbnRQYXRoLCBwcm9wLCBzdHJpY3QpO1xuICAgICAgICAgICAgY2FjaGUuc2V0KHByb3AsIGNoaWxkUHJveHkpO1xuICAgICAgICAgICAgcmV0dXJuIGNoaWxkUHJveHk7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG5cbi8qKiBCdWlsZCBsYXp5LCBjb3B5LW9uLXdyaXRlIHNjb3BlIGZyb20gYSBab2Qgb2JqZWN0IHNjaGVtYSAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNjb3BlUHJveHlGcm9tWm9kPFMgZXh0ZW5kcyB6LlpvZE9iamVjdDxhbnk+PihcbiAgY3R4OiBTdGFnZUNvbnRleHRMaWtlLFxuICBzY2hlbWE6IFMsXG4gIHN0cmljdDogU3RyaWN0TW9kZSA9ICd3YXJuJyxcbiAgcmVhZE9ubHk/OiB1bmtub3duLFxuKTogei5pbmZlcjxTPiAmIHsgcm8/OiB1bmtub3duIH0ge1xuICBpZiAoIWlzWm9kTm9kZShzY2hlbWEpKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdjcmVhdGVTY29wZVByb3h5RnJvbVpvZDogZXhwZWN0ZWQgYSBab2Qgb2JqZWN0IHNjaGVtYScpO1xuICBjb25zdCByb290ID0gYW5hbHl6ZShzY2hlbWEgYXMgdW5rbm93biBhcyBab2RUeXBlQW55KTtcbiAgY29uc3QgcHJveHkgPSBtYWtlUHJveHkoY3R4LCByb290LCBbXSwgdW5kZWZpbmVkLCBzdHJpY3QpO1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJveHksICdybycsIHsgdmFsdWU6IHJlYWRPbmx5LCBlbnVtZXJhYmxlOiBmYWxzZSB9KTtcbiAgcmV0dXJuIHByb3h5O1xufVxuIl19
|
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NvcGVGYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zY29wZS9zdGF0ZS96b2Qvc2NvcGVGYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsT0FBTyxFQUFtQixDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFHekMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFakcsU0FBUyxlQUFlLENBQ3RCLE1BQWtCLEVBQ2xCLEtBQWMsRUFDZCxHQUFzQixFQUN0QixTQUFxQixNQUFNLEVBQzNCLEdBQVk7SUFFWixJQUFJLE1BQU0sS0FBSyxLQUFLO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDbEMsSUFBSSxDQUFDO1FBQ0gsYUFBYSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM3QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2IsTUFBTSxHQUFHLEdBQUcsNkJBQTZCLEdBQUcsSUFBSSxLQUFLLEtBQU0sR0FBVyxFQUFFLE9BQU8sSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNqRyxHQUFHLEVBQUUsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQy9CLElBQUksTUFBTSxLQUFLLE1BQU07WUFBRSxPQUFPLEtBQUssQ0FBQztRQUNwQyxNQUFNLEdBQUcsQ0FBQztJQUNaLENBQUM7QUFDSCxDQUFDO0FBV0QsU0FBUyxPQUFPLENBQUMsTUFBa0I7SUFDakMsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU0sQ0FBQztJQUV0QyxJQUFJLElBQUksWUFBWSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDaEMsTUFBTSxHQUFHLEdBQUksSUFBWSxDQUFDLElBQUks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QUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO29CQUNuRSxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztvQkFDNUIsT0FBTyxVQUFVLENBQUM7Z0JBQ3BCLENBQUM7YUFDRixDQUNGLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUM7QUFFRCwrREFBK0Q7QUFDL0QsTUFBTSxVQUFVLHVCQUF1QixDQUNyQyxHQUFxQixFQUNyQixNQUFTLEVBQ1QsU0FBcUIsTUFBTSxFQUMzQixRQUFrQjtJQUVsQixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztRQUFFLE1BQU0sSUFBSSxTQUFTLENBQUMsdURBQXVELENBQUMsQ0FBQztJQUNyRyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsTUFBK0IsQ0FBQyxDQUFDO0lBQ3RELE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDMUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUMzRSxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFNjb3BlIFByb3h5IEZhY3Rvcnkg4oCUIEJ1aWxkIGxhenksIGNvcHktb24td3JpdGUgc2NvcGUgZnJvbSBhIFpvZCBvYmplY3Qgc2NoZW1hXG4gKi9cblxuaW1wb3J0IHsgdHlwZSBab2RUeXBlQW55LCB6IH0gZnJvbSAnem9kJztcblxuaW1wb3J0IHR5cGUgeyBTdGFnZUNvbnRleHRMaWtlLCBTdHJpY3RNb2RlIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL3R5cGVzLmpzJztcbmltcG9ydCB7IGdldFJlY29yZFZhbHVlVHlwZSwgaXNab2ROb2RlLCBwYXJzZVdpdGhUaGlzLCB1bndyYXAgfSBmcm9tICcuL3V0aWxzL3ZhbGlkYXRlSGVscGVyLmpzJztcblxuZnVuY3Rpb24gdmFsaWRhdGVPbldyaXRlKFxuICBzY2hlbWE6IFpvZFR5cGVBbnksXG4gIHZhbHVlOiB1bmtub3duLFxuICBjdHg/OiBTdGFnZUNvbnRleHRMaWtlLFxuICBzdHJpY3Q6IFN0cmljdE1vZGUgPSAnd2FybicsXG4gIHRhZz86IHN0cmluZyxcbik6IGJvb2xlYW4ge1xuICBpZiAoc3RyaWN0ID09PSAnb2ZmJykgcmV0dXJuIHRydWU7XG4gIHRyeSB7XG4gICAgcGFyc2VXaXRoVGhpcyhzY2hlbWEsIHZhbHVlKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgY29uc3QgbXNnID0gYFtzY2hlbWFdIGludmFsaWQgdmFsdWUgaW4gJHt0YWcgPz8gJ3NldCd9OiAkeyhlcnIgYXMgYW55KT8ubWVzc2FnZSA/PyAnem9kIGVycm9yJ31gO1xuICAgIGN0eD8uYWRkRXJyb3I/Lignc2NoZW1hJywgbXNnKTtcbiAgICBpZiAoc3RyaWN0ID09PSAnd2FybicpIHJldHVybiBmYWxzZTtcbiAgICB0aHJvdyBlcnI7XG4gIH1cbn1cblxudHlwZSBOb2RlS2luZCA9ICdvYmplY3QnIHwgJ3JlY29yZCcgfCAnYXJyYXknIHwgJ3NjYWxhcic7XG50eXBlIE5vZGUgPSB7XG4gIGtpbmQ6IE5vZGVLaW5kO1xuICBzY2hlbWE6IFpvZFR5cGVBbnk7XG4gIGZpZWxkcz86IFJlY29yZDxzdHJpbmcsIE5vZGU+O1xuICB2YWx1ZT86IE5vZGU7XG4gIGVsZW1lbnQ/OiBOb2RlO1xufTtcblxuZnVuY3Rpb24gYW5hbHl6ZShzY2hlbWE6IFpvZFR5cGVBbnkpOiBOb2RlIHtcbiAgY29uc3QgYmFzZSA9IHVud3JhcChzY2hlbWEpID8/IHNjaGVtYTtcblxuICBpZiAoYmFzZSBpbnN0YW5jZW9mIHouWm9kT2JqZWN0KSB7XG4gICAgY29uc3QgZGVmID0gKGJhc2UgYXMgYW55KS5fZGVmO1xuICAgIGNvbnN0IHNoYXBlT3JGbiA9IGRlZj8uc2hhcGU7XG4gICAgY29uc3Qgc2hhcGVPYmo6IFJlY29yZDxzdHJpbmcsIFpvZFR5cGVBbnk+ID0gdHlwZW9mIHNoYXBlT3JGbiA9PT0gJ2Z1bmN0aW9uJyA/IHNoYXBlT3JGbigpIDogc2hhcGVPckZuID8/IHt9O1xuICAgIGNvbnN0IGZpZWxkczogUmVjb3JkPHN0cmluZywgTm9kZT4gPSB7fTtcbiAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyhzaGFwZU9iaikpIGZpZWxkc1trXSA9IGFuYWx5emUodiBhcyBab2RUeXBlQW55KTtcbiAgICByZXR1cm4geyBraW5kOiAnb2JqZWN0Jywgc2NoZW1hOiBiYXNlLCBmaWVsZHMgfTtcbiAgfVxuXG4gIGlmIChiYXNlIGluc3RhbmNlb2Ygei5ab2RSZWNvcmQpIHtcbiAgICBjb25zdCB2YWx1ZVR5cGUgPSBnZXRSZWNvcmRWYWx1ZVR5cGUoYmFzZSk7XG4gICAgcmV0dXJuIHsga2luZDogJ3JlY29yZCcsIHNjaGVtYTogYmFzZSwgdmFsdWU6IGFuYWx5emUoKHZhbHVlVHlwZSA/PyB6LmFueSgpKSBhcyBab2RUeXBlQW55KSB9O1xuICB9XG5cbiAgaWYgKGJhc2UgaW5zdGFuY2VvZiB6LlpvZEFycmF5KSB7XG4gICAgY29uc3QgZGVmID0gKGJhc2UgYXMgYW55KS5fZGVmO1xuICAgIGNvbnN0IGVsZW1UeXBlID0gZGVmPy50eXBlIGFzIFpvZFR5cGVBbnk7XG4gICAgcmV0dXJuIHsga2luZDogJ2FycmF5Jywgc2NoZW1hOiBiYXNlLCBlbGVtZW50OiBhbmFseXplKChlbGVtVHlwZSA/PyB6LmFueSgpKSBhcyBab2RUeXBlQW55KSB9O1xuICB9XG5cbiAgcmV0dXJuIHsga2luZDogJ3NjYWxhcicsIHNjaGVtYTogYmFzZSB9O1xufVxuXG5jb25zdCBqb2luID0gKHBhdGg6IHN0cmluZ1tdLCBrZXk/OiBzdHJpbmcpID0+IChrZXkgPyBbLi4ucGF0aCwga2V5XS5qb2luKCcuJykgOiBwYXRoLmpvaW4oJy4nKSk7XG5jb25zdCByZWFkQXQgPSA8VD4oY3R4OiBTdGFnZUNvbnRleHRMaWtlLCBwYXRoOiBzdHJpbmdbXSwga2V5Pzogc3RyaW5nKSA9PiBjdHguZ2V0VmFsdWUocGF0aCwga2V5KSBhcyBUIHwgdW5kZWZpbmVkO1xuXG5mdW5jdGlvbiBtYWtlUHJveHkoXG4gIGN0eDogU3RhZ2VDb250ZXh0TGlrZSxcbiAgbm9kZTogTm9kZSxcbiAgcGF0aDogc3RyaW5nW10sXG4gIGtleTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICBzdHJpY3Q6IFN0cmljdE1vZGUsXG4pOiBhbnkge1xuICBzd2l0Y2ggKG5vZGUua2luZCkge1xuICAgIGNhc2UgJ3NjYWxhcic6XG4gICAgICByZXR1cm4ge1xuICAgICAgICBnZXQ6ICgpID0+IHJlYWRBdChjdHgsIHBhdGgsIGtleSksXG4gICAgICAgIGV4aXN0czogKCkgPT4gdHlwZW9mIHJlYWRBdChjdHgsIHBhdGgsIGtleSkgIT09ICd1bmRlZmluZWQnLFxuICAgICAgICBzZXQ6ICh2OiB1bmtub3duKSA9PiB7XG4gICAgICAgICAgaWYgKCF2YWxpZGF0ZU9uV3JpdGUobm9kZS5zY2hlbWEsIHYsIGN0eCwgc3RyaWN0LCBgc2V0OiR7am9pbihwYXRoLCBrZXkpfWApKSByZXR1cm47XG4gICAgICAgICAgY3R4LnNldE9iamVjdChwYXRoLCBrZXkgPz8gJ19fJywgdik7XG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgY2FzZSAnYXJyYXknOiB7XG4gICAgICBjb25zdCBiYXNlID0gbWFrZVByb3h5KGN0eCwgeyAuLi5ub2RlLCBraW5kOiAnc2NhbGFyJyB9LCBwYXRoLCBrZXksIHN0cmljdCk7XG4gICAgICBiYXNlLnB1c2ggPSAoaXRlbTogdW5rbm93bikgPT4ge1xuICAgICAgICBjb25zdCBjdXIgPSByZWFkQXQ8YW55W10+KGN0eCwgcGF0aCwga2V5KSA/PyBbXTtcbiAgICAgICAgY29uc3QgbmV4dCA9IFsuLi5jdXIsIGl0ZW1dO1xuICAgICAgICBpZiAoIXZhbGlkYXRlT25Xcml0ZShub2RlLnNjaGVtYSwgbmV4dCwgY3R4LCBzdHJpY3QsIGBwdXNoOiR7am9pbihwYXRoLCBrZXkpfWApKSByZXR1cm47XG4gICAgICAgIGN0eC5zZXRPYmplY3QocGF0aCwga2V5ID8/ICdfXycsIG5leHQpO1xuICAgICAgfTtcbiAgICAgIHJldHVybiBiYXNlO1xuICAgIH1cblxuICAgIGNhc2UgJ3JlY29yZCc6IHtcbiAgICAgIGNvbnN0IGdldCA9ICgpID0+IHJlYWRBdDxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oY3R4LCBwYXRoLCBrZXkpO1xuICAgICAgY29uc3Qgc2V0ID0gKHY6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiB7XG4gICAgICAgIGlmICghdmFsaWRhdGVPbldyaXRlKG5vZGUuc2NoZW1hLCB2LCBjdHgsIHN0cmljdCwgYHNldDoke2pvaW4ocGF0aCwga2V5KX1gKSkgcmV0dXJuO1xuICAgICAgICBjdHguc2V0T2JqZWN0KHBhdGgsIGtleSA/PyAnX18nLCB2KTtcbiAgICAgIH07XG4gICAgICBjb25zdCBtZXJnZSA9IChwOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPT4ge1xuICAgICAgICBjb25zdCBjdXIgPSBnZXQoKSA/PyB7fTtcbiAgICAgICAgY29uc3QgbmV4dCA9IHsgLi4uY3VyLCAuLi5wIH07XG4gICAgICAgIGlmICghdmFsaWRhdGVPbldyaXRlKG5vZGUuc2NoZW1hLCBuZXh0LCBjdHgsIHN0cmljdCwgYG1lcmdlOiR7am9pbihwYXRoLCBrZXkpfWApKSByZXR1cm47XG4gICAgICAgIGN0eC51cGRhdGVPYmplY3QocGF0aCwga2V5ID8/ICdfXycsIHApO1xuICAgICAgfTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGF0OiAoZHluS2V5OiBzdHJpbmcpID0+IHtcbiAgICAgICAgICBjb25zdCBwYXJlbnRQYXRoID0gdHlwZW9mIGtleSA9PT0gJ3N0cmluZycgPyBbLi4ucGF0aCwga2V5XSA6IHBhdGg7XG4gICAgICAgICAgcmV0dXJuIG1ha2VQcm94eShjdHgsIG5vZGUudmFsdWUhLCBwYXJlbnRQYXRoLCBkeW5LZXksIHN0cmljdCk7XG4gICAgICAgIH0sXG4gICAgICAgIGtleXM6ICgpID0+IE9iamVjdC5rZXlzKGdldCgpID8/IHt9KSxcbiAgICAgICAgZ2V0LFxuICAgICAgICBzZXQsXG4gICAgICAgIG1lcmdlLFxuICAgICAgICBleGlzdHM6ICgpID0+IHR5cGVvZiBnZXQoKSAhPT0gJ3VuZGVmaW5lZCcsXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNhc2UgJ29iamVjdCc6IHtcbiAgICAgIGNvbnN0IGNhY2hlID0gbmV3IE1hcDxzdHJpbmcsIGFueT4oKTtcbiAgICAgIHJldHVybiBuZXcgUHJveHkoXG4gICAgICAgIHt9LFxuICAgICAgICB7XG4gICAgICAgICAgZ2V0KHRhcmdldCwgcHJvcDogc3RyaW5nIHwgc3ltYm9sKSB7XG4gICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRhcmdldCwgcHJvcCkpIHJldHVybiBSZWZsZWN0LmdldCh0YXJnZXQgYXMgYW55LCBwcm9wIGFzIGFueSk7XG5cbiAgICAgICAgICAgIGlmIChwcm9wID09PSAndGhlbicpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBpZiAocHJvcCA9PT0gJ2FzeW1tZXRyaWNNYXRjaCcpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBpZiAocHJvcCA9PT0gJ2NvbnN0cnVjdG9yJykgcmV0dXJuIE9iamVjdDtcbiAgICAgICAgICAgIGlmIChwcm9wID09PSBTeW1ib2wudG9TdHJpbmdUYWcpIHJldHVybiAnU2NvcGVQcm94eSc7XG5cbiAgICAgICAgICAgIGlmIChwcm9wID09PSAnZ2V0JykgcmV0dXJuICgpID0+IHJlYWRBdChjdHgsIHBhdGgsIGtleSk7XG4gICAgICAgICAgICBpZiAocHJvcCA9PT0gJ2V4aXN0cycpXG4gICAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGlyZWN0ID0gcmVhZEF0KGN0eCwgcGF0aCwga2V5KTtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGRpcmVjdCAhPT0gJ3VuZGVmaW5lZCcpIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIGlmIChub2RlLmZpZWxkcykge1xuICAgICAgICAgICAgICAgICAgY29uc3QgcGFyZW50UGF0aCA9IHR5cGVvZiBrZXkgPT09ICdzdHJpbmcnID8gWy4uLnBhdGgsIGtleV0gOiBwYXRoO1xuICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBjaGlsZEtleSBvZiBPYmplY3Qua2V5cyhub2RlLmZpZWxkcykpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiByZWFkQXQoY3R4LCBwYXJlbnRQYXRoLCBjaGlsZEtleSkgIT09ICd1bmRlZmluZWQnKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKHByb3AgPT09ICd0b0pTT04nKSByZXR1cm4gKCkgPT4gcmVhZEF0KGN0eCwgcGF0aCwga2V5KTtcblxuICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wICE9PSAnc3RyaW5nJykgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGlmICghbm9kZS5maWVsZHMgfHwgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChub2RlLmZpZWxkcywgcHJvcCkpIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGZpZWxkICcke1N0cmluZyhwcm9wKX0nIHVuZGVyICR7am9pbihwYXRoLCBrZXkpIHx8ICc8cm9vdD4nfSBgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjYWNoZS5oYXMocHJvcCkpIHJldHVybiBjYWNoZS5nZXQocHJvcCk7XG5cbiAgICAgICAgICAgIGNvbnN0IGNoaWxkID0gbm9kZS5maWVsZHNbcHJvcF0hO1xuICAgICAgICAgICAgY29uc3QgcGFyZW50UGF0aCA9IHR5cGVvZiBrZXkgPT09ICdzdHJpbmcnID8gWy4uLnBhdGgsIGtleV0gOiBwYXRoO1xuICAgICAgICAgICAgY29uc3QgY2hpbGRQcm94eSA9IG1ha2VQcm94eShjdHgsIGNoaWxkLCBwYXJlbnRQYXRoLCBwcm9wLCBzdHJpY3QpO1xuICAgICAgICAgICAgY2FjaGUuc2V0KHByb3AsIGNoaWxkUHJveHkpO1xuICAgICAgICAgICAgcmV0dXJuIGNoaWxkUHJveHk7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG5cbi8qKiBCdWlsZCBsYXp5LCBjb3B5LW9uLXdyaXRlIHNjb3BlIGZyb20gYSBab2Qgb2JqZWN0IHNjaGVtYSAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNjb3BlUHJveHlGcm9tWm9kPFMgZXh0ZW5kcyB6LlpvZE9iamVjdDxhbnk+PihcbiAgY3R4OiBTdGFnZUNvbnRleHRMaWtlLFxuICBzY2hlbWE6IFMsXG4gIHN0cmljdDogU3RyaWN0TW9kZSA9ICd3YXJuJyxcbiAgcmVhZE9ubHk/OiB1bmtub3duLFxuKTogei5pbmZlcjxTPiAmIHsgcm8/OiB1bmtub3duIH0ge1xuICBpZiAoIWlzWm9kTm9kZShzY2hlbWEpKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdjcmVhdGVTY29wZVByb3h5RnJvbVpvZDogZXhwZWN0ZWQgYSBab2Qgb2JqZWN0IHNjaGVtYScpO1xuICBjb25zdCByb290ID0gYW5hbHl6ZShzY2hlbWEgYXMgdW5rbm93biBhcyBab2RUeXBlQW55KTtcbiAgY29uc3QgcHJveHkgPSBtYWtlUHJveHkoY3R4LCByb290LCBbXSwgdW5kZWZpbmVkLCBzdHJpY3QpO1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJveHksICdybycsIHsgdmFsdWU6IHJlYWRPbmx5LCBlbnVtZXJhYmxlOiBmYWxzZSB9KTtcbiAgcmV0dXJuIHByb3h5O1xufVxuIl19
|
|
@@ -9,12 +9,38 @@ import { detectSchema } from '../../../../schema/detect.js';
|
|
|
9
9
|
export function isZodNode(x) {
|
|
10
10
|
return detectSchema(x) !== 'none';
|
|
11
11
|
}
|
|
12
|
-
/** Peel wrappers; returns the underlying base Zod node (or null).
|
|
12
|
+
/** Peel wrappers; returns the underlying base Zod node (or null).
|
|
13
|
+
*
|
|
14
|
+
* Wrapper-aware: only descends through fields that are KNOWN to hold
|
|
15
|
+
* the inner schema for wrapper Zod types (Optional, Default, Nullable,
|
|
16
|
+
* Effects/Pipeline). Notably, `_def.type` is treated as the inner
|
|
17
|
+
* schema ONLY for v3 Effects/Pipeline — it is NOT the inner schema
|
|
18
|
+
* for ZodArray (where `_def.type` holds the ELEMENT schema, which is
|
|
19
|
+
* a separate concern from wrapper unwrapping).
|
|
20
|
+
*
|
|
21
|
+
* Without this gate, `unwrap(z.array(z.string()))` would incorrectly
|
|
22
|
+
* follow `_def.type` and return `ZodString`, breaking array detection
|
|
23
|
+
* in `scopeFactory.analyze()`.
|
|
24
|
+
*/
|
|
13
25
|
export function unwrap(schema) {
|
|
14
|
-
|
|
15
|
-
let s = schema !== null && schema !== void 0 ? schema : null;
|
|
26
|
+
let s = schema ?? null;
|
|
16
27
|
while (isZodNode(s)) {
|
|
17
|
-
const def = (
|
|
28
|
+
const def = (s._def ?? {});
|
|
29
|
+
const tn = def.typeName;
|
|
30
|
+
// Only known wrapper typeNames descend. ZodArray / ZodObject /
|
|
31
|
+
// ZodRecord / ZodUnion etc. break out so the caller can branch
|
|
32
|
+
// on the base instance check.
|
|
33
|
+
const isWrapper = tn === 'ZodOptional' ||
|
|
34
|
+
tn === 'ZodDefault' ||
|
|
35
|
+
tn === 'ZodNullable' ||
|
|
36
|
+
tn === 'ZodReadonly' ||
|
|
37
|
+
tn === 'ZodBranded' ||
|
|
38
|
+
tn === 'ZodCatch' ||
|
|
39
|
+
tn === 'ZodEffects' ||
|
|
40
|
+
tn === 'ZodPipeline' ||
|
|
41
|
+
tn === 'ZodLazy';
|
|
42
|
+
if (!isWrapper)
|
|
43
|
+
break;
|
|
18
44
|
if (isZodNode(def.innerType)) {
|
|
19
45
|
s = def.innerType;
|
|
20
46
|
continue;
|
|
@@ -23,29 +49,46 @@ export function unwrap(schema) {
|
|
|
23
49
|
s = def.schema;
|
|
24
50
|
continue;
|
|
25
51
|
}
|
|
26
|
-
|
|
27
|
-
|
|
52
|
+
// Pipeline (`in` / `out`) — descend into `in` (input side).
|
|
53
|
+
if (isZodNode(def.in)) {
|
|
54
|
+
s = def.in;
|
|
28
55
|
continue;
|
|
29
56
|
}
|
|
57
|
+
// Lazy holds a getter under `getter`. Last-resort fallback.
|
|
58
|
+
if (typeof def.getter === 'function') {
|
|
59
|
+
try {
|
|
60
|
+
const inner = def.getter();
|
|
61
|
+
if (isZodNode(inner)) {
|
|
62
|
+
s = inner;
|
|
63
|
+
continue;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
/* fall through */
|
|
68
|
+
}
|
|
69
|
+
}
|
|
30
70
|
break;
|
|
31
71
|
}
|
|
32
72
|
return isZodNode(s) ? s : null;
|
|
33
73
|
}
|
|
34
74
|
/** Version-tolerant access to ZodRecord value schema. */
|
|
35
75
|
export function getRecordValueType(rec) {
|
|
36
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
37
76
|
const r = rec;
|
|
38
|
-
const def =
|
|
39
|
-
return (
|
|
77
|
+
const def = r._def ?? {};
|
|
78
|
+
return (r.valueSchema ??
|
|
79
|
+
r.valueType ??
|
|
80
|
+
def.valueType ??
|
|
81
|
+
def.value ??
|
|
82
|
+
(def.schema && (def.schema.valueType ?? def.schema.value)) ??
|
|
83
|
+
(def.innerType && (def.innerType.valueType ?? def.innerType.value)) ??
|
|
84
|
+
null);
|
|
40
85
|
}
|
|
41
86
|
function looksLikeBindingError(err) {
|
|
42
|
-
|
|
43
|
-
const msg = (_a = err === null || err === void 0 ? void 0 : err.message) !== null && _a !== void 0 ? _a : '';
|
|
87
|
+
const msg = err?.message ?? '';
|
|
44
88
|
return msg.includes('_zod') || msg.includes('inst._zod') || msg.includes('Cannot read properties of undefined');
|
|
45
89
|
}
|
|
46
90
|
const WRAPPER_CACHE = new WeakMap();
|
|
47
91
|
export function parseWithThis(schema, value) {
|
|
48
|
-
var _a;
|
|
49
92
|
const anySchema = schema;
|
|
50
93
|
if (typeof anySchema.safeParse === 'function') {
|
|
51
94
|
try {
|
|
@@ -92,6 +135,6 @@ export function parseWithThis(schema, value) {
|
|
|
92
135
|
const res = wrapper.safeParse(value);
|
|
93
136
|
if (res && res.success)
|
|
94
137
|
return res.data;
|
|
95
|
-
throw
|
|
138
|
+
throw res?.error ?? new TypeError('Zod validation binding failed (wrapper fallback).');
|
|
96
139
|
}
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGVIZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3Njb3BlL3N0YXRlL3pvZC91dGlscy92YWxpZGF0ZUhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFtQyxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRTVELCtDQUErQztBQUMvQyxNQUFNLFVBQVUsU0FBUyxDQUFDLENBQVU7SUFDbEMsT0FBTyxZQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUssTUFBTSxDQUFDO0FBQ3BDLENBQUM7QUFFRCxxRUFBcUU7QUFDckUsTUFBTSxVQUFVLE1BQU0sQ0FBQyxNQUFxQzs7SUFDMUQsSUFBSSxDQUFDLEdBQVksTUFBTSxhQUFOLE1BQU0sY0FBTixNQUFNLEdBQUksSUFBSSxDQUFDO0lBQ2hDLE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDcEIsTUFBTSxHQUFHLEdBQUcsTUFBQyxDQUFTLENBQUMsSUFBSSxtQ0FBSSxFQUFFLENBQUM7UUFDbEMsSUFBSSxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDN0IsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUM7WUFDbEIsU0FBUztRQUNYLENBQUM7UUFDRCxJQUFJLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUMxQixDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztZQUNmLFNBQVM7UUFDWCxDQUFDO1FBQ0QsSUFBSSxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDeEIsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7WUFDYixTQUFTO1FBQ1gsQ0FBQztRQUNELE1BQU07SUFDUixD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QUksQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUM7Z0JBQUUsTUFBTSxHQUFHLENBQUM7UUFDN0MsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLE9BQU8sU0FBUyxDQUFDLEtBQUssS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUMxQyxJQUFJLENBQUM7WUFDSCxPQUFPLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsQ0FBQztRQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDO2dCQUFFLE1BQU0sR0FBRyxDQUFDO1FBQzdDLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxPQUFPLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDYixPQUFPLEdBQUksQ0FBQyxDQUFDLEdBQUcsRUFBVSxDQUFDLElBQUksQ0FBQyxNQUFhLENBQUMsQ0FBQztRQUMvQyxhQUFhLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxPQUFRLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBQ0QsTUFBTSxHQUFHLEdBQUksT0FBZSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QyxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsT0FBTztRQUFFLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQztJQUV4QyxNQUFNLE1BQUEsR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLEtBQUssbUNBQUksSUFBSSxTQUFTLENBQUMsbURBQW1ELENBQUMsQ0FBQztBQUN6RixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBab2QgVmFsaWRhdGlvbiBIZWxwZXJzIOKAlCBDcm9zcy12ZXJzaW9uIGNvbXBhdGlibGUgWm9kIHV0aWxpdGllc1xuICpcbiAqIERldGVjdGlvbiBkZWxlZ2F0ZWQgdG8gc2NoZW1hL2RldGVjdC50cyAoc2luZ2xlIHNvdXJjZSBvZiB0cnV0aCkuXG4gKi9cblxuaW1wb3J0IHsgdHlwZSBab2RSZWNvcmQsIHR5cGUgWm9kVHlwZUFueSwgeiB9IGZyb20gJ3pvZCc7XG5cbmltcG9ydCB7IGRldGVjdFNjaGVtYSB9IGZyb20gJy4uLy4uLy4uLy4uL3NjaGVtYS9kZXRlY3QuanMnO1xuXG4vKiogQ2hlY2sgaWYgdGhlIHZhbHVlIGlzIGEgWm9kIHNjaGVtYSBub2RlLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzWm9kTm9kZSh4OiB1bmtub3duKTogeCBpcyBab2RUeXBlQW55IHtcbiAgcmV0dXJuIGRldGVjdFNjaGVtYSh4KSAhPT0gJ25vbmUnO1xufVxuXG4vKiogUGVlbCB3cmFwcGVyczsgcmV0dXJucyB0aGUgdW5kZXJseWluZyBiYXNlIFpvZCBub2RlIChvciBudWxsKS4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1bndyYXAoc2NoZW1hOiBab2RUeXBlQW55IHwgbnVsbCB8IHVuZGVmaW5lZCk6IFpvZFR5cGVBbnkgfCBudWxsIHtcbiAgbGV0IHM6IHVua25vd24gPSBzY2hlbWEgPz8gbnVsbDtcbiAgd2hpbGUgKGlzWm9kTm9kZShzKSkge1xuICAgIGNvbnN0IGRlZiA9IChzIGFzIGFueSkuX2RlZiA/PyB7fTtcbiAgICBpZiAoaXNab2ROb2RlKGRlZi5pbm5lclR5cGUpKSB7XG4gICAgICBzID0gZGVmLmlubmVyVHlwZTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAoaXNab2ROb2RlKGRlZi5zY2hlbWEpKSB7XG4gICAgICBzID0gZGVmLnNjaGVtYTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAoaXNab2ROb2RlKGRlZi50eXBlKSkge1xuICAgICAgcyA9IGRlZi50eXBlO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGJyZWFrO1xuICB9XG4gIHJldHVybiBpc1pvZE5vZGUocykgPyAocyBhcyBab2RUeXBlQW55KSA6IG51bGw7XG59XG5cbi8qKiBWZXJzaW9uLXRvbGVyYW50IGFjY2VzcyB0byBab2RSZWNvcmQgdmFsdWUgc2NoZW1hLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJlY29yZFZhbHVlVHlwZShyZWM6IFpvZFJlY29yZDxhbnksIGFueT4pOiBab2RUeXBlQW55IHwgbnVsbCB7XG4gIGNvbnN0IHI6IGFueSA9IHJlYyBhcyBhbnk7XG4gIGNvbnN0IGRlZiA9IHIuX2RlZiA/PyB7fTtcbiAgcmV0dXJuIChcbiAgICByLnZhbHVlU2NoZW1hID8/XG4gICAgci52YWx1ZVR5cGUgPz9cbiAgICBkZWYudmFsdWVUeXBlID8/XG4gICAgZGVmLnZhbHVlID8/XG4gICAgKGRlZi5zY2hlbWEgJiYgKGRlZi5zY2hlbWEudmFsdWVUeXBlID8/IGRlZi5zY2hlbWEudmFsdWUpKSA/P1xuICAgIChkZWYuaW5uZXJUeXBlICYmIChkZWYuaW5uZXJUeXBlLnZhbHVlVHlwZSA/PyBkZWYuaW5uZXJUeXBlLnZhbHVlKSkgPz9cbiAgICBudWxsXG4gICk7XG59XG5cbmZ1bmN0aW9uIGxvb2tzTGlrZUJpbmRpbmdFcnJvcihlcnI6IHVua25vd24pOiBib29sZWFuIHtcbiAgY29uc3QgbXNnID0gKGVyciBhcyBhbnkpPy5tZXNzYWdlID8/ICcnO1xuICByZXR1cm4gbXNnLmluY2x1ZGVzKCdfem9kJykgfHwgbXNnLmluY2x1ZGVzKCdpbnN0Ll96b2QnKSB8fCBtc2cuaW5jbHVkZXMoJ0Nhbm5vdCByZWFkIHByb3BlcnRpZXMgb2YgdW5kZWZpbmVkJyk7XG59XG5cbmNvbnN0IFdSQVBQRVJfQ0FDSEUgPSBuZXcgV2Vha01hcDxab2RUeXBlQW55LCBab2RUeXBlQW55PigpO1xuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VXaXRoVGhpcyhzY2hlbWE6IFpvZFR5cGVBbnksIHZhbHVlOiB1bmtub3duKTogdW5rbm93biB7XG4gIGNvbnN0IGFueVNjaGVtYSA9IHNjaGVtYSBhcyBhbnk7XG5cbiAgaWYgKHR5cGVvZiBhbnlTY2hlbWEuc2FmZVBhcnNlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlcyA9IGFueVNjaGVtYS5zYWZlUGFyc2UodmFsdWUpO1xuICAgICAgaWYgKHJlcyAmJiB0eXBlb2YgcmVzID09PSAnb2JqZWN0JyAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocmVzLCAnc3VjY2VzcycpKSB7XG4gICAgICAgIGlmIChyZXMuc3VjY2VzcykgcmV0dXJuIHJlcy5kYXRhO1xuICAgICAgICB0aHJvdyByZXMuZXJyb3I7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBpZiAoIWxvb2tzTGlrZUJpbmRpbmdFcnJvcihlcnIpKSB0aHJvdyBlcnI7XG4gICAgfVxuICB9XG5cbiAgaWYgKHR5cGVvZiBhbnlTY2hlbWEuc2FmZVBhcnNlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlcyA9IGFueVNjaGVtYS5zYWZlUGFyc2UuY2FsbChzY2hlbWEsIHZhbHVlKTtcbiAgICAgIGlmIChyZXMgJiYgdHlwZW9mIHJlcyA9PT0gJ29iamVjdCcgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHJlcywgJ3N1Y2Nlc3MnKSkge1xuICAgICAgICBpZiAocmVzLnN1Y2Nlc3MpIHJldHVybiByZXMuZGF0YTtcbiAgICAgICAgdGhyb3cgcmVzLmVycm9yO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgaWYgKCFsb29rc0xpa2VCaW5kaW5nRXJyb3IoZXJyKSkgdGhyb3cgZXJyO1xuICAgIH1cbiAgfVxuXG4gIGlmICh0eXBlb2YgYW55U2NoZW1hLnBhcnNlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhbnlTY2hlbWEucGFyc2UodmFsdWUpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgaWYgKCFsb29rc0xpa2VCaW5kaW5nRXJyb3IoZXJyKSkgdGhyb3cgZXJyO1xuICAgIH1cbiAgfVxuXG4gIGxldCB3cmFwcGVyID0gV1JBUFBFUl9DQUNIRS5nZXQoc2NoZW1hKTtcbiAgaWYgKCF3cmFwcGVyKSB7XG4gICAgd3JhcHBlciA9ICh6LmFueSgpIGFzIGFueSkucGlwZShzY2hlbWEgYXMgYW55KTtcbiAgICBXUkFQUEVSX0NBQ0hFLnNldChzY2hlbWEsIHdyYXBwZXIhKTtcbiAgfVxuICBjb25zdCByZXMgPSAod3JhcHBlciBhcyBhbnkpLnNhZmVQYXJzZSh2YWx1ZSk7XG4gIGlmIChyZXMgJiYgcmVzLnN1Y2Nlc3MpIHJldHVybiByZXMuZGF0YTtcblxuICB0aHJvdyByZXM/LmVycm9yID8/IG5ldyBUeXBlRXJyb3IoJ1pvZCB2YWxpZGF0aW9uIGJpbmRpbmcgZmFpbGVkICh3cmFwcGVyIGZhbGxiYWNrKS4nKTtcbn1cbiJdfQ==
|
|
140
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGVIZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3Njb3BlL3N0YXRlL3pvZC91dGlscy92YWxpZGF0ZUhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFtQyxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRTVELCtDQUErQztBQUMvQyxNQUFNLFVBQVUsU0FBUyxDQUFDLENBQVU7SUFDbEMsT0FBTyxZQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUssTUFBTSxDQUFDO0FBQ3BDLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxNQUFNLFVBQVUsTUFBTSxDQUFDLE1BQXFDO0lBQzFELElBQUksQ0FBQyxHQUFZLE1BQU0sSUFBSSxJQUFJLENBQUM7SUFDaEMsT0FBTyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNwQixNQUFNLEdBQUcsR0FBRyxDQUFFLENBQVMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUE0QixDQUFDO1FBQy9ELE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxRQUE4QixDQUFDO1FBQzlDLCtEQUErRDtRQUMvRCwrREFBK0Q7UUFDL0QsOEJBQThCO1FBQzlCLE1BQU0sU0FBUyxHQUNiLEVBQUUsS0FBSyxhQUFhO1lBQ3BCLEVBQUUsS0FBSyxZQUFZO1lBQ25CLEVBQUUsS0FBSyxhQUFhO1lBQ3BCLEVBQUUsS0FBSyxhQUFhO1lBQ3BCLEVBQUUsS0FBSyxZQUFZO1lBQ25CLEVBQUUsS0FBSyxVQUFVO1lBQ2pCLEVBQUUsS0FBSyxZQUFZO1lBQ25CLEVBQUUsS0FBSyxhQUFhO1lBQ3BCLEVBQUUsS0FBSyxTQUFTLENBQUM7UUFDbkIsSUFBSSxDQUFDLFNBQVM7WUFBRSxNQUFNO1FBQ3RCLElBQUksU0FBUyxDQUFDLEdB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QztRQUNiLE9BQU8sR0FBSSxDQUFDLENBQUMsR0FBRyxFQUFVLENBQUMsSUFBSSxDQUFDLE1BQWEsQ0FBQyxDQUFDO1FBQy9DLGFBQWEsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLE9BQVEsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFDRCxNQUFNLEdBQUcsR0FBSSxPQUFlLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlDLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxPQUFPO1FBQUUsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDO0lBRXhDLE1BQU0sR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLFNBQVMsQ0FBQyxtREFBbUQsQ0FBQyxDQUFDO0FBQ3pGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFpvZCBWYWxpZGF0aW9uIEhlbHBlcnMg4oCUIENyb3NzLXZlcnNpb24gY29tcGF0aWJsZSBab2QgdXRpbGl0aWVzXG4gKlxuICogRGV0ZWN0aW9uIGRlbGVnYXRlZCB0byBzY2hlbWEvZGV0ZWN0LnRzIChzaW5nbGUgc291cmNlIG9mIHRydXRoKS5cbiAqL1xuXG5pbXBvcnQgeyB0eXBlIFpvZFJlY29yZCwgdHlwZSBab2RUeXBlQW55LCB6IH0gZnJvbSAnem9kJztcblxuaW1wb3J0IHsgZGV0ZWN0U2NoZW1hIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2NoZW1hL2RldGVjdC5qcyc7XG5cbi8qKiBDaGVjayBpZiB0aGUgdmFsdWUgaXMgYSBab2Qgc2NoZW1hIG5vZGUuICovXG5leHBvcnQgZnVuY3Rpb24gaXNab2ROb2RlKHg6IHVua25vd24pOiB4IGlzIFpvZFR5cGVBbnkge1xuICByZXR1cm4gZGV0ZWN0U2NoZW1hKHgpICE9PSAnbm9uZSc7XG59XG5cbi8qKiBQZWVsIHdyYXBwZXJzOyByZXR1cm5zIHRoZSB1bmRlcmx5aW5nIGJhc2UgWm9kIG5vZGUgKG9yIG51bGwpLlxuICpcbiAqICBXcmFwcGVyLWF3YXJlOiBvbmx5IGRlc2NlbmRzIHRocm91Z2ggZmllbGRzIHRoYXQgYXJlIEtOT1dOIHRvIGhvbGRcbiAqICB0aGUgaW5uZXIgc2NoZW1hIGZvciB3cmFwcGVyIFpvZCB0eXBlcyAoT3B0aW9uYWwsIERlZmF1bHQsIE51bGxhYmxlLFxuICogIEVmZmVjdHMvUGlwZWxpbmUpLiBOb3RhYmx5LCBgX2RlZi50eXBlYCBpcyB0cmVhdGVkIGFzIHRoZSBpbm5lclxuICogIHNjaGVtYSBPTkxZIGZvciB2MyBFZmZlY3RzL1BpcGVsaW5lIOKAlCBpdCBpcyBOT1QgdGhlIGlubmVyIHNjaGVtYVxuICogIGZvciBab2RBcnJheSAod2hlcmUgYF9kZWYudHlwZWAgaG9sZHMgdGhlIEVMRU1FTlQgc2NoZW1hLCB3aGljaCBpc1xuICogIGEgc2VwYXJhdGUgY29uY2VybiBmcm9tIHdyYXBwZXIgdW53cmFwcGluZykuXG4gKlxuICogIFdpdGhvdXQgdGhpcyBnYXRlLCBgdW53cmFwKHouYXJyYXkoei5zdHJpbmcoKSkpYCB3b3VsZCBpbmNvcnJlY3RseVxuICogIGZvbGxvdyBgX2RlZi50eXBlYCBhbmQgcmV0dXJuIGBab2RTdHJpbmdgLCBicmVha2luZyBhcnJheSBkZXRlY3Rpb25cbiAqICBpbiBgc2NvcGVGYWN0b3J5LmFuYWx5emUoKWAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1bndyYXAoc2NoZW1hOiBab2RUeXBlQW55IHwgbnVsbCB8IHVuZGVmaW5lZCk6IFpvZFR5cGVBbnkgfCBudWxsIHtcbiAgbGV0IHM6IHVua25vd24gPSBzY2hlbWEgPz8gbnVsbDtcbiAgd2hpbGUgKGlzWm9kTm9kZShzKSkge1xuICAgIGNvbnN0IGRlZiA9ICgocyBhcyBhbnkpLl9kZWYgPz8ge30pIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgIGNvbnN0IHRuID0gZGVmLnR5cGVOYW1lIGFzIHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvLyBPbmx5IGtub3duIHdyYXBwZXIgdHlwZU5hbWVzIGRlc2NlbmQuIFpvZEFycmF5IC8gWm9kT2JqZWN0IC9cbiAgICAvLyBab2RSZWNvcmQgLyBab2RVbmlvbiBldGMuIGJyZWFrIG91dCBzbyB0aGUgY2FsbGVyIGNhbiBicmFuY2hcbiAgICAvLyBvbiB0aGUgYmFzZSBpbnN0YW5jZSBjaGVjay5cbiAgICBjb25zdCBpc1dyYXBwZXIgPVxuICAgICAgdG4gPT09ICdab2RPcHRpb25hbCcgfHxcbiAgICAgIHRuID09PSAnWm9kRGVmYXVsdCcgfHxcbiAgICAgIHRuID09PSAnWm9kTnVsbGFibGUnIHx8XG4gICAgICB0biA9PT0gJ1pvZFJlYWRvbmx5JyB8fFxuICAgICAgdG4gPT09ICdab2RCcmFuZGVkJyB8fFxuICAgICAgdG4gPT09ICdab2RDYXRjaCcgfHxcbiAgICAgIHRuID09PSAnWm9kRWZmZWN0cycgfHxcbiAgICAgIHRuID09PSAnWm9kUGlwZWxpbmUnIHx8XG4gICAgICB0biA9PT0gJ1pvZExhenknO1xuICAgIGlmICghaXNXcmFwcGVyKSBicmVhaztcbiAgICBpZiAoaXNab2ROb2RlKGRlZi5pbm5lclR5cGUpKSB7XG4gICAgICBzID0gZGVmLmlubmVyVHlwZTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAoaXNab2ROb2RlKGRlZi5zY2hlbWEpKSB7XG4gICAgICBzID0gZGVmLnNjaGVtYTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICAvLyBQaXBlbGluZSAoYGluYCAvIGBvdXRgKSDigJQgZGVzY2VuZCBpbnRvIGBpbmAgKGlucHV0IHNpZGUpLlxuICAgIGlmIChpc1pvZE5vZGUoZGVmLmluKSkge1xuICAgICAgcyA9IGRlZi5pbjtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICAvLyBMYXp5IGhvbGRzIGEgZ2V0dGVyIHVuZGVyIGBnZXR0ZXJgLiBMYXN0LXJlc29ydCBmYWxsYmFjay5cbiAgICBpZiAodHlwZW9mIGRlZi5nZXR0ZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGlubmVyID0gKGRlZi5nZXR0ZXIgYXMgKCkgPT4gdW5rbm93bikoKTtcbiAgICAgICAgaWYgKGlzWm9kTm9kZShpbm5lcikpIHtcbiAgICAgICAgICBzID0gaW5uZXI7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICAvKiBmYWxsIHRocm91Z2ggKi9cbiAgICAgIH1cbiAgICB9XG4gICAgYnJlYWs7XG4gIH1cbiAgcmV0dXJuIGlzWm9kTm9kZShzKSA/IChzIGFzIFpvZFR5cGVBbnkpIDogbnVsbDtcbn1cblxuLyoqIFZlcnNpb24tdG9sZXJhbnQgYWNjZXNzIHRvIFpvZFJlY29yZCB2YWx1ZSBzY2hlbWEuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVjb3JkVmFsdWVUeXBlKHJlYzogWm9kUmVjb3JkPGFueSwgYW55Pik6IFpvZFR5cGVBbnkgfCBudWxsIHtcbiAgY29uc3QgcjogYW55ID0gcmVjIGFzIGFueTtcbiAgY29uc3QgZGVmID0gci5fZGVmID8/IHt9O1xuICByZXR1cm4gKFxuICAgIHIudmFsdWVTY2hlbWEgPz9cbiAgICByLnZhbHVlVHlwZSA/P1xuICAgIGRlZi52YWx1ZVR5cGUgPz9cbiAgICBkZWYudmFsdWUgPz9cbiAgICAoZGVmLnNjaGVtYSAmJiAoZGVmLnNjaGVtYS52YWx1ZVR5cGUgPz8gZGVmLnNjaGVtYS52YWx1ZSkpID8/XG4gICAgKGRlZi5pbm5lclR5cGUgJiYgKGRlZi5pbm5lclR5cGUudmFsdWVUeXBlID8/IGRlZi5pbm5lclR5cGUudmFsdWUpKSA/P1xuICAgIG51bGxcbiAgKTtcbn1cblxuZnVuY3Rpb24gbG9va3NMaWtlQmluZGluZ0Vycm9yKGVycjogdW5rbm93bik6IGJvb2xlYW4ge1xuICBjb25zdCBtc2cgPSAoZXJyIGFzIGFueSk/Lm1lc3NhZ2UgPz8gJyc7XG4gIHJldHVybiBtc2cuaW5jbHVkZXMoJ196b2QnKSB8fCBtc2cuaW5jbHVkZXMoJ2luc3QuX3pvZCcpIHx8IG1zZy5pbmNsdWRlcygnQ2Fubm90IHJlYWQgcHJvcGVydGllcyBvZiB1bmRlZmluZWQnKTtcbn1cblxuY29uc3QgV1JBUFBFUl9DQUNIRSA9IG5ldyBXZWFrTWFwPFpvZFR5cGVBbnksIFpvZFR5cGVBbnk+KCk7XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVdpdGhUaGlzKHNjaGVtYTogWm9kVHlwZUFueSwgdmFsdWU6IHVua25vd24pOiB1bmtub3duIHtcbiAgY29uc3QgYW55U2NoZW1hID0gc2NoZW1hIGFzIGFueTtcblxuICBpZiAodHlwZW9mIGFueVNjaGVtYS5zYWZlUGFyc2UgPT09ICdmdW5jdGlvbicpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzID0gYW55U2NoZW1hLnNhZmVQYXJzZSh2YWx1ZSk7XG4gICAgICBpZiAocmVzICYmIHR5cGVvZiByZXMgPT09ICdvYmplY3QnICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyZXMsICdzdWNjZXNzJykpIHtcbiAgICAgICAgaWYgKHJlcy5zdWNjZXNzKSByZXR1cm4gcmVzLmRhdGE7XG4gICAgICAgIHRocm93IHJlcy5lcnJvcjtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGlmICghbG9va3NMaWtlQmluZGluZ0Vycm9yKGVycikpIHRocm93IGVycjtcbiAgICB9XG4gIH1cblxuICBpZiAodHlwZW9mIGFueVNjaGVtYS5zYWZlUGFyc2UgPT09ICdmdW5jdGlvbicpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzID0gYW55U2NoZW1hLnNhZmVQYXJzZS5jYWxsKHNjaGVtYSwgdmFsdWUpO1xuICAgICAgaWYgKHJlcyAmJiB0eXBlb2YgcmVzID09PSAnb2JqZWN0JyAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocmVzLCAnc3VjY2VzcycpKSB7XG4gICAgICAgIGlmIChyZXMuc3VjY2VzcykgcmV0dXJuIHJlcy5kYXRhO1xuICAgICAgICB0aHJvdyByZXMuZXJyb3I7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBpZiAoIWxvb2tzTGlrZUJpbmRpbmdFcnJvcihlcnIpKSB0aHJvdyBlcnI7XG4gICAgfVxuICB9XG5cbiAgaWYgKHR5cGVvZiBhbnlTY2hlbWEucGFyc2UgPT09ICdmdW5jdGlvbicpIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGFueVNjaGVtYS5wYXJzZSh2YWx1ZSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBpZiAoIWxvb2tzTGlrZUJpbmRpbmdFcnJvcihlcnIpKSB0aHJvdyBlcnI7XG4gICAgfVxuICB9XG5cbiAgbGV0IHdyYXBwZXIgPSBXUkFQUEVSX0NBQ0hFLmdldChzY2hlbWEpO1xuICBpZiAoIXdyYXBwZXIpIHtcbiAgICB3cmFwcGVyID0gKHouYW55KCkgYXMgYW55KS5waXBlKHNjaGVtYSBhcyBhbnkpO1xuICAgIFdSQVBQRVJfQ0FDSEUuc2V0KHNjaGVtYSwgd3JhcHBlciEpO1xuICB9XG4gIGNvbnN0IHJlcyA9ICh3cmFwcGVyIGFzIGFueSkuc2FmZVBhcnNlKHZhbHVlKTtcbiAgaWYgKHJlcyAmJiByZXMuc3VjY2VzcykgcmV0dXJuIHJlcy5kYXRhO1xuXG4gIHRocm93IHJlcz8uZXJyb3IgPz8gbmV3IFR5cGVFcnJvcignWm9kIHZhbGlkYXRpb24gYmluZGluZyBmYWlsZWQgKHdyYXBwZXIgZmFsbGJhY2spLicpO1xufVxuIl19
|
package/dist/esm/trace.js
CHANGED
|
@@ -28,8 +28,11 @@ export { causalChain, flattenCausalDAG, formatCausalChain } from './lib/memory/b
|
|
|
28
28
|
export { KeyedRecorder } from './lib/recorder/KeyedRecorder.js';
|
|
29
29
|
// SequenceRecorder — base class for 1:N ordered sequence recorders with keyed index
|
|
30
30
|
export { SequenceRecorder } from './lib/recorder/SequenceRecorder.js';
|
|
31
|
+
// BoundaryStateTracker — base class for transient bracket-scoped state
|
|
32
|
+
// (live state DURING a matched [start, stop] event interval; clears on stop)
|
|
33
|
+
export { BoundaryStateTracker } from './lib/recorder/BoundaryStateTracker.js';
|
|
31
34
|
export { TopologyRecorder, topologyRecorder } from './lib/recorder/TopologyRecorder.js';
|
|
32
35
|
export { InOutRecorder, inOutRecorder, ROOT_RUNTIME_STAGE_ID, ROOT_SUBFLOW_ID } from './lib/recorder/InOutRecorder.js';
|
|
33
36
|
export { QualityRecorder } from './lib/recorder/QualityRecorder.js';
|
|
34
37
|
export { formatQualityTrace, qualityTrace } from './lib/recorder/qualityTrace.js';
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHJhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCRztBQUlILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxzQkFBc0IsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRWxILHdEQUF3RDtBQUN4RCxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUl6RixPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFN0YseURBQXlEO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVoRSxvRkFBb0Y7QUFDcEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFdEUsdUVBQXVFO0FBQ3ZFLDZFQUE2RTtBQUM3RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQVU5RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUt4RixPQUFPLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxxQkFBcUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUl2SCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFJcEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBmb290cHJpbnRqcy90cmFjZSDigJQgRXhlY3V0aW9uIHRyYWNpbmcsIGRlYnVnZ2luZywgYW5kIGJhY2t0cmFja2luZyB1dGlsaXRpZXMuXG4gKlxuICogUnVudGltZSBzdGFnZSBJRHMsIGNvbW1pdCBsb2cgcXVlcmllcywgYW5kIHJlY29yZGVyIGJhc2UgY2xhc3Nlcy5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0IHsgcGFyc2VSdW50aW1lU3RhZ2VJZCwgZmluZExhc3RXcml0ZXIsIEtleWVkUmVjb3JkZXIsIFNlcXVlbmNlUmVjb3JkZXIgfSBmcm9tICdmb290cHJpbnRqcy90cmFjZSc7XG4gKlxuICogLy8gUGFyc2UgYSBydW50aW1lU3RhZ2VJZFxuICogY29uc3QgeyBzdGFnZUlkLCBleGVjdXRpb25JbmRleCB9ID0gcGFyc2VSdW50aW1lU3RhZ2VJZCgnY2FsbC1sbG0jNScpO1xuICpcbiAqIC8vIEJhY2t0cmFjazogd2hvIHdyb3RlICdzeXN0ZW1Qcm9tcHQnIGJlZm9yZSBzdGFnZSBhdCBpZHggOD9cbiAqIGNvbnN0IHdyaXRlciA9IGZpbmRMYXN0V3JpdGVyKGNvbW1pdExvZywgJ3N5c3RlbVByb21wdCcsIDgpO1xuICpcbiAqIC8vIEJ1aWxkIGEga2V5ZWQgcmVjb3JkZXIgKDE6MSDigJQgb25lIGVudHJ5IHBlciBzdGVwKVxuICogY2xhc3MgTXlSZWNvcmRlciBleHRlbmRzIEtleWVkUmVjb3JkZXI8TXlFbnRyeT4geyAuLi4gfVxuICpcbiAqIC8vIEJ1aWxkIGEgc2VxdWVuY2UgcmVjb3JkZXIgKDE6TiDigJQgbXVsdGlwbGUgZW50cmllcyBwZXIgc3RlcCwgb3JkZXJpbmcgbWF0dGVycylcbiAqIGNsYXNzIEF1ZGl0UmVjb3JkZXIgZXh0ZW5kcyBTZXF1ZW5jZVJlY29yZGVyPEF1ZGl0RW50cnk+IHsgLi4uIH1cbiAqIGBgYFxuICovXG5cbi8vIFJ1bnRpbWUgc3RhZ2UgSUQg4oCUIHVuaXF1ZSBleGVjdXRpb24gc3RlcCBpZGVudGlmaWVyc1xuZXhwb3J0IHR5cGUgeyBFeGVjdXRpb25Db3VudGVyIH0gZnJvbSAnLi9saWIvZW5naW5lL3J1bnRpbWVTdGFnZUlkLmpzJztcbmV4cG9ydCB7IGJ1aWxkUnVudGltZVN0YWdlSWQsIGNyZWF0ZUV4ZWN1dGlvbkNvdW50ZXIsIHBhcnNlUnVudGltZVN0YWdlSWQgfSBmcm9tICcuL2xpYi9lbmdpbmUvcnVudGltZVN0YWdlSWQuanMnO1xuXG4vLyBDb21taXQgbG9nIHF1ZXJpZXMg4oCUIHR5cGVkIHV0aWxpdGllcyBmb3IgYmFja3RyYWNraW5nXG5leHBvcnQgeyBmaW5kQ29tbWl0LCBmaW5kQ29tbWl0cywgZmluZExhc3RXcml0ZXIgfSBmcm9tICcuL2xpYi9tZW1vcnkvY29tbWl0TG9nVXRpbHMuanMnO1xuXG4vLyBDYXVzYWwgY2hhaW4g4oCUIGJhY2t3YXJkIHByb2dyYW0gc2xpY2luZyBvbiBjb21taXQgbG9nIChEQUcpXG5leHBvcnQgdHlwZSB7IENhdXNhbENoYWluT3B0aW9ucywgQ2F1c2FsTm9kZSwgS2V5c1JlYWRMb29rdXAgfSBmcm9tICcuL2xpYi9tZW1vcnkvYmFja3RyYWNrLmpzJztcbmV4cG9ydCB7IGNhdXNhbENoYWluLCBmbGF0dGVuQ2F1c2FsREFHLCBmb3JtYXRDYXVzYWxDaGFpbiB9IGZyb20gJy4vbGliL21lbW9yeS9iYWNrdHJhY2suanMnO1xuXG4vLyBLZXllZFJlY29yZGVyIOKAlCBiYXNlIGNsYXNzIGZvciAxOjEgTWFwLWJhc2VkIHJlY29yZGVyc1xuZXhwb3J0IHsgS2V5ZWRSZWNvcmRlciB9IGZyb20gJy4vbGliL3JlY29yZGVyL0tleWVkUmVjb3JkZXIuanMnO1xuXG4vLyBTZXF1ZW5jZVJlY29yZGVyIOKAlCBiYXNlIGNsYXNzIGZvciAxOk4gb3JkZXJlZCBzZXF1ZW5jZSByZWNvcmRlcnMgd2l0aCBrZXllZCBpbmRleFxuZXhwb3J0IHsgU2VxdWVuY2VSZWNvcmRlciB9IGZyb20gJy4vbGliL3JlY29yZGVyL1NlcXVlbmNlUmVjb3JkZXIuanMnO1xuXG4vLyBCb3VuZGFyeVN0YXRlVHJhY2tlciDigJQgYmFzZSBjbGFzcyBmb3IgdHJhbnNpZW50IGJyYWNrZXQtc2NvcGVkIHN0YXRlXG4vLyAobGl2ZSBzdGF0ZSBEVVJJTkcgYSBtYXRjaGVkIFtzdGFydCwgc3RvcF0gZXZlbnQgaW50ZXJ2YWw7IGNsZWFycyBvbiBzdG9wKVxuZXhwb3J0IHsgQm91bmRhcnlTdGF0ZVRyYWNrZXIgfSBmcm9tICcuL2xpYi9yZWNvcmRlci9Cb3VuZGFyeVN0YXRlVHJhY2tlci5qcyc7XG5cbi8vIFRvcG9sb2d5UmVjb3JkZXIg4oCUIGNvbXBvc2l0aW9uIGdyYXBoIGFjY3VtdWxhdG9yIChzdWJmbG93cyArIGNvbnRyb2wtZmxvdyBlZGdlcylcbmV4cG9ydCB0eXBlIHtcbiAgVG9wb2xvZ3ksXG4gIFRvcG9sb2d5RWRnZSxcbiAgVG9wb2xvZ3lJbmNvbWluZ0tpbmQsXG4gIFRvcG9sb2d5Tm9kZSxcbiAgVG9wb2xvZ3lSZWNvcmRlck9wdGlvbnMsXG59IGZyb20gJy4vbGliL3JlY29yZGVyL1RvcG9sb2d5UmVjb3JkZXIuanMnO1xuZXhwb3J0IHsgVG9wb2xvZ3lSZWNvcmRlciwgdG9wb2xvZ3lSZWNvcmRlciB9IGZyb20gJy4vbGliL3JlY29yZGVyL1RvcG9sb2d5UmVjb3JkZXIuanMnO1xuXG4vLyBJbk91dFJlY29yZGVyIOKAlCBjaGFydCBpbi9vdXQgc3RyZWFtIChlbnRyeS9leGl0IHBhaXJzIGF0IGV2ZXJ5IGNoYXJ0IGJvdW5kYXJ5LFxuLy8gaW5jbHVkaW5nIHRoZSB0b3AtbGV2ZWwgcnVuIGFuZCBldmVyeSBzdWJmbG93KVxuZXhwb3J0IHR5cGUgeyBJbk91dEVudHJ5LCBJbk91dFBoYXNlLCBJbk91dFJlY29yZGVyT3B0aW9ucyB9IGZyb20gJy4vbGliL3JlY29yZGVyL0luT3V0UmVjb3JkZXIuanMnO1xuZXhwb3J0IHsgSW5PdXRSZWNvcmRlciwgaW5PdXRSZWNvcmRlciwgUk9PVF9SVU5USU1FX1NUQUdFX0lELCBST09UX1NVQkZMT1dfSUQgfSBmcm9tICcuL2xpYi9yZWNvcmRlci9Jbk91dFJlY29yZGVyLmpzJztcblxuLy8gUXVhbGl0eVJlY29yZGVyIOKAlCBwZXItc3RlcCBxdWFsaXR5IHNjb3Jpbmcgd2l0aCBiYWNrdHJhY2tpbmdcbmV4cG9ydCB0eXBlIHsgUXVhbGl0eUVudHJ5LCBRdWFsaXR5UmVjb3JkZXJPcHRpb25zLCBRdWFsaXR5U2NvcmluZ0ZuIH0gZnJvbSAnLi9saWIvcmVjb3JkZXIvUXVhbGl0eVJlY29yZGVyLmpzJztcbmV4cG9ydCB7IFF1YWxpdHlSZWNvcmRlciB9IGZyb20gJy4vbGliL3JlY29yZGVyL1F1YWxpdHlSZWNvcmRlci5qcyc7XG5cbi8vIHF1YWxpdHlUcmFjZSDigJQgUXVhbGl0eSBTdGFjayBUcmFjZSAoYmFja3RyYWNrIGZyb20gbG93LXNjb3Jpbmcgc3RlcHMpXG5leHBvcnQgdHlwZSB7IFF1YWxpdHlGcmFtZSwgUXVhbGl0eVN0YWNrVHJhY2UgfSBmcm9tICcuL2xpYi9yZWNvcmRlci9xdWFsaXR5VHJhY2UuanMnO1xuZXhwb3J0IHsgZm9ybWF0UXVhbGl0eVRyYWNlLCBxdWFsaXR5VHJhY2UgfSBmcm9tICcuL2xpYi9yZWNvcmRlci9xdWFsaXR5VHJhY2UuanMnO1xuIl19
|