footprintjs 9.41.0 → 9.42.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +7 -3
- package/CLAUDE.md +12 -11
- package/README.md +7 -3
- package/dist/advanced.js +4 -3
- package/dist/esm/advanced.d.ts +3 -1
- package/dist/esm/advanced.js +3 -2
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.js +1 -1
- package/dist/esm/lib/builder/FlowChartBuilder.d.ts +14 -4
- package/dist/esm/lib/builder/FlowChartBuilder.js +25 -7
- package/dist/esm/lib/builder/types.d.ts +2 -3
- package/dist/esm/lib/builder/types.js +1 -1
- package/dist/esm/lib/capture/freeze.d.ts +5 -5
- package/dist/esm/lib/capture/freeze.js +5 -4
- package/dist/esm/lib/contract/index.d.ts +5 -8
- package/dist/esm/lib/contract/index.js +5 -10
- package/dist/esm/lib/contract/types.d.ts +3 -81
- package/dist/esm/lib/contract/types.js +4 -5
- package/dist/esm/lib/decide/decide.js +13 -46
- package/dist/esm/lib/detach/drivers/batch.d.ts +9 -0
- package/dist/esm/lib/detach/drivers/batch.js +79 -0
- package/dist/esm/lib/detach/drivers/microtaskBatch.d.ts +17 -20
- package/dist/esm/lib/detach/drivers/microtaskBatch.js +20 -72
- package/dist/esm/lib/detach/drivers/setImmediate.js +10 -41
- package/dist/esm/lib/detach/drivers/setTimeout.js +3 -36
- package/dist/esm/lib/detach/types.d.ts +17 -20
- package/dist/esm/lib/detach/types.js +9 -11
- package/dist/esm/lib/engine/handlers/ChildrenExecutor.js +7 -3
- package/dist/esm/lib/engine/handlers/DeciderHandler.js +7 -5
- package/dist/esm/lib/engine/handlers/ParallelForEachHandler.d.ts +2 -3
- package/dist/esm/lib/engine/handlers/ParallelForEachHandler.js +12 -24
- package/dist/esm/lib/engine/handlers/SelectorHandler.d.ts +2 -4
- package/dist/esm/lib/engine/handlers/SelectorHandler.js +15 -7
- package/dist/esm/lib/engine/handlers/StageRunner.js +10 -22
- package/dist/esm/lib/engine/handlers/SubflowExecutor.js +19 -6
- package/dist/esm/lib/engine/handlers/breakFlag.d.ts +3 -0
- package/dist/esm/lib/engine/handlers/breakFlag.js +9 -0
- package/dist/esm/lib/engine/handlers/commitStage.js +3 -3
- package/dist/esm/lib/engine/handlers/stageError.d.ts +20 -0
- package/dist/esm/lib/engine/handlers/stageError.js +28 -0
- package/dist/esm/lib/engine/narrative/CombinedNarrativeRecorder.d.ts +6 -1
- package/dist/esm/lib/engine/narrative/CombinedNarrativeRecorder.js +40 -67
- package/dist/esm/lib/engine/narrative/FlowRecorderDispatcher.d.ts +3 -3
- package/dist/esm/lib/engine/narrative/FlowRecorderDispatcher.js +4 -8
- package/dist/esm/lib/engine/narrative/NarrativeFlowRecorder.d.ts +7 -1
- package/dist/esm/lib/engine/narrative/NarrativeFlowRecorder.js +28 -48
- package/dist/esm/lib/engine/narrative/formatting/resolveText.d.ts +6 -0
- package/dist/esm/lib/engine/narrative/formatting/resolveText.js +9 -0
- package/dist/esm/lib/engine/narrative/formatting/sentences.d.ts +16 -0
- package/dist/esm/lib/engine/narrative/formatting/sentences.js +50 -0
- package/dist/esm/lib/engine/narrative/narrativeTypes.d.ts +2 -0
- package/dist/esm/lib/engine/narrative/narrativeTypes.js +1 -1
- package/dist/esm/lib/engine/narrative/recorders/RLENarrativeFlowRecorder.js +3 -7
- package/dist/esm/lib/engine/narrative/recorders/SeparateNarrativeFlowRecorder.js +3 -7
- package/dist/esm/lib/engine/narrative/recorders/WindowedNarrativeFlowRecorder.d.ts +0 -1
- package/dist/esm/lib/engine/narrative/recorders/WindowedNarrativeFlowRecorder.js +5 -10
- package/dist/esm/lib/engine/narrative/types.d.ts +18 -8
- package/dist/esm/lib/engine/narrative/types.js +1 -1
- package/dist/esm/lib/engine/traversal/FlowchartTraverser.d.ts +6 -3
- package/dist/esm/lib/engine/traversal/FlowchartTraverser.js +50 -31
- package/dist/esm/lib/engine/types.d.ts +4 -0
- package/dist/esm/lib/engine/types.js +1 -1
- package/dist/esm/lib/memory/DiagnosticCollector.d.ts +11 -0
- package/dist/esm/lib/memory/DiagnosticCollector.js +51 -9
- package/dist/esm/lib/memory/EventLog.d.ts +9 -0
- package/dist/esm/lib/memory/EventLog.js +24 -1
- package/dist/esm/lib/memory/StageContext.d.ts +10 -1
- package/dist/esm/lib/memory/StageContext.js +18 -2
- package/dist/esm/lib/memory/eventPosition.d.ts +18 -0
- package/dist/esm/lib/memory/eventPosition.js +2 -0
- package/dist/esm/lib/memory/merge.d.ts +2 -1
- package/dist/esm/lib/memory/merge.js +15 -4
- package/dist/esm/lib/memory/redaction.d.ts +91 -11
- package/dist/esm/lib/memory/redaction.js +196 -17
- package/dist/esm/lib/observer-queue/deferredDispatcher.d.ts +2 -2
- package/dist/esm/lib/observer-queue/deferredDispatcher.js +3 -3
- package/dist/esm/lib/observer-queue/index.d.ts +7 -4
- package/dist/esm/lib/observer-queue/index.js +8 -5
- package/dist/esm/lib/reactive/createTypedScope.js +20 -21
- package/dist/esm/lib/reactive/index.d.ts +1 -1
- package/dist/esm/lib/reactive/index.js +2 -2
- package/dist/esm/lib/reactive/types.d.ts +0 -3
- package/dist/esm/lib/reactive/types.js +1 -23
- package/dist/esm/lib/recorder/EmitRecorder.d.ts +9 -0
- package/dist/esm/lib/recorder/EmitRecorder.js +1 -1
- package/dist/esm/lib/recorder/InOutRecorder.d.ts +5 -2
- package/dist/esm/lib/recorder/InOutRecorder.js +6 -3
- package/dist/esm/lib/runner/DeferredObserverTier.d.ts +4 -3
- package/dist/esm/lib/runner/DeferredObserverTier.js +5 -4
- package/dist/esm/lib/runner/ExecutionRuntime.d.ts +3 -0
- package/dist/esm/lib/runner/ExecutionRuntime.js +2 -1
- package/dist/esm/lib/runner/FlowChartExecutor.d.ts +11 -9
- package/dist/esm/lib/runner/FlowChartExecutor.js +12 -10
- package/dist/esm/lib/runner/attach.d.ts +3 -1
- package/dist/esm/lib/runner/attach.js +21 -31
- package/dist/esm/lib/scope/ScopeFacade.d.ts +13 -1
- package/dist/esm/lib/scope/ScopeFacade.js +60 -39
- package/dist/esm/lib/scope/protection/createProtectedScope.js +5 -2
- package/dist/esm/lib/scope/protection/readonlyInput.d.ts +16 -6
- package/dist/esm/lib/scope/protection/readonlyInput.js +72 -9
- package/dist/esm/lib/scope/providers/baseStateCompatible.d.ts +10 -24
- package/dist/esm/lib/scope/providers/baseStateCompatible.js +35 -35
- package/dist/esm/lib/scope/providers/providers.d.ts +2 -2
- package/dist/esm/lib/scope/providers/providers.js +3 -3
- package/dist/esm/lib/scope/providers/resolve.js +2 -2
- package/dist/esm/lib/scope/providers/types.d.ts +4 -2
- package/dist/esm/lib/scope/providers/types.js +1 -1
- package/dist/esm/lib/scope/recorders/MetricRecorder.d.ts +2 -3
- package/dist/esm/lib/scope/recorders/MetricRecorder.js +11 -14
- package/dist/esm/lib/scope/runtime.d.ts +48 -0
- package/dist/esm/lib/scope/runtime.js +60 -0
- package/dist/esm/lib/scope/state/zod/defineScopeFromZod.d.ts +2 -2
- package/dist/esm/lib/scope/state/zod/defineScopeFromZod.js +17 -6
- package/dist/esm/lib/scope/state/zod/resolver.js +3 -15
- package/dist/esm/lib/scope/state/zod/scopeFactory.d.ts +7 -3
- package/dist/esm/lib/scope/state/zod/scopeFactory.js +57 -22
- package/dist/esm/lib/scope/state/zod/utils/validateHelper.d.ts +27 -18
- package/dist/esm/lib/scope/state/zod/utils/validateHelper.js +66 -67
- package/dist/esm/recorders.d.ts +3 -0
- package/dist/esm/recorders.js +1 -1
- package/dist/index.js +1 -1
- package/dist/lib/builder/FlowChartBuilder.js +25 -7
- package/dist/lib/builder/types.js +1 -1
- package/dist/lib/capture/freeze.js +5 -4
- package/dist/lib/contract/index.js +6 -13
- package/dist/lib/contract/types.js +4 -5
- package/dist/lib/decide/decide.js +13 -46
- package/dist/lib/detach/drivers/batch.js +83 -0
- package/dist/lib/detach/drivers/microtaskBatch.js +20 -72
- package/dist/lib/detach/drivers/setImmediate.js +10 -41
- package/dist/lib/detach/drivers/setTimeout.js +3 -36
- package/dist/lib/detach/types.js +9 -11
- package/dist/lib/engine/handlers/ChildrenExecutor.js +7 -3
- package/dist/lib/engine/handlers/DeciderHandler.js +7 -5
- package/dist/lib/engine/handlers/ParallelForEachHandler.js +12 -24
- package/dist/lib/engine/handlers/SelectorHandler.js +15 -7
- package/dist/lib/engine/handlers/StageRunner.js +10 -22
- package/dist/lib/engine/handlers/SubflowExecutor.js +19 -6
- package/dist/lib/engine/handlers/breakFlag.js +13 -0
- package/dist/lib/engine/handlers/commitStage.js +2 -2
- package/dist/lib/engine/handlers/stageError.js +34 -0
- package/dist/lib/engine/narrative/CombinedNarrativeRecorder.js +40 -67
- package/dist/lib/engine/narrative/FlowRecorderDispatcher.js +4 -8
- package/dist/lib/engine/narrative/NarrativeFlowRecorder.js +28 -48
- package/dist/lib/engine/narrative/formatting/resolveText.js +13 -0
- package/dist/lib/engine/narrative/formatting/sentences.js +63 -0
- package/dist/lib/engine/narrative/narrativeTypes.js +1 -1
- package/dist/lib/engine/narrative/recorders/RLENarrativeFlowRecorder.js +3 -7
- package/dist/lib/engine/narrative/recorders/SeparateNarrativeFlowRecorder.js +3 -7
- package/dist/lib/engine/narrative/recorders/WindowedNarrativeFlowRecorder.js +5 -10
- package/dist/lib/engine/narrative/types.js +1 -1
- package/dist/lib/engine/traversal/FlowchartTraverser.js +50 -31
- package/dist/lib/engine/types.js +1 -1
- package/dist/lib/memory/DiagnosticCollector.js +51 -9
- package/dist/lib/memory/EventLog.js +24 -1
- package/dist/lib/memory/StageContext.js +18 -2
- package/dist/lib/memory/eventPosition.js +3 -0
- package/dist/lib/memory/merge.js +15 -4
- package/dist/lib/memory/redaction.js +196 -17
- package/dist/lib/observer-queue/deferredDispatcher.js +3 -3
- package/dist/lib/observer-queue/index.js +8 -5
- package/dist/lib/reactive/createTypedScope.js +19 -20
- package/dist/lib/reactive/index.js +2 -5
- package/dist/lib/reactive/types.js +2 -24
- package/dist/lib/recorder/EmitRecorder.js +1 -1
- package/dist/lib/recorder/InOutRecorder.js +6 -3
- package/dist/lib/runner/DeferredObserverTier.js +5 -4
- package/dist/lib/runner/ExecutionRuntime.js +2 -1
- package/dist/lib/runner/FlowChartExecutor.js +12 -10
- package/dist/lib/runner/attach.js +21 -31
- package/dist/lib/scope/ScopeFacade.js +60 -39
- package/dist/lib/scope/protection/createProtectedScope.js +5 -2
- package/dist/lib/scope/protection/readonlyInput.js +74 -10
- package/dist/lib/scope/providers/baseStateCompatible.js +37 -36
- package/dist/lib/scope/providers/providers.js +3 -3
- package/dist/lib/scope/providers/resolve.js +2 -2
- package/dist/lib/scope/providers/types.js +1 -1
- package/dist/lib/scope/recorders/MetricRecorder.js +11 -14
- package/dist/lib/scope/runtime.js +67 -0
- package/dist/lib/scope/state/zod/defineScopeFromZod.js +15 -4
- package/dist/lib/scope/state/zod/resolver.js +3 -15
- package/dist/lib/scope/state/zod/scopeFactory.js +58 -22
- package/dist/lib/scope/state/zod/utils/validateHelper.js +70 -68
- package/dist/recorders.js +1 -1
- package/dist/types/advanced.d.ts +3 -1
- package/dist/types/index.d.ts +2 -2
- package/dist/types/lib/builder/FlowChartBuilder.d.ts +14 -4
- package/dist/types/lib/builder/types.d.ts +2 -3
- package/dist/types/lib/capture/freeze.d.ts +5 -5
- package/dist/types/lib/contract/index.d.ts +5 -8
- package/dist/types/lib/contract/types.d.ts +3 -81
- package/dist/types/lib/detach/drivers/batch.d.ts +9 -0
- package/dist/types/lib/detach/drivers/microtaskBatch.d.ts +17 -20
- package/dist/types/lib/detach/types.d.ts +17 -20
- package/dist/types/lib/engine/handlers/ParallelForEachHandler.d.ts +2 -3
- package/dist/types/lib/engine/handlers/SelectorHandler.d.ts +2 -4
- package/dist/types/lib/engine/handlers/breakFlag.d.ts +3 -0
- package/dist/types/lib/engine/handlers/stageError.d.ts +20 -0
- package/dist/types/lib/engine/narrative/CombinedNarrativeRecorder.d.ts +6 -1
- package/dist/types/lib/engine/narrative/FlowRecorderDispatcher.d.ts +3 -3
- package/dist/types/lib/engine/narrative/NarrativeFlowRecorder.d.ts +7 -1
- package/dist/types/lib/engine/narrative/formatting/resolveText.d.ts +6 -0
- package/dist/types/lib/engine/narrative/formatting/sentences.d.ts +16 -0
- package/dist/types/lib/engine/narrative/narrativeTypes.d.ts +2 -0
- package/dist/types/lib/engine/narrative/recorders/WindowedNarrativeFlowRecorder.d.ts +0 -1
- package/dist/types/lib/engine/narrative/types.d.ts +18 -8
- package/dist/types/lib/engine/traversal/FlowchartTraverser.d.ts +6 -3
- package/dist/types/lib/engine/types.d.ts +4 -0
- package/dist/types/lib/memory/DiagnosticCollector.d.ts +11 -0
- package/dist/types/lib/memory/EventLog.d.ts +9 -0
- package/dist/types/lib/memory/StageContext.d.ts +10 -1
- package/dist/types/lib/memory/eventPosition.d.ts +18 -0
- package/dist/types/lib/memory/merge.d.ts +2 -1
- package/dist/types/lib/memory/redaction.d.ts +91 -11
- package/dist/types/lib/observer-queue/deferredDispatcher.d.ts +2 -2
- package/dist/types/lib/observer-queue/index.d.ts +7 -4
- package/dist/types/lib/reactive/index.d.ts +1 -1
- package/dist/types/lib/reactive/types.d.ts +0 -3
- package/dist/types/lib/recorder/EmitRecorder.d.ts +9 -0
- package/dist/types/lib/recorder/InOutRecorder.d.ts +5 -2
- package/dist/types/lib/runner/DeferredObserverTier.d.ts +4 -3
- package/dist/types/lib/runner/ExecutionRuntime.d.ts +3 -0
- package/dist/types/lib/runner/FlowChartExecutor.d.ts +11 -9
- package/dist/types/lib/runner/attach.d.ts +3 -1
- package/dist/types/lib/scope/ScopeFacade.d.ts +13 -1
- package/dist/types/lib/scope/protection/readonlyInput.d.ts +16 -6
- package/dist/types/lib/scope/providers/baseStateCompatible.d.ts +10 -24
- package/dist/types/lib/scope/providers/providers.d.ts +2 -2
- package/dist/types/lib/scope/providers/types.d.ts +4 -2
- package/dist/types/lib/scope/recorders/MetricRecorder.d.ts +2 -3
- package/dist/types/lib/scope/runtime.d.ts +48 -0
- package/dist/types/lib/scope/state/zod/defineScopeFromZod.d.ts +2 -2
- package/dist/types/lib/scope/state/zod/scopeFactory.d.ts +7 -3
- package/dist/types/lib/scope/state/zod/utils/validateHelper.d.ts +27 -18
- package/dist/types/recorders.d.ts +3 -0
- package/package.json +4 -3
- package/dist/esm/lib/contract/defineContract.d.ts +0 -18
- package/dist/esm/lib/contract/defineContract.js +0 -64
- package/dist/esm/lib/contract/openapi.d.ts +0 -18
- package/dist/esm/lib/contract/openapi.js +0 -98
- package/dist/lib/contract/defineContract.js +0 -68
- package/dist/lib/contract/openapi.js +0 -102
- package/dist/types/lib/contract/defineContract.d.ts +0 -18
- package/dist/types/lib/contract/openapi.d.ts +0 -18
|
@@ -4,16 +4,16 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Provides:
|
|
6
6
|
* - assertNotReadonly(): throws if a key belongs to the readonly input
|
|
7
|
-
* - createFrozenArgs():
|
|
7
|
+
* - createFrozenArgs(): snapshots owned input containers without freezing the caller
|
|
8
|
+
* - snapshotRunInput(): the ONE snapshot a run leg takes, handed to every scope of it
|
|
8
9
|
*
|
|
9
10
|
* Used by both ScopeFacade (class-based scopes) and attachScopeMethods
|
|
10
|
-
* (non-class scopes)
|
|
11
|
-
*
|
|
12
|
-
*
|
|
11
|
+
* (non-class scopes). This is an ownership boundary, not an in-place freezer:
|
|
12
|
+
* live capabilities and explicitly frozen wrappers are borrowed, never walked.
|
|
13
|
+
* Saved records still use `capture/freeze.ts · deepFreeze` unchanged.
|
|
13
14
|
*/
|
|
14
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.createFrozenArgs = exports.assertNotReadonly = void 0;
|
|
16
|
-
const freeze_js_1 = require("../../capture/freeze.js");
|
|
16
|
+
exports.snapshotRunInput = exports.createFrozenArgs = exports.assertNotReadonly = void 0;
|
|
17
17
|
/**
|
|
18
18
|
* Throws if `key` is an own property of `readOnlyValues`.
|
|
19
19
|
* Safe against prototype pollution — uses `hasOwnProperty` on the specific object.
|
|
@@ -30,14 +30,78 @@ function assertNotReadonly(readOnlyValues, key, operation) {
|
|
|
30
30
|
}
|
|
31
31
|
exports.assertNotReadonly = assertNotReadonly;
|
|
32
32
|
/**
|
|
33
|
-
* Creates a
|
|
34
|
-
*
|
|
33
|
+
* Creates a frozen argument view, copying mutable ordinary records and arrays.
|
|
34
|
+
* Functions, opaque objects and already-frozen nested values remain borrowed —
|
|
35
|
+
* so over a {@link snapshotRunInput} snapshot (every container already frozen)
|
|
36
|
+
* a scope pays only O(root keys). Called once per scope at construction.
|
|
35
37
|
*/
|
|
36
38
|
function createFrozenArgs(readOnlyValues) {
|
|
37
39
|
if (!readOnlyValues || typeof readOnlyValues !== 'object') {
|
|
38
40
|
return Object.freeze({});
|
|
39
41
|
}
|
|
40
|
-
|
|
42
|
+
const args = { ...readOnlyValues };
|
|
43
|
+
// Root spread semantics: a plain record of own enumerable string/symbol keys,
|
|
44
|
+
// even for array input. Seed before walking so root cycles close on the copy.
|
|
45
|
+
const copies = new WeakMap([[readOnlyValues, args]]);
|
|
46
|
+
copyProperties(args, args, copies);
|
|
47
|
+
return Object.freeze(args);
|
|
41
48
|
}
|
|
42
49
|
exports.createFrozenArgs = createFrozenArgs;
|
|
43
|
-
|
|
50
|
+
/** One memoized traversal: copy each owned container once, then freeze only it. */
|
|
51
|
+
function snapshotValue(value, copies) {
|
|
52
|
+
if (value === null || typeof value !== 'object')
|
|
53
|
+
return value;
|
|
54
|
+
const existing = copies.get(value);
|
|
55
|
+
if (existing)
|
|
56
|
+
return existing;
|
|
57
|
+
if (Object.isFrozen(value))
|
|
58
|
+
return value;
|
|
59
|
+
const prototype = Object.getPrototypeOf(value);
|
|
60
|
+
const isArray = Array.isArray(value);
|
|
61
|
+
if (prototype !== null && prototype !== (isArray ? Array.prototype : Object.prototype))
|
|
62
|
+
return value;
|
|
63
|
+
const copy = isArray ? Object.setPrototypeOf(new Array(value.length), prototype) : Object.create(prototype);
|
|
64
|
+
copies.set(value, copy);
|
|
65
|
+
copyProperties(value, copy, copies);
|
|
66
|
+
return Object.freeze(copy);
|
|
67
|
+
}
|
|
68
|
+
/** Materialize accessors once; define data keys safely, including __proto__. */
|
|
69
|
+
function copyProperties(source, target, copies) {
|
|
70
|
+
for (const key of Reflect.ownKeys(source)) {
|
|
71
|
+
const descriptor = Object.getOwnPropertyDescriptor(source, key);
|
|
72
|
+
if (!descriptor)
|
|
73
|
+
continue;
|
|
74
|
+
// An array already owns its non-configurable length; holes remain holes.
|
|
75
|
+
if (Array.isArray(target) && key === 'length')
|
|
76
|
+
continue;
|
|
77
|
+
const value = snapshotValue(Reflect.get(source, key), copies);
|
|
78
|
+
Object.defineProperty(target, key, {
|
|
79
|
+
value,
|
|
80
|
+
enumerable: descriptor.enumerable,
|
|
81
|
+
configurable: true,
|
|
82
|
+
writable: true,
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* The ONE owned, frozen input snapshot of a run leg — taken once per `run()` /
|
|
88
|
+
* `resume()` traverser (and per subflow mount, whose mapped input is its own)
|
|
89
|
+
* and handed to every scope factory of that leg. A caller edit to the input
|
|
90
|
+
* after the leg starts reaches no scope of it. Non-object input passes through.
|
|
91
|
+
*/
|
|
92
|
+
function snapshotRunInput(input) {
|
|
93
|
+
if (input === null || typeof input !== 'object')
|
|
94
|
+
return input;
|
|
95
|
+
// The snapshot root keeps ALL the input's own keys (non-enumerable ones
|
|
96
|
+
// included), so the readonly-key check over it refuses exactly what it
|
|
97
|
+
// refused over the input. A borrowed root (opaque or caller-frozen) is not
|
|
98
|
+
// copied by the walk, so its keys are copied onto a plain frozen record here.
|
|
99
|
+
const owned = snapshotValue(input, new WeakMap());
|
|
100
|
+
if (owned !== input)
|
|
101
|
+
return owned;
|
|
102
|
+
const root = {};
|
|
103
|
+
copyProperties(input, root, new WeakMap([[input, root]]));
|
|
104
|
+
return Object.freeze(root);
|
|
105
|
+
}
|
|
106
|
+
exports.snapshotRunInput = snapshotRunInput;
|
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZG9ubHlJbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvc2NvcGUvcHJvdGVjdGlvbi9yZWFkb25seUlucHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7O0dBWUc7OztBQUVIOzs7R0FHRztBQUNILFNBQWdCLGlCQUFpQixDQUFDLGNBQXVCLEVBQUUsR0FBVyxFQUFFLFNBQTZCO0lBQ25HLElBQ0UsY0FBYztRQUNkLE9BQU8sY0FBYyxLQUFLLFFBQVE7UUFDbEMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxHQUFHLENBQUMsRUFDekQsQ0FBQztRQUNELElBQUksU0FBUyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzNCLE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLEdBQUcsZ0NBQWdDLENBQUMsQ0FBQztRQUM1RixDQUFDO1FBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsR0FBRyx3Q0FBd0MsQ0FBQyxDQUFDO0lBQ3RHLENBQUM7QUFDSCxDQUFDO0FBWEQsOENBV0M7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLGdCQUFnQixDQUFDLGNBQXVCO0lBQ3RELElBQUksQ0FBQyxjQUFjLElBQUksT0FBTyxjQUFjLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDMUQsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFDRCxNQUFNLElBQUksR0FBRyxFQUFFLEdBQUksY0FBMEMsRUFBRSxDQUFDO0lBQ2hFLDhFQUE4RTtJQUM5RSw4RUFBOEU7SUFDOUUsTUFBTSxNQUFNLEdBQUcsSUFBSSxPQUFPLENBQWlCLENBQUMsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JFLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lB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QUFFLElBQUksRUFBRSxJQUFJLE9BQU8sQ0FBaUIsQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxRSxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDN0IsQ0FBQztBQVhELDRDQVdDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiByZWFkb25seUlucHV0IOKAlCBVdGlsaXRpZXMgZm9yIHJlYWRvbmx5IGlucHV0IGVuZm9yY2VtZW50LlxuICpcbiAqIFByb3ZpZGVzOlxuICogLSBhc3NlcnROb3RSZWFkb25seSgpOiB0aHJvd3MgaWYgYSBrZXkgYmVsb25ncyB0byB0aGUgcmVhZG9ubHkgaW5wdXRcbiAqIC0gY3JlYXRlRnJvemVuQXJncygpOiBzbmFwc2hvdHMgb3duZWQgaW5wdXQgY29udGFpbmVycyB3aXRob3V0IGZyZWV6aW5nIHRoZSBjYWxsZXJcbiAqIC0gc25hcHNob3RSdW5JbnB1dCgpOiB0aGUgT05FIHNuYXBzaG90IGEgcnVuIGxlZyB0YWtlcywgaGFuZGVkIHRvIGV2ZXJ5IHNjb3BlIG9mIGl0XG4gKlxuICogVXNlZCBieSBib3RoIFNjb3BlRmFjYWRlIChjbGFzcy1iYXNlZCBzY29wZXMpIGFuZCBhdHRhY2hTY29wZU1ldGhvZHNcbiAqIChub24tY2xhc3Mgc2NvcGVzKS4gVGhpcyBpcyBhbiBvd25lcnNoaXAgYm91bmRhcnksIG5vdCBhbiBpbi1wbGFjZSBmcmVlemVyOlxuICogbGl2ZSBjYXBhYmlsaXRpZXMgYW5kIGV4cGxpY2l0bHkgZnJvemVuIHdyYXBwZXJzIGFyZSBib3Jyb3dlZCwgbmV2ZXIgd2Fsa2VkLlxuICogU2F2ZWQgcmVjb3JkcyBzdGlsbCB1c2UgYGNhcHR1cmUvZnJlZXplLnRzIMK3IGRlZXBGcmVlemVgIHVuY2hhbmdlZC5cbiAqL1xuXG4vKipcbiAqIFRocm93cyBpZiBga2V5YCBpcyBhbiBvd24gcHJvcGVydHkgb2YgYHJlYWRPbmx5VmFsdWVzYC5cbiAqIFNhZmUgYWdhaW5zdCBwcm90b3R5cGUgcG9sbHV0aW9uIOKAlCB1c2VzIGBoYXNPd25Qcm9wZXJ0eWAgb24gdGhlIHNwZWNpZmljIG9iamVjdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydE5vdFJlYWRvbmx5KHJlYWRPbmx5VmFsdWVzOiB1bmtub3duLCBrZXk6IHN0cmluZywgb3BlcmF0aW9uOiAnd3JpdGUnIHwgJ2RlbGV0ZScpOiB2b2lkIHtcbiAgaWYgKFxuICAgIHJlYWRPbmx5VmFsdWVzICYmXG4gICAgdHlwZW9mIHJlYWRPbmx5VmFsdWVzID09PSAnb2JqZWN0JyAmJlxuICAgIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyZWFkT25seVZhbHVlcywga2V5KVxuICApIHtcbiAgICBpZiAob3BlcmF0aW9uID09PSAnZGVsZXRlJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgZGVsZXRlIHJlYWRvbmx5IGlucHV0IGtleSBcIiR7a2V5fVwiIOKAlCBpbnB1dCB2YWx1ZXMgYXJlIGltbXV0YWJsZWApO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCB3cml0ZSB0byByZWFkb25seSBpbnB1dCBrZXkgXCIke2tleX1cIiDigJQgdXNlIGdldEFyZ3MoKSB0byByZWFkIGlucHV0IHZhbHVlc2ApO1xuICB9XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIGZyb3plbiBhcmd1bWVudCB2aWV3LCBjb3B5aW5nIG11dGFibGUgb3JkaW5hcnkgcmVjb3JkcyBhbmQgYXJyYXlzLlxuICogRnVuY3Rpb25zLCBvcGFxdWUgb2JqZWN0cyBhbmQgYWxyZWFkeS1mcm96ZW4gbmVzdGVkIHZhbHVlcyByZW1haW4gYm9ycm93ZWQg4oCUXG4gKiBzbyBvdmVyIGEge0BsaW5rIHNuYXBzaG90UnVuSW5wdXR9IHNuYXBzaG90IChldmVyeSBjb250YWluZXIgYWxyZWFkeSBmcm96ZW4pXG4gKiBhIHNjb3BlIHBheXMgb25seSBPKHJvb3Qga2V5cykuIENhbGxlZCBvbmNlIHBlciBzY29wZSBhdCBjb25zdHJ1Y3Rpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGcm96ZW5BcmdzKHJlYWRPbmx5VmFsdWVzOiB1bmtub3duKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICBpZiAoIXJlYWRPbmx5VmFsdWVzIHx8IHR5cGVvZiByZWFkT25seVZhbHVlcyAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gT2JqZWN0LmZyZWV6ZSh7fSk7XG4gIH1cbiAgY29uc3QgYXJncyA9IHsgLi4uKHJlYWRPbmx5VmFsdWVzIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KSB9O1xuICAvLyBSb290IHNwcmVhZCBzZW1hbnRpY3M6IGEgcGxhaW4gcmVjb3JkIG9mIG93biBlbnVtZXJhYmxlIHN0cmluZy9zeW1ib2wga2V5cyxcbiAgLy8gZXZlbiBmb3IgYXJyYXkgaW5wdXQuIFNlZWQgYmVmb3JlIHdhbGtpbmcgc28gcm9vdCBjeWNsZXMgY2xvc2Ugb24gdGhlIGNvcHkuXG4gIGNvbnN0IGNvcGllcyA9IG5ldyBXZWFrTWFwPG9iamVjdCwgb2JqZWN0PihbW3JlYWRPbmx5VmFsdWVzLCBhcmdzXV0pO1xuICBjb3B5UHJvcGVydGllcyhhcmdzLCBhcmdzLCBjb3BpZXMpO1xuICByZXR1cm4gT2JqZWN0LmZyZWV6ZShhcmdzKTtcbn1cblxuLyoqIE9uZSBtZW1vaXplZCB0cmF2ZXJzYWw6IGNvcHkgZWFjaCBvd25lZCBjb250YWluZXIgb25jZSwgdGhlbiBmcmVlemUgb25seSBpdC4gKi9cbmZ1bmN0aW9uIHNuYXBzaG90VmFsdWUodmFsdWU6IHVua25vd24sIGNvcGllczogV2Vha01hcDxvYmplY3QsIG9iamVjdD4pOiB1bmtub3duIHtcbiAgaWYgKHZhbHVlID09PSBudWxsIHx8IHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcpIHJldHVybiB2YWx1ZTtcbiAgY29uc3QgZXhpc3RpbmcgPSBjb3BpZXMuZ2V0KHZhbHVlKTtcbiAgaWYgKGV4aXN0aW5nKSByZXR1cm4gZXhpc3Rpbmc7XG4gIGlmIChPYmplY3QuaXNGcm96ZW4odmFsdWUpKSByZXR1cm4gdmFsdWU7XG5cbiAgY29uc3QgcHJvdG90eXBlID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHZhbHVlKTtcbiAgY29uc3QgaXNBcnJheSA9IEFycmF5LmlzQXJyYXkodmFsdWUpO1xuICBpZiAocHJvdG90eXBlICE9PSBudWxsICYmIHByb3RvdHlwZSAhPT0gKGlzQXJyYXkgPyBBcnJheS5wcm90b3R5cGUgOiBPYmplY3QucHJvdG90eXBlKSkgcmV0dXJuIHZhbHVlO1xuXG4gIGNvbnN0IGNvcHk6IG9iamVjdCA9IGlzQXJyYXkgPyBPYmplY3Quc2V0UHJvdG90eXBlT2YobmV3IEFycmF5KHZhbHVlLmxlbmd0aCksIHByb3RvdHlwZSkgOiBPYmplY3QuY3JlYXRlKHByb3RvdHlwZSk7XG4gIGNvcGllcy5zZXQodmFsdWUsIGNvcHkpO1xuICBjb3B5UHJvcGVydGllcyh2YWx1ZSwgY29weSwgY29waWVzKTtcbiAgcmV0dXJuIE9iamVjdC5mcmVlemUoY29weSk7XG59XG5cbi8qKiBNYXRlcmlhbGl6ZSBhY2Nlc3NvcnMgb25jZTsgZGVmaW5lIGRhdGEga2V5cyBzYWZlbHksIGluY2x1ZGluZyBfX3Byb3RvX18uICovXG5mdW5jdGlvbiBjb3B5UHJvcGVydGllcyhzb3VyY2U6IG9iamVjdCwgdGFyZ2V0OiBvYmplY3QsIGNvcGllczogV2Vha01hcDxvYmplY3QsIG9iamVjdD4pOiB2b2lkIHtcbiAgZm9yIChjb25zdCBrZXkgb2YgUmVmbGVjdC5vd25LZXlzKHNvdXJjZSkpIHtcbiAgICBjb25zdCBkZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzb3VyY2UsIGtleSk7XG4gICAgaWYgKCFkZXNjcmlwdG9yKSBjb250aW51ZTtcbiAgICAvLyBBbiBhcnJheSBhbHJlYWR5IG93bnMgaXRzIG5vbi1jb25maWd1cmFibGUgbGVuZ3RoOyBob2xlcyByZW1haW4gaG9sZXMuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGFyZ2V0KSAmJiBrZXkgPT09ICdsZW5ndGgnKSBjb250aW51ZTtcbiAgICBjb25zdCB2YWx1ZSA9IHNuYXBzaG90VmFsdWUoUmVmbGVjdC5nZXQoc291cmNlLCBrZXkpLCBjb3BpZXMpO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwge1xuICAgICAgdmFsdWUsXG4gICAgICBlbnVtZXJhYmxlOiBkZXNjcmlwdG9yLmVudW1lcmFibGUsXG4gICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIFRoZSBPTkUgb3duZWQsIGZyb3plbiBpbnB1dCBzbmFwc2hvdCBvZiBhIHJ1biBsZWcg4oCUIHRha2VuIG9uY2UgcGVyIGBydW4oKWAgL1xuICogYHJlc3VtZSgpYCB0cmF2ZXJzZXIgKGFuZCBwZXIgc3ViZmxvdyBtb3VudCwgd2hvc2UgbWFwcGVkIGlucHV0IGlzIGl0cyBvd24pXG4gKiBhbmQgaGFuZGVkIHRvIGV2ZXJ5IHNjb3BlIGZhY3Rvcnkgb2YgdGhhdCBsZWcuIEEgY2FsbGVyIGVkaXQgdG8gdGhlIGlucHV0XG4gKiBhZnRlciB0aGUgbGVnIHN0YXJ0cyByZWFjaGVzIG5vIHNjb3BlIG9mIGl0LiBOb24tb2JqZWN0IGlucHV0IHBhc3NlcyB0aHJvdWdoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc25hcHNob3RSdW5JbnB1dChpbnB1dDogdW5rbm93bik6IHVua25vd24ge1xuICBpZiAoaW5wdXQgPT09IG51bGwgfHwgdHlwZW9mIGlucHV0ICE9PSAnb2JqZWN0JykgcmV0dXJuIGlucHV0O1xuICAvLyBUaGUgc25hcHNob3Qgcm9vdCBrZWVwcyBBTEwgdGhlIGlucHV0J3Mgb3duIGtleXMgKG5vbi1lbnVtZXJhYmxlIG9uZXNcbiAgLy8gaW5jbHVkZWQpLCBzbyB0aGUgcmVhZG9ubHkta2V5IGNoZWNrIG92ZXIgaXQgcmVmdXNlcyBleGFjdGx5IHdoYXQgaXRcbiAgLy8gcmVmdXNlZCBvdmVyIHRoZSBpbnB1dC4gQSBib3Jyb3dlZCByb290IChvcGFxdWUgb3IgY2FsbGVyLWZyb3plbikgaXMgbm90XG4gIC8vIGNvcGllZCBieSB0aGUgd2Fsaywgc28gaXRzIGtleXMgYXJlIGNvcGllZCBvbnRvIGEgcGxhaW4gZnJvemVuIHJlY29yZCBoZXJlLlxuICBjb25zdCBvd25lZCA9IHNuYXBzaG90VmFsdWUoaW5wdXQsIG5ldyBXZWFrTWFwKCkpO1xuICBpZiAob3duZWQgIT09IGlucHV0KSByZXR1cm4gb3duZWQ7XG4gIGNvbnN0IHJvb3QgPSB7fTtcbiAgY29weVByb3BlcnRpZXMoaW5wdXQsIHJvb3QsIG5ldyBXZWFrTWFwPG9iamVjdCwgb2JqZWN0PihbW2lucHV0LCByb290XV0pKTtcbiAgcmV0dXJuIE9iamVjdC5mcmVlemUocm9vdCk7XG59XG4iXX0=
|
|
@@ -1,40 +1,41 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* attachScopeMethods — Attach ScopeFacade-compatible methods onto any target object.
|
|
4
|
-
*
|
|
5
|
-
* Gives non-class scopes (like Zod-generated proxies) the same convenience
|
|
6
|
-
* methods as ScopeFacade subclasses: getValue, setValue, addDebugInfo, etc.
|
|
7
|
-
*
|
|
8
|
-
* API matches ScopeFacade's simplified signatures (no path arrays).
|
|
9
|
-
*/
|
|
10
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
exports.attachScopeMethods = void 0;
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
3
|
+
exports.attachScopeMethods = exports.attachFacadeMethods = exports.SCOPE_CONVENIENCE_METHODS = void 0;
|
|
4
|
+
const runtime_js_1 = require("../runtime.js");
|
|
5
|
+
const ScopeFacade_js_1 = require("../ScopeFacade.js");
|
|
6
|
+
/** One inventory for method attachment and schema-name collision checks. */
|
|
7
|
+
exports.SCOPE_CONVENIENCE_METHODS = [
|
|
8
|
+
'addDebugInfo',
|
|
9
|
+
'addDebugMessage',
|
|
10
|
+
'addErrorInfo',
|
|
11
|
+
'addMetric',
|
|
12
|
+
'addEval',
|
|
13
|
+
'getInitialValueFor',
|
|
14
|
+
'getValue',
|
|
15
|
+
'setValue',
|
|
16
|
+
'updateValue',
|
|
17
|
+
'setObjectInRoot',
|
|
18
|
+
'getArgs',
|
|
19
|
+
'getEnv',
|
|
20
|
+
'getPipelineId',
|
|
21
|
+
'emitEvent',
|
|
22
|
+
];
|
|
23
|
+
/** Bind to an EXISTING facade: an adapter must not install a second commit observer. */
|
|
24
|
+
function attachFacadeMethods(target, facade) {
|
|
25
|
+
for (const name of exports.SCOPE_CONVENIENCE_METHODS) {
|
|
26
|
+
Object.defineProperty(target, name, {
|
|
27
|
+
value: facade[name].bind(facade),
|
|
28
|
+
enumerable: true,
|
|
29
|
+
configurable: true,
|
|
30
|
+
writable: true,
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
return (0, runtime_js_1.registerScopeRuntime)(target, { target: facade, handlesAssignments: false });
|
|
34
|
+
}
|
|
35
|
+
exports.attachFacadeMethods = attachFacadeMethods;
|
|
36
|
+
/** Attach standard scope conveniences to an object backed by a real stage context. */
|
|
37
|
+
function attachScopeMethods(target, ctx, stageName, readOnly, executionEnv) {
|
|
38
|
+
return attachFacadeMethods(target, new ScopeFacade_js_1.ScopeFacade(ctx, stageName, readOnly, executionEnv));
|
|
38
39
|
}
|
|
39
40
|
exports.attachScopeMethods = attachScopeMethods;
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZVN0YXRlQ29tcGF0aWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvc2NvcGUvcHJvdmlkZXJzL2Jhc2VTdGF0ZUNvbXBhdGlibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsOENBQXFEO0FBQ3JELHNEQUFnRDtBQUVoRCw0RUFBNEU7QUFDL0QsUUFBQSx5QkFBeUIsR0FBRztJQUN2QyxjQUFjO0lBQ2QsaUJBQWlCO0lBQ2pCLGNBQWM7SUFDZCxXQUFXO0lBQ1gsU0FBUztJQUNULG9CQUFvQjtJQUNwQixVQUFVO0lBQ1YsVUFBVTtJQUNWLGFBQWE7SUFDYixpQkFBaUI7SUFDakIsU0FBUztJQUNULFFBQVE7SUFDUixlQUFlO0lBQ2YsV0FBVztDQUNzQyxDQUFDO0FBSXBELHdGQUF3RjtBQUN4RixTQUFnQixtQkFBbUIsQ0FBbUIsTUFBUyxFQUFFLE1BQW1CO0lBQ2xGLEtBQUssTUFBTSxJQUFJLElBQUksaUNBQXlCLEVBQUUsQ0FBQztRQUM3QyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUU7WUFDbEMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQ2hDLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLFlBQVksRUFBRSxJQUFJO1lBQ2xCLFFBQVEsRUFBRSxJQUFJO1NBQ2YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELE9BQU8sSUFBQSxpQ0FBb0IsRUFBQyxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLGtCQUFrQixFQUFFLEtBQUssRUFBRSxDQUFnQyxDQUFDO0FBQ3BILENBQUM7QUFWRCxrREFVQztBQUVELHNGQUFzRjtBQUN0RixTQUFnQixrQkFBa0IsQ0FDaEMsTUFBUyxFQUNULEdBQWlCLEVBQ2pCLFNBQWlCLEVBQ2pCLFFBQWtCLEVBQ2xCLFlBQTJEO0lBRTNELE9BQU8sbUJBQW1CLENBQUMsTUFBTSxFQUFFLElBQUksNEJBQVcsQ0FBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDO0FBQzlGLENBQUM7QUFSRCxnREFRQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBUaGluIGNvbnZlbmllbmNlLW1ldGhvZCBhZGFwdGVyLiBTY29wZUZhY2FkZSBvd25zIGV2ZXJ5IHN0YXRlL2xpZmVjeWNsZSBydWxlLiAqL1xuaW1wb3J0IHR5cGUgeyBTdGFnZUNvbnRleHQgfSBmcm9tICcuLi8uLi9tZW1vcnkvU3RhZ2VDb250ZXh0LmpzJztcbmltcG9ydCB7IHJlZ2lzdGVyU2NvcGVSdW50aW1lIH0gZnJvbSAnLi4vcnVudGltZS5qcyc7XG5pbXBvcnQgeyBTY29wZUZhY2FkZSB9IGZyb20gJy4uL1Njb3BlRmFjYWRlLmpzJztcblxuLyoqIE9uZSBpbnZlbnRvcnkgZm9yIG1ldGhvZCBhdHRhY2htZW50IGFuZCBzY2hlbWEtbmFtZSBjb2xsaXNpb24gY2hlY2tzLiAqL1xuZXhwb3J0IGNvbnN0IFNDT1BFX0NPTlZFTklFTkNFX01FVEhPRFMgPSBbXG4gICdhZGREZWJ1Z0luZm8nLFxuICAnYWRkRGVidWdNZXNzYWdlJyxcbiAgJ2FkZEVycm9ySW5mbycsXG4gICdhZGRNZXRyaWMnLFxuICAnYWRkRXZhbCcsXG4gICdnZXRJbml0aWFsVmFsdWVGb3InLFxuICAnZ2V0VmFsdWUnLFxuICAnc2V0VmFsdWUnLFxuICAndXBkYXRlVmFsdWUnLFxuICAnc2V0T2JqZWN0SW5Sb290JyxcbiAgJ2dldEFyZ3MnLFxuICAnZ2V0RW52JyxcbiAgJ2dldFBpcGVsaW5lSWQnLFxuICAnZW1pdEV2ZW50Jyxcbl0gYXMgY29uc3Qgc2F0aXNmaWVzIHJlYWRvbmx5IChrZXlvZiBTY29wZUZhY2FkZSlbXTtcblxuZXhwb3J0IHR5cGUgU2NvcGVDb252ZW5pZW5jZU1ldGhvZHMgPSBQaWNrPFNjb3BlRmFjYWRlLCAodHlwZW9mIFNDT1BFX0NPTlZFTklFTkNFX01FVEhPRFMpW251bWJlcl0+O1xuXG4vKiogQmluZCB0byBhbiBFWElTVElORyBmYWNhZGU6IGFuIGFkYXB0ZXIgbXVzdCBub3QgaW5zdGFsbCBhIHNlY29uZCBjb21taXQgb2JzZXJ2ZXIuICovXG5leHBvcnQgZnVuY3Rpb24gYXR0YWNoRmFjYWRlTWV0aG9kczxUIGV4dGVuZHMgb2JqZWN0Pih0YXJnZXQ6IFQsIGZhY2FkZTogU2NvcGVGYWNhZGUpOiBUICYgU2NvcGVDb252ZW5pZW5jZU1ldGhvZHMge1xuICBmb3IgKGNvbnN0IG5hbWUgb2YgU0NPUEVfQ09OVkVOSUVOQ0VfTUVUSE9EUykge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgIHZhbHVlOiBmYWNhZGVbbmFtZV0uYmluZChmYWNhZGUpLFxuICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIHJldHVybiByZWdpc3RlclNjb3BlUnVudGltZSh0YXJnZXQsIHsgdGFyZ2V0OiBmYWNhZGUsIGhhbmRsZXNBc3NpZ25tZW50czogZmFsc2UgfSkgYXMgVCAmIFNjb3BlQ29udmVuaWVuY2VNZXRob2RzO1xufVxuXG4vKiogQXR0YWNoIHN0YW5kYXJkIHNjb3BlIGNvbnZlbmllbmNlcyB0byBhbiBvYmplY3QgYmFja2VkIGJ5IGEgcmVhbCBzdGFnZSBjb250ZXh0LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGF0dGFjaFNjb3BlTWV0aG9kczxUIGV4dGVuZHMgb2JqZWN0PihcbiAgdGFyZ2V0OiBULFxuICBjdHg6IFN0YWdlQ29udGV4dCxcbiAgc3RhZ2VOYW1lOiBzdHJpbmcsXG4gIHJlYWRPbmx5PzogdW5rbm93bixcbiAgZXhlY3V0aW9uRW52PzogQ29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBTY29wZUZhY2FkZT5bM10sXG4pOiBUICYgU2NvcGVDb252ZW5pZW5jZU1ldGhvZHMge1xuICByZXR1cm4gYXR0YWNoRmFjYWRlTWV0aG9kcyh0YXJnZXQsIG5ldyBTY29wZUZhY2FkZShjdHgsIHN0YWdlTmFtZSwgcmVhZE9ubHksIGV4ZWN1dGlvbkVudikpO1xufVxuIl19
|
|
@@ -8,7 +8,7 @@ exports.makeClassProvider = exports.makeFactoryProvider = void 0;
|
|
|
8
8
|
function makeFactoryProvider(factory) {
|
|
9
9
|
return {
|
|
10
10
|
kind: 'factory',
|
|
11
|
-
create: (ctx, stageName, ro) => factory(ctx, stageName, ro),
|
|
11
|
+
create: (ctx, stageName, ro, env) => factory(ctx, stageName, ro, env),
|
|
12
12
|
};
|
|
13
13
|
}
|
|
14
14
|
exports.makeFactoryProvider = makeFactoryProvider;
|
|
@@ -16,8 +16,8 @@ exports.makeFactoryProvider = makeFactoryProvider;
|
|
|
16
16
|
function makeClassProvider(Ctor) {
|
|
17
17
|
return {
|
|
18
18
|
kind: 'class',
|
|
19
|
-
create: (ctx, stageName, ro) => new Ctor(ctx, stageName, ro),
|
|
19
|
+
create: (ctx, stageName, ro, env) => new Ctor(ctx, stageName, ro, env),
|
|
20
20
|
};
|
|
21
21
|
}
|
|
22
22
|
exports.makeClassProvider = makeClassProvider;
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9zY29wZS9wcm92aWRlcnMvcHJvdmlkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7R0FFRzs7O0FBSUgsMkRBQTJEO0FBQzNELFNBQWdCLG1CQUFtQixDQUFTLE9BQTZCO0lBQ3ZFLE9BQU87UUFDTCxJQUFJLEVBQUUsU0FBUztRQUNmLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQztLQUN0RSxDQUFDO0FBQ0osQ0FBQztBQUxELGtEQUtDO0FBRUQsa0RBQWtEO0FBQ2xELFNBQWdCLGlCQUFpQixDQUMvQixJQUErRDtJQUUvRCxPQUFPO1FBQ0wsSUFBSSxFQUFFLE9BQU87UUFDYixNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQztLQUN2RSxDQUFDO0FBQ0osQ0FBQztBQVBELDhDQU9DIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBQcm92aWRlciBGYWN0b3JpZXMg4oCUIFdyYXAgZmFjdG9yeSBmdW5jdGlvbnMgYW5kIGNsYXNzIGNvbnN0cnVjdG9ycyBhcyBTY29wZVByb3ZpZGVyc1xuICovXG5cbmltcG9ydCB0eXBlIHsgU2NvcGVGYWN0b3J5LCBTY29wZVByb3ZpZGVyIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbi8qKiBXcmFwIGFuIGV4aXN0aW5nIGZhY3RvcnkgZnVuY3Rpb24gYXMgYSBTY29wZVByb3ZpZGVyICovXG5leHBvcnQgZnVuY3Rpb24gbWFrZUZhY3RvcnlQcm92aWRlcjxUU2NvcGU+KGZhY3Rvcnk6IFNjb3BlRmFjdG9yeTxUU2NvcGU+KTogU2NvcGVQcm92aWRlcjxUU2NvcGU+IHtcbiAgcmV0dXJuIHtcbiAgICBraW5kOiAnZmFjdG9yeScsXG4gICAgY3JlYXRlOiAoY3R4LCBzdGFnZU5hbWUsIHJvLCBlbnYpID0+IGZhY3RvcnkoY3R4LCBzdGFnZU5hbWUsIHJvLCBlbnYpLFxuICB9O1xufVxuXG4vKiogV3JhcCBhIGNsYXNzIGNvbnN0cnVjdG9yIGFzIGEgU2NvcGVQcm92aWRlciAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1ha2VDbGFzc1Byb3ZpZGVyPFRTY29wZT4oXG4gIEN0b3I6IG5ldyAoLi4uYXJnczogUGFyYW1ldGVyczxTY29wZUZhY3Rvcnk8VFNjb3BlPj4pID0+IFRTY29wZSxcbik6IFNjb3BlUHJvdmlkZXI8VFNjb3BlPiB7XG4gIHJldHVybiB7XG4gICAga2luZDogJ2NsYXNzJyxcbiAgICBjcmVhdGU6IChjdHgsIHN0YWdlTmFtZSwgcm8sIGVudikgPT4gbmV3IEN0b3IoY3R4LCBzdGFnZU5hbWUsIHJvLCBlbnYpLFxuICB9O1xufVxuIl19
|
|
@@ -8,9 +8,9 @@ const registry_js_1 = require("./registry.js");
|
|
|
8
8
|
/** Normalize a factory/class/schema-like input into a ScopeFactory the pipeline expects */
|
|
9
9
|
function toScopeFactory(input, options) {
|
|
10
10
|
const provider = (0, registry_js_1.resolveScopeProvider)(input, options);
|
|
11
|
-
return (ctx, stageName, ro) => provider.create(ctx, stageName, ro);
|
|
11
|
+
return (ctx, stageName, ro, env) => provider.create(ctx, stageName, ro, env);
|
|
12
12
|
}
|
|
13
13
|
exports.toScopeFactory = toScopeFactory;
|
|
14
14
|
var registry_js_2 = require("./registry.js");
|
|
15
15
|
Object.defineProperty(exports, "registerScopeResolver", { enumerable: true, get: function () { return registry_js_2.registerScopeResolver; } });
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvc2NvcGUvcHJvdmlkZXJzL3Jlc29sdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7QUFFSCwrQ0FBcUQ7QUFHckQsMkZBQTJGO0FBQzNGLFNBQWdCLGNBQWMsQ0FBUyxLQUFjLEVBQUUsT0FBd0I7SUFDN0UsTUFBTSxRQUFRLEdBQTBCLElBQUEsa0NBQW9CLEVBQVMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3JGLE9BQU8sQ0FBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDL0UsQ0FBQztBQUhELHdDQUdDO0FBRUQsNkNBQXNEO0FBQTdDLG9IQUFBLHFCQUFxQixPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiByZXNvbHZlLnRzIOKAlCBQdWJsaWMgQVBJIGZvciBjb252ZXJ0aW5nIHNjb3BlIGlucHV0cyB0byBTY29wZUZhY3RvcnlcbiAqL1xuXG5pbXBvcnQgeyByZXNvbHZlU2NvcGVQcm92aWRlciB9IGZyb20gJy4vcmVnaXN0cnkuanMnO1xuaW1wb3J0IHR5cGUgeyBSZXNvbHZlT3B0aW9ucywgU2NvcGVGYWN0b3J5LCBTY29wZVByb3ZpZGVyIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbi8qKiBOb3JtYWxpemUgYSBmYWN0b3J5L2NsYXNzL3NjaGVtYS1saWtlIGlucHV0IGludG8gYSBTY29wZUZhY3RvcnkgdGhlIHBpcGVsaW5lIGV4cGVjdHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1Njb3BlRmFjdG9yeTxUU2NvcGU+KGlucHV0OiB1bmtub3duLCBvcHRpb25zPzogUmVzb2x2ZU9wdGlvbnMpOiBTY29wZUZhY3Rvcnk8VFNjb3BlPiB7XG4gIGNvbnN0IHByb3ZpZGVyOiBTY29wZVByb3ZpZGVyPFRTY29wZT4gPSByZXNvbHZlU2NvcGVQcm92aWRlcjxUU2NvcGU+KGlucHV0LCBvcHRpb25zKTtcbiAgcmV0dXJuIChjdHgsIHN0YWdlTmFtZSwgcm8sIGVudikgPT4gcHJvdmlkZXIuY3JlYXRlKGN0eCwgc3RhZ2VOYW1lLCBybywgZW52KTtcbn1cblxuZXhwb3J0IHsgcmVnaXN0ZXJTY29wZVJlc29sdmVyIH0gZnJvbSAnLi9yZWdpc3RyeS5qcyc7XG5leHBvcnQgdHlwZSB7IFJlc29sdmVPcHRpb25zLCBTY29wZVByb3ZpZGVyIH0gZnJvbSAnLi90eXBlcy5qcyc7XG4iXX0=
|
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
* StageContextLike is the minimal surface from StageContext to avoid tight coupling.
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3Njb3BlL3Byb3ZpZGVycy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7O0dBS0ciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFByb3ZpZGVyIFN5c3RlbSBUeXBlc1xuICpcbiAqIERlZmluZXMgY29udHJhY3RzIGJldHdlZW4gdGhlIHJlZ2lzdHJ5LCByZXNvbHZlcnMsIGFuZCBwcm92aWRlcnMuXG4gKiBTdGFnZUNvbnRleHRMaWtlIGlzIHRoZSBtaW5pbWFsIHN1cmZhY2UgZnJvbSBTdGFnZUNvbnRleHQgdG8gYXZvaWQgdGlnaHQgY291cGxpbmcuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBTdGFnZUNvbnRleHQgfSBmcm9tICcuLi8uLi9tZW1vcnkvU3RhZ2VDb250ZXh0LmpzJztcbmltcG9ydCB0eXBlIHsgU2NvcGVGYWNhZGUgfSBmcm9tICcuLi9TY29wZUZhY2FkZS5qcyc7XG5cbi8qKiBNaW5pbWFsIHN1cmZhY2UgZnJvbSBTdGFnZUNvbnRleHQgKHBhdGNoLWJhc2VkKSAqL1xuZXhwb3J0IGludGVyZmFjZSBTdGFnZUNvbnRleHRMaWtlIHtcbiAgZ2V0VmFsdWUocGF0aDogc3RyaW5nW10sIGtleT86IHN0cmluZyk6IHVua25vd247XG4gIHNldE9iamVjdChwYXRoOiBzdHJpbmdbXSwga2V5OiBzdHJpbmcsIHZhbHVlOiB1bmtub3duLCBzaG91bGRSZWRhY3Q/OiBib29sZWFuLCBkZXNjcmlwdGlvbj86IHN0cmluZyk6IHZvaWQ7XG4gIHVwZGF0ZU9iamVjdChwYXRoOiBzdHJpbmdbXSwga2V5OiBzdHJpbmcsIHZhbHVlOiB1bmtub3duLCBkZXNjcmlwdGlvbj86IHN0cmluZyk6IHZvaWQ7XG5cbiAgYWRkTG9nPyhrZXk6IHN0cmluZywgdmFsOiB1bmtub3duKTogdm9pZDtcbiAgYWRkRXJyb3I/KGtleTogc3RyaW5nLCB2YWw6IHVua25vd24pOiB2b2lkO1xuXG4gIGdldEdsb2JhbD8oa2V5OiBzdHJpbmcpOiB1bmtub3duO1xuICBzZXRSb290PyhrZXk6IHN0cmluZywgdmFsdWU6IHVua25vd24pOiB2b2lkO1xuICBzZXRHbG9iYWw/KGtleTogc3RyaW5nLCB2YWx1ZTogdW5rbm93biwgZGVzY3JpcHRpb24/OiBzdHJpbmcpOiB2b2lkO1xuXG4gIHBpcGVsaW5lSWQ/OiBzdHJpbmc7XG4gIHJ1bklkPzogc3RyaW5nO1xufVxuXG4vKiogRmFjdG9yeSB0eXBlIHRoZSBwaXBlbGluZSBleHBlY3RzICovXG5leHBvcnQgdHlwZSBTY29wZUZhY3Rvcnk8VFNjb3BlPiA9IChcbiAgY3R4OiBTdGFnZUNvbnRleHQsXG4gIHN0YWdlTmFtZTogc3RyaW5nLFxuICByZWFkT25seT86IHVua25vd24sXG4gIGV4ZWN1dGlvbkVudj86IENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgU2NvcGVGYWNhZGU+WzNdLFxuKSA9PiBUU2NvcGU7XG5cbi8qKiBTdHJhdGVneSBvYmplY3QgdGhhdCBjcmVhdGVzIGEgc2NvcGUgKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2NvcGVQcm92aWRlcjxUU2NvcGU+IHtcbiAgcmVhZG9ubHkga2luZDogc3RyaW5nO1xuICBjcmVhdGUoLi4uYXJnczogUGFyYW1ldGVyczxTY29wZUZhY3Rvcnk8VFNjb3BlPj4pOiBUU2NvcGU7XG59XG5cbi8qKiBSZXNvbHZlciB0aGF0IGNhbiB0dXJuIGFuIGFyYml0cmFyeSBpbnB1dCBpbnRvIGEgU2NvcGVQcm92aWRlciAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm92aWRlclJlc29sdmVyPFRTY29wZSA9IGFueT4ge1xuICBuYW1lOiBzdHJpbmc7XG4gIGNhbkhhbmRsZShpbnB1dDogdW5rbm93bik6IGJvb2xlYW47XG4gIG1ha2VQcm92aWRlcihpbnB1dDogdW5rbm93biwgb3B0aW9ucz86IHVua25vd24pOiBTY29wZVByb3ZpZGVyPFRTY29wZT47XG59XG5cbi8qKiBPcHRpb25hbCBzdHJpY3RuZXNzIGZvciBzY2hlbWEtYmFja2VkIHByb3ZpZGVycyAqL1xuZXhwb3J0IHR5cGUgU3RyaWN0TW9kZSA9ICdvZmYnIHwgJ3dhcm4nIHwgJ2RlbnknO1xuXG4vKiogT3B0aW9ucyBiYWcgcGFzc2VkIHRvIHJlc29sdmUoKSAqL1xuZXhwb3J0IHR5cGUgUmVzb2x2ZU9wdGlvbnMgPSB7XG4gIHpvZD86IHsgc3RyaWN0PzogU3RyaWN0TW9kZSB9O1xufTtcbiJdfQ==
|
|
@@ -33,7 +33,6 @@ class MetricRecorder {
|
|
|
33
33
|
/** 1:1 per-step storage (Convention 1 — composed, not inherited). */
|
|
34
34
|
store = new KeyedStore_js_1.KeyedStore();
|
|
35
35
|
stageStartTimes = new Map();
|
|
36
|
-
currentRuntimeStageId = '';
|
|
37
36
|
stageFilter;
|
|
38
37
|
constructor(idOrOptions) {
|
|
39
38
|
if (typeof idOrOptions === 'string') {
|
|
@@ -49,12 +48,12 @@ class MetricRecorder {
|
|
|
49
48
|
shouldRecord(stageName) {
|
|
50
49
|
return !this.stageFilter || this.stageFilter(stageName);
|
|
51
50
|
}
|
|
52
|
-
/**
|
|
53
|
-
|
|
54
|
-
const key =
|
|
51
|
+
/** Each event owns its attribution; another stage may have started meanwhile. */
|
|
52
|
+
forEvent(event) {
|
|
53
|
+
const key = event.runtimeStageId;
|
|
55
54
|
let m = this.store.get(key);
|
|
56
55
|
if (!m) {
|
|
57
|
-
m = { stageName:
|
|
56
|
+
m = { stageName: event.stageName, readCount: 0, writeCount: 0, commitCount: 0, pauseCount: 0, duration: 0 };
|
|
58
57
|
this.store.set(key, m);
|
|
59
58
|
}
|
|
60
59
|
return m;
|
|
@@ -87,35 +86,34 @@ class MetricRecorder {
|
|
|
87
86
|
onStageStart(event) {
|
|
88
87
|
if (!this.shouldRecord(event.stageName))
|
|
89
88
|
return;
|
|
90
|
-
this.currentRuntimeStageId = event.runtimeStageId;
|
|
91
89
|
this.stageStartTimes.set(event.runtimeStageId, event.timestamp);
|
|
92
|
-
const m = this.
|
|
90
|
+
const m = this.forEvent(event);
|
|
93
91
|
m.stageName = event.stageName;
|
|
94
92
|
}
|
|
95
93
|
onRead(event) {
|
|
96
94
|
if (!this.shouldRecord(event.stageName))
|
|
97
95
|
return;
|
|
98
|
-
this.
|
|
96
|
+
this.forEvent(event).readCount++;
|
|
99
97
|
}
|
|
100
98
|
onWrite(event) {
|
|
101
99
|
if (!this.shouldRecord(event.stageName))
|
|
102
100
|
return;
|
|
103
|
-
this.
|
|
101
|
+
this.forEvent(event).writeCount++;
|
|
104
102
|
}
|
|
105
103
|
onCommit(event) {
|
|
106
104
|
if (!this.shouldRecord(event.stageName))
|
|
107
105
|
return;
|
|
108
|
-
this.
|
|
106
|
+
this.forEvent(event).commitCount++;
|
|
109
107
|
}
|
|
110
108
|
onPause(event) {
|
|
111
109
|
if (!this.shouldRecord(event.stageName))
|
|
112
110
|
return;
|
|
113
|
-
this.
|
|
111
|
+
this.forEvent(event).pauseCount++;
|
|
114
112
|
}
|
|
115
113
|
onStageEnd(event) {
|
|
116
114
|
if (!this.shouldRecord(event.stageName))
|
|
117
115
|
return;
|
|
118
|
-
const m = this.
|
|
116
|
+
const m = this.forEvent(event);
|
|
119
117
|
if (event.duration !== undefined) {
|
|
120
118
|
m.duration = event.duration;
|
|
121
119
|
}
|
|
@@ -191,7 +189,6 @@ class MetricRecorder {
|
|
|
191
189
|
clear() {
|
|
192
190
|
this.store.clear();
|
|
193
191
|
this.stageStartTimes.clear();
|
|
194
|
-
this.currentRuntimeStageId = '';
|
|
195
192
|
}
|
|
196
193
|
/** Alias for clear() (backward compat). */
|
|
197
194
|
reset() {
|
|
@@ -199,4 +196,4 @@ class MetricRecorder {
|
|
|
199
196
|
}
|
|
200
197
|
}
|
|
201
198
|
exports.MetricRecorder = MetricRecorder;
|
|
202
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWV0cmljUmVjb3JkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3Njb3BlL3JlY29yZGVycy9NZXRyaWNSZWNvcmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUJHOzs7QUFFSCxnRUFBMEQ7QUFvRDFELE1BQWEsY0FBYztJQUNqQixNQUFNLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztJQUVuQixFQUFFLENBQVM7SUFDWCxrQkFBa0IsQ0FBb0I7SUFDL0MscUVBQXFFO0lBQ3BELEtBQUssR0FBRyxJQUFJLDBCQUFVLEVBQWUsQ0FBQztJQUMvQyxlQUFlLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7SUFDNUMscUJBQXFCLEdBQUcsRUFBRSxDQUFDO0lBQzNCLFdBQVcsQ0FBa0M7SUFFckQsWUFBWSxXQUE0QztRQUN0RCxJQUFJLE9BQU8sV0FBVyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxFQUFFLEdBQUcsV0FBVyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxXQUFXLENBQUM7UUFDeEMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsRUFBRSxHQUFHLFdBQVcsRUFBRSxFQUFFLElBQUksV0FBVyxFQUFFLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNwRSxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsRUFBRSxXQUFXLENBQUM7WUFDNUMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFdBQVcsRUFBRSxrQkFBa0IsSUFBSSxXQUFXLENBQUM7UUFDM0UsQ0FBQztJQUNILENBQUM7SUFFTyxZQUFZLENBQUMsU0FBaUI7UUFDcEMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsMkRBQTJEO0lBQ25ELE9BQU87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cEMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVO2dCQUM5QixXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVc7Z0JBQ2hDLFlBQVksRUFBRSxPQUFPLENBQUMsWUFBWTtnQkFDbEMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxXQUFXO2dCQUNoQyxLQUFLO2FBQ047U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELDhEQUE4RDtJQUM5RCxLQUFLO1FBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELDJDQUEyQztJQUMzQyxLQUFLO1FBQ0gsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2YsQ0FBQzs7QUExTEgsd0NBMkxDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBNZXRyaWNSZWNvcmRlciDigJQgcGVyLXN0ZXAgdGltaW5nIGFuZCBleGVjdXRpb24gY291bnRzLCBrZXllZCBieSBydW50aW1lU3RhZ2VJZC5cbiAqXG4gKiBTdG9yZXMgcGVyLWludm9jYXRpb24gZGF0YSBkdXJpbmcgdHJhdmVyc2FsLiBBZ2dyZWdhdGVkIHZpZXdzIGNvbXB1dGVkIG9uIHJlYWQuXG4gKiBDb21wb3NlcyBhIGBLZXllZFN0b3JlPFN0ZXBNZXRyaWNzPmAgZm9yIE8oMSkgbG9va3VwIGFuZCBzdGFuZGFyZCBvcGVyYXRpb25zXG4gKiAoQ29udmVudGlvbiAxIOKAlCBvbmUgcHVycG9zZSBwZXIgcmVjb3JkZXI6IHRoaXMgaXMgdGhlIFNjb3BlUmVjb3JkZXI7IHRoZSBzdG9yZVxuICogaXMgdGhlIHN0b3JhZ2UpLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBtZXRyaWMgPSBuZXcgTWV0cmljUmVjb3JkZXIoKTtcbiAqIGV4ZWN1dG9yLmF0dGFjaFNjb3BlUmVjb3JkZXIobWV0cmljKTtcbiAqIGF3YWl0IGV4ZWN1dG9yLnJ1bigpO1xuICpcbiAqIC8vIFBlci1zdGVwICh0aW1lLXRyYXZlbCk6XG4gKiBtZXRyaWMuZ2V0QnlLZXkoJ2NhbGwtbGxtIzUnKTsgIC8vIHsgc3RhZ2VOYW1lLCByZWFkQ291bnQsIHdyaXRlQ291bnQsIGR1cmF0aW9uIH1cbiAqXG4gKiAvLyBBZ2dyZWdhdGVkIChiYWNrd2FyZCBjb21wYXQpOlxuICogbWV0cmljLmdldE1ldHJpY3MoKTsgIC8vIHsgdG90YWxEdXJhdGlvbiwgdG90YWxSZWFkcywgc3RhZ2VNZXRyaWNzOiBNYXA8c3RhZ2VOYW1lLCBhZ2dyZWdhdGVkPiB9XG4gKlxuICogLy8gUHJvZ3Jlc3NpdmUgKHNsaWRlcik6XG4gKiBtZXRyaWMuYWNjdW11bGF0ZSgoc3VtLCBtKSA9PiBzdW0gKyBtLmR1cmF0aW9uLCAwLCB2aXNpYmxlS2V5cyk7XG4gKiBgYGBcbiAqL1xuXG5pbXBvcnQgeyBLZXllZFN0b3JlIH0gZnJvbSAnLi4vLi4vcmVjb3JkZXIvS2V5ZWRTdG9yZS5qcyc7XG5pbXBvcnQgdHlwZSB7IFJlY29yZGVyT3BlcmF0aW9uIH0gZnJvbSAnLi4vLi4vcmVjb3JkZXIvUmVjb3JkZXJPcGVyYXRpb24uanMnO1xuaW1wb3J0IHR5cGUgeyBDb21taXRFdmVudCwgUGF1c2VFdmVudCwgUmVhZEV2ZW50LCBTY29wZVJlY29yZGVyLCBTdGFnZUV2ZW50LCBXcml0ZUV2ZW50IH0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG4vKiogUGVyLWludm9jYXRpb24gbWV0cmljcyBmb3IgYSBzaW5nbGUgZXhlY3V0aW9uIHN0ZXAuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0ZXBNZXRyaWNzIHtcbiAgLyoqIEh1bWFuLXJlYWRhYmxlIHN0YWdlIG5hbWUuICovXG4gIHN0YWdlTmFtZTogc3RyaW5nO1xuICAvKiogTnVtYmVyIG9mIHNjb3BlIHJlYWRzIGR1cmluZyB0aGlzIGludm9jYXRpb24uICovXG4gIHJlYWRDb3VudDogbnVtYmVyO1xuICAvKiogTnVtYmVyIG9mIHNjb3BlIHdyaXRlcyBkdXJpbmcgdGhpcyBpbnZvY2F0aW9uLiAqL1xuICB3cml0ZUNvdW50OiBudW1iZXI7XG4gIC8qKiBOdW1iZXIgb2YgY29tbWl0cyBkdXJpbmcgdGhpcyBpbnZvY2F0aW9uLiAqL1xuICBjb21taXRDb3VudDogbnVtYmVyO1xuICAvKiogTnVtYmVyIG9mIHBhdXNlcyBkdXJpbmcgdGhpcyBpbnZvY2F0aW9uLiAqL1xuICBwYXVzZUNvdW50OiBudW1iZXI7XG4gIC8qKiBEdXJhdGlvbiBpbiBtcyBmb3IgdGhpcyBpbnZvY2F0aW9uLiAqL1xuICBkdXJhdGlvbjogbnVtYmVyO1xufVxuXG4vKiogQWdncmVnYXRlZCBtZXRyaWNzIGFjcm9zcyBhbGwgaW52b2NhdGlvbnMgKGJhY2t3YXJkIGNvbXBhdGlibGUpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBBZ2dyZWdhdGVkTWV0cmljcyB7XG4gIHRvdGFsRHVyYXRpb246IG51bWJlcjtcbiAgdG90YWxSZWFkczogbnVtYmVyO1xuICB0b3RhbFdyaXRlczogbnVtYmVyO1xuICB0b3RhbENvbW1pdHM6IG51bWJlcjtcbiAgdG90YWxQYXVzZXM6IG51bWJlcjtcbiAgLyoqIEFnZ3JlZ2F0ZWQgYnkgc3RhZ2VOYW1lIOKAlCBzdW1zIGFjcm9zcyBsb29wIGludm9jYXRpb25zLiAqL1xuICBzdGFnZU1ldHJpY3M6IE1hcDxzdHJpbmcsIFN0YWdlTWV0cmljcz47XG59XG5cbi8qKiBBZ2dyZWdhdGVkIHBlci1zdGFnZU5hbWUgKGJhY2t3YXJkIGNvbXBhdGlibGUgd2l0aCBwcmUtcnVudGltZVN0YWdlSWQgQVBJKS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RhZ2VNZXRyaWNzIHtcbiAgc3RhZ2VOYW1lOiBzdHJpbmc7XG4gIHJlYWRDb3VudDogbnVtYmVyO1xuICB3cml0ZUNvdW50OiBudW1iZXI7XG4gIGNvbW1pdENvdW50OiBudW1iZXI7XG4gIHBhdXNlQ291bnQ6IG51bWJlcjtcbiAgdG90YWxEdXJhdGlvbjogbnVtYmVyO1xuICBpbnZvY2F0aW9uQ291bnQ6IG51bWJlcjtcbn1cblxuLyoqIE9wdGlvbnMgZm9yIE1ldHJpY1JlY29yZGVyLiAqL1xuZXhwb3J0IGludGVyZmFjZSBNZXRyaWNSZWNvcmRlck9wdGlvbnMge1xuICAvKiogU2NvcGVSZWNvcmRlciBJRC4gRGVmYXVsdHMgdG8gYXV0by1pbmNyZW1lbnQgKGBtZXRyaWNzLTFgLCBgbWV0cmljcy0yYCwgLi4uKS4gKi9cbiAgaWQ/OiBzdHJpbmc7XG4gIC8qKiBGaWx0ZXIgd2hpY2ggc3RhZ2VzIGFyZSByZWNvcmRlZC4gUmV0dXJuIGB0cnVlYCB0byByZWNvcmQsIGBmYWxzZWAgdG8gc2tpcC4gKi9cbiAgc3RhZ2VGaWx0ZXI/OiAoc3RhZ2VOYW1lOiBzdHJpbmcpID0+IGJvb2xlYW47XG4gIC8qKiBQcmVmZXJyZWQgVUkgb3BlcmF0aW9uLiBEZWZhdWx0cyB0byAnYWdncmVnYXRlJyAoZGFzaGJvYXJkIHRvdGFscykuICovXG4gIHByZWZlcnJlZE9wZXJhdGlvbj86IFJlY29yZGVyT3BlcmF0aW9uO1xufVxuXG5leHBvcnQgY2xhc3MgTWV0cmljUmVjb3JkZXIgaW1wbGVtZW50cyBTY29wZVJlY29yZGVyIHtcbiAgcHJpdmF0ZSBzdGF0aWMgX2NvdW50ZXIgPSAwO1xuXG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHByZWZlcnJlZE9wZXJhdGlvbjogUmVjb3JkZXJPcGVyYXRpb247XG4gIC8qKiAxOjEgcGVyLXN0ZXAgc3RvcmFnZSAoQ29udmVudGlvbiAxIOKAlCBjb21wb3NlZCwgbm90IGluaGVyaXRlZCkuICovXG4gIHByaXZhdGUgcmVhZG9ubHkgc3RvcmUgPSBuZXcgS2V5ZWRTdG9yZTxTdGVwTWV0cmljcz4oKTtcbiAgcHJpdmF0ZSBzdGFnZVN0YXJ0VGltZXMgPSBuZXcgTWFwPHN0cmluZywgbnVtYmVyPigpO1xuICBwcml2YXRlIGN1cnJlbnRSdW50aW1lU3RhZ2VJZCA9ICcnO1xuICBwcml2YXRlIHN0YWdlRmlsdGVyPzogKHN0YWdlTmFtZTogc3RyaW5nKSA9PiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKGlkT3JPcHRpb25zPzogc3RyaW5nIHwgTWV0cmljUmVjb3JkZXJPcHRpb25zKSB7XG4gICAgaWYgKHR5cGVvZiBpZE9yT3B0aW9ucyA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHRoaXMuaWQgPSBpZE9yT3B0aW9ucztcbiAgICAgIHRoaXMucHJlZmVycmVkT3BlcmF0aW9uID0gJ2FnZ3JlZ2F0ZSc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaWQgPSBpZE9yT3B0aW9ucz8uaWQgPz8gYG1ldHJpY3MtJHsrK01ldHJpY1JlY29yZGVyLl9jb3VudGVyfWA7XG4gICAgICB0aGlzLnN0YWdlRmlsdGVyID0gaWRPck9wdGlvbnM/LnN0YWdlRmlsdGVyO1xuICAgICAgdGhpcy5wcmVmZXJyZWRPcGVyYXRpb24gPSBpZE9yT3B0aW9ucz8ucHJlZmVycmVkT3BlcmF0aW9uID8/ICdhZ2dyZWdhdGUnO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2hvdWxkUmVjb3JkKHN0YWdlTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLnN0YWdlRmlsdGVyIHx8IHRoaXMuc3RhZ2VGaWx0ZXIoc3RhZ2VOYW1lKTtcbiAgfVxuXG4gIC8qKiBHZXQgb3IgY3JlYXRlIHRoZSBTdGVwTWV0cmljcyBmb3IgdGhlIGN1cnJlbnQgc3RhZ2UuICovXG4gIHByaXZhdGUgY3VycmVudCgpOiBTdGVwTWV0cmljcyB7XG4gICAgY29uc3Qga2V5ID0gdGhpcy5jdXJyZW50UnVudGltZVN0YWdlSWQ7XG4gICAgbGV0IG0gPSB0aGlzLnN0b3JlLmdldChrZXkpO1xuICAgIGlmICghbSkge1xuICAgICAgbSA9IHsgc3RhZ2VOYW1lOiAnJywgcmVhZENvdW50OiAwLCB3cml0ZUNvdW50OiAwLCBjb21taXRDb3VudDogMCwgcGF1c2VDb3VudDogMCwgZHVyYXRpb246IDAgfTtcbiAgICAgIHRoaXMuc3RvcmUuc2V0KGtleSwgbSk7XG4gICAgfVxuICAgIHJldHVybiBtO1xuICB9XG5cbiAgLy8g4pSA4pSAIFBlci1zdGVwIHF1ZXJ5IEFQSSAoZGVsZWdhdGVzIHRvIHRoZSBjb21wb3NlZCBzdG9yZSkg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbiAgLyoqIFRyYW5zbGF0ZTogcGVyLXN0ZXAgbWV0cmljcyBieSBydW50aW1lU3RhZ2VJZC4gKi9cbiAgZ2V0QnlLZXkocnVudGltZVN0YWdlSWQ6IHN0cmluZyk6IFN0ZXBNZXRyaWNzIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5nZXQocnVudGltZVN0YWdlSWQpO1xuICB9XG5cbiAgLyoqIEFsbCBwZXItc3RlcCBtZXRyaWNzIGFzIGEgcmVhZC1vbmx5IE1hcCAoaW5zZXJ0aW9uLW9yZGVyZWQpLiAqL1xuICBnZXRNYXAoKTogUmVhZG9ubHlNYXA8c3RyaW5nLCBTdGVwTWV0cmljcz4ge1xuICAgIHJldHVybiB0aGlzLnN0b3JlLmdldE1hcCgpO1xuICB9XG5cbiAgLyoqIEFsbCBwZXItc3RlcCBtZXRyaWNzIChpbnNlcnRpb24tb3JkZXJlZCkuICovXG4gIHZhbHVlcygpOiBTdGVwTWV0cmljc1tdIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZS52YWx1ZXMoKTtcbiAgfVxuXG4gIC8qKiBOdW1iZXIgb2YgcmVjb3JkZWQgc3RlcHMuICovXG4gIGdldCBzaXplKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2l6ZTtcbiAgfVxuXG4gIC8qKiBBZ2dyZWdhdGU6IHJlZHVjZSBBTEwgc3RlcHMgdG8gYSBzaW5nbGUgdmFsdWUgKGRhc2hib2FyZHMsIHRvdGFscykuICovXG4gIGFnZ3JlZ2F0ZTxSPihmbjogKGFjYzogUiwgZW50cnk6IFN0ZXBNZXRyaWNzLCBrZXk6IHN0cmluZykgPT4gUiwgaW5pdGlhbDogUik6IFIge1xuICAgIHJldHVybiB0aGlzLnN0b3JlLmFnZ3JlZ2F0ZShmbiwgaW5pdGlhbCk7XG4gIH1cblxuICAvKiogQWNjdW11bGF0ZTogcmVkdWNlIHN0ZXBzIHVwIHRvIGEgc2xpZGVyIHBvc2l0aW9uIChwcm9ncmVzc2l2ZSB2aWV3KS4gKi9cbiAgYWNjdW11bGF0ZTxSPihmbjogKGFjYzogUiwgZW50cnk6IFN0ZXBNZXRyaWNzLCBrZXk6IHN0cmluZykgPT4gUiwgaW5pdGlhbDogUiwga2V5cz86IFJlYWRvbmx5U2V0PHN0cmluZz4pOiBSIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5hY2N1bXVsYXRlKGZuLCBpbml0aWFsLCBrZXlzKTtcbiAgfVxuXG4gIG9uU3RhZ2VTdGFydChldmVudDogU3RhZ2VFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zaG91bGRSZWNvcmQoZXZlbnQuc3RhZ2VOYW1lKSkgcmV0dXJuO1xuICAgIHRoaXMuY3VycmVudFJ1bnRpbWVTdGFnZUlkID0gZXZlbnQucnVudGltZVN0YWdlSWQ7XG4gICAgdGhpcy5zdGFnZVN0YXJ0VGltZXMuc2V0KGV2ZW50LnJ1bnRpbWVTdGFnZUlkLCBldmVudC50aW1lc3RhbXApO1xuICAgIGNvbnN0IG0gPSB0aGlzLmN1cnJlbnQoKTtcbiAgICBtLnN0YWdlTmFtZSA9IGV2ZW50LnN0YWdlTmFtZTtcbiAgfVxuXG4gIG9uUmVhZChldmVudDogUmVhZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNob3VsZFJlY29yZChldmVudC5zdGFnZU5hbWUpKSByZXR1cm47XG4gICAgdGhpcy5jdXJyZW50KCkucmVhZENvdW50Kys7XG4gIH1cblxuICBvbldyaXRlKGV2ZW50OiBXcml0ZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNob3VsZFJlY29yZChldmVudC5zdGFnZU5hbWUpKSByZXR1cm47XG4gICAgdGhpcy5jdXJyZW50KCkud3JpdGVDb3VudCsrO1xuICB9XG5cbiAgb25Db21taXQoZXZlbnQ6IENvbW1pdEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNob3VsZFJlY29yZChldmVudC5zdGFnZU5hbWUpKSByZXR1cm47XG4gICAgdGhpcy5jdXJyZW50KCkuY29tbWl0Q291bnQrKztcbiAgfVxuXG4gIG9uUGF1c2UoZXZlbnQ6IFBhdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2hvdWxkUmVjb3JkKGV2ZW50LnN0YWdlTmFtZSkpIHJldHVybjtcbiAgICB0aGlzLmN1cnJlbnQoKS5wYXVzZUNvdW50Kys7XG4gIH1cblxuICBvblN0YWdlRW5kKGV2ZW50OiBTdGFnZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNob3VsZFJlY29yZChldmVudC5zdGFnZU5hbWUpKSByZXR1cm47XG4gICAgY29uc3QgbSA9IHRoaXMuY3VycmVudCgpO1xuICAgIGlmIChldmVudC5kdXJhdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBtLmR1cmF0aW9uID0gZXZlbnQuZHVyYXRpb247XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHN0YXJ0VGltZSA9IHRoaXMuc3RhZ2VTdGFydFRpbWVzLmdldChldmVudC5ydW50aW1lU3RhZ2VJZCk7XG4gICAgICBtLmR1cmF0aW9uID0gc3RhcnRUaW1lICE9PSB1bmRlZmluZWQgPyBldmVudC50aW1lc3RhbXAgLSBzdGFydFRpbWUgOiAwO1xuICAgIH1cbiAgICB0aGlzLnN0YWdlU3RhcnRUaW1lcy5kZWxldGUoZXZlbnQucnVudGltZVN0YWdlSWQpO1xuICB9XG5cbiAgLyoqIEFnZ3JlZ2F0ZWQgbWV0cmljcyDigJQgY29tcHV0ZXMgdG90YWxzIG9uIHRoZSBmbHkgZnJvbSBwZXItc3RlcCBkYXRhIChiYWNrd2FyZCBjb21wYXRpYmxlKS4gKi9cbiAgZ2V0TWV0cmljcygpOiBBZ2dyZWdhdGVkTWV0cmljcyB7XG4gICAgY29uc3QgYnlOYW1lID0gbmV3IE1hcDxzdHJpbmcsIFN0YWdlTWV0cmljcz4oKTtcblxuICAgIGNvbnN0IHRvdGFsRHVyYXRpb24gPSB0aGlzLmFnZ3JlZ2F0ZSgoc3VtLCBtKSA9PiBzdW0gKyBtLmR1cmF0aW9uLCAwKTtcbiAgICBjb25zdCB0b3RhbFJlYWRzID0gdGhpcy5hZ2dyZWdhdGUoKHN1bSwgbSkgPT4gc3VtICsgbS5yZWFkQ291bnQsIDApO1xuICAgIGNvbnN0IHRvdGFsV3JpdGVzID0gdGhpcy5hZ2dyZWdhdGUoKHN1bSwgbSkgPT4gc3VtICsgbS53cml0ZUNvdW50LCAwKTtcbiAgICBjb25zdCB0b3RhbENvbW1pdHMgPSB0aGlzLmFnZ3JlZ2F0ZSgoc3VtLCBtKSA9PiBzdW0gKyBtLmNvbW1pdENvdW50LCAwKTtcbiAgICBjb25zdCB0b3RhbFBhdXNlcyA9IHRoaXMuYWdncmVnYXRlKChzdW0sIG0pID0+IHN1bSArIG0ucGF1c2VDb3VudCwgMCk7XG5cbiAgICAvLyBHcm91cCBieSBzdGFnZU5hbWUgZm9yIGJhY2t3YXJkIGNvbXBhdFxuICAgIGZvciAoY29uc3QgbSBvZiB0aGlzLnZhbHVlcygpKSB7XG4gICAgICBjb25zdCBleGlzdGluZyA9IGJ5TmFtZS5nZXQobS5zdGFnZU5hbWUpO1xuICAgICAgaWYgKGV4aXN0aW5nKSB7XG4gICAgICAgIGV4aXN0aW5nLnJlYWRDb3VudCArPSBtLnJlYWRDb3VudDtcbiAgICAgICAgZXhpc3Rpbmcud3JpdGVDb3VudCArPSBtLndyaXRlQ291bnQ7XG4gICAgICAgIGV4aXN0aW5nLmNvbW1pdENvdW50ICs9IG0uY29tbWl0Q291bnQ7XG4gICAgICAgIGV4aXN0aW5nLnBhdXNlQ291bnQgKz0gbS5wYXVzZUNvdW50O1xuICAgICAgICBleGlzdGluZy50b3RhbER1cmF0aW9uICs9IG0uZHVyYXRpb247XG4gICAgICAgIGV4aXN0aW5nLmludm9jYXRpb25Db3VudCsrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYnlOYW1lLnNldChtLnN0YWdlTmFtZSwge1xuICAgICAgICAgIHN0YWdlTmFtZTogbS5zdGFnZU5hbWUsXG4gICAgICAgICAgcmVhZENvdW50OiBtLnJlYWRDb3VudCxcbiAgICAgICAgICB3cml0ZUNvdW50OiBtLndyaXRlQ291bnQsXG4gICAgICAgICAgY29tbWl0Q291bnQ6IG0uY29tbWl0Q291bnQsXG4gICAgICAgICAgcGF1c2VDb3VudDogbS5wYXVzZUNvdW50LFxuICAgICAgICAgIHRvdGFsRHVyYXRpb246IG0uZHVyYXRpb24sXG4gICAgICAgICAgaW52b2NhdGlvbkNvdW50OiAxLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4geyB0b3RhbER1cmF0aW9uLCB0b3RhbFJlYWRzLCB0b3RhbFdyaXRlcywgdG90YWxDb21taXRzLCB0b3RhbFBhdXNlcywgc3RhZ2VNZXRyaWNzOiBieU5hbWUgfTtcbiAgfVxuXG4gIC8qKiBHZXQgYWdncmVnYXRlZCBtZXRyaWNzIGZvciBhIHNwZWNpZmljIHN0YWdlIG5hbWUgKGJhY2t3YXJkIGNvbXBhdGlibGUpLiAqL1xuICBnZXRTdGFnZU1ldHJpY3Moc3RhZ2VOYW1lOiBzdHJpbmcpOiBTdGFnZU1ldHJpY3MgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IG1ldHJpY3MgPSB0aGlzLmdldE1ldHJpY3MoKTtcbiAgICByZXR1cm4gbWV0cmljcy5zdGFnZU1ldHJpY3MuZ2V0KHN0YWdlTmFtZSk7XG4gIH1cblxuICB0b1NuYXBzaG90KCkge1xuICAgIGNvbnN0IG1ldHJpY3MgPSB0aGlzLmdldE1ldHJpY3MoKTtcbiAgICAvLyBFeHBvc2UgcGVyLXN0ZXAgZGF0YSBrZXllZCBieSBydW50aW1lU3RhZ2VJZCAoZm9yIHRpbWUtdHJhdmVsIFVJKVxuICAgIC8vIGFsb25nc2lkZSB0aGUgYWdncmVnYXRlZCB0b3RhbHNcbiAgICBjb25zdCBzdGVwczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiB0aGlzLmdldE1hcCgpKSB7XG4gICAgICBzdGVwc1trZXldID0gdmFsdWU7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiAnTWV0cmljcycsXG4gICAgICBkZXNjcmlwdGlvbjogJ0FnZ3JlZ2F0b3IgKEtleWVkU3RvcmUpIOKAlCBwZXItc3RlcCB0aW1pbmcgYW5kIEkvTyBjb3VudHMnLFxuICAgICAgcHJlZmVycmVkT3BlcmF0aW9uOiB0aGlzLnByZWZlcnJlZE9wZXJhdGlvbixcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgbnVtZXJpY0ZpZWxkOiAncmVhZENvdW50JyxcbiAgICAgICAgZ3JhbmRUb3RhbDogbWV0cmljcy50b3RhbFJlYWRzLFxuICAgICAgICB0b3RhbER1cmF0aW9uOiBtZXRyaWNzLnRvdGFsRHVyYXRpb24sXG4gICAgICAgIHRvdGFsUmVhZHM6IG1ldHJpY3MudG90YWxSZWFkcyxcbiAgICAgICAgdG90YWxXcml0ZXM6IG1ldHJpY3MudG90YWxXcml0ZXMsXG4gICAgICAgIHRvdGFsQ29tbWl0czogbWV0cmljcy50b3RhbENvbW1pdHMsXG4gICAgICAgIHRvdGFsUGF1c2VzOiBtZXRyaWNzLnRvdGFsUGF1c2VzLFxuICAgICAgICBzdGVwcyxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKiBDbGVhciBhbGwgc3RhdGUg4oCUIGNhbGxlZCBieSBleGVjdXRvciBiZWZvcmUgZWFjaCBydW4oKS4gKi9cbiAgY2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy5zdG9yZS5jbGVhcigpO1xuICAgIHRoaXMuc3RhZ2VTdGFydFRpbWVzLmNsZWFyKCk7XG4gICAgdGhpcy5jdXJyZW50UnVudGltZVN0YWdlSWQgPSAnJztcbiAgfVxuXG4gIC8qKiBBbGlhcyBmb3IgY2xlYXIoKSAoYmFja3dhcmQgY29tcGF0KS4gKi9cbiAgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhcigpO1xuICB9XG59XG4iXX0=
|
|
199
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWV0cmljUmVjb3JkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3Njb3BlL3JlY29yZGVycy9NZXRyaWNSZWNvcmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUJHOzs7QUFFSCxnRUFBMEQ7QUE0RDFELE1BQWEsY0FBYztJQUNqQixNQUFNLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztJQUVuQixFQUFFLENBQVM7SUFDWCxrQkFBa0IsQ0FBb0I7SUFDL0MscUVBQXFFO0lBQ3BELEtBQUssR0FBRyxJQUFJLDBCQUFVLEVBQWUsQ0FBQztJQUMvQyxlQUFlLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7SUFDNUMsV0FBVyxDQUFrQztJQUVyRCxZQUFZLFdBQTRDO1FBQ3RELElBQUksT0FBTyxXQUFXLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLEVBQUUsR0FBRyxXQUFXLENBQUM7WUFDdEIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFdBQVcsQ0FBQztRQUN4QyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxFQUFFLEdBQUcsV0FBVyxFQUFFLEVBQUUsSUFBSSxXQUFXLEVBQUUsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3BFLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxFQUFFLFdBQVcsQ0FBQztZQUM1QyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsV0FBVyxFQUFFLGtCQUFrQixJQUFJLFdBQVcsQ0FBQztRQUMzRSxDQUFDO0lBQ0gsQ0FBQztJQUVPLFlBQVksQ0FBQyxTQUFpQjtRQUNwQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxpRkFBaUY7SUFDekUsUUFBUSxDQUFDLEtBQXNCO1FBQ3JDLE1BQU0sR0FBRyxH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Z0JBQ3BDLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVTtnQkFDOUIsV0FBVyxFQUFFLE9BQU8sQ0FBQyxXQUFXO2dCQUNoQyxZQUFZLEVBQUUsT0FBTyxDQUFDLFlBQVk7Z0JBQ2xDLFdBQVcsRUFBRSxPQUFPLENBQUMsV0FBVztnQkFDaEMsS0FBSzthQUNOO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCw4REFBOEQ7SUFDOUQsS0FBSztRQUNILElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsMkNBQTJDO0lBQzNDLEtBQUs7UUFDSCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDZixDQUFDOztBQXZMSCx3Q0F3TEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIE1ldHJpY1JlY29yZGVyIOKAlCBwZXItc3RlcCB0aW1pbmcgYW5kIGV4ZWN1dGlvbiBjb3VudHMsIGtleWVkIGJ5IHJ1bnRpbWVTdGFnZUlkLlxuICpcbiAqIFN0b3JlcyBwZXItaW52b2NhdGlvbiBkYXRhIGR1cmluZyB0cmF2ZXJzYWwuIEFnZ3JlZ2F0ZWQgdmlld3MgY29tcHV0ZWQgb24gcmVhZC5cbiAqIENvbXBvc2VzIGEgYEtleWVkU3RvcmU8U3RlcE1ldHJpY3M+YCBmb3IgTygxKSBsb29rdXAgYW5kIHN0YW5kYXJkIG9wZXJhdGlvbnNcbiAqIChDb252ZW50aW9uIDEg4oCUIG9uZSBwdXJwb3NlIHBlciByZWNvcmRlcjogdGhpcyBpcyB0aGUgU2NvcGVSZWNvcmRlcjsgdGhlIHN0b3JlXG4gKiBpcyB0aGUgc3RvcmFnZSkuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG1ldHJpYyA9IG5ldyBNZXRyaWNSZWNvcmRlcigpO1xuICogZXhlY3V0b3IuYXR0YWNoU2NvcGVSZWNvcmRlcihtZXRyaWMpO1xuICogYXdhaXQgZXhlY3V0b3IucnVuKCk7XG4gKlxuICogLy8gUGVyLXN0ZXAgKHRpbWUtdHJhdmVsKTpcbiAqIG1ldHJpYy5nZXRCeUtleSgnY2FsbC1sbG0jNScpOyAgLy8geyBzdGFnZU5hbWUsIHJlYWRDb3VudCwgd3JpdGVDb3VudCwgZHVyYXRpb24gfVxuICpcbiAqIC8vIEFnZ3JlZ2F0ZWQgKGJhY2t3YXJkIGNvbXBhdCk6XG4gKiBtZXRyaWMuZ2V0TWV0cmljcygpOyAgLy8geyB0b3RhbER1cmF0aW9uLCB0b3RhbFJlYWRzLCBzdGFnZU1ldHJpY3M6IE1hcDxzdGFnZU5hbWUsIGFnZ3JlZ2F0ZWQ+IH1cbiAqXG4gKiAvLyBQcm9ncmVzc2l2ZSAoc2xpZGVyKTpcbiAqIG1ldHJpYy5hY2N1bXVsYXRlKChzdW0sIG0pID0+IHN1bSArIG0uZHVyYXRpb24sIDAsIHZpc2libGVLZXlzKTtcbiAqIGBgYFxuICovXG5cbmltcG9ydCB7IEtleWVkU3RvcmUgfSBmcm9tICcuLi8uLi9yZWNvcmRlci9LZXllZFN0b3JlLmpzJztcbmltcG9ydCB0eXBlIHsgUmVjb3JkZXJPcGVyYXRpb24gfSBmcm9tICcuLi8uLi9yZWNvcmRlci9SZWNvcmRlck9wZXJhdGlvbi5qcyc7XG5pbXBvcnQgdHlwZSB7XG4gIENvbW1pdEV2ZW50LFxuICBQYXVzZUV2ZW50LFxuICBSZWFkRXZlbnQsXG4gIFJlY29yZGVyQ29udGV4dCxcbiAgU2NvcGVSZWNvcmRlcixcbiAgU3RhZ2VFdmVudCxcbiAgV3JpdGVFdmVudCxcbn0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG4vKiogUGVyLWludm9jYXRpb24gbWV0cmljcyBmb3IgYSBzaW5nbGUgZXhlY3V0aW9uIHN0ZXAuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0ZXBNZXRyaWNzIHtcbiAgLyoqIEh1bWFuLXJlYWRhYmxlIHN0YWdlIG5hbWUuICovXG4gIHN0YWdlTmFtZTogc3RyaW5nO1xuICAvKiogTnVtYmVyIG9mIHNjb3BlIHJlYWRzIGR1cmluZyB0aGlzIGludm9jYXRpb24uICovXG4gIHJlYWRDb3VudDogbnVtYmVyO1xuICAvKiogTnVtYmVyIG9mIHNjb3BlIHdyaXRlcyBkdXJpbmcgdGhpcyBpbnZvY2F0aW9uLiAqL1xuICB3cml0ZUNvdW50OiBudW1iZXI7XG4gIC8qKiBOdW1iZXIgb2YgY29tbWl0cyBkdXJpbmcgdGhpcyBpbnZvY2F0aW9uLiAqL1xuICBjb21taXRDb3VudDogbnVtYmVyO1xuICAvKiogTnVtYmVyIG9mIHBhdXNlcyBkdXJpbmcgdGhpcyBpbnZvY2F0aW9uLiAqL1xuICBwYXVzZUNvdW50OiBudW1iZXI7XG4gIC8qKiBEdXJhdGlvbiBpbiBtcyBmb3IgdGhpcyBpbnZvY2F0aW9uLiAqL1xuICBkdXJhdGlvbjogbnVtYmVyO1xufVxuXG4vKiogQWdncmVnYXRlZCBtZXRyaWNzIGFjcm9zcyBhbGwgaW52b2NhdGlvbnMgKGJhY2t3YXJkIGNvbXBhdGlibGUpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBBZ2dyZWdhdGVkTWV0cmljcyB7XG4gIHRvdGFsRHVyYXRpb246IG51bWJlcjtcbiAgdG90YWxSZWFkczogbnVtYmVyO1xuICB0b3RhbFdyaXRlczogbnVtYmVyO1xuICB0b3RhbENvbW1pdHM6IG51bWJlcjtcbiAgdG90YWxQYXVzZXM6IG51bWJlcjtcbiAgLyoqIEFnZ3JlZ2F0ZWQgYnkgc3RhZ2VOYW1lIOKAlCBzdW1zIGFjcm9zcyBsb29wIGludm9jYXRpb25zLiAqL1xuICBzdGFnZU1ldHJpY3M6IE1hcDxzdHJpbmcsIFN0YWdlTWV0cmljcz47XG59XG5cbi8qKiBBZ2dyZWdhdGVkIHBlci1zdGFnZU5hbWUgKGJhY2t3YXJkIGNvbXBhdGlibGUgd2l0aCBwcmUtcnVudGltZVN0YWdlSWQgQVBJKS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RhZ2VNZXRyaWNzIHtcbiAgc3RhZ2VOYW1lOiBzdHJpbmc7XG4gIHJlYWRDb3VudDogbnVtYmVyO1xuICB3cml0ZUNvdW50OiBudW1iZXI7XG4gIGNvbW1pdENvdW50OiBudW1iZXI7XG4gIHBhdXNlQ291bnQ6IG51bWJlcjtcbiAgdG90YWxEdXJhdGlvbjogbnVtYmVyO1xuICBpbnZvY2F0aW9uQ291bnQ6IG51bWJlcjtcbn1cblxuLyoqIE9wdGlvbnMgZm9yIE1ldHJpY1JlY29yZGVyLiAqL1xuZXhwb3J0IGludGVyZmFjZSBNZXRyaWNSZWNvcmRlck9wdGlvbnMge1xuICAvKiogU2NvcGVSZWNvcmRlciBJRC4gRGVmYXVsdHMgdG8gYXV0by1pbmNyZW1lbnQgKGBtZXRyaWNzLTFgLCBgbWV0cmljcy0yYCwgLi4uKS4gKi9cbiAgaWQ/OiBzdHJpbmc7XG4gIC8qKiBGaWx0ZXIgd2hpY2ggc3RhZ2VzIGFyZSByZWNvcmRlZC4gUmV0dXJuIGB0cnVlYCB0byByZWNvcmQsIGBmYWxzZWAgdG8gc2tpcC4gKi9cbiAgc3RhZ2VGaWx0ZXI/OiAoc3RhZ2VOYW1lOiBzdHJpbmcpID0+IGJvb2xlYW47XG4gIC8qKiBQcmVmZXJyZWQgVUkgb3BlcmF0aW9uLiBEZWZhdWx0cyB0byAnYWdncmVnYXRlJyAoZGFzaGJvYXJkIHRvdGFscykuICovXG4gIHByZWZlcnJlZE9wZXJhdGlvbj86IFJlY29yZGVyT3BlcmF0aW9uO1xufVxuXG5leHBvcnQgY2xhc3MgTWV0cmljUmVjb3JkZXIgaW1wbGVtZW50cyBTY29wZVJlY29yZGVyIHtcbiAgcHJpdmF0ZSBzdGF0aWMgX2NvdW50ZXIgPSAwO1xuXG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHByZWZlcnJlZE9wZXJhdGlvbjogUmVjb3JkZXJPcGVyYXRpb247XG4gIC8qKiAxOjEgcGVyLXN0ZXAgc3RvcmFnZSAoQ29udmVudGlvbiAxIOKAlCBjb21wb3NlZCwgbm90IGluaGVyaXRlZCkuICovXG4gIHByaXZhdGUgcmVhZG9ubHkgc3RvcmUgPSBuZXcgS2V5ZWRTdG9yZTxTdGVwTWV0cmljcz4oKTtcbiAgcHJpdmF0ZSBzdGFnZVN0YXJ0VGltZXMgPSBuZXcgTWFwPHN0cmluZywgbnVtYmVyPigpO1xuICBwcml2YXRlIHN0YWdlRmlsdGVyPzogKHN0YWdlTmFtZTogc3RyaW5nKSA9PiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKGlkT3JPcHRpb25zPzogc3RyaW5nIHwgTWV0cmljUmVjb3JkZXJPcHRpb25zKSB7XG4gICAgaWYgKHR5cGVvZiBpZE9yT3B0aW9ucyA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHRoaXMuaWQgPSBpZE9yT3B0aW9ucztcbiAgICAgIHRoaXMucHJlZmVycmVkT3BlcmF0aW9uID0gJ2FnZ3JlZ2F0ZSc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaWQgPSBpZE9yT3B0aW9ucz8uaWQgPz8gYG1ldHJpY3MtJHsrK01ldHJpY1JlY29yZGVyLl9jb3VudGVyfWA7XG4gICAgICB0aGlzLnN0YWdlRmlsdGVyID0gaWRPck9wdGlvbnM/LnN0YWdlRmlsdGVyO1xuICAgICAgdGhpcy5wcmVmZXJyZWRPcGVyYXRpb24gPSBpZE9yT3B0aW9ucz8ucHJlZmVycmVkT3BlcmF0aW9uID8/ICdhZ2dyZWdhdGUnO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2hvdWxkUmVjb3JkKHN0YWdlTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLnN0YWdlRmlsdGVyIHx8IHRoaXMuc3RhZ2VGaWx0ZXIoc3RhZ2VOYW1lKTtcbiAgfVxuXG4gIC8qKiBFYWNoIGV2ZW50IG93bnMgaXRzIGF0dHJpYnV0aW9uOyBhbm90aGVyIHN0YWdlIG1heSBoYXZlIHN0YXJ0ZWQgbWVhbndoaWxlLiAqL1xuICBwcml2YXRlIGZvckV2ZW50KGV2ZW50OiBSZWNvcmRlckNvbnRleHQpOiBTdGVwTWV0cmljcyB7XG4gICAgY29uc3Qga2V5ID0gZXZlbnQucnVudGltZVN0YWdlSWQ7XG4gICAgbGV0IG0gPSB0aGlzLnN0b3JlLmdldChrZXkpO1xuICAgIGlmICghbSkge1xuICAgICAgbSA9IHsgc3RhZ2VOYW1lOiBldmVudC5zdGFnZU5hbWUsIHJlYWRDb3VudDogMCwgd3JpdGVDb3VudDogMCwgY29tbWl0Q291bnQ6IDAsIHBhdXNlQ291bnQ6IDAsIGR1cmF0aW9uOiAwIH07XG4gICAgICB0aGlzLnN0b3JlLnNldChrZXksIG0pO1xuICAgIH1cbiAgICByZXR1cm4gbTtcbiAgfVxuXG4gIC8vIOKUgOKUgCBQZXItc3RlcCBxdWVyeSBBUEkgKGRlbGVnYXRlcyB0byB0aGUgY29tcG9zZWQgc3RvcmUpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4gIC8qKiBUcmFuc2xhdGU6IHBlci1zdGVwIG1ldHJpY3MgYnkgcnVudGltZVN0YWdlSWQuICovXG4gIGdldEJ5S2V5KHJ1bnRpbWVTdGFnZUlkOiBzdHJpbmcpOiBTdGVwTWV0cmljcyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuZ2V0KHJ1bnRpbWVTdGFnZUlkKTtcbiAgfVxuXG4gIC8qKiBBbGwgcGVyLXN0ZXAgbWV0cmljcyBhcyBhIHJlYWQtb25seSBNYXAgKGluc2VydGlvbi1vcmRlcmVkKS4gKi9cbiAgZ2V0TWFwKCk6IFJlYWRvbmx5TWFwPHN0cmluZywgU3RlcE1ldHJpY3M+IHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5nZXRNYXAoKTtcbiAgfVxuXG4gIC8qKiBBbGwgcGVyLXN0ZXAgbWV0cmljcyAoaW5zZXJ0aW9uLW9yZGVyZWQpLiAqL1xuICB2YWx1ZXMoKTogU3RlcE1ldHJpY3NbXSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmUudmFsdWVzKCk7XG4gIH1cblxuICAvKiogTnVtYmVyIG9mIHJlY29yZGVkIHN0ZXBzLiAqL1xuICBnZXQgc2l6ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnN0b3JlLnNpemU7XG4gIH1cblxuICAvKiogQWdncmVnYXRlOiByZWR1Y2UgQUxMIHN0ZXBzIHRvIGEgc2luZ2xlIHZhbHVlIChkYXNoYm9hcmRzLCB0b3RhbHMpLiAqL1xuICBhZ2dyZWdhdGU8Uj4oZm46IChhY2M6IFIsIGVudHJ5OiBTdGVwTWV0cmljcywga2V5OiBzdHJpbmcpID0+IFIsIGluaXRpYWw6IFIpOiBSIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5hZ2dyZWdhdGUoZm4sIGluaXRpYWwpO1xuICB9XG5cbiAgLyoqIEFjY3VtdWxhdGU6IHJlZHVjZSBzdGVwcyB1cCB0byBhIHNsaWRlciBwb3NpdGlvbiAocHJvZ3Jlc3NpdmUgdmlldykuICovXG4gIGFjY3VtdWxhdGU8Uj4oZm46IChhY2M6IFIsIGVudHJ5OiBTdGVwTWV0cmljcywga2V5OiBzdHJpbmcpID0+IFIsIGluaXRpYWw6IFIsIGtleXM/OiBSZWFkb25seVNldDxzdHJpbmc+KTogUiB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuYWNjdW11bGF0ZShmbiwgaW5pdGlhbCwga2V5cyk7XG4gIH1cblxuICBvblN0YWdlU3RhcnQoZXZlbnQ6IFN0YWdlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2hvdWxkUmVjb3JkKGV2ZW50LnN0YWdlTmFtZSkpIHJldHVybjtcbiAgICB0aGlzLnN0YWdlU3RhcnRUaW1lcy5zZXQoZXZlbnQucnVudGltZVN0YWdlSWQsIGV2ZW50LnRpbWVzdGFtcCk7XG4gICAgY29uc3QgbSA9IHRoaXMuZm9yRXZlbnQoZXZlbnQpO1xuICAgIG0uc3RhZ2VOYW1lID0gZXZlbnQuc3RhZ2VOYW1lO1xuICB9XG5cbiAgb25SZWFkKGV2ZW50OiBSZWFkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2hvdWxkUmVjb3JkKGV2ZW50LnN0YWdlTmFtZSkpIHJldHVybjtcbiAgICB0aGlzLmZvckV2ZW50KGV2ZW50KS5yZWFkQ291bnQrKztcbiAgfVxuXG4gIG9uV3JpdGUoZXZlbnQ6IFdyaXRlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2hvdWxkUmVjb3JkKGV2ZW50LnN0YWdlTmFtZSkpIHJldHVybjtcbiAgICB0aGlzLmZvckV2ZW50KGV2ZW50KS53cml0ZUNvdW50Kys7XG4gIH1cblxuICBvbkNvbW1pdChldmVudDogQ29tbWl0RXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2hvdWxkUmVjb3JkKGV2ZW50LnN0YWdlTmFtZSkpIHJldHVybjtcbiAgICB0aGlzLmZvckV2ZW50KGV2ZW50KS5jb21taXRDb3VudCsrO1xuICB9XG5cbiAgb25QYXVzZShldmVudDogUGF1c2VFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zaG91bGRSZWNvcmQoZXZlbnQuc3RhZ2VOYW1lKSkgcmV0dXJuO1xuICAgIHRoaXMuZm9yRXZlbnQoZXZlbnQpLnBhdXNlQ291bnQrKztcbiAgfVxuXG4gIG9uU3RhZ2VFbmQoZXZlbnQ6IFN0YWdlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2hvdWxkUmVjb3JkKGV2ZW50LnN0YWdlTmFtZSkpIHJldHVybjtcbiAgICBjb25zdCBtID0gdGhpcy5mb3JFdmVudChldmVudCk7XG4gICAgaWYgKGV2ZW50LmR1cmF0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG0uZHVyYXRpb24gPSBldmVudC5kdXJhdGlvbjtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgc3RhcnRUaW1lID0gdGhpcy5zdGFnZVN0YXJ0VGltZXMuZ2V0KGV2ZW50LnJ1bnRpbWVTdGFnZUlkKTtcbiAgICAgIG0uZHVyYXRpb24gPSBzdGFydFRpbWUgIT09IHVuZGVmaW5lZCA/IGV2ZW50LnRpbWVzdGFtcCAtIHN0YXJ0VGltZSA6IDA7XG4gICAgfVxuICAgIHRoaXMuc3RhZ2VTdGFydFRpbWVzLmRlbGV0ZShldmVudC5ydW50aW1lU3RhZ2VJZCk7XG4gIH1cblxuICAvKiogQWdncmVnYXRlZCBtZXRyaWNzIOKAlCBjb21wdXRlcyB0b3RhbHMgb24gdGhlIGZseSBmcm9tIHBlci1zdGVwIGRhdGEgKGJhY2t3YXJkIGNvbXBhdGlibGUpLiAqL1xuICBnZXRNZXRyaWNzKCk6IEFnZ3JlZ2F0ZWRNZXRyaWNzIHtcbiAgICBjb25zdCBieU5hbWUgPSBuZXcgTWFwPHN0cmluZywgU3RhZ2VNZXRyaWNzPigpO1xuXG4gICAgY29uc3QgdG90YWxEdXJhdGlvbiA9IHRoaXMuYWdncmVnYXRlKChzdW0sIG0pID0+IHN1bSArIG0uZHVyYXRpb24sIDApO1xuICAgIGNvbnN0IHRvdGFsUmVhZHMgPSB0aGlzLmFnZ3JlZ2F0ZSgoc3VtLCBtKSA9PiBzdW0gKyBtLnJlYWRDb3VudCwgMCk7XG4gICAgY29uc3QgdG90YWxXcml0ZXMgPSB0aGlzLmFnZ3JlZ2F0ZSgoc3VtLCBtKSA9PiBzdW0gKyBtLndyaXRlQ291bnQsIDApO1xuICAgIGNvbnN0IHRvdGFsQ29tbWl0cyA9IHRoaXMuYWdncmVnYXRlKChzdW0sIG0pID0+IHN1bSArIG0uY29tbWl0Q291bnQsIDApO1xuICAgIGNvbnN0IHRvdGFsUGF1c2VzID0gdGhpcy5hZ2dyZWdhdGUoKHN1bSwgbSkgPT4gc3VtICsgbS5wYXVzZUNvdW50LCAwKTtcblxuICAgIC8vIEdyb3VwIGJ5IHN0YWdlTmFtZSBmb3IgYmFja3dhcmQgY29tcGF0XG4gICAgZm9yIChjb25zdCBtIG9mIHRoaXMudmFsdWVzKCkpIHtcbiAgICAgIGNvbnN0IGV4aXN0aW5nID0gYnlOYW1lLmdldChtLnN0YWdlTmFtZSk7XG4gICAgICBpZiAoZXhpc3RpbmcpIHtcbiAgICAgICAgZXhpc3RpbmcucmVhZENvdW50ICs9IG0ucmVhZENvdW50O1xuICAgICAgICBleGlzdGluZy53cml0ZUNvdW50ICs9IG0ud3JpdGVDb3VudDtcbiAgICAgICAgZXhpc3RpbmcuY29tbWl0Q291bnQgKz0gbS5jb21taXRDb3VudDtcbiAgICAgICAgZXhpc3RpbmcucGF1c2VDb3VudCArPSBtLnBhdXNlQ291bnQ7XG4gICAgICAgIGV4aXN0aW5nLnRvdGFsRHVyYXRpb24gKz0gbS5kdXJhdGlvbjtcbiAgICAgICAgZXhpc3RpbmcuaW52b2NhdGlvbkNvdW50Kys7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBieU5hbWUuc2V0KG0uc3RhZ2VOYW1lLCB7XG4gICAgICAgICAgc3RhZ2VOYW1lOiBtLnN0YWdlTmFtZSxcbiAgICAgICAgICByZWFkQ291bnQ6IG0ucmVhZENvdW50LFxuICAgICAgICAgIHdyaXRlQ291bnQ6IG0ud3JpdGVDb3VudCxcbiAgICAgICAgICBjb21taXRDb3VudDogbS5jb21taXRDb3VudCxcbiAgICAgICAgICBwYXVzZUNvdW50OiBtLnBhdXNlQ291bnQsXG4gICAgICAgICAgdG90YWxEdXJhdGlvbjogbS5kdXJhdGlvbixcbiAgICAgICAgICBpbnZvY2F0aW9uQ291bnQ6IDEsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7IHRvdGFsRHVyYXRpb24sIHRvdGFsUmVhZHMsIHRvdGFsV3JpdGVzLCB0b3RhbENvbW1pdHMsIHRvdGFsUGF1c2VzLCBzdGFnZU1ldHJpY3M6IGJ5TmFtZSB9O1xuICB9XG5cbiAgLyoqIEdldCBhZ2dyZWdhdGVkIG1ldHJpY3MgZm9yIGEgc3BlY2lmaWMgc3RhZ2UgbmFtZSAoYmFja3dhcmQgY29tcGF0aWJsZSkuICovXG4gIGdldFN0YWdlTWV0cmljcyhzdGFnZU5hbWU6IHN0cmluZyk6IFN0YWdlTWV0cmljcyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgbWV0cmljcyA9IHRoaXMuZ2V0TWV0cmljcygpO1xuICAgIHJldHVybiBtZXRyaWNzLnN0YWdlTWV0cmljcy5nZXQoc3RhZ2VOYW1lKTtcbiAgfVxuXG4gIHRvU25hcHNob3QoKSB7XG4gICAgY29uc3QgbWV0cmljcyA9IHRoaXMuZ2V0TWV0cmljcygpO1xuICAgIC8vIEV4cG9zZSBwZXItc3RlcCBkYXRhIGtleWVkIGJ5IHJ1bnRpbWVTdGFnZUlkIChmb3IgdGltZS10cmF2ZWwgVUkpXG4gICAgLy8gYWxvbmdzaWRlIHRoZSBhZ2dyZWdhdGVkIHRvdGFsc1xuICAgIGNvbnN0IHN0ZXBzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9O1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIHRoaXMuZ2V0TWFwKCkpIHtcbiAgICAgIHN0ZXBzW2tleV0gPSB2YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6ICdNZXRyaWNzJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnQWdncmVnYXRvciAoS2V5ZWRTdG9yZSkg4oCUIHBlci1zdGVwIHRpbWluZyBhbmQgSS9PIGNvdW50cycsXG4gICAgICBwcmVmZXJyZWRPcGVyYXRpb246IHRoaXMucHJlZmVycmVkT3BlcmF0aW9uLFxuICAgICAgZGF0YToge1xuICAgICAgICBudW1lcmljRmllbGQ6ICdyZWFkQ291bnQnLFxuICAgICAgICBncmFuZFRvdGFsOiBtZXRyaWNzLnRvdGFsUmVhZHMsXG4gICAgICAgIHRvdGFsRHVyYXRpb246IG1ldHJpY3MudG90YWxEdXJhdGlvbixcbiAgICAgICAgdG90YWxSZWFkczogbWV0cmljcy50b3RhbFJlYWRzLFxuICAgICAgICB0b3RhbFdyaXRlczogbWV0cmljcy50b3RhbFdyaXRlcyxcbiAgICAgICAgdG90YWxDb21taXRzOiBtZXRyaWNzLnRvdGFsQ29tbWl0cyxcbiAgICAgICAgdG90YWxQYXVzZXM6IG1ldHJpY3MudG90YWxQYXVzZXMsXG4gICAgICAgIHN0ZXBzLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLyoqIENsZWFyIGFsbCBzdGF0ZSDigJQgY2FsbGVkIGJ5IGV4ZWN1dG9yIGJlZm9yZSBlYWNoIHJ1bigpLiAqL1xuICBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLnN0b3JlLmNsZWFyKCk7XG4gICAgdGhpcy5zdGFnZVN0YXJ0VGltZXMuY2xlYXIoKTtcbiAgfVxuXG4gIC8qKiBBbGlhcyBmb3IgY2xlYXIoKSAoYmFja3dhcmQgY29tcGF0KS4gKi9cbiAgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhcigpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* The scope ↔ engine protocol. A user-facing scope may be a strict schema
|
|
4
|
+
* proxy: asking it for an infrastructure member is a state access, not a
|
|
5
|
+
* capability check. Registration keeps that boundary entirely out of band.
|
|
6
|
+
*
|
|
7
|
+
* This module owns identity and capabilities, not their implementation.
|
|
8
|
+
* ScopeFacade owns recording, redaction and state access; custom scopes may
|
|
9
|
+
* explicitly supply a smaller port (including `{}` for data-only scopes).
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.requireDecisionScopeRuntime = exports.requireScopeRuntime = exports.scopeRuntimeFor = exports.registerScopeRuntime = void 0;
|
|
13
|
+
const runtimes = new WeakMap();
|
|
14
|
+
function isObject(value) {
|
|
15
|
+
return (typeof value === 'object' && value !== null) || typeof value === 'function';
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Register a custom scope's engine-facing port and return the SAME scope.
|
|
19
|
+
* Registration never reads, writes or enumerates properties on `scope`.
|
|
20
|
+
* Re-registering explicitly replaces its binding. The descriptor is copied
|
|
21
|
+
* and frozen; the target itself remains live and belongs to its provider.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* const facade = new ScopeFacade(context, stageName, input, env);
|
|
25
|
+
* return registerScopeRuntime(myProxy, { target: facade, handlesAssignments: true });
|
|
26
|
+
*/
|
|
27
|
+
function registerScopeRuntime(scope, runtime) {
|
|
28
|
+
if (!isObject(scope))
|
|
29
|
+
throw new TypeError('registerScopeRuntime: scope must be an object');
|
|
30
|
+
if (!runtime || !isObject(runtime.target) || typeof runtime.handlesAssignments !== 'boolean') {
|
|
31
|
+
throw new TypeError('registerScopeRuntime: provide a target port and boolean handlesAssignments');
|
|
32
|
+
}
|
|
33
|
+
if (runtime.setBreak !== undefined && typeof runtime.setBreak !== 'function') {
|
|
34
|
+
throw new TypeError('registerScopeRuntime: setBreak must be a function when supplied');
|
|
35
|
+
}
|
|
36
|
+
runtimes.set(scope, Object.freeze({
|
|
37
|
+
target: runtime.target,
|
|
38
|
+
handlesAssignments: runtime.handlesAssignments,
|
|
39
|
+
setBreak: runtime.setBreak,
|
|
40
|
+
}));
|
|
41
|
+
return scope;
|
|
42
|
+
}
|
|
43
|
+
exports.registerScopeRuntime = registerScopeRuntime;
|
|
44
|
+
/** @internal Optional only for wrappers that also work outside the engine. */
|
|
45
|
+
function scopeRuntimeFor(scope) {
|
|
46
|
+
return isObject(scope) ? runtimes.get(scope) : undefined;
|
|
47
|
+
}
|
|
48
|
+
exports.scopeRuntimeFor = scopeRuntimeFor;
|
|
49
|
+
const UNREGISTERED = '[footprint] Unregistered scope. Custom scope factories must call registerScopeRuntime(scope, ' +
|
|
50
|
+
'{ target, handlesAssignments }) from footprintjs/advanced. ScopeFacade and built-in scope factories register automatically.';
|
|
51
|
+
const UNREGISTERED_DECISION = "[footprint] decide()/select() needs the stage's scope (the object your stage function receives), " +
|
|
52
|
+
'not a plain object. A hand-built scope must be registered with registerScopeRuntime(scope, ' +
|
|
53
|
+
'{ target, handlesAssignments }) from footprintjs/advanced.';
|
|
54
|
+
/** @internal No method-name guessing: a missing registration is an explicit migration error. */
|
|
55
|
+
function requireScopeRuntime(scope, message = UNREGISTERED) {
|
|
56
|
+
const runtime = scopeRuntimeFor(scope);
|
|
57
|
+
if (runtime)
|
|
58
|
+
return runtime;
|
|
59
|
+
throw new TypeError(message);
|
|
60
|
+
}
|
|
61
|
+
exports.requireScopeRuntime = requireScopeRuntime;
|
|
62
|
+
/** @internal decide()/select() asked outside a stage: name THEM, not the custom-factory migration. */
|
|
63
|
+
function requireDecisionScopeRuntime(scope) {
|
|
64
|
+
return requireScopeRuntime(scope, UNREGISTERED_DECISION);
|
|
65
|
+
}
|
|
66
|
+
exports.requireDecisionScopeRuntime = requireDecisionScopeRuntime;
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvc2NvcGUvcnVudGltZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7O0dBUUc7OztBQTJCSCxNQUFNLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBa0MsQ0FBQztBQUUvRCxTQUFTLFFBQVEsQ0FBQyxLQUFjO0lBQzlCLE9BQU8sQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxJQUFJLE9BQU8sS0FBSyxLQUFLLFVBQVUsQ0FBQztBQUN0RixDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBZ0Isb0JBQW9CLENBQW1CLEtBQVEsRUFBRSxPQUFxQjtJQUNwRixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztRQUFFLE1BQU0sSUFBSSxTQUFTLENBQUMsK0NBQStDLENBQUMsQ0FBQztJQUMzRixJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxPQUFPLE9BQU8sQ0FBQyxrQkFBa0IsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUM3RixNQUFNLElBQUksU0FBUyxDQUFDLDRFQUE0RSxDQUFDLENBQUM7SUFDcEcsQ0FBQztJQUNELElBQUksT0FBTyxDQUFDLFFBQVEsS0FBSyxTQUFTLElBQUksT0FBTyxPQUFPLENBQUMsUUFBUSxLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQzdFLE1BQU0sSUFBSSxTQUFTLENBQUMsaUVBQWlFLENBQUMsQ0FBQztJQUN6RixDQUFDO0lBQ0QsUUFBUSxDQUFDLEdBQUcsQ0FDVixLQUFLLEVBQ0wsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUNaLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtRQUN0QixrQkFBa0IsRUFBRSxPQUFPLENBQUMsa0JBQWtCO1FBQzlDLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUTtLQUMzQixDQUFDLENBQ0gsQ0FBQztJQUNGLE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQWpCRCxvREFpQkM7QUFFRCw4RUFBOEU7QUFDOUUsU0FBZ0IsZUFBZSxDQUFDLEtBQWM7SUFDNUMsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUMzRCxDQUFDO0FBRkQsMENBRUM7QUFFRCxNQUFNLFlBQVksR0FDaEIsK0ZBQStGO0lBQy9GLDZIQUE2SCxDQUFDO0FBRWhJLE1BQU0scUJBQXFCLEdBQ3pCLG1HQUFtRztJQUNuRyw2RkFBNkY7SUFDN0YsNERBQTRELENBQUM7QUFFL0QsZ0dBQWdHO0FBQ2hHLFNBQWdCLG1CQUFtQixDQUFDLEtBQWMsRUFBRSxVQUFrQixZQUFZO0lBQ2hGLE1BQU0sT0FBTyxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QyxJQUFJLE9BQU87UUFBRSxPQUFPLE9BQU8sQ0FBQztJQUM1QixNQUFNLElBQUksU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQy9CLENBQUM7QUFKRCxrREFJQztBQUVELHNHQUFzRztBQUN0RyxTQUFnQiwyQkFBMkIsQ0FBQyxLQUFjO0lBQ3hELE9BQU8sbUJBQW1CLENBQUMsS0FBSyxFQUFFLHFCQUFxQixDQUFDLENBQUM7QUFDM0QsQ0FBQztBQUZELGtFQUVDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGUgc2NvcGUg4oaUIGVuZ2luZSBwcm90b2NvbC4gQSB1c2VyLWZhY2luZyBzY29wZSBtYXkgYmUgYSBzdHJpY3Qgc2NoZW1hXG4gKiBwcm94eTogYXNraW5nIGl0IGZvciBhbiBpbmZyYXN0cnVjdHVyZSBtZW1iZXIgaXMgYSBzdGF0ZSBhY2Nlc3MsIG5vdCBhXG4gKiBjYXBhYmlsaXR5IGNoZWNrLiBSZWdpc3RyYXRpb24ga2VlcHMgdGhhdCBib3VuZGFyeSBlbnRpcmVseSBvdXQgb2YgYmFuZC5cbiAqXG4gKiBUaGlzIG1vZHVsZSBvd25zIGlkZW50aXR5IGFuZCBjYXBhYmlsaXRpZXMsIG5vdCB0aGVpciBpbXBsZW1lbnRhdGlvbi5cbiAqIFNjb3BlRmFjYWRlIG93bnMgcmVjb3JkaW5nLCByZWRhY3Rpb24gYW5kIHN0YXRlIGFjY2VzczsgY3VzdG9tIHNjb3BlcyBtYXlcbiAqIGV4cGxpY2l0bHkgc3VwcGx5IGEgc21hbGxlciBwb3J0IChpbmNsdWRpbmcgYHt9YCBmb3IgZGF0YS1vbmx5IHNjb3BlcykuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBSZWRhY3Rpb25Qb2xpY3ksIFNjb3BlUmVjb3JkZXIgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuLyoqIEVuZ2luZS1mYWNpbmcgY2FwYWJpbGl0aWVzLiBOZXZlciB1c2UgYSBzdHJpY3QgdXNlci1maWVsZCBwcm94eSBhcyB0aGlzIHBvcnQuICovXG5leHBvcnQgaW50ZXJmYWNlIFNjb3BlUnVudGltZVRhcmdldCB7XG4gIGF0dGFjaFNjb3BlUmVjb3JkZXI/KHJlY29yZGVyOiBTY29wZVJlY29yZGVyKTogdm9pZDtcbiAgZGV0YWNoU2NvcGVSZWNvcmRlcj8ocmVjb3JkZXJJZDogc3RyaW5nKTogdm9pZDtcbiAgZ2V0U2NvcGVSZWNvcmRlcnM/KCk6IFNjb3BlUmVjb3JkZXJbXTtcbiAgdXNlU2hhcmVkUmVkYWN0ZWRLZXlzPyhrZXlzOiBTZXQ8c3RyaW5nPik6IHZvaWQ7XG4gIHVzZVJlZGFjdGlvblBvbGljeT8ocG9saWN5OiBSZWRhY3Rpb25Qb2xpY3kpOiB2b2lkO1xuICBnZXRSZWRhY3RlZEtleXM/KCk6IFNldDxzdHJpbmc+O1xuICBub3RpZnlTdGFnZVN0YXJ0PygpOiB2b2lkO1xuICBub3RpZnlTdGFnZUVuZD8oZHVyYXRpb24/OiBudW1iZXIpOiB2b2lkO1xuICBub3RpZnlQYXVzZT8oZGF0YT86IHVua25vd24pOiB2b2lkO1xuICBnZXRWYWx1ZT8oa2V5Pzogc3RyaW5nKTogdW5rbm93bjtcbiAgc2V0VmFsdWU/KGtleTogc3RyaW5nLCB2YWx1ZTogdW5rbm93biwgc2hvdWxkUmVkYWN0PzogYm9vbGVhbiwgZGVzY3JpcHRpb24/OiBzdHJpbmcpOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjb3BlUnVudGltZSB7XG4gIHJlYWRvbmx5IHRhcmdldDogU2NvcGVSdW50aW1lVGFyZ2V0O1xuICAvKiogVGhlIHNjb3BlIGFscmVhZHkgcm91dGVzIHByb3BlcnR5IGFzc2lnbm1lbnRzIGludG8gbWFuYWdlZCBzdGF0ZS4gKi9cbiAgcmVhZG9ubHkgaGFuZGxlc0Fzc2lnbm1lbnRzOiBib29sZWFuO1xuICAvKiogSW5zdGFsbCB0aGlzIGV4ZWN1dGlvbidzIGJyZWFrIGNhbGxiYWNrLCBpZiB0aGUgc2NvcGUgZXhwb3NlcyBvbmUuICovXG4gIHJlYWRvbmx5IHNldEJyZWFrPzogKGJyZWFrUGlwZWxpbmU6IChyZWFzb24/OiBzdHJpbmcpID0+IHZvaWQpID0+IHZvaWQ7XG59XG5cbmNvbnN0IHJ1bnRpbWVzID0gbmV3IFdlYWtNYXA8b2JqZWN0LCBSZWFkb25seTxTY29wZVJ1bnRpbWU+PigpO1xuXG5mdW5jdGlvbiBpc09iamVjdCh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIG9iamVjdCB7XG4gIHJldHVybiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAhPT0gbnVsbCkgfHwgdHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nO1xufVxuXG4vKipcbiAqIFJlZ2lzdGVyIGEgY3VzdG9tIHNjb3BlJ3MgZW5naW5lLWZhY2luZyBwb3J0IGFuZCByZXR1cm4gdGhlIFNBTUUgc2NvcGUuXG4gKiBSZWdpc3RyYXRpb24gbmV2ZXIgcmVhZHMsIHdyaXRlcyBvciBlbnVtZXJhdGVzIHByb3BlcnRpZXMgb24gYHNjb3BlYC5cbiAqIFJlLXJlZ2lzdGVyaW5nIGV4cGxpY2l0bHkgcmVwbGFjZXMgaXRzIGJpbmRpbmcuIFRoZSBkZXNjcmlwdG9yIGlzIGNvcGllZFxuICogYW5kIGZyb3plbjsgdGhlIHRhcmdldCBpdHNlbGYgcmVtYWlucyBsaXZlIGFuZCBiZWxvbmdzIHRvIGl0cyBwcm92aWRlci5cbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3QgZmFjYWRlID0gbmV3IFNjb3BlRmFjYWRlKGNvbnRleHQsIHN0YWdlTmFtZSwgaW5wdXQsIGVudik7XG4gKiByZXR1cm4gcmVnaXN0ZXJTY29wZVJ1bnRpbWUobXlQcm94eSwgeyB0YXJnZXQ6IGZhY2FkZSwgaGFuZGxlc0Fzc2lnbm1lbnRzOiB0cnVlIH0pO1xuICovXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJTY29wZVJ1bnRpbWU8VCBleHRlbmRzIG9iamVjdD4oc2NvcGU6IFQsIHJ1bnRpbWU6IFNjb3BlUnVudGltZSk6IFQge1xuICBpZiAoIWlzT2JqZWN0KHNjb3BlKSkgdGhyb3cgbmV3IFR5cGVFcnJvcigncmVnaXN0ZXJTY29wZVJ1bnRpbWU6IHNjb3BlIG11c3QgYmUgYW4gb2JqZWN0Jyk7XG4gIGlmICghcnVudGltZSB8fCAhaXNPYmplY3QocnVudGltZS50YXJnZXQpIHx8IHR5cGVvZiBydW50aW1lLmhhbmRsZXNBc3NpZ25tZW50cyAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcigncmVnaXN0ZXJTY29wZVJ1bnRpbWU6IHByb3ZpZGUgYSB0YXJnZXQgcG9ydCBhbmQgYm9vbGVhbiBoYW5kbGVzQXNzaWdubWVudHMnKTtcbiAgfVxuICBpZiAocnVudGltZS5zZXRCcmVhayAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiBydW50aW1lLnNldEJyZWFrICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcigncmVnaXN0ZXJTY29wZVJ1bnRpbWU6IHNldEJyZWFrIG11c3QgYmUgYSBmdW5jdGlvbiB3aGVuIHN1cHBsaWVkJyk7XG4gIH1cbiAgcnVudGltZXMuc2V0KFxuICAgIHNjb3BlLFxuICAgIE9iamVjdC5mcmVlemUoe1xuICAgICAgdGFyZ2V0OiBydW50aW1lLnRhcmdldCxcbiAgICAgIGhhbmRsZXNBc3NpZ25tZW50czogcnVudGltZS5oYW5kbGVzQXNzaWdubWVudHMsXG4gICAgICBzZXRCcmVhazogcnVudGltZS5zZXRCcmVhayxcbiAgICB9KSxcbiAgKTtcbiAgcmV0dXJuIHNjb3BlO1xufVxuXG4vKiogQGludGVybmFsIE9wdGlvbmFsIG9ubHkgZm9yIHdyYXBwZXJzIHRoYXQgYWxzbyB3b3JrIG91dHNpZGUgdGhlIGVuZ2luZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzY29wZVJ1bnRpbWVGb3Ioc2NvcGU6IHVua25vd24pOiBSZWFkb25seTxTY29wZVJ1bnRpbWU+IHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGlzT2JqZWN0KHNjb3BlKSA/IHJ1bnRpbWVzLmdldChzY29wZSkgOiB1bmRlZmluZWQ7XG59XG5cbmNvbnN0IFVOUkVHSVNURVJFRCA9XG4gICdbZm9vdHByaW50XSBVbnJlZ2lzdGVyZWQgc2NvcGUuIEN1c3RvbSBzY29wZSBmYWN0b3JpZXMgbXVzdCBjYWxsIHJlZ2lzdGVyU2NvcGVSdW50aW1lKHNjb3BlLCAnICtcbiAgJ3sgdGFyZ2V0LCBoYW5kbGVzQXNzaWdubWVudHMgfSkgZnJvbSBmb290cHJpbnRqcy9hZHZhbmNlZC4gU2NvcGVGYWNhZGUgYW5kIGJ1aWx0LWluIHNjb3BlIGZhY3RvcmllcyByZWdpc3RlciBhdXRvbWF0aWNhbGx5Lic7XG5cbmNvbnN0IFVOUkVHSVNURVJFRF9ERUNJU0lPTiA9XG4gIFwiW2Zvb3RwcmludF0gZGVjaWRlKCkvc2VsZWN0KCkgbmVlZHMgdGhlIHN0YWdlJ3Mgc2NvcGUgKHRoZSBvYmplY3QgeW91ciBzdGFnZSBmdW5jdGlvbiByZWNlaXZlcyksIFwiICtcbiAgJ25vdCBhIHBsYWluIG9iamVjdC4gQSBoYW5kLWJ1aWx0IHNjb3BlIG11c3QgYmUgcmVnaXN0ZXJlZCB3aXRoIHJlZ2lzdGVyU2NvcGVSdW50aW1lKHNjb3BlLCAnICtcbiAgJ3sgdGFyZ2V0LCBoYW5kbGVzQXNzaWdubWVudHMgfSkgZnJvbSBmb290cHJpbnRqcy9hZHZhbmNlZC4nO1xuXG4vKiogQGludGVybmFsIE5vIG1ldGhvZC1uYW1lIGd1ZXNzaW5nOiBhIG1pc3NpbmcgcmVnaXN0cmF0aW9uIGlzIGFuIGV4cGxpY2l0IG1pZ3JhdGlvbiBlcnJvci4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXF1aXJlU2NvcGVSdW50aW1lKHNjb3BlOiB1bmtub3duLCBtZXNzYWdlOiBzdHJpbmcgPSBVTlJFR0lTVEVSRUQpOiBSZWFkb25seTxTY29wZVJ1bnRpbWU+IHtcbiAgY29uc3QgcnVudGltZSA9IHNjb3BlUnVudGltZUZvcihzY29wZSk7XG4gIGlmIChydW50aW1lKSByZXR1cm4gcnVudGltZTtcbiAgdGhyb3cgbmV3IFR5cGVFcnJvcihtZXNzYWdlKTtcbn1cblxuLyoqIEBpbnRlcm5hbCBkZWNpZGUoKS9zZWxlY3QoKSBhc2tlZCBvdXRzaWRlIGEgc3RhZ2U6IG5hbWUgVEhFTSwgbm90IHRoZSBjdXN0b20tZmFjdG9yeSBtaWdyYXRpb24uICovXG5leHBvcnQgZnVuY3Rpb24gcmVxdWlyZURlY2lzaW9uU2NvcGVSdW50aW1lKHNjb3BlOiB1bmtub3duKTogUmVhZG9ubHk8U2NvcGVSdW50aW1lPiB7XG4gIHJldHVybiByZXF1aXJlU2NvcGVSdW50aW1lKHNjb3BlLCBVTlJFR0lTVEVSRURfREVDSVNJT04pO1xufVxuIl19
|
|
@@ -5,13 +5,24 @@
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.defineScopeFromZod = void 0;
|
|
7
7
|
const baseStateCompatible_js_1 = require("../../providers/baseStateCompatible.js");
|
|
8
|
+
const ScopeFacade_js_1 = require("../../ScopeFacade.js");
|
|
8
9
|
const scopeFactory_js_1 = require("./scopeFactory.js");
|
|
9
10
|
function defineScopeFromZod(schema, opts) {
|
|
11
|
+
const createProxy = (0, scopeFactory_js_1.prepareZodScope)(schema, baseStateCompatible_js_1.SCOPE_CONVENIENCE_METHODS);
|
|
10
12
|
const strict = opts?.strict ?? 'warn';
|
|
11
|
-
return (
|
|
12
|
-
const
|
|
13
|
-
|
|
13
|
+
return (context, stageName, readOnly, executionEnv) => {
|
|
14
|
+
const facade = new ScopeFacade_js_1.ScopeFacade(context, stageName, readOnly, executionEnv);
|
|
15
|
+
const access = {
|
|
16
|
+
getValue: (path, key) => facade.getValueAt(path, key),
|
|
17
|
+
setObject: (path, key, value, redact, description) => facade.setValueAt(path, key, value, redact, description),
|
|
18
|
+
updateObject: (path, key, value, description) => facade.updateValueAt(path, key, value, description),
|
|
19
|
+
addLog: (key, value) => facade.addDebugInfo(key, value),
|
|
20
|
+
addError: (key, value) => facade.addErrorInfo(key, value),
|
|
21
|
+
};
|
|
22
|
+
// Construction is not an argument read: mark this dependency only on actual access.
|
|
23
|
+
const proxy = createProxy(access, strict, () => facade.getArgs());
|
|
24
|
+
return (0, baseStateCompatible_js_1.attachFacadeMethods)(proxy, facade);
|
|
14
25
|
};
|
|
15
26
|
}
|
|
16
27
|
exports.defineScopeFromZod = defineScopeFromZod;
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmaW5lU2NvcGVGcm9tWm9kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zY29wZS9zdGF0ZS96b2QvZGVmaW5lU2NvcGVGcm9tWm9kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7R0FFRzs7O0FBRUgsbUZBQXdHO0FBRXhHLHlEQUFtRDtBQUNuRCx1REFBb0Q7QUFPcEQsU0FBZ0Isa0JBQWtCLENBQUMsTUFBaUIsRUFBRSxJQUF5QjtJQUM3RSxNQUFNLFdBQVcsR0FBRyxJQUFBLGlDQUFlLEVBQUMsTUFBTSxFQUFFLGtEQUF5QixDQUFDLENBQUM7SUFDdkUsTUFBTSxNQUFNLEdBQUcsSUFBSSxFQUFFLE1BQU0sSUFBSSxNQUFNLENBQUM7SUFDdEMsT0FBTyxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxFQUFFO1FBQ3BELE1BQU0sTUFBTSxHQUFHLElBQUksNEJBQVcsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUMzRSxNQUFNLE1BQU0sR0FBcUI7WUFDL0IsUUFBUSxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDO1lBQ3JELFNBQVMsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQztZQUM5RyxZQUFZLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsV0FBVyxDQUFDO1lBQ3BHLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQztZQUN2RCxRQUFRLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUM7U0FDMUQsQ0FBQztRQUNGLG9GQUFvRjtRQUNwRixNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNsRSxPQUFPLElBQUEsNENBQW1CLEVBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzVDLENBQUMsQ0FBQztBQUNKLENBQUM7QUFoQkQsZ0RBZ0JDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBkZWZpbmVTY29wZUZyb21ab2Qg4oCUIEJ1aWxkIGEgU2NvcGVGYWN0b3J5IGZyb20gYSBab2Qgb2JqZWN0IHNjaGVtYVxuICovXG5cbmltcG9ydCB7IGF0dGFjaEZhY2FkZU1ldGhvZHMsIFNDT1BFX0NPTlZFTklFTkNFX01FVEhPRFMgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvYmFzZVN0YXRlQ29tcGF0aWJsZS5qcyc7XG5pbXBvcnQgdHlwZSB7IFNjb3BlRmFjdG9yeSwgU3RhZ2VDb250ZXh0TGlrZSwgU3RyaWN0TW9kZSB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy90eXBlcy5qcyc7XG5pbXBvcnQgeyBTY29wZUZhY2FkZSB9IGZyb20gJy4uLy4uL1Njb3BlRmFjYWRlLmpzJztcbmltcG9ydCB7IHByZXBhcmVab2RTY29wZSB9IGZyb20gJy4vc2NvcGVGYWN0b3J5LmpzJztcbmltcG9ydCB0eXBlIHsgWm9kU2NoZW1hIH0gZnJvbSAnLi91dGlscy92YWxpZGF0ZUhlbHBlci5qcyc7XG5cbmV4cG9ydCB0eXBlIERlZmluZVNjb3BlT3B0aW9ucyA9IHtcbiAgc3RyaWN0PzogU3RyaWN0TW9kZTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWZpbmVTY29wZUZyb21ab2Qoc2NoZW1hOiBab2RTY2hlbWEsIG9wdHM/OiBEZWZpbmVTY29wZU9wdGlvbnMpOiBTY29wZUZhY3Rvcnk8YW55PiB7XG4gIGNvbnN0IGNyZWF0ZVByb3h5ID0gcHJlcGFyZVpvZFNjb3BlKHNjaGVtYSwgU0NPUEVfQ09OVkVOSUVOQ0VfTUVUSE9EUyk7XG4gIGNvbnN0IHN0cmljdCA9IG9wdHM/LnN0cmljdCA/PyAnd2Fybic7XG4gIHJldHVybiAoY29udGV4dCwgc3RhZ2VOYW1lLCByZWFkT25seSwgZXhlY3V0aW9uRW52KSA9PiB7XG4gICAgY29uc3QgZmFjYWRlID0gbmV3IFNjb3BlRmFjYWRlKGNvbnRleHQsIHN0YWdlTmFtZSwgcmVhZE9ubHksIGV4ZWN1dGlvbkVudik7XG4gICAgY29uc3QgYWNjZXNzOiBTdGFnZUNvbnRleHRMaWtlID0ge1xuICAgICAgZ2V0VmFsdWU6IChwYXRoLCBrZXkpID0+IGZhY2FkZS5nZXRWYWx1ZUF0KHBhdGgsIGtleSksXG4gICAgICBzZXRPYmplY3Q6IChwYXRoLCBrZXksIHZhbHVlLCByZWRhY3QsIGRlc2NyaXB0aW9uKSA9PiBmYWNhZGUuc2V0VmFsdWVBdChwYXRoLCBrZXksIHZhbHVlLCByZWRhY3QsIGRlc2NyaXB0aW9uKSxcbiAgICAgIHVwZGF0ZU9iamVjdDogKHBhdGgsIGtleSwgdmFsdWUsIGRlc2NyaXB0aW9uKSA9PiBmYWNhZGUudXBkYXRlVmFsdWVBdChwYXRoLCBrZXksIHZhbHVlLCBkZXNjcmlwdGlvbiksXG4gICAgICBhZGRMb2c6IChrZXksIHZhbHVlKSA9PiBmYWNhZGUuYWRkRGVidWdJbmZvKGtleSwgdmFsdWUpLFxuICAgICAgYWRkRXJyb3I6IChrZXksIHZhbHVlKSA9PiBmYWNhZGUuYWRkRXJyb3JJbmZvKGtleSwgdmFsdWUpLFxuICAgIH07XG4gICAgLy8gQ29uc3RydWN0aW9uIGlzIG5vdCBhbiBhcmd1bWVudCByZWFkOiBtYXJrIHRoaXMgZGVwZW5kZW5jeSBvbmx5IG9uIGFjdHVhbCBhY2Nlc3MuXG4gICAgY29uc3QgcHJveHkgPSBjcmVhdGVQcm94eShhY2Nlc3MsIHN0cmljdCwgKCkgPT4gZmFjYWRlLmdldEFyZ3MoKSk7XG4gICAgcmV0dXJuIGF0dGFjaEZhY2FkZU1ldGhvZHMocHJveHksIGZhY2FkZSk7XG4gIH07XG59XG4iXX0=
|