footprintjs 3.0.21 → 4.0.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/CLAUDE.md +2 -0
- package/dist/advanced.js +20 -23
- package/dist/esm/advanced.js +2 -3
- package/dist/esm/lib/builder/FlowChartBuilder.js +41 -16
- package/dist/esm/lib/builder/typedFlowChart.js +10 -20
- package/dist/esm/lib/builder/types.js +1 -1
- package/dist/esm/lib/contract/defineContract.js +33 -7
- package/dist/esm/lib/contract/openapi.js +12 -33
- package/dist/esm/lib/contract/types.js +1 -1
- package/dist/esm/lib/decide/decide.js +33 -3
- package/dist/esm/lib/decide/types.js +1 -1
- package/dist/esm/lib/engine/handlers/NodeResolver.js +22 -7
- package/dist/esm/lib/engine/handlers/RuntimeStructureManager.js +35 -10
- package/dist/esm/lib/engine/handlers/SelectorHandler.js +2 -2
- package/dist/esm/lib/engine/handlers/StageRunner.js +2 -2
- package/dist/esm/lib/engine/handlers/SubflowInputMapper.js +2 -2
- package/dist/esm/lib/engine/index.js +1 -2
- package/dist/esm/lib/engine/narrative/CombinedNarrativeBuilder.js +1 -1
- package/dist/esm/lib/engine/narrative/CombinedNarrativeRecorder.js +5 -3
- package/dist/esm/lib/engine/narrative/FlowRecorderDispatcher.js +41 -32
- package/dist/esm/lib/engine/narrative/NarrativeFlowRecorder.js +7 -12
- package/dist/esm/lib/engine/narrative/index.js +1 -2
- package/dist/esm/lib/engine/traversal/FlowchartTraverser.js +361 -270
- package/dist/esm/lib/engine/types.js +1 -1
- package/dist/esm/lib/memory/StageContext.js +1 -10
- package/dist/esm/lib/memory/pathOps.js +31 -3
- package/dist/esm/lib/memory/utils.js +30 -10
- package/dist/esm/lib/runner/FlowChartExecutor.js +59 -12
- package/dist/esm/lib/runner/RunnableChart.js +25 -1
- package/dist/esm/lib/runner/getSubtreeSnapshot.js +17 -27
- package/dist/esm/lib/runner/index.js +1 -1
- package/dist/esm/lib/scope/ScopeFacade.js +36 -7
- package/dist/esm/lib/scope/index.js +1 -1
- package/dist/esm/lib/scope/providers/baseStateCompatible.js +2 -2
- package/dist/esm/lib/scope/providers/types.js +1 -1
- package/dist/esm/lib/scope/recorders/index.js +1 -1
- package/dist/esm/lib/scope/types.js +1 -1
- package/dist/lib/builder/FlowChartBuilder.js +41 -16
- package/dist/lib/builder/typedFlowChart.js +11 -22
- package/dist/lib/builder/types.js +1 -1
- package/dist/lib/contract/defineContract.js +33 -7
- package/dist/lib/contract/openapi.js +12 -33
- package/dist/lib/contract/types.js +1 -1
- package/dist/lib/decide/decide.js +33 -3
- package/dist/lib/decide/types.js +1 -1
- package/dist/lib/engine/handlers/NodeResolver.js +22 -7
- package/dist/lib/engine/handlers/RuntimeStructureManager.js +35 -10
- package/dist/lib/engine/handlers/SelectorHandler.js +2 -2
- package/dist/lib/engine/handlers/StageRunner.js +2 -2
- package/dist/lib/engine/handlers/SubflowInputMapper.js +2 -2
- package/dist/lib/engine/index.js +2 -4
- package/dist/lib/engine/narrative/CombinedNarrativeBuilder.js +1 -1
- package/dist/lib/engine/narrative/CombinedNarrativeRecorder.js +5 -3
- package/dist/lib/engine/narrative/FlowRecorderDispatcher.js +41 -32
- package/dist/lib/engine/narrative/NarrativeFlowRecorder.js +7 -12
- package/dist/lib/engine/narrative/index.js +2 -4
- package/dist/lib/engine/traversal/FlowchartTraverser.js +361 -270
- package/dist/lib/engine/types.js +1 -1
- package/dist/lib/memory/StageContext.js +1 -10
- package/dist/lib/memory/pathOps.js +31 -3
- package/dist/lib/memory/utils.js +30 -10
- package/dist/lib/runner/FlowChartExecutor.js +59 -12
- package/dist/lib/runner/RunnableChart.js +25 -1
- package/dist/lib/runner/getSubtreeSnapshot.js +17 -27
- package/dist/lib/runner/index.js +1 -1
- package/dist/lib/scope/ScopeFacade.js +36 -7
- package/dist/lib/scope/index.js +1 -1
- package/dist/lib/scope/providers/baseStateCompatible.js +2 -2
- package/dist/lib/scope/providers/types.js +1 -1
- package/dist/lib/scope/recorders/index.js +1 -1
- package/dist/lib/scope/types.js +1 -1
- package/dist/types/advanced.d.ts +2 -3
- package/dist/types/lib/builder/FlowChartBuilder.d.ts +2 -1
- package/dist/types/lib/builder/typedFlowChart.d.ts +9 -18
- package/dist/types/lib/builder/types.d.ts +12 -3
- package/dist/types/lib/contract/openapi.d.ts +9 -3
- package/dist/types/lib/contract/types.d.ts +13 -2
- package/dist/types/lib/decide/decide.d.ts +10 -0
- package/dist/types/lib/decide/types.d.ts +20 -0
- package/dist/types/lib/engine/handlers/NodeResolver.d.ts +10 -3
- package/dist/types/lib/engine/handlers/RuntimeStructureManager.d.ts +2 -1
- package/dist/types/lib/engine/index.d.ts +0 -1
- package/dist/types/lib/engine/narrative/CombinedNarrativeBuilder.d.ts +1 -1
- package/dist/types/lib/engine/narrative/FlowRecorderDispatcher.d.ts +3 -2
- package/dist/types/lib/engine/narrative/NarrativeFlowRecorder.d.ts +0 -1
- package/dist/types/lib/engine/narrative/index.d.ts +0 -1
- package/dist/types/lib/engine/traversal/FlowchartTraverser.d.ts +53 -0
- package/dist/types/lib/engine/types.d.ts +10 -3
- package/dist/types/lib/memory/StageContext.d.ts +0 -3
- package/dist/types/lib/memory/pathOps.d.ts +26 -2
- package/dist/types/lib/memory/utils.d.ts +16 -3
- package/dist/types/lib/runner/FlowChartExecutor.d.ts +78 -7
- package/dist/types/lib/runner/RunnableChart.d.ts +2 -0
- package/dist/types/lib/runner/index.d.ts +1 -0
- package/dist/types/lib/scope/ScopeFacade.d.ts +18 -1
- package/dist/types/lib/scope/index.d.ts +0 -1
- package/dist/types/lib/scope/providers/types.d.ts +1 -1
- package/dist/types/lib/scope/recorders/index.d.ts +0 -1
- package/dist/types/lib/scope/types.d.ts +7 -1
- package/package.json +1 -1
- package/dist/esm/lib/engine/narrative/ControlFlowNarrativeGenerator.js +0 -110
- package/dist/esm/lib/scope/recorders/NarrativeRecorder.js +0 -149
- package/dist/lib/engine/narrative/ControlFlowNarrativeGenerator.js +0 -114
- package/dist/lib/scope/recorders/NarrativeRecorder.js +0 -153
- package/dist/types/lib/engine/narrative/ControlFlowNarrativeGenerator.d.ts +0 -31
- package/dist/types/lib/scope/recorders/NarrativeRecorder.d.ts +0 -50
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* typedFlowChart
|
|
2
|
+
* typedFlowChart.ts — TypedScope factory for FlowChartExecutor.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* receive typed property access without any casts.
|
|
6
|
-
*
|
|
7
|
-
* Also exports createTypedScopeFactory<T>() which creates the ScopeFactory
|
|
4
|
+
* Exports createTypedScopeFactory<T>() which creates the ScopeFactory
|
|
8
5
|
* that wraps ScopeFacade in a TypedScope proxy.
|
|
9
6
|
*/
|
|
10
7
|
import { createTypedScope } from '../reactive/createTypedScope.js';
|
|
11
8
|
import { ScopeFacade } from '../scope/ScopeFacade.js';
|
|
12
|
-
import { FlowChartBuilder } from './FlowChartBuilder.js';
|
|
13
9
|
/**
|
|
14
10
|
* Creates a ScopeFactory that produces TypedScope<T> instances.
|
|
15
11
|
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
12
|
+
* `flowChart<T>()` auto-embeds this factory at build time — you rarely need
|
|
13
|
+
* to call this directly. Use it only when constructing a custom executor with
|
|
14
|
+
* a pre-built chart that was NOT created with `flowChart<T>()`.
|
|
15
|
+
*
|
|
16
|
+
* const factory = createTypedScopeFactory<MyState>();
|
|
17
|
+
* new FlowChartExecutor(chart, factory)
|
|
18
|
+
* // or: new FlowChartExecutor(chart, { scopeFactory: factory })
|
|
18
19
|
*/
|
|
19
20
|
export function createTypedScopeFactory() {
|
|
20
21
|
return ((ctx, stageName, readOnly, env) => {
|
|
@@ -22,15 +23,4 @@ export function createTypedScopeFactory() {
|
|
|
22
23
|
return createTypedScope(facade);
|
|
23
24
|
});
|
|
24
25
|
}
|
|
25
|
-
|
|
26
|
-
* Convenience builder for typed pipelines.
|
|
27
|
-
*
|
|
28
|
-
* Usage:
|
|
29
|
-
* const chart = typedFlowChart<LoanState>('Intake', intakeFn, 'intake')
|
|
30
|
-
* .addFunction('Process', processFn, 'process')
|
|
31
|
-
* .build();
|
|
32
|
-
*/
|
|
33
|
-
export function typedFlowChart(name, fn, id, buildTimeExtractor, description) {
|
|
34
|
-
return new FlowChartBuilder(buildTimeExtractor).start(name, fn, id, description);
|
|
35
|
-
}
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWRGbG93Q2hhcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2J1aWxkZXIvdHlwZWRGbG93Q2hhcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFHSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVuRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFTekQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsdUJBQXVCO0lBQ3JDLE9BQU8sQ0FBQyxDQUFDLEdBQVEsRUFBRSxTQUFpQixFQUFFLFFBQWtCLEVBQUUsR0FBUyxFQUFFLEVBQUU7UUFDckUsTUFBTSxNQUFNLEdBQUcsSUFBSSxXQUFXLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDOUQsT0FBTyxnQkFBZ0IsQ0FBSSxNQUFNLENBQUMsQ0FBQztJQUNyQyxDQUFDLENBQWdDLENBQUM7QUFDcEMsQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUM1QixJQUFZLEVBQ1osRUFBeUIsRUFDekIsRUFBVSxFQUNWLGtCQUE0QyxFQUM1QyxXQUFvQjtJQUVwQixPQUFPLElBQUksZ0JBQWdCLENBQXFCLGtCQUFrQixDQUFDLENBQUMsS0FBSyxDQUN2RSxJQUFJLEVBQ0osRUFBa0QsRUFDbEQsRUFBRSxFQUNGLFdBQVcsQ0FDWixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogdHlwZWRGbG93Q2hhcnQ8VD4gLS0gQ29udmVuaWVuY2UgYnVpbGRlciBmb3IgVHlwZWRTY29wZTxUPiBwaXBlbGluZXMuXG4gKlxuICogV3JhcHMgRmxvd0NoYXJ0QnVpbGRlciB3aXRoIHRoZSBjb3JyZWN0IFRTY29wZSBnZW5lcmljIHNvIHN0YWdlIGZ1bmN0aW9uc1xuICogcmVjZWl2ZSB0eXBlZCBwcm9wZXJ0eSBhY2Nlc3Mgd2l0aG91dCBhbnkgY2FzdHMuXG4gKlxuICogQWxzbyBleHBvcnRzIGNyZWF0ZVR5cGVkU2NvcGVGYWN0b3J5PFQ+KCkgd2hpY2ggY3JlYXRlcyB0aGUgU2NvcGVGYWN0b3J5XG4gKiB0aGF0IHdyYXBzIFNjb3BlRmFjYWRlIGluIGEgVHlwZWRTY29wZSBwcm94eS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFNjb3BlRmFjdG9yeSwgU3RhZ2VGdW5jdGlvbiB9IGZyb20gJy4uL2VuZ2luZS90eXBlcy5qcyc7XG5pbXBvcnQgeyBjcmVhdGVUeXBlZFNjb3BlIH0gZnJvbSAnLi4vcmVhY3RpdmUvY3JlYXRlVHlwZWRTY29wZS5qcyc7XG5pbXBvcnQgdHlwZSB7IFR5cGVkU2NvcGUgfSBmcm9tICcuLi9yZWFjdGl2ZS90eXBlcy5qcyc7XG5pbXBvcnQgeyBTY29wZUZhY2FkZSB9IGZyb20gJy4uL3Njb3BlL1Njb3BlRmFjYWRlLmpzJztcbmltcG9ydCB7IEZsb3dDaGFydEJ1aWxkZXIgfSBmcm9tICcuL0Zsb3dDaGFydEJ1aWxkZXIuanMnO1xuaW1wb3J0IHR5cGUgeyBCdWlsZFRpbWVFeHRyYWN0b3IgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuLyoqXG4gKiBDbGVhbiBzdGFnZSBmdW5jdGlvbiB0eXBlIGZvciBUeXBlZFNjb3BlIHVzZXJzLlxuICogTm8gYnJlYWtQaXBlbGluZSBwYXJhbWV0ZXIg4oCUIHVzZSBzY29wZS4kYnJlYWsoKSBpbnN0ZWFkLlxuICovXG5leHBvcnQgdHlwZSBUeXBlZFN0YWdlRnVuY3Rpb248VCBleHRlbmRzIG9iamVjdD4gPSAoc2NvcGU6IFR5cGVkU2NvcGU8VD4pID0+IFByb21pc2U8dm9pZD4gfCB2b2lkO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBTY29wZUZhY3RvcnkgdGhhdCBwcm9kdWNlcyBUeXBlZFNjb3BlPFQ+IGluc3RhbmNlcy5cbiAqXG4gKiBQYXNzIHRvIEZsb3dDaGFydEV4ZWN1dG9yIGFzIHRoZSBzZWNvbmQgYXJndW1lbnQ6XG4gKiAgIG5ldyBGbG93Q2hhcnRFeGVjdXRvcihjaGFydCwgY3JlYXRlVHlwZWRTY29wZUZhY3Rvcnk8TXlTdGF0ZT4oKSlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVR5cGVkU2NvcGVGYWN0b3J5PFQgZXh0ZW5kcyBvYmplY3Q+KCk6IFNjb3BlRmFjdG9yeTxUeXBlZFNjb3BlPFQ+PiB7XG4gIHJldHVybiAoKGN0eDogYW55LCBzdGFnZU5hbWU6IHN0cmluZywgcmVhZE9ubHk/OiB1bmtub3duLCBlbnY/OiBhbnkpID0+IHtcbiAgICBjb25zdCBmYWNhZGUgPSBuZXcgU2NvcGVGYWNhZGUoY3R4LCBzdGFnZU5hbWUsIHJlYWRPbmx5LCBlbnYpO1xuICAgIHJldHVybiBjcmVhdGVUeXBlZFNjb3BlPFQ+KGZhY2FkZSk7XG4gIH0pIGFzIFNjb3BlRmFjdG9yeTxUeXBlZFNjb3BlPFQ+Pjtcbn1cblxuLyoqXG4gKiBDb252ZW5pZW5jZSBidWlsZGVyIGZvciB0eXBlZCBwaXBlbGluZXMuXG4gKlxuICogVXNhZ2U6XG4gKiAgIGNvbnN0IGNoYXJ0ID0gdHlwZWRGbG93Q2hhcnQ8TG9hblN0YXRlPignSW50YWtlJywgaW50YWtlRm4sICdpbnRha2UnKVxuICogICAgIC5hZGRGdW5jdGlvbignUHJvY2VzcycsIHByb2Nlc3NGbiwgJ3Byb2Nlc3MnKVxuICogICAgIC5idWlsZCgpO1xuICovXG5leHBvcnQgZnVuY3Rpb24gdHlwZWRGbG93Q2hhcnQ8VCBleHRlbmRzIG9iamVjdD4oXG4gIG5hbWU6IHN0cmluZyxcbiAgZm46IFR5cGVkU3RhZ2VGdW5jdGlvbjxUPixcbiAgaWQ6IHN0cmluZyxcbiAgYnVpbGRUaW1lRXh0cmFjdG9yPzogQnVpbGRUaW1lRXh0cmFjdG9yPGFueT4sXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nLFxuKTogRmxvd0NoYXJ0QnVpbGRlcjxhbnksIFR5cGVkU2NvcGU8VD4+IHtcbiAgcmV0dXJuIG5ldyBGbG93Q2hhcnRCdWlsZGVyPGFueSwgVHlwZWRTY29wZTxUPj4oYnVpbGRUaW1lRXh0cmFjdG9yKS5zdGFydChcbiAgICBuYW1lLFxuICAgIGZuIGFzIHVua25vd24gYXMgU3RhZ2VGdW5jdGlvbjxhbnksIFR5cGVkU2NvcGU8VD4+LFxuICAgIGlkLFxuICAgIGRlc2NyaXB0aW9uLFxuICApO1xufVxuIl19
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWRGbG93Q2hhcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2J1aWxkZXIvdHlwZWRGbG93Q2hhcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFHSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVuRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFRdEQ7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQU0sVUFBVSx1QkFBdUI7SUFDckMsT0FBTyxDQUFDLENBQUMsR0FBUSxFQUFFLFNBQWlCLEVBQUUsUUFBa0IsRUFBRSxHQUFTLEVBQUUsRUFBRTtRQUNyRSxNQUFNLE1BQU0sR0FBRyxJQUFJLFdBQVcsQ0FBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM5RCxPQUFPLGdCQUFnQixDQUFJLE1BQU0sQ0FBQyxDQUFDO0lBQ3JDLENBQUMsQ0FBZ0MsQ0FBQztBQUNwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiB0eXBlZEZsb3dDaGFydC50cyDigJQgVHlwZWRTY29wZSBmYWN0b3J5IGZvciBGbG93Q2hhcnRFeGVjdXRvci5cbiAqXG4gKiBFeHBvcnRzIGNyZWF0ZVR5cGVkU2NvcGVGYWN0b3J5PFQ+KCkgd2hpY2ggY3JlYXRlcyB0aGUgU2NvcGVGYWN0b3J5XG4gKiB0aGF0IHdyYXBzIFNjb3BlRmFjYWRlIGluIGEgVHlwZWRTY29wZSBwcm94eS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFNjb3BlRmFjdG9yeSB9IGZyb20gJy4uL2VuZ2luZS90eXBlcy5qcyc7XG5pbXBvcnQgeyBjcmVhdGVUeXBlZFNjb3BlIH0gZnJvbSAnLi4vcmVhY3RpdmUvY3JlYXRlVHlwZWRTY29wZS5qcyc7XG5pbXBvcnQgdHlwZSB7IFR5cGVkU2NvcGUgfSBmcm9tICcuLi9yZWFjdGl2ZS90eXBlcy5qcyc7XG5pbXBvcnQgeyBTY29wZUZhY2FkZSB9IGZyb20gJy4uL3Njb3BlL1Njb3BlRmFjYWRlLmpzJztcblxuLyoqXG4gKiBDbGVhbiBzdGFnZSBmdW5jdGlvbiB0eXBlIGZvciBUeXBlZFNjb3BlIHVzZXJzLlxuICogTm8gYnJlYWtQaXBlbGluZSBwYXJhbWV0ZXIg4oCUIHVzZSBzY29wZS4kYnJlYWsoKSBpbnN0ZWFkLlxuICovXG5leHBvcnQgdHlwZSBUeXBlZFN0YWdlRnVuY3Rpb248VCBleHRlbmRzIG9iamVjdD4gPSAoc2NvcGU6IFR5cGVkU2NvcGU8VD4pID0+IFByb21pc2U8dm9pZD4gfCB2b2lkO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBTY29wZUZhY3RvcnkgdGhhdCBwcm9kdWNlcyBUeXBlZFNjb3BlPFQ+IGluc3RhbmNlcy5cbiAqXG4gKiBgZmxvd0NoYXJ0PFQ+KClgIGF1dG8tZW1iZWRzIHRoaXMgZmFjdG9yeSBhdCBidWlsZCB0aW1lIOKAlCB5b3UgcmFyZWx5IG5lZWRcbiAqIHRvIGNhbGwgdGhpcyBkaXJlY3RseS4gVXNlIGl0IG9ubHkgd2hlbiBjb25zdHJ1Y3RpbmcgYSBjdXN0b20gZXhlY3V0b3Igd2l0aFxuICogYSBwcmUtYnVpbHQgY2hhcnQgdGhhdCB3YXMgTk9UIGNyZWF0ZWQgd2l0aCBgZmxvd0NoYXJ0PFQ+KClgLlxuICpcbiAqICAgY29uc3QgZmFjdG9yeSA9IGNyZWF0ZVR5cGVkU2NvcGVGYWN0b3J5PE15U3RhdGU+KCk7XG4gKiAgIG5ldyBGbG93Q2hhcnRFeGVjdXRvcihjaGFydCwgZmFjdG9yeSlcbiAqICAgLy8gb3I6IG5ldyBGbG93Q2hhcnRFeGVjdXRvcihjaGFydCwgeyBzY29wZUZhY3Rvcnk6IGZhY3RvcnkgfSlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVR5cGVkU2NvcGVGYWN0b3J5PFQgZXh0ZW5kcyBvYmplY3Q+KCk6IFNjb3BlRmFjdG9yeTxUeXBlZFNjb3BlPFQ+PiB7XG4gIHJldHVybiAoKGN0eDogYW55LCBzdGFnZU5hbWU6IHN0cmluZywgcmVhZE9ubHk/OiB1bmtub3duLCBlbnY/OiBhbnkpID0+IHtcbiAgICBjb25zdCBmYWNhZGUgPSBuZXcgU2NvcGVGYWNhZGUoY3R4LCBzdGFnZU5hbWUsIHJlYWRPbmx5LCBlbnYpO1xuICAgIHJldHVybiBjcmVhdGVUeXBlZFNjb3BlPFQ+KGZhY2FkZSk7XG4gIH0pIGFzIFNjb3BlRmFjdG9yeTxUeXBlZFNjb3BlPFQ+Pjtcbn1cbiJdfQ==
|
|
@@ -9,4 +9,4 @@
|
|
|
9
9
|
* The builder remains standalone at runtime.
|
|
10
10
|
*/
|
|
11
11
|
export {};
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2J1aWxkZXIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7OztHQVNHIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBidWlsZGVyL3R5cGVzLnRzIOKAlCBBbGwgdHlwZXMgdXNlZCBieSB0aGUgYnVpbGRlciBsaWJyYXJ5LlxuICpcbiAqIFNoYXJlZCB0eXBlcyAoU3RhZ2VOb2RlLCBTdGFnZUZ1bmN0aW9uLCBldGMuKSBhcmUgaW1wb3J0ZWQgZnJvbSB0aGUgZW5naW5lLlxuICogQnVpbGRlci1zcGVjaWZpYyB0eXBlcyAoRmxvd0NoYXJ0U3BlYywgRmxvd0NoYXJ0LCBTZXJpYWxpemVkUGlwZWxpbmVTdHJ1Y3R1cmUpXG4gKiBhcmUgZGVmaW5lZCBsb2NhbGx5IOKAlCB0aGV5IGNhcnJ5IGJ1aWxkZXItb25seSBmaWVsZHMgKGRlc2NyaXB0aW9uLCBvdXRwdXRNYXBwZXIsIGV0Yy4pLlxuICpcbiAqIE5PVEU6IEFsbCBlbmdpbmUgaW1wb3J0cyBhcmUgYGltcG9ydCB0eXBlYCDigJQgemVybyBydW50aW1lIGRlcGVuZGVuY3kuXG4gKiBUaGUgYnVpbGRlciByZW1haW5zIHN0YW5kYWxvbmUgYXQgcnVudGltZS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFN0YWdlTm9kZSB9IGZyb20gJy4uL2VuZ2luZS9ncmFwaC9TdGFnZU5vZGUuanMnO1xuaW1wb3J0IHR5cGUgeyBJTG9nZ2VyLCBTY29wZUZhY3RvcnksIFN0YWdlRnVuY3Rpb24sIFRyYXZlcnNhbEV4dHJhY3RvciB9IGZyb20gJy4uL2VuZ2luZS90eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IFNjb3BlUHJvdGVjdGlvbk1vZGUgfSBmcm9tICcuLi9zY29wZS9wcm90ZWN0aW9uL3R5cGVzLmpzJztcblxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBSZS1leHBvcnRzIGZyb20gZW5naW5lIChjYW5vbmljYWwgZGVmaW5pdGlvbnMpXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuZXhwb3J0IHR5cGUgeyBTdGFnZU5vZGUgfSBmcm9tICcuLi9lbmdpbmUvZ3JhcGgvU3RhZ2VOb2RlLmpzJztcbmV4cG9ydCB0eXBlIHtcbiAgSUxvZ2dlcixcbiAgU3RhZ2VGdW5jdGlvbixcbiAgU3RyZWFtQ2FsbGJhY2ssXG4gIFN0cmVhbUhhbmRsZXJzLFxuICBTdHJlYW1MaWZlY3ljbGVIYW5kbGVyLFxuICBTdHJlYW1Ub2tlbkhhbmRsZXIsXG4gIFN1YmZsb3dNb3VudE9wdGlvbnMsXG59IGZyb20gJy4uL2VuZ2luZS90eXBlcy5qcyc7XG5cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gQWxpYXNlc1xuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbi8qKiBSZWxheGVkLWdlbmVyaWMgYWxpYXMgZm9yIGJ1aWxkZXIgZXJnb25vbWljcy4gKi9cbmV4cG9ydCB0eXBlIFN0YWdlRm4gPSBTdGFnZUZ1bmN0aW9uPGFueSwgYW55PjtcblxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBTY29wZSBQcm90ZWN0aW9uIOKAlCBjYW5vbmljYWwgZGVmaW5pdGlvbiBpbiBzY29wZS9wcm90ZWN0aW9uL3R5cGVzLnRzXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuZXhwb3J0IHR5cGUgeyBTY29wZVByb3RlY3Rpb25Nb2RlIH07XG5cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gU2VyaWFsaXplZCBQaXBlbGluZSBTdHJ1Y3R1cmUgKEpTT04tc2FmZSwgZm9yIHZpc3VhbGl6YXRpb24pXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuZXhwb3J0IGludGVyZmFjZSBTZXJpYWxpemVkUGlwZWxpbmVTdHJ1Y3R1cmUge1xuICBuYW1lOiBzdHJpbmc7XG4gIGlkPzogc3RyaW5nO1xuICB0eXBlOiAnc3RhZ2UnIHwgJ2RlY2lkZXInIHwgJ2ZvcmsnIHwgJ3N0cmVhbWluZyc7XG4gIC8qKiBTZW1hbnRpYyBpY29uIGhpbnQgZm9yIHZpc3VhbGl6YXRpb24gKGUuZy4sIFwibGxtXCIsIFwidG9vbFwiLCBcInJhZ1wiLCBcImFnZW50XCIsIFwic3RhcnRcIikgKi9cbiAgaWNvbj86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGNoaWxkcmVuPzogU2VyaWFsaXplZFBpcGVsaW5lU3RydWN0dXJlW107XG4gIG5leHQ/OiBTZXJpYWxpemVkUGlwZWxpbmVTdHJ1Y3R1cmU7XG4gIGhhc0RlY2lkZXI/OiBib29sZWFuO1xuICBoYXNTZWxlY3Rvcj86IGJvb2xlYW47XG4gIGJyYW5jaElkcz86IHN0cmluZ1tdO1xuICBsb29wVGFyZ2V0Pzogc3RyaW5nO1xuICBpc1N0cmVhbWluZz86IGJvb2xlYW47XG4gIHN0cmVhbUlkPzogc3RyaW5nO1xuICBpc1BhcmFsbGVsQ2hpbGQ/OiBib29sZWFuO1xuICBwYXJhbGxlbEdyb3VwSWQ/OiBzdHJpbmc7XG4gIGlzU3ViZmxvd1Jvb3Q/OiBib29sZWFuO1xuICBzdWJmbG93SWQ/OiBzdHJpbmc7XG4gIHN1YmZsb3dOYW1lPzogc3RyaW5nO1xuICBzdWJmbG93U3RydWN0dXJlPzogU2VyaWFsaXplZFBpcGVsaW5lU3RydWN0dXJlO1xuICBpdGVyYXRpb25Db3VudD86IG51bWJlcjtcbiAgLyoqIFRydWUgd2hlbiB0aGlzIHN1YmZsb3cgdXNlcyBsYXp5IHJlc29sdXRpb24gKGRlZmVycmVkIHVudGlsIGV4ZWN1dGlvbikuICovXG4gIGlzTGF6eT86IGJvb2xlYW47XG59XG5cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gRmxvd0NoYXJ0U3BlYyAocHVyZSBKU09OLCBubyBmdW5jdGlvbnMg4oCUIGZvciBGReKGkkJFIHRyYW5zcG9ydClcbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG5leHBvcnQgaW50ZXJmYWNlIEZsb3dDaGFydFNwZWMge1xuICBuYW1lOiBzdHJpbmc7XG4gIGlkPzogc3RyaW5nO1xuICAvKiogU2VtYW50aWMgaWNvbiBoaW50IGZvciB2aXN1YWxpemF0aW9uIChlLmcuLCBcImxsbVwiLCBcInRvb2xcIiwgXCJyYWdcIiwgXCJhZ2VudFwiLCBcInN0YXJ0XCIpICovXG4gIGljb24/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBjaGlsZHJlbj86IEZsb3dDaGFydFNwZWNbXTtcbiAgbmV4dD86IEZsb3dDaGFydFNwZWM7XG4gIGhhc0RlY2lkZXI/OiBib29sZWFuO1xuICBoYXNTZWxlY3Rvcj86IGJvb2xlYW47XG4gIGJyYW5jaElkcz86IHN0cmluZ1tdO1xuICBsb29wVGFyZ2V0Pzogc3RyaW5nO1xuICBpc1N0cmVhbWluZz86IGJvb2xlYW47XG4gIHN0cmVhbUlkPzogc3RyaW5nO1xuICBpc1BhcmFsbGVsQ2hpbGQ/OiBib29sZWFuO1xuICBwYXJhbGxlbEdyb3VwSWQ/OiBzdHJpbmc7XG4gIGlzU3ViZmxvd1Jvb3Q/OiBib29sZWFuO1xuICBzdWJmbG93SWQ/OiBzdHJpbmc7XG4gIHN1YmZsb3dOYW1lPzogc3RyaW5nO1xufVxuXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIEJ1aWxkLVRpbWUgRXh0cmFjdG9yXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuLyoqIE1ldGFkYXRhIHByb3ZpZGVkIHRvIHRoZSBidWlsZC10aW1lIGV4dHJhY3RvciBmb3IgZWFjaCBub2RlLiAqL1xuZXhwb3J0IHR5cGUgQnVpbGRUaW1lTm9kZU1ldGFkYXRhID0gRmxvd0NoYXJ0U3BlYztcblxuZXhwb3J0IHR5cGUgQnVpbGRUaW1lRXh0cmFjdG9yPFRSZXN1bHQgPSBGbG93Q2hhcnRTcGVjPiA9IChtZXRhZGF0YTogQnVpbGRUaW1lTm9kZU1ldGFkYXRhKSA9PiBUUmVzdWx0O1xuXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIFRyYXZlcnNhbCBFeHRyYWN0b3IgKHJ1bnRpbWUpIOKAlCBjYW5vbmljYWwgZGVmaW5pdGlvbiBsaXZlcyBpbiBlbmdpbmUvdHlwZXMuXG4vLyBSZS1leHBvcnRlZCBoZXJlIHNvIGNhbGxlcnMgZG9uJ3QgbmVlZCB0d28gaW1wb3J0IHBhdGhzLlxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbmV4cG9ydCB0eXBlIHsgVHJhdmVyc2FsRXh0cmFjdG9yIH0gZnJvbSAnLi4vZW5naW5lL3R5cGVzLmpzJztcblxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBGbG93Q2hhcnQg4oCUIGNvbXBpbGVkIG91dHB1dCBvZiBidWlsZCgpXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuZXhwb3J0IHR5cGUgRmxvd0NoYXJ0PFRPdXQgPSBhbnksIFRTY29wZSA9IGFueT4gPSB7XG4gIHJvb3Q6IFN0YWdlTm9kZTxUT3V0LCBUU2NvcGU+O1xuICBzdGFnZU1hcDogTWFwPHN0cmluZywgU3RhZ2VGdW5jdGlvbjxUT3V0LCBUU2NvcGU+PjtcbiAgZXh0cmFjdG9yPzogVHJhdmVyc2FsRXh0cmFjdG9yO1xuICBzdWJmbG93cz86IFJlY29yZDxzdHJpbmcsIHsgcm9vdDogU3RhZ2VOb2RlPFRPdXQsIFRTY29wZT4gfT47XG4gIGJ1aWxkVGltZVN0cnVjdHVyZTogU2VyaWFsaXplZFBpcGVsaW5lU3RydWN0dXJlO1xuICBlbmFibGVOYXJyYXRpdmU/OiBib29sZWFuO1xuICBsb2dnZXI/OiBJTG9nZ2VyO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBzdGFnZURlc2NyaXB0aW9uczogTWFwPHN0cmluZywgc3RyaW5nPjtcbiAgLyoqIElucHV0IHNjaGVtYSAoWm9kIG9yIEpTT04gU2NoZW1hKSDigJQgZGVjbGFyZWQgdmlhIHNldElucHV0U2NoZW1hKCkgb3IgLmNvbnRyYWN0KCkuICovXG4gIGlucHV0U2NoZW1hPzogdW5rbm93bjtcbiAgLyoqIE91dHB1dCBzY2hlbWEgKFpvZCBvciBKU09OIFNjaGVtYSkg4oCUIGRlY2xhcmVkIHZpYSBzZXRPdXRwdXRTY2hlbWEoKSBvciAuY29udHJhY3QoKS4gKi9cbiAgb3V0cHV0U2NoZW1hPzogdW5rbm93bjtcbiAgLyoqIE91dHB1dCBtYXBwZXIg4oCUIGV4dHJhY3RzIHJlc3BvbnNlIGZyb20gZmluYWwgc2NvcGUuICovXG4gIG91dHB1dE1hcHBlcj86IChmaW5hbFNjb3BlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPT4gdW5rbm93bjtcbiAgLyoqIFNjb3BlIGZhY3Rvcnkg4oCUIGF1dG8tZW1iZWRkZWQgYnkgZmxvd0NoYXJ0PFQ+KCkuIEV4ZWN1dG9yIHJlYWRzIHRoaXMgaWYgbm8gZmFjdG9yeSBwYXJhbS4gKi9cbiAgc2NvcGVGYWN0b3J5PzogU2NvcGVGYWN0b3J5PFRTY29wZT47XG59O1xuXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIFNpbXBsaWZpZWQgUGFyYWxsZWwgU3BlYyAoZm9yIGFkZExpc3RPZkZ1bmN0aW9uKVxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbmV4cG9ydCB0eXBlIFNpbXBsaWZpZWRQYXJhbGxlbFNwZWM8VE91dCA9IGFueSwgVFNjb3BlID0gYW55PiA9IHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBmbj86IFN0YWdlRnVuY3Rpb248VE91dCwgVFNjb3BlPjtcbn07XG5cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gRXhlY09wdGlvbnMgKGZvciBleGVjdXRlKCkgY29udmVuaWVuY2Ug4oCUIHVzZWQgYnkgcnVubmVyIGxheWVyKVxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbmV4cG9ydCB0eXBlIEV4ZWNPcHRpb25zID0ge1xuICBkZWZhdWx0cz86IHVua25vd247XG4gIGluaXRpYWw/OiB1bmtub3duO1xuICByZWFkT25seT86IHVua25vd247XG4gIHRocm90dGxpbmdFcnJvckNoZWNrZXI/OiAoZTogdW5rbm93bikgPT4gYm9vbGVhbjtcbiAgc2NvcGVQcm90ZWN0aW9uTW9kZT86IFNjb3BlUHJvdGVjdGlvbk1vZGU7XG4gIGVuYWJsZU5hcnJhdGl2ZT86IGJvb2xlYW47XG59O1xuXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIFN1YmZsb3dSZWZcbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG5leHBvcnQgaW50ZXJmYWNlIFN1YmZsb3dSZWYge1xuICAkcmVmOiBzdHJpbmc7XG4gIG1vdW50SWQ6IHN0cmluZztcbn1cbiJdfQ==
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2J1aWxkZXIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7OztHQVNHIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBidWlsZGVyL3R5cGVzLnRzIOKAlCBBbGwgdHlwZXMgdXNlZCBieSB0aGUgYnVpbGRlciBsaWJyYXJ5LlxuICpcbiAqIFNoYXJlZCB0eXBlcyAoU3RhZ2VOb2RlLCBTdGFnZUZ1bmN0aW9uLCBldGMuKSBhcmUgaW1wb3J0ZWQgZnJvbSB0aGUgZW5naW5lLlxuICogQnVpbGRlci1zcGVjaWZpYyB0eXBlcyAoRmxvd0NoYXJ0U3BlYywgRmxvd0NoYXJ0LCBTZXJpYWxpemVkUGlwZWxpbmVTdHJ1Y3R1cmUpXG4gKiBhcmUgZGVmaW5lZCBsb2NhbGx5IOKAlCB0aGV5IGNhcnJ5IGJ1aWxkZXItb25seSBmaWVsZHMgKGRlc2NyaXB0aW9uLCBvdXRwdXRNYXBwZXIsIGV0Yy4pLlxuICpcbiAqIE5PVEU6IEFsbCBlbmdpbmUgaW1wb3J0cyBhcmUgYGltcG9ydCB0eXBlYCDigJQgemVybyBydW50aW1lIGRlcGVuZGVuY3kuXG4gKiBUaGUgYnVpbGRlciByZW1haW5zIHN0YW5kYWxvbmUgYXQgcnVudGltZS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFN0YWdlTm9kZSB9IGZyb20gJy4uL2VuZ2luZS9ncmFwaC9TdGFnZU5vZGUuanMnO1xuaW1wb3J0IHR5cGUgeyBJTG9nZ2VyLCBTY29wZUZhY3RvcnksIFN0YWdlRnVuY3Rpb24sIFRyYXZlcnNhbEV4dHJhY3RvciB9IGZyb20gJy4uL2VuZ2luZS90eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IFNjb3BlUHJvdGVjdGlvbk1vZGUgfSBmcm9tICcuLi9zY29wZS9wcm90ZWN0aW9uL3R5cGVzLmpzJztcblxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBSZS1leHBvcnRzIGZyb20gZW5naW5lIChjYW5vbmljYWwgZGVmaW5pdGlvbnMpXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuZXhwb3J0IHR5cGUgeyBTdGFnZU5vZGUgfSBmcm9tICcuLi9lbmdpbmUvZ3JhcGgvU3RhZ2VOb2RlLmpzJztcbmV4cG9ydCB0eXBlIHtcbiAgSUxvZ2dlcixcbiAgU3RhZ2VGdW5jdGlvbixcbiAgU3RyZWFtQ2FsbGJhY2ssXG4gIFN0cmVhbUhhbmRsZXJzLFxuICBTdHJlYW1MaWZlY3ljbGVIYW5kbGVyLFxuICBTdHJlYW1Ub2tlbkhhbmRsZXIsXG4gIFN1YmZsb3dNb3VudE9wdGlvbnMsXG59IGZyb20gJy4uL2VuZ2luZS90eXBlcy5qcyc7XG5cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gQWxpYXNlc1xuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbi8qKiBSZWxheGVkLWdlbmVyaWMgYWxpYXMgZm9yIGJ1aWxkZXIgZXJnb25vbWljcy4gKi9cbmV4cG9ydCB0eXBlIFN0YWdlRm4gPSBTdGFnZUZ1bmN0aW9uPGFueSwgYW55PjtcblxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBTY29wZSBQcm90ZWN0aW9uIOKAlCBjYW5vbmljYWwgZGVmaW5pdGlvbiBpbiBzY29wZS9wcm90ZWN0aW9uL3R5cGVzLnRzXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuZXhwb3J0IHR5cGUgeyBTY29wZVByb3RlY3Rpb25Nb2RlIH07XG5cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gU2VyaWFsaXplZCBQaXBlbGluZSBTdHJ1Y3R1cmUgKEpTT04tc2FmZSwgZm9yIHZpc3VhbGl6YXRpb24pXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuZXhwb3J0IGludGVyZmFjZSBTZXJpYWxpemVkUGlwZWxpbmVTdHJ1Y3R1cmUge1xuICBuYW1lOiBzdHJpbmc7XG4gIGlkOiBzdHJpbmc7XG4gIHR5cGU6ICdzdGFnZScgfCAnZGVjaWRlcicgfCAnc2VsZWN0b3InIHwgJ2ZvcmsnIHwgJ3N0cmVhbWluZycgfCAnc3ViZmxvdyc7XG4gIC8qKiBTZW1hbnRpYyBpY29uIGhpbnQgZm9yIHZpc3VhbGl6YXRpb24gKGUuZy4sIFwibGxtXCIsIFwidG9vbFwiLCBcInJhZ1wiLCBcImFnZW50XCIsIFwic3RhcnRcIikgKi9cbiAgaWNvbj86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGNoaWxkcmVuPzogU2VyaWFsaXplZFBpcGVsaW5lU3RydWN0dXJlW107XG4gIG5leHQ/OiBTZXJpYWxpemVkUGlwZWxpbmVTdHJ1Y3R1cmU7XG4gIGhhc0RlY2lkZXI/OiBib29sZWFuO1xuICBoYXNTZWxlY3Rvcj86IGJvb2xlYW47XG4gIGJyYW5jaElkcz86IHN0cmluZ1tdO1xuICBsb29wVGFyZ2V0Pzogc3RyaW5nO1xuICBpc1N0cmVhbWluZz86IGJvb2xlYW47XG4gIHN0cmVhbUlkPzogc3RyaW5nO1xuICBpc1BhcmFsbGVsQ2hpbGQ/OiBib29sZWFuO1xuICBwYXJhbGxlbEdyb3VwSWQ/OiBzdHJpbmc7XG4gIGlzU3ViZmxvd1Jvb3Q/OiBib29sZWFuO1xuICBzdWJmbG93SWQ/OiBzdHJpbmc7XG4gIHN1YmZsb3dOYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogTmVzdGVkIHBpcGVsaW5lIHN0cnVjdHVyZSBmb3IgYSBzdWJmbG93IG5vZGUuXG4gICAqIFdBUk5JTkc6IEFueSBmdXR1cmUgd2Fsa2VyIHRoYXQgdHJhdmVyc2VzIHRoaXMgZmllbGQgcmVjdXJzaXZlbHkgbXVzdCBhcHBseSBpdHMgb3duXG4gICAqIGRlcHRoIGd1YXJkIChzZWUgTUFYX1dBTEtfREVQVEggaW4gY29udHJhY3Qvb3BlbmFwaS50cykuIFRoZSBjdXJyZW50IGBidWlsZERlc2NyaXB0aW9uYFxuICAgKiB3YWxrIGluIG9wZW5hcGkudHMgZG9lcyBOT1QgdHJhdmVyc2Ugc3ViZmxvd1N0cnVjdHVyZSDigJQgaWYgaXQgZXZlciBkb2VzLCB0aGUgZGVwdGhcbiAgICogZ3VhcmQgbXVzdCBjb3ZlciBib3RoIHRoZSBgbmV4dGAgY2hhaW4gYW5kIHRoaXMgbmVzdGVkIHN0cnVjdHVyZS5cbiAgICovXG4gIHN1YmZsb3dTdHJ1Y3R1cmU/OiBTZXJpYWxpemVkUGlwZWxpbmVTdHJ1Y3R1cmU7XG4gIGl0ZXJhdGlvbkNvdW50PzogbnVtYmVyO1xuICAvKiogVHJ1ZSB3aGVuIHRoaXMgc3ViZmxvdyB1c2VzIGxhenkgcmVzb2x1dGlvbiAoZGVmZXJyZWQgdW50aWwgZXhlY3V0aW9uKS4gKi9cbiAgaXNMYXp5PzogYm9vbGVhbjtcbn1cblxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBGbG93Q2hhcnRTcGVjIChwdXJlIEpTT04sIG5vIGZ1bmN0aW9ucyDigJQgZm9yIEZF4oaSQkUgdHJhbnNwb3J0KVxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbmV4cG9ydCBpbnRlcmZhY2UgRmxvd0NoYXJ0U3BlYyB7XG4gIG5hbWU6IHN0cmluZztcbiAgaWQ6IHN0cmluZztcbiAgLyoqIE5vZGUgdHlwZSDigJQgbWF0Y2hlcyBgU2VyaWFsaXplZFBpcGVsaW5lU3RydWN0dXJlLnR5cGVgIGZvciB2aXN1YWxpemF0aW9uIGFsaWdubWVudC4gKi9cbiAgdHlwZT86ICdzdGFnZScgfCAnZGVjaWRlcicgfCAnc2VsZWN0b3InIHwgJ2ZvcmsnIHwgJ3N0cmVhbWluZycgfCAnc3ViZmxvdyc7XG4gIC8qKiBTZW1hbnRpYyBpY29uIGhpbnQgZm9yIHZpc3VhbGl6YXRpb24gKGUuZy4sIFwibGxtXCIsIFwidG9vbFwiLCBcInJhZ1wiLCBcImFnZW50XCIsIFwic3RhcnRcIikgKi9cbiAgaWNvbj86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGNoaWxkcmVuPzogRmxvd0NoYXJ0U3BlY1tdO1xuICBuZXh0PzogRmxvd0NoYXJ0U3BlYztcbiAgaGFzRGVjaWRlcj86IGJvb2xlYW47XG4gIGhhc1NlbGVjdG9yPzogYm9vbGVhbjtcbiAgYnJhbmNoSWRzPzogc3RyaW5nW107XG4gIGxvb3BUYXJnZXQ/OiBzdHJpbmc7XG4gIGlzU3RyZWFtaW5nPzogYm9vbGVhbjtcbiAgc3RyZWFtSWQ/OiBzdHJpbmc7XG4gIGlzUGFyYWxsZWxDaGlsZD86IGJvb2xlYW47XG4gIHBhcmFsbGVsR3JvdXBJZD86IHN0cmluZztcbiAgaXNTdWJmbG93Um9vdD86IGJvb2xlYW47XG4gIHN1YmZsb3dJZD86IHN0cmluZztcbiAgc3ViZmxvd05hbWU/OiBzdHJpbmc7XG59XG5cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gQnVpbGQtVGltZSBFeHRyYWN0b3Jcbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4vKiogTWV0YWRhdGEgcHJvdmlkZWQgdG8gdGhlIGJ1aWxkLXRpbWUgZXh0cmFjdG9yIGZvciBlYWNoIG5vZGUuICovXG5leHBvcnQgdHlwZSBCdWlsZFRpbWVOb2RlTWV0YWRhdGEgPSBGbG93Q2hhcnRTcGVjO1xuXG5leHBvcnQgdHlwZSBCdWlsZFRpbWVFeHRyYWN0b3I8VFJlc3VsdCA9IEZsb3dDaGFydFNwZWM+ID0gKG1ldGFkYXRhOiBCdWlsZFRpbWVOb2RlTWV0YWRhdGEpID0+IFRSZXN1bHQ7XG5cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gVHJhdmVyc2FsIEV4dHJhY3RvciAocnVudGltZSkg4oCUIGNhbm9uaWNhbCBkZWZpbml0aW9uIGxpdmVzIGluIGVuZ2luZS90eXBlcy5cbi8vIFJlLWV4cG9ydGVkIGhlcmUgc28gY2FsbGVycyBkb24ndCBuZWVkIHR3byBpbXBvcnQgcGF0aHMuXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuZXhwb3J0IHR5cGUgeyBUcmF2ZXJzYWxFeHRyYWN0b3IgfSBmcm9tICcuLi9lbmdpbmUvdHlwZXMuanMnO1xuXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIEZsb3dDaGFydCDigJQgY29tcGlsZWQgb3V0cHV0IG9mIGJ1aWxkKClcbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG5leHBvcnQgdHlwZSBGbG93Q2hhcnQ8VE91dCA9IGFueSwgVFNjb3BlID0gYW55PiA9IHtcbiAgcm9vdDogU3RhZ2VOb2RlPFRPdXQsIFRTY29wZT47XG4gIHN0YWdlTWFwOiBNYXA8c3RyaW5nLCBTdGFnZUZ1bmN0aW9uPFRPdXQsIFRTY29wZT4+O1xuICBleHRyYWN0b3I/OiBUcmF2ZXJzYWxFeHRyYWN0b3I7XG4gIHN1YmZsb3dzPzogUmVjb3JkPHN0cmluZywgeyByb290OiBTdGFnZU5vZGU8VE91dCwgVFNjb3BlPiB9PjtcbiAgYnVpbGRUaW1lU3RydWN0dXJlOiBTZXJpYWxpemVkUGlwZWxpbmVTdHJ1Y3R1cmU7XG4gIGVuYWJsZU5hcnJhdGl2ZT86IGJvb2xlYW47XG4gIGxvZ2dlcj86IElMb2dnZXI7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIHN0YWdlRGVzY3JpcHRpb25zOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuICAvKiogSW5wdXQgc2NoZW1hIChab2Qgb3IgSlNPTiBTY2hlbWEpIOKAlCBkZWNsYXJlZCB2aWEgc2V0SW5wdXRTY2hlbWEoKSBvciAuY29udHJhY3QoKS4gKi9cbiAgaW5wdXRTY2hlbWE/OiB1bmtub3duO1xuICAvKiogT3V0cHV0IHNjaGVtYSAoWm9kIG9yIEpTT04gU2NoZW1hKSDigJQgZGVjbGFyZWQgdmlhIHNldE91dHB1dFNjaGVtYSgpIG9yIC5jb250cmFjdCgpLiAqL1xuICBvdXRwdXRTY2hlbWE/OiB1bmtub3duO1xuICAvKiogT3V0cHV0IG1hcHBlciDigJQgZXh0cmFjdHMgcmVzcG9uc2UgZnJvbSBmaW5hbCBzY29wZS4gKi9cbiAgb3V0cHV0TWFwcGVyPzogKGZpbmFsU2NvcGU6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiB1bmtub3duO1xuICAvKiogU2NvcGUgZmFjdG9yeSDigJQgYXV0by1lbWJlZGRlZCBieSBmbG93Q2hhcnQ8VD4oKS4gRXhlY3V0b3IgcmVhZHMgdGhpcyBpZiBubyBmYWN0b3J5IHBhcmFtLiAqL1xuICBzY29wZUZhY3Rvcnk/OiBTY29wZUZhY3Rvcnk8VFNjb3BlPjtcbn07XG5cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gU2ltcGxpZmllZCBQYXJhbGxlbCBTcGVjIChmb3IgYWRkTGlzdE9mRnVuY3Rpb24pXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuZXhwb3J0IHR5cGUgU2ltcGxpZmllZFBhcmFsbGVsU3BlYzxUT3V0ID0gYW55LCBUU2NvcGUgPSBhbnk+ID0ge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGZuPzogU3RhZ2VGdW5jdGlvbjxUT3V0LCBUU2NvcGU+O1xufTtcblxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBFeGVjT3B0aW9ucyAoZm9yIGV4ZWN1dGUoKSBjb252ZW5pZW5jZSDigJQgdXNlZCBieSBydW5uZXIgbGF5ZXIpXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuZXhwb3J0IHR5cGUgRXhlY09wdGlvbnMgPSB7XG4gIGRlZmF1bHRzPzogdW5rbm93bjtcbiAgaW5pdGlhbD86IHVua25vd247XG4gIHJlYWRPbmx5PzogdW5rbm93bjtcbiAgdGhyb3R0bGluZ0Vycm9yQ2hlY2tlcj86IChlOiB1bmtub3duKSA9PiBib29sZWFuO1xuICBzY29wZVByb3RlY3Rpb25Nb2RlPzogU2NvcGVQcm90ZWN0aW9uTW9kZTtcbiAgZW5hYmxlTmFycmF0aXZlPzogYm9vbGVhbjtcbn07XG5cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gU3ViZmxvd1JlZlxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbmV4cG9ydCBpbnRlcmZhY2UgU3ViZmxvd1JlZiB7XG4gICRyZWY6IHN0cmluZztcbiAgbW91bnRJZDogc3RyaW5nO1xufVxuIl19
|
|
@@ -18,14 +18,40 @@ import { normalizeSchema } from './schema.js';
|
|
|
18
18
|
export function defineContract(chart, options) {
|
|
19
19
|
const inputSchema = options.inputSchema ? normalizeSchema(options.inputSchema) : undefined;
|
|
20
20
|
const outputSchema = options.outputSchema ? normalizeSchema(options.outputSchema) : undefined;
|
|
21
|
-
//
|
|
22
|
-
//
|
|
23
|
-
//
|
|
24
|
-
|
|
25
|
-
|
|
21
|
+
// Build a lightweight chart view for the contract.
|
|
22
|
+
//
|
|
23
|
+
// We must NOT mutate the original `chart` object because charts are compiled
|
|
24
|
+
// artifacts meant to be shared across multiple concurrent executors. Mutating
|
|
25
|
+
// any schema field after build would be visible to all holders of that chart
|
|
26
|
+
// reference, causing cross-contract contamination.
|
|
27
|
+
//
|
|
28
|
+
// Instead, use Object.create(chart) to create a prototype-linked view:
|
|
29
|
+
// - All properties (root, stageMap, subflows, methods…) are inherited via
|
|
30
|
+
// the prototype chain — zero extra copying.
|
|
31
|
+
// - Setting schema fields on the view creates OWN properties that shadow
|
|
32
|
+
// the prototype's value, leaving the original chart untouched.
|
|
33
|
+
// - FlowChartExecutor reads chartView.inputSchema which resolves to the
|
|
34
|
+
// own-property (contract schema) before the prototype (builder schema).
|
|
35
|
+
// - RunContext reads chartView.outputMapper to apply the output transform —
|
|
36
|
+
// that must also be shadowed here so the contract's mapper wins.
|
|
37
|
+
//
|
|
38
|
+
// Limitation: Object.keys(chartView) returns only own properties (the schema
|
|
39
|
+
// fields that were shadowed). Do NOT use Object.keys(), spread ({...chartView}),
|
|
40
|
+
// or JSON.stringify(chartView) on this view — use named property access or
|
|
41
|
+
// chart.toSpec() instead.
|
|
42
|
+
const chartView = Object.create(chart);
|
|
43
|
+
const view = chartView;
|
|
44
|
+
if (options.inputSchema) {
|
|
45
|
+
view.inputSchema = options.inputSchema;
|
|
46
|
+
}
|
|
47
|
+
if (options.outputSchema) {
|
|
48
|
+
view.outputSchema = options.outputSchema;
|
|
49
|
+
}
|
|
50
|
+
if (options.outputMapper) {
|
|
51
|
+
view.outputMapper = options.outputMapper;
|
|
26
52
|
}
|
|
27
53
|
const contract = {
|
|
28
|
-
chart,
|
|
54
|
+
chart: chartView,
|
|
29
55
|
inputSchema,
|
|
30
56
|
outputSchema,
|
|
31
57
|
outputMapper: options.outputMapper,
|
|
@@ -35,4 +61,4 @@ export function defineContract(chart, options) {
|
|
|
35
61
|
};
|
|
36
62
|
return contract;
|
|
37
63
|
}
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmaW5lQ29udHJhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvbnRyYWN0L2RlZmluZUNvbnRyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBR0gsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRzlDLE1BQU0sVUFBVSxjQUFjLENBQzVCLEtBQWdCLEVBQ2hCLE9BQWtEO0lBRWxELE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUMzRixNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFFOUYsbURBQW1EO0lBQ25ELEVBQUU7SUFDRiw2RUFBNkU7SUFDN0UsOEVBQThFO0lBQzlFLDZFQUE2RTtJQUM3RSxtREFBbUQ7SUFDbkQsRUFBRTtJQUNGLHVFQUF1RTtJQUN2RSw0RUFBNEU7SUFDNUUsZ0RBQWdEO0lBQ2hELDJFQUEyRTtJQUMzRSxtRUFBbUU7SUFDbkUsMEVBQTBFO0lBQzFFLDRFQUE0RTtJQUM1RSw4RUFBOEU7SUFDOUUscUVBQXFFO0lBQ3JFLEVBQUU7SUFDRiw2RUFBNkU7SUFDN0UsaUZBQWlGO0lBQ2pGLDJFQUEyRTtJQUMzRSwwQkFBMEI7SUFDMUIsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQWMsQ0FBQztJQUNwRCxNQUFNLElBQUksR0FBRyxTQUErQixDQUFDO0lBQzdDLElBQUksT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQztJQUN6QyxDQUFDO0lBQ0QsSUFBSSxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDO0lBQzNDLENBQUM7SUFDRCxJQUFJLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxZQUFxRSxDQUFDO0lBQ3BHLENBQUM7SUFFRCxNQUFNLFFBQVEsR0FBdUM7UUFDbkQsS0FBSyxFQUFFLFNBQVM7UUFDaEIsV0FBVztRQUNYLFlBQVk7UUFDWixZQUFZLEVBQUUsT0FBTyxDQUFDLFlBQVk7UUFDbEMsU0FBUyxDQUFDLFVBQTJCO1lBQ25DLE9BQU8sZUFBZSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMvQyxDQUFDO0tBQ0YsQ0FBQztJQUVGLE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGNvbnRyYWN0L2RlZmluZUNvbnRyYWN0LnRzIOKAlCBGYWN0b3J5IGZvciBjcmVhdGluZyBhIEZsb3dDaGFydENvbnRyYWN0LlxuICpcbiAqIFdyYXBzIGEgY29tcGlsZWQgRmxvd0NoYXJ0IHdpdGggSS9PIHNjaGVtYXMgYW5kIGFuIG91dHB1dCBtYXBwZXIsXG4gKiB1c2luZyB0aGUgc2FtZSBwYXR0ZXJuIGFzIFN1YmZsb3dNb3VudE9wdGlvbnMgKGlucHV0TWFwcGVyL291dHB1dE1hcHBlcikuXG4gKlxuICogVXNhZ2U6XG4gKiAgIGNvbnN0IGNvbnRyYWN0ID0gZGVmaW5lQ29udHJhY3QoY2hhcnQsIHtcbiAqICAgICBpbnB1dFNjaGVtYTogei5vYmplY3QoeyBuYW1lOiB6LnN0cmluZygpIH0pLFxuICogICAgIG91dHB1dFNjaGVtYTogei5vYmplY3QoeyBncmVldGluZzogei5zdHJpbmcoKSB9KSxcbiAqICAgICBvdXRwdXRNYXBwZXI6IChzY29wZSkgPT4gKHsgZ3JlZXRpbmc6IHNjb3BlLm1lc3NhZ2UgYXMgc3RyaW5nIH0pLFxuICogICB9KTtcbiAqXG4gKiAgIGNvbnN0IG9wZW5hcGkgPSBjb250cmFjdC50b09wZW5BUEkoKTtcbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEZsb3dDaGFydCB9IGZyb20gJy4uL2J1aWxkZXIvdHlwZXMuanMnO1xuaW1wb3J0IHsgZ2VuZXJhdGVPcGVuQVBJIH0gZnJvbSAnLi9vcGVuYXBpLmpzJztcbmltcG9ydCB7IG5vcm1hbGl6ZVNjaGVtYSB9IGZyb20gJy4vc2NoZW1hLmpzJztcbmltcG9ydCB0eXBlIHsgRmxvd0NoYXJ0Q29udHJhY3QsIEZsb3dDaGFydENvbnRyYWN0T3B0aW9ucywgT3BlbkFQSU9wdGlvbnMsIE9wZW5BUElTcGVjIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWZpbmVDb250cmFjdDxUSW5wdXQgPSB1bmtub3duLCBUT3V0cHV0ID0gdW5rbm93bj4oXG4gIGNoYXJ0OiBGbG93Q2hhcnQsXG4gIG9wdGlvbnM6IEZsb3dDaGFydENvbnRyYWN0T3B0aW9uczxUSW5wdXQsIFRPdXRwdXQ+LFxuKTogRmxvd0NoYXJ0Q29udHJhY3Q8VElucHV0LCBUT3V0cHV0PiB7XG4gIGNvbnN0IGlucHV0U2NoZW1hID0gb3B0aW9ucy5pbnB1dFNjaGVtYSA/IG5vcm1hbGl6ZVNjaGVtYShvcHRpb25zLmlucHV0U2NoZW1hKSA6IHVuZGVmaW5lZDtcbiAgY29uc3Qgb3V0cHV0U2NoZW1hID0gb3B0aW9ucy5vdXRwdXRTY2hlbWEgPyBub3JtYWxpemVTY2hlbWEob3B0aW9ucy5vdXRwdXRTY2hlbWEpIDogdW5kZWZpbmVkO1xuXG4gIC8vIEJ1aWxkIGEgbGlnaHR3ZWlnaHQgY2hhcnQgdmlldyBmb3IgdGhlIGNvbnRyYWN0LlxuICAvL1xuICAvLyBXZSBtdXN0IE5PVCBtdXRhdGUgdGhlIG9yaWdpbmFsIGBjaGFydGAgb2JqZWN0IGJlY2F1c2UgY2hhcnRzIGFyZSBjb21waWxlZFxuICAvLyBhcnRpZmFjdHMgbWVhbnQgdG8gYmUgc2hhcmVkIGFjcm9zcyBtdWx0aXBsZSBjb25jdXJyZW50IGV4ZWN1dG9ycy4gTXV0YXRpbmdcbiAgLy8gYW55IHNjaGVtYSBmaWVsZCBhZnRlciBidWlsZCB3b3VsZCBiZSB2aXNpYmxlIHRvIGFsbCBob2xkZXJzIG9mIHRoYXQgY2hhcnRcbiAgLy8gcmVmZXJlbmNlLCBjYXVzaW5nIGNyb3NzLWNvbnRyYWN0IGNvbnRhbWluYXRpb24uXG4gIC8vXG4gIC8vIEluc3RlYWQsIHVzZSBPYmplY3QuY3JlYXRlKGNoYXJ0KSB0byBjcmVhdGUgYSBwcm90b3R5cGUtbGlua2VkIHZpZXc6XG4gIC8vICAgLSBBbGwgcHJvcGVydGllcyAocm9vdCwgc3RhZ2VNYXAsIHN1YmZsb3dzLCBtZXRob2Rz4oCmKSBhcmUgaW5oZXJpdGVkIHZpYVxuICAvLyAgICAgdGhlIHByb3RvdHlwZSBjaGFpbiDigJQgemVybyBleHRyYSBjb3B5aW5nLlxuICAvLyAgIC0gU2V0dGluZyBzY2hlbWEgZmllbGRzIG9uIHRoZSB2aWV3IGNyZWF0ZXMgT1dOIHByb3BlcnRpZXMgdGhhdCBzaGFkb3dcbiAgLy8gICAgIHRoZSBwcm90b3R5cGUncyB2YWx1ZSwgbGVhdmluZyB0aGUgb3JpZ2luYWwgY2hhcnQgdW50b3VjaGVkLlxuICAvLyAgIC0gRmxvd0NoYXJ0RXhlY3V0b3IgcmVhZHMgY2hhcnRWaWV3LmlucHV0U2NoZW1hIHdoaWNoIHJlc29sdmVzIHRvIHRoZVxuICAvLyAgICAgb3duLXByb3BlcnR5IChjb250cmFjdCBzY2hlbWEpIGJlZm9yZSB0aGUgcHJvdG90eXBlIChidWlsZGVyIHNjaGVtYSkuXG4gIC8vICAgLSBSdW5Db250ZXh0IHJlYWRzIGNoYXJ0Vmlldy5vdXRwdXRNYXBwZXIgdG8gYXBwbHkgdGhlIG91dHB1dCB0cmFuc2Zvcm0g4oCUXG4gIC8vICAgICB0aGF0IG11c3QgYWxzbyBiZSBzaGFkb3dlZCBoZXJlIHNvIHRoZSBjb250cmFjdCdzIG1hcHBlciB3aW5zLlxuICAvL1xuICAvLyBMaW1pdGF0aW9uOiBPYmplY3Qua2V5cyhjaGFydFZpZXcpIHJldHVybnMgb25seSBvd24gcHJvcGVydGllcyAodGhlIHNjaGVtYVxuICAvLyBmaWVsZHMgdGhhdCB3ZXJlIHNoYWRvd2VkKS4gRG8gTk9UIHVzZSBPYmplY3Qua2V5cygpLCBzcHJlYWQgKHsuLi5jaGFydFZpZXd9KSxcbiAgLy8gb3IgSlNPTi5zdHJpbmdpZnkoY2hhcnRWaWV3KSBvbiB0aGlzIHZpZXcg4oCUIHVzZSBuYW1lZCBwcm9wZXJ0eSBhY2Nlc3Mgb3JcbiAgLy8gY2hhcnQudG9TcGVjKCkgaW5zdGVhZC5cbiAgY29uc3QgY2hhcnRWaWV3ID0gT2JqZWN0LmNyZWF0ZShjaGFydCkgYXMgRmxvd0NoYXJ0O1xuICBjb25zdCB2aWV3ID0gY2hhcnRWaWV3IGFzIFBhcnRpYWw8Rmxvd0NoYXJ0PjtcbiAgaWYgKG9wdGlvbnMuaW5wdXRTY2hlbWEpIHtcbiAgICB2aWV3LmlucHV0U2NoZW1hID0gb3B0aW9ucy5pbnB1dFNjaGVtYTtcbiAgfVxuICBpZiAob3B0aW9ucy5vdXRwdXRTY2hlbWEpIHtcbiAgICB2aWV3Lm91dHB1dFNjaGVtYSA9IG9wdGlvbnMub3V0cHV0U2NoZW1hO1xuICB9XG4gIGlmIChvcHRpb25zLm91dHB1dE1hcHBlcikge1xuICAgIHZpZXcub3V0cHV0TWFwcGVyID0gb3B0aW9ucy5vdXRwdXRNYXBwZXIgYXMgKChzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPT4gdW5rbm93bikgfCB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCBjb250cmFjdDogRmxvd0NoYXJ0Q29udHJhY3Q8VElucHV0LCBUT3V0cHV0PiA9IHtcbiAgICBjaGFydDogY2hhcnRWaWV3LFxuICAgIGlucHV0U2NoZW1hLFxuICAgIG91dHB1dFNjaGVtYSxcbiAgICBvdXRwdXRNYXBwZXI6IG9wdGlvbnMub3V0cHV0TWFwcGVyLFxuICAgIHRvT3BlbkFQSShhcGlPcHRpb25zPzogT3BlbkFQSU9wdGlvbnMpOiBPcGVuQVBJU3BlYyB7XG4gICAgICByZXR1cm4gZ2VuZXJhdGVPcGVuQVBJKGNvbnRyYWN0LCBhcGlPcHRpb25zKTtcbiAgICB9LFxuICB9O1xuXG4gIHJldHVybiBjb250cmFjdDtcbn1cbiJdfQ==
|
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
* contract/openapi.ts — OpenAPI 3.1 spec generator.
|
|
3
3
|
*
|
|
4
4
|
* Generates an OpenAPI spec from a FlowChartContract by combining:
|
|
5
|
-
* - chart.description → operation description
|
|
6
|
-
* - chart.stageDescriptions → step-by-step detail
|
|
5
|
+
* - chart.description → operation description (built incrementally during FlowChartBuilder.build())
|
|
7
6
|
* - inputSchema → requestBody
|
|
8
7
|
* - outputSchema → response
|
|
9
|
-
*
|
|
8
|
+
*
|
|
9
|
+
* chart.description is assembled by FlowChartBuilder as each stage is added —
|
|
10
|
+
* no post-processing walk of buildTimeStructure is needed or performed here.
|
|
10
11
|
*/
|
|
11
12
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
12
13
|
// Internal helpers
|
|
@@ -17,37 +18,14 @@ function slugify(name) {
|
|
|
17
18
|
.replace(/[^a-z0-9]+/g, '-')
|
|
18
19
|
.replace(/^-|-$/g, '');
|
|
19
20
|
}
|
|
20
|
-
function buildDescription(chart) {
|
|
21
|
-
// Walk buildTimeStructure to produce a detailed step-by-step description
|
|
22
|
-
// that includes decider branches, parallel forks, etc.
|
|
23
|
-
const lines = [];
|
|
24
|
-
let step = 0;
|
|
25
|
-
const walk = (node) => {
|
|
26
|
-
step++;
|
|
27
|
-
const desc = node.description ? ` — ${node.description}` : '';
|
|
28
|
-
if (node.hasDecider && node.branchIds) {
|
|
29
|
-
lines.push(`${step}. ${node.name}${desc} — Decides between: ${node.branchIds.join(', ')}`);
|
|
30
|
-
}
|
|
31
|
-
else if (node.children && node.children.length > 0 && !node.hasDecider) {
|
|
32
|
-
const childNames = node.children.map((c) => c.name).join(', ');
|
|
33
|
-
lines.push(`${step}. ${node.name}${desc} (parallel: ${childNames})`);
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
lines.push(`${step}. ${node.name}${desc}`);
|
|
37
|
-
}
|
|
38
|
-
if (node.children) {
|
|
39
|
-
for (const child of node.children)
|
|
40
|
-
walk(child);
|
|
41
|
-
}
|
|
42
|
-
if (node.next)
|
|
43
|
-
walk(node.next);
|
|
44
|
-
};
|
|
45
|
-
walk(chart.buildTimeStructure);
|
|
46
|
-
return `FlowChart: ${chart.root.name}\nSteps:\n${lines.join('\n')}`;
|
|
47
|
-
}
|
|
48
21
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
49
22
|
// Public API
|
|
50
23
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
24
|
+
/**
|
|
25
|
+
* Generates an OpenAPI 3.1 spec from a FlowChartContract.
|
|
26
|
+
* Uses `chart.description` which FlowChartBuilder assembles at build time —
|
|
27
|
+
* no post-processing walk of buildTimeStructure is performed here.
|
|
28
|
+
*/
|
|
51
29
|
export function generateOpenAPI(contract, options) {
|
|
52
30
|
var _a, _b, _c;
|
|
53
31
|
const { chart, inputSchema, outputSchema } = contract;
|
|
@@ -57,7 +35,8 @@ export function generateOpenAPI(contract, options) {
|
|
|
57
35
|
const rootName = chart.root.name;
|
|
58
36
|
const operationId = slugify(rootName);
|
|
59
37
|
const path = `${basePath === '/' ? '' : basePath}/${operationId}`;
|
|
60
|
-
|
|
38
|
+
// Description was built incrementally during FlowChartBuilder.build() — read it directly.
|
|
39
|
+
const fullDescription = chart.description;
|
|
61
40
|
// Build schemas for components
|
|
62
41
|
const schemas = {};
|
|
63
42
|
const inputRef = `${rootName}Input`;
|
|
@@ -117,4 +96,4 @@ export function generateOpenAPI(contract, options) {
|
|
|
117
96
|
};
|
|
118
97
|
return spec;
|
|
119
98
|
}
|
|
120
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29udHJhY3Qvb3BlbmFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7O0dBU0c7QUFLSCxnRkFBZ0Y7QUFDaEYsbUJBQW1CO0FBQ25CLGdGQUFnRjtBQUVoRixTQUFTLE9BQU8sQ0FBQyxJQUFZO0lBQzNCLE9BQU8sSUFBSTtTQUNSLFdBQVcsRUFBRTtTQUNiLE9BQU8sQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDO1NBQzNCLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDM0IsQ0FBQztBQUVELFNBQVMsZ0JBQWdCLENBQUMsS0FBZ0I7SUFDeEMseUVBQXlFO0lBQ3pFLHVEQUF1RDtJQUN2RCxNQUFNLEtBQUssR0FBYSxFQUFFLENBQUM7SUFDM0IsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBRWIsTUFBTSxJQUFJLEdBQUcsQ0FBQyxJQUFpQyxFQUFFLEVBQUU7UUFDakQsSUFBSSxFQUFFLENBQUM7UUFDUCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRTlELElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDdEMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksdUJBQXVCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM3RixDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZ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SCxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ1AsU0FBUyxFQUFFO1lBQ1QsS0FBSyxFQUFFO2dCQUNMLFdBQVcsRUFBRSxzQkFBc0I7Z0JBQ25DLEdBQUcsQ0FBQyxZQUFZO29CQUNkLENBQUMsQ0FBQzt3QkFDRSxPQUFPLEVBQUU7NEJBQ1Asa0JBQWtCLEVBQUU7Z0NBQ2xCLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSx3QkFBd0IsU0FBUyxFQUFFLEVBQUU7NkJBQ3REO3lCQUNGO3FCQUNGO29CQUNILENBQUMsQ0FBQyxFQUFFLENBQUM7YUFDUjtZQUNELEtBQUssRUFBRTtnQkFDTCxXQUFXLEVBQUUsMEJBQTBCO2FBQ3hDO1NBQ0Y7S0FDRixDQUFDO0lBRUYsTUFBTSxJQUFJLEdBQWdCO1FBQ3hCLE9BQU8sRUFBRSxPQUFPO1FBQ2hCLElBQUksRUFBRTtZQUNKLEtBQUssRUFBRSxRQUFRO1lBQ2YsV0FBVyxFQUFFLGVBQWU7WUFDNUIsT0FBTztTQUNSO1FBQ0QsS0FBSyxFQUFFO1lBQ0wsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDTixDQUFDLE1BQU0sQ0FBQyxFQUFFLFNBQVM7YUFDcEI7U0FDRjtRQUNELEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0tBQ3hFLENBQUM7SUFFRixPQUFPLElBQUksQ0FBQztBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGNvbnRyYWN0L29wZW5hcGkudHMg4oCUIE9wZW5BUEkgMy4xIHNwZWMgZ2VuZXJhdG9yLlxuICpcbiAqIEdlbmVyYXRlcyBhbiBPcGVuQVBJIHNwZWMgZnJvbSBhIEZsb3dDaGFydENvbnRyYWN0IGJ5IGNvbWJpbmluZzpcbiAqIC0gY2hhcnQuZGVzY3JpcHRpb24g4oaSIG9wZXJhdGlvbiBkZXNjcmlwdGlvblxuICogLSBjaGFydC5zdGFnZURlc2NyaXB0aW9ucyDihpIgc3RlcC1ieS1zdGVwIGRldGFpbFxuICogLSBpbnB1dFNjaGVtYSDihpIgcmVxdWVzdEJvZHlcbiAqIC0gb3V0cHV0U2NoZW1hIOKGkiByZXNwb25zZVxuICogLSBjaGFydC5idWlsZFRpbWVTdHJ1Y3R1cmUg4oaSIG9wZXJhdGlvbiBtZXRhZGF0YSAoYnJhbmNoZXMsIGZvcmtzLCBldGMuKVxuICovXG5cbmltcG9ydCB0eXBlIHsgRmxvd0NoYXJ0LCBTZXJpYWxpemVkUGlwZWxpbmVTdHJ1Y3R1cmUgfSBmcm9tICcuLi9idWlsZGVyL3R5cGVzLmpzJztcbmltcG9ydCB0eXBlIHsgRmxvd0NoYXJ0Q29udHJhY3QsIEpzb25TY2hlbWEsIE9wZW5BUElPcGVyYXRpb24sIE9wZW5BUElPcHRpb25zLCBPcGVuQVBJU3BlYyB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIEludGVybmFsIGhlbHBlcnNcbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG5mdW5jdGlvbiBzbHVnaWZ5KG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBuYW1lXG4gICAgLnRvTG93ZXJDYXNlKClcbiAgICAucmVwbGFjZSgvW15hLXowLTldKy9nLCAnLScpXG4gICAgLnJlcGxhY2UoL14tfC0kL2csICcnKTtcbn1cblxuZnVuY3Rpb24gYnVpbGREZXNjcmlwdGlvbihjaGFydDogRmxvd0NoYXJ0KTogc3RyaW5nIHtcbiAgLy8gV2FsayBidWlsZFRpbWVTdHJ1Y3R1cmUgdG8gcHJvZHVjZSBhIGRldGFpbGVkIHN0ZXAtYnktc3RlcCBkZXNjcmlwdGlvblxuICAvLyB0aGF0IGluY2x1ZGVzIGRlY2lkZXIgYnJhbmNoZXMsIHBhcmFsbGVsIGZvcmtzLCBldGMuXG4gIGNvbnN0IGxpbmVzOiBzdHJpbmdbXSA9IFtdO1xuICBsZXQgc3RlcCA9IDA7XG5cbiAgY29uc3Qgd2FsayA9IChub2RlOiBTZXJpYWxpemVkUGlwZWxpbmVTdHJ1Y3R1cmUpID0+IHtcbiAgICBzdGVwKys7XG4gICAgY29uc3QgZGVzYyA9IG5vZGUuZGVzY3JpcHRpb24gPyBgIOKAlCAke25vZGUuZGVzY3JpcHRpb259YCA6ICcnO1xuXG4gICAgaWYgKG5vZGUuaGFzRGVjaWRlciAmJiBub2RlLmJyYW5jaElkcykge1xuICAgICAgbGluZXMucHVzaChgJHtzdGVwfS4gJHtub2RlLm5hbWV9JHtkZXNjfSDigJQgRGVjaWRlcyBiZXR3ZWVuOiAke25vZGUuYnJhbmNoSWRzLmpvaW4oJywgJyl9YCk7XG4gICAgfSBlbHNlIGlmIChub2RlLmNoaWxkcmVuICYmIG5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMCAmJiAhbm9kZS5oYXNEZWNpZGVyKSB7XG4gICAgICBjb25zdCBjaGlsZE5hbWVzID0gbm9kZS5jaGlsZHJlbi5tYXAoKGMpID0+IGMubmFtZSkuam9pbignLCAnKTtcbiAgICAgIGxpbmVzLnB1c2goYCR7c3RlcH0uICR7bm9kZS5uYW1lfSR7ZGVzY30gKHBhcmFsbGVsOiAke2NoaWxkTmFtZXN9KWApO1xuICAgIH0gZWxzZSB7XG4gICAgICBsaW5lcy5wdXNoKGAke3N0ZXB9LiAke25vZGUubmFtZX0ke2Rlc2N9YCk7XG4gICAgfVxuXG4gICAgaWYgKG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgIGZvciAoY29uc3QgY2hpbGQgb2Ygbm9kZS5jaGlsZHJlbikgd2FsayhjaGlsZCk7XG4gICAgfVxuICAgIGlmIChub2RlLm5leHQpIHdhbGsobm9kZS5uZXh0KTtcbiAgfTtcblxuICB3YWxrKGNoYXJ0LmJ1aWxkVGltZVN0cnVjdHVyZSk7XG4gIHJldHVybiBgRmxvd0NoYXJ0OiAke2NoYXJ0LnJvb3QubmFtZX1cXG5TdGVwczpcXG4ke2xpbmVzLmpvaW4oJ1xcbicpfWA7XG59XG5cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gUHVibGljIEFQSVxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZU9wZW5BUEkoY29udHJhY3Q6IEZsb3dDaGFydENvbnRyYWN0LCBvcHRpb25zPzogT3BlbkFQSU9wdGlvbnMpOiBPcGVuQVBJU3BlYyB7XG4gIGNvbnN0IHsgY2hhcnQsIGlucHV0U2NoZW1hLCBvdXRwdXRTY2hlbWEgfSA9IGNvbnRyYWN0O1xuICBjb25zdCB2ZXJzaW9uID0gb3B0aW9ucz8udmVyc2lvbiA/PyAnMS4wLjAnO1xuICBjb25zdCBiYXNlUGF0aCA9IG9wdGlvbnM/LmJhc2VQYXRoID8/ICcvJztcbiAgY29uc3QgbWV0aG9kID0gb3B0aW9ucz8ubWV0aG9kID8/ICdwb3N0JztcblxuICBjb25zdCByb290TmFtZSA9IGNoYXJ0LnJvb3QubmFtZTtcbiAgY29uc3Qgb3BlcmF0aW9uSWQgPSBzbHVnaWZ5KHJvb3ROYW1lKTtcbiAgY29uc3QgcGF0aCA9IGAke2Jhc2VQYXRoID09PSAnLycgPyAnJyA6IGJhc2VQYXRofS8ke29wZXJhdGlvbklkfWA7XG5cbiAgY29uc3QgZnVsbERlc2NyaXB0aW9uID0gYnVpbGREZXNjcmlwdGlvbihjaGFydCk7XG5cbiAgLy8gQnVpbGQgc2NoZW1hcyBmb3IgY29tcG9uZW50c1xuICBjb25zdCBzY2hlbWFzOiBSZWNvcmQ8c3RyaW5nLCBKc29uU2NoZW1hPiA9IHt9O1xuICBjb25zdCBpbnB1dFJlZiA9IGAke3Jvb3ROYW1lfUlucHV0YDtcbiAgY29uc3Qgb3V0cHV0UmVmID0gYCR7cm9vdE5hbWV9T3V0cHV0YDtcblxuICBpZiAoaW5wdXRTY2hlbWEpIHNjaGVtYXNbaW5wdXRSZWZdID0gaW5wdXRTY2hlbWE7XG4gIGlmIChvdXRwdXRTY2hlbWEpIHNjaGVtYXNbb3V0cHV0UmVmXSA9IG91dHB1dFNjaGVtYTtcblxuICAvLyBCdWlsZCBvcGVyYXRpb25cbiAgY29uc3Qgb3BlcmF0aW9uOiBPcGVuQVBJT3BlcmF0aW9uID0ge1xuICAgIG9wZXJhdGlvbklkLFxuICAgIHN1bW1hcnk6IHJvb3ROYW1lLFxuICAgIGRlc2NyaXB0aW9uOiBmdWxsRGVzY3JpcHRpb24sXG4gICAgLi4uKGlucHV0U2NoZW1hXG4gICAgICA/IHtcbiAgICAgICAgICByZXF1ZXN0Qm9keToge1xuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJzoge1xuICAgICAgICAgICAgICAgIHNjaGVtYTogeyAkcmVmOiBgIy9jb21wb25lbnRzL3NjaGVtYXMvJHtpbnB1dFJlZn1gIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH1cbiAgICAgIDoge30pLFxuICAgIHJlc3BvbnNlczoge1xuICAgICAgJzIwMCc6IHtcbiAgICAgICAgZGVzY3JpcHRpb246ICdTdWNjZXNzZnVsIGV4ZWN1dGlvbicsXG4gICAgICAgIC4uLihvdXRwdXRTY2hlbWFcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgY29udGVudDoge1xuICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJzoge1xuICAgICAgICAgICAgICAgICAgc2NoZW1hOiB7ICRyZWY6IGAjL2NvbXBvbmVudHMvc2NoZW1hcy8ke291dHB1dFJlZn1gIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHt9KSxcbiAgICAgIH0sXG4gICAgICAnNTAwJzoge1xuICAgICAgICBkZXNjcmlwdGlvbjogJ1BpcGVsaW5lIGV4ZWN1dGlvbiBlcnJvcicsXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG5cbiAgY29uc3Qgc3BlYzogT3BlbkFQSVNwZWMgPSB7XG4gICAgb3BlbmFwaTogJzMuMS4wJyxcbiAgICBpbmZvOiB7XG4gICAgICB0aXRsZTogcm9vdE5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogZnVsbERlc2NyaXB0aW9uLFxuICAgICAgdmVyc2lvbixcbiAgICB9LFxuICAgIHBhdGhzOiB7XG4gICAgICBbcGF0aF06IHtcbiAgICAgICAgW21ldGhvZF06IG9wZXJhdGlvbixcbiAgICAgIH0sXG4gICAgfSxcbiAgICAuLi4oT2JqZWN0LmtleXMoc2NoZW1hcykubGVuZ3RoID4gMCA/IHsgY29tcG9uZW50czogeyBzY2hlbWFzIH0gfSA6IHt9KSxcbiAgfTtcblxuICByZXR1cm4gc3BlYztcbn1cbiJdfQ==
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29udHJhY3Qvb3BlbmFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7OztHQVVHO0FBS0gsZ0ZBQWdGO0FBQ2hGLG1CQUFtQjtBQUNuQixnRkFBZ0Y7QUFFaEYsU0FBUyxPQUFPLENBQUMsSUFBWTtJQUMzQixPQUFPLElBQUk7U0FDUixXQUFXLEVBQUU7U0FDYixPQUFPLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQztTQUMzQixPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQzNCLENBQUM7QUFFRCxnRkFBZ0Y7QUFDaEYsYUFBYTtBQUNiLGdGQUFnRjtBQUVoRjs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FBQyxRQUEyQixFQUFFLE9BQXdCOztJQUNuRixNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsR0FBRyxRQUFRLENBQUM7SUFDdEQsTUFBTSxPQUFPLEdBQUcsTUFBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsT0FBTyxtQ0FBSSxPQUFPLENBQUM7SUFDNUMsTUFBTSxRQUFRLEdBQUcsTUFBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsUUFBUSxtQ0FBSSxHQUFHLENBQUM7SUFDMUMsTUFBTSxNQUFNLEdBQUcsTUFBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsTUFBTSxtQ0FBSSxNQUFNLENBQUM7SUFFekMsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDakMsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RDLE1BQU0sSUFBSSxHQUFHLEdBQUcsUUFBUSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksV0FBVyxFQUFFLENBQUM7SUFFbEUsMEZBQTBGO0lBQzFGLE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUM7SUFFMUMsK0JBQStCO0lBQy9CLE1BQU0sT0FBTyxHQUErQixFQUFFLENBQUM7SUFDL0MsTUFBTSxRQUFRLEdBQUcsR0FBRyxRQUFRLE9BQU8sQ0FBQztJQUNwQyxNQUFNLFNBQVMsR0FBRyxHQUFHLFFBQVEsUUFBUSxDQUFDO0lBRXRDLElBQUksV0FBVztRQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxXQUFXLENBQUM7SUFDakQsSUFBSSxZQUFZO1FBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLFlBQVksQ0FBQztJQUVwRCxrQkFBa0I7SUFDbEIsTUFBTSxTQUFTLEdBQXFCO1FBQ2xDLFdBQVc7UUFDWCxPQUFPLEVBQUUsUUFBUTtRQUNqQixXQUFXLEVBQUUsZUFBZTtRQUM1QixHQUFHLENBQUMsV0FBVztZQUNiLENBQUMsQ0FBQztnQkFDRSxXQUFXLEVBQUU7b0JBQ1gsUUFBUSxFQUFFLElBQUk7b0JBQ2QsT0FBTyxFQUFFO3dCQUNQLGtCQUFrQixFQUFFOzRCQUNsQixNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsd0JBQXdCLFFBQVEsRUFBRSxFQUFFO3lCQUNyRDtxQkFDRjtpQkFDRjthQUNGO1lBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNQLFNBQVMsRUFBRTtZQUNULEtBQUssRUFBRTtnQkFDTCxXQUFXLEVBQUUsc0JBQXNCO2dCQUNuQyxHQUFHLENBQUMsWUFBWTtvQkFDZCxDQUFDLENBQUM7d0JBQ0UsT0FBTyxFQUFFOzRCQUNQLGtCQUFrQixFQUFFO2dDQUNsQixNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsd0JBQXdCLFNBQVMsRUFBRSxFQUFFOzZCQUN0RDt5QkFDRjtxQkFDRjtvQkFDSCxDQUFDLENBQUMsRUFBRSxDQUFDO2FBQ1I7WUFDRCxLQUFLLEVBQUU7Z0JBQ0wsV0FBVyxFQUFFLDBCQUEwQjthQUN4QztTQUNGO0tBQ0YsQ0FBQztJQUVGLE1BQU0sSUFBSSxHQUFnQjtRQUN4QixPQUFPLEVBQUUsT0FBTztRQUNoQixJQUFJLEVBQUU7WUFDSixLQUFLLEVBQUUsUUFBUTtZQUNmLFdBQVcsRUFBRSxlQUFlO1lBQzVCLE9BQU87U0FDUjtRQUNELEtBQUssRUFBRTtZQUNMLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ04sQ0FBQyxNQUFNLENBQUMsRUFBRSxTQUFTO2FBQ3BCO1NBQ0Y7UUFDRCxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztLQUN4RSxDQUFDO0lBRUYsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBjb250cmFjdC9vcGVuYXBpLnRzIOKAlCBPcGVuQVBJIDMuMSBzcGVjIGdlbmVyYXRvci5cbiAqXG4gKiBHZW5lcmF0ZXMgYW4gT3BlbkFQSSBzcGVjIGZyb20gYSBGbG93Q2hhcnRDb250cmFjdCBieSBjb21iaW5pbmc6XG4gKiAtIGNoYXJ0LmRlc2NyaXB0aW9uIOKGkiBvcGVyYXRpb24gZGVzY3JpcHRpb24gKGJ1aWx0IGluY3JlbWVudGFsbHkgZHVyaW5nIEZsb3dDaGFydEJ1aWxkZXIuYnVpbGQoKSlcbiAqIC0gaW5wdXRTY2hlbWEg4oaSIHJlcXVlc3RCb2R5XG4gKiAtIG91dHB1dFNjaGVtYSDihpIgcmVzcG9uc2VcbiAqXG4gKiBjaGFydC5kZXNjcmlwdGlvbiBpcyBhc3NlbWJsZWQgYnkgRmxvd0NoYXJ0QnVpbGRlciBhcyBlYWNoIHN0YWdlIGlzIGFkZGVkIOKAlFxuICogbm8gcG9zdC1wcm9jZXNzaW5nIHdhbGsgb2YgYnVpbGRUaW1lU3RydWN0dXJlIGlzIG5lZWRlZCBvciBwZXJmb3JtZWQgaGVyZS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEZsb3dDaGFydCB9IGZyb20gJy4uL2J1aWxkZXIvdHlwZXMuanMnO1xuaW1wb3J0IHR5cGUgeyBGbG93Q2hhcnRDb250cmFjdCwgSnNvblNjaGVtYSwgT3BlbkFQSU9wZXJhdGlvbiwgT3BlbkFQSU9wdGlvbnMsIE9wZW5BUElTcGVjIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gSW50ZXJuYWwgaGVscGVyc1xuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbmZ1bmN0aW9uIHNsdWdpZnkobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIG5hbWVcbiAgICAudG9Mb3dlckNhc2UoKVxuICAgIC5yZXBsYWNlKC9bXmEtejAtOV0rL2csICctJylcbiAgICAucmVwbGFjZSgvXi18LSQvZywgJycpO1xufVxuXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIFB1YmxpYyBBUElcbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4vKipcbiAqIEdlbmVyYXRlcyBhbiBPcGVuQVBJIDMuMSBzcGVjIGZyb20gYSBGbG93Q2hhcnRDb250cmFjdC5cbiAqIFVzZXMgYGNoYXJ0LmRlc2NyaXB0aW9uYCB3aGljaCBGbG93Q2hhcnRCdWlsZGVyIGFzc2VtYmxlcyBhdCBidWlsZCB0aW1lIOKAlFxuICogbm8gcG9zdC1wcm9jZXNzaW5nIHdhbGsgb2YgYnVpbGRUaW1lU3RydWN0dXJlIGlzIHBlcmZvcm1lZCBoZXJlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVPcGVuQVBJKGNvbnRyYWN0OiBGbG93Q2hhcnRDb250cmFjdCwgb3B0aW9ucz86IE9wZW5BUElPcHRpb25zKTogT3BlbkFQSVNwZWMge1xuICBjb25zdCB7IGNoYXJ0LCBpbnB1dFNjaGVtYSwgb3V0cHV0U2NoZW1hIH0gPSBjb250cmFjdDtcbiAgY29uc3QgdmVyc2lvbiA9IG9wdGlvbnM/LnZlcnNpb24gPz8gJzEuMC4wJztcbiAgY29uc3QgYmFzZVBhdGggPSBvcHRpb25zPy5iYXNlUGF0aCA/PyAnLyc7XG4gIGNvbnN0IG1ldGhvZCA9IG9wdGlvbnM/Lm1ldGhvZCA/PyAncG9zdCc7XG5cbiAgY29uc3Qgcm9vdE5hbWUgPSBjaGFydC5yb290Lm5hbWU7XG4gIGNvbnN0IG9wZXJhdGlvbklkID0gc2x1Z2lmeShyb290TmFtZSk7XG4gIGNvbnN0IHBhdGggPSBgJHtiYXNlUGF0aCA9PT0gJy8nID8gJycgOiBiYXNlUGF0aH0vJHtvcGVyYXRpb25JZH1gO1xuXG4gIC8vIERlc2NyaXB0aW9uIHdhcyBidWlsdCBpbmNyZW1lbnRhbGx5IGR1cmluZyBGbG93Q2hhcnRCdWlsZGVyLmJ1aWxkKCkg4oCUIHJlYWQgaXQgZGlyZWN0bHkuXG4gIGNvbnN0IGZ1bGxEZXNjcmlwdGlvbiA9IGNoYXJ0LmRlc2NyaXB0aW9uO1xuXG4gIC8vIEJ1aWxkIHNjaGVtYXMgZm9yIGNvbXBvbmVudHNcbiAgY29uc3Qgc2NoZW1hczogUmVjb3JkPHN0cmluZywgSnNvblNjaGVtYT4gPSB7fTtcbiAgY29uc3QgaW5wdXRSZWYgPSBgJHtyb290TmFtZX1JbnB1dGA7XG4gIGNvbnN0IG91dHB1dFJlZiA9IGAke3Jvb3ROYW1lfU91dHB1dGA7XG5cbiAgaWYgKGlucHV0U2NoZW1hKSBzY2hlbWFzW2lucHV0UmVmXSA9IGlucHV0U2NoZW1hO1xuICBpZiAob3V0cHV0U2NoZW1hKSBzY2hlbWFzW291dHB1dFJlZl0gPSBvdXRwdXRTY2hlbWE7XG5cbiAgLy8gQnVpbGQgb3BlcmF0aW9uXG4gIGNvbnN0IG9wZXJhdGlvbjogT3BlbkFQSU9wZXJhdGlvbiA9IHtcbiAgICBvcGVyYXRpb25JZCxcbiAgICBzdW1tYXJ5OiByb290TmFtZSxcbiAgICBkZXNjcmlwdGlvbjogZnVsbERlc2NyaXB0aW9uLFxuICAgIC4uLihpbnB1dFNjaGVtYVxuICAgICAgPyB7XG4gICAgICAgICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgY29udGVudDoge1xuICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbic6IHtcbiAgICAgICAgICAgICAgICBzY2hlbWE6IHsgJHJlZjogYCMvY29tcG9uZW50cy9zY2hlbWFzLyR7aW5wdXRSZWZ9YCB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9XG4gICAgICA6IHt9KSxcbiAgICByZXNwb25zZXM6IHtcbiAgICAgICcyMDAnOiB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiAnU3VjY2Vzc2Z1bCBleGVjdXRpb24nLFxuICAgICAgICAuLi4ob3V0cHV0U2NoZW1hXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbic6IHtcbiAgICAgICAgICAgICAgICAgIHNjaGVtYTogeyAkcmVmOiBgIy9jb21wb25lbnRzL3NjaGVtYXMvJHtvdXRwdXRSZWZ9YCB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB7fSksXG4gICAgICB9LFxuICAgICAgJzUwMCc6IHtcbiAgICAgICAgZGVzY3JpcHRpb246ICdQaXBlbGluZSBleGVjdXRpb24gZXJyb3InLFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xuXG4gIGNvbnN0IHNwZWM6IE9wZW5BUElTcGVjID0ge1xuICAgIG9wZW5hcGk6ICczLjEuMCcsXG4gICAgaW5mbzoge1xuICAgICAgdGl0bGU6IHJvb3ROYW1lLFxuICAgICAgZGVzY3JpcHRpb246IGZ1bGxEZXNjcmlwdGlvbixcbiAgICAgIHZlcnNpb24sXG4gICAgfSxcbiAgICBwYXRoczoge1xuICAgICAgW3BhdGhdOiB7XG4gICAgICAgIFttZXRob2RdOiBvcGVyYXRpb24sXG4gICAgICB9LFxuICAgIH0sXG4gICAgLi4uKE9iamVjdC5rZXlzKHNjaGVtYXMpLmxlbmd0aCA+IDAgPyB7IGNvbXBvbmVudHM6IHsgc2NoZW1hcyB9IH0gOiB7fSksXG4gIH07XG5cbiAgcmV0dXJuIHNwZWM7XG59XG4iXX0=
|
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
* (inputMapper/outputMapper) but at the top-level flowchart boundary.
|
|
7
7
|
*/
|
|
8
8
|
export {};
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvbnRyYWN0L3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogY29udHJhY3QvdHlwZXMudHMg4oCUIFR5cGVzIGZvciB0aGUgRmxvd0NoYXJ0IGNvbnRyYWN0IGxheWVyLlxuICpcbiAqIERlZmluZXMgdGhlIEkvTyBib3VuZGFyeSBmb3IgYSBmbG93Y2hhcnQ6IGlucHV0IHNjaGVtYSwgb3V0cHV0IHNjaGVtYSxcbiAqIGFuZCBvdXRwdXQgbWFwcGVyLiBVc2VzIHRoZSBzYW1lIHBhdHRlcm4gYXMgU3ViZmxvd01vdW50T3B0aW9uc1xuICogKGlucHV0TWFwcGVyL291dHB1dE1hcHBlcikgYnV0IGF0IHRoZSB0b3AtbGV2ZWwgZmxvd2NoYXJ0IGJvdW5kYXJ5LlxuICovXG5cbmltcG9ydCB0eXBlIHsgRmxvd0NoYXJ0IH0gZnJvbSAnLi4vYnVpbGRlci90eXBlcy5qcyc7XG5cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gSlNPTiBTY2hlbWEgKHN1YnNldCBvZiBKU09OIFNjaGVtYSBEcmFmdCAyMDIwLTEyIC8gT3BlbkFQSSAzLjEpXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuZXhwb3J0IHR5cGUgSnNvblNjaGVtYSA9IHtcbiAgdHlwZT86IHN0cmluZyB8IHN0cmluZ1tdO1xuICBwcm9wZXJ0aWVzPzogUmVjb3JkPHN0cmluZywgSnNvblNjaGVtYT47XG4gIHJlcXVpcmVkPzogc3RyaW5nW107XG4gIGl0ZW1zPzogSnNvblNjaGVtYTtcbiAgZW51bT86IHVua25vd25bXTtcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGRlZmF1bHQ/OiB1bmtub3duO1xuICBmb3JtYXQ/OiBzdHJpbmc7XG4gIGFkZGl0aW9uYWxQcm9wZXJ0aWVzPzogYm9vbGVhbiB8IEpzb25TY2hlbWE7XG4gIG9uZU9mPzogSnNvblNjaGVtYVtdO1xuICBhbnlPZj86IEpzb25TY2hlbWFbXTtcbiAgYWxsT2Y/OiBKc29uU2NoZW1hW107XG4gICRyZWY/OiBzdHJpbmc7XG4gIFtrZXk6IHN0cmluZ106IHVua25vd247XG59O1xuXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIFNjaGVtYSBJbnB1dCDigJQgYWNjZXB0cyBlaXRoZXIgWm9kIHNjaGVtYSBvciByYXcgSlNPTiBTY2hlbWFcbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4vKiogQW55dGhpbmcgd2l0aCBhIGBkZWZgIChab2QgdjQpIG9yIGBfZGVmYCAoWm9kIHYzKSBwcm9wZXJ0eSBpcyB0cmVhdGVkIGFzIGEgWm9kIHNjaGVtYS4gKi9cbmV4cG9ydCB0eXBlIFNjaGVtYUlucHV0ID0gSnNvblNjaGVtYSB8IHsgZGVmOiB1bmtub3duOyBba2V5OiBzdHJpbmddOiB1bmtub3duIH07XG5cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gRmxvd0NoYXJ0IENvbnRyYWN0IOKAlCBJL08gYm91bmRhcnkgZGVmaW5pdGlvblxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbmV4cG9ydCBpbnRlcmZhY2UgRmxvd0NoYXJ0Q29udHJhY3RPcHRpb25zPF9USW5wdXQgPSB1bmtub3duLCBUT3V0cHV0ID0gdW5rbm93bj4ge1xuICAvKiogU2NoZW1hIGRlc2NyaWJpbmcgdGhlIGlucHV0IChyZWFkT25seUNvbnRleHQpIHNoYXBlLiBab2Qgb3IgSlNPTiBTY2hlbWEuICovXG4gIGlucHV0U2NoZW1hPzogU2NoZW1hSW5wdXQ7XG4gIC8qKiBTY2hlbWEgZGVzY3JpYmluZyB0aGUgb3V0cHV0IHNoYXBlLiBab2Qgb3IgSlNPTiBTY2hlbWEuICovXG4gIG91dHB1dFNjaGVtYT86IFNjaGVtYUlucHV0O1xuICAvKiogTWFwcyB0aGUgZmluYWwgc2NvcGUgc3RhdGUgaW50byB0aGUgcmVzcG9uc2Ugc2hhcGUuICovXG4gIG91dHB1dE1hcHBlcj86IChmaW5hbFNjb3BlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPT4gVE91dHB1dDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGbG93Q2hhcnRDb250cmFjdDxfVElucHV0ID0gdW5rbm93biwgVE91dHB1dCA9IHVua25vd24+
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvbnRyYWN0L3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogY29udHJhY3QvdHlwZXMudHMg4oCUIFR5cGVzIGZvciB0aGUgRmxvd0NoYXJ0IGNvbnRyYWN0IGxheWVyLlxuICpcbiAqIERlZmluZXMgdGhlIEkvTyBib3VuZGFyeSBmb3IgYSBmbG93Y2hhcnQ6IGlucHV0IHNjaGVtYSwgb3V0cHV0IHNjaGVtYSxcbiAqIGFuZCBvdXRwdXQgbWFwcGVyLiBVc2VzIHRoZSBzYW1lIHBhdHRlcm4gYXMgU3ViZmxvd01vdW50T3B0aW9uc1xuICogKGlucHV0TWFwcGVyL291dHB1dE1hcHBlcikgYnV0IGF0IHRoZSB0b3AtbGV2ZWwgZmxvd2NoYXJ0IGJvdW5kYXJ5LlxuICovXG5cbmltcG9ydCB0eXBlIHsgRmxvd0NoYXJ0IH0gZnJvbSAnLi4vYnVpbGRlci90eXBlcy5qcyc7XG5cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gSlNPTiBTY2hlbWEgKHN1YnNldCBvZiBKU09OIFNjaGVtYSBEcmFmdCAyMDIwLTEyIC8gT3BlbkFQSSAzLjEpXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuZXhwb3J0IHR5cGUgSnNvblNjaGVtYSA9IHtcbiAgdHlwZT86IHN0cmluZyB8IHN0cmluZ1tdO1xuICBwcm9wZXJ0aWVzPzogUmVjb3JkPHN0cmluZywgSnNvblNjaGVtYT47XG4gIHJlcXVpcmVkPzogc3RyaW5nW107XG4gIGl0ZW1zPzogSnNvblNjaGVtYTtcbiAgZW51bT86IHVua25vd25bXTtcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGRlZmF1bHQ/OiB1bmtub3duO1xuICBmb3JtYXQ/OiBzdHJpbmc7XG4gIGFkZGl0aW9uYWxQcm9wZXJ0aWVzPzogYm9vbGVhbiB8IEpzb25TY2hlbWE7XG4gIG9uZU9mPzogSnNvblNjaGVtYVtdO1xuICBhbnlPZj86IEpzb25TY2hlbWFbXTtcbiAgYWxsT2Y/OiBKc29uU2NoZW1hW107XG4gICRyZWY/OiBzdHJpbmc7XG4gIFtrZXk6IHN0cmluZ106IHVua25vd247XG59O1xuXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIFNjaGVtYSBJbnB1dCDigJQgYWNjZXB0cyBlaXRoZXIgWm9kIHNjaGVtYSBvciByYXcgSlNPTiBTY2hlbWFcbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4vKiogQW55dGhpbmcgd2l0aCBhIGBkZWZgIChab2QgdjQpIG9yIGBfZGVmYCAoWm9kIHYzKSBwcm9wZXJ0eSBpcyB0cmVhdGVkIGFzIGEgWm9kIHNjaGVtYS4gKi9cbmV4cG9ydCB0eXBlIFNjaGVtYUlucHV0ID0gSnNvblNjaGVtYSB8IHsgZGVmOiB1bmtub3duOyBba2V5OiBzdHJpbmddOiB1bmtub3duIH07XG5cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gRmxvd0NoYXJ0IENvbnRyYWN0IOKAlCBJL08gYm91bmRhcnkgZGVmaW5pdGlvblxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbmV4cG9ydCBpbnRlcmZhY2UgRmxvd0NoYXJ0Q29udHJhY3RPcHRpb25zPF9USW5wdXQgPSB1bmtub3duLCBUT3V0cHV0ID0gdW5rbm93bj4ge1xuICAvKiogU2NoZW1hIGRlc2NyaWJpbmcgdGhlIGlucHV0IChyZWFkT25seUNvbnRleHQpIHNoYXBlLiBab2Qgb3IgSlNPTiBTY2hlbWEuICovXG4gIGlucHV0U2NoZW1hPzogU2NoZW1hSW5wdXQ7XG4gIC8qKiBTY2hlbWEgZGVzY3JpYmluZyB0aGUgb3V0cHV0IHNoYXBlLiBab2Qgb3IgSlNPTiBTY2hlbWEuICovXG4gIG91dHB1dFNjaGVtYT86IFNjaGVtYUlucHV0O1xuICAvKiogTWFwcyB0aGUgZmluYWwgc2NvcGUgc3RhdGUgaW50byB0aGUgcmVzcG9uc2Ugc2hhcGUuICovXG4gIG91dHB1dE1hcHBlcj86IChmaW5hbFNjb3BlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPT4gVE91dHB1dDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGbG93Q2hhcnRDb250cmFjdDxfVElucHV0ID0gdW5rbm93biwgVE91dHB1dCA9IHVua25vd24+IHtcbiAgLyoqXG4gICAqIFByb3RvdHlwZS1saW5rZWQgdmlldyBvZiB0aGUgb3JpZ2luYWwgY29tcGlsZWQgRmxvd0NoYXJ0LlxuICAgKlxuICAgKiBPd24gcHJvcGVydGllcyAoaW5wdXRTY2hlbWEsIG91dHB1dFNjaGVtYSwgb3V0cHV0TWFwcGVyKSBhcmUgc2hhZG93ZWQgaGVyZVxuICAgKiBzbyB0aGF0IHRoZSBjb250cmFjdCdzIHZhbHVlcyB0YWtlIHByZWNlZGVuY2Ugb3ZlciBidWlsZGVyLXNldCB2YWx1ZXMuXG4gICAqIEFsbCBvdGhlciBmaWVsZHMgKHJvb3QsIHN0YWdlTWFwLCBtZXRob2RzKSBhcmUgaW5oZXJpdGVkIHZpYSB0aGUgcHJvdG90eXBlXG4gICAqIGNoYWluIHdpdGggemVybyBjb3B5aW5nLiBUaGUgb3JpZ2luYWwgY2hhcnQgaXMgbmV2ZXIgbXV0YXRlZC5cbiAgICpcbiAgICog4pqg77iPIERvIE5PVCB1c2UgT2JqZWN0LmtleXMoKSwgc3ByZWFkICh7Li4uY2hhcnR9KSwgb3IgSlNPTi5zdHJpbmdpZnkoKSBvblxuICAgKiB0aGlzIG9iamVjdCDigJQgaXQgd2lsbCBvbmx5IHNlZSBvd24gKHNoYWRvd2VkKSBwcm9wZXJ0aWVzLiBVc2UgbmFtZWRcbiAgICogcHJvcGVydHkgYWNjZXNzIG9yIGNoYXJ0LnRvU3BlYygpIGluc3RlYWQuXG4gICAqL1xuICBjaGFydDogRmxvd0NoYXJ0O1xuICAvKiogSlNPTiBTY2hlbWEgZm9yIHRoZSBpbnB1dCAobm9ybWFsaXplZCBmcm9tIFpvZCBvciByYXcpLiAqL1xuICBpbnB1dFNjaGVtYT86IEpzb25TY2hlbWE7XG4gIC8qKiBKU09OIFNjaGVtYSBmb3IgdGhlIG91dHB1dCAobm9ybWFsaXplZCBmcm9tIFpvZCBvciByYXcpLiAqL1xuICBvdXRwdXRTY2hlbWE/OiBKc29uU2NoZW1hO1xuICAvKiogTWFwcyB0aGUgZmluYWwgc2NvcGUgc3RhdGUgaW50byB0aGUgcmVzcG9uc2Ugc2hhcGUuICovXG4gIG91dHB1dE1hcHBlcj86IChmaW5hbFNjb3BlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPT4gVE91dHB1dDtcbiAgLyoqIEF1dG8tZ2VuZXJhdGVkIE9wZW5BUEkgc3BlYy4gRGVzY3JpcHRpb24gaXMgcmVhZCBmcm9tIGBjaGFydC5kZXNjcmlwdGlvbmAgKHByZS1idWlsdCBhdCBidWlsZCB0aW1lKS4gKi9cbiAgdG9PcGVuQVBJKG9wdGlvbnM/OiBPcGVuQVBJT3B0aW9ucyk6IE9wZW5BUElTcGVjO1xufVxuXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIE9wZW5BUEkgVHlwZXMgKG1pbmltYWwgc3Vic2V0IG9mIE9wZW5BUEkgMy4xKVxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbmV4cG9ydCBpbnRlcmZhY2UgT3BlbkFQSU9wdGlvbnMge1xuICAvKiogQVBJIHZlcnNpb24gc3RyaW5nIChkZWZhdWx0OiBcIjEuMC4wXCIpLiAqL1xuICB2ZXJzaW9uPzogc3RyaW5nO1xuICAvKiogQmFzZSBwYXRoIHByZWZpeCAoZGVmYXVsdDogXCIvXCIpLiAqL1xuICBiYXNlUGF0aD86IHN0cmluZztcbiAgLyoqIEhUVFAgbWV0aG9kIGZvciB0aGUgZXhlY3V0ZSBlbmRwb2ludCAoZGVmYXVsdDogXCJwb3N0XCIpLiAqL1xuICBtZXRob2Q/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3BlbkFQSVNwZWMge1xuICBvcGVuYXBpOiAnMy4xLjAnO1xuICBpbmZvOiB7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgIHZlcnNpb246IHN0cmluZztcbiAgfTtcbiAgcGF0aHM6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIE9wZW5BUElPcGVyYXRpb24+PjtcbiAgY29tcG9uZW50cz86IHtcbiAgICBzY2hlbWFzPzogUmVjb3JkPHN0cmluZywgSnNvblNjaGVtYT47XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3BlbkFQSU9wZXJhdGlvbiB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIHN1bW1hcnk6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgcmVxdWVzdEJvZHk/OiB7XG4gICAgcmVxdWlyZWQ6IGJvb2xlYW47XG4gICAgY29udGVudDoge1xuICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nOiB7XG4gICAgICAgIHNjaGVtYTogSnNvblNjaGVtYSB8IHsgJHJlZjogc3RyaW5nIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIHJlc3BvbnNlczogUmVjb3JkPFxuICAgIHN0cmluZyxcbiAgICB7XG4gICAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgICAgY29udGVudD86IHtcbiAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nOiB7XG4gICAgICAgICAgc2NoZW1hOiBKc29uU2NoZW1hIHwgeyAkcmVmOiBzdHJpbmcgfTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfVxuICA+O1xufVxuIl19
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* - A function: (s) => s.creditScore > 700 (auto-captures reads via temp recorder)
|
|
9
9
|
* - A filter: { creditScore: { gt: 700 } } (captures reads + operators + thresholds)
|
|
10
10
|
*/
|
|
11
|
+
import { isDevMode } from '../scope/detectCircular.js';
|
|
11
12
|
import { evaluateFilter } from './evaluator.js';
|
|
12
13
|
import { EvidenceCollector } from './evidence.js';
|
|
13
14
|
import { DECISION_RESULT } from './types.js';
|
|
@@ -60,11 +61,19 @@ function evaluateRule(scope, rule, index, attachFn, detachFn, valueFn, redactedF
|
|
|
60
61
|
if (collector && attachFn)
|
|
61
62
|
attachFn(collector);
|
|
62
63
|
let matched;
|
|
64
|
+
let matchError;
|
|
63
65
|
try {
|
|
64
66
|
matched = rule.when(scope);
|
|
65
67
|
}
|
|
66
|
-
catch (
|
|
68
|
+
catch (e) {
|
|
67
69
|
matched = false;
|
|
70
|
+
// Capture the error for debugging — surface it in evidence instead of swallowing silently
|
|
71
|
+
matchError = e instanceof Error ? e.message : String(e);
|
|
72
|
+
if (isDevMode()) {
|
|
73
|
+
const label = rule.label ? ` ('${rule.label}')` : '';
|
|
74
|
+
// eslint-disable-next-line no-console
|
|
75
|
+
console.warn(`[footprint] decide() rule ${index}${label} threw during evaluation: ${matchError}`);
|
|
76
|
+
}
|
|
68
77
|
}
|
|
69
78
|
finally {
|
|
70
79
|
if (collector && detachFn)
|
|
@@ -76,7 +85,9 @@ function evaluateRule(scope, rule, index, attachFn, detachFn, valueFn, redactedF
|
|
|
76
85
|
branch: rule.then,
|
|
77
86
|
matched,
|
|
78
87
|
label: rule.label,
|
|
88
|
+
// Partial reads: if rule threw after some getValue() calls, collector holds reads up to the throw point
|
|
79
89
|
inputs: (_a = collector === null || collector === void 0 ? void 0 : collector.getInputs()) !== null && _a !== void 0 ? _a : [],
|
|
90
|
+
...(matchError !== undefined && { matchError }),
|
|
80
91
|
};
|
|
81
92
|
return evidence;
|
|
82
93
|
}
|
|
@@ -86,14 +97,22 @@ function evaluateRule(scope, rule, index, attachFn, detachFn, valueFn, redactedF
|
|
|
86
97
|
const resolvedRedactedFn = redactedFn !== null && redactedFn !== void 0 ? redactedFn : (() => false);
|
|
87
98
|
let filterMatched = false;
|
|
88
99
|
let filterConditions = [];
|
|
100
|
+
let matchError;
|
|
89
101
|
try {
|
|
90
102
|
const result = evaluateFilter(resolvedValueFn, resolvedRedactedFn, rule.when);
|
|
91
103
|
filterMatched = result.matched;
|
|
92
104
|
filterConditions = result.conditions;
|
|
93
105
|
}
|
|
94
|
-
catch (
|
|
106
|
+
catch (e) {
|
|
95
107
|
filterMatched = false;
|
|
96
108
|
filterConditions = [];
|
|
109
|
+
// Capture the error for debugging — surface it in evidence instead of swallowing silently
|
|
110
|
+
matchError = e instanceof Error ? e.message : String(e);
|
|
111
|
+
if (isDevMode()) {
|
|
112
|
+
const label = rule.label ? ` ('${rule.label}')` : '';
|
|
113
|
+
// eslint-disable-next-line no-console
|
|
114
|
+
console.warn(`[footprint] decide() filter rule ${index}${label} threw during evaluation: ${matchError}`);
|
|
115
|
+
}
|
|
97
116
|
}
|
|
98
117
|
const evidence = {
|
|
99
118
|
type: 'filter',
|
|
@@ -102,6 +121,7 @@ function evaluateRule(scope, rule, index, attachFn, detachFn, valueFn, redactedF
|
|
|
102
121
|
matched: filterMatched,
|
|
103
122
|
label: rule.label,
|
|
104
123
|
conditions: filterConditions,
|
|
124
|
+
...(matchError !== undefined && { matchError }),
|
|
105
125
|
};
|
|
106
126
|
return evidence;
|
|
107
127
|
}
|
|
@@ -113,6 +133,11 @@ function evaluateRule(scope, rule, index, attachFn, detachFn, valueFn, redactedF
|
|
|
113
133
|
* @param scope - TypedScope or ScopeFacade
|
|
114
134
|
* @param rules - Array of DecideRule (function or filter when clauses)
|
|
115
135
|
* @param defaultBranch - Branch ID if no rule matches
|
|
136
|
+
*
|
|
137
|
+
* **Error behavior:** If a `when` function throws during evaluation, the rule is
|
|
138
|
+
* treated as non-matching (`matched: false`) and the error message is captured in
|
|
139
|
+
* `matchError` on that rule's `RuleEvidence` entry. Execution continues with
|
|
140
|
+
* subsequent rules; errors do not propagate to the caller.
|
|
116
141
|
*/
|
|
117
142
|
export function decide(scope, rules, defaultBranch) {
|
|
118
143
|
const attachFn = getAttachFn(scope);
|
|
@@ -146,6 +171,11 @@ export function decide(scope, rules, defaultBranch) {
|
|
|
146
171
|
*
|
|
147
172
|
* @param scope - TypedScope or ScopeFacade
|
|
148
173
|
* @param rules - Array of DecideRule (function or filter when clauses)
|
|
174
|
+
*
|
|
175
|
+
* **Error behavior:** If a `when` function throws during evaluation, the rule is
|
|
176
|
+
* treated as non-matching (`matched: false`) and the error message is captured in
|
|
177
|
+
* `matchError` on that rule's `RuleEvidence` entry. Evaluation continues with
|
|
178
|
+
* remaining rules; errors do not propagate to the caller.
|
|
149
179
|
*/
|
|
150
180
|
export function select(scope, rules) {
|
|
151
181
|
const attachFn = getAttachFn(scope);
|
|
@@ -167,4 +197,4 @@ export function select(scope, rules) {
|
|
|
167
197
|
};
|
|
168
198
|
return { branches: selectedBranches, [DECISION_RESULT]: true, evidence };
|
|
169
199
|
}
|
|
170
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjaWRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9kZWNpZGUvZGVjaWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7R0FTRztBQUdILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFhbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUU3QywrRUFBK0U7QUFFL0UsU0FBUyxXQUFXLENBQUMsS0FBYztJQUNqQyxNQUFNLENBQUMsR0FBRyxLQUFnQyxDQUFDO0lBQzNDLElBQUksT0FBTyxDQUFDLENBQUMsZUFBZSxLQUFLLFVBQVU7UUFBRSxPQUFPLENBQUMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlFLElBQUksT0FBTyxDQUFDLENBQUMsY0FBYyxLQUFLLFVBQVU7UUFBRSxPQUFPLENBQUMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVFLE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFFRCxTQUFTLFdBQVcsQ0FBQyxLQUFjO0lBQ2pDLE1BQU0sQ0FBQyxHQUFHLEtBQWdDLENBQUM7SUFDM0MsSUFBSSxPQUFPLENBQUMsQ0FBQyxlQUFlLEtBQUssVUFBVTtRQUFFLE9BQU8sQ0FBQyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUUsSUFBSSxPQUFPLENBQUMsQ0FBQyxjQUFjLEtBQUssVUFBVTtRQUFFLE9BQU8sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUUsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLEtBQWM7SUFDaEMsTUFBTSxDQUFDLEdBQUcsS0FBZ0MsQ0FBQztJ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RXRDLEtBQUssTUFBTSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztRQUM1QyxNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDL0YsY0FBYyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVsQyxJQUFJLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN6QixnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxRQUFRLEdBQXNCO1FBQ2xDLEtBQUssRUFBRSxjQUFjO1FBQ3JCLFFBQVEsRUFBRSxnQkFBZ0I7S0FDM0IsQ0FBQztJQUNGLE9BQU8sRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxlQUFlLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUM7QUFDM0UsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogZGVjaWRlL2RlY2lkZSAtLSBDb3JlIGRlY2lkZSgpIGFuZCBzZWxlY3QoKSBoZWxwZXIgZnVuY3Rpb25zLlxuICpcbiAqIGRlY2lkZSgpIGV2YWx1YXRlcyBydWxlcyBpbiBvcmRlciAoZmlyc3QtbWF0Y2gpIGFuZCByZXR1cm5zIGEgRGVjaXNpb25SZXN1bHQuXG4gKiBzZWxlY3QoKSBldmFsdWF0ZXMgQUxMIHJ1bGVzIGFuZCByZXR1cm5zIGEgU2VsZWN0aW9uUmVzdWx0IHdpdGggYWxsIG1hdGNoZXMuXG4gKlxuICogRWFjaCBydWxlJ3MgYHdoZW5gIGNhbiBiZTpcbiAqIC0gQSBmdW5jdGlvbjogKHMpID0+IHMuY3JlZGl0U2NvcmUgPiA3MDAgIChhdXRvLWNhcHR1cmVzIHJlYWRzIHZpYSB0ZW1wIHJlY29yZGVyKVxuICogLSBBIGZpbHRlcjogICB7IGNyZWRpdFNjb3JlOiB7IGd0OiA3MDAgfSB9IChjYXB0dXJlcyByZWFkcyArIG9wZXJhdG9ycyArIHRocmVzaG9sZHMpXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBSZWNvcmRlciB9IGZyb20gJy4uL3Njb3BlL3R5cGVzLmpzJztcbmltcG9ydCB7IGV2YWx1YXRlRmlsdGVyIH0gZnJvbSAnLi9ldmFsdWF0b3IuanMnO1xuaW1wb3J0IHsgRXZpZGVuY2VDb2xsZWN0b3IgfSBmcm9tICcuL2V2aWRlbmNlLmpzJztcbmltcG9ydCB0eXBlIHtcbiAgRGVjaWRlUnVsZSxcbiAgRGVjaXNpb25FdmlkZW5jZSxcbiAgRGVjaXNpb25SZXN1bHQsXG4gIEZpbHRlckNvbmRpdGlvbixcbiAgRmlsdGVyUnVsZUV2aWRlbmNlLFxuICBGdW5jdGlvblJ1bGVFdmlkZW5jZSxcbiAgUnVsZUV2aWRlbmNlLFxuICBTZWxlY3Rpb25FdmlkZW5jZSxcbiAgU2VsZWN0aW9uUmVzdWx0LFxuICBXaGVyZUZpbHRlcixcbn0gZnJvbSAnLi90eXBlcy5qcyc7XG5pbXBvcnQgeyBERUNJU0lPTl9SRVNVTFQgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuLy8gLS0gU2NvcGUgYWNjZXNzb3IgaGVscGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5mdW5jdGlvbiBnZXRBdHRhY2hGbihzY29wZTogdW5rbm93bik6ICgocjogUmVjb3JkZXIpID0+IHZvaWQpIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgcyA9IHNjb3BlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBpZiAodHlwZW9mIHMuJGF0dGFjaFJlY29yZGVyID09PSAnZnVuY3Rpb24nKSByZXR1cm4gcy4kYXR0YWNoUmVjb3JkZXIuYmluZChzKTtcbiAgaWYgKHR5cGVvZiBzLmF0dGFjaFJlY29yZGVyID09PSAnZnVuY3Rpb24nKSByZXR1cm4gcy5hdHRhY2hSZWNvcmRlci5iaW5kKHMpO1xuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBnZXREZXRhY2hGbihzY29wZTogdW5rbm93bik6ICgoaWQ6IHN0cmluZykgPT4gdm9pZCkgfCB1bmRlZmluZWQge1xuICBjb25zdCBzID0gc2NvcGUgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGlmICh0eXBlb2Ygcy4kZGV0YWNoUmVjb3JkZXIgPT09ICdmdW5jdGlvbicpIHJldHVybiBzLiRkZXRhY2hSZWNvcmRlci5iaW5kKHMpO1xuICBpZiAodHlwZW9mIHMuZGV0YWNoUmVjb3JkZXIgPT09ICdmdW5jdGlvbicpIHJldHVybiBzLmRldGFjaFJlY29yZGVyLmJpbmQocyk7XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGdldFZhbHVlRm4oc2NvcGU6IHVua25vd24pOiAoa2V5OiBzdHJpbmcpID0+IHVua25vd24ge1xuICBjb25zdCBzID0gc2NvcGUgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIC8vIENoZWNrICRnZXRWYWx1ZSBmaXJzdDogb24gVHlwZWRTY29wZSwgYWNjZXNzaW5nIC5nZXRWYWx1ZSB0cmlnZ2VycyBhIHNwdXJpb3VzXG4gIC8vIG9uUmVhZCBmb3Iga2V5IFwiZ2V0VmFsdWVcIiB2aWEgdGhlIFByb3h5IGdldCB0cmFwLiAkZ2V0VmFsdWUgcm91dGVzIHRocm91Z2hcbiAgLy8gU0NPUEVfTUVUSE9EX05BTUVTIGFuZCBhdm9pZHMgdGhlIHN0YXRlLXJlYWQgcGF0aC5cbiAgaWYgKHR5cGVvZiBzLiRnZXRWYWx1ZSA9PT0gJ2Z1bmN0aW9uJykgcmV0dXJuIHMuJGdldFZhbHVlLmJpbmQocyk7XG4gIGlmICh0eXBlb2Ygcy5nZXRWYWx1ZSA9PT0gJ2Z1bmN0aW9uJykgcmV0dXJuIHMuZ2V0VmFsdWUuYmluZChzKTtcbiAgcmV0dXJuICgpID0+IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gZ2V0UmVkYWN0ZWRGbihzY29wZTogdW5rbm93bik6IChrZXk6IHN0cmluZykgPT4gYm9vbGVhbiB7XG4gIGNvbnN0IHMgPSBzY29wZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgLy8gVHJ5ICR0b1JhdygpIGZpcnN0IChUeXBlZFNjb3BlKSwgdGhlbiBkaXJlY3RcbiAgY29uc3QgcmF3ID0gdHlwZW9mIHMuJHRvUmF3ID09PSAnZnVuY3Rpb24nID8gcy4kdG9SYXcoKSA6IHM7XG4gIGNvbnN0IHIgPSByYXcgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGlmICh0eXBlb2Ygci5nZXRSZWRhY3RlZEtleXMgPT09ICdmdW5jdGlvbicpIHtcbiAgICBjb25zdCBrZXlzID0gci5nZXRSZWRhY3RlZEtleXMoKSBhcyBTZXQ8c3RyaW5nPjtcbiAgICByZXR1cm4gKGtleTogc3RyaW5nKSA9PiBrZXlzLmhhcyhrZXkpO1xuICB9XG4gIHJldHVybiAoKSA9PiBmYWxzZTtcbn1cblxuLy8gLS0gZXZhbHVhdGUgYSBzaW5nbGUgcnVsZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5mdW5jdGlvbiBldmFsdWF0ZVJ1bGU8UyBleHRlbmRzIG9iamVjdD4oXG4gIHNjb3BlOiBTLFxuICBydWxlOiBEZWNpZGVSdWxlPFM+LFxuICBpbmRleDogbnVtYmVyLFxuICBhdHRhY2hGbj86IChyOiBSZWNvcmRlcikgPT4gdm9pZCxcbiAgZGV0YWNoRm4/OiAoaWQ6IHN0cmluZykgPT4gdm9pZCxcbiAgdmFsdWVGbj86IChrZXk6IHN0cmluZykgPT4gdW5rbm93bixcbiAgcmVkYWN0ZWRGbj86IChrZXk6IHN0cmluZykgPT4gYm9vbGVhbixcbik6IFJ1bGVFdmlkZW5jZSB7XG4gIGlmICh0eXBlb2YgcnVsZS53aGVuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgLy8gRlVOQ1RJT04gUEFUSDogdGVtcCByZWNvcmRlciBjYXB0dXJlcyByZWFkcyAobGF6eSDigJQgc2tpcCBpZiBubyByZWNvcmRlciBzdXBwb3J0KVxuICAgIGNvbnN0IGhhc1JlY29yZGVyU3VwcG9ydCA9IEJvb2xlYW4oYXR0YWNoRm4pO1xuICAgIGNvbnN0IGNvbGxlY3RvciA9IGhhc1JlY29yZGVyU3VwcG9ydCA/IG5ldyBFdmlkZW5jZUNvbGxlY3RvcigpIDogdW5kZWZpbmVkO1xuICAgIGlmIChjb2xsZWN0b3IgJiYgYXR0YWNoRm4pIGF0dGFjaEZuKGNvbGxlY3Rvcik7XG5cbiAgICBsZXQgbWF0Y2hlZDogYm9vbGVhbjtcbiAgICB0cnkge1xuICAgICAgbWF0Y2hlZCA9IHJ1bGUud2hlbihzY29wZSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICBtYXRjaGVkID0gZmFsc2U7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmIChjb2xsZWN0b3IgJiYgZGV0YWNoRm4pIGRldGFjaEZuKGNvbGxlY3Rvci5pZCk7XG4gICAgfVxuXG4gICAgY29uc3QgZXZpZGVuY2U6IEZ1bmN0aW9uUnVsZUV2aWRlbmNlID0ge1xuICAgICAgdHlwZTogJ2Z1bmN0aW9uJyxcbiAgICAgIHJ1bGVJbmRleDogaW5kZXgsXG4gICAgICBicmFuY2g6IHJ1bGUudGhlbixcbiAgICAgIG1hdGNoZWQsXG4gICAgICBsYWJlbDogcnVsZS5sYWJlbCxcbiAgICAgIGlucHV0czogY29sbGVjdG9yPy5nZXRJbnB1dHMoKSA/PyBbXSxcbiAgICB9O1xuICAgIHJldHVybiBldmlkZW5jZTtcbiAgfSBlbHNlIHtcbiAgICAvLyBGSUxURVIgUEFUSDogcmVhZHMgdmFsdWVzIGRpcmVjdGx5IHZpYSBjYWxsYmFja3MgKG5vIHJlY29yZGVyKTsgZXhjZXB0aW9ucyB0cmVhdGVkIGFzIG5vbi1tYXRjaFxuICAgIGNvbnN0IHJlc29sdmVkVmFsdWVGbiA9IHZhbHVlRm4gPz8gKCgpID0+IHVuZGVmaW5lZCk7XG4gICAgY29uc3QgcmVzb2x2ZWRSZWRhY3RlZEZuID0gcmVkYWN0ZWRGbiA/PyAoKCkgPT4gZmFsc2UpO1xuICAgIGxldCBmaWx0ZXJNYXRjaGVkID0gZmFsc2U7XG4gICAgbGV0IGZpbHRlckNvbmRpdGlvbnM6IEZpbHRlckNvbmRpdGlvbltdID0gW107XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGV2YWx1YXRlRmlsdGVyKHJlc29sdmVkVmFsdWVGbiwgcmVzb2x2ZWRSZWRhY3RlZEZuLCBydWxlLndoZW4gYXMgV2hlcmVGaWx0ZXI8Uz4pO1xuICAgICAgZmlsdGVyTWF0Y2hlZCA9IHJlc3VsdC5tYXRjaGVkO1xuICAgICAgZmlsdGVyQ29uZGl0aW9ucyA9IHJlc3VsdC5jb25kaXRpb25zO1xuICAgIH0gY2F0Y2gge1xuICAgICAgZmlsdGVyTWF0Y2hlZCA9IGZhbHNlO1xuICAgICAgZmlsdGVyQ29uZGl0aW9ucyA9IFtdO1xuICAgIH1cblxuICAgIGNvbnN0IGV2aWRlbmNlOiBGaWx0ZXJSdWxlRXZpZGVuY2UgPSB7XG4gICAgICB0eXBlOiAnZmlsdGVyJyxcbiAgICAgIHJ1bGVJbmRleDogaW5kZXgsXG4gICAgICBicmFuY2g6IHJ1bGUudGhlbixcbiAgICAgIG1hdGNoZWQ6IGZpbHRlck1hdGNoZWQsXG4gICAgICBsYWJlbDogcnVsZS5sYWJlbCxcbiAgICAgIGNvbmRpdGlvbnM6IGZpbHRlckNvbmRpdGlvbnMsXG4gICAgfTtcbiAgICByZXR1cm4gZXZpZGVuY2U7XG4gIH1cbn1cblxuLy8gLS0gZGVjaWRlKCkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vKipcbiAqIEV2YWx1YXRlcyBydWxlcyBpbiBvcmRlciAoZmlyc3QtbWF0Y2gpLiBSZXR1cm5zIGEgYnJhbmRlZCBEZWNpc2lvblJlc3VsdC5cbiAqXG4gKiBAcGFyYW0gc2NvcGUgLSBUeXBlZFNjb3BlIG9yIFNjb3BlRmFjYWRlXG4gKiBAcGFyYW0gcnVsZXMgLSBBcnJheSBvZiBEZWNpZGVSdWxlIChmdW5jdGlvbiBvciBmaWx0ZXIgd2hlbiBjbGF1c2VzKVxuICogQHBhcmFtIGRlZmF1bHRCcmFuY2ggLSBCcmFuY2ggSUQgaWYgbm8gcnVsZSBtYXRjaGVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWNpZGU8UyBleHRlbmRzIG9iamVjdD4oc2NvcGU6IFMsIHJ1bGVzOiBEZWNpZGVSdWxlPFM+W10sIGRlZmF1bHRCcmFuY2g6IHN0cmluZyk6IERlY2lzaW9uUmVzdWx0IHtcbiAgY29uc3QgYXR0YWNoRm4gPSBnZXRBdHRhY2hGbihzY29wZSk7XG4gIGNvbnN0IGRldGFjaEZuID0gZ2V0RGV0YWNoRm4oc2NvcGUpO1xuICBjb25zdCB2YWx1ZUZuID0gZ2V0VmFsdWVGbihzY29wZSk7XG4gIGNvbnN0IHJlZGFjdGVkRm4gPSBnZXRSZWRhY3RlZEZuKHNjb3BlKTtcblxuICBjb25zdCBldmFsdWF0ZWRSdWxlczogUnVsZUV2aWRlbmNlW10gPSBbXTtcblxuICBmb3IgKGNvbnN0IFtpbmRleCwgcnVsZV0gb2YgcnVsZXMuZW50cmllcygpKSB7XG4gICAgY29uc3QgcnVsZUV2aWRlbmNlID0gZXZhbHVhdGVSdWxlKHNjb3BlLCBydWxlLCBpbmRleCwgYXR0YWNoRm4sIGRldGFjaEZuLCB2YWx1ZUZuLCByZWRhY3RlZEZuKTtcbiAgICBldmFsdWF0ZWRSdWxlcy5wdXNoKHJ1bGVFdmlkZW5jZSk7XG5cbiAgICBpZiAocnVsZUV2aWRlbmNlLm1hdGNoZWQpIHtcbiAgICAgIGNvbnN0IGV2aWRlbmNlOiBEZWNpc2lvbkV2aWRlbmNlID0ge1xuICAgICAgICBydWxlczogZXZhbHVhdGVkUnVsZXMsXG4gICAgICAgIGNob3NlbjogcnVsZS50aGVuLFxuICAgICAgICBkZWZhdWx0OiBkZWZhdWx0QnJhbmNoLFxuICAgICAgfTtcbiAgICAgIHJldHVybiB7IGJyYW5jaDogcnVsZS50aGVuLCBbREVDSVNJT05fUkVTVUxUXTogdHJ1ZSwgZXZpZGVuY2UgfTtcbiAgICB9XG4gIH1cblxuICAvLyBEZWZhdWx0OiBubyBydWxlIG1hdGNoZWRcbiAgY29uc3QgZXZpZGVuY2U6IERlY2lzaW9uRXZpZGVuY2UgPSB7XG4gICAgcnVsZXM6IGV2YWx1YXRlZFJ1bGVzLFxuICAgIGNob3NlbjogZGVmYXVsdEJyYW5jaCxcbiAgICBkZWZhdWx0OiBkZWZhdWx0QnJhbmNoLFxuICB9O1xuICByZXR1cm4geyBicmFuY2g6IGRlZmF1bHRCcmFuY2gsIFtERUNJU0lPTl9SRVNVTFRdOiB0cnVlLCBldmlkZW5jZSB9O1xufVxuXG4vLyAtLSBzZWxlY3QoKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qKlxuICogRXZhbHVhdGVzIEFMTCBydWxlcyAobm90IGZpcnN0LW1hdGNoKS4gUmV0dXJucyBhIGJyYW5kZWQgU2VsZWN0aW9uUmVzdWx0LlxuICpcbiAqIEBwYXJhbSBzY29wZSAtIFR5cGVkU2NvcGUgb3IgU2NvcGVGYWNhZGVcbiAqIEBwYXJhbSBydWxlcyAtIEFycmF5IG9mIERlY2lkZVJ1bGUgKGZ1bmN0aW9uIG9yIGZpbHRlciB3aGVuIGNsYXVzZXMpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZWxlY3Q8UyBleHRlbmRzIG9iamVjdD4oc2NvcGU6IFMsIHJ1bGVzOiBEZWNpZGVSdWxlPFM+W10pOiBTZWxlY3Rpb25SZXN1bHQge1xuICBjb25zdCBhdHRhY2hGbiA9IGdldEF0dGFjaEZuKHNjb3BlKTtcbiAgY29uc3QgZGV0YWNoRm4gPSBnZXREZXRhY2hGbihzY29wZSk7XG4gIGNvbnN0IHZhbHVlRm4gPSBnZXRWYWx1ZUZuKHNjb3BlKTtcbiAgY29uc3QgcmVkYWN0ZWRGbiA9IGdldFJlZGFjdGVkRm4oc2NvcGUpO1xuXG4gIGNvbnN0IGV2YWx1YXRlZFJ1bGVzOiBSdWxlRXZpZGVuY2VbXSA9IFtdO1xuICBjb25zdCBzZWxlY3RlZEJyYW5jaGVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGZvciAoY29uc3QgW2luZGV4LCBydWxlXSBvZiBydWxlcy5lbnRyaWVzKCkpIHtcbiAgICBjb25zdCBydWxlRXZpZGVuY2UgPSBldmFsdWF0ZVJ1bGUoc2NvcGUsIHJ1bGUsIGluZGV4LCBhdHRhY2hGbiwgZGV0YWNoRm4sIHZhbHVlRm4sIHJlZGFjdGVkRm4pO1xuICAgIGV2YWx1YXRlZFJ1bGVzLnB1c2gocnVsZUV2aWRlbmNlKTtcblxuICAgIGlmIChydWxlRXZpZGVuY2UubWF0Y2hlZCkge1xuICAgICAgc2VsZWN0ZWRCcmFuY2hlcy5wdXNoKHJ1bGUudGhlbik7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgZXZpZGVuY2U6IFNlbGVjdGlvbkV2aWRlbmNlID0ge1xuICAgIHJ1bGVzOiBldmFsdWF0ZWRSdWxlcyxcbiAgICBzZWxlY3RlZDogc2VsZWN0ZWRCcmFuY2hlcyxcbiAgfTtcbiAgcmV0dXJuIHsgYnJhbmNoZXM6IHNlbGVjdGVkQnJhbmNoZXMsIFtERUNJU0lPTl9SRVNVTFRdOiB0cnVlLCBldmlkZW5jZSB9O1xufVxuIl19
|
|
200
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjaWRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9kZWNpZGUvZGVjaWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7R0FTRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUV2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBYWxELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFN0MsK0VBQStFO0FBRS9FLFNBQVMsV0FBVyxDQUFDLEtBQWM7SUFDakMsTUFBTSxDQUFDLEdBQUcsS0FBZ0MsQ0FBQztJQUMzQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLGVBQWUsS0FBSyxVQUFVO1FBQUUsT0FBTyxDQUFDLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5RSxJQUFJLE9BQU8sQ0FBQyxDQUFDLGNBQWMsS0FBSyxVQUFVO1FBQUUsT0FBTyxDQUFDLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1RSxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDO0FBRUQsU0FBUyxXQUFXLENBQUMsS0FBYztJQUNqQyxNQUFNLENBQUMsR0FBRyxLQUFnQyxDQUFDO0lBQzNDLElBQUksT0FBTyxDQUFDLENBQUMsZUFBZSxLQUFLLFVBQVU7UUFBRSxPQUFPLENBQUMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlFLElBQUksT0FBTyxDQUFDLENBQUMsY0FBYyxLQUFLLFVBQVU7UUFBRSxPQUFPLENBQUMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVFLE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFFRCxTQUFTLFVBQVUs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O0lBQzFDLE1BQU0sZ0JBQWdCLEdBQWEsRUFBRSxDQUFDO0lBRXRDLEtBQUssTUFBTSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztRQUM1QyxNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDL0YsY0FBYyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVsQyxJQUFJLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN6QixnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxRQUFRLEdBQXNCO1FBQ2xDLEtBQUssRUFBRSxjQUFjO1FBQ3JCLFFBQVEsRUFBRSxnQkFBZ0I7S0FDM0IsQ0FBQztJQUNGLE9BQU8sRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxlQUFlLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUM7QUFDM0UsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogZGVjaWRlL2RlY2lkZSAtLSBDb3JlIGRlY2lkZSgpIGFuZCBzZWxlY3QoKSBoZWxwZXIgZnVuY3Rpb25zLlxuICpcbiAqIGRlY2lkZSgpIGV2YWx1YXRlcyBydWxlcyBpbiBvcmRlciAoZmlyc3QtbWF0Y2gpIGFuZCByZXR1cm5zIGEgRGVjaXNpb25SZXN1bHQuXG4gKiBzZWxlY3QoKSBldmFsdWF0ZXMgQUxMIHJ1bGVzIGFuZCByZXR1cm5zIGEgU2VsZWN0aW9uUmVzdWx0IHdpdGggYWxsIG1hdGNoZXMuXG4gKlxuICogRWFjaCBydWxlJ3MgYHdoZW5gIGNhbiBiZTpcbiAqIC0gQSBmdW5jdGlvbjogKHMpID0+IHMuY3JlZGl0U2NvcmUgPiA3MDAgIChhdXRvLWNhcHR1cmVzIHJlYWRzIHZpYSB0ZW1wIHJlY29yZGVyKVxuICogLSBBIGZpbHRlcjogICB7IGNyZWRpdFNjb3JlOiB7IGd0OiA3MDAgfSB9IChjYXB0dXJlcyByZWFkcyArIG9wZXJhdG9ycyArIHRocmVzaG9sZHMpXG4gKi9cblxuaW1wb3J0IHsgaXNEZXZNb2RlIH0gZnJvbSAnLi4vc2NvcGUvZGV0ZWN0Q2lyY3VsYXIuanMnO1xuaW1wb3J0IHR5cGUgeyBSZWNvcmRlciB9IGZyb20gJy4uL3Njb3BlL3R5cGVzLmpzJztcbmltcG9ydCB7IGV2YWx1YXRlRmlsdGVyIH0gZnJvbSAnLi9ldmFsdWF0b3IuanMnO1xuaW1wb3J0IHsgRXZpZGVuY2VDb2xsZWN0b3IgfSBmcm9tICcuL2V2aWRlbmNlLmpzJztcbmltcG9ydCB0eXBlIHtcbiAgRGVjaWRlUnVsZSxcbiAgRGVjaXNpb25FdmlkZW5jZSxcbiAgRGVjaXNpb25SZXN1bHQsXG4gIEZpbHRlckNvbmRpdGlvbixcbiAgRmlsdGVyUnVsZUV2aWRlbmNlLFxuICBGdW5jdGlvblJ1bGVFdmlkZW5jZSxcbiAgUnVsZUV2aWRlbmNlLFxuICBTZWxlY3Rpb25FdmlkZW5jZSxcbiAgU2VsZWN0aW9uUmVzdWx0LFxuICBXaGVyZUZpbHRlcixcbn0gZnJvbSAnLi90eXBlcy5qcyc7XG5pbXBvcnQgeyBERUNJU0lPTl9SRVNVTFQgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuLy8gLS0gU2NvcGUgYWNjZXNzb3IgaGVscGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5mdW5jdGlvbiBnZXRBdHRhY2hGbihzY29wZTogdW5rbm93bik6ICgocjogUmVjb3JkZXIpID0+IHZvaWQpIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgcyA9IHNjb3BlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBpZiAodHlwZW9mIHMuJGF0dGFjaFJlY29yZGVyID09PSAnZnVuY3Rpb24nKSByZXR1cm4gcy4kYXR0YWNoUmVjb3JkZXIuYmluZChzKTtcbiAgaWYgKHR5cGVvZiBzLmF0dGFjaFJlY29yZGVyID09PSAnZnVuY3Rpb24nKSByZXR1cm4gcy5hdHRhY2hSZWNvcmRlci5iaW5kKHMpO1xuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBnZXREZXRhY2hGbihzY29wZTogdW5rbm93bik6ICgoaWQ6IHN0cmluZykgPT4gdm9pZCkgfCB1bmRlZmluZWQge1xuICBjb25zdCBzID0gc2NvcGUgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGlmICh0eXBlb2Ygcy4kZGV0YWNoUmVjb3JkZXIgPT09ICdmdW5jdGlvbicpIHJldHVybiBzLiRkZXRhY2hSZWNvcmRlci5iaW5kKHMpO1xuICBpZiAodHlwZW9mIHMuZGV0YWNoUmVjb3JkZXIgPT09ICdmdW5jdGlvbicpIHJldHVybiBzLmRldGFjaFJlY29yZGVyLmJpbmQocyk7XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGdldFZhbHVlRm4oc2NvcGU6IHVua25vd24pOiAoa2V5OiBzdHJpbmcpID0+IHVua25vd24ge1xuICBjb25zdCBzID0gc2NvcGUgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIC8vIENoZWNrICRnZXRWYWx1ZSBmaXJzdDogb24gVHlwZWRTY29wZSwgYWNjZXNzaW5nIC5nZXRWYWx1ZSB0cmlnZ2VycyBhIHNwdXJpb3VzXG4gIC8vIG9uUmVhZCBmb3Iga2V5IFwiZ2V0VmFsdWVcIiB2aWEgdGhlIFByb3h5IGdldCB0cmFwLiAkZ2V0VmFsdWUgcm91dGVzIHRocm91Z2hcbiAgLy8gU0NPUEVfTUVUSE9EX05BTUVTIGFuZCBhdm9pZHMgdGhlIHN0YXRlLXJlYWQgcGF0aC5cbiAgaWYgKHR5cGVvZiBzLiRnZXRWYWx1ZSA9PT0gJ2Z1bmN0aW9uJykgcmV0dXJuIHMuJGdldFZhbHVlLmJpbmQocyk7XG4gIGlmICh0eXBlb2Ygcy5nZXRWYWx1ZSA9PT0gJ2Z1bmN0aW9uJykgcmV0dXJuIHMuZ2V0VmFsdWUuYmluZChzKTtcbiAgcmV0dXJuICgpID0+IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gZ2V0UmVkYWN0ZWRGbihzY29wZTogdW5rbm93bik6IChrZXk6IHN0cmluZykgPT4gYm9vbGVhbiB7XG4gIGNvbnN0IHMgPSBzY29wZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgLy8gVHJ5ICR0b1JhdygpIGZpcnN0IChUeXBlZFNjb3BlKSwgdGhlbiBkaXJlY3RcbiAgY29uc3QgcmF3ID0gdHlwZW9mIHMuJHRvUmF3ID09PSAnZnVuY3Rpb24nID8gcy4kdG9SYXcoKSA6IHM7XG4gIGNvbnN0IHIgPSByYXcgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGlmICh0eXBlb2Ygci5nZXRSZWRhY3RlZEtleXMgPT09ICdmdW5jdGlvbicpIHtcbiAgICBjb25zdCBrZXlzID0gci5nZXRSZWRhY3RlZEtleXMoKSBhcyBTZXQ8c3RyaW5nPjtcbiAgICByZXR1cm4gKGtleTogc3RyaW5nKSA9PiBrZXlzLmhhcyhrZXkpO1xuICB9XG4gIHJldHVybiAoKSA9PiBmYWxzZTtcbn1cblxuLy8gLS0gZXZhbHVhdGUgYSBzaW5nbGUgcnVsZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5mdW5jdGlvbiBldmFsdWF0ZVJ1bGU8UyBleHRlbmRzIG9iamVjdD4oXG4gIHNjb3BlOiBTLFxuICBydWxlOiBEZWNpZGVSdWxlPFM+LFxuICBpbmRleDogbnVtYmVyLFxuICBhdHRhY2hGbj86IChyOiBSZWNvcmRlcikgPT4gdm9pZCxcbiAgZGV0YWNoRm4/OiAoaWQ6IHN0cmluZykgPT4gdm9pZCxcbiAgdmFsdWVGbj86IChrZXk6IHN0cmluZykgPT4gdW5rbm93bixcbiAgcmVkYWN0ZWRGbj86IChrZXk6IHN0cmluZykgPT4gYm9vbGVhbixcbik6IFJ1bGVFdmlkZW5jZSB7XG4gIGlmICh0eXBlb2YgcnVsZS53aGVuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgLy8gRlVOQ1RJT04gUEFUSDogdGVtcCByZWNvcmRlciBjYXB0dXJlcyByZWFkcyAobGF6eSDigJQgc2tpcCBpZiBubyByZWNvcmRlciBzdXBwb3J0KVxuICAgIGNvbnN0IGhhc1JlY29yZGVyU3VwcG9ydCA9IEJvb2xlYW4oYXR0YWNoRm4pO1xuICAgIGNvbnN0IGNvbGxlY3RvciA9IGhhc1JlY29yZGVyU3VwcG9ydCA/IG5ldyBFdmlkZW5jZUNvbGxlY3RvcigpIDogdW5kZWZpbmVkO1xuICAgIGlmIChjb2xsZWN0b3IgJiYgYXR0YWNoRm4pIGF0dGFjaEZuKGNvbGxlY3Rvcik7XG5cbiAgICBsZXQgbWF0Y2hlZDogYm9vbGVhbjtcbiAgICBsZXQgbWF0Y2hFcnJvcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIHRyeSB7XG4gICAgICBtYXRjaGVkID0gcnVsZS53aGVuKHNjb3BlKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBtYXRjaGVkID0gZmFsc2U7XG4gICAgICAvLyBDYXB0dXJlIHRoZSBlcnJvciBmb3IgZGVidWdnaW5nIOKAlCBzdXJmYWNlIGl0IGluIGV2aWRlbmNlIGluc3RlYWQgb2Ygc3dhbGxvd2luZyBzaWxlbnRseVxuICAgICAgbWF0Y2hFcnJvciA9IGUgaW5zdGFuY2VvZiBFcnJvciA/IGUubWVzc2FnZSA6IFN0cmluZyhlKTtcbiAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xuICAgICAgICBjb25zdCBsYWJlbCA9IHJ1bGUubGFiZWwgPyBgICgnJHtydWxlLmxhYmVsfScpYCA6ICcnO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICBjb25zb2xlLndhcm4oYFtmb290cHJpbnRdIGRlY2lkZSgpIHJ1bGUgJHtpbmRleH0ke2xhYmVsfSB0aHJldyBkdXJpbmcgZXZhbHVhdGlvbjogJHttYXRjaEVycm9yfWApO1xuICAgICAgfVxuICAgIH0gZmluYWxseSB7XG4gICAgICBpZiAoY29sbGVjdG9yICYmIGRldGFjaEZuKSBkZXRhY2hGbihjb2xsZWN0b3IuaWQpO1xuICAgIH1cblxuICAgIGNvbnN0IGV2aWRlbmNlOiBGdW5jdGlvblJ1bGVFdmlkZW5jZSA9IHtcbiAgICAgIHR5cGU6ICdmdW5jdGlvbicsXG4gICAgICBydWxlSW5kZXg6IGluZGV4LFxuICAgICAgYnJhbmNoOiBydWxlLnRoZW4sXG4gICAgICBtYXRjaGVkLFxuICAgICAgbGFiZWw6IHJ1bGUubGFiZWwsXG4gICAgICAvLyBQYXJ0aWFsIHJlYWRzOiBpZiBydWxlIHRocmV3IGFmdGVyIHNvbWUgZ2V0VmFsdWUoKSBjYWxscywgY29sbGVjdG9yIGhvbGRzIHJlYWRzIHVwIHRvIHRoZSB0aHJvdyBwb2ludFxuICAgICAgaW5wdXRzOiBjb2xsZWN0b3I/LmdldElucHV0cygpID8/IFtdLFxuICAgICAgLi4uKG1hdGNoRXJyb3IgIT09IHVuZGVmaW5lZCAmJiB7IG1hdGNoRXJyb3IgfSksXG4gICAgfTtcbiAgICByZXR1cm4gZXZpZGVuY2U7XG4gIH0gZWxzZSB7XG4gICAgLy8gRklMVEVSIFBBVEg6IHJlYWRzIHZhbHVlcyBkaXJlY3RseSB2aWEgY2FsbGJhY2tzIChubyByZWNvcmRlcik7IGV4Y2VwdGlvbnMgdHJlYXRlZCBhcyBub24tbWF0Y2hcbiAgICBjb25zdCByZXNvbHZlZFZhbHVlRm4gPSB2YWx1ZUZuID8/ICgoKSA9PiB1bmRlZmluZWQpO1xuICAgIGNvbnN0IHJlc29sdmVkUmVkYWN0ZWRGbiA9IHJlZGFjdGVkRm4gPz8gKCgpID0+IGZhbHNlKTtcbiAgICBsZXQgZmlsdGVyTWF0Y2hlZCA9IGZhbHNlO1xuICAgIGxldCBmaWx0ZXJDb25kaXRpb25zOiBGaWx0ZXJDb25kaXRpb25bXSA9IFtdO1xuICAgIGxldCBtYXRjaEVycm9yOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGV2YWx1YXRlRmlsdGVyKHJlc29sdmVkVmFsdWVGbiwgcmVzb2x2ZWRSZWRhY3RlZEZuLCBydWxlLndoZW4gYXMgV2hlcmVGaWx0ZXI8Uz4pO1xuICAgICAgZmlsdGVyTWF0Y2hlZCA9IHJlc3VsdC5tYXRjaGVkO1xuICAgICAgZmlsdGVyQ29uZGl0aW9ucyA9IHJlc3VsdC5jb25kaXRpb25zO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGZpbHRlck1hdGNoZWQgPSBmYWxzZTtcbiAgICAgIGZpbHRlckNvbmRpdGlvbnMgPSBbXTtcbiAgICAgIC8vIENhcHR1cmUgdGhlIGVycm9yIGZvciBkZWJ1Z2dpbmcg4oCUIHN1cmZhY2UgaXQgaW4gZXZpZGVuY2UgaW5zdGVhZCBvZiBzd2FsbG93aW5nIHNpbGVudGx5XG4gICAgICBtYXRjaEVycm9yID0gZSBpbnN0YW5jZW9mIEVycm9yID8gZS5tZXNzYWdlIDogU3RyaW5nKGUpO1xuICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XG4gICAgICAgIGNvbnN0IGxhYmVsID0gcnVsZS5sYWJlbCA/IGAgKCcke3J1bGUubGFiZWx9JylgIDogJyc7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgIGNvbnNvbGUud2FybihgW2Zvb3RwcmludF0gZGVjaWRlKCkgZmlsdGVyIHJ1bGUgJHtpbmRleH0ke2xhYmVsfSB0aHJldyBkdXJpbmcgZXZhbHVhdGlvbjogJHttYXRjaEVycm9yfWApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGV2aWRlbmNlOiBGaWx0ZXJSdWxlRXZpZGVuY2UgPSB7XG4gICAgICB0eXBlOiAnZmlsdGVyJyxcbiAgICAgIHJ1bGVJbmRleDogaW5kZXgsXG4gICAgICBicmFuY2g6IHJ1bGUudGhlbixcbiAgICAgIG1hdGNoZWQ6IGZpbHRlck1hdGNoZWQsXG4gICAgICBsYWJlbDogcnVsZS5sYWJlbCxcbiAgICAgIGNvbmRpdGlvbnM6IGZpbHRlckNvbmRpdGlvbnMsXG4gICAgICAuLi4obWF0Y2hFcnJvciAhPT0gdW5kZWZpbmVkICYmIHsgbWF0Y2hFcnJvciB9KSxcbiAgICB9O1xuICAgIHJldHVybiBldmlkZW5jZTtcbiAgfVxufVxuXG4vLyAtLSBkZWNpZGUoKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qKlxuICogRXZhbHVhdGVzIHJ1bGVzIGluIG9yZGVyIChmaXJzdC1tYXRjaCkuIFJldHVybnMgYSBicmFuZGVkIERlY2lzaW9uUmVzdWx0LlxuICpcbiAqIEBwYXJhbSBzY29wZSAtIFR5cGVkU2NvcGUgb3IgU2NvcGVGYWNhZGVcbiAqIEBwYXJhbSBydWxlcyAtIEFycmF5IG9mIERlY2lkZVJ1bGUgKGZ1bmN0aW9uIG9yIGZpbHRlciB3aGVuIGNsYXVzZXMpXG4gKiBAcGFyYW0gZGVmYXVsdEJyYW5jaCAtIEJyYW5jaCBJRCBpZiBubyBydWxlIG1hdGNoZXNcbiAqXG4gKiAqKkVycm9yIGJlaGF2aW9yOioqIElmIGEgYHdoZW5gIGZ1bmN0aW9uIHRocm93cyBkdXJpbmcgZXZhbHVhdGlvbiwgdGhlIHJ1bGUgaXNcbiAqIHRyZWF0ZWQgYXMgbm9uLW1hdGNoaW5nIChgbWF0Y2hlZDogZmFsc2VgKSBhbmQgdGhlIGVycm9yIG1lc3NhZ2UgaXMgY2FwdHVyZWQgaW5cbiAqIGBtYXRjaEVycm9yYCBvbiB0aGF0IHJ1bGUncyBgUnVsZUV2aWRlbmNlYCBlbnRyeS4gRXhlY3V0aW9uIGNvbnRpbnVlcyB3aXRoXG4gKiBzdWJzZXF1ZW50IHJ1bGVzOyBlcnJvcnMgZG8gbm90IHByb3BhZ2F0ZSB0byB0aGUgY2FsbGVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVjaWRlPFMgZXh0ZW5kcyBvYmplY3Q+KHNjb3BlOiBTLCBydWxlczogRGVjaWRlUnVsZTxTPltdLCBkZWZhdWx0QnJhbmNoOiBzdHJpbmcpOiBEZWNpc2lvblJlc3VsdCB7XG4gIGNvbnN0IGF0dGFjaEZuID0gZ2V0QXR0YWNoRm4oc2NvcGUpO1xuICBjb25zdCBkZXRhY2hGbiA9IGdldERldGFjaEZuKHNjb3BlKTtcbiAgY29uc3QgdmFsdWVGbiA9IGdldFZhbHVlRm4oc2NvcGUpO1xuICBjb25zdCByZWRhY3RlZEZuID0gZ2V0UmVkYWN0ZWRGbihzY29wZSk7XG5cbiAgY29uc3QgZXZhbHVhdGVkUnVsZXM6IFJ1bGVFdmlkZW5jZVtdID0gW107XG5cbiAgZm9yIChjb25zdCBbaW5kZXgsIHJ1bGVdIG9mIHJ1bGVzLmVudHJpZXMoKSkge1xuICAgIGNvbnN0IHJ1bGVFdmlkZW5jZSA9IGV2YWx1YXRlUnVsZShzY29wZSwgcnVsZSwgaW5kZXgsIGF0dGFjaEZuLCBkZXRhY2hGbiwgdmFsdWVGbiwgcmVkYWN0ZWRGbik7XG4gICAgZXZhbHVhdGVkUnVsZXMucHVzaChydWxlRXZpZGVuY2UpO1xuXG4gICAgaWYgKHJ1bGVFdmlkZW5jZS5tYXRjaGVkKSB7XG4gICAgICBjb25zdCBldmlkZW5jZTogRGVjaXNpb25FdmlkZW5jZSA9IHtcbiAgICAgICAgcnVsZXM6IGV2YWx1YXRlZFJ1bGVzLFxuICAgICAgICBjaG9zZW46IHJ1bGUudGhlbixcbiAgICAgICAgZGVmYXVsdDogZGVmYXVsdEJyYW5jaCxcbiAgICAgIH07XG4gICAgICByZXR1cm4geyBicmFuY2g6IHJ1bGUudGhlbiwgW0RFQ0lTSU9OX1JFU1VMVF06IHRydWUsIGV2aWRlbmNlIH07XG4gICAgfVxuICB9XG5cbiAgLy8gRGVmYXVsdDogbm8gcnVsZSBtYXRjaGVkXG4gIGNvbnN0IGV2aWRlbmNlOiBEZWNpc2lvbkV2aWRlbmNlID0ge1xuICAgIHJ1bGVzOiBldmFsdWF0ZWRSdWxlcyxcbiAgICBjaG9zZW46IGRlZmF1bHRCcmFuY2gsXG4gICAgZGVmYXVsdDogZGVmYXVsdEJyYW5jaCxcbiAgfTtcbiAgcmV0dXJuIHsgYnJhbmNoOiBkZWZhdWx0QnJhbmNoLCBbREVDSVNJT05fUkVTVUxUXTogdHJ1ZSwgZXZpZGVuY2UgfTtcbn1cblxuLy8gLS0gc2VsZWN0KCkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vKipcbiAqIEV2YWx1YXRlcyBBTEwgcnVsZXMgKG5vdCBmaXJzdC1tYXRjaCkuIFJldHVybnMgYSBicmFuZGVkIFNlbGVjdGlvblJlc3VsdC5cbiAqXG4gKiBAcGFyYW0gc2NvcGUgLSBUeXBlZFNjb3BlIG9yIFNjb3BlRmFjYWRlXG4gKiBAcGFyYW0gcnVsZXMgLSBBcnJheSBvZiBEZWNpZGVSdWxlIChmdW5jdGlvbiBvciBmaWx0ZXIgd2hlbiBjbGF1c2VzKVxuICpcbiAqICoqRXJyb3IgYmVoYXZpb3I6KiogSWYgYSBgd2hlbmAgZnVuY3Rpb24gdGhyb3dzIGR1cmluZyBldmFsdWF0aW9uLCB0aGUgcnVsZSBpc1xuICogdHJlYXRlZCBhcyBub24tbWF0Y2hpbmcgKGBtYXRjaGVkOiBmYWxzZWApIGFuZCB0aGUgZXJyb3IgbWVzc2FnZSBpcyBjYXB0dXJlZCBpblxuICogYG1hdGNoRXJyb3JgIG9uIHRoYXQgcnVsZSdzIGBSdWxlRXZpZGVuY2VgIGVudHJ5LiBFdmFsdWF0aW9uIGNvbnRpbnVlcyB3aXRoXG4gKiByZW1haW5pbmcgcnVsZXM7IGVycm9ycyBkbyBub3QgcHJvcGFnYXRlIHRvIHRoZSBjYWxsZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZWxlY3Q8UyBleHRlbmRzIG9iamVjdD4oc2NvcGU6IFMsIHJ1bGVzOiBEZWNpZGVSdWxlPFM+W10pOiBTZWxlY3Rpb25SZXN1bHQge1xuICBjb25zdCBhdHRhY2hGbiA9IGdldEF0dGFjaEZuKHNjb3BlKTtcbiAgY29uc3QgZGV0YWNoRm4gPSBnZXREZXRhY2hGbihzY29wZSk7XG4gIGNvbnN0IHZhbHVlRm4gPSBnZXRWYWx1ZUZuKHNjb3BlKTtcbiAgY29uc3QgcmVkYWN0ZWRGbiA9IGdldFJlZGFjdGVkRm4oc2NvcGUpO1xuXG4gIGNvbnN0IGV2YWx1YXRlZFJ1bGVzOiBSdWxlRXZpZGVuY2VbXSA9IFtdO1xuICBjb25zdCBzZWxlY3RlZEJyYW5jaGVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGZvciAoY29uc3QgW2luZGV4LCBydWxlXSBvZiBydWxlcy5lbnRyaWVzKCkpIHtcbiAgICBjb25zdCBydWxlRXZpZGVuY2UgPSBldmFsdWF0ZVJ1bGUoc2NvcGUsIHJ1bGUsIGluZGV4LCBhdHRhY2hGbiwgZGV0YWNoRm4sIHZhbHVlRm4sIHJlZGFjdGVkRm4pO1xuICAgIGV2YWx1YXRlZFJ1bGVzLnB1c2gocnVsZUV2aWRlbmNlKTtcblxuICAgIGlmIChydWxlRXZpZGVuY2UubWF0Y2hlZCkge1xuICAgICAgc2VsZWN0ZWRCcmFuY2hlcy5wdXNoKHJ1bGUudGhlbik7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgZXZpZGVuY2U6IFNlbGVjdGlvbkV2aWRlbmNlID0ge1xuICAgIHJ1bGVzOiBldmFsdWF0ZWRSdWxlcyxcbiAgICBzZWxlY3RlZDogc2VsZWN0ZWRCcmFuY2hlcyxcbiAgfTtcbiAgcmV0dXJuIHsgYnJhbmNoZXM6IHNlbGVjdGVkQnJhbmNoZXMsIFtERUNJU0lPTl9SRVNVTFRdOiB0cnVlLCBldmlkZW5jZSB9O1xufVxuIl19
|
|
@@ -7,4 +7,4 @@
|
|
|
7
7
|
*/
|
|
8
8
|
// -- Symbol Brand (duck-type safety) -----------------------------------------
|
|
9
9
|
export const DECISION_RESULT = Symbol('footprint:decide:result');
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2RlY2lkZS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUF5Q0gsK0VBQStFO0FBRS9FLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogZGVjaWRlL3R5cGVzIC0tIFR5cGUgZGVmaW5pdGlvbnMgZm9yIHRoZSBkZWNpZGUoKS9zZWxlY3QoKSBkZWNpc2lvbiByZWFzb25pbmcgc3lzdGVtLlxuICpcbiAqIFR3byBgd2hlbmAgZm9ybWF0cyBpbiBvbmUgQVBJOlxuICogLSBGdW5jdGlvbjogKHMpID0+IHMuY3JlZGl0U2NvcmUgPiA3MDAgICAoYXV0by1jYXB0dXJlcyByZWFkcyB2aWEgdGVtcCByZWNvcmRlcilcbiAqIC0gRmlsdGVyOiAgIHsgY3JlZGl0U2NvcmU6IHsgZ3Q6IDcwMCB9IH0gKGNhcHR1cmVzIHJlYWRzICsgb3BlcmF0b3JzICsgdGhyZXNob2xkcylcbiAqL1xuXG4vLyAtLSBGaWx0ZXIgT3BlcmF0b3JzIChQcmlzbWEgbmFtaW5nLCA4IG9wZXJhdG9ycykgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qKiBNdWx0aXBsZSBvcGVyYXRvcnMgb24gdGhlIHNhbWUga2V5IGFyZSBBTkRlZCAoZS5nLiwgeyBndDogNSwgbHQ6IDEwIH0gbWVhbnMgNSA8IHZhbHVlIDwgMTApLiAqL1xuZXhwb3J0IHR5cGUgRmlsdGVyT3BzPFY+ID0ge1xuICAvKiogRXF1YWw6IHZhbHVlID09PSB0aHJlc2hvbGQgKi9cbiAgZXE/OiBWO1xuICAvKiogTm90IGVxdWFsOiB2YWx1ZSAhPT0gdGhyZXNob2xkICovXG4gIG5lPzogVjtcbiAgLyoqIEdyZWF0ZXIgdGhhbjogdmFsdWUgPiB0aHJlc2hvbGQgKi9cbiAgZ3Q/OiBWO1xuICAvKiogR3JlYXRlciB0aGFuIG9yIGVxdWFsOiB2YWx1ZSA+PSB0aHJlc2hvbGQgKi9cbiAgZ3RlPzogVjtcbiAgLyoqIExlc3MgdGhhbjogdmFsdWUgPCB0aHJlc2hvbGQgKi9cbiAgbHQ/OiBWO1xuICAvKiogTGVzcyB0aGFuIG9yIGVxdWFsOiB2YWx1ZSA8PSB0aHJlc2hvbGQgKi9cbiAgbHRlPzogVjtcbiAgLyoqIFZhbHVlIGlzIGluIGFycmF5ICovXG4gIGluPzogVltdO1xuICAvKiogVmFsdWUgaXMgTk9UIGluIGFycmF5ICovXG4gIG5vdEluPzogVltdO1xufTtcblxuLy8gLS0gV2hlcmVGaWx0ZXIgKGZsYXQga2V5cyBvbmx5LCBubyBuZXN0ZWQgdjEpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5leHBvcnQgdHlwZSBXaGVyZUZpbHRlcjxUIGV4dGVuZHMgb2JqZWN0ID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4+ID0ge1xuICBbSyBpbiBrZXlvZiBUXT86IEZpbHRlck9wczxUW0tdPjtcbn07XG5cbi8vIC0tIFJ1bGUgRGVmaW5pdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuZXhwb3J0IHR5cGUgV2hlbkNsYXVzZTxUIGV4dGVuZHMgb2JqZWN0ID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4+ID0gKChzOiBUKSA9PiBib29sZWFuKSB8IFdoZXJlRmlsdGVyPFQ+O1xuXG5leHBvcnQgaW50ZXJmYWNlIERlY2lkZVJ1bGU8VCBleHRlbmRzIG9iamVjdCA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB7XG4gIHdoZW46IFdoZW5DbGF1c2U8VD47XG4gIHRoZW46IHN0cmluZztcbiAgLyoqIEh1bWFuLXJlYWRhYmxlIHJ1bGUgbmFtZSBmb3IgbmFycmF0aXZlOiBcIkdvb2QgY3JlZGl0XCIgKi9cbiAgbGFiZWw/OiBzdHJpbmc7XG59XG5cbi8vIC0tIFN5bWJvbCBCcmFuZCAoZHVjay10eXBlIHNhZmV0eSkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuZXhwb3J0IGNvbnN0IERFQ0lTSU9OX1JFU1VMVCA9IFN5bWJvbCgnZm9vdHByaW50OmRlY2lkZTpyZXN1bHQnKTtcblxuLy8gLS0gRGVjaXNpb24gUmVzdWx0IChmcm9tIGRlY2lkZSgpKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVjaXNpb25SZXN1bHQge1xuICBicmFuY2g6IHN0cmluZztcbiAgW0RFQ0lTSU9OX1JFU1VMVF06IHRydWU7XG4gIGV2aWRlbmNlOiBEZWNpc2lvbkV2aWRlbmNlO1xufVxuXG4vLyAtLSBTZWxlY3Rpb24gUmVzdWx0IChmcm9tIHNlbGVjdCgpKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0aW9uUmVzdWx0IHtcbiAgYnJhbmNoZXM6IHN0cmluZ1tdO1xuICBbREVDSVNJT05fUkVTVUxUXTogdHJ1ZTtcbiAgZXZpZGVuY2U6IFNlbGVjdGlvbkV2aWRlbmNlO1xufVxuXG4vLyAtLSBFdmlkZW5jZSBUeXBlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmV4cG9ydCBpbnRlcmZhY2UgRnVuY3Rpb25SdWxlRXZpZGVuY2Uge1xuICB0eXBlOiAnZnVuY3Rpb24nO1xuICBydWxlSW5kZXg6IG51bWJlcjtcbiAgLyoqIFRoZSBicmFuY2ggSUQgdGhpcyBydWxlIG1hcHMgdG8uIFNlbGYtZGVzY3JpYmluZyDigJQgbm8gaW5kZXggY29ycmVsYXRpb24gbmVlZGVkLiAqL1xuICBicmFuY2g6IHN0cmluZztcbiAgbWF0Y2hlZDogYm9vbGVhbjtcbiAgbGFiZWw/
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2RlY2lkZS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUF5Q0gsK0VBQStFO0FBRS9FLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogZGVjaWRlL3R5cGVzIC0tIFR5cGUgZGVmaW5pdGlvbnMgZm9yIHRoZSBkZWNpZGUoKS9zZWxlY3QoKSBkZWNpc2lvbiByZWFzb25pbmcgc3lzdGVtLlxuICpcbiAqIFR3byBgd2hlbmAgZm9ybWF0cyBpbiBvbmUgQVBJOlxuICogLSBGdW5jdGlvbjogKHMpID0+IHMuY3JlZGl0U2NvcmUgPiA3MDAgICAoYXV0by1jYXB0dXJlcyByZWFkcyB2aWEgdGVtcCByZWNvcmRlcilcbiAqIC0gRmlsdGVyOiAgIHsgY3JlZGl0U2NvcmU6IHsgZ3Q6IDcwMCB9IH0gKGNhcHR1cmVzIHJlYWRzICsgb3BlcmF0b3JzICsgdGhyZXNob2xkcylcbiAqL1xuXG4vLyAtLSBGaWx0ZXIgT3BlcmF0b3JzIChQcmlzbWEgbmFtaW5nLCA4IG9wZXJhdG9ycykgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qKiBNdWx0aXBsZSBvcGVyYXRvcnMgb24gdGhlIHNhbWUga2V5IGFyZSBBTkRlZCAoZS5nLiwgeyBndDogNSwgbHQ6IDEwIH0gbWVhbnMgNSA8IHZhbHVlIDwgMTApLiAqL1xuZXhwb3J0IHR5cGUgRmlsdGVyT3BzPFY+ID0ge1xuICAvKiogRXF1YWw6IHZhbHVlID09PSB0aHJlc2hvbGQgKi9cbiAgZXE/OiBWO1xuICAvKiogTm90IGVxdWFsOiB2YWx1ZSAhPT0gdGhyZXNob2xkICovXG4gIG5lPzogVjtcbiAgLyoqIEdyZWF0ZXIgdGhhbjogdmFsdWUgPiB0aHJlc2hvbGQgKi9cbiAgZ3Q/OiBWO1xuICAvKiogR3JlYXRlciB0aGFuIG9yIGVxdWFsOiB2YWx1ZSA+PSB0aHJlc2hvbGQgKi9cbiAgZ3RlPzogVjtcbiAgLyoqIExlc3MgdGhhbjogdmFsdWUgPCB0aHJlc2hvbGQgKi9cbiAgbHQ/OiBWO1xuICAvKiogTGVzcyB0aGFuIG9yIGVxdWFsOiB2YWx1ZSA8PSB0aHJlc2hvbGQgKi9cbiAgbHRlPzogVjtcbiAgLyoqIFZhbHVlIGlzIGluIGFycmF5ICovXG4gIGluPzogVltdO1xuICAvKiogVmFsdWUgaXMgTk9UIGluIGFycmF5ICovXG4gIG5vdEluPzogVltdO1xufTtcblxuLy8gLS0gV2hlcmVGaWx0ZXIgKGZsYXQga2V5cyBvbmx5LCBubyBuZXN0ZWQgdjEpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5leHBvcnQgdHlwZSBXaGVyZUZpbHRlcjxUIGV4dGVuZHMgb2JqZWN0ID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4+ID0ge1xuICBbSyBpbiBrZXlvZiBUXT86IEZpbHRlck9wczxUW0tdPjtcbn07XG5cbi8vIC0tIFJ1bGUgRGVmaW5pdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuZXhwb3J0IHR5cGUgV2hlbkNsYXVzZTxUIGV4dGVuZHMgb2JqZWN0ID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4+ID0gKChzOiBUKSA9PiBib29sZWFuKSB8IFdoZXJlRmlsdGVyPFQ+O1xuXG5leHBvcnQgaW50ZXJmYWNlIERlY2lkZVJ1bGU8VCBleHRlbmRzIG9iamVjdCA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB7XG4gIHdoZW46IFdoZW5DbGF1c2U8VD47XG4gIHRoZW46IHN0cmluZztcbiAgLyoqIEh1bWFuLXJlYWRhYmxlIHJ1bGUgbmFtZSBmb3IgbmFycmF0aXZlOiBcIkdvb2QgY3JlZGl0XCIgKi9cbiAgbGFiZWw/OiBzdHJpbmc7XG59XG5cbi8vIC0tIFN5bWJvbCBCcmFuZCAoZHVjay10eXBlIHNhZmV0eSkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuZXhwb3J0IGNvbnN0IERFQ0lTSU9OX1JFU1VMVCA9IFN5bWJvbCgnZm9vdHByaW50OmRlY2lkZTpyZXN1bHQnKTtcblxuLy8gLS0gRGVjaXNpb24gUmVzdWx0IChmcm9tIGRlY2lkZSgpKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVjaXNpb25SZXN1bHQge1xuICBicmFuY2g6IHN0cmluZztcbiAgW0RFQ0lTSU9OX1JFU1VMVF06IHRydWU7XG4gIGV2aWRlbmNlOiBEZWNpc2lvbkV2aWRlbmNlO1xufVxuXG4vLyAtLSBTZWxlY3Rpb24gUmVzdWx0IChmcm9tIHNlbGVjdCgpKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0aW9uUmVzdWx0IHtcbiAgYnJhbmNoZXM6IHN0cmluZ1tdO1xuICBbREVDSVNJT05fUkVTVUxUXTogdHJ1ZTtcbiAgZXZpZGVuY2U6IFNlbGVjdGlvbkV2aWRlbmNlO1xufVxuXG4vLyAtLSBFdmlkZW5jZSBUeXBlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmV4cG9ydCBpbnRlcmZhY2UgRnVuY3Rpb25SdWxlRXZpZGVuY2Uge1xuICB0eXBlOiAnZnVuY3Rpb24nO1xuICBydWxlSW5kZXg6IG51bWJlcjtcbiAgLyoqIFRoZSBicmFuY2ggSUQgdGhpcyBydWxlIG1hcHMgdG8uIFNlbGYtZGVzY3JpYmluZyDigJQgbm8gaW5kZXggY29ycmVsYXRpb24gbmVlZGVkLiAqL1xuICBicmFuY2g6IHN0cmluZztcbiAgbWF0Y2hlZDogYm9vbGVhbjtcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIGlucHV0czogUmVhZElucHV0W107XG4gIC8qKlxuICAgKiBFcnJvciBtZXNzYWdlIGlmIHRoZSBgd2hlbmAgZnVuY3Rpb24gdGhyZXcgZHVyaW5nIGV2YWx1YXRpb24uXG4gICAqIFByZXNlbnQgb25seSB3aGVuIGFuIGV4Y2VwdGlvbiBvY2N1cnJlZDsgYG1hdGNoZWRgIGlzIGBmYWxzZWAgaW4gdGhhdCBjYXNlLlxuICAgKiBTdXJmYWNlcyB0aGUgZXJyb3IgZm9yIGRlYnVnZ2luZyByYXRoZXIgdGhhbiBzd2FsbG93aW5nIGl0IHNpbGVudGx5LlxuICAgKlxuICAgKiAqKlNlY3VyaXR5IG5vdGU6KiogRXJyb3IgbWVzc2FnZXMgZnJvbSB1c2VyLXByb3ZpZGVkIGB3aGVuYCBmdW5jdGlvbnMgYXJlIGNhcHR1cmVkXG4gICAqIGFzLWlzIGFuZCBhcmUgTk9UIGZpbHRlcmVkIHRocm91Z2ggdGhlIHJlZGFjdGlvbiBwb2xpY3kuIEF2b2lkIGluY2x1ZGluZyBzZW5zaXRpdmVcbiAgICogc2NvcGUgdmFsdWVzIGluIHRocm93biBlcnJvciBtZXNzYWdlcy5cbiAgICovXG4gIG1hdGNoRXJyb3I/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyUnVsZUV2aWRlbmNlIHtcbiAgdHlwZTogJ2ZpbHRlcic7XG4gIHJ1bGVJbmRleDogbnVtYmVyO1xuICAvKiogVGhlIGJyYW5jaCBJRCB0aGlzIHJ1bGUgbWFwcyB0by4gU2VsZi1kZXNjcmliaW5nIOKAlCBubyBpbmRleCBjb3JyZWxhdGlvbiBuZWVkZWQuICovXG4gIGJyYW5jaDogc3RyaW5nO1xuICBtYXRjaGVkOiBib29sZWFuO1xuICBsYWJlbD86IHN0cmluZztcbiAgY29uZGl0aW9uczogRmlsdGVyQ29uZGl0aW9uW107XG4gIC8qKlxuICAgKiBFcnJvciBtZXNzYWdlIGlmIHRoZSBmaWx0ZXIgZXZhbHVhdG9yIHRocmV3IGR1cmluZyBldmFsdWF0aW9uLlxuICAgKiBQcmVzZW50IG9ubHkgd2hlbiBhbiBleGNlcHRpb24gb2NjdXJyZWQ7IGBtYXRjaGVkYCBpcyBgZmFsc2VgIGluIHRoYXQgY2FzZS5cbiAgICogU3VyZmFjZXMgdGhlIGVycm9yIGZvciBkZWJ1Z2dpbmcgcmF0aGVyIHRoYW4gc3dhbGxvd2luZyBpdCBzaWxlbnRseS5cbiAgICpcbiAgICogKipTZWN1cml0eSBub3RlOioqIEVycm9yIG1lc3NhZ2VzIGZyb20gdXNlci1wcm92aWRlZCBgd2hlbmAgZnVuY3Rpb25zIGFyZSBjYXB0dXJlZFxuICAgKiBhcy1pcyBhbmQgYXJlIE5PVCBmaWx0ZXJlZCB0aHJvdWdoIHRoZSByZWRhY3Rpb24gcG9saWN5LiBBdm9pZCBpbmNsdWRpbmcgc2Vuc2l0aXZlXG4gICAqIHNjb3BlIHZhbHVlcyBpbiB0aHJvd24gZXJyb3IgbWVzc2FnZXMuXG4gICAqL1xuICBtYXRjaEVycm9yPzogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBSdWxlRXZpZGVuY2UgPSBGdW5jdGlvblJ1bGVFdmlkZW5jZSB8IEZpbHRlclJ1bGVFdmlkZW5jZTtcblxuZXhwb3J0IGludGVyZmFjZSBSZWFkSW5wdXQge1xuICBrZXk6IHN0cmluZztcbiAgdmFsdWVTdW1tYXJ5OiBzdHJpbmc7XG4gIHJlZGFjdGVkOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlckNvbmRpdGlvbiB7XG4gIGtleTogc3RyaW5nO1xuICBvcDogc3RyaW5nO1xuICAvKiogS2VwdCByYXcgZm9yIGF1ZGl0IGFjY3VyYWN5OyBlbmdpbmUvc2VyaWFsaXplciBtdXN0IGhhbmRsZSBzYWZlbHkuICovXG4gIHRocmVzaG9sZDogdW5rbm93bjtcbiAgYWN0dWFsU3VtbWFyeTogc3RyaW5nO1xuICByZXN1bHQ6IGJvb2xlYW47XG4gIHJlZGFjdGVkOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlY2lzaW9uRXZpZGVuY2Uge1xuICBydWxlczogUnVsZUV2aWRlbmNlW107XG4gIC8qKiBUaGUgYnJhbmNoIHNlbGVjdGVkLiBFcXVhbHMgYGRlZmF1bHRgIHdoZW4gbm8gcnVsZSBtYXRjaGVkLiAqL1xuICBjaG9zZW46IHN0cmluZztcbiAgLyoqIFRoZSBmYWxsYmFjayBicmFuY2ggcGFzc2VkIGFzIGRlZmF1bHRCcmFuY2guIEFsd2F5cyBzZXQuICovXG4gIGRlZmF1bHQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3Rpb25FdmlkZW5jZSB7XG4gIHJ1bGVzOiBSdWxlRXZpZGVuY2VbXTtcbiAgc2VsZWN0ZWQ6IHN0cmluZ1tdO1xufVxuIl19
|