footprintjs 9.44.3 → 9.45.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 -1
- package/dist/esm/lib/memory/DiagnosticCollector.js +2 -2
- package/dist/esm/lib/memory/SharedMemory.d.ts +11 -10
- package/dist/esm/lib/memory/SharedMemory.js +19 -20
- package/dist/esm/lib/memory/StageContext.d.ts +7 -1
- package/dist/esm/lib/memory/StageContext.js +27 -14
- package/dist/esm/lib/memory/TransactionBuffer.d.ts +4 -3
- package/dist/esm/lib/memory/TransactionBuffer.js +5 -4
- package/dist/esm/lib/memory/utils.d.ts +11 -7
- package/dist/esm/lib/memory/utils.js +46 -28
- package/dist/lib/memory/DiagnosticCollector.js +2 -2
- package/dist/lib/memory/SharedMemory.js +19 -20
- package/dist/lib/memory/StageContext.js +27 -14
- package/dist/lib/memory/TransactionBuffer.js +5 -4
- package/dist/lib/memory/utils.js +46 -28
- package/dist/types/lib/memory/SharedMemory.d.ts +11 -10
- package/dist/types/lib/memory/StageContext.d.ts +7 -1
- package/dist/types/lib/memory/TransactionBuffer.d.ts +4 -3
- package/dist/types/lib/memory/utils.d.ts +11 -7
- package/package.json +1 -1
|
@@ -10,6 +10,8 @@
|
|
|
10
10
|
* (`merge.ts`) at L0, and the verb law (`verbs.ts`) at L1 — `applySmartMerge`,
|
|
11
11
|
* `nextGeneration`, `applySmartMergeInto`, `dryFold`, `supersededByNextSet`.
|
|
12
12
|
* The log's scrub, `redactPatch`, moved to its owner `redaction.ts` in 9.33.0.
|
|
13
|
+
* The writers take an ADDRESS, a path prefix their caller computed, and never
|
|
14
|
+
* name one (C2: the engine decides where a stage writes, `StageContext · address`).
|
|
13
15
|
* Zero external dependencies.
|
|
14
16
|
*/
|
|
15
17
|
import { nativeGet as _get } from './pathOps.js';
|
|
@@ -18,52 +20,68 @@ export { deepSmartMerge } from './merge.js';
|
|
|
18
20
|
export { DELIM, normalisePath, pathSegments } from './paths.js';
|
|
19
21
|
export { applySmartMerge, applySmartMergeInto, dryFold, nextGeneration, supersededByNextSet } from './verbs.js';
|
|
20
22
|
/**
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
+
* The two places a value at `path` can sit: under `address` (`runPath`, absent
|
|
24
|
+
* for the root address `[]`) and at the root (`globalPath`). `address` is a
|
|
25
|
+
* path prefix the caller computed — for the engine, a frame's run namespace
|
|
26
|
+
* (`StageContext · address`, C2).
|
|
23
27
|
*/
|
|
24
|
-
export function getRunAndGlobalPaths(
|
|
28
|
+
export function getRunAndGlobalPaths(address = [], path = []) {
|
|
25
29
|
return {
|
|
26
|
-
runPath:
|
|
30
|
+
runPath: addressOf(address).length > 0 ? pathUnder(address, path) : undefined,
|
|
27
31
|
globalPath: [...path],
|
|
28
32
|
};
|
|
29
33
|
}
|
|
34
|
+
/** An address is an array. A run id still passed in its place (C2) is refused, never spread into its characters. */
|
|
35
|
+
function addressOf(address) {
|
|
36
|
+
if (Array.isArray(address))
|
|
37
|
+
return address;
|
|
38
|
+
throw new TypeError(`footprintjs: an address is an array path prefix, got ${address === null ? 'null' : typeof address}`);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* `address` then `path`, as one new array. An index loop, because the double
|
|
42
|
+
* spread `[...address, ...path]` costs twice as much and a frame builds one on
|
|
43
|
+
* every read it serves from live state (a fork child reading a root key).
|
|
44
|
+
*/
|
|
45
|
+
function pathUnder(address, path) {
|
|
46
|
+
const out = new Array(address.length + path.length);
|
|
47
|
+
for (let i = 0; i < address.length; i++)
|
|
48
|
+
out[i] = address[i];
|
|
49
|
+
for (let i = 0; i < path.length; i++)
|
|
50
|
+
out[address.length + i] = path[i];
|
|
51
|
+
return out;
|
|
52
|
+
}
|
|
30
53
|
/**
|
|
31
|
-
*
|
|
54
|
+
* The container at `address` + `path` inside `obj`, each missing one created
|
|
55
|
+
* on the way: the one AT the address from `defaultValues` when given, every
|
|
56
|
+
* other one empty. The one walk both nested writers share.
|
|
32
57
|
*/
|
|
33
|
-
|
|
34
|
-
const
|
|
35
|
-
const path = runPath || globalPath;
|
|
36
|
-
const pathCopy = [...path];
|
|
58
|
+
function containerAt(obj, address = [], path = [], defaultValues) {
|
|
59
|
+
const segments = pathUnder(addressOf(address), path);
|
|
37
60
|
let current = obj;
|
|
38
|
-
|
|
39
|
-
const key =
|
|
61
|
+
for (let i = 0; i < segments.length; i++) {
|
|
62
|
+
const key = segments[i];
|
|
40
63
|
if (!Object.prototype.hasOwnProperty.call(current, key)) {
|
|
41
|
-
current[key] =
|
|
64
|
+
current[key] = i === address.length - 1 && defaultValues ? defaultValues : {};
|
|
42
65
|
}
|
|
43
66
|
current = current[key];
|
|
44
67
|
}
|
|
45
|
-
current
|
|
68
|
+
return current;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Sets a value at a nested path under `address`, creating intermediate objects as needed.
|
|
72
|
+
*/
|
|
73
|
+
export function setNestedValue(obj, address, path, field, value, defaultValues) {
|
|
74
|
+
containerAt(obj, address, path, defaultValues)[field] = value;
|
|
46
75
|
return obj;
|
|
47
76
|
}
|
|
48
77
|
/**
|
|
49
|
-
* Deep-merges a value into the object at
|
|
78
|
+
* Deep-merges a value into the object at a nested path under `address`.
|
|
50
79
|
* - Arrays: concatenate
|
|
51
80
|
* - Objects: shallow merge at each level
|
|
52
81
|
* - Primitives: replace
|
|
53
82
|
*/
|
|
54
|
-
export function updateNestedValue(obj,
|
|
55
|
-
|
|
56
|
-
const path = runPath || globalPath;
|
|
57
|
-
const pathCopy = [...path];
|
|
58
|
-
let current = obj;
|
|
59
|
-
while (pathCopy.length > 0) {
|
|
60
|
-
const key = pathCopy.shift();
|
|
61
|
-
if (!Object.prototype.hasOwnProperty.call(current, key)) {
|
|
62
|
-
current[key] = key === runId && defaultValues ? defaultValues : {};
|
|
63
|
-
}
|
|
64
|
-
current = current[key];
|
|
65
|
-
}
|
|
66
|
-
updateValue(current, field, value);
|
|
83
|
+
export function updateNestedValue(obj, address, path, field, value, defaultValues) {
|
|
84
|
+
updateValue(containerAt(obj, address, path, defaultValues), field, value);
|
|
67
85
|
return obj;
|
|
68
86
|
}
|
|
69
87
|
/**
|
|
@@ -111,4 +129,4 @@ export function getNestedValue(root, path, field) {
|
|
|
111
129
|
}
|
|
112
130
|
return undefined;
|
|
113
131
|
}
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL21lbW9yeS91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7OztHQWFHO0FBRUgsT0FBTyxFQUFFLFNBQVMsSUFBSSxJQUFJLEVBQXdDLE1BQU0sY0FBYyxDQUFDO0FBSXZGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM1QyxPQUFPLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDaEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBSWhIOzs7R0FHRztBQUNILE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxLQUFjLEVBQUUsT0FBNEIsRUFBRTtJQUNqRixPQUFPO1FBQ0wsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7UUFDckQsVUFBVSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUM7S0FDdEIsQ0FBQztBQUNKLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQzVCLEdBQWlCLEVBQ2pCLEtBQWEsRUFDYixLQUFlLEVBQ2YsS0FBYSxFQUNiLEtBQVEsRUFDUixhQUF1QjtJQUV2QixNQUFNLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLG9CQUFvQixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNuRSxNQUFNLElBQUksR0FBRyxPQUFPLElBQUksVUFBVSxDQUFDO0lBQ25DLE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMs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LENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUM7SUFDakUsQ0FBQztTQUFNLENBQUM7UUFDTixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLENBQUM7QUFDSCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFDLElBQVMsRUFBRSxJQUF5QixFQUFFLEtBQXVCO0lBQzFGLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQy9ELElBQUksS0FBSyxLQUFLLFNBQVMsSUFBSSxJQUFJLEtBQUssU0FBUztRQUFFLE9BQU8sSUFBSSxDQUFDO0lBQzNELElBQUksSUFBSSxLQUFLLElBQUksSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ25HLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFDRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiB1dGlscy50cyDigJQgbmVzdGVkLW9iamVjdCBoZWxwZXJzIGZvciB0aGUgaGVhcCwgYW5kIHRoZSBtZW1vcnkgbGVhdmVzJyBvbmVcbiAqIHJlLWV4cG9ydCBzdXJmYWNlLlxuICpcbiAqIFRoZSBoZWxwZXJzIGhlcmUgKGBzZXROZXN0ZWRWYWx1ZWAsIGB1cGRhdGVOZXN0ZWRWYWx1ZWAsIGB1cGRhdGVWYWx1ZWAsXG4gKiBgZ2V0TmVzdGVkVmFsdWVgKSB3YWxrIGEgbmVzdGVkIG9iamVjdCBieSBwYXRoIHdpdGhcbiAqIHByb3RvdHlwZS1wb2xsdXRpb24gcHJvdGVjdGlvbi4gRXZlcnl0aGluZyBlbHNlIHRoaXMgZmlsZSB1c2VkIHRvIGhvbGQgaGFzIGFuXG4gKiBvd25lciBvZiBpdHMgb3duIGFuZCBpcyByZS1leHBvcnRlZCwgc28gbm8gaW1wb3J0ZXIgbW92ZWQ6IHRoZSBwYXRoIGNvZGVjXG4gKiAoYHBhdGhzLnRzYCksIHN0cnVjdHVyYWwgZXF1YWxpdHkgKGBlcXVhbGl0eS50c2ApIGFuZCB0aGUgdW5pb24gbWVyZ2VcbiAqIChgbWVyZ2UudHNgKSBhdCBMMCwgYW5kIHRoZSB2ZXJiIGxhdyAoYHZlcmJzLnRzYCkgYXQgTDEg4oCUIGBhcHBseVNtYXJ0TWVyZ2VgLFxuICogYG5leHRHZW5lcmF0aW9uYCwgYGFwcGx5U21hcnRNZXJnZUludG9gLCBgZHJ5Rm9sZGAsIGBzdXBlcnNlZGVkQnlOZXh0U2V0YC5cbiAqIFRoZSBsb2cncyBzY3J1YiwgYHJlZGFjdFBhdGNoYCwgbW92ZWQgdG8gaXRzIG93bmVyIGByZWRhY3Rpb24udHNgIGluIDkuMzMuMC5cbiAqIFplcm8gZXh0ZXJuYWwgZGVwZW5kZW5jaWVzLlxuICovXG5cbmltcG9ydCB7IG5hdGl2ZUdldCBhcyBfZ2V0LCBuYXRpdmVIYXMgYXMgX2hhcywgbmF0aXZlU2V0IGFzIF9zZXQgfSBmcm9tICcuL3BhdGhPcHMuanMnO1xuaW1wb3J0IHsgREVMSU0gfSBmcm9tICcuL3BhdGhzLmpzJztcbmltcG9ydCB0eXBlIHsgTWVtb3J5UGF0Y2ggfSBmcm9tICcuL3R5cGVzLmpzJztcblxuZXhwb3J0IHsgZGVlcEVxdWFsIH0gZnJvbSAnLi9lcXVhbGl0eS5qcyc7XG5leHBvcnQgeyBkZWVwU21hcnRNZXJnZSB9IGZyb20gJy4vbWVyZ2UuanMnO1xuZXhwb3J0IHsgREVMSU0sIG5vcm1hbGlzZVBhdGgsIHBhdGhTZWdtZW50cyB9IGZyb20gJy4vcGF0aHMuanMnO1xuZXhwb3J0IHsgYXBwbHlTbWFydE1lcmdlLCBhcHBseVNtYXJ0TWVyZ2VJbnRvLCBkcnlGb2xkLCBuZXh0R2VuZXJhdGlvbiwgc3VwZXJzZWRlZEJ5TmV4dFNldCB9IGZyb20gJy4vdmVyYnMuanMnO1xuXG50eXBlIE5lc3RlZE9iamVjdCA9IHsgW2tleTogc3RyaW5nXTogYW55IH07XG5cbi8qKlxuICogUmVzb2x2ZXMgcnVuLW5hbWVzcGFjZWQgYW5kIGdsb2JhbCBwYXRocy5cbiAqIEVhY2ggZmxvd2NoYXJ0IGV4ZWN1dGlvbiAocnVuKSBzdG9yZXMgZGF0YSB1bmRlciBgcnVucy97aWR9L2AgdG8gcHJldmVudCBjb2xsaXNpb25zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UnVuQW5kR2xvYmFsUGF0aHMocnVuSWQ/OiBzdHJpbmcsIHBhdGg6IChzdHJpbmcgfCBudW1iZXIpW10gPSBbXSkge1xuICByZXR1cm4ge1xuICAgIHJ1blBhdGg6IHJ1bklkID8gWydydW5zJywgcnVuSWQsIC4uLnBhdGhdIDogdW5kZWZpbmVkLFxuICAgIGdsb2JhbFBhdGg6IFsuLi5wYXRoXSxcbiAgfTtcbn1cblxuLyoqXG4gKiBTZXRzIGEgdmFsdWUgYXQgYSBuZXN0ZWQgcGF0aCwgY3JlYXRpbmcgaW50ZXJtZWRpYXRlIG9iamVjdHMgYXMgbmVlZGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0TmVzdGVkVmFsdWU8VD4oXG4gIG9iajogTmVzdGVkT2JqZWN0LFxuICBydW5JZDogc3RyaW5nLFxuICBfcGF0aDogc3RyaW5nW10sXG4gIGZpZWxkOiBzdHJpbmcsXG4gIHZhbHVlOiBULFxuICBkZWZhdWx0VmFsdWVzPzogdW5rbm93bixcbik6IE5lc3RlZE9iamVjdCB7XG4gIGNvbnN0IHsgcnVuUGF0aCwgZ2xvYmFsUGF0aCB9ID0gZ2V0UnVuQW5kR2xvYmFsUGF0aHMocnVuSWQsIF9wYXRoKTtcbiAgY29uc3QgcGF0aCA9IHJ1blBhdGggfHwgZ2xvYmFsUGF0aDtcbiAgY29uc3QgcGF0aENvcHkgPSBbLi4ucGF0aF07XG4gIGxldCBjdXJyZW50OiBOZXN0ZWRPYmplY3QgPSBvYmo7XG4gIHdoaWxlIChwYXRoQ29weS5sZW5ndGggPiAwKSB7XG4gICAgY29uc3Qga2V5ID0gcGF0aENvcHkuc2hpZnQoKSBhcyBzdHJpbmc7XG4gICAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY3VycmVudCwga2V5KSkge1xuICAgICAgY3VycmVudFtrZXldID0ga2V5ID09PSBydW5JZCAmJiBkZWZhdWx0VmFsdWVzID8gZGVmYXVsdFZhbHVlcyA6IHt9O1xuICAgIH1cbiAgICBjdXJyZW50ID0gY3VycmVudFtrZXldO1xuICB9XG4gIGN1cnJlbnRbZmllbGRdID0gdmFsdWU7XG4gIHJldHVybiBvYmo7XG59XG5cbi8qKlxuICogRGVlcC1tZXJnZXMgYSB2YWx1ZSBpbnRvIHRoZSBvYmplY3QgYXQgdGhlIHNwZWNpZmllZCBwYXRoLlxuICogLSBBcnJheXM6IGNvbmNhdGVuYXRlXG4gKiAtIE9iamVjdHM6IHNoYWxsb3cgbWVyZ2UgYXQgZWFjaCBsZXZlbFxuICogLSBQcmltaXRpdmVzOiByZXBsYWNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVOZXN0ZWRWYWx1ZTxUPihcbiAgb2JqOiBhbnksXG4gIHJ1bklkOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIF9wYXRoOiAoc3RyaW5nIHwgbnVtYmVyKVtdLFxuICBmaWVsZDogc3RyaW5nIHwgbnVtYmVyLFxuICB2YWx1ZTogVCxcbiAgZGVmYXVsdFZhbHVlcz86IHVua25vd24sXG4pOiBhbnkge1xuICBjb25zdCB7IHJ1blBhdGgsIGdsb2JhbFBhdGggfSA9IGdldFJ1bkFuZEdsb2JhbFBhdGhzKHJ1bklkLCBfcGF0aCk7XG4gIGNvbnN0IHBhdGggPSBydW5QYXRoIHx8IGdsb2JhbFBhdGg7XG4gIGNvbnN0IHBhdGhDb3B5ID0gWy4uLnBhdGhdO1xuICBsZXQgY3VycmVudDogTmVzdGVkT2JqZWN0ID0gb2JqO1xuICB3aGlsZSAocGF0aENvcHkubGVuZ3RoID4gMCkge1xuICAgIGNvbnN0IGtleSA9IHBhdGhDb3B5LnNoaWZ0KCkgYXMgc3RyaW5nO1xuICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGN1cnJlbnQsIGtleSkpIHtcbiAgICAgIGN1cnJlbnRba2V5XSA9IGtleSA9PT0gcnVuSWQgJiYgZGVmYXVsdFZhbHVlcyA/IGRlZmF1bHRWYWx1ZXMgOiB7fTtcbiAgICB9XG4gICAgY3VycmVudCA9IGN1cnJlbnRba2V5XTtcbiAgfVxuICB1cGRhdGVWYWx1ZShjdXJyZW50LCBmaWVsZCwgdmFsdWUpO1xuICByZXR1cm4gb2JqO1xufVxuXG4vKipcbiAqIEluLXBsYWNlIHZhbHVlIHVwZGF0ZSB3aXRoIG1lcmdlIHNlbWFudGljcy5cbiAqIC0gQXJyYXlzIChub24tZW1wdHkpOiBjb25jYXRlbmF0ZSBvbnRvIGV4aXN0aW5nXG4gKiAtIEFycmF5cyAoZW1wdHkpOiAgICAgZGlyZWN0IHJlcGxhY2Ug4oCUIHdyaXRpbmcgYFtdYCBjbGVhcnMgdGhlIGZpZWxkXG4gKiAtIE9iamVjdHMgKG5vbi1lbXB0eSk6IHNoYWxsb3cgbWVyZ2UgKHNwcmVhZClcbiAqIC0gT2JqZWN0cyAoZW1wdHkpOiAgICBkaXJlY3QgcmVwbGFjZSDigJQgd3JpdGluZyBge31gIGNsZWFycyB0aGUgZmllbGRcbiAqIC0gUHJpbWl0aXZlczogZGlyZWN0IGFzc2lnbm1lbnRcbiAqXG4gKiBOb3RlIG9uIGVtcHR5IGFycmF5czogYm90aCBgdmFsdWUgJiYgQXJyYXkuaXNBcnJheSh2YWx1ZSlgIGFuZFxuICogYEFycmF5LmlzQXJyYXkodmFsdWUpYCBldmFsdWF0ZSB0aGUgc2FtZSBmb3IgYXJyYXlzIOKAlCBgW11gIGlzIHRydXRoeSBpblxuICogSmF2YVNjcmlwdCwgc28gdGhlIGAmJmAgZ3VhcmQgd2FzIG5ldmVyIHRoZSBpc3N1ZS4gVGhlIGFjdHVhbCBidWcgd2FzIHRoZVxuICogY29uY2F0IHBhdGg6IGBbLi4uY3VyLCAuLi5bXV1gIHNpbGVudGx5IHJldHVybmVkIGBjdXJgIHVuY2hhbmdlZCB3aGVuIGB2YWx1ZWBcbiAqIHdhcyBgW11gLCBtYWtpbmcgYHVwZGF0ZVZhbHVlKG9iaiwgJ3RhZ3MnLCBbXSlgIGEgbm8tb3AgaW5zdGVhZCBvZiBhIGNsZWFyLlxuICogVGhlIGZpeCBpcyB0aGUgZXhwbGljaXQgYHZhbHVlLmxlbmd0aCA9PT0gMGAgZWFybHktcmV0dXJuIGJyYW5jaC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZVZhbHVlKG9iamVjdDogYW55LCBrZXk6IHN0cmluZyB8IG51bWJlciwgdmFsdWU6IGFueSk6IHZvaWQge1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICBpZiAodmFsdWUubGVuZ3RoID09PSAwKSB7XG4gICAgICBvYmplY3Rba2V5XSA9IHZhbHVlOyAvLyBjbGVhcjogW10gcmVwbGFjZXMgd2hhdGV2ZXIgd2FzIHRoZXJlXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGN1ciA9IG9iamVjdFtrZXldIGFzIGFueTtcbiAgICAgIG9iamVjdFtrZXldID0gY3VyID09PSB1bmRlZmluZWQgPyB2YWx1ZSA6IFsuLi5jdXIsIC4uLnZhbHVlXTtcbiAgICB9XG4gIH0gZWxzZSBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiBPYmplY3Qua2V5cyh2YWx1ZSkubGVuZ3RoKSB7XG4gICAgY29uc3QgY3VyID0gb2JqZWN0W2tleV0gYXMgYW55O1xuICAgIG9iamVjdFtrZXldID0gY3VyID09PSB1bmRlZmluZWQgPyB2YWx1ZSA6IHsgLi4uY3VyLCAuLi52YWx1ZSB9O1xuICB9IGVsc2Uge1xuICAgIG9iamVjdFtrZXldID0gdmFsdWU7XG4gIH1cbn1cblxuLyoqXG4gKiBHZXRzIGEgdmFsdWUgYXQgYSBuZXN0ZWQgcGF0aCB3aXRoIHByb3RvdHlwZS1wb2xsdXRpb24gcHJvdGVjdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE5lc3RlZFZhbHVlKHJvb3Q6IGFueSwgcGF0aDogKHN0cmluZyB8IG51bWJlcilbXSwgZmllbGQ/OiBzdHJpbmcgfCBudW1iZXIpOiBhbnkge1xuICBjb25zdCBub2RlID0gcGF0aCAmJiBwYXRoLmxlbmd0aCA+IDAgPyBfZ2V0KHJvb3QsIHBhdGgpIDogcm9vdDtcbiAgaWYgKGZpZWxkID09PSB1bmRlZmluZWQgfHwgbm9kZSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gbm9kZTtcbiAgaWYgKG5vZGUgIT09IG51bGwgJiYgdHlwZW9mIG5vZGUgPT09ICdvYmplY3QnICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChub2RlLCBmaWVsZCkpIHtcbiAgICByZXR1cm4gbm9kZVtmaWVsZF07XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cbiJdfQ==
|
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL21lbW9yeS91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsU0FBUyxJQUFJLElBQUksRUFBd0MsTUFBTSxjQUFjLENBQUM7QUFJdkYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFJaEg7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsVUFBNkIsRUFBRSxFQUFFLE9BQTRCLEVBQUU7SUFDbEcsT0FBTztRQUNMLE9BQU8sRUFBRSxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUM3RSxVQUFVLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQztLQUN0QixDQUFDO0FBQ0osQ0FBQztBQUVELG9IQUFvSDtBQUNwSCxTQUFTLFNBQVMsQ0FBQyxPQUEwQjtJQUMzQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO1FBQUUsT0FBTyxPQUFPLENBQUM7SUFDM0MsTUFBTSxJQUFJLFNBQVMsQ0FDakIsd0RBQXdELE9BQU8sS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxPQUFPLEVBQUUsQ0FDckcsQ0FBQztBQUNKLENBQUM7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WUFDL0IsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDO1FBQy9ELENBQUM7SUFDSCxDQUFDO1NBQU0sSUFBSSxLQUFLLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDM0UsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBUSxDQUFDO1FBQy9CLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQztJQUNqRSxDQUFDO1NBQU0sQ0FBQztRQUNOLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDdEIsQ0FBQztBQUNILENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQUMsSUFBUyxFQUFFLElBQXlCLEVBQUUsS0FBdUI7SUFDMUYsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDL0QsSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLElBQUksS0FBSyxTQUFTO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDM0QsSUFBSSxJQUFJLEtBQUssSUFBSSxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDbkcsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUNELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIHV0aWxzLnRzIOKAlCBuZXN0ZWQtb2JqZWN0IGhlbHBlcnMgZm9yIHRoZSBoZWFwLCBhbmQgdGhlIG1lbW9yeSBsZWF2ZXMnIG9uZVxuICogcmUtZXhwb3J0IHN1cmZhY2UuXG4gKlxuICogVGhlIGhlbHBlcnMgaGVyZSAoYHNldE5lc3RlZFZhbHVlYCwgYHVwZGF0ZU5lc3RlZFZhbHVlYCwgYHVwZGF0ZVZhbHVlYCxcbiAqIGBnZXROZXN0ZWRWYWx1ZWApIHdhbGsgYSBuZXN0ZWQgb2JqZWN0IGJ5IHBhdGggd2l0aFxuICogcHJvdG90eXBlLXBvbGx1dGlvbiBwcm90ZWN0aW9uLiBFdmVyeXRoaW5nIGVsc2UgdGhpcyBmaWxlIHVzZWQgdG8gaG9sZCBoYXMgYW5cbiAqIG93bmVyIG9mIGl0cyBvd24gYW5kIGlzIHJlLWV4cG9ydGVkLCBzbyBubyBpbXBvcnRlciBtb3ZlZDogdGhlIHBhdGggY29kZWNcbiAqIChgcGF0aHMudHNgKSwgc3RydWN0dXJhbCBlcXVhbGl0eSAoYGVxdWFsaXR5LnRzYCkgYW5kIHRoZSB1bmlvbiBtZXJnZVxuICogKGBtZXJnZS50c2ApIGF0IEwwLCBhbmQgdGhlIHZlcmIgbGF3IChgdmVyYnMudHNgKSBhdCBMMSDigJQgYGFwcGx5U21hcnRNZXJnZWAsXG4gKiBgbmV4dEdlbmVyYXRpb25gLCBgYXBwbHlTbWFydE1lcmdlSW50b2AsIGBkcnlGb2xkYCwgYHN1cGVyc2VkZWRCeU5leHRTZXRgLlxuICogVGhlIGxvZydzIHNjcnViLCBgcmVkYWN0UGF0Y2hgLCBtb3ZlZCB0byBpdHMgb3duZXIgYHJlZGFjdGlvbi50c2AgaW4gOS4zMy4wLlxuICogVGhlIHdyaXRlcnMgdGFrZSBhbiBBRERSRVNTLCBhIHBhdGggcHJlZml4IHRoZWlyIGNhbGxlciBjb21wdXRlZCwgYW5kIG5ldmVyXG4gKiBuYW1lIG9uZSAoQzI6IHRoZSBlbmdpbmUgZGVjaWRlcyB3aGVyZSBhIHN0YWdlIHdyaXRlcywgYFN0YWdlQ29udGV4dCDCtyBhZGRyZXNzYCkuXG4gKiBaZXJvIGV4dGVybmFsIGRlcGVuZGVuY2llcy5cbiAqL1xuXG5pbXBvcnQgeyBuYXRpdmVHZXQgYXMgX2dldCwgbmF0aXZlSGFzIGFzIF9oYXMsIG5hdGl2ZVNldCBhcyBfc2V0IH0gZnJvbSAnLi9wYXRoT3BzLmpzJztcbmltcG9ydCB7IERFTElNIH0gZnJvbSAnLi9wYXRocy5qcyc7XG5pbXBvcnQgdHlwZSB7IE1lbW9yeVBhdGNoIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbmV4cG9ydCB7IGRlZXBFcXVhbCB9IGZyb20gJy4vZXF1YWxpdHkuanMnO1xuZXhwb3J0IHsgZGVlcFNtYXJ0TWVyZ2UgfSBmcm9tICcuL21lcmdlLmpzJztcbmV4cG9ydCB7IERFTElNLCBub3JtYWxpc2VQYXRoLCBwYXRoU2VnbWVudHMgfSBmcm9tICcuL3BhdGhzLmpzJztcbmV4cG9ydCB7IGFwcGx5U21hcnRNZXJnZSwgYXBwbHlTbWFydE1lcmdlSW50bywgZHJ5Rm9sZCwgbmV4dEdlbmVyYXRpb24sIHN1cGVyc2VkZWRCeU5leHRTZXQgfSBmcm9tICcuL3ZlcmJzLmpzJztcblxudHlwZSBOZXN0ZWRPYmplY3QgPSB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xuXG4vKipcbiAqIFRoZSB0d28gcGxhY2VzIGEgdmFsdWUgYXQgYHBhdGhgIGNhbiBzaXQ6IHVuZGVyIGBhZGRyZXNzYCAoYHJ1blBhdGhgLCBhYnNlbnRcbiAqIGZvciB0aGUgcm9vdCBhZGRyZXNzIGBbXWApIGFuZCBhdCB0aGUgcm9vdCAoYGdsb2JhbFBhdGhgKS4gYGFkZHJlc3NgIGlzIGFcbiAqIHBhdGggcHJlZml4IHRoZSBjYWxsZXIgY29tcHV0ZWQg4oCUIGZvciB0aGUgZW5naW5lLCBhIGZyYW1lJ3MgcnVuIG5hbWVzcGFjZVxuICogKGBTdGFnZUNvbnRleHQgwrcgYWRkcmVzc2AsIEMyKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJ1bkFuZEdsb2JhbFBhdGhzKGFkZHJlc3M6IHJlYWRvbmx5IHN0cmluZ1tdID0gW10sIHBhdGg6IChzdHJpbmcgfCBudW1iZXIpW10gPSBbXSkge1xuICByZXR1cm4ge1xuICAgIHJ1blBhdGg6IGFkZHJlc3NPZihhZGRyZXNzKS5sZW5ndGggPiAwID8gcGF0aFVuZGVyKGFkZHJlc3MsIHBhdGgpIDogdW5kZWZpbmVkLFxuICAgIGdsb2JhbFBhdGg6IFsuLi5wYXRoXSxcbiAgfTtcbn1cblxuLyoqIEFuIGFkZHJlc3MgaXMgYW4gYXJyYXkuIEEgcnVuIGlkIHN0aWxsIHBhc3NlZCBpbiBpdHMgcGxhY2UgKEMyKSBpcyByZWZ1c2VkLCBuZXZlciBzcHJlYWQgaW50byBpdHMgY2hhcmFjdGVycy4gKi9cbmZ1bmN0aW9uIGFkZHJlc3NPZihhZGRyZXNzOiByZWFkb25seSBzdHJpbmdbXSk6IHJlYWRvbmx5IHN0cmluZ1tdIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoYWRkcmVzcykpIHJldHVybiBhZGRyZXNzO1xuICB0aHJvdyBuZXcgVHlwZUVycm9yKFxuICAgIGBmb290cHJpbnRqczogYW4gYWRkcmVzcyBpcyBhbiBhcnJheSBwYXRoIHByZWZpeCwgZ290ICR7YWRkcmVzcyA9PT0gbnVsbCA/ICdudWxsJyA6IHR5cGVvZiBhZGRyZXNzfWAsXG4gICk7XG59XG5cbi8qKlxuICogYGFkZHJlc3NgIHRoZW4gYHBhdGhgLCBhcyBvbmUgbmV3IGFycmF5LiBBbiBpbmRleCBsb29wLCBiZWNhdXNlIHRoZSBkb3VibGVcbiAqIHNwcmVhZCBgWy4uLmFkZHJlc3MsIC4uLnBhdGhdYCBjb3N0cyB0d2ljZSBhcyBtdWNoIGFuZCBhIGZyYW1lIGJ1aWxkcyBvbmUgb25cbiAqIGV2ZXJ5IHJlYWQgaXQgc2VydmVzIGZyb20gbGl2ZSBzdGF0ZSAoYSBmb3JrIGNoaWxkIHJlYWRpbmcgYSByb290IGtleSkuXG4gKi9cbmZ1bmN0aW9uIHBhdGhVbmRlcihhZGRyZXNzOiByZWFkb25seSBzdHJpbmdbXSwgcGF0aDogcmVhZG9ubHkgKHN0cmluZyB8IG51bWJlcilbXSk6IChzdHJpbmcgfCBudW1iZXIpW10ge1xuICBjb25zdCBvdXQgPSBuZXcgQXJyYXk8c3RyaW5nIHwgbnVtYmVyPihhZGRyZXNzLmxlbmd0aCArIHBhdGgubGVuZ3RoKTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBhZGRyZXNzLmxlbmd0aDsgaSsrKSBvdXRbaV0gPSBhZGRyZXNzW2ldO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IHBhdGgubGVuZ3RoOyBpKyspIG91dFthZGRyZXNzLmxlbmd0aCArIGldID0gcGF0aFtpXTtcbiAgcmV0dXJuIG91dDtcbn1cblxuLyoqXG4gKiBUaGUgY29udGFpbmVyIGF0IGBhZGRyZXNzYCArIGBwYXRoYCBpbnNpZGUgYG9iamAsIGVhY2ggbWlzc2luZyBvbmUgY3JlYXRlZFxuICogb24gdGhlIHdheTogdGhlIG9uZSBBVCB0aGUgYWRkcmVzcyBmcm9tIGBkZWZhdWx0VmFsdWVzYCB3aGVuIGdpdmVuLCBldmVyeVxuICogb3RoZXIgb25lIGVtcHR5LiBUaGUgb25lIHdhbGsgYm90aCBuZXN0ZWQgd3JpdGVycyBzaGFyZS5cbiAqL1xuZnVuY3Rpb24gY29udGFpbmVyQXQoXG4gIG9iajogTmVzdGVkT2JqZWN0LFxuICBhZGRyZXNzOiByZWFkb25seSBzdHJpbmdbXSA9IFtdLFxuICBwYXRoOiByZWFkb25seSAoc3RyaW5nIHwgbnVtYmVyKVtdID0gW10sXG4gIGRlZmF1bHRWYWx1ZXM/OiB1bmtub3duLFxuKTogTmVzdGVkT2JqZWN0IHtcbiAgY29uc3Qgc2VnbWVudHMgPSBwYXRoVW5kZXIoYWRkcmVzc09mKGFkZHJlc3MpLCBwYXRoKTtcbiAgbGV0IGN1cnJlbnQgPSBvYmo7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc2VnbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBrZXkgPSBzZWdtZW50c1tpXTtcbiAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChjdXJyZW50LCBrZXkpKSB7XG4gICAgICBjdXJyZW50W2tleV0gPSBpID09PSBhZGRyZXNzLmxlbmd0aCAtIDEgJiYgZGVmYXVsdFZhbHVlcyA/IGRlZmF1bHRWYWx1ZXMgOiB7fTtcbiAgICB9XG4gICAgY3VycmVudCA9IGN1cnJlbnRba2V5XTtcbiAgfVxuICByZXR1cm4gY3VycmVudDtcbn1cblxuLyoqXG4gKiBTZXRzIGEgdmFsdWUgYXQgYSBuZXN0ZWQgcGF0aCB1bmRlciBgYWRkcmVzc2AsIGNyZWF0aW5nIGludGVybWVkaWF0ZSBvYmplY3RzIGFzIG5lZWRlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldE5lc3RlZFZhbHVlPFQ+KFxuICBvYmo6IE5lc3RlZE9iamVjdCxcbiAgYWRkcmVzczogcmVhZG9ubHkgc3RyaW5nW10sXG4gIHBhdGg6IHN0cmluZ1tdLFxuICBmaWVsZDogc3RyaW5nLFxuICB2YWx1ZTogVCxcbiAgZGVmYXVsdFZhbHVlcz86IHVua25vd24sXG4pOiBOZXN0ZWRPYmplY3Qge1xuICBjb250YWluZXJBdChvYmosIGFkZHJlc3MsIHBhdGgsIGRlZmF1bHRWYWx1ZXMpW2ZpZWxkXSA9IHZhbHVlO1xuICByZXR1cm4gb2JqO1xufVxuXG4vKipcbiAqIERlZXAtbWVyZ2VzIGEgdmFsdWUgaW50byB0aGUgb2JqZWN0IGF0IGEgbmVzdGVkIHBhdGggdW5kZXIgYGFkZHJlc3NgLlxuICogLSBBcnJheXM6IGNvbmNhdGVuYXRlXG4gKiAtIE9iamVjdHM6IHNoYWxsb3cgbWVyZ2UgYXQgZWFjaCBsZXZlbFxuICogLSBQcmltaXRpdmVzOiByZXBsYWNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVOZXN0ZWRWYWx1ZTxUPihcbiAgb2JqOiBhbnksXG4gIGFkZHJlc3M6IHJlYWRvbmx5IHN0cmluZ1tdLFxuICBwYXRoOiAoc3RyaW5nIHwgbnVtYmVyKVtdLFxuICBmaWVsZDogc3RyaW5nIHwgbnVtYmVyLFxuICB2YWx1ZTogVCxcbiAgZGVmYXVsdFZhbHVlcz86IHVua25vd24sXG4pOiBhbnkge1xuICB1cGRhdGVWYWx1ZShjb250YWluZXJBdChvYmosIGFkZHJlc3MsIHBhdGgsIGRlZmF1bHRWYWx1ZXMpLCBmaWVsZCwgdmFsdWUpO1xuICByZXR1cm4gb2JqO1xufVxuXG4vKipcbiAqIEluLXBsYWNlIHZhbHVlIHVwZGF0ZSB3aXRoIG1lcmdlIHNlbWFudGljcy5cbiAqIC0gQXJyYXlzIChub24tZW1wdHkpOiBjb25jYXRlbmF0ZSBvbnRvIGV4aXN0aW5nXG4gKiAtIEFycmF5cyAoZW1wdHkpOiAgICAgZGlyZWN0IHJlcGxhY2Ug4oCUIHdyaXRpbmcgYFtdYCBjbGVhcnMgdGhlIGZpZWxkXG4gKiAtIE9iamVjdHMgKG5vbi1lbXB0eSk6IHNoYWxsb3cgbWVyZ2UgKHNwcmVhZClcbiAqIC0gT2JqZWN0cyAoZW1wdHkpOiAgICBkaXJlY3QgcmVwbGFjZSDigJQgd3JpdGluZyBge31gIGNsZWFycyB0aGUgZmllbGRcbiAqIC0gUHJpbWl0aXZlczogZGlyZWN0IGFzc2lnbm1lbnRcbiAqXG4gKiBOb3RlIG9uIGVtcHR5IGFycmF5czogYm90aCBgdmFsdWUgJiYgQXJyYXkuaXNBcnJheSh2YWx1ZSlgIGFuZFxuICogYEFycmF5LmlzQXJyYXkodmFsdWUpYCBldmFsdWF0ZSB0aGUgc2FtZSBmb3IgYXJyYXlzIOKAlCBgW11gIGlzIHRydXRoeSBpblxuICogSmF2YVNjcmlwdCwgc28gdGhlIGAmJmAgZ3VhcmQgd2FzIG5ldmVyIHRoZSBpc3N1ZS4gVGhlIGFjdHVhbCBidWcgd2FzIHRoZVxuICogY29uY2F0IHBhdGg6IGBbLi4uY3VyLCAuLi5bXV1gIHNpbGVudGx5IHJldHVybmVkIGBjdXJgIHVuY2hhbmdlZCB3aGVuIGB2YWx1ZWBcbiAqIHdhcyBgW11gLCBtYWtpbmcgYHVwZGF0ZVZhbHVlKG9iaiwgJ3RhZ3MnLCBbXSlgIGEgbm8tb3AgaW5zdGVhZCBvZiBhIGNsZWFyLlxuICogVGhlIGZpeCBpcyB0aGUgZXhwbGljaXQgYHZhbHVlLmxlbmd0aCA9PT0gMGAgZWFybHktcmV0dXJuIGJyYW5jaC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZVZhbHVlKG9iamVjdDogYW55LCBrZXk6IHN0cmluZyB8IG51bWJlciwgdmFsdWU6IGFueSk6IHZvaWQge1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICBpZiAodmFsdWUubGVuZ3RoID09PSAwKSB7XG4gICAgICBvYmplY3Rba2V5XSA9IHZhbHVlOyAvLyBjbGVhcjogW10gcmVwbGFjZXMgd2hhdGV2ZXIgd2FzIHRoZXJlXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGN1ciA9IG9iamVjdFtrZXldIGFzIGFueTtcbiAgICAgIG9iamVjdFtrZXldID0gY3VyID09PSB1bmRlZmluZWQgPyB2YWx1ZSA6IFsuLi5jdXIsIC4uLnZhbHVlXTtcbiAgICB9XG4gIH0gZWxzZSBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiBPYmplY3Qua2V5cyh2YWx1ZSkubGVuZ3RoKSB7XG4gICAgY29uc3QgY3VyID0gb2JqZWN0W2tleV0gYXMgYW55O1xuICAgIG9iamVjdFtrZXldID0gY3VyID09PSB1bmRlZmluZWQgPyB2YWx1ZSA6IHsgLi4uY3VyLCAuLi52YWx1ZSB9O1xuICB9IGVsc2Uge1xuICAgIG9iamVjdFtrZXldID0gdmFsdWU7XG4gIH1cbn1cblxuLyoqXG4gKiBHZXRzIGEgdmFsdWUgYXQgYSBuZXN0ZWQgcGF0aCB3aXRoIHByb3RvdHlwZS1wb2xsdXRpb24gcHJvdGVjdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE5lc3RlZFZhbHVlKHJvb3Q6IGFueSwgcGF0aDogKHN0cmluZyB8IG51bWJlcilbXSwgZmllbGQ/OiBzdHJpbmcgfCBudW1iZXIpOiBhbnkge1xuICBjb25zdCBub2RlID0gcGF0aCAmJiBwYXRoLmxlbmd0aCA+IDAgPyBfZ2V0KHJvb3QsIHBhdGgpIDogcm9vdDtcbiAgaWYgKGZpZWxkID09PSB1bmRlZmluZWQgfHwgbm9kZSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gbm9kZTtcbiAgaWYgKG5vZGUgIT09IG51bGwgJiYgdHlwZW9mIG5vZGUgPT09ICdvYmplY3QnICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChub2RlLCBmaWVsZCkpIHtcbiAgICByZXR1cm4gbm9kZVtmaWVsZF07XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cbiJdfQ==
|
|
@@ -36,7 +36,7 @@ class DiagnosticCollector {
|
|
|
36
36
|
write(channel, key, value, path, replace) {
|
|
37
37
|
const kept = this.retain(channel, path, key, value);
|
|
38
38
|
const write = replace ? utils_js_1.setNestedValue : utils_js_1.updateNestedValue;
|
|
39
|
-
write(this[BAG_FIELDS[channel]],
|
|
39
|
+
write(this[BAG_FIELDS[channel]], [], path, key, kept);
|
|
40
40
|
return kept;
|
|
41
41
|
}
|
|
42
42
|
/** @internal Add once, returning the retained incoming value for emit.
|
|
@@ -87,4 +87,4 @@ class DiagnosticCollector {
|
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
89
|
exports.DiagnosticCollector = DiagnosticCollector;
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGlhZ25vc3RpY0NvbGxlY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvbWVtb3J5L0RpYWdub3N0aWNDb2xsZWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7OztHQVFHOzs7QUFJSCx5Q0FBK0Q7QUFLL0QsTUFBTSxVQUFVLEdBQUc7SUFDakIsSUFBSSxFQUFFLFlBQVk7SUFDbEIsTUFBTSxFQUFFLGNBQWM7SUFDdEIsT0FBTyxFQUFFLGVBQWU7SUFDeEIsS0FBSyxFQUFFLGFBQWE7Q0FDWixDQUFDO0FBRVgsTUFBYSxtQkFBbUI7SUFRRDtJQVB0QixVQUFVLEdBQTJCLEVBQUUsQ0FBQztJQUN4QyxZQUFZLEdBQTJCLEVBQUUsQ0FBQztJQUMxQyxhQUFhLEdBQTJCLEVBQUUsQ0FBQztJQUMzQyxXQUFXLEdBQTJCLEVBQUUsQ0FBQztJQUN6QyxZQUFZLEdBQWtCLEVBQUUsQ0FBQztJQUV4QyxzRUFBc0U7SUFDdEUsWUFBNkIsUUFBMEM7UUFBMUMsYUFBUSxHQUFSLFFBQVEsQ0FBa0M7SUFBRyxDQUFDO0lBRTNFLHNHQUFzRztJQUM5RixNQUFNLENBQUMsT0FBMEIsRUFBRSxJQUFjLEVBQUUsR0FBVyxFQUFFLEtBQWM7UUFDcEYsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7UUFDL0IsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDM0csQ0FBQztJQUVPLEtBQUssQ0FBQyxPQUEwQixFQUFFLEdBQVcsRUFBRSxLQUFjLEVBQUUsSUFBYyxFQUFFLE9BQWdCO1FBQ3JHLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FB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YyxFQUFFLFdBQVcsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoRixJQUFJLFdBQVcsS0FBSyxXQUFXLENBQUMsV0FBVyxJQUFJLFNBQVMsS0FBSyxXQUFXLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbkYsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdEMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsV0FBVyxFQUFFLFdBQVcsRUFBRSxHQUFHLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzdHLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUE3RUQsa0RBNkVDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBEaWFnbm9zdGljQ29sbGVjdG9yIOKAlCBQZXItc3RhZ2UgbWV0YWRhdGEgY29sbGVjdG9yXG4gKlxuICogQ29sbGVjdHMgbm9uLWV4ZWN1dGlvbiBtZXRhZGF0YSBkdXJpbmcgYSBzdGFnZSdzIHJ1bjpcbiAqIC0gbG9ncywgZXJyb3JzLCBtZXRyaWNzLCBldmFscywgZmxvd01lc3NhZ2VzXG4gKlxuICogTGlrZSBhIGNvbXBpbGVyJ3MgZGlhZ25vc3RpYyBjb2xsZWN0b3Ig4oCUIGdhdGhlcnMgd2FybmluZ3MsIGVycm9ycyxcbiAqIGFuZCB0aW1pbmcgaW5mbyB3aXRob3V0IGFmZmVjdGluZyB0aGUgY29tcGlsYXRpb24gb3V0cHV0LlxuICovXG5cbmltcG9ydCB0eXBlIHsgUmVkYWN0aW9uUnVsZSB9IGZyb20gJy4vcmVkYWN0aW9uLmpzJztcbmltcG9ydCB0eXBlIHsgRmxvd01lc3NhZ2UgfSBmcm9tICcuL3R5cGVzLmpzJztcbmltcG9ydCB7IHNldE5lc3RlZFZhbHVlLCB1cGRhdGVOZXN0ZWRWYWx1ZSB9IGZyb20gJy4vdXRpbHMuanMnO1xuXG4vKiogQGludGVybmFsIERpYWdub3N0aWMgbmFtZXNwYWNlcywgc2VwYXJhdGUgZnJvbSBzdGF0ZSBwYXRocy4gKi9cbmV4cG9ydCB0eXBlIERpYWdub3N0aWNDaGFubmVsID0gJ2xvZ3MnIHwgJ2Vycm9ycycgfCAnbWV0cmljcycgfCAnZXZhbHMnO1xuXG5jb25zdCBCQUdfRklFTERTID0ge1xuICBsb2dzOiAnbG9nQ29udGV4dCcsXG4gIGVycm9yczogJ2Vycm9yQ29udGV4dCcsXG4gIG1ldHJpY3M6ICdtZXRyaWNDb250ZXh0JyxcbiAgZXZhbHM6ICdldmFsQ29udGV4dCcsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgY2xhc3MgRGlhZ25vc3RpY0NvbGxlY3RvciB7XG4gIHB1YmxpYyBsb2dDb250ZXh0OiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge307XG4gIHB1YmxpYyBlcnJvckNvbnRleHQ6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fTtcbiAgcHVibGljIG1ldHJpY0NvbnRleHQ6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fTtcbiAgcHVibGljIGV2YWxDb250ZXh0OiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge307XG4gIHB1YmxpYyBmbG93TWVzc2FnZXM6IEZsb3dNZXNzYWdlW10gPSBbXTtcblxuICAvKiogUmVhZCB0aGUgY3VycmVudCBydW4gcG9saWN5LCBpbmNsdWRpbmcgcG9saWN5IHN3YXBzIGFuZCByZXN1bWUuICovXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcmVhZFJ1bGU/
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGlhZ25vc3RpY0NvbGxlY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvbWVtb3J5L0RpYWdub3N0aWNDb2xsZWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7OztHQVFHOzs7QUFJSCx5Q0FBK0Q7QUFLL0QsTUFBTSxVQUFVLEdBQUc7SUFDakIsSUFBSSxFQUFFLFlBQVk7SUFDbEIsTUFBTSxFQUFFLGNBQWM7SUFDdEIsT0FBTyxFQUFFLGVBQWU7SUFDeEIsS0FBSyxFQUFFLGFBQWE7Q0FDWixDQUFDO0FBRVgsTUFBYSxtQkFBbUI7SUFRRDtJQVB0QixVQUFVLEdBQTJCLEVBQUUsQ0FBQztJQUN4QyxZQUFZLEdBQTJCLEVBQUUsQ0FBQztJQUMxQyxhQUFhLEdBQTJCLEVBQUUsQ0FBQztJQUMzQyxXQUFXLEdBQTJCLEVBQUUsQ0FBQztJQUN6QyxZQUFZLEdBQWtCLEVBQUUsQ0FBQztJQUV4QyxzRUFBc0U7SUFDdEUsWUFBNkIsUUFBMEM7UUFBMUMsYUFBUSxHQUFSLFFBQVEsQ0FBa0M7SUFBRyxDQUFDO0lBRTNFLHNHQUFzRztJQUM5RixNQUFNLENBQUMsT0FBMEIsRUFBRSxJQUFjLEVBQUUsR0FBVyxFQUFFLEtBQWM7UUFDcEYsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7UUFDL0IsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDM0csQ0FBQztJQUVPLEtBQUssQ0FBQyxPQUEwQixFQUFFLEdBQVcsRUFBRSxLQUFjLEVBQUUsSUFBYyxFQUFFLE9BQWdCO1FBQ3JHLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDcEQsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyx5QkFBYyxDQUFDLENBQUMsQ0FBQyw0QkFBaUIsQ0FBQztRQUMzRCxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3RELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzRFQUN3RTtJQUN4RSxHQUFHLENBQUMsT0FBMEIsRUFBRSxHQUFXLEVBQUUsS0FBYyxFQUFFLE9BQWlCLEVBQUU7UUFDOUUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQVcsRUFBRSxLQUFVLEVBQUUsT0FBaUIsRUFBRTtRQUNqRCxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxNQUFNLENBQUMsR0FBVyxFQUFFLEtBQVUsRUFBRSxPQUFpQixFQUFFO1FBQ2pELElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxRQUFRLENBQUMsR0FBVyxFQUFFLEtBQVUsRUFBRSxPQUFpQixFQUFFO1FBQ25ELElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELFNBQVMsQ0FBQyxHQUFXLEVBQUUsS0FBVSxFQUFFLE9BQWlCLEVBQUU7UUFDcEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsU0FBUyxDQUFDLEdBQVcsRUFBRSxLQUFVLEVBQUUsT0FBaUIsRUFBRTtRQUNwRCxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsT0FBTyxDQUFDLEdBQVcsRUFBRSxLQUFVLEVBQUUsT0FBaUIsRUFBRTtRQUNsRCxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxPQUFPLENBQUMsR0FBVyxFQUFFLEtBQVUsRUFBRSxPQUFpQixFQUFFO1FBQ2xELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxjQUFjLENBQUMsV0FBd0I7UUFDckMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNwQyxPQUFPO1FBQ1QsQ0FBQztRQUNELDJFQUEyRTtRQUMzRSx3RUFBd0U7UUFDeEUsdUVBQXVFO1FBQ3ZFLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxjQUFjLEVBQUUsYUFBYSxDQUFDLEVBQUUsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2xHLE1BQU0sU0FBUyxHQUNiLFdBQVcsQ0FBQyxTQUFTLEtBQUssU0FBUztZQUNqQyxDQUFDLENBQUMsU0FBUztZQUNYLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsY0FBYyxFQUFFLFdBQVcsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoRixJQUFJLFdBQVcsS0FBSyxXQUFXLENBQUMsV0FBVyxJQUFJLFNBQVMsS0FBSyxXQUFXLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbkYsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdEMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsV0FBVyxFQUFFLFdBQVcsRUFBRSxHQUFHLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzdHLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUE3RUQsa0RBNkVDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBEaWFnbm9zdGljQ29sbGVjdG9yIOKAlCBQZXItc3RhZ2UgbWV0YWRhdGEgY29sbGVjdG9yXG4gKlxuICogQ29sbGVjdHMgbm9uLWV4ZWN1dGlvbiBtZXRhZGF0YSBkdXJpbmcgYSBzdGFnZSdzIHJ1bjpcbiAqIC0gbG9ncywgZXJyb3JzLCBtZXRyaWNzLCBldmFscywgZmxvd01lc3NhZ2VzXG4gKlxuICogTGlrZSBhIGNvbXBpbGVyJ3MgZGlhZ25vc3RpYyBjb2xsZWN0b3Ig4oCUIGdhdGhlcnMgd2FybmluZ3MsIGVycm9ycyxcbiAqIGFuZCB0aW1pbmcgaW5mbyB3aXRob3V0IGFmZmVjdGluZyB0aGUgY29tcGlsYXRpb24gb3V0cHV0LlxuICovXG5cbmltcG9ydCB0eXBlIHsgUmVkYWN0aW9uUnVsZSB9IGZyb20gJy4vcmVkYWN0aW9uLmpzJztcbmltcG9ydCB0eXBlIHsgRmxvd01lc3NhZ2UgfSBmcm9tICcuL3R5cGVzLmpzJztcbmltcG9ydCB7IHNldE5lc3RlZFZhbHVlLCB1cGRhdGVOZXN0ZWRWYWx1ZSB9IGZyb20gJy4vdXRpbHMuanMnO1xuXG4vKiogQGludGVybmFsIERpYWdub3N0aWMgbmFtZXNwYWNlcywgc2VwYXJhdGUgZnJvbSBzdGF0ZSBwYXRocy4gKi9cbmV4cG9ydCB0eXBlIERpYWdub3N0aWNDaGFubmVsID0gJ2xvZ3MnIHwgJ2Vycm9ycycgfCAnbWV0cmljcycgfCAnZXZhbHMnO1xuXG5jb25zdCBCQUdfRklFTERTID0ge1xuICBsb2dzOiAnbG9nQ29udGV4dCcsXG4gIGVycm9yczogJ2Vycm9yQ29udGV4dCcsXG4gIG1ldHJpY3M6ICdtZXRyaWNDb250ZXh0JyxcbiAgZXZhbHM6ICdldmFsQ29udGV4dCcsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgY2xhc3MgRGlhZ25vc3RpY0NvbGxlY3RvciB7XG4gIHB1YmxpYyBsb2dDb250ZXh0OiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge307XG4gIHB1YmxpYyBlcnJvckNvbnRleHQ6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fTtcbiAgcHVibGljIG1ldHJpY0NvbnRleHQ6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fTtcbiAgcHVibGljIGV2YWxDb250ZXh0OiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge307XG4gIHB1YmxpYyBmbG93TWVzc2FnZXM6IEZsb3dNZXNzYWdlW10gPSBbXTtcblxuICAvKiogUmVhZCB0aGUgY3VycmVudCBydW4gcG9saWN5LCBpbmNsdWRpbmcgcG9saWN5IHN3YXBzIGFuZCByZXN1bWUuICovXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcmVhZFJ1bGU/OiAoKSA9PiBSZWRhY3Rpb25SdWxlIHwgdW5kZWZpbmVkKSB7fVxuXG4gIC8qKiBBIG5hbWVkIGVudHJ5OiB0aGUgcnVuJ3MgcnVsZSBtYXBzIGl0cyBuYW1lIHRvIGEgc3RhdGUga2V5LCB0aGVuIGFkZHMgdGhlIGRpYWdub3N0aWMgc2VsZWN0b3JzLiAqL1xuICBwcml2YXRlIHJldGFpbihjaGFubmVsOiBEaWFnbm9zdGljQ2hhbm5lbCwgcGF0aDogc3RyaW5nW10sIGtleTogc3RyaW5nLCB2YWx1ZTogdW5rbm93bik6IHVua25vd24ge1xuICAgIGNvbnN0IHJ1bGUgPSB0aGlzLnJlYWRSdWxlPy4oKTtcbiAgICByZXR1cm4gcnVsZSAmJiAhcnVsZS5pc0RpYWdub3N0aWNJbmVydCgpID8gcnVsZS5yZXRhaW5EaWFnbm9zdGljKFtjaGFubmVsLCAuLi5wYXRoLCBrZXldLCB2YWx1ZSkgOiB2YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgd3JpdGUoY2hhbm5lbDogRGlhZ25vc3RpY0NoYW5uZWwsIGtleTogc3RyaW5nLCB2YWx1ZTogdW5rbm93biwgcGF0aDogc3RyaW5nW10sIHJlcGxhY2U6IGJvb2xlYW4pOiB1bmtub3duIHtcbiAgICBjb25zdCBrZXB0ID0gdGhpcy5yZXRhaW4oY2hhbm5lbCwgcGF0aCwga2V5LCB2YWx1ZSk7XG4gICAgY29uc3Qgd3JpdGUgPSByZXBsYWNlID8gc2V0TmVzdGVkVmFsdWUgOiB1cGRhdGVOZXN0ZWRWYWx1ZTtcbiAgICB3cml0ZSh0aGlzW0JBR19GSUVMRFNbY2hhbm5lbF1dLCBbXSwgcGF0aCwga2V5LCBrZXB0KTtcbiAgICByZXR1cm4ga2VwdDtcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgQWRkIG9uY2UsIHJldHVybmluZyB0aGUgcmV0YWluZWQgaW5jb21pbmcgdmFsdWUgZm9yIGVtaXQuXG4gICAqIExlZ2FjeSB3cml0ZXJzIHN0YXkgdm9pZDogdGhlaXIgcmVzdWx0IG1heSBiZSByZXR1cm5lZCBieSBhIHN0YWdlLiAqL1xuICBhZGQoY2hhbm5lbDogRGlhZ25vc3RpY0NoYW5uZWwsIGtleTogc3RyaW5nLCB2YWx1ZTogdW5rbm93biwgcGF0aDogc3RyaW5nW10gPSBbXSk6IHVua25vd24ge1xuICAgIHJldHVybiB0aGlzLndyaXRlKGNoYW5uZWwsIGtleSwgdmFsdWUsIHBhdGgsIGZhbHNlKTtcbiAgfVxuXG4gIGFkZExvZyhrZXk6IHN0cmluZywgdmFsdWU6IGFueSwgcGF0aDogc3RyaW5nW10gPSBbXSkge1xuICAgIHRoaXMuYWRkKCdsb2dzJywga2V5LCB2YWx1ZSwgcGF0aCk7XG4gIH1cblxuICBzZXRMb2coa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnksIHBhdGg6IHN0cmluZ1tdID0gW10pIHtcbiAgICB0aGlzLndyaXRlKCdsb2dzJywga2V5LCB2YWx1ZSwgcGF0aCwgdHJ1ZSk7XG4gIH1cblxuICBhZGRFcnJvcihrZXk6IHN0cmluZywgdmFsdWU6IGFueSwgcGF0aDogc3RyaW5nW10gPSBbXSkge1xuICAgIHRoaXMuYWRkKCdlcnJvcnMnLCBrZXksIHZhbHVlLCBwYXRoKTtcbiAgfVxuXG4gIGFkZE1ldHJpYyhrZXk6IHN0cmluZywgdmFsdWU6IGFueSwgcGF0aDogc3RyaW5nW10gPSBbXSkge1xuICAgIHRoaXMuYWRkKCdtZXRyaWNzJywga2V5LCB2YWx1ZSwgcGF0aCk7XG4gIH1cblxuICBzZXRNZXRyaWMoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnksIHBhdGg6IHN0cmluZ1tdID0gW10pIHtcbiAgICB0aGlzLndyaXRlKCdtZXRyaWNzJywga2V5LCB2YWx1ZSwgcGF0aCwgdHJ1ZSk7XG4gIH1cblxuICBhZGRFdmFsKGtleTogc3RyaW5nLCB2YWx1ZTogYW55LCBwYXRoOiBzdHJpbmdbXSA9IFtdKSB7XG4gICAgdGhpcy5hZGQoJ2V2YWxzJywga2V5LCB2YWx1ZSwgcGF0aCk7XG4gIH1cblxuICBzZXRFdmFsKGtleTogc3RyaW5nLCB2YWx1ZTogYW55LCBwYXRoOiBzdHJpbmdbXSA9IFtdKSB7XG4gICAgdGhpcy53cml0ZSgnZXZhbHMnLCBrZXksIHZhbHVlLCBwYXRoLCB0cnVlKTtcbiAgfVxuXG4gIGFkZEZsb3dNZXNzYWdlKGZsb3dNZXNzYWdlOiBGbG93TWVzc2FnZSkge1xuICAgIGNvbnN0IHJ1bGUgPSB0aGlzLnJlYWRSdWxlPy4oKTtcbiAgICBpZiAoIXJ1bGUgfHwgcnVsZS5pc0Zsb3dUZXh0SW5lcnQoKSkge1xuICAgICAgdGhpcy5mbG93TWVzc2FnZXMucHVzaChmbG93TWVzc2FnZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIE9ubHkgcGF5bG9hZCB0ZXh0IGlzIHNlbGVjdGFibGUg4oCUIGFuZCBpdCBoYXMgbm8gbmFtZSBvZiBpdHMgb3duLCBzbyBvbmx5XG4gICAgLy8gdGhlIGRpYWdub3N0aWMgc2VsZWN0b3JzIHJlYWNoIGl0LiBLZWVwIHRoZSBldmlkZW5jZSBvZiB3aGF0IGhhcHBlbmVkXG4gICAgLy8gKHR5cGUsIHRhcmdldHMsIHRpbWluZywgY291bnRzKSBldmVuIHdoZW4gaXRzIGV4cGxhbmF0aW9uIGlzIG1hc2tlZC5cbiAgICBjb25zdCBkZXNjcmlwdGlvbiA9IHJ1bGUucmV0YWluRmxvd1RleHQoWydmbG93TWVzc2FnZXMnLCAnZGVzY3JpcHRpb24nXSwgZmxvd01lc3NhZ2UuZGVzY3JpcHRpb24pO1xuICAgIGNvbnN0IHJhdGlvbmFsZSA9XG4gICAgICBmbG93TWVzc2FnZS5yYXRpb25hbGUgPT09IHVuZGVmaW5lZFxuICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICA6IHJ1bGUucmV0YWluRmxvd1RleHQoWydmbG93TWVzc2FnZXMnLCAncmF0aW9uYWxlJ10sIGZsb3dNZXNzYWdlLnJhdGlvbmFsZSk7XG4gICAgaWYgKGRlc2NyaXB0aW9uID09PSBmbG93TWVzc2FnZS5kZXNjcmlwdGlvbiAmJiByYXRpb25hbGUgPT09IGZsb3dNZXNzYWdlLnJhdGlvbmFsZSkge1xuICAgICAgdGhpcy5mbG93TWVzc2FnZXMucHVzaChmbG93TWVzc2FnZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmxvd01lc3NhZ2VzLnB1c2goeyAuLi5mbG93TWVzc2FnZSwgZGVzY3JpcHRpb24sIC4uLihyYXRpb25hbGUgPT09IHVuZGVmaW5lZCA/IHt9IDogeyByYXRpb25hbGUgfSkgfSk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -3,8 +3,11 @@
|
|
|
3
3
|
* SharedMemory — The shared state container for all flowchart execution
|
|
4
4
|
*
|
|
5
5
|
* Like a runtime heap with namespace isolation:
|
|
6
|
-
* -
|
|
7
|
-
*
|
|
6
|
+
* - A value is written at an ADDRESS — a path prefix the caller computed
|
|
7
|
+
* (C2: the engine's frame decides it, `StageContext · address`) — and read
|
|
8
|
+
* there first, then at the root
|
|
9
|
+
* - Default values seed the root, and the container at an address when a
|
|
10
|
+
* write creates it
|
|
8
11
|
* - Accepts commit bundles from TransactionBuffer
|
|
9
12
|
*
|
|
10
13
|
* COPY-ON-WRITE (9.29.0 — docs/design/2026-10-copy-on-write-commit.md):
|
|
@@ -38,39 +41,35 @@ class SharedMemory {
|
|
|
38
41
|
getDefaultValues() {
|
|
39
42
|
return this._defaultValues ? structuredClone(this._defaultValues) : undefined;
|
|
40
43
|
}
|
|
41
|
-
/**
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
/** Updates a value using merge semantics, as a new generation (path copy + swap). */
|
|
46
|
-
updateValue(runId, path, key, value) {
|
|
47
|
-
const next = this.ownedPathTo(runId, path, key);
|
|
48
|
-
(0, utils_js_1.updateNestedValue)(next, runId, path, key, value, this.getDefaultValues());
|
|
44
|
+
/** Updates a value at `address` + `path` using merge semantics, as a new generation (path copy + swap). */
|
|
45
|
+
updateValue(address, path, key, value) {
|
|
46
|
+
const next = this.ownedPathTo(address, path, key);
|
|
47
|
+
(0, utils_js_1.updateNestedValue)(next, address, path, key, value, this.getDefaultValues());
|
|
49
48
|
this.context = next;
|
|
50
49
|
}
|
|
51
|
-
/** Sets a value using overwrite semantics, as a new generation (path copy + swap). */
|
|
52
|
-
setValue(
|
|
53
|
-
const next = this.ownedPathTo(
|
|
54
|
-
(0, utils_js_1.setNestedValue)(next,
|
|
50
|
+
/** Sets a value at `address` + `path` using overwrite semantics, as a new generation (path copy + swap). */
|
|
51
|
+
setValue(address, path, key, value) {
|
|
52
|
+
const next = this.ownedPathTo(address, path, key);
|
|
53
|
+
(0, utils_js_1.setNestedValue)(next, address, path, key, value, this.getDefaultValues());
|
|
55
54
|
this.context = next;
|
|
56
55
|
}
|
|
57
56
|
/**
|
|
58
57
|
* A copy of the current generation's root whose containers on the way to
|
|
59
58
|
* `key` are owned — the in-place helpers above then edit only copies.
|
|
60
59
|
*/
|
|
61
|
-
ownedPathTo(
|
|
60
|
+
ownedPathTo(address, path, key) {
|
|
62
61
|
const owned = new WeakSet();
|
|
63
62
|
const root = (0, pathOps_js_1.ownedRootOf)(this.context, owned);
|
|
64
|
-
const { runPath, globalPath } = (0, utils_js_1.getRunAndGlobalPaths)(
|
|
63
|
+
const { runPath, globalPath } = (0, utils_js_1.getRunAndGlobalPaths)(address, path);
|
|
65
64
|
(0, pathOps_js_1.ownSpine)(root, [...(runPath || globalPath), key], owned);
|
|
66
65
|
return root;
|
|
67
66
|
}
|
|
68
67
|
/**
|
|
69
68
|
* Reads a value from the store.
|
|
70
|
-
* Looks up
|
|
69
|
+
* Looks up at `address` first, falls back to the root.
|
|
71
70
|
*/
|
|
72
|
-
getValue(
|
|
73
|
-
const { globalPath, runPath } = (0, utils_js_1.getRunAndGlobalPaths)(
|
|
71
|
+
getValue(address, path, key) {
|
|
72
|
+
const { globalPath, runPath } = (0, utils_js_1.getRunAndGlobalPaths)(address, path);
|
|
74
73
|
const value = runPath ? (0, utils_js_1.getNestedValue)(this.context, runPath, key) : undefined;
|
|
75
74
|
return typeof value !== 'undefined' ? value : (0, utils_js_1.getNestedValue)(this.context, globalPath, key);
|
|
76
75
|
}
|
|
@@ -84,4 +83,4 @@ class SharedMemory {
|
|
|
84
83
|
}
|
|
85
84
|
}
|
|
86
85
|
exports.SharedMemory = SharedMemory;
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2hhcmVkTWVtb3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9tZW1vcnkvU2hhcmVkTWVtb3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRzs7O0FBRUgsNkNBQXVFO0FBRXZFLHlDQUFxSDtBQUVySCxNQUFhLFlBQVk7SUFDZixPQUFPLEdBQTJCLEVBQUUsQ0FBQztJQUNyQyxjQUFjLENBQVc7SUFFakMsWUFBWSxhQUF1QixFQUFFLGNBQXdCO1FBQzNELElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDO1FBQ3BDLE1BQU0sSUFBSSxHQUFHLElBQUEsNkJBQWdCLEVBQUMsY0FBYyxJQUFJLEVBQUUsRUFBRSxhQUFhLElBQUksRUFBRSxDQUFDLENBQUM7UUFDekUsd0VBQXdFO1FBQ3hFLHVFQUF1RTtRQUN2RSx1RUFBdUU7UUFDdkUsd0VBQXdFO1FBQ3hFLG1FQUFtRTtRQUNuRSw0REFBNEQ7UUFDNUQsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzdFLENBQUM7SUFFRCwwQ0FBMEM7SUFDMUMsZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDaEYsQ0FBQztJQUVELDJHQUEyRztJQUMzRyxXQUFXLENBQUMsT0FBMEIsRUFBRSxJQUFjLEVBQUUsR0FBVyxFQUFFLEtBQWM7UUFDakYsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2xELElBQUEsNEJBQWlCLEVBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBQzVFLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ3RCLENBQUM7SUFFRCw0R0FBNEc7SUFDNUcsUUFBUSxDQUFDLE9BQTBCLEVBQUUsSUFBYyxFQUFFLEdBQVcsRUFBRSxLQUFjO1FBQzlFLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNsRCxJQUFBLHlCQUFjLEVBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7O09BR0c7SUFDSyxXQUFXLENBQUMsT0FBMEIsRUFBRSxJQUFjLEVBQUUsR0FBVztRQUN6RSxNQUFNLEtBQUssR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO1FBQ3BDLE1BQU0sSUFBSSxHQUFHLElBQUEsd0JBQVcsRUFBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzlDLE1BQU0sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsSUFBQSwrQkFBb0IsRUFBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEUsSUFBQSxxQkFBUSxFQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLElBQUksVUFBVSxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDekQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsUUFBUSxDQUFDLE9BQTJCLEVBQUUsSUFBZSxFQUFFLEdBQVk7UUFDakUsTUFBTSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFBLCtCQUFvQixFQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwRSxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUEseUJBQWMsRUFBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQy9FLE9BQU8sT0FBTyxLQUFLLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUEseUJBQWMsRUFBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBRUQsc0dBQXNHO0lBQ3RHLFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVELGtHQUFrRztJQUNsRyxVQUFVLENBQUMsU0FBc0IsRUFBRSxPQUFvQixFQUFFLEtBQW1CO1FBQzFFLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBQSx5QkFBYyxFQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN6RSxDQUFDO0NBQ0Y7QUFsRUQsb0NBa0VDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTaGFyZWRNZW1vcnkg4oCUIFRoZSBzaGFyZWQgc3RhdGUgY29udGFpbmVyIGZvciBhbGwgZmxvd2NoYXJ0IGV4ZWN1dGlvblxuICpcbiAqIExpa2UgYSBydW50aW1lIGhlYXAgd2l0aCBuYW1lc3BhY2UgaXNvbGF0aW9uOlxuICogLSBBIHZhbHVlIGlzIHdyaXR0ZW4gYXQgYW4gQUREUkVTUyDigJQgYSBwYXRoIHByZWZpeCB0aGUgY2FsbGVyIGNvbXB1dGVkXG4gKiAgIChDMjogdGhlIGVuZ2luZSdzIGZyYW1lIGRlY2lkZXMgaXQsIGBTdGFnZUNvbnRleHQgwrcgYWRkcmVzc2ApIOKAlCBhbmQgcmVhZFxuICogICB0aGVyZSBmaXJzdCwgdGhlbiBhdCB0aGUgcm9vdFxuICogLSBEZWZhdWx0IHZhbHVlcyBzZWVkIHRoZSByb290LCBhbmQgdGhlIGNvbnRhaW5lciBhdCBhbiBhZGRyZXNzIHdoZW4gYVxuICogICB3cml0ZSBjcmVhdGVzIGl0XG4gKiAtIEFjY2VwdHMgY29tbWl0IGJ1bmRsZXMgZnJvbSBUcmFuc2FjdGlvbkJ1ZmZlclxuICpcbiAqIENPUFktT04tV1JJVEUgKDkuMjkuMCDigJQgZG9jcy9kZXNpZ24vMjAyNi0xMC1jb3B5LW9uLXdyaXRlLWNvbW1pdC5tZCk6XG4gKiBgY29udGV4dGAgaXMgYSBHRU5FUkFUSU9OLCBhbmQgYSBnZW5lcmF0aW9uIGlzIG5ldmVyIGVkaXRlZC4gRXZlcnkgd3JpdGUg4oCUXG4gKiBgYXBwbHlQYXRjaGAgKGEgc3RhZ2UgY29tbWl0KSwgYHNldFZhbHVlYCwgYHVwZGF0ZVZhbHVlYCDigJQgYnVpbGRzIHRoZSBuZXh0XG4gKiBnZW5lcmF0aW9uIGJ5IGNvcHlpbmcgdGhlIHJvb3QgYW5kIHRoZSBjb250YWluZXJzIG9uIGVhY2ggd3JpdHRlbiBwYXRoLFxuICogc2hhcmVzIGV2ZXJ5IG90aGVyIHN1YnRyZWUgd2l0aCB0aGUgZ2VuZXJhdGlvbiBiZWZvcmUgaXQsIGFuZCBzd2Fwcy4gU28gYVxuICogZ2VuZXJhdGlvbiBhIHN0YWdlIGNhcHR1cmVkIChpdHMgZmlyc3QtdG91Y2ggdmlldywgaXRzIHRyYW5zYWN0aW9uXG4gKiBidWZmZXIncyBkaWZmIGJhc2UpIHN0YXlzIGV4YWN0bHkgd2hhdCBpdCB3YXMsIGFuZCBhIHdyaXRlIGNvc3RzIE8od2hhdCBpdFxuICogd3JvdGUpLCBub3QgTyhzdGF0ZSkuXG4gKi9cblxuaW1wb3J0IHsgbWVyZ2VDb250ZXh0V2lucywgb3duZWRSb290T2YsIG93blNwaW5lIH0gZnJvbSAnLi9wYXRoT3BzLmpzJztcbmltcG9ydCB0eXBlIHsgTWVtb3J5UGF0Y2gsIFRyYWNlRW50cnkgfSBmcm9tICcuL3R5cGVzLmpzJztcbmltcG9ydCB7IGdldE5lc3RlZFZhbHVlLCBnZXRSdW5BbmRHbG9iYWxQYXRocywgbmV4dEdlbmVyYXRpb24sIHNldE5lc3RlZFZhbHVlLCB1cGRhdGVOZXN0ZWRWYWx1ZSB9IGZyb20gJy4vdXRpbHMuanMnO1xuXG5leHBvcnQgY2xhc3MgU2hhcmVkTWVtb3J5IHtcbiAgcHJpdmF0ZSBjb250ZXh0OiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge307XG4gIHByaXZhdGUgX2RlZmF1bHRWYWx1ZXM/OiB1bmtub3duO1xuXG4gIGNvbnN0cnVjdG9yKGRlZmF1bHRWYWx1ZXM/OiB1bmtub3duLCBpbml0aWFsQ29udGV4dD86IHVua25vd24pIHtcbiAgICB0aGlzLl9kZWZhdWx0VmFsdWVzID0gZGVmYXVsdFZhbHVlcztcbiAgICBjb25zdCBzZWVkID0gbWVyZ2VDb250ZXh0V2lucyhpbml0aWFsQ29udGV4dCB8fCB7fSwgZGVmYXVsdFZhbHVlcyB8fCB7fSk7XG4gICAgLy8gRGV0YWNoZWQgT05DRSwgaGVyZTogYG1lcmdlQ29udGV4dFdpbnNgIGNvcGllcyBvbmx5IHRoZSB0b3AgbGV2ZWwsIHNvXG4gICAgLy8gdGhlIHNlZWQncyBuZXN0ZWQgdmFsdWVzIGFyZSB0aGUgY2FsbGVyJ3Mgb3duIG9iamVjdHMuIEJlZm9yZSA5LjI5LjBcbiAgICAvLyB0aGUgZmlyc3QgY29tbWl0J3Mgd2hvbGUtc3RhdGUgY2xvbmUgZGV0YWNoZWQgdGhlbSAoYW5kIHVudGlsIHRoZW4gYVxuICAgIC8vIGNhbGxlciBtdXRhdGluZyBpdHMgYGluaXRpYWxDb250ZXh0YCBjaGFuZ2VkIGxpdmUgc3RhdGUgd2l0aCBubyByb3cpO1xuICAgIC8vIG5vdGhpbmcgcmUtY2xvbmVzIHRoZSBzdGF0ZSBhbnkgbW9yZSwgc28gdGhlIHNlZWQgaXMgZGV0YWNoZWQgYXRcbiAgICAvLyBjb25zdHJ1Y3Rpb24g4oCUIG9uZSBjbG9uZSBwZXIgcnVudGltZSwgbm90IG9uZSBwZXIgY29tbWl0LlxuICAgIHRoaXMuY29udGV4dCA9IE9iamVjdC5rZXlzKHNlZWQpLmxlbmd0aCA+IDAgPyBzdHJ1Y3R1cmVkQ2xvbmUoc2VlZCkgOiBzZWVkO1xuICB9XG5cbiAgLyoqIEdldHMgYSBjbG9uZSBvZiB0aGUgZGVmYXVsdCB2YWx1ZXMuICovXG4gIGdldERlZmF1bHRWYWx1ZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RlZmF1bHRWYWx1ZXMgPyBzdHJ1Y3R1cmVkQ2xvbmUodGhpcy5fZGVmYXVsdFZhbHVlcykgOiB1bmRlZmluZWQ7XG4gIH1cblxuICAvKiogVXBkYXRlcyBhIHZhbHVlIGF0IGBhZGRyZXNzYCArIGBwYXRoYCB1c2luZyBtZXJnZSBzZW1hbnRpY3MsIGFzIGEgbmV3IGdlbmVyYXRpb24gKHBhdGggY29weSArIHN3YXApLiAqL1xuICB1cGRhdGVWYWx1ZShhZGRyZXNzOiByZWFkb25seSBzdHJpbmdbXSwgcGF0aDogc3RyaW5nW10sIGtleTogc3RyaW5nLCB2YWx1ZTogdW5rbm93bikge1xuICAgIGNvbnN0IG5leHQgPSB0aGlzLm93bmVkUGF0aFRvKGFkZHJlc3MsIHBhdGgsIGtleSk7XG4gICAgdXBkYXRlTmVzdGVkVmFsdWUobmV4dCwgYWRkcmVzcywgcGF0aCwga2V5LCB2YWx1ZSwgdGhpcy5nZXREZWZhdWx0VmFsdWVzKCkpO1xuICAgIHRoaXMuY29udGV4dCA9IG5leHQ7XG4gIH1cblxuICAvKiogU2V0cyBhIHZhbHVlIGF0IGBhZGRyZXNzYCArIGBwYXRoYCB1c2luZyBvdmVyd3JpdGUgc2VtYW50aWNzLCBhcyBhIG5ldyBnZW5lcmF0aW9uIChwYXRoIGNvcHkgKyBzd2FwKS4gKi9cbiAgc2V0VmFsdWUoYWRkcmVzczogcmVhZG9ubHkgc3RyaW5nW10sIHBhdGg6IHN0cmluZ1tdLCBrZXk6IHN0cmluZywgdmFsdWU6IHVua25vd24pIHtcbiAgICBjb25zdCBuZXh0ID0gdGhpcy5vd25lZFBhdGhUbyhhZGRyZXNzLCBwYXRoLCBrZXkpO1xuICAgIHNldE5lc3RlZFZhbHVlKG5leHQsIGFkZHJlc3MsIHBhdGgsIGtleSwgdmFsdWUsIHRoaXMuZ2V0RGVmYXVsdFZhbHVlcygpKTtcbiAgICB0aGlzLmNvbnRleHQgPSBuZXh0O1xuICB9XG5cbiAgLyoqXG4gICAqIEEgY29weSBvZiB0aGUgY3VycmVudCBnZW5lcmF0aW9uJ3Mgcm9vdCB3aG9zZSBjb250YWluZXJzIG9uIHRoZSB3YXkgdG9cbiAgICogYGtleWAgYXJlIG93bmVkIOKAlCB0aGUgaW4tcGxhY2UgaGVscGVycyBhYm92ZSB0aGVuIGVkaXQgb25seSBjb3BpZXMuXG4gICAqL1xuICBwcml2YXRlIG93bmVkUGF0aFRvKGFkZHJlc3M6IHJlYWRvbmx5IHN0cmluZ1tdLCBwYXRoOiBzdHJpbmdbXSwga2V5OiBzdHJpbmcpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHtcbiAgICBjb25zdCBvd25lZCA9IG5ldyBXZWFrU2V0PG9iamVjdD4oKTtcbiAgICBjb25zdCByb290ID0gb3duZWRSb290T2YodGhpcy5jb250ZXh0LCBvd25lZCk7XG4gICAgY29uc3QgeyBydW5QYXRoLCBnbG9iYWxQYXRoIH0gPSBnZXRSdW5BbmRHbG9iYWxQYXRocyhhZGRyZXNzLCBwYXRoKTtcbiAgICBvd25TcGluZShyb290LCBbLi4uKHJ1blBhdGggfHwgZ2xvYmFsUGF0aCksIGtleV0sIG93bmVkKTtcbiAgICByZXR1cm4gcm9vdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWFkcyBhIHZhbHVlIGZyb20gdGhlIHN0b3JlLlxuICAgKiBMb29rcyB1cCBhdCBgYWRkcmVzc2AgZmlyc3QsIGZhbGxzIGJhY2sgdG8gdGhlIHJvb3QuXG4gICAqL1xuICBnZXRWYWx1ZShhZGRyZXNzPzogcmVhZG9ubHkgc3RyaW5nW10sIHBhdGg/OiBzdHJpbmdbXSwga2V5Pzogc3RyaW5nKTogYW55IHtcbiAgICBjb25zdCB7IGdsb2JhbFBhdGgsIHJ1blBhdGggfSA9IGdldFJ1bkFuZEdsb2JhbFBhdGhzKGFkZHJlc3MsIHBhdGgpO1xuICAgIGNvbnN0IHZhbHVlID0gcnVuUGF0aCA/IGdldE5lc3RlZFZhbHVlKHRoaXMuY29udGV4dCwgcnVuUGF0aCwga2V5KSA6IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlICE9PSAndW5kZWZpbmVkJyA/IHZhbHVlIDogZ2V0TmVzdGVkVmFsdWUodGhpcy5jb250ZXh0LCBnbG9iYWxQYXRoLCBrZXkpO1xuICB9XG5cbiAgLyoqIEdldHMgdGhlIGVudGlyZSBzdGF0ZSBhcyBhIEpTT04gb2JqZWN0IOKAlCB0aGUgY3VycmVudCBnZW5lcmF0aW9uLCBieSByZWZlcmVuY2UuIE5ldmVyIG11dGF0ZSBpdC4gKi9cbiAgZ2V0U3RhdGUoKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHQ7XG4gIH1cblxuICAvKiogQXBwbGllcyBhIGNvbW1pdCBidW5kbGUgZnJvbSBUcmFuc2FjdGlvbkJ1ZmZlcjogYnVpbGRzIHRoZSBuZXh0IGdlbmVyYXRpb24gYW5kIHN3YXBzIGl0IGluLiAqL1xuICBhcHBseVBhdGNoKG92ZXJ3cml0ZTogTWVtb3J5UGF0Y2gsIHVwZGF0ZXM6IE1lbW9yeVBhdGNoLCB0cmFjZTogVHJhY2VFbnRyeVtdKTogdm9pZCB7XG4gICAgdGhpcy5jb250ZXh0ID0gbmV4dEdlbmVyYXRpb24odGhpcy5jb250ZXh0LCB1cGRhdGVzLCBvdmVyd3JpdGUsIHRyYWNlKTtcbiAgfVxufVxuIl19
|