react-elmish 9.1.0 → 9.2.0-beta.1
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/README.md +12 -14
- package/dist/Testing/execSubscription.d.ts +1 -1
- package/dist/Testing/execSubscription.js +30 -7
- package/dist/mergeSubscriptions.d.ts +3 -2
- package/dist/mergeSubscriptions.js +27 -23
- package/dist/useElmish.d.ts +5 -3
- package/dist/useElmish.js +32 -5
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -415,11 +415,11 @@ Then we write our `subscription` function:
|
|
|
415
415
|
|
|
416
416
|
```ts
|
|
417
417
|
function subscription (model: Model): SubscriptionResult<Message> {
|
|
418
|
-
const sub = (dispatch: Dispatch<Message>)
|
|
419
|
-
setInterval(() => dispatch(Msg.timer(new Date())), 1000)
|
|
418
|
+
const sub = (dispatch: Dispatch<Message>) => {
|
|
419
|
+
setInterval(() => dispatch(Msg.timer(new Date())), 1000);
|
|
420
420
|
}
|
|
421
421
|
|
|
422
|
-
return [
|
|
422
|
+
return [sub];
|
|
423
423
|
}
|
|
424
424
|
```
|
|
425
425
|
|
|
@@ -431,31 +431,29 @@ In the function component we call `useElmish` and pass the subscription to it:
|
|
|
431
431
|
const [{ date }] = useElmish({ name: "Subscriptions", props, init, update, subscription })
|
|
432
432
|
```
|
|
433
433
|
|
|
434
|
-
|
|
434
|
+
Because the return type is an array, you can define and return multiple subscription functions.
|
|
435
435
|
|
|
436
436
|
### Cleanup subscriptions
|
|
437
437
|
|
|
438
|
-
In the solution above `setInterval` will trigger events even if the component is removed from the DOM. To cleanup subscriptions, we can return a `destructor` function
|
|
438
|
+
In the solution above `setInterval` will trigger events even if the component is removed from the DOM. To cleanup subscriptions, we can return a `destructor` function the same way as in the `useEffect` hook.
|
|
439
439
|
|
|
440
440
|
Let's rewrite our `subscription` function:
|
|
441
441
|
|
|
442
442
|
```ts
|
|
443
443
|
function subscription (model: Model): SubscriptionResult<Message> {
|
|
444
|
-
|
|
444
|
+
const sub = (dispatch: Dispatch<Message>) => {
|
|
445
|
+
const timer = setInterval(() => dispatch(Msg.timer(new Date())), 1000);
|
|
445
446
|
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
const destructor = () => {
|
|
451
|
-
clearInterval(timer);
|
|
447
|
+
return () => {
|
|
448
|
+
clearInterval(timer);
|
|
449
|
+
}
|
|
452
450
|
}
|
|
453
451
|
|
|
454
|
-
return [
|
|
452
|
+
return [sub];
|
|
455
453
|
}
|
|
456
454
|
```
|
|
457
455
|
|
|
458
|
-
|
|
456
|
+
The destructor is called when the component is removed from the DOM.
|
|
459
457
|
|
|
460
458
|
## Setup
|
|
461
459
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Dispatch } from "react";
|
|
2
2
|
import type { Message } from "../Types";
|
|
3
|
-
import type
|
|
3
|
+
import { type Subscription } from "../useElmish";
|
|
4
4
|
declare function execSubscription<TProps, TModel, TMessage extends Message>(subscription: Subscription<TProps, TModel, TMessage> | undefined, dispatch: Dispatch<TMessage>, model: TModel, props: TProps): () => void;
|
|
5
5
|
export { execSubscription };
|
|
@@ -4,13 +4,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.execSubscription = execSubscription;
|
|
7
|
+
var _useElmish = require("../useElmish");
|
|
7
8
|
var _execCmd = require("./execCmd");
|
|
8
9
|
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
9
10
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
10
|
-
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
11
|
-
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
12
11
|
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
13
12
|
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
13
|
+
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
14
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
15
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
14
16
|
function execSubscription(subscription, dispatch, model, props) {
|
|
15
17
|
var noop = function noop() {
|
|
16
18
|
// do nothing
|
|
@@ -18,11 +20,32 @@ function execSubscription(subscription, dispatch, model, props) {
|
|
|
18
20
|
if (!subscription) {
|
|
19
21
|
return noop;
|
|
20
22
|
}
|
|
21
|
-
var
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
var subscriptionResult = subscription(model, props);
|
|
24
|
+
if ((0, _useElmish.subscriptionIsFunctionArray)(subscriptionResult)) {
|
|
25
|
+
var disposers = subscriptionResult.map(function (sub) {
|
|
26
|
+
return sub(dispatch);
|
|
27
|
+
}).filter(function (disposer) {
|
|
28
|
+
return disposer !== undefined;
|
|
29
|
+
});
|
|
30
|
+
return function () {
|
|
31
|
+
var _iterator = _createForOfIteratorHelper(disposers),
|
|
32
|
+
_step;
|
|
33
|
+
try {
|
|
34
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
35
|
+
var _dispose = _step.value;
|
|
36
|
+
_dispose();
|
|
37
|
+
}
|
|
38
|
+
} catch (err) {
|
|
39
|
+
_iterator.e(err);
|
|
40
|
+
} finally {
|
|
41
|
+
_iterator.f();
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
var _subscriptionResult = _slicedToArray(subscriptionResult, 2),
|
|
46
|
+
cmd = _subscriptionResult[0],
|
|
47
|
+
dispose = _subscriptionResult[1];
|
|
25
48
|
(0, _execCmd.execCmdWithDispatch)(dispatch, cmd);
|
|
26
49
|
return dispose !== null && dispose !== void 0 ? dispose : noop;
|
|
27
50
|
}
|
|
28
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdXNlRWxtaXNoIiwicmVxdWlyZSIsIl9leGVjQ21kIiwiX3NsaWNlZFRvQXJyYXkiLCJyIiwiZSIsIl9hcnJheVdpdGhIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXlMaW1pdCIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVJlc3QiLCJUeXBlRXJyb3IiLCJsIiwidCIsIlN5bWJvbCIsIml0ZXJhdG9yIiwibiIsImkiLCJ1IiwiYSIsImYiLCJvIiwiY2FsbCIsIm5leHQiLCJPYmplY3QiLCJkb25lIiwicHVzaCIsInZhbHVlIiwibGVuZ3RoIiwiQXJyYXkiLCJpc0FycmF5IiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJfbiIsIkYiLCJzIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0b1N0cmluZyIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwiZnJvbSIsInRlc3QiLCJleGVjU3Vic2NyaXB0aW9uIiwic3Vic2NyaXB0aW9uIiwiZGlzcGF0Y2giLCJtb2RlbCIsInByb3BzIiwibm9vcCIsInN1YnNjcmlwdGlvblJlc3VsdCIsInN1YnNjcmlwdGlvbklzRnVuY3Rpb25BcnJheSIsImRpc3Bvc2VycyIsIm1hcCIsInN1YiIsImZpbHRlciIsImRpc3Bvc2VyIiwidW5kZWZpbmVkIiwiX2l0ZXJhdG9yIiwiX3N0ZXAiLCJkaXNwb3NlIiwiZXJyIiwiX3N1YnNjcmlwdGlvblJlc3VsdCIsImNtZCIsImV4ZWNDbWRXaXRoRGlzcGF0Y2giXSwic291cmNlcyI6WyIuLi8uLi9zcmMvVGVzdGluZy9leGVjU3Vic2NyaXB0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRGlzcGF0Y2ggfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB0eXBlIHsgTWVzc2FnZSB9IGZyb20gXCIuLi9UeXBlc1wiO1xuaW1wb3J0IHsgc3Vic2NyaXB0aW9uSXNGdW5jdGlvbkFycmF5LCB0eXBlIFN1YnNjcmlwdGlvbiB9IGZyb20gXCIuLi91c2VFbG1pc2hcIjtcbmltcG9ydCB7IGV4ZWNDbWRXaXRoRGlzcGF0Y2ggfSBmcm9tIFwiLi9leGVjQ21kXCI7XG5cbmZ1bmN0aW9uIGV4ZWNTdWJzY3JpcHRpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4oXG5cdHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCB1bmRlZmluZWQsXG5cdGRpc3BhdGNoOiBEaXNwYXRjaDxUTWVzc2FnZT4sXG5cdG1vZGVsOiBUTW9kZWwsXG5cdHByb3BzOiBUUHJvcHMsXG4pOiAoKSA9PiB2b2lkIHtcblx0Y29uc3Qgbm9vcCA9ICgpOiB2b2lkID0+IHtcblx0XHQvLyBkbyBub3RoaW5nXG5cdH07XG5cblx0aWYgKCFzdWJzY3JpcHRpb24pIHtcblx0XHRyZXR1cm4gbm9vcDtcblx0fVxuXG5cdGNvbnN0IHN1YnNjcmlwdGlvblJlc3VsdCA9IHN1YnNjcmlwdGlvbihtb2RlbCwgcHJvcHMpO1xuXG5cdGlmIChzdWJzY3JpcHRpb25Jc0Z1bmN0aW9uQXJyYXkoc3Vic2NyaXB0aW9uUmVzdWx0KSkge1xuXHRcdGNvbnN0IGRpc3Bvc2VycyA9IHN1YnNjcmlwdGlvblJlc3VsdC5tYXAoKHN1YikgPT4gc3ViKGRpc3BhdGNoKSkuZmlsdGVyKChkaXNwb3NlcikgPT4gZGlzcG9zZXIgIT09IHVuZGVmaW5lZCk7XG5cblx0XHRyZXR1cm4gKCkgPT4ge1xuXHRcdFx0Zm9yIChjb25zdCBkaXNwb3NlIG9mIGRpc3Bvc2Vycykge1xuXHRcdFx0XHRkaXNwb3NlKCk7XG5cdFx0XHR9XG5cdFx0fTtcblx0fVxuXG5cdGNvbnN0IFtjbWQsIGRpc3Bvc2VdID0gc3Vic2NyaXB0aW9uUmVzdWx0O1xuXG5cdGV4ZWNDbWRXaXRoRGlzcGF0Y2g8VE1lc3NhZ2U+KGRpc3BhdGNoLCBjbWQpO1xuXG5cdHJldHVybiBkaXNwb3NlID8/IG5vb3A7XG59XG5cbmV4cG9ydCB7IGV4ZWNTdWJzY3JpcHRpb24gfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBRUEsSUFBQUEsVUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsUUFBQSxHQUFBRCxPQUFBO0FBQWdELFNBQUFFLGVBQUFDLENBQUEsRUFBQUMsQ0FBQSxXQUFBQyxlQUFBLENBQUFGLENBQUEsS0FBQUcscUJBQUEsQ0FBQUgsQ0FBQSxFQUFBQyxDQUFBLEtBQUFHLDJCQUFBLENBQUFKLENBQUEsRUFBQUMsQ0FBQSxLQUFBSSxnQkFBQTtBQUFBLFNBQUFBLGlCQUFBLGNBQUFDLFNBQUE7QUFBQSxTQUFBSCxzQkFBQUgsQ0FBQSxFQUFBTyxDQUFBLFFBQUFDLENBQUEsV0FBQVIsQ0FBQSxnQ0FBQVMsTUFBQSxJQUFBVCxDQUFBLENBQUFTLE1BQUEsQ0FBQUMsUUFBQSxLQUFBVixDQUFBLDRCQUFBUSxDQUFBLFFBQUFQLENBQUEsRUFBQVUsQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxPQUFBQyxDQUFBLE9BQUFDLENBQUEsaUJBQUFKLENBQUEsSUFBQUosQ0FBQSxHQUFBQSxDQUFBLENBQUFTLElBQUEsQ0FBQWpCLENBQUEsR0FBQWtCLElBQUEsUUFBQVgsQ0FBQSxRQUFBWSxNQUFBLENBQUFYLENBQUEsTUFBQUEsQ0FBQSxVQUFBTyxDQUFBLHVCQUFBQSxDQUFBLElBQUFkLENBQUEsR0FBQVcsQ0FBQSxDQUFBSyxJQUFBLENBQUFULENBQUEsR0FBQVksSUFBQSxNQUFBTixDQUFBLENBQUFPLElBQUEsQ0FBQXBCLENBQUEsQ0FBQXFCLEtBQUEsR0FBQVIsQ0FBQSxDQUFBUyxNQUFBLEtBQUFoQixDQUFBLEdBQUFRLENBQUEsaUJBQUFmLENBQUEsSUFBQWdCLENBQUEsT0FBQUwsQ0FBQSxHQUFBWCxDQUFBLHlCQUFBZSxDQUFBLFlBQUFQLENBQUEsZUFBQUssQ0FBQSxHQUFBTCxDQUFBLGNBQUFXLE1BQUEsQ0FBQU4sQ0FBQSxNQUFBQSxDQUFBLDJCQUFBRyxDQUFBLFFBQUFMLENBQUEsYUFBQUcsQ0FBQTtBQUFBLFNBQUFaLGdCQUFBRixDQUFBLFFBQUF3QixLQUFBLENBQUFDLE9BQUEsQ0FBQXpCLENBQUEsVUFBQUEsQ0FBQTtBQUFBLFNBQUEwQiwyQkFBQTFCLENBQUEsRUFBQUMsQ0FBQSxRQUFBTyxDQUFBLHlCQUFBQyxNQUFBLElBQUFULENBQUEsQ0FBQVMsTUFBQSxDQUFBQyxRQUFBLEtBQUFWLENBQUEscUJBQUFRLENBQUEsUUFBQWdCLEtBQUEsQ0FBQUMsT0FBQSxDQUFBekIsQ0FBQSxNQUFBUSxDQUFBLEdBQUFKLDJCQUFBLENBQUFKLENBQUEsTUFBQUMsQ0FBQSxJQUFBRCxDQUFBLHVCQUFBQSxDQUFBLENBQUF1QixNQUFBLElBQUFmLENBQUEsS0FBQVIsQ0FBQSxHQUFBUSxDQUFBLE9BQUFtQixFQUFBLE1BQUFDLENBQUEsWUFBQUEsRUFBQSxlQUFBQyxDQUFBLEVBQUFELENBQUEsRUFBQWpCLENBQUEsV0FBQUEsRUFBQSxXQUFBZ0IsRUFBQSxJQUFBM0IsQ0FBQSxDQUFBdUIsTUFBQSxLQUFBSCxJQUFBLFdBQUFBLElBQUEsTUFBQUUsS0FBQSxFQUFBdEIsQ0FBQSxDQUFBMkIsRUFBQSxVQUFBMUIsQ0FBQSxXQUFBQSxFQUFBRCxDQUFBLFVBQUFBLENBQUEsS0FBQWUsQ0FBQSxFQUFBYSxDQUFBLGdCQUFBdEIsU0FBQSxpSkFBQVUsQ0FBQSxFQUFBRixDQUFBLE9BQUFELENBQUEsZ0JBQUFnQixDQUFBLFdBQUFBLEVBQUEsSUFBQXJCLENBQUEsR0FBQUEsQ0FBQSxDQUFBUyxJQUFBLENBQUFqQixDQUFBLE1BQUFXLENBQUEsV0FBQUEsRUFBQSxRQUFBWCxDQUFBLEdBQUFRLENBQUEsQ0FBQVUsSUFBQSxXQUFBSixDQUFBLEdBQUFkLENBQUEsQ0FBQW9CLElBQUEsRUFBQXBCLENBQUEsS0FBQUMsQ0FBQSxXQUFBQSxFQUFBRCxDQUFBLElBQUFhLENBQUEsT0FBQUcsQ0FBQSxHQUFBaEIsQ0FBQSxLQUFBZSxDQUFBLFdBQUFBLEVBQUEsVUFBQUQsQ0FBQSxZQUFBTixDQUFBLGNBQUFBLENBQUEsOEJBQUFLLENBQUEsUUFBQUcsQ0FBQTtBQUFBLFNBQUFaLDRCQUFBSixDQUFBLEVBQUFjLENBQUEsUUFBQWQsQ0FBQSwyQkFBQUEsQ0FBQSxTQUFBOEIsaUJBQUEsQ0FBQTlCLENBQUEsRUFBQWMsQ0FBQSxPQUFBTixDQUFBLE1BQUF1QixRQUFBLENBQUFkLElBQUEsQ0FBQWpCLENBQUEsRUFBQWdDLEtBQUEsNkJBQUF4QixDQUFBLElBQUFSLENBQUEsQ0FBQWlDLFdBQUEsS0FBQXpCLENBQUEsR0FBQVIsQ0FBQSxDQUFBaUMsV0FBQSxDQUFBQyxJQUFBLGFBQUExQixDQUFBLGNBQUFBLENBQUEsR0FBQWdCLEtBQUEsQ0FBQVcsSUFBQSxDQUFBbkMsQ0FBQSxvQkFBQVEsQ0FBQSwrQ0FBQTRCLElBQUEsQ0FBQTVCLENBQUEsSUFBQXNCLGlCQUFBLENBQUE5QixDQUFBLEVBQUFjLENBQUE7QUFBQSxTQUFBZ0Isa0JBQUE5QixDQUFBLEVBQUFjLENBQUEsYUFBQUEsQ0FBQSxJQUFBQSxDQUFBLEdBQUFkLENBQUEsQ0FBQXVCLE1BQUEsTUFBQVQsQ0FBQSxHQUFBZCxDQUFBLENBQUF1QixNQUFBLFlBQUF0QixDQUFBLE1BQUFVLENBQUEsR0FBQWEsS0FBQSxDQUFBVixDQUFBLEdBQUFiLENBQUEsR0FBQWEsQ0FBQSxFQUFBYixDQUFBLElBQUFVLENBQUEsQ0FBQVYsQ0FBQSxJQUFBRCxDQUFBLENBQUFDLENBQUEsVUFBQVUsQ0FBQTtBQUVoRCxTQUFTMEIsZ0JBQWdCQSxDQUN4QkMsWUFBZ0UsRUFDaEVDLFFBQTRCLEVBQzVCQyxLQUFhLEVBQ2JDLEtBQWEsRUFDQTtFQUNiLElBQU1DLElBQUksR0FBRyxTQUFQQSxJQUFJQSxDQUFBLEVBQWU7SUFDeEI7RUFBQSxDQUNBO0VBRUQsSUFBSSxDQUFDSixZQUFZLEVBQUU7SUFDbEIsT0FBT0ksSUFBSTtFQUNaO0VBRUEsSUFBTUMsa0JBQWtCLEdBQUdMLFlBQVksQ0FBQ0UsS0FBSyxFQUFFQyxLQUFLLENBQUM7RUFFckQsSUFBSSxJQUFBRyxzQ0FBMkIsRUFBQ0Qsa0JBQWtCLENBQUMsRUFBRTtJQUNwRCxJQUFNRSxTQUFTLEdBQUdGLGtCQUFrQixDQUFDRyxHQUFHLENBQUMsVUFBQ0MsR0FBRztNQUFBLE9BQUtBLEdBQUcsQ0FBQ1IsUUFBUSxDQUFDO0lBQUEsRUFBQyxDQUFDUyxNQUFNLENBQUMsVUFBQ0MsUUFBUTtNQUFBLE9BQUtBLFFBQVEsS0FBS0MsU0FBUztJQUFBLEVBQUM7SUFFN0csT0FBTyxZQUFNO01BQUEsSUFBQUMsU0FBQSxHQUFBekIsMEJBQUEsQ0FDVW1CLFNBQVM7UUFBQU8sS0FBQTtNQUFBO1FBQS9CLEtBQUFELFNBQUEsQ0FBQXRCLENBQUEsTUFBQXVCLEtBQUEsR0FBQUQsU0FBQSxDQUFBeEMsQ0FBQSxJQUFBUyxJQUFBLEdBQWlDO1VBQUEsSUFBdEJpQyxRQUFPLEdBQUFELEtBQUEsQ0FBQTlCLEtBQUE7VUFDakIrQixRQUFPLENBQUMsQ0FBQztRQUNWO01BQUMsU0FBQUMsR0FBQTtRQUFBSCxTQUFBLENBQUFsRCxDQUFBLENBQUFxRCxHQUFBO01BQUE7UUFBQUgsU0FBQSxDQUFBcEMsQ0FBQTtNQUFBO0lBQ0YsQ0FBQztFQUNGO0VBRUEsSUFBQXdDLG1CQUFBLEdBQUF4RCxjQUFBLENBQXVCNEMsa0JBQWtCO0lBQWxDYSxHQUFHLEdBQUFELG1CQUFBO0lBQUVGLE9BQU8sR0FBQUUsbUJBQUE7RUFFbkIsSUFBQUUsNEJBQW1CLEVBQVdsQixRQUFRLEVBQUVpQixHQUFHLENBQUM7RUFFNUMsT0FBT0gsT0FBTyxhQUFQQSxPQUFPLGNBQVBBLE9BQU8sR0FBSVgsSUFBSTtBQUN2QiIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Message } from "./Types";
|
|
2
|
-
import type
|
|
3
|
-
|
|
2
|
+
import { type Subscription, type SubscriptionFunction } from "./useElmish";
|
|
3
|
+
type MergedSubscription<TProps, TModel, TMessage> = (model: TModel, props: TProps) => SubscriptionFunction<TMessage>[];
|
|
4
|
+
declare function mergeSubscriptions<TProps, TModel, TMessage extends Message>(...subscriptions: (Subscription<TProps, TModel, TMessage> | undefined)[]): MergedSubscription<TProps, TModel, TMessage>;
|
|
4
5
|
export { mergeSubscriptions };
|
|
@@ -4,14 +4,17 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.mergeSubscriptions = mergeSubscriptions;
|
|
7
|
-
var
|
|
8
|
-
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
7
|
+
var _useElmish = require("./useElmish");
|
|
9
8
|
function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
|
|
10
9
|
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
11
|
-
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
12
10
|
function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
|
|
13
11
|
function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
|
|
12
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
13
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
14
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
14
15
|
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
16
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
17
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
15
18
|
function mergeSubscriptions() {
|
|
16
19
|
for (var _len = arguments.length, subscriptions = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
17
20
|
subscriptions[_key] = arguments[_key];
|
|
@@ -19,27 +22,28 @@ function mergeSubscriptions() {
|
|
|
19
22
|
return function mergedSubscription(model, props) {
|
|
20
23
|
var results = subscriptions.map(function (sub) {
|
|
21
24
|
return sub === null || sub === void 0 ? void 0 : sub(model, props);
|
|
25
|
+
}).filter(function (subscription) {
|
|
26
|
+
return subscription !== undefined;
|
|
22
27
|
});
|
|
23
|
-
var
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
var disposers = results.map(function (sub) {
|
|
27
|
-
return sub === null || sub === void 0 ? void 0 : sub[1];
|
|
28
|
-
});
|
|
29
|
-
return [_cmd.cmd.batch.apply(_cmd.cmd, _toConsumableArray(commands)), function () {
|
|
30
|
-
var _iterator = _createForOfIteratorHelper(disposers),
|
|
31
|
-
_step;
|
|
32
|
-
try {
|
|
33
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
34
|
-
var disposer = _step.value;
|
|
35
|
-
disposer === null || disposer === void 0 || disposer();
|
|
36
|
-
}
|
|
37
|
-
} catch (err) {
|
|
38
|
-
_iterator.e(err);
|
|
39
|
-
} finally {
|
|
40
|
-
_iterator.f();
|
|
28
|
+
var subscriptionFunctions = results.flatMap(function (result) {
|
|
29
|
+
if ((0, _useElmish.subscriptionIsFunctionArray)(result)) {
|
|
30
|
+
return result;
|
|
41
31
|
}
|
|
42
|
-
|
|
32
|
+
var _result = _slicedToArray(result, 2),
|
|
33
|
+
subCmd = _result[0],
|
|
34
|
+
dispose = _result[1];
|
|
35
|
+
return [].concat(_toConsumableArray(subCmd.map(mapToFn)), [function () {
|
|
36
|
+
return function () {
|
|
37
|
+
return dispose === null || dispose === void 0 ? void 0 : dispose();
|
|
38
|
+
};
|
|
39
|
+
}]);
|
|
40
|
+
});
|
|
41
|
+
return subscriptionFunctions;
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
function mapToFn(cmd) {
|
|
45
|
+
return function (dispatch) {
|
|
46
|
+
cmd(dispatch);
|
|
43
47
|
};
|
|
44
48
|
}
|
|
45
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdXNlRWxtaXNoIiwicmVxdWlyZSIsIl90b0NvbnN1bWFibGVBcnJheSIsInIiLCJfYXJyYXlXaXRob3V0SG9sZXMiLCJfaXRlcmFibGVUb0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlU3ByZWFkIiwiVHlwZUVycm9yIiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJBcnJheSIsImZyb20iLCJpc0FycmF5IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJfc2xpY2VkVG9BcnJheSIsImUiLCJfYXJyYXlXaXRoSG9sZXMiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJfbm9uSXRlcmFibGVSZXN0IiwiYSIsInQiLCJ0b1N0cmluZyIsImNhbGwiLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsInRlc3QiLCJsZW5ndGgiLCJuIiwibCIsImkiLCJ1IiwiZiIsIm8iLCJuZXh0IiwiT2JqZWN0IiwiZG9uZSIsInB1c2giLCJ2YWx1ZSIsIm1lcmdlU3Vic2NyaXB0aW9ucyIsIl9sZW4iLCJhcmd1bWVudHMiLCJzdWJzY3JpcHRpb25zIiwiX2tleSIsIm1lcmdlZFN1YnNjcmlwdGlvbiIsIm1vZGVsIiwicHJvcHMiLCJyZXN1bHRzIiwibWFwIiwic3ViIiwiZmlsdGVyIiwic3Vic2NyaXB0aW9uIiwidW5kZWZpbmVkIiwic3Vic2NyaXB0aW9uRnVuY3Rpb25zIiwiZmxhdE1hcCIsInJlc3VsdCIsInN1YnNjcmlwdGlvbklzRnVuY3Rpb25BcnJheSIsIl9yZXN1bHQiLCJzdWJDbWQiLCJkaXNwb3NlIiwiY29uY2F0IiwibWFwVG9GbiIsImNtZCIsImRpc3BhdGNoIl0sInNvdXJjZXMiOlsiLi4vc3JjL21lcmdlU3Vic2NyaXB0aW9ucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERpc3BhdGNoLCBNZXNzYWdlLCBTdWIgfSBmcm9tIFwiLi9UeXBlc1wiO1xuaW1wb3J0IHsgc3Vic2NyaXB0aW9uSXNGdW5jdGlvbkFycmF5LCB0eXBlIFN1YnNjcmlwdGlvbiwgdHlwZSBTdWJzY3JpcHRpb25GdW5jdGlvbiB9IGZyb20gXCIuL3VzZUVsbWlzaFwiO1xuXG50eXBlIE1lcmdlZFN1YnNjcmlwdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+ID0gKG1vZGVsOiBUTW9kZWwsIHByb3BzOiBUUHJvcHMpID0+IFN1YnNjcmlwdGlvbkZ1bmN0aW9uPFRNZXNzYWdlPltdO1xuXG5mdW5jdGlvbiBtZXJnZVN1YnNjcmlwdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4oXG5cdC4uLnN1YnNjcmlwdGlvbnM6IChTdWJzY3JpcHRpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiB8IHVuZGVmaW5lZClbXVxuKTogTWVyZ2VkU3Vic2NyaXB0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4ge1xuXHRyZXR1cm4gZnVuY3Rpb24gbWVyZ2VkU3Vic2NyaXB0aW9uKG1vZGVsLCBwcm9wcykge1xuXHRcdGNvbnN0IHJlc3VsdHMgPSBzdWJzY3JpcHRpb25zLm1hcCgoc3ViKSA9PiBzdWI/Lihtb2RlbCwgcHJvcHMpKS5maWx0ZXIoKHN1YnNjcmlwdGlvbikgPT4gc3Vic2NyaXB0aW9uICE9PSB1bmRlZmluZWQpO1xuXG5cdFx0Y29uc3Qgc3Vic2NyaXB0aW9uRnVuY3Rpb25zID0gcmVzdWx0cy5mbGF0TWFwKChyZXN1bHQpID0+IHtcblx0XHRcdGlmIChzdWJzY3JpcHRpb25Jc0Z1bmN0aW9uQXJyYXkocmVzdWx0KSkge1xuXHRcdFx0XHRyZXR1cm4gcmVzdWx0O1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBbc3ViQ21kLCBkaXNwb3NlXSA9IHJlc3VsdDtcblxuXHRcdFx0cmV0dXJuIFsuLi5zdWJDbWQubWFwKG1hcFRvRm4pLCAoKSA9PiAoKSA9PiBkaXNwb3NlPy4oKV07XG5cdFx0fSk7XG5cblx0XHRyZXR1cm4gc3Vic2NyaXB0aW9uRnVuY3Rpb25zO1xuXHR9O1xufVxuXG5mdW5jdGlvbiBtYXBUb0ZuPFRNZXNzYWdlPihjbWQ6IFN1YjxUTWVzc2FnZT4pOiAoZGlzcGF0Y2g6IERpc3BhdGNoPFRNZXNzYWdlPikgPT4gdW5kZWZpbmVkIHtcblx0cmV0dXJuIChkaXNwYXRjaCkgPT4ge1xuXHRcdGNtZChkaXNwYXRjaCk7XG5cdH07XG59XG5cbmV4cG9ydCB7IG1lcmdlU3Vic2NyaXB0aW9ucyB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxJQUFBQSxVQUFBLEdBQUFDLE9BQUE7QUFBd0csU0FBQUMsbUJBQUFDLENBQUEsV0FBQUMsa0JBQUEsQ0FBQUQsQ0FBQSxLQUFBRSxnQkFBQSxDQUFBRixDQUFBLEtBQUFHLDJCQUFBLENBQUFILENBQUEsS0FBQUksa0JBQUE7QUFBQSxTQUFBQSxtQkFBQSxjQUFBQyxTQUFBO0FBQUEsU0FBQUgsaUJBQUFGLENBQUEsOEJBQUFNLE1BQUEsWUFBQU4sQ0FBQSxDQUFBTSxNQUFBLENBQUFDLFFBQUEsYUFBQVAsQ0FBQSx1QkFBQVEsS0FBQSxDQUFBQyxJQUFBLENBQUFULENBQUE7QUFBQSxTQUFBQyxtQkFBQUQsQ0FBQSxRQUFBUSxLQUFBLENBQUFFLE9BQUEsQ0FBQVYsQ0FBQSxVQUFBVyxpQkFBQSxDQUFBWCxDQUFBO0FBQUEsU0FBQVksZUFBQVosQ0FBQSxFQUFBYSxDQUFBLFdBQUFDLGVBQUEsQ0FBQWQsQ0FBQSxLQUFBZSxxQkFBQSxDQUFBZixDQUFBLEVBQUFhLENBQUEsS0FBQVYsMkJBQUEsQ0FBQUgsQ0FBQSxFQUFBYSxDQUFBLEtBQUFHLGdCQUFBO0FBQUEsU0FBQUEsaUJBQUEsY0FBQVgsU0FBQTtBQUFBLFNBQUFGLDRCQUFBSCxDQUFBLEVBQUFpQixDQUFBLFFBQUFqQixDQUFBLDJCQUFBQSxDQUFBLFNBQUFXLGlCQUFBLENBQUFYLENBQUEsRUFBQWlCLENBQUEsT0FBQUMsQ0FBQSxNQUFBQyxRQUFBLENBQUFDLElBQUEsQ0FBQXBCLENBQUEsRUFBQXFCLEtBQUEsNkJBQUFILENBQUEsSUFBQWxCLENBQUEsQ0FBQXNCLFdB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
|
package/dist/useElmish.d.ts
CHANGED
|
@@ -3,8 +3,10 @@ import type { Cmd, Dispatch, InitFunction, Message, UpdateFunction, UpdateFuncti
|
|
|
3
3
|
* The return type of the `subscription` function.
|
|
4
4
|
* @template TMessage The type of the messages discriminated union.
|
|
5
5
|
*/
|
|
6
|
-
type SubscriptionResult<TMessage> = [Cmd<TMessage>, (() => void)?];
|
|
6
|
+
type SubscriptionResult<TMessage> = [Cmd<TMessage>, (() => void)?] | SubscriptionFunction<TMessage>[];
|
|
7
|
+
type SubscriptionFunction<TMessage> = (dispatch: Dispatch<TMessage>) => (() => void) | undefined;
|
|
7
8
|
type Subscription<TProps, TModel, TMessage> = (model: TModel, props: TProps) => SubscriptionResult<TMessage>;
|
|
9
|
+
declare function subscriptionIsFunctionArray(subscription: SubscriptionResult<unknown>): subscription is SubscriptionFunction<unknown>[];
|
|
8
10
|
/**
|
|
9
11
|
* Options for the `useElmish` hook.
|
|
10
12
|
* @interface UseElmishOptions
|
|
@@ -49,5 +51,5 @@ interface UseElmishOptions<TProps, TModel, TMessage extends Message> {
|
|
|
49
51
|
declare function useElmish<TProps, TModel, TMessage extends Message>({ name, props, init, update, subscription, }: UseElmishOptions<TProps, TModel, TMessage>): [TModel, Dispatch<TMessage>];
|
|
50
52
|
declare function callUpdate<TProps, TModel, TMessage extends Message>(update: UpdateFunction<TProps, TModel, TMessage> | UpdateMap<TProps, TModel, TMessage>, msg: TMessage, model: TModel, props: TProps, options: UpdateFunctionOptions<TProps, TModel, TMessage>): UpdateReturnType<TModel, TMessage>;
|
|
51
53
|
declare function callUpdateMap<TProps, TModel, TMessage extends Message>(updateMap: UpdateMap<TProps, TModel, TMessage>, msg: TMessage, model: TModel, props: TProps, options: UpdateFunctionOptions<TProps, TModel, TMessage>): UpdateReturnType<TModel, TMessage>;
|
|
52
|
-
export type { Subscription, SubscriptionResult, UseElmishOptions };
|
|
53
|
-
export { callUpdate, callUpdateMap, useElmish };
|
|
54
|
+
export type { Subscription, SubscriptionFunction, SubscriptionResult, UseElmishOptions };
|
|
55
|
+
export { callUpdate, callUpdateMap, subscriptionIsFunctionArray, useElmish };
|
package/dist/useElmish.js
CHANGED
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.callUpdate = callUpdate;
|
|
8
8
|
exports.callUpdateMap = callUpdateMap;
|
|
9
|
+
exports.subscriptionIsFunctionArray = subscriptionIsFunctionArray;
|
|
9
10
|
exports.useElmish = useElmish;
|
|
10
11
|
var _react = require("react");
|
|
11
12
|
var _Common = require("./Common");
|
|
@@ -14,6 +15,7 @@ var _createCallBase = require("./createCallBase");
|
|
|
14
15
|
var _createDefer3 = require("./createDefer");
|
|
15
16
|
var _fakeOptions = require("./fakeOptions");
|
|
16
17
|
var _reduxDevTools = require("./reduxDevTools");
|
|
18
|
+
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
17
19
|
function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
|
|
18
20
|
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
19
21
|
function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
|
|
@@ -35,6 +37,10 @@ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; } /* eslint-disabl
|
|
|
35
37
|
* @template TMessage The type of the messages discriminated union.
|
|
36
38
|
*/
|
|
37
39
|
|
|
40
|
+
function subscriptionIsFunctionArray(subscription) {
|
|
41
|
+
return typeof subscription[0] === "function";
|
|
42
|
+
}
|
|
43
|
+
|
|
38
44
|
/**
|
|
39
45
|
* Options for the `useElmish` hook.
|
|
40
46
|
* @interface UseElmishOptions
|
|
@@ -141,10 +147,31 @@ function useElmish(_ref) {
|
|
|
141
147
|
// biome-ignore lint/correctness/useExhaustiveDependencies: We want to run this effect only once
|
|
142
148
|
(0, _react.useEffect)(function () {
|
|
143
149
|
if (subscription) {
|
|
144
|
-
var
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
150
|
+
var subscriptionResult = subscription(initializedModel, props);
|
|
151
|
+
if (subscriptionIsFunctionArray(subscriptionResult)) {
|
|
152
|
+
var destructors = subscriptionResult.map(function (sub) {
|
|
153
|
+
return sub(dispatch);
|
|
154
|
+
}).filter(function (destructor) {
|
|
155
|
+
return destructor !== undefined;
|
|
156
|
+
});
|
|
157
|
+
return function combinedDestructor() {
|
|
158
|
+
var _iterator = _createForOfIteratorHelper(destructors),
|
|
159
|
+
_step;
|
|
160
|
+
try {
|
|
161
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
162
|
+
var _destructor = _step.value;
|
|
163
|
+
_destructor();
|
|
164
|
+
}
|
|
165
|
+
} catch (err) {
|
|
166
|
+
_iterator.e(err);
|
|
167
|
+
} finally {
|
|
168
|
+
_iterator.f();
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
var _subscriptionResult = _slicedToArray(subscriptionResult, 2),
|
|
173
|
+
subCmd = _subscriptionResult[0],
|
|
174
|
+
destructor = _subscriptionResult[1];
|
|
148
175
|
(0, _Common.execCmd)(dispatch, subCmd);
|
|
149
176
|
return destructor;
|
|
150
177
|
}
|
|
@@ -193,4 +220,4 @@ function callUpdateMap(updateMap, msg, model, props, options) {
|
|
|
193
220
|
var msgName = msg.name;
|
|
194
221
|
return updateMap[msgName](msg, model, props, options);
|
|
195
222
|
}
|
|
196
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX0NvbW1vbiIsIl9Jbml0IiwiX2NyZWF0ZUNhbGxCYXNlIiwiX2NyZWF0ZURlZmVyMyIsIl9mYWtlT3B0aW9ucyIsIl9yZWR1eERldlRvb2xzIiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiciIsIl9hcnJheVdpdGhvdXRIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXkiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVTcHJlYWQiLCJUeXBlRXJyb3IiLCJBcnJheSIsImlzQXJyYXkiLCJfYXJyYXlMaWtlVG9BcnJheSIsIl90b0FycmF5IiwiX2FycmF5V2l0aEhvbGVzIiwiX25vbkl0ZXJhYmxlUmVzdCIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiZnJvbSIsIm93bktleXMiLCJlIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIl90b1Byb3BlcnR5S2V5IiwidmFsdWUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImkiLCJfdG9QcmltaXRpdmUiLCJfdHlwZW9mIiwidG9QcmltaXRpdmUiLCJjYWxsIiwiU3RyaW5nIiwiTnVtYmVyIiwiX3NsaWNlZFRvQXJyYXkiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJhIiwidG9TdHJpbmciLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsInRlc3QiLCJuIiwibCIsInUiLCJmIiwibmV4dCIsImRvbmUiLCJ1c2VFbG1pc2giLCJfcmVmIiwiX2Zha2VPcHRpb25zJGRpc3BhdGNoIiwicHJvcHMiLCJpbml0IiwidXBkYXRlIiwic3Vic2NyaXB0aW9uIiwicnVubmluZyIsImJ1ZmZlciIsImN1cnJlbnRNb2RlbCIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIm1vZGVsIiwic2V0TW9kZWwiLCJwcm9wc1JlZiIsInVzZVJlZiIsImlzTW91bnRlZFJlZiIsImRldlRvb2xzIiwidXNlRWZmZWN0IiwicmVkdXhVbnN1YnNjcmliZSIsIlNlcnZpY2VzIiwiZW5hYmxlRGV2VG9vbHMiLCJpc1JlZHV4RGV2VG9vbHNFbmFibGVkIiwid2luZG93IiwiY3VycmVudCIsIl9fUkVEVVhfREVWVE9PTFNfRVhURU5TSU9OX18iLCJjb25uZWN0Iiwic2VyaWFsaXplIiwib3B0aW9ucyIsInN1YnNjcmliZSIsIm1lc3NhZ2UiLCJ0eXBlIiwicGF5bG9hZCIsIkpTT04iLCJwYXJzZSIsInN0YXRlIiwiX3JlZHV4VW5zdWJzY3JpYmUiLCJpbml0aWFsaXplZE1vZGVsIiwiZmFrZU9wdGlvbnMiLCJnZXRGYWtlT3B0aW9uc09uY2UiLCJkaXNwYXRjaCIsInVzZUNhbGxiYWNrIiwibXNnIiwibmV4dE1zZyIsIm1vZGlmaWVkIiwiaGFuZGxlTWVzc2FnZSIsInNlbmQiLCJzaGlmdCIsInByZXZNb2RlbCIsIl9TZXJ2aWNlcyRsb2dnZXIiLCJ1cGRhdGVkTW9kZWwiLCJsb2dnZXIiLCJkZWJ1ZyIsIl9kZXZUb29scyRjdXJyZW50IiwiX1NlcnZpY2VzJGxvZ2dlcjIiLCJfcmVmMiIsIl9yZWYzIiwiaW5pdE1vZGVsIiwiaW5pdENvbW1hbmRzIiwiZXhlY0NtZCIsImNvbmNhdCIsIl9zdWJzY3JpcHRpb24iLCJfc3Vic2NyaXB0aW9uMiIsInN1YkNtZCIsImRlc3RydWN0b3IiLCJsb2dNZXNzYWdlIiwiX2NyZWF0ZURlZmVyIiwiY3JlYXRlRGVmZXIiLCJfY3JlYXRlRGVmZXIyIiwiZGVmZXIiLCJnZXREZWZlcnJlZCIsImNhbGxCYXNlIiwiY3JlYXRlQ2FsbEJhc2UiLCJfY2FsbFVwZGF0ZSIsImNhbGxVcGRhdGUiLCJfY2FsbFVwZGF0ZTIiLCJuZXdNb2RlbCIsImNvbW1hbmRzIiwiX2dldERlZmVycmVkIiwiX2dldERlZmVycmVkMiIsImRlZmVycmVkTW9kZWwiLCJkZWZlcnJlZENvbW1hbmRzIiwibW9kZWxIYXNDaGFuZ2VkIiwiY2FsbFVwZGF0ZU1hcCIsInVwZGF0ZU1hcCIsIm1zZ05hbWUiXSwic291cmNlcyI6WyIuLi9zcmMvdXNlRWxtaXNoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwcyAqL1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgZXhlY0NtZCwgbG9nTWVzc2FnZSwgbW9kZWxIYXNDaGFuZ2VkIH0gZnJvbSBcIi4vQ29tbW9uXCI7XG5pbXBvcnQgeyBTZXJ2aWNlcyB9IGZyb20gXCIuL0luaXRcIjtcbmltcG9ydCB0eXBlIHtcblx0Q21kLFxuXHREaXNwYXRjaCxcblx0SW5pdEZ1bmN0aW9uLFxuXHRNZXNzYWdlLFxuXHROdWxsYWJsZSxcblx0VXBkYXRlRnVuY3Rpb24sXG5cdFVwZGF0ZUZ1bmN0aW9uT3B0aW9ucyxcblx0VXBkYXRlTWFwLFxuXHRVcGRhdGVSZXR1cm5UeXBlLFxufSBmcm9tIFwiLi9UeXBlc1wiO1xuaW1wb3J0IHsgY3JlYXRlQ2FsbEJhc2UgfSBmcm9tIFwiLi9jcmVhdGVDYWxsQmFzZVwiO1xuaW1wb3J0IHsgY3JlYXRlRGVmZXIgfSBmcm9tIFwiLi9jcmVhdGVEZWZlclwiO1xuaW1wb3J0IHsgZ2V0RmFrZU9wdGlvbnNPbmNlIH0gZnJvbSBcIi4vZmFrZU9wdGlvbnNcIjtcbmltcG9ydCB7IGlzUmVkdXhEZXZUb29sc0VuYWJsZWQsIHR5cGUgUmVkdXhEZXZUb29scyB9IGZyb20gXCIuL3JlZHV4RGV2VG9vbHNcIjtcblxuLyoqXG4gKiBUaGUgcmV0dXJuIHR5cGUgb2YgdGhlIGBzdWJzY3JpcHRpb25gIGZ1bmN0aW9uLlxuICogQHRlbXBsYXRlIFRNZXNzYWdlIFRoZSB0eXBlIG9mIHRoZSBtZXNzYWdlcyBkaXNjcmltaW5hdGVkIHVuaW9uLlxuICovXG50eXBlIFN1YnNjcmlwdGlvblJlc3VsdDxUTWVzc2FnZT4gPSBbQ21kPFRNZXNzYWdlPiwgKCgpID0+IHZvaWQpP107XG50eXBlIFN1YnNjcmlwdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+ID0gKG1vZGVsOiBUTW9kZWwsIHByb3BzOiBUUHJvcHMpID0+IFN1YnNjcmlwdGlvblJlc3VsdDxUTWVzc2FnZT47XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgdGhlIGB1c2VFbG1pc2hgIGhvb2suXG4gKiBAaW50ZXJmYWNlIFVzZUVsbWlzaE9wdGlvbnNcbiAqIEB0ZW1wbGF0ZSBUUHJvcHMgVGhlIHR5cGUgb2YgdGhlIHByb3BzLlxuICogQHRlbXBsYXRlIFRNb2RlbCBUaGUgdHlwZSBvZiB0aGUgbW9kZWwuXG4gKiBAdGVtcGxhdGUgVE1lc3NhZ2UgVGhlIHR5cGUgb2YgdGhlIG1lc3NhZ2VzIGRpc2NyaW1pbmF0ZWQgdW5pb24uXG4gKi9cbmludGVyZmFjZSBVc2VFbG1pc2hPcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+IHtcblx0LyoqXG5cdCAqIFRoZSBuYW1lIG9mIHRoZSBjb21wb25lbnQuIFRoaXMgaXMgdXNlZCBmb3IgbG9nZ2luZyBvbmx5LlxuXHQgKiBAdHlwZSB7c3RyaW5nfVxuXHQgKi9cblx0bmFtZTogc3RyaW5nO1xuXHQvKipcblx0ICogVGhlIHByb3BzIHBhc3NlZCB0byB0aGUgY29tcG9uZW50LlxuXHQgKiBAdHlwZSB7VFByb3BzfVxuXHQgKi9cblx0cHJvcHM6IFRQcm9wcztcblx0LyoqXG5cdCAqIFRoZSBmdW5jdGlvbiB0byBpbml0aWFsaXplIHRoZSBjb21wb25lbnRzIG1vZGVsLiBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgY2FsbGVkIG9uY2UuXG5cdCAqIEB0eXBlIHtJbml0RnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPn1cblx0ICovXG5cdGluaXQ6IEluaXRGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+O1xuXHQvKipcblx0ICogVGhlIGB1cGRhdGVgIGZ1bmN0aW9uIG9yIHVwZGF0ZSBtYXAgb2JqZWN0LlxuXHQgKiBAdHlwZSB7KFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPil9XG5cdCAqL1xuXHR1cGRhdGU6IFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPjtcblx0LyoqXG5cdCAqIFRoZSBvcHRpb25hbCBgc3Vic2NyaXB0aW9uYCBmdW5jdGlvbi4gVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGNhbGxlZCBvbmNlLlxuXHQgKiBAdHlwZSB7KFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPil9XG5cdCAqL1xuXHRzdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPjtcbn1cblxuLyoqXG4gKiBIb29rIHRvIHVzZSB0aGUgRWxtIGFyY2hpdGVjdHVyZSBwYXR0ZXJuIGluIGEgZnVuY3Rpb24gY29tcG9uZW50LlxuICogQHBhcmFtIHtVc2VFbG1pc2hPcHRpb25zfSBvcHRpb25zIFRoZSBvcHRpb25zIHBhc3NlZCB0aGUgdGhlIGhvb2suXG4gKiBAcmV0dXJucyBBIHR1cGxlIGNvbnRhaW5pbmcgdGhlIGN1cnJlbnQgbW9kZWwgYW5kIHRoZSBkaXNwYXRjaGVyLlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IFttb2RlbCwgZGlzcGF0Y2hdID0gdXNlRWxtaXNoKHsgcHJvcHMsIGluaXQsIHVwZGF0ZSwgbmFtZTogXCJNeUNvbXBvbmVudFwiIH0pO1xuICovXG5mdW5jdGlvbiB1c2VFbG1pc2g8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4oe1xuXHRuYW1lLFxuXHRwcm9wcyxcblx0aW5pdCxcblx0dXBkYXRlLFxuXHRzdWJzY3JpcHRpb24sXG59OiBVc2VFbG1pc2hPcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4pOiBbVE1vZGVsLCBEaXNwYXRjaDxUTWVzc2FnZT5dIHtcblx0bGV0IHJ1bm5pbmcgPSBmYWxzZTtcblx0Y29uc3QgYnVmZmVyOiBUTWVzc2FnZVtdID0gW107XG5cdGxldCBjdXJyZW50TW9kZWw6IFBhcnRpYWw8VE1vZGVsPiA9IHt9O1xuXG5cdGNvbnN0IFttb2RlbCwgc2V0TW9kZWxdID0gdXNlU3RhdGU8TnVsbGFibGU8VE1vZGVsPj4obnVsbCk7XG5cdGNvbnN0IHByb3BzUmVmID0gdXNlUmVmKHByb3BzKTtcblx0Y29uc3QgaXNNb3VudGVkUmVmID0gdXNlUmVmKHRydWUpO1xuXG5cdGNvbnN0IGRldlRvb2xzID0gdXNlUmVmPFJlZHV4RGV2VG9vbHMgfCBudWxsPihudWxsKTtcblxuXHR1c2VFZmZlY3QoKCkgPT4ge1xuXHRcdGxldCByZWR1eFVuc3Vic2NyaWJlOiAoKCkgPT4gdm9pZCkgfCB1bmRlZmluZWQ7XG5cblx0XHRpZiAoU2VydmljZXMuZW5hYmxlRGV2VG9vbHMgPT09IHRydWUgJiYgaXNSZWR1eERldlRvb2xzRW5hYmxlZCh3aW5kb3cpKSB7XG5cdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZXJzY29yZS1kYW5nbGVcblx0XHRcdGRldlRvb2xzLmN1cnJlbnQgPSB3aW5kb3cuX19SRURVWF9ERVZUT09MU19FWFRFTlNJT05fXy5jb25uZWN0KHsgbmFtZSwgc2VyaWFsaXplOiB7IG9wdGlvbnM6IHRydWUgfSB9KTtcblxuXHRcdFx0cmVkdXhVbnN1YnNjcmliZSA9IGRldlRvb2xzLmN1cnJlbnQuc3Vic2NyaWJlKChtZXNzYWdlKSA9PiB7XG5cdFx0XHRcdGlmIChtZXNzYWdlLnR5cGUgPT09IFwiRElTUEFUQ0hcIiAmJiBtZXNzYWdlLnBheWxvYWQudHlwZSA9PT0gXCJKVU1QX1RPX0FDVElPTlwiKSB7XG5cdFx0XHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtdHlwZS1hc3NlcnRpb25cblx0XHRcdFx0XHRzZXRNb2RlbChKU09OLnBhcnNlKG1lc3NhZ2Uuc3RhdGUpIGFzIFRNb2RlbCk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH1cblxuXHRcdGlzTW91bnRlZFJlZi5jdXJyZW50ID0gdHJ1ZTtcblxuXHRcdHJldHVybiAoKSA9PiB7XG5cdFx0XHRpc01vdW50ZWRSZWYuY3VycmVudCA9IGZhbHNlO1xuXG5cdFx0XHRyZWR1eFVuc3Vic2NyaWJlPy4oKTtcblx0XHR9O1xuXHR9LCBbbmFtZV0pO1xuXG5cdGxldCBpbml0aWFsaXplZE1vZGVsID0gbW9kZWw7XG5cblx0aWYgKHByb3BzUmVmLmN1cnJlbnQgIT09IHByb3BzKSB7XG5cdFx0cHJvcHNSZWYuY3VycmVudCA9IHByb3BzO1xuXHR9XG5cblx0Y29uc3QgZmFrZU9wdGlvbnMgPSBnZXRGYWtlT3B0aW9uc09uY2U8VE1vZGVsLCBUTWVzc2FnZT4oKTtcblx0Y29uc3QgZGlzcGF0Y2ggPSB1c2VDYWxsYmFjayhcblx0XHRmYWtlT3B0aW9ucz8uZGlzcGF0Y2ggPz9cblx0XHRcdCgobXNnOiBUTWVzc2FnZSk6IHZvaWQgPT4ge1xuXHRcdFx0XHRpZiAocnVubmluZykge1xuXHRcdFx0XHRcdGJ1ZmZlci5wdXNoKG1zZyk7XG5cblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRydW5uaW5nID0gdHJ1ZTtcblxuXHRcdFx0XHRsZXQgbmV4dE1zZzogVE1lc3NhZ2UgfCB1bmRlZmluZWQgPSBtc2c7XG5cdFx0XHRcdGxldCBtb2RpZmllZCA9IGZhbHNlO1xuXG5cdFx0XHRcdGRvIHtcblx0XHRcdFx0XHRpZiAoaGFuZGxlTWVzc2FnZShuZXh0TXNnKSkge1xuXHRcdFx0XHRcdFx0bW9kaWZpZWQgPSB0cnVlO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGlmIChkZXZUb29scy5jdXJyZW50KSB7XG5cdFx0XHRcdFx0XHRkZXZUb29scy5jdXJyZW50LnNlbmQobmV4dE1zZy5uYW1lLCB7IC4uLmluaXRpYWxpemVkTW9kZWwsIC4uLmN1cnJlbnRNb2RlbCB9KTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRuZXh0TXNnID0gYnVmZmVyLnNoaWZ0KCk7XG5cdFx0XHRcdH0gd2hpbGUgKG5leHRNc2cpO1xuXG5cdFx0XHRcdHJ1bm5pbmcgPSBmYWxzZTtcblxuXHRcdFx0XHRpZiAoaXNNb3VudGVkUmVmLmN1cnJlbnQgJiYgbW9kaWZpZWQpIHtcblx0XHRcdFx0XHRzZXRNb2RlbCgocHJldk1vZGVsKSA9PiB7XG5cdFx0XHRcdFx0XHRjb25zdCB1cGRhdGVkTW9kZWwgPSB7IC4uLnByZXZNb2RlbCwgLi4uY3VycmVudE1vZGVsIH07XG5cblx0XHRcdFx0XHRcdFNlcnZpY2VzLmxvZ2dlcj8uZGVidWcoXCJVcGRhdGUgbW9kZWwgZm9yXCIsIG5hbWUsIHVwZGF0ZWRNb2RlbCk7XG5cblx0XHRcdFx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLXR5cGUtYXNzZXJ0aW9uIC0tIFdlIGFsd2F5cyBoYXZlIGEgZnVsbCBtb2RlbCBoZXJlXG5cdFx0XHRcdFx0XHRyZXR1cm4gdXBkYXRlZE1vZGVsIGFzIFRNb2RlbDtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXHRcdFx0fSksXG5cdFx0W10sXG5cdCk7XG5cblx0aWYgKCFpbml0aWFsaXplZE1vZGVsKSB7XG5cdFx0Y29uc3QgW2luaXRNb2RlbCwgLi4uaW5pdENvbW1hbmRzXSA9IGZha2VPcHRpb25zPy5tb2RlbCA/IFtmYWtlT3B0aW9ucy5tb2RlbF0gOiBpbml0KHByb3BzKTtcblxuXHRcdGluaXRpYWxpemVkTW9kZWwgPSBpbml0TW9kZWw7XG5cdFx0c2V0TW9kZWwoaW5pdGlhbGl6ZWRNb2RlbCk7XG5cblx0XHRkZXZUb29scy5jdXJyZW50Py5pbml0KGluaXRpYWxpemVkTW9kZWwpO1xuXG5cdFx0U2VydmljZXMubG9nZ2VyPy5kZWJ1ZyhcIkluaXRpYWwgbW9kZWwgZm9yXCIsIG5hbWUsIGluaXRpYWxpemVkTW9kZWwpO1xuXG5cdFx0ZXhlY0NtZChkaXNwYXRjaCwgLi4uaW5pdENvbW1hbmRzKTtcblx0fVxuXG5cdC8vIGJpb21lLWlnbm9yZSBsaW50L2NvcnJlY3RuZXNzL3VzZUV4aGF1c3RpdmVEZXBlbmRlbmNpZXM6IFdlIHdhbnQgdG8gcnVuIHRoaXMgZWZmZWN0IG9ubHkgb25jZVxuXHR1c2VFZmZlY3QoKCkgPT4ge1xuXHRcdGlmIChzdWJzY3JpcHRpb24pIHtcblx0XHRcdGNvbnN0IFtzdWJDbWQsIGRlc3RydWN0b3JdID0gc3Vic2NyaXB0aW9uKGluaXRpYWxpemVkTW9kZWwsIHByb3BzKTtcblxuXHRcdFx0ZXhlY0NtZChkaXNwYXRjaCwgc3ViQ21kKTtcblxuXHRcdFx0cmV0dXJuIGRlc3RydWN0b3I7XG5cdFx0fVxuXHR9LCBbXSk7XG5cblx0cmV0dXJuIFtpbml0aWFsaXplZE1vZGVsLCBkaXNwYXRjaF07XG5cblx0ZnVuY3Rpb24gaGFuZGxlTWVzc2FnZShuZXh0TXNnOiBUTWVzc2FnZSk6IGJvb2xlYW4ge1xuXHRcdGlmICghaW5pdGlhbGl6ZWRNb2RlbCkge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdGxldCBtb2RpZmllZCA9IGZhbHNlO1xuXG5cdFx0bG9nTWVzc2FnZShuYW1lLCBuZXh0TXNnKTtcblxuXHRcdGNvbnN0IHVwZGF0ZWRNb2RlbCA9IHsgLi4uaW5pdGlhbGl6ZWRNb2RlbCwgLi4uY3VycmVudE1vZGVsIH07XG5cblx0XHRjb25zdCBbZGVmZXIsIGdldERlZmVycmVkXSA9IGNyZWF0ZURlZmVyPFRNb2RlbCwgVE1lc3NhZ2U+KCk7XG5cdFx0Y29uc3QgY2FsbEJhc2UgPSBjcmVhdGVDYWxsQmFzZShuZXh0TXNnLCB1cGRhdGVkTW9kZWwsIHByb3BzUmVmLmN1cnJlbnQsIHsgZGVmZXIgfSk7XG5cblx0XHRjb25zdCBbbmV3TW9kZWwsIC4uLmNvbW1hbmRzXSA9IGNhbGxVcGRhdGUodXBkYXRlLCBuZXh0TXNnLCB1cGRhdGVkTW9kZWwsIHByb3BzUmVmLmN1cnJlbnQsIHsgZGVmZXIsIGNhbGxCYXNlIH0pO1xuXG5cdFx0Y29uc3QgW2RlZmVycmVkTW9kZWwsIGRlZmVycmVkQ29tbWFuZHNdID0gZ2V0RGVmZXJyZWQoKTtcblxuXHRcdGlmIChtb2RlbEhhc0NoYW5nZWQoY3VycmVudE1vZGVsLCB7IC4uLmRlZmVycmVkTW9kZWwsIC4uLm5ld01vZGVsIH0pKSB7XG5cdFx0XHRjdXJyZW50TW9kZWwgPSB7IC4uLmN1cnJlbnRNb2RlbCwgLi4uZGVmZXJyZWRNb2RlbCwgLi4ubmV3TW9kZWwgfTtcblxuXHRcdFx0bW9kaWZpZWQgPSB0cnVlO1xuXHRcdH1cblxuXHRcdGV4ZWNDbWQoZGlzcGF0Y2gsIC4uLmNvbW1hbmRzLCAuLi5kZWZlcnJlZENvbW1hbmRzKTtcblxuXHRcdHJldHVybiBtb2RpZmllZDtcblx0fVxufVxuXG5mdW5jdGlvbiBjYWxsVXBkYXRlPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+KFxuXHR1cGRhdGU6IFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPixcblx0bXNnOiBUTWVzc2FnZSxcblx0bW9kZWw6IFRNb2RlbCxcblx0cHJvcHM6IFRQcm9wcyxcblx0b3B0aW9uczogVXBkYXRlRnVuY3Rpb25PcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG4pOiBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgVE1lc3NhZ2U+IHtcblx0aWYgKHR5cGVvZiB1cGRhdGUgPT09IFwiZnVuY3Rpb25cIikge1xuXHRcdHJldHVybiB1cGRhdGUobW9kZWwsIG1zZywgcHJvcHMsIG9wdGlvbnMpO1xuXHR9XG5cblx0cmV0dXJuIGNhbGxVcGRhdGVNYXAodXBkYXRlLCBtc2csIG1vZGVsLCBwcm9wcywgb3B0aW9ucyk7XG59XG5cbmZ1bmN0aW9uIGNhbGxVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4oXG5cdHVwZGF0ZU1hcDogVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG5cdG1zZzogVE1lc3NhZ2UsXG5cdG1vZGVsOiBUTW9kZWwsXG5cdHByb3BzOiBUUHJvcHMsXG5cdG9wdGlvbnM6IFVwZGF0ZUZ1bmN0aW9uT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuKTogVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPiB7XG5cdGNvbnN0IG1zZ05hbWU6IFRNZXNzYWdlW1wibmFtZVwiXSA9IG1zZy5uYW1lO1xuXG5cdHJldHVybiB1cGRhdGVNYXBbbXNnTmFtZV0obXNnLCBtb2RlbCwgcHJvcHMsIG9wdGlvbnMpO1xufVxuXG5leHBvcnQgdHlwZSB7IFN1YnNjcmlwdGlvbiwgU3Vic2NyaXB0aW9uUmVzdWx0LCBVc2VFbG1pc2hPcHRpb25zIH07XG5cbmV4cG9ydCB7IGNhbGxVcGRhdGUsIGNhbGxVcGRhdGVNYXAsIHVzZUVsbWlzaCB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFDQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxLQUFBLEdBQUFGLE9BQUE7QUFZQSxJQUFBRyxlQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxhQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxZQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxjQUFBLEdBQUFOLE9BQUE7QUFBNkUsU0FB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
|
|
223
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX0NvbW1vbiIsIl9Jbml0IiwiX2NyZWF0ZUNhbGxCYXNlIiwiX2NyZWF0ZURlZmVyMyIsIl9mYWtlT3B0aW9ucyIsIl9yZWR1eERldlRvb2xzIiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJyIiwiZSIsInQiLCJTeW1ib2wiLCJpdGVyYXRvciIsIkFycmF5IiwiaXNBcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsImxlbmd0aCIsIl9uIiwiRiIsInMiLCJuIiwiZG9uZSIsInZhbHVlIiwiZiIsIlR5cGVFcnJvciIsIm8iLCJhIiwidSIsImNhbGwiLCJuZXh0IiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIl9hcnJheUxpa2VUb0FycmF5IiwiX3RvQXJyYXkiLCJfYXJyYXlXaXRoSG9sZXMiLCJfbm9uSXRlcmFibGVSZXN0IiwiZnJvbSIsIm93bktleXMiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIl90b1Byb3BlcnR5S2V5IiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJpIiwiX3RvUHJpbWl0aXZlIiwiX3R5cGVvZiIsInRvUHJpbWl0aXZlIiwiU3RyaW5nIiwiTnVtYmVyIiwiX3NsaWNlZFRvQXJyYXkiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJ0b1N0cmluZyIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwidGVzdCIsImwiLCJzdWJzY3JpcHRpb25Jc0Z1bmN0aW9uQXJyYXkiLCJzdWJzY3JpcHRpb24iLCJ1c2VFbG1pc2giLCJfcmVmIiwiX2Zha2VPcHRpb25zJGRpc3BhdGNoIiwicHJvcHMiLCJpbml0IiwidXBkYXRlIiwicnVubmluZyIsImJ1ZmZlciIsImN1cnJlbnRNb2RlbCIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIm1vZGVsIiwic2V0TW9kZWwiLCJwcm9wc1JlZiIsInVzZVJlZiIsImlzTW91bnRlZFJlZiIsImRldlRvb2xzIiwidXNlRWZmZWN0IiwicmVkdXhVbnN1YnNjcmliZSIsIlNlcnZpY2VzIiwiZW5hYmxlRGV2VG9vbHMiLCJpc1JlZHV4RGV2VG9vbHNFbmFibGVkIiwid2luZG93IiwiY3VycmVudCIsIl9fUkVEVVhfREVWVE9PTFNfRVhURU5TSU9OX18iLCJjb25uZWN0Iiwic2VyaWFsaXplIiwib3B0aW9ucyIsInN1YnNjcmliZSIsIm1lc3NhZ2UiLCJ0eXBlIiwicGF5bG9hZCIsIkpTT04iLCJwYXJzZSIsInN0YXRlIiwiX3JlZHV4VW5zdWJzY3JpYmUiLCJpbml0aWFsaXplZE1vZGVsIiwiZmFrZU9wdGlvbnMiLCJnZXRGYWtlT3B0aW9uc09uY2UiLCJkaXNwYXRjaCIsInVzZUNhbGxiYWNrIiwibXNnIiwibmV4dE1zZyIsIm1vZGlmaWVkIiwiaGFuZGxlTWVzc2FnZSIsInNlbmQiLCJzaGlmdCIsInByZXZNb2RlbCIsIl9TZXJ2aWNlcyRsb2dnZXIiLCJ1cGRhdGVkTW9kZWwiLCJsb2dnZXIiLCJkZWJ1ZyIsIl9kZXZUb29scyRjdXJyZW50IiwiX1NlcnZpY2VzJGxvZ2dlcjIiLCJfcmVmMiIsIl9yZWYzIiwiaW5pdE1vZGVsIiwiaW5pdENvbW1hbmRzIiwiZXhlY0NtZCIsImNvbmNhdCIsInN1YnNjcmlwdGlvblJlc3VsdCIsImRlc3RydWN0b3JzIiwibWFwIiwic3ViIiwiZGVzdHJ1Y3RvciIsInVuZGVmaW5lZCIsImNvbWJpbmVkRGVzdHJ1Y3RvciIsIl9pdGVyYXRvciIsIl9zdGVwIiwiZXJyIiwiX3N1YnNjcmlwdGlvblJlc3VsdCIsInN1YkNtZCIsImxvZ01lc3NhZ2UiLCJfY3JlYXRlRGVmZXIiLCJjcmVhdGVEZWZlciIsIl9jcmVhdGVEZWZlcjIiLCJkZWZlciIsImdldERlZmVycmVkIiwiY2FsbEJhc2UiLCJjcmVhdGVDYWxsQmFzZSIsIl9jYWxsVXBkYXRlIiwiY2FsbFVwZGF0ZSIsIl9jYWxsVXBkYXRlMiIsIm5ld01vZGVsIiwiY29tbWFuZHMiLCJfZ2V0RGVmZXJyZWQiLCJfZ2V0RGVmZXJyZWQyIiwiZGVmZXJyZWRNb2RlbCIsImRlZmVycmVkQ29tbWFuZHMiLCJtb2RlbEhhc0NoYW5nZWQiLCJjYWxsVXBkYXRlTWFwIiwidXBkYXRlTWFwIiwibXNnTmFtZSJdLCJzb3VyY2VzIjpbIi4uL3NyYy91c2VFbG1pc2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzICovXG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBleGVjQ21kLCBsb2dNZXNzYWdlLCBtb2RlbEhhc0NoYW5nZWQgfSBmcm9tIFwiLi9Db21tb25cIjtcbmltcG9ydCB7IFNlcnZpY2VzIH0gZnJvbSBcIi4vSW5pdFwiO1xuaW1wb3J0IHR5cGUge1xuXHRDbWQsXG5cdERpc3BhdGNoLFxuXHRJbml0RnVuY3Rpb24sXG5cdE1lc3NhZ2UsXG5cdE51bGxhYmxlLFxuXHRVcGRhdGVGdW5jdGlvbixcblx0VXBkYXRlRnVuY3Rpb25PcHRpb25zLFxuXHRVcGRhdGVNYXAsXG5cdFVwZGF0ZVJldHVyblR5cGUsXG59IGZyb20gXCIuL1R5cGVzXCI7XG5pbXBvcnQgeyBjcmVhdGVDYWxsQmFzZSB9IGZyb20gXCIuL2NyZWF0ZUNhbGxCYXNlXCI7XG5pbXBvcnQgeyBjcmVhdGVEZWZlciB9IGZyb20gXCIuL2NyZWF0ZURlZmVyXCI7XG5pbXBvcnQgeyBnZXRGYWtlT3B0aW9uc09uY2UgfSBmcm9tIFwiLi9mYWtlT3B0aW9uc1wiO1xuaW1wb3J0IHsgaXNSZWR1eERldlRvb2xzRW5hYmxlZCwgdHlwZSBSZWR1eERldlRvb2xzIH0gZnJvbSBcIi4vcmVkdXhEZXZUb29sc1wiO1xuXG4vKipcbiAqIFRoZSByZXR1cm4gdHlwZSBvZiB0aGUgYHN1YnNjcmlwdGlvbmAgZnVuY3Rpb24uXG4gKiBAdGVtcGxhdGUgVE1lc3NhZ2UgVGhlIHR5cGUgb2YgdGhlIG1lc3NhZ2VzIGRpc2NyaW1pbmF0ZWQgdW5pb24uXG4gKi9cbnR5cGUgU3Vic2NyaXB0aW9uUmVzdWx0PFRNZXNzYWdlPiA9IFtDbWQ8VE1lc3NhZ2U+LCAoKCkgPT4gdm9pZCk/XSB8IFN1YnNjcmlwdGlvbkZ1bmN0aW9uPFRNZXNzYWdlPltdO1xudHlwZSBTdWJzY3JpcHRpb25GdW5jdGlvbjxUTWVzc2FnZT4gPSAoZGlzcGF0Y2g6IERpc3BhdGNoPFRNZXNzYWdlPikgPT4gKCgpID0+IHZvaWQpIHwgdW5kZWZpbmVkO1xudHlwZSBTdWJzY3JpcHRpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiA9IChtb2RlbDogVE1vZGVsLCBwcm9wczogVFByb3BzKSA9PiBTdWJzY3JpcHRpb25SZXN1bHQ8VE1lc3NhZ2U+O1xuXG5mdW5jdGlvbiBzdWJzY3JpcHRpb25Jc0Z1bmN0aW9uQXJyYXkoc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb25SZXN1bHQ8dW5rbm93bj4pOiBzdWJzY3JpcHRpb24gaXMgU3Vic2NyaXB0aW9uRnVuY3Rpb248dW5rbm93bj5bXSB7XG5cdHJldHVybiB0eXBlb2Ygc3Vic2NyaXB0aW9uWzBdID09PSBcImZ1bmN0aW9uXCI7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgdGhlIGB1c2VFbG1pc2hgIGhvb2suXG4gKiBAaW50ZXJmYWNlIFVzZUVsbWlzaE9wdGlvbnNcbiAqIEB0ZW1wbGF0ZSBUUHJvcHMgVGhlIHR5cGUgb2YgdGhlIHByb3BzLlxuICogQHRlbXBsYXRlIFRNb2RlbCBUaGUgdHlwZSBvZiB0aGUgbW9kZWwuXG4gKiBAdGVtcGxhdGUgVE1lc3NhZ2UgVGhlIHR5cGUgb2YgdGhlIG1lc3NhZ2VzIGRpc2NyaW1pbmF0ZWQgdW5pb24uXG4gKi9cbmludGVyZmFjZSBVc2VFbG1pc2hPcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+IHtcblx0LyoqXG5cdCAqIFRoZSBuYW1lIG9mIHRoZSBjb21wb25lbnQuIFRoaXMgaXMgdXNlZCBmb3IgbG9nZ2luZyBvbmx5LlxuXHQgKiBAdHlwZSB7c3RyaW5nfVxuXHQgKi9cblx0bmFtZTogc3RyaW5nO1xuXHQvKipcblx0ICogVGhlIHByb3BzIHBhc3NlZCB0byB0aGUgY29tcG9uZW50LlxuXHQgKiBAdHlwZSB7VFByb3BzfVxuXHQgKi9cblx0cHJvcHM6IFRQcm9wcztcblx0LyoqXG5cdCAqIFRoZSBmdW5jdGlvbiB0byBpbml0aWFsaXplIHRoZSBjb21wb25lbnRzIG1vZGVsLiBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgY2FsbGVkIG9uY2UuXG5cdCAqIEB0eXBlIHtJbml0RnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPn1cblx0ICovXG5cdGluaXQ6IEluaXRGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+O1xuXHQvKipcblx0ICogVGhlIGB1cGRhdGVgIGZ1bmN0aW9uIG9yIHVwZGF0ZSBtYXAgb2JqZWN0LlxuXHQgKiBAdHlwZSB7KFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPil9XG5cdCAqL1xuXHR1cGRhdGU6IFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPjtcblx0LyoqXG5cdCAqIFRoZSBvcHRpb25hbCBgc3Vic2NyaXB0aW9uYCBmdW5jdGlvbi4gVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGNhbGxlZCBvbmNlLlxuXHQgKiBAdHlwZSB7KFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPil9XG5cdCAqL1xuXHRzdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPjtcbn1cblxuLyoqXG4gKiBIb29rIHRvIHVzZSB0aGUgRWxtIGFyY2hpdGVjdHVyZSBwYXR0ZXJuIGluIGEgZnVuY3Rpb24gY29tcG9uZW50LlxuICogQHBhcmFtIHtVc2VFbG1pc2hPcHRpb25zfSBvcHRpb25zIFRoZSBvcHRpb25zIHBhc3NlZCB0aGUgdGhlIGhvb2suXG4gKiBAcmV0dXJucyBBIHR1cGxlIGNvbnRhaW5pbmcgdGhlIGN1cnJlbnQgbW9kZWwgYW5kIHRoZSBkaXNwYXRjaGVyLlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IFttb2RlbCwgZGlzcGF0Y2hdID0gdXNlRWxtaXNoKHsgcHJvcHMsIGluaXQsIHVwZGF0ZSwgbmFtZTogXCJNeUNvbXBvbmVudFwiIH0pO1xuICovXG5mdW5jdGlvbiB1c2VFbG1pc2g8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4oe1xuXHRuYW1lLFxuXHRwcm9wcyxcblx0aW5pdCxcblx0dXBkYXRlLFxuXHRzdWJzY3JpcHRpb24sXG59OiBVc2VFbG1pc2hPcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4pOiBbVE1vZGVsLCBEaXNwYXRjaDxUTWVzc2FnZT5dIHtcblx0bGV0IHJ1bm5pbmcgPSBmYWxzZTtcblx0Y29uc3QgYnVmZmVyOiBUTWVzc2FnZVtdID0gW107XG5cdGxldCBjdXJyZW50TW9kZWw6IFBhcnRpYWw8VE1vZGVsPiA9IHt9O1xuXG5cdGNvbnN0IFttb2RlbCwgc2V0TW9kZWxdID0gdXNlU3RhdGU8TnVsbGFibGU8VE1vZGVsPj4obnVsbCk7XG5cdGNvbnN0IHByb3BzUmVmID0gdXNlUmVmKHByb3BzKTtcblx0Y29uc3QgaXNNb3VudGVkUmVmID0gdXNlUmVmKHRydWUpO1xuXG5cdGNvbnN0IGRldlRvb2xzID0gdXNlUmVmPFJlZHV4RGV2VG9vbHMgfCBudWxsPihudWxsKTtcblxuXHR1c2VFZmZlY3QoKCkgPT4ge1xuXHRcdGxldCByZWR1eFVuc3Vic2NyaWJlOiAoKCkgPT4gdm9pZCkgfCB1bmRlZmluZWQ7XG5cblx0XHRpZiAoU2VydmljZXMuZW5hYmxlRGV2VG9vbHMgPT09IHRydWUgJiYgaXNSZWR1eERldlRvb2xzRW5hYmxlZCh3aW5kb3cpKSB7XG5cdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZXJzY29yZS1kYW5nbGVcblx0XHRcdGRldlRvb2xzLmN1cnJlbnQgPSB3aW5kb3cuX19SRURVWF9ERVZUT09MU19FWFRFTlNJT05fXy5jb25uZWN0KHsgbmFtZSwgc2VyaWFsaXplOiB7IG9wdGlvbnM6IHRydWUgfSB9KTtcblxuXHRcdFx0cmVkdXhVbnN1YnNjcmliZSA9IGRldlRvb2xzLmN1cnJlbnQuc3Vic2NyaWJlKChtZXNzYWdlKSA9PiB7XG5cdFx0XHRcdGlmIChtZXNzYWdlLnR5cGUgPT09IFwiRElTUEFUQ0hcIiAmJiBtZXNzYWdlLnBheWxvYWQudHlwZSA9PT0gXCJKVU1QX1RPX0FDVElPTlwiKSB7XG5cdFx0XHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtdHlwZS1hc3NlcnRpb25cblx0XHRcdFx0XHRzZXRNb2RlbChKU09OLnBhcnNlKG1lc3NhZ2Uuc3RhdGUpIGFzIFRNb2RlbCk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH1cblxuXHRcdGlzTW91bnRlZFJlZi5jdXJyZW50ID0gdHJ1ZTtcblxuXHRcdHJldHVybiAoKSA9PiB7XG5cdFx0XHRpc01vdW50ZWRSZWYuY3VycmVudCA9IGZhbHNlO1xuXG5cdFx0XHRyZWR1eFVuc3Vic2NyaWJlPy4oKTtcblx0XHR9O1xuXHR9LCBbbmFtZV0pO1xuXG5cdGxldCBpbml0aWFsaXplZE1vZGVsID0gbW9kZWw7XG5cblx0aWYgKHByb3BzUmVmLmN1cnJlbnQgIT09IHByb3BzKSB7XG5cdFx0cHJvcHNSZWYuY3VycmVudCA9IHByb3BzO1xuXHR9XG5cblx0Y29uc3QgZmFrZU9wdGlvbnMgPSBnZXRGYWtlT3B0aW9uc09uY2U8VE1vZGVsLCBUTWVzc2FnZT4oKTtcblx0Y29uc3QgZGlzcGF0Y2ggPSB1c2VDYWxsYmFjayhcblx0XHRmYWtlT3B0aW9ucz8uZGlzcGF0Y2ggPz9cblx0XHRcdCgobXNnOiBUTWVzc2FnZSk6IHZvaWQgPT4ge1xuXHRcdFx0XHRpZiAocnVubmluZykge1xuXHRcdFx0XHRcdGJ1ZmZlci5wdXNoKG1zZyk7XG5cblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRydW5uaW5nID0gdHJ1ZTtcblxuXHRcdFx0XHRsZXQgbmV4dE1zZzogVE1lc3NhZ2UgfCB1bmRlZmluZWQgPSBtc2c7XG5cdFx0XHRcdGxldCBtb2RpZmllZCA9IGZhbHNlO1xuXG5cdFx0XHRcdGRvIHtcblx0XHRcdFx0XHRpZiAoaGFuZGxlTWVzc2FnZShuZXh0TXNnKSkge1xuXHRcdFx0XHRcdFx0bW9kaWZpZWQgPSB0cnVlO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGlmIChkZXZUb29scy5jdXJyZW50KSB7XG5cdFx0XHRcdFx0XHRkZXZUb29scy5jdXJyZW50LnNlbmQobmV4dE1zZy5uYW1lLCB7IC4uLmluaXRpYWxpemVkTW9kZWwsIC4uLmN1cnJlbnRNb2RlbCB9KTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRuZXh0TXNnID0gYnVmZmVyLnNoaWZ0KCk7XG5cdFx0XHRcdH0gd2hpbGUgKG5leHRNc2cpO1xuXG5cdFx0XHRcdHJ1bm5pbmcgPSBmYWxzZTtcblxuXHRcdFx0XHRpZiAoaXNNb3VudGVkUmVmLmN1cnJlbnQgJiYgbW9kaWZpZWQpIHtcblx0XHRcdFx0XHRzZXRNb2RlbCgocHJldk1vZGVsKSA9PiB7XG5cdFx0XHRcdFx0XHRjb25zdCB1cGRhdGVkTW9kZWwgPSB7IC4uLnByZXZNb2RlbCwgLi4uY3VycmVudE1vZGVsIH07XG5cblx0XHRcdFx0XHRcdFNlcnZpY2VzLmxvZ2dlcj8uZGVidWcoXCJVcGRhdGUgbW9kZWwgZm9yXCIsIG5hbWUsIHVwZGF0ZWRNb2RlbCk7XG5cblx0XHRcdFx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLXR5cGUtYXNzZXJ0aW9uIC0tIFdlIGFsd2F5cyBoYXZlIGEgZnVsbCBtb2RlbCBoZXJlXG5cdFx0XHRcdFx0XHRyZXR1cm4gdXBkYXRlZE1vZGVsIGFzIFRNb2RlbDtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXHRcdFx0fSksXG5cdFx0W10sXG5cdCk7XG5cblx0aWYgKCFpbml0aWFsaXplZE1vZGVsKSB7XG5cdFx0Y29uc3QgW2luaXRNb2RlbCwgLi4uaW5pdENvbW1hbmRzXSA9IGZha2VPcHRpb25zPy5tb2RlbCA/IFtmYWtlT3B0aW9ucy5tb2RlbF0gOiBpbml0KHByb3BzKTtcblxuXHRcdGluaXRpYWxpemVkTW9kZWwgPSBpbml0TW9kZWw7XG5cdFx0c2V0TW9kZWwoaW5pdGlhbGl6ZWRNb2RlbCk7XG5cblx0XHRkZXZUb29scy5jdXJyZW50Py5pbml0KGluaXRpYWxpemVkTW9kZWwpO1xuXG5cdFx0U2VydmljZXMubG9nZ2VyPy5kZWJ1ZyhcIkluaXRpYWwgbW9kZWwgZm9yXCIsIG5hbWUsIGluaXRpYWxpemVkTW9kZWwpO1xuXG5cdFx0ZXhlY0NtZChkaXNwYXRjaCwgLi4uaW5pdENvbW1hbmRzKTtcblx0fVxuXG5cdC8vIGJpb21lLWlnbm9yZSBsaW50L2NvcnJlY3RuZXNzL3VzZUV4aGF1c3RpdmVEZXBlbmRlbmNpZXM6IFdlIHdhbnQgdG8gcnVuIHRoaXMgZWZmZWN0IG9ubHkgb25jZVxuXHR1c2VFZmZlY3QoKCkgPT4ge1xuXHRcdGlmIChzdWJzY3JpcHRpb24pIHtcblx0XHRcdGNvbnN0IHN1YnNjcmlwdGlvblJlc3VsdCA9IHN1YnNjcmlwdGlvbihpbml0aWFsaXplZE1vZGVsLCBwcm9wcyk7XG5cblx0XHRcdGlmIChzdWJzY3JpcHRpb25Jc0Z1bmN0aW9uQXJyYXkoc3Vic2NyaXB0aW9uUmVzdWx0KSkge1xuXHRcdFx0XHRjb25zdCBkZXN0cnVjdG9ycyA9IHN1YnNjcmlwdGlvblJlc3VsdC5tYXAoKHN1YikgPT4gc3ViKGRpc3BhdGNoKSkuZmlsdGVyKChkZXN0cnVjdG9yKSA9PiBkZXN0cnVjdG9yICE9PSB1bmRlZmluZWQpO1xuXG5cdFx0XHRcdHJldHVybiBmdW5jdGlvbiBjb21iaW5lZERlc3RydWN0b3IoKSB7XG5cdFx0XHRcdFx0Zm9yIChjb25zdCBkZXN0cnVjdG9yIG9mIGRlc3RydWN0b3JzKSB7XG5cdFx0XHRcdFx0XHRkZXN0cnVjdG9yKCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9O1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBbc3ViQ21kLCBkZXN0cnVjdG9yXSA9IHN1YnNjcmlwdGlvblJlc3VsdDtcblxuXHRcdFx0ZXhlY0NtZChkaXNwYXRjaCwgc3ViQ21kKTtcblxuXHRcdFx0cmV0dXJuIGRlc3RydWN0b3I7XG5cdFx0fVxuXHR9LCBbXSk7XG5cblx0cmV0dXJuIFtpbml0aWFsaXplZE1vZGVsLCBkaXNwYXRjaF07XG5cblx0ZnVuY3Rpb24gaGFuZGxlTWVzc2FnZShuZXh0TXNnOiBUTWVzc2FnZSk6IGJvb2xlYW4ge1xuXHRcdGlmICghaW5pdGlhbGl6ZWRNb2RlbCkge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdGxldCBtb2RpZmllZCA9IGZhbHNlO1xuXG5cdFx0bG9nTWVzc2FnZShuYW1lLCBuZXh0TXNnKTtcblxuXHRcdGNvbnN0IHVwZGF0ZWRNb2RlbCA9IHsgLi4uaW5pdGlhbGl6ZWRNb2RlbCwgLi4uY3VycmVudE1vZGVsIH07XG5cblx0XHRjb25zdCBbZGVmZXIsIGdldERlZmVycmVkXSA9IGNyZWF0ZURlZmVyPFRNb2RlbCwgVE1lc3NhZ2U+KCk7XG5cdFx0Y29uc3QgY2FsbEJhc2UgPSBjcmVhdGVDYWxsQmFzZShuZXh0TXNnLCB1cGRhdGVkTW9kZWwsIHByb3BzUmVmLmN1cnJlbnQsIHsgZGVmZXIgfSk7XG5cblx0XHRjb25zdCBbbmV3TW9kZWwsIC4uLmNvbW1hbmRzXSA9IGNhbGxVcGRhdGUodXBkYXRlLCBuZXh0TXNnLCB1cGRhdGVkTW9kZWwsIHByb3BzUmVmLmN1cnJlbnQsIHsgZGVmZXIsIGNhbGxCYXNlIH0pO1xuXG5cdFx0Y29uc3QgW2RlZmVycmVkTW9kZWwsIGRlZmVycmVkQ29tbWFuZHNdID0gZ2V0RGVmZXJyZWQoKTtcblxuXHRcdGlmIChtb2RlbEhhc0NoYW5nZWQoY3VycmVudE1vZGVsLCB7IC4uLmRlZmVycmVkTW9kZWwsIC4uLm5ld01vZGVsIH0pKSB7XG5cdFx0XHRjdXJyZW50TW9kZWwgPSB7IC4uLmN1cnJlbnRNb2RlbCwgLi4uZGVmZXJyZWRNb2RlbCwgLi4ubmV3TW9kZWwgfTtcblxuXHRcdFx0bW9kaWZpZWQgPSB0cnVlO1xuXHRcdH1cblxuXHRcdGV4ZWNDbWQoZGlzcGF0Y2gsIC4uLmNvbW1hbmRzLCAuLi5kZWZlcnJlZENvbW1hbmRzKTtcblxuXHRcdHJldHVybiBtb2RpZmllZDtcblx0fVxufVxuXG5mdW5jdGlvbiBjYWxsVXBkYXRlPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+KFxuXHR1cGRhdGU6IFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPixcblx0bXNnOiBUTWVzc2FnZSxcblx0bW9kZWw6IFRNb2RlbCxcblx0cHJvcHM6IFRQcm9wcyxcblx0b3B0aW9uczogVXBkYXRlRnVuY3Rpb25PcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG4pOiBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgVE1lc3NhZ2U+IHtcblx0aWYgKHR5cGVvZiB1cGRhdGUgPT09IFwiZnVuY3Rpb25cIikge1xuXHRcdHJldHVybiB1cGRhdGUobW9kZWwsIG1zZywgcHJvcHMsIG9wdGlvbnMpO1xuXHR9XG5cblx0cmV0dXJuIGNhbGxVcGRhdGVNYXAodXBkYXRlLCBtc2csIG1vZGVsLCBwcm9wcywgb3B0aW9ucyk7XG59XG5cbmZ1bmN0aW9uIGNhbGxVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4oXG5cdHVwZGF0ZU1hcDogVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG5cdG1zZzogVE1lc3NhZ2UsXG5cdG1vZGVsOiBUTW9kZWwsXG5cdHByb3BzOiBUUHJvcHMsXG5cdG9wdGlvbnM6IFVwZGF0ZUZ1bmN0aW9uT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuKTogVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPiB7XG5cdGNvbnN0IG1zZ05hbWU6IFRNZXNzYWdlW1wibmFtZVwiXSA9IG1zZy5uYW1lO1xuXG5cdHJldHVybiB1cGRhdGVNYXBbbXNnTmFtZV0obXNnLCBtb2RlbCwgcHJvcHMsIG9wdGlvbnMpO1xufVxuXG5leHBvcnQgdHlwZSB7IFN1YnNjcmlwdGlvbiwgU3Vic2NyaXB0aW9uRnVuY3Rpb24sIFN1YnNjcmlwdGlvblJlc3VsdCwgVXNlRWxtaXNoT3B0aW9ucyB9O1xuXG5leHBvcnQgeyBjYWxsVXBkYXRlLCBjYWxsVXBkYXRlTWFwLCBzdWJzY3JpcHRpb25Jc0Z1bmN0aW9uQXJyYXksIHVzZUVsbWlzaCB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQ0EsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsS0FBQSxHQUFBRixPQUFBO0FBWUEsSUFBQUcsZUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksYUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssWUFB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
|