@expressive/mvc 0.70.0 → 0.72.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.
@@ -1,104 +1,62 @@
1
1
  import { addListener } from "./control";
2
- import { event, Model, PARENT, uid } from "./model";
2
+ import { event, State, PARENT, uid } from "./state";
3
3
  const LOOKUP = /* @__PURE__ */ new WeakMap();
4
4
  const KEYS = /* @__PURE__ */ new Map();
5
5
  function key(T, upstream) {
6
6
  let K = KEYS.get(T);
7
- if (!K)
8
- KEYS.set(T, K = Symbol(
9
- typeof T == "symbol" ? "get " + T.description : String(T)
10
- ));
7
+ if (!K) {
8
+ K = Symbol(typeof T == "symbol" ? "get " + T.description : String(T));
9
+ KEYS.set(T, K);
10
+ }
11
11
  return upstream ? key(K) : K;
12
12
  }
13
13
  function keys(from, upstream) {
14
14
  const keys2 = /* @__PURE__ */ new Set();
15
15
  do {
16
16
  keys2.add(key(from, upstream));
17
- } while ((from = Object.getPrototypeOf(from)) !== Model);
17
+ from = Object.getPrototypeOf(from);
18
+ } while (from !== State);
18
19
  return keys2;
19
20
  }
20
21
  class Context {
21
22
  constructor(inputs) {
22
- this.layer = /* @__PURE__ */ new Map();
23
+ this.id = uid();
24
+ this.inputs = {};
23
25
  this.cleanup = /* @__PURE__ */ new Set();
24
- if (inputs)
25
- this.include(inputs);
26
+ if (inputs) this.use(inputs);
26
27
  }
27
28
  static get({ is }, callback) {
28
- const waiting = LOOKUP.get(is);
29
- if (waiting instanceof Context) {
30
- if (callback)
31
- callback(waiting);
32
- return waiting;
29
+ const context = LOOKUP.get(is);
30
+ if (context instanceof Context) {
31
+ if (callback) callback(context);
32
+ return context;
33
33
  }
34
34
  if (callback)
35
- if (waiting)
36
- waiting.push(callback);
37
- else
38
- LOOKUP.set(is, [callback]);
39
- }
40
- /** Run callback when a specified type is registered to a **child** context. */
41
- has(Type, callback) {
42
- Object.defineProperty(this, key(Type, true), { value: callback, configurable: true });
35
+ if (context) context.push(callback);
36
+ else LOOKUP.set(is, [callback]);
43
37
  }
44
- get(Type, require2) {
38
+ get(Type, arg2) {
39
+ if (typeof arg2 == "function") {
40
+ const k = key(Type, true);
41
+ Object.defineProperty(this, k, {
42
+ value: arg2,
43
+ configurable: true
44
+ });
45
+ return () => {
46
+ delete this[k];
47
+ };
48
+ }
45
49
  const result = this[key(Type)];
46
50
  if (result === null)
47
- throw new Error(`Did find ${Type} in context, but multiple were defined.`);
48
- if (result)
49
- return result;
50
- if (require2)
51
- throw new Error(`Could not find ${Type} in context.`);
52
- }
53
- push(inputs) {
54
- const next = Object.create(this);
55
- this.cleanup = /* @__PURE__ */ new Set([() => next.pop(), ...this.cleanup]);
56
- next.layer = /* @__PURE__ */ new Map();
57
- next.cleanup = /* @__PURE__ */ new Set();
58
- if (inputs)
59
- next.include(inputs);
60
- return next;
61
- }
62
- pop() {
63
- for (const key2 of Object.getOwnPropertySymbols(this))
64
- delete this[key2];
65
- this.cleanup.forEach((cb) => cb());
66
- this.cleanup.clear();
67
- this.layer.clear();
68
- }
69
- include(inputs, forEach) {
70
- const init = /* @__PURE__ */ new Map();
71
- if (typeof inputs == "function" || inputs instanceof Model)
72
- inputs = { [forEach ? 0 : this.layer.size]: inputs };
73
- Object.entries(inputs).forEach(([K, V]) => {
74
- if (Model.is(V) || V instanceof Model) {
75
- const exists = this.layer.get(K);
76
- if (!exists) {
77
- const instance = this.add(V);
78
- this.layer.set(K, V);
79
- init.set(instance, true);
80
- } else if (exists !== V) {
81
- this.pop();
82
- this.id = uid();
83
- this.include(inputs);
84
- }
85
- return;
86
- }
87
51
  throw new Error(
88
- `Context may only include instance or class \`extends Model\` but got ${K == "0" || K == V ? V : `${V} (as '${K}')`}.`
52
+ `Did find ${Type} in context, but multiple were defined.`
89
53
  );
90
- });
91
- for (const [model, explicit] of init) {
92
- model.set();
93
- if (explicit && forEach)
94
- forEach(model);
95
- for (const [_key, value] of model)
96
- if (PARENT.get(value) === model) {
97
- this.add(value, true);
98
- init.set(value, false);
99
- }
100
- }
54
+ if (result) return result;
55
+ if (arg2) throw new Error(`Could not find ${Type} in context.`);
101
56
  }
57
+ /**
58
+ * Adds a State to this context.
59
+ */
102
60
  add(input, implicit) {
103
61
  const cleanup = /* @__PURE__ */ new Set();
104
62
  let T;
@@ -112,16 +70,14 @@ class Context {
112
70
  }
113
71
  keys(T, true).forEach((K) => {
114
72
  const expects = this[K];
115
- if (!expects)
116
- return;
117
- addListener(I, (event2) => {
118
- if (event2 === true) {
119
- const callback = expects(I);
120
- if (callback)
121
- cleanup.add(callback);
122
- }
123
- return null;
124
- });
73
+ if (expects)
74
+ addListener(I, (event2) => {
75
+ if (event2 === true) {
76
+ const cb = expects(I);
77
+ if (cb) cleanup.add(cb);
78
+ }
79
+ return null;
80
+ });
125
81
  });
126
82
  keys(T).forEach((K) => {
127
83
  const value = this.hasOwnProperty(K) ? null : I;
@@ -133,17 +89,82 @@ class Context {
133
89
  });
134
90
  this.cleanup.add(() => {
135
91
  cleanup.forEach((cb) => cb());
136
- if (I !== input)
137
- event(I, null);
92
+ if (I !== input) event(I, null);
138
93
  });
139
94
  const waiting = LOOKUP.get(I);
140
- if (waiting instanceof Array)
141
- waiting.forEach((cb) => cb(this));
95
+ if (waiting instanceof Array) waiting.forEach((cb) => cb(this));
142
96
  LOOKUP.set(I, this);
143
97
  return I;
144
98
  }
99
+ /**
100
+ * Register one or more States to this context.
101
+ *
102
+ * Context will add or remove States as needed to keep with provided input.
103
+ *
104
+ * @param inputs State, State class, or map of States / State classes to register.
105
+ * @param forEach Optional callback to run for each State registered.
106
+ */
107
+ use(inputs, forEach) {
108
+ const init = /* @__PURE__ */ new Map();
109
+ if (typeof inputs == "function" || inputs instanceof State)
110
+ inputs = { [0]: inputs };
111
+ for (const [K, V] of Object.entries(inputs)) {
112
+ if (!(State.is(V) || V instanceof State))
113
+ throw new Error(
114
+ `Context may only include instance or class \`extends State\` but got ${K == "0" || K == String(V) ? V : `${V} (as '${K}')`}.`
115
+ );
116
+ const exists = this.inputs[K];
117
+ if (!exists) {
118
+ init.set(this.add(V), true);
119
+ } else if (exists !== V) {
120
+ this.pop();
121
+ this.use(inputs);
122
+ this.id = uid();
123
+ return;
124
+ }
125
+ }
126
+ for (const [state, explicit] of init) {
127
+ state.set();
128
+ if (explicit && forEach) forEach(state);
129
+ for (const [_key, value] of state)
130
+ if (PARENT.get(value) === state) {
131
+ this.add(value, true);
132
+ init.set(value, false);
133
+ }
134
+ }
135
+ this.inputs = inputs;
136
+ }
137
+ /**
138
+ * Create a child context, optionally registering one or more States to it.
139
+ *
140
+ * @param inputs State, State class, or map of States / State classes to register.
141
+ */
142
+ push(inputs) {
143
+ const next = Object.create(this);
144
+ this.cleanup = /* @__PURE__ */ new Set([() => next.pop(), ...this.cleanup]);
145
+ next.inputs = {};
146
+ next.cleanup = /* @__PURE__ */ new Set();
147
+ if (inputs) next.use(inputs);
148
+ return next;
149
+ }
150
+ /**
151
+ * Remove all States from this context.
152
+ *
153
+ * Will also run any cleanup callbacks registered when States were added.
154
+ */
155
+ pop() {
156
+ for (const key2 of Object.getOwnPropertySymbols(this)) delete this[key2];
157
+ this.cleanup.forEach((cb) => cb());
158
+ this.cleanup.clear();
159
+ this.inputs = {};
160
+ }
145
161
  }
162
+ Object.defineProperty(Context.prototype, "toString", {
163
+ value() {
164
+ return `Context-${this.id}`;
165
+ }
166
+ });
146
167
  export {
147
168
  Context
148
169
  };
149
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2NvbnRleHQudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IGFkZExpc3RlbmVyIH0gZnJvbSAnLi9jb250cm9sJztcbmltcG9ydCB7IGV2ZW50LCBNb2RlbCwgUEFSRU5ULCB1aWQgfSBmcm9tICcuL21vZGVsJztcblxuY29uc3QgTE9PS1VQID0gbmV3IFdlYWtNYXA8TW9kZWwsIENvbnRleHQgfCAoKGdvdDogQ29udGV4dCkgPT4gdm9pZClbXT4oKTtcbmNvbnN0IEtFWVMgPSBuZXcgTWFwPHN5bWJvbCB8IE1vZGVsLlR5cGUsIHN5bWJvbD4oKTtcblxuZnVuY3Rpb24ga2V5KFQ6IE1vZGVsLlR5cGUgfCBzeW1ib2wsIHVwc3RyZWFtPzogYm9vbGVhbik6IHN5bWJvbCB7XG4gIGxldCBLID0gS0VZUy5nZXQoVCk7XG5cbiAgaWYoIUspXG4gICAgS0VZUy5zZXQoVCwgSyA9IFN5bWJvbChcbiAgICAgIHR5cGVvZiBUID09IFwic3ltYm9sXCIgPyBcImdldCBcIiArIFQuZGVzY3JpcHRpb24gOiBTdHJpbmcoVClcbiAgICApKTtcbiAgXG4gIHJldHVybiB1cHN0cmVhbSA/IGtleShLKSA6IEs7XG59XG5cbmZ1bmN0aW9uIGtleXMoZnJvbTogTW9kZWwuVHlwZSwgdXBzdHJlYW0/OiBib29sZWFuKXtcbiAgY29uc3Qga2V5cyA9IG5ldyBTZXQ8c3ltYm9sPigpO1xuXG4gIGRvIHtcbiAgICBrZXlzLmFkZChrZXkoZnJvbSwgdXBzdHJlYW0pKTtcbiAgfVxuICB3aGlsZSgoZnJvbSA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihmcm9tKSkgIT09IE1vZGVsKTtcblxuICByZXR1cm4ga2V5cztcbn1cblxuZGVjbGFyZSBuYW1lc3BhY2UgQ29udGV4dCB7XG4gIHR5cGUgTXVsdGlwbGU8VCBleHRlbmRzIE1vZGVsPiA9IHtcbiAgICBba2V5OiBzdHJpbmcgfCBudW1iZXJdOiBNb2RlbC5Jbml0PFQ+IHwgVDtcbiAgfTtcblxuICB0eXBlIEFjY2VwdDxUIGV4dGVuZHMgTW9kZWwgPSBNb2RlbD4gPSBUIHwgTW9kZWwuSW5pdDxUPiB8IE11bHRpcGxlPFQ+O1xuXG4gIHR5cGUgRXhwZWN0PFQgZXh0ZW5kcyBNb2RlbCA9IE1vZGVsPiA9IChtb2RlbDogVCkgPT4gKCgpID0+IHZvaWQpIHwgdm9pZDtcbn1cblxuaW50ZXJmYWNlIENvbnRleHQge1xuICBba2V5OiBzeW1ib2xdOiBNb2RlbCB8IENvbnRleHQuRXhwZWN0IHwgbnVsbCB8IHVuZGVmaW5lZDtcbn1cblxuY2xhc3MgQ29udGV4dCB7XG4gIHN0YXRpYyBnZXQ8VCBleHRlbmRzIE1vZGVsPihvbjogTW9kZWwsIGNhbGxiYWNrOiAoKGdvdDogQ29udGV4dCkgPT4gdm9pZCkpOiB2b2lkO1xuICBzdGF0aWMgZ2V0PFQgZXh0ZW5kcyBNb2RlbD4ob246IE1vZGVsKTogQ29udGV4dCB8IHVuZGVmaW5lZDtcbiAgc3RhdGljIGdldCh7IGlzIH06IE1vZGVsLCBjYWxsYmFjaz86IChnb3Q6IENvbnRleHQpID0+IHZvaWQpe1xuICAgIGNvbnN0IHdhaXRpbmcgPSBMT09LVVAuZ2V0KGlzKTtcblxuICAgIGlmKHdhaXRpbmcgaW5zdGFuY2VvZiBDb250ZXh0KXtcbiAgICAgIGlmKGNhbGxiYWNrKVxuICAgICAgICBjYWxsYmFjayh3YWl0aW5nKTtcblxuICAgICAgcmV0dXJuIHdhaXRpbmc7XG4gICAgfVxuXG4gICAgaWYoY2FsbGJhY2spXG4gICAgICBpZih3YWl0aW5nKSBcbiAgICAgICAgd2FpdGluZy5wdXNoKGNhbGxiYWNrKTtcbiAgICAgIGVsc2UgXG4gICAgICAgIExPT0tVUC5zZXQoaXMsIFtjYWxsYmFja10pO1xuICB9XG5cbiAgcHVibGljIGlkITogc3RyaW5nO1xuXG4gIHByb3RlY3RlZCBsYXllciA9IG5ldyBNYXA8c3RyaW5nIHwgbnVtYmVyLCBNb2RlbCB8IE1vZGVsLlR5cGU+KCk7XG4gIHByb3RlY3RlZCBjbGVhbnVwID0gbmV3IFNldDwoKSA9PiB2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKGlucHV0cz86IENvbnRleHQuQWNjZXB0KXtcbiAgICBpZihpbnB1dHMpXG4gICAgICB0aGlzLmluY2x1ZGUoaW5wdXRzKTtcbiAgfVxuXG4gIC8qKiBSdW4gY2FsbGJhY2sgd2hlbiBhIHNwZWNpZmllZCB0eXBlIGlzIHJlZ2lzdGVyZWQgdG8gYSAqKmNoaWxkKiogY29udGV4dC4gKi9cbiAgcHVibGljIGhhczxUIGV4dGVuZHMgTW9kZWw+KFR5cGU6IE1vZGVsLlR5cGU8VD4sIGNhbGxiYWNrOiAobW9kZWw6IFQpID0+IHZvaWQpe1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBrZXkoVHlwZSwgdHJ1ZSksIHsgdmFsdWU6IGNhbGxiYWNrLCBjb25maWd1cmFibGU6IHRydWUgfSk7XG4gIH1cblxuICAvKiogRmluZCBzcGVjaWZpZWQgdHlwZSByZWdpc3RlcmVkIHRvIGEgcGFyZW50IGNvbnRleHQuIFJldHVybnMgdW5kZWZpbmVkIGlmIG5vbmUgYXJlIGZvdW5kLiAqL1xuICBwdWJsaWMgZ2V0PFQgZXh0ZW5kcyBNb2RlbD4oVHlwZTogTW9kZWwuVHlwZTxUPiwgcmVxdWlyZTogdHJ1ZSk6IFQ7XG4gIHB1YmxpYyBnZXQ8VCBleHRlbmRzIE1vZGVsPihUeXBlOiBNb2RlbC5UeXBlPFQ+LCByZXF1aXJlPzogYm9vbGVhbik6IFQgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBnZXQ8VCBleHRlbmRzIE1vZGVsPihUeXBlOiBNb2RlbC5UeXBlPFQ+LCByZXF1aXJlPzogYm9vbGVhbil7XG4gICAgY29uc3QgcmVzdWx0ID0gdGhpc1trZXkoVHlwZSldO1xuXG4gICAgaWYocmVzdWx0ID09PSBudWxsKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBEaWQgZmluZCAke1R5cGV9IGluIGNvbnRleHQsIGJ1dCBtdWx0aXBsZSB3ZXJlIGRlZmluZWQuYCk7XG5cbiAgICBpZihyZXN1bHQpXG4gICAgICByZXR1cm4gcmVzdWx0IGFzIFQ7XG5cbiAgICBpZihyZXF1aXJlKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgZmluZCAke1R5cGV9IGluIGNvbnRleHQuYCk7XG4gIH1cblxuICBwdWJsaWMgcHVzaChpbnB1dHM/OiBDb250ZXh0LkFjY2VwdCl7XG4gICAgY29uc3QgbmV4dCA9IE9iamVjdC5jcmVhdGUodGhpcykgYXMgdGhpcztcblxuICAgIHRoaXMuY2xlYW51cCA9IG5ldyBTZXQoWygpID0+IG5leHQucG9wKCksIC4uLnRoaXMuY2xlYW51cF0pO1xuXG4gICAgbmV4dC5sYXllciA9IG5ldyBNYXAoKTtcbiAgICBuZXh0LmNsZWFudXAgPSBuZXcgU2V0KCk7XG5cbiAgICBpZihpbnB1dHMpXG4gICAgICBuZXh0LmluY2x1ZGUoaW5wdXRzKTtcblxuICAgIHJldHVybiBuZXh0O1xuICB9XG5cbiAgcHVibGljIHBvcCgpe1xuICAgIGZvcihjb25zdCBrZXkgb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0aGlzKSlcbiAgICAgIGRlbGV0ZSAodGhpcyBhcyBhbnkpW2tleV07XG5cbiAgICB0aGlzLmNsZWFudXAuZm9yRWFjaChjYiA9PiBjYigpKTtcbiAgICB0aGlzLmNsZWFudXAuY2xlYXIoKTtcbiAgICB0aGlzLmxheWVyLmNsZWFyKCk7XG4gIH1cblxuICBwdWJsaWMgaW5jbHVkZTxUIGV4dGVuZHMgTW9kZWw+KFxuICAgIGlucHV0czogQ29udGV4dC5BY2NlcHQ8VD4sXG4gICAgZm9yRWFjaD86IENvbnRleHQuRXhwZWN0PFQ+XG4gICl7XG4gICAgY29uc3QgaW5pdCA9IG5ldyBNYXA8TW9kZWwsIGJvb2xlYW4+KCk7XG5cbiAgICBpZih0eXBlb2YgaW5wdXRzID09IFwiZnVuY3Rpb25cIiB8fCBpbnB1dHMgaW5zdGFuY2VvZiBNb2RlbClcbiAgICAgIGlucHV0cyA9IHsgW2ZvckVhY2ggPyAwIDogdGhpcy5sYXllci5zaXplXTogaW5wdXRzIH07XG5cbiAgICBPYmplY3QuZW50cmllcyhpbnB1dHMpLmZvckVhY2goKFtLLCBWXTogW3N0cmluZywgTW9kZWwgfCBNb2RlbC5Jbml0PE1vZGVsPl0pID0+IHtcbiAgICAgIGlmKE1vZGVsLmlzKFYpIHx8IFYgaW5zdGFuY2VvZiBNb2RlbCl7XG4gICAgICAgIGNvbnN0IGV4aXN0cyA9IHRoaXMubGF5ZXIuZ2V0KEspO1xuICBcbiAgICAgICAgaWYoIWV4aXN0cyl7XG4gICAgICAgICAgY29uc3QgaW5zdGFuY2UgPSB0aGlzLmFkZChWKTtcbiAgXG4gICAgICAgICAgdGhpcy5sYXllci5zZXQoSywgVik7XG4gICAgICAgICAgaW5pdC5zZXQoaW5zdGFuY2UsIHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIC8vIENvbnRleHQgbXVzdCBmb3JjZS1yZXNldCBiZWNhdXNlIGlucHV0cyBhcmUgbm8gbG9uZ2VyIHNhZmUuXG4gICAgICAgIGVsc2UgaWYoZXhpc3RzICE9PSBWKXsgICAgXG4gICAgICAgICAgdGhpcy5wb3AoKTtcbiAgICAgICAgICB0aGlzLmlkID0gdWlkKCk7XG4gICAgICAgICAgdGhpcy5pbmNsdWRlKGlucHV0cyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYENvbnRleHQgbWF5IG9ubHkgaW5jbHVkZSBpbnN0YW5jZSBvciBjbGFzcyBcXGBleHRlbmRzIE1vZGVsXFxgIGJ1dCBnb3QgJHtcbiAgICAgICAgICBLID09ICcwJyB8fCBLID09IFYgPyBWIDogYCR7Vn0gKGFzICcke0t9JylgXG4gICAgICAgIH0uYFxuICAgICAgKTtcbiAgICB9KVxuXG4gICAgZm9yKGNvbnN0IFttb2RlbCwgZXhwbGljaXRdIG9mIGluaXQpe1xuICAgICAgbW9kZWwuc2V0KCk7XG5cbiAgICAgIGlmKGV4cGxpY2l0ICYmIGZvckVhY2gpXG4gICAgICAgIGZvckVhY2gobW9kZWwgYXMgVCk7XG5cbiAgICAgIGZvcihjb25zdCBbX2tleSwgdmFsdWVdIG9mIG1vZGVsKVxuICAgICAgICBpZihQQVJFTlQuZ2V0KHZhbHVlIGFzIE1vZGVsKSA9PT0gbW9kZWwpe1xuICAgICAgICAgIHRoaXMuYWRkKHZhbHVlIGFzIE1vZGVsLCB0cnVlKTtcbiAgICAgICAgICBpbml0LnNldCh2YWx1ZSBhcyBNb2RlbCwgZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGFkZDxUIGV4dGVuZHMgTW9kZWw+KFxuICAgIGlucHV0OiBUIHwgTW9kZWwuSW5pdDxUPixcbiAgICBpbXBsaWNpdD86IGJvb2xlYW4pe1xuXG4gICAgY29uc3QgY2xlYW51cCA9IG5ldyBTZXQ8KCkgPT4gdm9pZD4oKTtcbiAgICBsZXQgVDogTW9kZWwuVHlwZTxUPjtcbiAgICBsZXQgSTogVDtcblxuICAgIGlmKHR5cGVvZiBpbnB1dCA9PSBcImZ1bmN0aW9uXCIpe1xuICAgICAgVCA9IGlucHV0O1xuICAgICAgSSA9IG5ldyBpbnB1dCgpIGFzIFQ7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgVCA9IGlucHV0LmNvbnN0cnVjdG9yIGFzIE1vZGVsLlR5cGU8VD47XG4gICAgICBJID0gaW5wdXQ7XG4gICAgfVxuXG4gICAga2V5cyhULCB0cnVlKS5mb3JFYWNoKEsgPT4ge1xuICAgICAgY29uc3QgZXhwZWN0cyA9IHRoaXNbS10gYXMgQ29udGV4dC5FeHBlY3QgfCB1bmRlZmluZWQ7XG4gIFxuICAgICAgaWYoIWV4cGVjdHMpXG4gICAgICAgIHJldHVybjtcbiAgXG4gICAgICBhZGRMaXN0ZW5lcihJLCBldmVudCA9PiB7XG4gICAgICAgIGlmKGV2ZW50ID09PSB0cnVlKXtcbiAgICAgICAgICBjb25zdCBjYWxsYmFjayA9IGV4cGVjdHMoSSk7XG4gICAgICAgICAgICBcbiAgICAgICAgICBpZihjYWxsYmFjaylcbiAgICAgICAgICAgIGNsZWFudXAuYWRkKGNhbGxiYWNrKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfSkgIFxuICAgIH0pO1xuXG4gICAga2V5cyhUKS5mb3JFYWNoKEsgPT4ge1xuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmhhc093blByb3BlcnR5KEspID8gbnVsbCA6IEk7XG5cbiAgICAgIGlmKHZhbHVlIHx8IHRoaXNbS10gIT09IEkgJiYgIWltcGxpY2l0KVxuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgSywge1xuICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgICB2YWx1ZVxuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgIHRoaXMuY2xlYW51cC5hZGQoKCkgPT4ge1xuICAgICAgY2xlYW51cC5mb3JFYWNoKGNiID0+IGNiKCkpO1xuXG4gICAgICBpZihJICE9PSBpbnB1dClcbiAgICAgICAgZXZlbnQoSSwgbnVsbCk7XG4gICAgfSlcblxuICAgIGNvbnN0IHdhaXRpbmcgPSBMT09LVVAuZ2V0KEkpO1xuICBcbiAgICBpZih3YWl0aW5nIGluc3RhbmNlb2YgQXJyYXkpXG4gICAgICB3YWl0aW5nLmZvckVhY2goY2IgPT4gY2IodGhpcykpO1xuXG4gICAgTE9PS1VQLnNldChJLCB0aGlzKTtcblxuICAgIHJldHVybiBJO1xuICB9XG59XG5cbmV4cG9ydCB7IENvbnRleHQgfSJdLAogICJtYXBwaW5ncyI6ICJBQUFBLFNBQVMsbUJBQW1CO0FBQzVCLFNBQVMsT0FBTyxPQUFPLFFBQVEsV0FBVztBQUUxQyxNQUFNLFNBQVMsb0JBQUksUUFBcUQ7QUFDeEUsTUFBTSxPQUFPLG9CQUFJLElBQWlDO0FBRWxELFNBQVMsSUFBSSxHQUF3QixVQUE0QjtBQUMvRCxNQUFJLElBQUksS0FBSyxJQUFJLENBQUM7QUFFbEIsTUFBRyxDQUFDO0FBQ0YsU0FBSyxJQUFJLEdBQUcsSUFBSTtBQUFBLE1BQ2QsT0FBTyxLQUFLLFdBQVcsU0FBUyxFQUFFLGNBQWMsT0FBTyxDQUFDO0FBQUEsSUFDMUQsQ0FBQztBQUVILFNBQU8sV0FBVyxJQUFJLENBQUMsSUFBSTtBQUM3QjtBQUVBLFNBQVMsS0FBSyxNQUFrQixVQUFtQjtB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LElBQ0YsQ0FBQztBQUVELGVBQVUsQ0FBQyxPQUFPLFFBQVEsS0FBSyxNQUFLO0FBQ2xDLFlBQU0sSUFBSTtBQUVWLFVBQUcsWUFBWTtBQUNiLGdCQUFRLEtBQVU7QUFFcEIsaUJBQVUsQ0FBQyxNQUFNLEtBQUssS0FBSztBQUN6QixZQUFHLE9BQU8sSUFBSSxLQUFjLE1BQU0sT0FBTTtBQUN0QyxlQUFLLElBQUksT0FBZ0IsSUFBSTtBQUM3QixlQUFLLElBQUksT0FBZ0IsS0FBSztBQUFBLFFBQ2hDO0FBQUEsSUFDSjtBQUFBLEVBQ0Y7QUFBQSxFQUVVLElBQ1IsT0FDQSxVQUFtQjtBQUVuQixVQUFNLFVBQVUsb0JBQUksSUFBZ0I7QUFDcEMsUUFBSTtBQUNKLFFBQUk7QUFFSixRQUFHLE9BQU8sU0FBUyxZQUFXO0FBQzVCLFVBQUk7QUFDSixVQUFJLElBQUksTUFBTTtBQUFBLElBQ2hCLE9BQ0s7QUFDSCxVQUFJLE1BQU07QUFDVixVQUFJO0FBQUEsSUFDTjtBQUVBLFNBQUssR0FBRyxJQUFJLEVBQUUsUUFBUSxPQUFLO0FBQ3pCLFlBQU0sVUFBVSxLQUFLLENBQUM7QUFFdEIsVUFBRyxDQUFDO0FBQ0Y7QUFFRixrQkFBWSxHQUFHLENBQUFDLFdBQVM7QUFDdEIsWUFBR0EsV0FBVSxNQUFLO0FBQ2hCLGdCQUFNLFdBQVcsUUFBUSxDQUFDO0FBRTFCLGNBQUc7QUFDRCxvQkFBUSxJQUFJLFFBQVE7QUFBQSxRQUN4QjtBQUVBLGVBQU87QUFBQSxNQUNULENBQUM7QUFBQSxJQUNILENBQUM7QUFFRCxTQUFLLENBQUMsRUFBRSxRQUFRLE9BQUs7QUFDbkIsWUFBTSxRQUFRLEtBQUssZUFBZSxDQUFDLElBQUksT0FBTztBQUU5QyxVQUFHLFNBQVMsS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDO0FBQzVCLGVBQU8sZUFBZSxNQUFNLEdBQUc7QUFBQSxVQUM3QixjQUFjO0FBQUEsVUFDZDtBQUFBLFFBQ0YsQ0FBQztBQUFBLElBQ0wsQ0FBQztBQUVELFNBQUssUUFBUSxJQUFJLE1BQU07QUFDckIsY0FBUSxRQUFRLFFBQU0sR0FBRyxDQUFDO0FBRTFCLFVBQUcsTUFBTTtBQUNQLGNBQU0sR0FBRyxJQUFJO0FBQUEsSUFDakIsQ0FBQztBQUVELFVBQU0sVUFBVSxPQUFPLElBQUksQ0FBQztBQUU1QixRQUFHLG1CQUFtQjtBQUNwQixjQUFRLFFBQVEsUUFBTSxHQUFHLElBQUksQ0FBQztBQUVoQyxXQUFPLElBQUksR0FBRyxJQUFJO0FBRWxCLFdBQU87QUFBQSxFQUNUO0FBQ0Y7IiwKICAibmFtZXMiOiBbImtleXMiLCAicmVxdWlyZSIsICJrZXkiLCAiZXZlbnQiXQp9Cg==
170
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2NvbnRleHQudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IGFkZExpc3RlbmVyIH0gZnJvbSAnLi9jb250cm9sJztcbmltcG9ydCB7IGV2ZW50LCBTdGF0ZSwgUEFSRU5ULCB1aWQgfSBmcm9tICcuL3N0YXRlJztcblxuY29uc3QgTE9PS1VQID0gbmV3IFdlYWtNYXA8U3RhdGUsIENvbnRleHQgfCAoKGdvdDogQ29udGV4dCkgPT4gdm9pZClbXT4oKTtcbmNvbnN0IEtFWVMgPSBuZXcgTWFwPHN5bWJvbCB8IFN0YXRlLkV4dGVuZHMsIHN5bWJvbD4oKTtcblxuZnVuY3Rpb24ga2V5KFQ6IFN0YXRlLkV4dGVuZHMgfCBzeW1ib2wsIHVwc3RyZWFtPzogYm9vbGVhbik6IHN5bWJvbCB7XG4gIGxldCBLID0gS0VZUy5nZXQoVCk7XG5cbiAgaWYgKCFLKSB7XG4gICAgSyA9IFN5bWJvbCh0eXBlb2YgVCA9PSAnc3ltYm9sJyA/ICdnZXQgJyArIFQuZGVzY3JpcHRpb24gOiBTdHJpbmcoVCkpO1xuICAgIEtFWVMuc2V0KFQsIEspO1xuICB9XG5cbiAgcmV0dXJuIHVwc3RyZWFtID8ga2V5KEspIDogSztcbn1cblxuZnVuY3Rpb24ga2V5cyhmcm9tOiBTdGF0ZS5FeHRlbmRzLCB1cHN0cmVhbT86IGJvb2xlYW4pIHtcbiAgY29uc3Qga2V5cyA9IG5ldyBTZXQ8c3ltYm9sPigpO1xuXG4gIGRvIHtcbiAgICBrZXlzLmFkZChrZXkoZnJvbSwgdXBzdHJlYW0pKTtcbiAgICBmcm9tID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKGZyb20pO1xuICB9IHdoaWxlIChmcm9tICE9PSBTdGF0ZSk7XG5cbiAgcmV0dXJuIGtleXM7XG59XG5cbmRlY2xhcmUgbmFtZXNwYWNlIENvbnRleHQge1xuICB0eXBlIE11bHRpcGxlPFQgZXh0ZW5kcyBTdGF0ZT4gPSB7XG4gICAgW2tleTogc3RyaW5nIHwgbnVtYmVyXTogU3RhdGUuQ2xhc3M8VD4gfCBUO1xuICB9O1xuXG4gIHR5cGUgQWNjZXB0PFQgZXh0ZW5kcyBTdGF0ZSA9IFN0YXRlPiA9IFQgfCBTdGF0ZS5DbGFzczxUPiB8IE11bHRpcGxlPFQ+O1xuXG4gIHR5cGUgRXhwZWN0PFQgZXh0ZW5kcyBTdGF0ZSA9IFN0YXRlPiA9IChzdGF0ZTogVCkgPT4gKCgpID0+IHZvaWQpIHwgdm9pZDtcbn1cblxuaW50ZXJmYWNlIENvbnRleHQge1xuICBba2V5OiBzeW1ib2xdOiBTdGF0ZSB8IENvbnRleHQuRXhwZWN0IHwgbnVsbCB8IHVuZGVmaW5lZDtcbn1cblxuY2xhc3MgQ29udGV4dCB7XG4gIC8qKlxuICAgKiBHZXQgdGhlIGNvbnRleHQgZm9yIGEgc3BlY2lmaWVkIFN0YXRlLiBJZiBhIGNhbGxiYWNrIGlzIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHJ1biB3aGVuXG4gICAqIHRoZSBjb250ZXh0IGJlY29tZXMgYXZhaWxhYmxlLlxuICAgKi9cbiAgc3RhdGljIGdldDxUIGV4dGVuZHMgU3RhdGU+KFxuICAgIG9uOiBTdGF0ZSxcbiAgICBjYWxsYmFjazogKGdvdDogQ29udGV4dCkgPT4gdm9pZFxuICApOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGNvbnRleHQgZm9yIGEgc3BlY2lmaWVkIFN0YXRlLiBSZXR1cm5zIHVuZGVmaW5lZCBpZiBub25lIGFyZSBmb3VuZC5cbiAgICovXG4gIHN0YXRpYyBnZXQ8VCBleHRlbmRzIFN0YXRlPihvbjogU3RhdGUpOiBDb250ZXh0IHwgdW5kZWZpbmVkO1xuXG4gIHN0YXRpYyBnZXQoeyBpcyB9OiBTdGF0ZSwgY2FsbGJhY2s/OiAoZ290OiBDb250ZXh0KSA9PiB2b2lkKSB7XG4gICAgY29uc3QgY29udGV4dCA9IExPT0tVUC5nZXQoaXMpO1xuXG4gICAgaWYgKGNvbnRleHQgaW5zdGFuY2VvZiBDb250ZXh0KSB7XG4gICAgICBpZiAoY2FsbGJhY2spIGNhbGxiYWNrKGNvbnRleHQpO1xuICAgICAgcmV0dXJuIGNvbnRleHQ7XG4gICAgfVxuXG4gICAgaWYgKGNhbGxiYWNrKVxuICAgICAgaWYgKGNvbnRleHQpIGNvbnRleHQucHVzaChjYWxsYmFjayk7XG4gICAgICBlbHNlIExPT0tVUC5zZXQoaXMsIFtjYWxsYmFja10pO1xuICB9XG5cbiAgcHVibGljIGlkID0gdWlkKCk7XG5cbiAgcHJvdGVjdGVkIGlucHV0cyA9IHt9IGFzIFJlY29yZDxzdHJpbmcgfCBudW1iZXIsIFN0YXRlIHwgU3RhdGUuRXh0ZW5kcz47XG4gIHByb3RlY3RlZCBjbGVhbnVwID0gbmV3IFNldDwoKSA9PiB2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKGlucHV0cz86IENvbnRleHQuQWNjZXB0KSB7XG4gICAgaWYgKGlucHV0cykgdGhpcy51c2UoaW5wdXRzKTtcbiAgfVxuXG4gIC8qKiBGaW5kIHNwZWNpZmllZCB0eXBlIHJlZ2lzdGVyZWQgdG8gYSBwYXJlbnQgY29udGV4dC4gVGhyb3dzIGlmIG5vbmUgYXJlIGZvdW5kLiAqL1xuICBwdWJsaWMgZ2V0PFQgZXh0ZW5kcyBTdGF0ZT4oVHlwZTogU3RhdGUuRXh0ZW5kczxUPiwgcmVxdWlyZTogdHJ1ZSk6IFQ7XG5cbiAgLyoqIEZpbmQgc3BlY2lmaWVkIHR5cGUgcmVnaXN0ZXJlZCB0byBhIHBhcmVudCBjb250ZXh0LiBSZXR1cm5zIHVuZGVmaW5lZCBpZiBub25lIGFyZSBmb3VuZC4gKi9cbiAgcHVibGljIGdldDxUIGV4dGVuZHMgU3RhdGU+KFxuICAgIFR5cGU6IFN0YXRlLkV4dGVuZHM8VD4sXG4gICAgcmVxdWlyZT86IGJvb2xlYW5cbiAgKTogVCB8IHVuZGVmaW5lZDtcblxuICAvKiogUnVuIGNhbGxiYWNrIHdoZW4gYSBzcGVjaWZpZWQgdHlwZSBpcyByZWdpc3RlcmVkIGluIGNvbnRleHQgZG93bnN0cmVhbS4gKi9cbiAgcHVibGljIGdldDxUIGV4dGVuZHMgU3RhdGU+KFxuICAgIFR5cGU6IFN0YXRlLkV4dGVuZHM8VD4sXG4gICAgY2FsbGJhY2s6IChzdGF0ZTogVCkgPT4gdm9pZFxuICApOiAoKSA9PiB2b2lkO1xuXG4gIHB1YmxpYyBnZXQ8VCBleHRlbmRzIFN0YXRlPihcbiAgICBUeXBlOiBTdGF0ZS5FeHRlbmRzPFQ+LFxuICAgIGFyZzI/OiBib29sZWFuIHwgKChzdGF0ZTogVCkgPT4gdm9pZClcbiAgKSB7XG4gICAgaWYgKHR5cGVvZiBhcmcyID09ICdmdW5jdGlvbicpIHtcbiAgICAgIGNvbnN0IGsgPSBrZXkoVHlwZSwgdHJ1ZSk7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgaywge1xuICAgICAgICB2YWx1ZTogYXJnMixcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICB9KTtcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGRlbGV0ZSB0aGlzW2tdO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSB0aGlzW2tleShUeXBlKV07XG5cbiAgICBpZiAocmVzdWx0ID09PSBudWxsKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgRGlkIGZpbmQgJHtUeXBlfSBpbiBjb250ZXh0LCBidXQgbXVsdGlwbGUgd2VyZSBkZWZpbmVkLmBcbiAgICAgICk7XG5cbiAgICBpZiAocmVzdWx0KSByZXR1cm4gcmVzdWx0IGFzIFQ7XG5cbiAgICBpZiAoYXJnMikgdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgZmluZCAke1R5cGV9IGluIGNvbnRleHQuYCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIFN0YXRlIHRvIHRoaXMgY29udGV4dC5cbiAgICovXG4gIHByb3RlY3RlZCBhZGQ8VCBleHRlbmRzIFN0YXRlPihcbiAgICBpbnB1dDogVCB8IFN0YXRlLkNsYXNzPFQ+LFxuICAgIGltcGxpY2l0PzogYm9vbGVhblxuICApIHtcbiAgICBjb25zdCBjbGVhbnVwID0gbmV3IFNldDwoKSA9PiB2b2lkPigpO1xuICAgIGxldCBUOiBTdGF0ZS5FeHRlbmRzPFQ+O1xuICAgIGxldCBJOiBUO1xuXG4gICAgaWYgKHR5cGVvZiBpbnB1dCA9PSAnZnVuY3Rpb24nKSB7XG4gICAgICBUID0gaW5wdXQ7XG4gICAgICBJID0gbmV3IGlucHV0KCkgYXMgVDtcbiAgICB9IGVsc2Uge1xuICAgICAgVCA9IGlucHV0LmNvbnN0cnVjdG9yIGFzIFN0YXRlLkV4dGVuZHM8VD47XG4gICAgICBJID0gaW5wdXQ7XG4gICAgfVxuXG4gICAga2V5cyhULCB0cnVlKS5mb3JFYWNoKChLKSA9PiB7XG4gICAgICBjb25zdCBleHBlY3RzID0gdGhpc1tLXSBhcyBDb250ZXh0LkV4cGVjdCB8IHVuZGVmaW5lZDtcblxuICAgICAgaWYgKGV4cGVjdHMpXG4gICAgICAgIGFkZExpc3RlbmVyKEksIChldmVudCkgPT4ge1xuICAgICAgICAgIGlmIChldmVudCA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgY29uc3QgY2IgPSBleHBlY3RzKEkpO1xuICAgICAgICAgICAgaWYgKGNiKSBjbGVhbnVwLmFkZChjYik7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAga2V5cyhUKS5mb3JFYWNoKChLKSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuaGFzT3duUHJvcGVydHkoSykgPyBudWxsIDogSTtcblxuICAgICAgaWYgKHZhbHVlIHx8ICh0aGlzW0tdICE9PSBJICYmICFpbXBsaWNpdCkpXG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBLLCB7XG4gICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICAgIHZhbHVlXG4gICAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgdGhpcy5jbGVhbnVwLmFkZCgoKSA9PiB7XG4gICAgICBjbGVhbnVwLmZvckVhY2goKGNiKSA9PiBjYigpKTtcbiAgICAgIGlmIChJICE9PSBpbnB1dCkgZXZlbnQoSSwgbnVsbCk7XG4gICAgfSk7XG5cbiAgICBjb25zdCB3YWl0aW5nID0gTE9PS1VQLmdldChJKTtcblxuICAgIGlmICh3YWl0aW5nIGluc3RhbmNlb2YgQXJyYXkpIHdhaXRpbmcuZm9yRWFjaCgoY2IpID0+IGNiKHRoaXMpKTtcblxuICAgIExPT0tVUC5zZXQoSSwgdGhpcyk7XG5cbiAgICByZXR1cm4gSTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlciBvbmUgb3IgbW9yZSBTdGF0ZXMgdG8gdGhpcyBjb250ZXh0LlxuICAgKlxuICAgKiBDb250ZXh0IHdpbGwgYWRkIG9yIHJlbW92ZSBTdGF0ZXMgYXMgbmVlZGVkIHRvIGtlZXAgd2l0aCBwcm92aWRlZCBpbnB1dC5cbiAgICpcbiAgICogQHBhcmFtIGlucHV0cyBTdGF0ZSwgU3RhdGUgY2xhc3MsIG9yIG1hcCBvZiBTdGF0ZXMgLyBTdGF0ZSBjbGFzc2VzIHRvIHJlZ2lzdGVyLlxuICAgKiBAcGFyYW0gZm9yRWFjaCBPcHRpb25hbCBjYWxsYmFjayB0byBydW4gZm9yIGVhY2ggU3RhdGUgcmVnaXN0ZXJlZC5cbiAgICovXG4gIHB1YmxpYyB1c2U8VCBleHRlbmRzIFN0YXRlPihcbiAgICBpbnB1dHM6IENvbnRleHQuQWNjZXB0PFQ+LFxuICAgIGZvckVhY2g/OiBDb250ZXh0LkV4cGVjdDxUPlxuICApIHtcbiAgICBjb25zdCBpbml0ID0gbmV3IE1hcDxTdGF0ZSwgYm9vbGVhbj4oKTtcblxuICAgIGlmICh0eXBlb2YgaW5wdXRzID09ICdmdW5jdGlvbicgfHwgaW5wdXRzIGluc3RhbmNlb2YgU3RhdGUpXG4gICAgICBpbnB1dHMgPSB7IFswXTogaW5wdXRzIH07XG5cbiAgICBmb3IgKGNvbnN0IFtLLCBWXSBvZiBPYmplY3QuZW50cmllcyhpbnB1dHMpKSB7XG4gICAgICBpZiAoIShTdGF0ZS5pcyhWKSB8fCBWIGluc3RhbmNlb2YgU3RhdGUpKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYENvbnRleHQgbWF5IG9ubHkgaW5jbHVkZSBpbnN0YW5jZSBvciBjbGFzcyBcXGBleHRlbmRzIFN0YXRlXFxgIGJ1dCBnb3QgJHtcbiAgICAgICAgICAgIEsgPT0gJzAnIHx8IEsgPT0gU3RyaW5nKFYpID8gViA6IGAke1Z9IChhcyAnJHtLfScpYFxuICAgICAgICAgIH0uYFxuICAgICAgICApO1xuXG4gICAgICBjb25zdCBleGlzdHMgPSB0aGlzLmlucHV0c1tLXTtcblxuICAgICAgaWYgKCFleGlzdHMpIHtcbiAgICAgICAgaW5pdC5zZXQodGhpcy5hZGQoViksIHRydWUpO1xuICAgICAgfVxuICAgICAgLy8gQ29udGV4dCBtdXN0IGZvcmNlLXJlc2V0IGJlY2F1c2UgaW5wdXRzIGFyZSBubyBsb25nZXIgc2FmZSxcbiAgICAgIC8vIGhvd2V2ZXIgcHJvYmFibHkgc2hvdWxkIGRvIHRoYXQgb24gYSBwZXItc3RhdGUgYmFzaXMuXG4gICAgICBlbHNlIGlmIChleGlzdHMgIT09IFYpIHtcbiAgICAgICAgdGhpcy5wb3AoKTtcbiAgICAgICAgdGhpcy51c2UoaW5wdXRzKTtcbiAgICAgICAgdGhpcy5pZCA9IHVpZCgpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBbc3RhdGUsIGV4cGxpY2l0XSBvZiBpbml0KSB7XG4gICAgICBzdGF0ZS5zZXQoKTtcblxuICAgICAgaWYgKGV4cGxpY2l0ICYmIGZvckVhY2gpIGZvckVhY2goc3RhdGUgYXMgVCk7XG5cbiAgICAgIGZvciAoY29uc3QgW19rZXksIHZhbHVlXSBvZiBzdGF0ZSlcbiAgICAgICAgaWYgKFBBUkVOVC5nZXQodmFsdWUgYXMgU3RhdGUpID09PSBzdGF0ZSkge1xuICAgICAgICAgIHRoaXMuYWRkKHZhbHVlIGFzIFN0YXRlLCB0cnVlKTtcbiAgICAgICAgICBpbml0LnNldCh2YWx1ZSBhcyBTdGF0ZSwgZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5pbnB1dHMgPSBpbnB1dHM7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgY2hpbGQgY29udGV4dCwgb3B0aW9uYWxseSByZWdpc3RlcmluZyBvbmUgb3IgbW9yZSBTdGF0ZXMgdG8gaXQuXG4gICAqXG4gICAqIEBwYXJhbSBpbnB1dHMgU3RhdGUsIFN0YXRlIGNsYXNzLCBvciBtYXAgb2YgU3RhdGVzIC8gU3RhdGUgY2xhc3NlcyB0byByZWdpc3Rlci5cbiAgICovXG4gIHB1YmxpYyBwdXNoKGlucHV0cz86IENvbnRleHQuQWNjZXB0KSB7XG4gICAgY29uc3QgbmV4dCA9IE9iamVjdC5jcmVhdGUodGhpcykgYXMgdGhpcztcblxuICAgIHRoaXMuY2xlYW51cCA9IG5ldyBTZXQoWygpID0+IG5leHQucG9wKCksIC4uLnRoaXMuY2xlYW51cF0pO1xuXG4gICAgbmV4dC5pbnB1dHMgPSB7fTtcbiAgICBuZXh0LmNsZWFudXAgPSBuZXcgU2V0KCk7XG5cbiAgICBpZiAoaW5wdXRzKSBuZXh0LnVzZShpbnB1dHMpO1xuXG4gICAgcmV0dXJuIG5leHQ7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGFsbCBTdGF0ZXMgZnJvbSB0aGlzIGNvbnRleHQuXG4gICAqXG4gICAqIFdpbGwgYWxzbyBydW4gYW55IGNsZWFudXAgY2FsbGJhY2tzIHJlZ2lzdGVyZWQgd2hlbiBTdGF0ZXMgd2VyZSBhZGRlZC5cbiAgICovXG4gIHB1YmxpYyBwb3AoKSB7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0aGlzKSkgZGVsZXRlIHRoaXNba2V5XTtcblxuICAgIHRoaXMuY2xlYW51cC5mb3JFYWNoKChjYikgPT4gY2IoKSk7XG4gICAgdGhpcy5jbGVhbnVwLmNsZWFyKCk7XG4gICAgdGhpcy5pbnB1dHMgPSB7fTtcbiAgfVxufVxuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoQ29udGV4dC5wcm90b3R5cGUsICd0b1N0cmluZycsIHtcbiAgdmFsdWUoKSB7XG4gICAgcmV0dXJuIGBDb250ZXh0LSR7dGhpcy5pZH1gO1xuICB9XG59KTtcblxuZXhwb3J0IHsgQ29udGV4dCB9O1xuIl0sCiAgIm1hcHBpbmdzIjogIkFBQUEsU0FB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
@@ -10,40 +10,38 @@ function addListener(subject, callback, select) {
10
10
  LISTENERS.set(subject, listeners = /* @__PURE__ */ new Map([[onReady, void 0]]));
11
11
  if (select !== void 0 && !(select instanceof Set))
12
12
  select = /* @__PURE__ */ new Set([select]);
13
- if (!listeners.has(onReady) && !select)
13
+ if (!listeners.has(onReady) && !select) {
14
14
  callback.call(subject, true, subject);
15
+ }
15
16
  listeners.set(callback, select);
16
17
  return () => listeners.delete(callback);
17
18
  }
18
- function emit(model, key) {
19
- const listeners = LISTENERS.get(model);
19
+ function emit(state, key) {
20
+ const listeners = LISTENERS.get(state);
20
21
  const notReady = listeners.has(onReady);
21
- if (key === true && !notReady)
22
- return;
23
- let pending = PENDING.get(model);
22
+ if (key === true && !notReady) return;
23
+ let pending = PENDING.get(state);
24
24
  if (pending) {
25
25
  pending.add(key);
26
26
  return;
27
27
  }
28
- PENDING.set(model, pending = new Set(notReady ? [true, key] : [key]));
28
+ PENDING.set(state, pending = new Set(notReady ? [true, key] : [key]));
29
29
  for (const key2 of pending)
30
30
  for (const [callback, filter] of listeners)
31
31
  if (!filter || filter.has(key2)) {
32
- const after = callback.call(model, key2, model);
33
- if (after)
32
+ const after = callback.call(state, key2, state);
33
+ if (after) {
34
34
  enqueue(after);
35
- else if (after === null)
35
+ } else if (after === null) {
36
36
  listeners.delete(callback);
37
+ }
37
38
  }
38
- if (key === null)
39
- listeners.clear();
40
- PENDING.delete(model);
39
+ if (key === null) listeners.clear();
40
+ PENDING.delete(state);
41
41
  }
42
42
  function event(subject, key, silent) {
43
- if (key === null)
44
- return emit(subject, key);
45
- if (!key)
46
- return emit(subject, true);
43
+ if (key === null) return emit(subject, key);
44
+ if (!key) return emit(subject, true);
47
45
  let pending = PENDING_KEYS.get(subject);
48
46
  if (!pending) {
49
47
  PENDING_KEYS.set(subject, pending = /* @__PURE__ */ new Set());
@@ -54,8 +52,7 @@ function event(subject, key, silent) {
54
52
  });
55
53
  }
56
54
  pending.add(key);
57
- if (!silent)
58
- emit(subject, key);
55
+ if (!silent) emit(subject, key);
59
56
  }
60
57
  function enqueue(eventHandler) {
61
58
  if (!DISPATCH.size)
@@ -71,14 +68,13 @@ function enqueue(eventHandler) {
71
68
  }, 0);
72
69
  DISPATCH.add(eventHandler);
73
70
  }
74
- function createEffect(target, callback, argument) {
71
+ function watch(target, callback, argument) {
75
72
  let unset;
76
73
  let reset;
77
74
  function invoke() {
78
75
  let ignore = true;
79
76
  function onUpdate() {
80
- if (ignore || reset === null)
81
- return;
77
+ if (ignore || reset === null) return;
82
78
  ignore = true;
83
79
  if (reset && unset) {
84
80
  unset(true);
@@ -94,41 +90,34 @@ function createEffect(target, callback, argument) {
94
90
  ignore = false;
95
91
  reset = output === null ? null : invoke;
96
92
  unset = (key) => {
97
- if (typeof output == "function")
98
- output(key);
93
+ if (typeof output == "function") output(key);
99
94
  flush();
100
95
  };
101
96
  } catch (err) {
102
97
  if (err instanceof Promise) {
103
98
  reset = void 0;
104
99
  err.then(invoke);
105
- } else
100
+ } else {
106
101
  throw err;
102
+ }
107
103
  }
108
104
  }
109
105
  function cleanup() {
110
- if (unset)
111
- unset(false);
106
+ if (unset) unset(false);
112
107
  reset = null;
113
108
  }
114
- ;
115
- if (EffectContext && argument !== false)
116
- EffectContext.add(cleanup);
109
+ if (EffectContext && argument !== false) EffectContext.add(cleanup);
117
110
  addListener(target, (key) => {
118
- if (key === true)
119
- invoke();
120
- else if (!reset)
121
- return reset;
122
- if (key === null && unset)
123
- unset(null);
111
+ if (key === true) invoke();
112
+ else if (!reset) return reset;
113
+ if (key === null && unset) unset(null);
124
114
  });
125
115
  return cleanup;
126
116
  }
127
117
  let EffectContext;
128
118
  function enter(ignore) {
129
- if (ignore)
130
- return () => () => {
131
- };
119
+ if (ignore) return () => () => {
120
+ };
132
121
  const last = EffectContext;
133
122
  const context = EffectContext = /* @__PURE__ */ new Set();
134
123
  return () => {
@@ -140,8 +129,8 @@ export {
140
129
  Observable,
141
130
  PENDING_KEYS,
142
131
  addListener,
143
- createEffect,
144
132
  enter,
145
- event
133
+ event,
134
+ watch
146
135
  };
147
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2NvbnRyb2wudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB0eXBlIHsgTW9kZWwgfSBmcm9tIFwiLi9tb2RlbFwiO1xuXG4vKipcbiAqIFVwZGF0ZSBjYWxsYmFjayBmdW5jdGlvbi5cbiAqIFxuICogQHBhcmFtIGtleSAtXG4gKiAgIC0gYHN0cmluZ2AgLSBwcm9wZXJ0eSB3aGljaCBoYXMgdXBkYXRlZC5cbiAqICAgLSBgZmFsc2VgIC0gYSBub3JtYWwgdXBkYXRlIGhhcyBjb21wbGV0ZWQuXG4gKiAgIC0gYHRydWVgIC0gaW5pdGlhbCBldmVudDsgaW5zdGFuY2UgaXMgcmVhZHkuXG4gKiAgIC0gYG51bGxgIC0gdGVybWluYWwgZXZlbnQ7IGluc3RhbmNlIGlzIGV4cGlyZWQuXG4gKiBAcGFyYW0gc291cmNlIC0gSW5zdGFuY2Ugb2YgTW9kZWwgZm9yIHdoaWNoIHVwZGF0ZSBoYXMgb2NjdXJlZC5cbiAqL1xudHlwZSBPblVwZGF0ZTxUIGV4dGVuZHMgT2JzZXJ2YWJsZSA9IGFueT4gPSBcbiAgKHRoaXM6IFQsIGtleTogRXZlbnQsIHNvdXJjZTogVCkgPT4gKCgpID0+IHZvaWQpIHwgbnVsbCB8IHZvaWQ7XG5cbnR5cGUgRWZmZWN0PFQgZXh0ZW5kcyBPYnNlcnZhYmxlPiA9IChwcm94eTogVCkgPT5cbiAgKCh1cGRhdGU6IGJvb2xlYW4gfCBudWxsKSA9PiB2b2lkKSB8IFByb21pc2U8dm9pZD4gfCBudWxsIHwgdm9pZDtcblxudHlwZSBFdmVudCA9IG51bWJlciB8IHN0cmluZyB8IG51bGwgfCBib29sZWFuIHwgc3ltYm9sO1xuXG50eXBlIFByb21pc2VMaXRlPFQgPSB2b2lkPiA9IHsgdGhlbjogKGNhbGxiYWNrOiAoKSA9PiBUKSA9PiBUIH07XG5cbmRlY2xhcmUgbmFtZXNwYWNlIE9ic2VydmFibGUge1xuICBleHBvcnQgdHlwZSBDYWxsYmFjayA9ICgpID0+IHZvaWQgfCBQcm9taXNlTGl0ZTtcbn1cblxuaW50ZXJmYWNlIE9ic2VydmFibGUge1xuICBbT2JzZXJ2YWJsZV0oY2FsbGJhY2s6IE9ic2VydmFibGUuQ2FsbGJhY2ssIHJlcXVpcmVkPzogYm9vbGVhbik6IHRoaXMgfCB2b2lkO1xufVxuXG5jb25zdCBPYnNlcnZhYmxlID0gU3ltYm9sKFwib2JzZXJ2ZVwiKTtcblxuLyoqIFBsYWNlaG9sZGVyIGV2ZW50IGRldGVybWluZXMgaWYgbW9kZWwgaXMgaW5pdGlhbGl6ZWQgb3Igbm90LiAqL1xuY29uc3Qgb25SZWFkeSA9ICgpID0+IG51bGw7XG5cbmNvbnN0IExJU1RFTkVSUyA9IG5ldyBXZWFrTWFwPE9ic2VydmFibGUsIE1hcDxPblVwZGF0ZSwgU2V0PEV2ZW50PiB8IHVuZGVmaW5lZD4+KCk7XG5cbi8qKiBFdmVudHMgcGVuZGluZyBmb3IgYSBnaXZlbiBvYmplY3QuICovXG5jb25zdCBQRU5ESU5HID0gbmV3IFdlYWtNYXA8T2JzZXJ2YWJsZSwgU2V0PEV2ZW50Pj4oKTtcblxuLyoqIFVwZGF0ZSByZWdpc3Rlci4gKi9cbmNvbnN0IFBFTkRJTkdfS0VZUyA9IG5ldyBXZWFrTWFwPE9ic2VydmFibGUsIFNldDxzdHJpbmcgfCBudW1iZXIgfCBzeW1ib2w+PigpO1xuXG4vKiogQ2VudHJhbCBldmVudCBkaXNwYXRjaC4gQnVuY2hlcyBhbGwgdXBkYXRlcyB0byBvY2N1ciBhdCBzYW1lIHRpbWUuICovXG5jb25zdCBESVNQQVRDSCA9IG5ldyBTZXQ8KCkgPT4gdm9pZD4oKTtcblxuZnVuY3Rpb24gYWRkTGlzdGVuZXI8VCBleHRlbmRzIE9ic2VydmFibGU+KFxuICBzdWJqZWN0OiBULCBjYWxsYmFjazogT25VcGRhdGU8VD4sIHNlbGVjdD86IEV2ZW50IHwgU2V0PEV2ZW50Pil7XG5cbiAgbGV0IGxpc3RlbmVycyA9IExJU1RFTkVSUy5nZXQoc3ViamVjdCkhO1xuXG4gIGlmKCFsaXN0ZW5lcnMpXG4gICAgTElTVEVORVJTLnNldChzdWJqZWN0LCBsaXN0ZW5lcnMgPSBuZXcgTWFwKFtbb25SZWFkeSwgdW5kZWZpbmVkXV0pKTtcblxuICBpZihzZWxlY3QgIT09IHVuZGVmaW5lZCAmJiAhKHNlbGVjdCBpbnN0YW5jZW9mIFNldCkpXG4gICAgc2VsZWN0ID0gbmV3IFNldChbc2VsZWN0XSk7XG5cbiAgaWYoIWxpc3RlbmVycy5oYXMob25SZWFkeSkgJiYgIXNlbGVjdClcbiAgICBjYWxsYmFjay5jYWxsKHN1YmplY3QsIHRydWUsIHN1YmplY3QpO1xuXG4gIGxpc3RlbmVycy5zZXQoY2FsbGJhY2ssIHNlbGVjdCk7XG5cbiAgcmV0dXJuICgpID0+IGxpc3RlbmVycy5kZWxldGUoY2FsbGJhY2spO1xufVxuXG5mdW5jdGlvbiBlbWl0KG1vZGVsOiBPYnNlcnZhYmxlLCBrZXk6IEV2ZW50KTogdm9pZCB7XG4gIGNvbnN0IGxpc3RlbmVycyA9IExJU1RFTkVSUy5nZXQobW9kZWwpITtcbiAgY29uc3Qgbm90UmVhZHkgPSBsaXN0ZW5lcnMuaGFzKG9uUmVhZHkpO1xuXG4gIGlmKGtleSA9PT0gdHJ1ZSAmJiAhbm90UmVhZHkpXG4gICAgcmV0dXJuO1xuXG4gIGxldCBwZW5kaW5nID0gUEVORElORy5nZXQobW9kZWwpO1xuXG4gIGlmKHBlbmRpbmcpe1xuICAgIHBlbmRpbmcuYWRkKGtleSk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgUEVORElORy5zZXQobW9kZWwsIHBlbmRpbmcgPSBuZXcgU2V0KG5vdFJlYWR5ID8gW3RydWUsIGtleV0gOiBba2V5XSkpO1xuXG4gIGZvcihjb25zdCBrZXkgb2YgcGVuZGluZylcbiAgICBmb3IoY29uc3QgW2NhbGxiYWNrLCBmaWx0ZXJdIG9mIGxpc3RlbmVycylcbiAgICAgIGlmKCFmaWx0ZXIgfHwgZmlsdGVyLmhhcyhrZXkpKXtcbiAgICAgICAgY29uc3QgYWZ0ZXIgPSBjYWxsYmFjay5jYWxsKG1vZGVsLCBrZXksIG1vZGVsKTtcblxuICAgICAgICBpZihhZnRlcilcbiAgICAgICAgICBlbnF1ZXVlKGFmdGVyKTtcblxuICAgICAgICBlbHNlIGlmKGFmdGVyID09PSBudWxsKVxuICAgICAgICAgIGxpc3RlbmVycy5kZWxldGUoY2FsbGJhY2spO1xuICAgICAgfVxuXG4gIGlmKGtleSA9PT0gbnVsbClcbiAgICBsaXN0ZW5lcnMuY2xlYXIoKTtcbiAgXG4gIFBFTkRJTkcuZGVsZXRlKG1vZGVsKTtcbn1cblxuZnVuY3Rpb24gZXZlbnQoXG4gIHN1YmplY3Q6IE9ic2VydmFibGUsXG4gIGtleT86IHN0cmluZyB8IG51bWJlciB8IHN5bWJvbCB8IG51bGwsXG4gIHNpbGVudD86IGJvb2xlYW4pe1xuXG4gIGlmKGtleSA9PT0gbnVsbClcbiAgICByZXR1cm4gZW1pdChzdWJqZWN0LCBrZXkpO1xuXG4gIGlmKCFrZXkpXG4gICAgcmV0dXJuIGVtaXQoc3ViamVjdCwgdHJ1ZSk7XG5cbiAgbGV0IHBlbmRpbmcgPSBQRU5ESU5HX0tFWVMuZ2V0KHN1YmplY3QpO1xuXG4gIGlmKCFwZW5kaW5nKXtcbiAgICBQRU5ESU5HX0tFWVMuc2V0KHN1YmplY3QsIHBlbmRpbmcgPSBuZXcgU2V0KCkpO1xuXG4gICAgaWYoIXNpbGVudClcbiAgICAgIGVucXVldWUoKCkgPT4ge1xuICAgICAgICBlbWl0KHN1YmplY3QsIGZhbHNlKTtcbiAgICAgICAgUEVORElOR19LRVlTLmRlbGV0ZShzdWJqZWN0KVxuICAgICAgfSlcbiAgfVxuXG4gIHBlbmRpbmcuYWRkKGtleSk7XG5cbiAgaWYoIXNpbGVudClcbiAgICBlbWl0KHN1YmplY3QsIGtleSk7XG59XG5cbmZ1bmN0aW9uIGVucXVldWUoZXZlbnRIYW5kbGVyOiAoKCkgPT4gdm9pZCkpe1xuICBpZighRElTUEFUQ0guc2l6ZSlcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIERJU1BBVENILmZvckVhY2goZXZlbnQgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGV2ZW50KCk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2goZXJyKXtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgRElTUEFUQ0guY2xlYXIoKTtcbiAgICB9LCAwKTtcblxuICBESVNQQVRDSC5hZGQoZXZlbnRIYW5kbGVyKTtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBzaWRlLWVmZmVjdCB3aGljaCB3aWxsIHVwZGF0ZSB3aGVuZXZlciB2YWx1ZXMgYWNjZXNzZWQgY2hhbmdlLlxuICogQ2FsbGJhY2sgaXMgY2FsbGVkIGltbWVkaWF0ZWx5IGFuZCB3aGVuZXZlciB2YWx1ZXMgYXJlIHN0YWxlLlxuICogXG4gKiBAcGFyYW0gdGFyZ2V0IC0gSW5zdGFuY2Ugb2YgTW9kZWwgdG8gb2JzZXJ2ZS5cbiAqIEBwYXJhbSBjYWxsYmFjayAtIEZ1bmN0aW9uIHRvIGludm9rZSB3aGVuIHZhbHVlcyBjaGFuZ2UuXG4gKiBAcGFyYW0gcmVxdWlyZVZhbHVlcyAtIElmIGB0cnVlYCB3aWxsIHRocm93IGlmIGFjY2Vzc2luZyBhIHZhbHVlIHdoaWNoIGlzIGB1bmRlZmluZWRgLlxuICovXG5mdW5jdGlvbiBjcmVhdGVFZmZlY3Q8VCBleHRlbmRzIE1vZGVsPih0YXJnZXQ6IFQsIGNhbGxiYWNrOiBFZmZlY3Q8UmVxdWlyZWQ8VD4+LCByZXF1aXJlVmFsdWVzOiB0cnVlKTogKCkgPT4gdm9pZDtcbmZ1bmN0aW9uIGNyZWF0ZUVmZmVjdDxUIGV4dGVuZHMgTW9kZWw+KHRhcmdldDogVCwgY2FsbGJhY2s6IEVmZmVjdDxUPiwgcmVjdXJzaXZlPzogYm9vbGVhbik6ICgpID0+IHZvaWQ7XG5mdW5jdGlvbiBjcmVhdGVFZmZlY3Q8VCBleHRlbmRzIE1vZGVsPih0YXJnZXQ6IFQsIGNhbGxiYWNrOiBFZmZlY3Q8VD4sIGFyZ3VtZW50PzogYm9vbGVhbil7XG4gIGxldCB1bnNldDogKCh1cGRhdGU6IGJvb2xlYW4gfCBudWxsKSA9PiB2b2lkKSB8IHVuZGVmaW5lZDtcbiAgbGV0IHJlc2V0OiAoKCkgPT4gdm9pZCkgfCBudWxsIHwgdW5kZWZpbmVkO1xuXG4gIGZ1bmN0aW9uIGludm9rZSgpIHtcbiAgICBsZXQgaWdub3JlOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIGZ1bmN0aW9uIG9uVXBkYXRlKCk6IHZvaWQgfCBQcm9taXNlTGl0ZTx2b2lkPiB7XG4gICAgICBpZiAoaWdub3JlIHx8IHJlc2V0ID09PSBudWxsKVxuICAgICAgICByZXR1cm47XG5cbiAgICAgIGlnbm9yZSA9IHRydWU7XG5cbiAgICAgIGlmIChyZXNldCAmJiB1bnNldCkge1xuICAgICAgICB1bnNldCh0cnVlKTtcbiAgICAgICAgdW5zZXQgPSB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIGVucXVldWUoaW52b2tlKTtcbiAgICAgIHJldHVybiB7IHRoZW46IGVucXVldWUgfVxuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBleGl0ID0gZW50ZXIoYXJndW1lbnQgPT09IGZhbHNlKTtcbiAgICAgIGNvbnN0IG91dHB1dCA9IGNhbGxiYWNrKHRhcmdldFtPYnNlcnZhYmxlXShvblVwZGF0ZSwgYXJndW1lbnQgPT09IHRydWUpKTtcbiAgICAgIGNvbnN0IGZsdXNoID0gZXhpdCgpO1xuICAgICAgXG4gICAgICBpZ25vcmUgPSBmYWxzZTtcbiAgICAgIHJlc2V0ID0gb3V0cHV0ID09PSBudWxsID8gbnVsbCA6IGludm9rZTtcbiAgICAgIHVuc2V0ID0ga2V5ID0+IHtcbiAgICAgICAgaWYodHlwZW9mIG91dHB1dCA9PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgICAgb3V0cHV0KGtleSk7XG5cbiAgICAgICAgZmx1c2goKTtcbiAgICAgIH1cbiAgICB9XG4gICAgY2F0Y2goZXJyKXtcbiAgICAgIGlmKGVyciBpbnN0YW5jZW9mIFByb21pc2Upe1xuICAgICAgICByZXNldCA9IHVuZGVmaW5lZDtcbiAgICAgICAgZXJyLnRoZW4oaW52b2tlKTtcbiAgICAgIH1cbiAgICAgIGVsc2VcbiAgICAgICAgdGhyb3cgZXJyO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGNsZWFudXAoKXtcbiAgICBpZih1bnNldClcbiAgICAgIHVuc2V0KGZhbHNlKTtcblxuICAgIHJlc2V0ID0gbnVsbDtcbiAgfTtcblxuICBpZihFZmZlY3RDb250ZXh0ICYmIGFyZ3VtZW50ICE9PSBmYWxzZSlcbiAgICBFZmZlY3RDb250ZXh0LmFkZChjbGVhbnVwKTtcblxuICBhZGRMaXN0ZW5lcih0YXJnZXQsIGtleSA9PiB7XG4gICAgaWYoa2V5ID09PSB0cnVlKVxuICAgICAgaW52b2tlKCk7XG5cbiAgICBlbHNlIGlmKCFyZXNldClcbiAgICAgIHJldHVybiByZXNldDtcblxuICAgIGlmKGtleSA9PT0gbnVsbCAmJiB1bnNldClcbiAgICAgIHVuc2V0KG51bGwpO1xuICB9KTtcbiAgXG4gIHJldHVybiBjbGVhbnVwO1xufVxuXG5sZXQgRWZmZWN0Q29udGV4dDogU2V0PCgpID0+IHZvaWQ+IHwgdW5kZWZpbmVkO1xuXG5leHBvcnQgZnVuY3Rpb24gZW50ZXIoaWdub3JlPzogYm9vbGVhbil7XG4gIGlmKGlnbm9yZSlcbiAgICByZXR1cm4gKCkgPT4gKCkgPT4ge307XG5cbiAgY29uc3QgbGFzdCA9IEVmZmVjdENvbnRleHQ7XG4gIGNvbnN0IGNvbnRleHQgPSBFZmZlY3RDb250ZXh0ID0gbmV3IFNldDtcblxuICByZXR1cm4gKCkgPT4ge1xuICAgIEVmZmVjdENvbnRleHQgPSBsYXN0O1xuICAgIHJldHVybiAoKSA9PiBjb250ZXh0LmZvckVhY2goZm4gPT4gZm4oKSk7XG4gIH1cbn1cblxuZXhwb3J0IHtcbiAgYWRkTGlzdGVuZXIsXG4gIGNyZWF0ZUVmZmVjdCxcbiAgZXZlbnQsXG4gIE9uVXBkYXRlLFxuICBQRU5ESU5HX0tFWVMsXG4gIE9ic2VydmFibGVcbn0iXSwKICAibWFwcGluZ3MiOiAiQUE4QkEsTUFBTSxhQUFhLE9BQU8sU0FBUztBQUduQyxNQUFNLFVBQVUsTUFBTTtBQUV0QixNQUFNLFlBQVksb0JBQUksUUFBMkQ7QUFHakYsTUFBTSxVQUFVLG9CQUFJLFFBQWdDO0FBR3BELE1BQU0sZUFBZSxvQkFBSSxRQUFtRDtBQUc1RSxNQUFNLFdB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
136
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2NvbnRyb2wudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB0eXBlIHsgU3RhdGUgfSBmcm9tICcuL3N0YXRlJztcblxuLyoqXG4gKiBVcGRhdGUgY2FsbGJhY2sgZnVuY3Rpb24uXG4gKlxuICogQHBhcmFtIGtleSAtXG4gKiAgIC0gYHN0cmluZ2AgLSBwcm9wZXJ0eSB3aGljaCBoYXMgdXBkYXRlZC5cbiAqICAgLSBgZmFsc2VgIC0gYSBub3JtYWwgdXBkYXRlIGhhcyBjb21wbGV0ZWQuXG4gKiAgIC0gYHRydWVgIC0gaW5pdGlhbCBldmVudDsgaW5zdGFuY2UgaXMgcmVhZHkuXG4gKiAgIC0gYG51bGxgIC0gdGVybWluYWwgZXZlbnQ7IGluc3RhbmNlIGlzIGV4cGlyZWQuXG4gKiBAcGFyYW0gc291cmNlIC0gSW5zdGFuY2Ugb2YgU3RhdGUgZm9yIHdoaWNoIHVwZGF0ZSBoYXMgb2NjdXJlZC5cbiAqL1xudHlwZSBOb3RpZnk8VCBleHRlbmRzIE9ic2VydmFibGUgPSBhbnk+ID0gKFxuICB0aGlzOiBULFxuICBrZXk6IEV2ZW50LFxuICBzb3VyY2U6IFRcbikgPT4gKCgpID0+IHZvaWQpIHwgbnVsbCB8IHZvaWQ7XG5cbnR5cGUgRWZmZWN0PFQgZXh0ZW5kcyBPYnNlcnZhYmxlPiA9IChcbiAgcHJveHk6IFRcbikgPT4gKCh1cGRhdGU6IGJvb2xlYW4gfCBudWxsKSA9PiB2b2lkKSB8IFByb21pc2U8dm9pZD4gfCBudWxsIHwgdm9pZDtcblxudHlwZSBFdmVudCA9IG51bWJlciB8IHN0cmluZyB8IG51bGwgfCBib29sZWFuIHwgc3ltYm9sO1xuXG50eXBlIFByb21pc2VMaXRlPFQgPSB2b2lkPiA9IHsgdGhlbjogKGNhbGxiYWNrOiAoKSA9PiBUKSA9PiBUIH07XG5cbmRlY2xhcmUgbmFtZXNwYWNlIE9ic2VydmFibGUge1xuICBleHBvcnQgdHlwZSBDYWxsYmFjayA9ICgpID0+IHZvaWQgfCBQcm9taXNlTGl0ZTtcbn1cblxuaW50ZXJmYWNlIE9ic2VydmFibGUge1xuICBbT2JzZXJ2YWJsZV0oY2FsbGJhY2s6IE9ic2VydmFibGUuQ2FsbGJhY2ssIHJlcXVpcmVkPzogYm9vbGVhbik6IHRoaXMgfCB2b2lkO1xufVxuXG5jb25zdCBPYnNlcnZhYmxlID0gU3ltYm9sKCdvYnNlcnZlJyk7XG5cbi8qKiBQbGFjZWhvbGRlciBldmVudCBkZXRlcm1pbmVzIGlmIHN0YXRlIGlzIGluaXRpYWxpemVkIG9yIG5vdC4gKi9cbmNvbnN0IG9uUmVhZHkgPSAoKSA9PiBudWxsO1xuXG5jb25zdCBMSVNURU5FUlMgPSBuZXcgV2Vha01hcDxcbiAgT2JzZXJ2YWJsZSxcbiAgTWFwPE5vdGlmeSwgU2V0PEV2ZW50PiB8IHVuZGVmaW5lZD5cbj4oKTtcblxuLyoqIEV2ZW50cyBwZW5kaW5nIGZvciBhIGdpdmVuIG9iamVjdC4gKi9cbmNvbnN0IFBFTkRJTkcgPSBuZXcgV2Vha01hcDxPYnNlcnZhYmxlLCBTZXQ8RXZlbnQ+PigpO1xuXG4vKiogVXBkYXRlIHJlZ2lzdGVyLiAqL1xuY29uc3QgUEVORElOR19LRVlTID0gbmV3IFdlYWtNYXA8T2JzZXJ2YWJsZSwgU2V0PHN0cmluZyB8IG51bWJlciB8IHN5bWJvbD4+KCk7XG5cbi8qKiBDZW50cmFsIGV2ZW50IGRpc3BhdGNoLiBCdW5jaGVzIGFsbCB1cGRhdGVzIHRvIG9jY3VyIGF0IHNhbWUgdGltZS4gKi9cbmNvbnN0IERJU1BBVENIID0gbmV3IFNldDwoKSA9PiB2b2lkPigpO1xuXG5mdW5jdGlvbiBhZGRMaXN0ZW5lcjxUIGV4dGVuZHMgT2JzZXJ2YWJsZT4oXG4gIHN1YmplY3Q6IFQsXG4gIGNhbGxiYWNrOiBOb3RpZnk8VD4sXG4gIHNlbGVjdD86IEV2ZW50IHwgU2V0PEV2ZW50PlxuKSB7XG4gIGxldCBsaXN0ZW5lcnMgPSBMSVNURU5FUlMuZ2V0KHN1YmplY3QpITtcblxuICBpZiAoIWxpc3RlbmVycylcbiAgICBMSVNURU5FUlMuc2V0KHN1YmplY3QsIChsaXN0ZW5lcnMgPSBuZXcgTWFwKFtbb25SZWFkeSwgdW5kZWZpbmVkXV0pKSk7XG5cbiAgaWYgKHNlbGVjdCAhPT0gdW5kZWZpbmVkICYmICEoc2VsZWN0IGluc3RhbmNlb2YgU2V0KSlcbiAgICBzZWxlY3QgPSBuZXcgU2V0KFtzZWxlY3RdKTtcblxuICBpZiAoIWxpc3RlbmVycy5oYXMob25SZWFkeSkgJiYgIXNlbGVjdCkge1xuICAgIGNhbGxiYWNrLmNhbGwoc3ViamVjdCwgdHJ1ZSwgc3ViamVjdCk7XG4gIH1cblxuICBsaXN0ZW5lcnMuc2V0KGNhbGxiYWNrLCBzZWxlY3QpO1xuXG4gIHJldHVybiAoKSA9PiBsaXN0ZW5lcnMuZGVsZXRlKGNhbGxiYWNrKTtcbn1cblxuZnVuY3Rpb24gZW1pdChzdGF0ZTogT2JzZXJ2YWJsZSwga2V5OiBFdmVudCk6IHZvaWQge1xuICBjb25zdCBsaXN0ZW5lcnMgPSBMSVNURU5FUlMuZ2V0KHN0YXRlKSE7XG4gIGNvbnN0IG5vdFJlYWR5ID0gbGlzdGVuZXJzLmhhcyhvblJlYWR5KTtcblxuICBpZiAoa2V5ID09PSB0cnVlICYmICFub3RSZWFkeSkgcmV0dXJuO1xuXG4gIGxldCBwZW5kaW5nID0gUEVORElORy5nZXQoc3RhdGUpO1xuXG4gIGlmIChwZW5kaW5nKSB7XG4gICAgcGVuZGluZy5hZGQoa2V5KTtcbiAgICByZXR1cm47XG4gIH1cblxuICBQRU5ESU5HLnNldChzdGF0ZSwgKHBlbmRpbmcgPSBuZXcgU2V0KG5vdFJlYWR5ID8gW3RydWUsIGtleV0gOiBba2V5XSkpKTtcblxuICBmb3IgKGNvbnN0IGtleSBvZiBwZW5kaW5nKVxuICAgIGZvciAoY29uc3QgW2NhbGxiYWNrLCBmaWx0ZXJdIG9mIGxpc3RlbmVycylcbiAgICAgIGlmICghZmlsdGVyIHx8IGZpbHRlci5oYXMoa2V5KSkge1xuICAgICAgICBjb25zdCBhZnRlciA9IGNhbGxiYWNrLmNhbGwoc3RhdGUsIGtleSwgc3RhdGUpO1xuXG4gICAgICAgIGlmIChhZnRlcikge1xuICAgICAgICAgIGVucXVldWUoYWZ0ZXIpO1xuICAgICAgICB9IGVsc2UgaWYgKGFmdGVyID09PSBudWxsKSB7XG4gICAgICAgICAgbGlzdGVuZXJzLmRlbGV0ZShjYWxsYmFjayk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICBpZiAoa2V5ID09PSBudWxsKSBsaXN0ZW5lcnMuY2xlYXIoKTtcblxuICBQRU5ESU5HLmRlbGV0ZShzdGF0ZSk7XG59XG5cbmZ1bmN0aW9uIGV2ZW50KFxuICBzdWJqZWN0OiBPYnNlcnZhYmxlLFxuICBrZXk/OiBzdHJpbmcgfCBudW1iZXIgfCBzeW1ib2wgfCBudWxsLFxuICBzaWxlbnQ/OiBib29sZWFuXG4pIHtcbiAgaWYgKGtleSA9PT0gbnVsbCkgcmV0dXJuIGVtaXQoc3ViamVjdCwga2V5KTtcblxuICBpZiAoIWtleSkgcmV0dXJuIGVtaXQoc3ViamVjdCwgdHJ1ZSk7XG5cbiAgbGV0IHBlbmRpbmcgPSBQRU5ESU5HX0tFWVMuZ2V0KHN1YmplY3QpO1xuXG4gIGlmICghcGVuZGluZykge1xuICAgIFBFTkRJTkdfS0VZUy5zZXQoc3ViamVjdCwgKHBlbmRpbmcgPSBuZXcgU2V0KCkpKTtcblxuICAgIGlmICghc2lsZW50KVxuICAgICAgZW5xdWV1ZSgoKSA9PiB7XG4gICAgICAgIGVtaXQoc3ViamVjdCwgZmFsc2UpO1xuICAgICAgICBQRU5ESU5HX0tFWVMuZGVsZXRlKHN1YmplY3QpO1xuICAgICAgfSk7XG4gIH1cblxuICBwZW5kaW5nLmFkZChrZXkpO1xuXG4gIGlmICghc2lsZW50KSBlbWl0KHN1YmplY3QsIGtleSk7XG59XG5cbmZ1bmN0aW9uIGVucXVldWUoZXZlbnRIYW5kbGVyOiAoKSA9PiB2b2lkKSB7XG4gIGlmICghRElTUEFUQ0guc2l6ZSlcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIERJU1BBVENILmZvckVhY2goKGV2ZW50KSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgZXZlbnQoKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIERJU1BBVENILmNsZWFyKCk7XG4gICAgfSwgMCk7XG5cbiAgRElTUEFUQ0guYWRkKGV2ZW50SGFuZGxlcik7XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgc2lkZS1lZmZlY3Qgd2hpY2ggd2lsbCB1cGRhdGUgd2hlbmV2ZXIgdmFsdWVzIGFjY2Vzc2VkIGNoYW5nZS5cbiAqIENhbGxiYWNrIGlzIGNhbGxlZCBpbW1lZGlhdGVseSBhbmQgd2hlbmV2ZXIgdmFsdWVzIGFyZSBzdGFsZS5cbiAqXG4gKiBAcGFyYW0gdGFyZ2V0IC0gSW5zdGFuY2Ugb2YgU3RhdGUgdG8gb2JzZXJ2ZS5cbiAqIEBwYXJhbSBjYWxsYmFjayAtIEZ1bmN0aW9uIHRvIGludm9rZSB3aGVuIHZhbHVlcyBjaGFuZ2UuXG4gKiBAcGFyYW0gcmVxdWlyZVZhbHVlcyAtIElmIGB0cnVlYCB3aWxsIHRocm93IGlmIGFjY2Vzc2luZyBhIHZhbHVlIHdoaWNoIGlzIGB1bmRlZmluZWRgLlxuICovXG5mdW5jdGlvbiB3YXRjaDxUIGV4dGVuZHMgU3RhdGU+KFxuICB0YXJnZXQ6IFQsXG4gIGNhbGxiYWNrOiBFZmZlY3Q8UmVxdWlyZWQ8VD4+LFxuICByZXF1aXJlVmFsdWVzOiB0cnVlXG4pOiAoKSA9PiB2b2lkO1xuXG5mdW5jdGlvbiB3YXRjaDxUIGV4dGVuZHMgU3RhdGU+KFxuICB0YXJnZXQ6IFQsXG4gIGNhbGxiYWNrOiBFZmZlY3Q8VD4sXG4gIHJlY3Vyc2l2ZT86IGJvb2xlYW5cbik6ICgpID0+IHZvaWQ7XG5cbmZ1bmN0aW9uIHdhdGNoPFQgZXh0ZW5kcyBTdGF0ZT4oXG4gIHRhcmdldDogVCxcbiAgY2FsbGJhY2s6IEVmZmVjdDxUPixcbiAgYXJndW1lbnQ/OiBib29sZWFuXG4pIHtcbiAgbGV0IHVuc2V0OiAoKHVwZGF0ZTogYm9vbGVhbiB8IG51bGwpID0+IHZvaWQpIHwgdW5kZWZpbmVkO1xuICBsZXQgcmVzZXQ6ICgoKSA9PiB2b2lkKSB8IG51bGwgfCB1bmRlZmluZWQ7XG5cbiAgZnVuY3Rpb24gaW52b2tlKCkge1xuICAgIGxldCBpZ25vcmU6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgZnVuY3Rpb24gb25VcGRhdGUoKTogdm9pZCB8IFByb21pc2VMaXRlPHZvaWQ+IHtcbiAgICAgIGlmIChpZ25vcmUgfHwgcmVzZXQgPT09IG51bGwpIHJldHVybjtcblxuICAgICAgaWdub3JlID0gdHJ1ZTtcblxuICAgICAgaWYgKHJlc2V0ICYmIHVuc2V0KSB7XG4gICAgICAgIHVuc2V0KHRydWUpO1xuICAgICAgICB1bnNldCA9IHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgICAgZW5xdWV1ZShpbnZva2UpO1xuICAgICAgcmV0dXJuIHsgdGhlbjogZW5xdWV1ZSB9O1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBleGl0ID0gZW50ZXIoYXJndW1lbnQgPT09IGZhbHNlKTtcbiAgICAgIGNvbnN0IG91dHB1dCA9IGNhbGxiYWNrKHRhcmdldFtPYnNlcnZhYmxlXShvblVwZGF0ZSwgYXJndW1lbnQgPT09IHRydWUpKTtcbiAgICAgIGNvbnN0IGZsdXNoID0gZXhpdCgpO1xuXG4gICAgICBpZ25vcmUgPSBmYWxzZTtcbiAgICAgIHJlc2V0ID0gb3V0cHV0ID09PSBudWxsID8gbnVsbCA6IGludm9rZTtcbiAgICAgIHVuc2V0ID0gKGtleSkgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIG91dHB1dCA9PSAnZnVuY3Rpb24nKSBvdXRwdXQoa2V5KTtcblxuICAgICAgICBmbHVzaCgpO1xuICAgICAgfTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgIHJlc2V0ID0gdW5kZWZpbmVkO1xuICAgICAgICBlcnIudGhlbihpbnZva2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGNsZWFudXAoKSB7XG4gICAgaWYgKHVuc2V0KSB1bnNldChmYWxzZSk7XG5cbiAgICByZXNldCA9IG51bGw7XG4gIH1cblxuICBpZiAoRWZmZWN0Q29udGV4dCAmJiBhcmd1bWVudCAhPT0gZmFsc2UpIEVmZmVjdENvbnRleHQuYWRkKGNsZWFudXApO1xuXG4gIGFkZExpc3RlbmVyKHRhcmdldCwgKGtleSkgPT4ge1xuICAgIGlmIChrZXkgPT09IHRydWUpIGludm9rZSgpO1xuICAgIGVsc2UgaWYgKCFyZXNldCkgcmV0dXJuIHJlc2V0O1xuXG4gICAgaWYgKGtleSA9PT0gbnVsbCAmJiB1bnNldCkgdW5zZXQobnVsbCk7XG4gIH0pO1xuXG4gIHJldHVybiBjbGVhbnVwO1xufVxuXG5sZXQgRWZmZWN0Q29udGV4dDogU2V0PCgpID0+IHZvaWQ+IHwgdW5kZWZpbmVkO1xuXG5leHBvcnQgZnVuY3Rpb24gZW50ZXIoaWdub3JlPzogYm9vbGVhbikge1xuICBpZiAoaWdub3JlKSByZXR1cm4gKCkgPT4gKCkgPT4ge307XG5cbiAgY29uc3QgbGFzdCA9IEVmZmVjdENvbnRleHQ7XG4gIGNvbnN0IGNvbnRleHQgPSAoRWZmZWN0Q29udGV4dCA9IG5ldyBTZXQoKSk7XG5cbiAgcmV0dXJuICgpID0+IHtcbiAgICBFZmZlY3RDb250ZXh0ID0gbGFzdDtcbiAgICByZXR1cm4gKCkgPT4gY29udGV4dC5mb3JFYWNoKChmbikgPT4gZm4oKSk7XG4gIH07XG59XG5cbmV4cG9ydCB7IGFkZExpc3RlbmVyLCB3YXRjaCwgZXZlbnQsIE5vdGlmeSwgUEVORElOR19LRVlTLCBPYnNlcnZhYmxlIH07XG4iXSwKICAibWFwcGluZ3MiOiAiQUFrQ0EsTUFBTSxhQUFhLE9BQU8sU0FBUztBQUduQyxNQUFNLFVBQVUsTUFBTTtBQUV0QixNQUFNLFlBQVksb0JBQUksUUFHcEI7QUFHRixNQUFNLFVBQVUsb0JBQUksUUFBZ0M7QUFHcEQsTUFBTSxlQUFlLG9CQUFJLFFBQW1EO0FBRzVFLE1BQU0sV0FBVyxvQkFBSSxJQUFnQjtBQUVy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
package/dist/esm/index.js CHANGED
@@ -1,24 +1,23 @@
1
+ import { use, Instruction } from "./instruction/use";
1
2
  import { get } from "./instruction/get";
2
- import { ref } from "./instruction/ref";
3
3
  import { set } from "./instruction/set";
4
- import { use } from "./instruction/use";
5
- import { has } from "./instruction/has";
6
- import { Model, Model as Model2, METHOD } from "./model";
7
- import { createEffect, addListener, event, Observable } from "./control";
4
+ import { ref } from "./instruction/ref";
5
+ import { State, State as State2, METHOD } from "./state";
6
+ import { watch, addListener, event, Observable } from "./control";
8
7
  import { Context } from "./context";
9
8
  export {
10
9
  Context,
10
+ Instruction,
11
11
  METHOD,
12
- Model,
13
12
  Observable,
13
+ State,
14
14
  addListener,
15
- createEffect,
16
- Model2 as default,
15
+ State2 as default,
17
16
  event,
18
17
  get,
19
- has,
20
18
  ref,
21
19
  set,
22
- use
20
+ use,
21
+ watch
23
22
  };
24
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJleHBvcnQgeyBnZXQgfSBmcm9tICcuL2luc3RydWN0aW9uL2dldCc7XG5leHBvcnQgeyByZWYgfSBmcm9tICcuL2luc3RydWN0aW9uL3JlZic7XG5leHBvcnQgeyBzZXQgfSBmcm9tICcuL2luc3RydWN0aW9uL3NldCc7XG5leHBvcnQgeyB1c2UgfSBmcm9tICcuL2luc3RydWN0aW9uL3VzZSc7XG5leHBvcnQgeyBoYXMgfSBmcm9tICcuL2luc3RydWN0aW9uL2hhcyc7XG5cbmV4cG9ydCB7IE1vZGVsLCBNb2RlbCBhcyBkZWZhdWx0LCBNRVRIT0QgfSBmcm9tICcuL21vZGVsJztcbmV4cG9ydCB7IGNyZWF0ZUVmZmVjdCwgYWRkTGlzdGVuZXIsIGV2ZW50LCBPYnNlcnZhYmxlIH0gZnJvbSAnLi9jb250cm9sJztcbmV4cG9ydCB7IENvbnRleHQgfSBmcm9tICcuL2NvbnRleHQnOyJdLAogICJtYXBwaW5ncyI6ICJBQUFBLFNBQVMsV0FBVztBQUNwQixTQUFTLFdBQVc7QUFDcEIsU0FBUyxXQUFXO0FBQ3BCLFNBQVMsV0FBVztBQUNwQixTQUFTLFdBQVc7QUFFcEIsU0FBUyxPQUFnQixTQUFUQSxRQUFrQixjQUFjO0FBQ2hELFNBQVMsY0FBYyxhQUFhLE9BQU8sa0JBQWtCO0FBQzdELFNBQVMsZUFBZTsiLAogICJuYW1lcyI6IFsiTW9kZWwiXQp9Cg==
23
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJleHBvcnQgeyB1c2UsIEluc3RydWN0aW9uIH0gZnJvbSAnLi9pbnN0cnVjdGlvbi91c2UnO1xuZXhwb3J0IHsgZ2V0IH0gZnJvbSAnLi9pbnN0cnVjdGlvbi9nZXQnO1xuZXhwb3J0IHsgc2V0IH0gZnJvbSAnLi9pbnN0cnVjdGlvbi9zZXQnO1xuZXhwb3J0IHsgcmVmIH0gZnJvbSAnLi9pbnN0cnVjdGlvbi9yZWYnO1xuXG5leHBvcnQgeyBTdGF0ZSwgU3RhdGUgYXMgZGVmYXVsdCwgTUVUSE9EIH0gZnJvbSAnLi9zdGF0ZSc7XG5leHBvcnQgeyB3YXRjaCwgYWRkTGlzdGVuZXIsIGV2ZW50LCBPYnNlcnZhYmxlIH0gZnJvbSAnLi9jb250cm9sJztcbmV4cG9ydCB7IENvbnRleHQgfSBmcm9tICcuL2NvbnRleHQnO1xuIl0sCiAgIm1hcHBpbmdzIjogIkFBQUEsU0FBUyxLQUFLLG1CQUFtQjtBQUNqQyxTQUFTLFdBQVc7QUFDcEIsU0FBUyxXQUFXO0FBQ3BCLFNBQVMsV0FBVztBQUVwQixTQUFTLE9BQWdCLFNBQVRBLFFBQWtCLGNBQWM7QUFDaEQsU0FBUyxPQUFPLGFBQWEsT0FBTyxrQkFBa0I7QUFDdEQsU0FBUyxlQUFlOyIsCiAgIm5hbWVzIjogWyJTdGF0ZSJdCn0K