react-elmish 7.2.0 → 7.3.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 CHANGED
@@ -801,13 +801,13 @@ const updateComposition = (model: Model, msg: CompositionMessage): Elm.UpdateRet
801
801
 
802
802
  ## Deferring model updates and messages
803
803
 
804
- Sometimes you want to always dispatch a message or update the model in all cases. You can use the `defer` function to do this. The `defer` function is the fourth parameter of the `update` function.
804
+ Sometimes you want to always dispatch a message or update the model in all cases. You can use the `defer` function from the `options` parameter to do this. The `options` parameter is the fourth parameter of the `update` function.
805
805
 
806
806
  Without the `defer` function, you would have to return the model and the command in all cases:
807
807
 
808
808
  ```ts
809
809
  const update: UpdateMap<Props, Model, Message> = {
810
- deferSomething (_msg, model, _props, defer) {
810
+ deferSomething (_msg, model) {
811
811
  if (model.someCondition) {
812
812
  return [{ alwaysUpdate: "someValue", extra: "extra" }, cmd.ofMsg(Msg.alwaysExecute())];
813
813
  }
@@ -825,7 +825,7 @@ With the `defer` function, you can do this:
825
825
 
826
826
  ```ts
827
827
  const update: UpdateMap<Props, Model, Message> = {
828
- deferSomething (_msg, model, _props, defer) {
828
+ deferSomething (_msg, model, _props, { defer }) {
829
829
  defer({ alwaysUpdate: "someValue" }, cmd.ofMsg(Msg.alwaysExecute()));
830
830
 
831
831
  if (model.someCondition) {
@@ -55,7 +55,7 @@ declare abstract class ElmComponent<TModel, TMessage extends Message, TProps> ex
55
55
  * @param {TModel} model The current model.
56
56
  * @param {TMessage} msg The message to process.
57
57
  * @param {TProps} props The props of the component.
58
- * @param {DeferFunction<TModel, TMessage>} defer A function to defer a model update and command execution.
58
+ * @param options The options for the update function.
59
59
  * @returns The new model (can also be an empty object {}) and an optional new message to dispatch.
60
60
  * @abstract
61
61
  * @memberof ElmComponent
@@ -7,20 +7,23 @@ exports.ElmComponent = void 0;
7
7
  var _react = _interopRequireDefault(require("react"));
8
8
  var _Common = require("./Common");
9
9
  var _Init = require("./Init");
10
+ var _createDefer3 = require("./createDefer");
10
11
  var _fakeOptions = require("./fakeOptions");
11
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
12
13
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
13
14
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
14
15
  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."); }
15
16
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
17
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
18
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
16
19
  function _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest(); }
20
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
21
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
17
22
  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."); }
18
23
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
19
24
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
20
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
25
+ 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; } }
21
26
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
22
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
23
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
24
27
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
25
28
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
26
29
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
@@ -77,30 +80,28 @@ var ElmComponent = exports.ElmComponent = /*#__PURE__*/function (_React$Componen
77
80
  _this.running = true;
78
81
  var nextMsg = msg;
79
82
  var modified = false;
80
- var _loop = function _loop() {
83
+ do {
81
84
  (0, _Common.logMessage)(_this.componentName, nextMsg);
82
- var deferredModel = {};
83
- var deferredCommands = [];
84
- var deferHandler = function deferHandler(tempDeferredModel) {
85
- deferredModel = _objectSpread(_objectSpread({}, deferredModel), tempDeferredModel);
86
- for (var _len = arguments.length, tempDeferredCommands = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
87
- tempDeferredCommands[_key - 1] = arguments[_key];
88
- }
89
- deferredCommands.push.apply(deferredCommands, tempDeferredCommands);
90
- };
91
- var _this$update = _this.update(_this.currentModel, nextMsg, _this.props, deferHandler),
85
+ var _createDefer = (0, _createDefer3.createDefer)(),
86
+ _createDefer2 = _slicedToArray(_createDefer, 2),
87
+ defer = _createDefer2[0],
88
+ getDeferred = _createDefer2[1];
89
+ var _this$update = _this.update(_this.currentModel, nextMsg, _this.props, {
90
+ defer: defer
91
+ }),
92
92
  _this$update2 = _toArray(_this$update),
93
93
  model = _this$update2[0],
94
94
  commands = _this$update2.slice(1);
95
+ var _getDeferred = getDeferred(),
96
+ _getDeferred2 = _slicedToArray(_getDeferred, 2),
97
+ deferredModel = _getDeferred2[0],
98
+ deferredCommands = _getDeferred2[1];
95
99
  if ((0, _Common.modelHasChanged)(_this.currentModel, _objectSpread(_objectSpread({}, deferredModel), model))) {
96
100
  _this.currentModel = _objectSpread(_objectSpread(_objectSpread({}, _this.currentModel), deferredModel), model);
97
101
  modified = true;
98
102
  }
99
- _Common.execCmd.apply(void 0, [_this.dispatch].concat(_toConsumableArray(commands), deferredCommands));
103
+ _Common.execCmd.apply(void 0, [_this.dispatch].concat(_toConsumableArray(commands), _toConsumableArray(deferredCommands)));
100
104
  nextMsg = _this.buffer.shift();
101
- };
102
- do {
103
- _loop();
104
105
  } while (nextMsg);
105
106
  _this.running = false;
106
107
  if (_this.mounted && modified) {
@@ -114,7 +115,7 @@ var ElmComponent = exports.ElmComponent = /*#__PURE__*/function (_React$Componen
114
115
  * @param {TModel} model The current model.
115
116
  * @param {TMessage} msg The message to process.
116
117
  * @param {TProps} props The props of the component.
117
- * @param {DeferFunction<TModel, TMessage>} defer A function to defer a model update and command execution.
118
+ * @param options The options for the update function.
118
119
  * @returns The new model (can also be an empty object {}) and an optional new message to dispatch.
119
120
  * @abstract
120
121
  * @memberof ElmComponent
@@ -175,4 +176,4 @@ var ElmComponent = exports.ElmComponent = /*#__PURE__*/function (_React$Componen
175
176
  }]);
176
177
  return ElmComponent;
177
178
  }(_react["default"].Component);
178
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9Db21tb24iLCJfSW5pdCIsIl9mYWtlT3B0aW9ucyIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwibyIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiY29uc3RydWN0b3IiLCJwcm90b3R5cGUiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJhcnIiLCJfYXJyYXlXaXRob3V0SG9sZXMiLCJfaXRlcmFibGVUb0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlU3ByZWFkIiwiVHlwZUVycm9yIiwiQXJyYXkiLCJpc0FycmF5IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJfdG9BcnJheSIsIl9hcnJheVdpdGhIb2xlcyIsIl9ub25JdGVyYWJsZVJlc3QiLCJtaW5MZW4iLCJuIiwiT2JqZWN0IiwidG9TdHJpbmciLCJjYWxsIiwic2xpY2UiLCJuYW1lIiwiZnJvbSIsInRlc3QiLCJsZW4iLCJsZW5ndGgiLCJpIiwiYXJyMiIsIml0ZXIiLCJvd25LZXlzIiwiZSIsInIiLCJ0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfY2xhc3NDYWxsQ2hlY2siLCJpbnN0YW5jZSIsIkNvbnN0cnVjdG9yIiwiX2RlZmluZVByb3BlcnRpZXMiLCJ0YXJnZXQiLCJwcm9wcyIsImRlc2NyaXB0b3IiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIl90b1Byb3BlcnR5S2V5Iiwia2V5IiwiX2NyZWF0ZUNsYXNzIiwicHJvdG9Qcm9wcyIsInN0YXRpY1Byb3BzIiwiX2NhbGxTdXBlciIsIl9nZXRQcm90b3R5cGVPZiIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJzZWxmIiwiX2Fzc2VydFRoaXNJbml0aWFsaXplZCIsIkJvb2xlYW4iLCJ2YWx1ZU9mIiwic2V0UHJvdG90eXBlT2YiLCJnZXRQcm90b3R5cGVPZiIsImJpbmQiLCJfX3Byb3RvX18iLCJSZWZlcmVuY2VFcnJvciIsIl9pbmhlcml0cyIsInN1YkNsYXNzIiwic3VwZXJDbGFzcyIsImNyZWF0ZSIsInZhbHVlIiwiX3NldFByb3RvdHlwZU9mIiwicCIsIl90b1ByaW1pdGl2ZSIsIlN0cmluZyIsInRvUHJpbWl0aXZlIiwiTnVtYmVyIiwiRWxtQ29tcG9uZW50IiwiZXhwb3J0cyIsIl9SZWFjdCRDb21wb25lbnQiLCJpbml0IiwiX1NlcnZpY2VzJGxvZ2dlcjIiLCJfdGhpcyIsIm1zZyIsInJ1bm5pbmciLCJidWZmZXIiLCJuZXh0TXNnIiwibW9kaWZpZWQiLCJfbG9vcCIsImxvZ01lc3NhZ2UiLCJjb21wb25lbnROYW1lIiwiZGVmZXJyZWRNb2RlbCIsImRlZmVycmVkQ29tbWFuZHMiLCJkZWZlckhhbmRsZXIiLCJ0ZW1wRGVmZXJyZWRNb2RlbCIsIl9sZW4iLCJ0ZW1wRGVmZXJyZWRDb21tYW5kcyIsIl9rZXkiLCJfdGhpcyR1cGRhdGUiLCJ1cGRhdGUiLCJjdXJyZW50TW9kZWwiLCJfdGhpcyR1cGRhdGUyIiwibW9kZWwiLCJjb21tYW5kcyIsIm1vZGVsSGFzQ2hhbmdlZCIsImV4ZWNDbWQiLCJkaXNwYXRjaCIsImNvbmNhdCIsInNoaWZ0IiwibW91bnRlZCIsIl9TZXJ2aWNlcyRsb2dnZXIiLCJTZXJ2aWNlcyIsImxvZ2dlciIsImRlYnVnIiwiZm9yY2VVcGRhdGUiLCJmYWtlT3B0aW9ucyIsImdldEZha2VPcHRpb25zT25jZSIsIl9yZWYiLCJfcmVmMiIsImluaXRDb21tYW5kcyIsImNvbXBvbmVudERpZE1vdW50IiwiY29tcG9uZW50V2lsbFVubW91bnQiLCJnZXQiLCJSZWFjdCIsIkNvbXBvbmVudCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9FbG1Db21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgZXhlY0NtZCwgbG9nTWVzc2FnZSwgbW9kZWxIYXNDaGFuZ2VkIH0gZnJvbSBcIi4vQ29tbW9uXCI7XG5pbXBvcnQgeyBTZXJ2aWNlcyB9IGZyb20gXCIuL0luaXRcIjtcbmltcG9ydCB0eXBlIHsgQ21kLCBEZWZlckZ1bmN0aW9uLCBJbml0RnVuY3Rpb24sIE1lc3NhZ2UsIE51bGxhYmxlLCBVcGRhdGVGdW5jdGlvbiB9IGZyb20gXCIuL1R5cGVzXCI7XG5pbXBvcnQgeyBnZXRGYWtlT3B0aW9uc09uY2UgfSBmcm9tIFwiLi9mYWtlT3B0aW9uc1wiO1xuXG4vKipcbiAqIEFic3RyYWN0IGNsYXNzIGZvciBhIHJlYWN0IGNsYXNzIGNvbXBvbmVudCB1c2luZyB0aGUgRWxtaXNoIHBhdHRlcm4uXG4gKiBAZXhwb3J0XG4gKiBAYWJzdHJhY3RcbiAqIEBjbGFzcyBFbG1Db21wb25lbnRcbiAqIEBleHRlbmRzIHtDb21wb25lbnQ8VFByb3BzLCBUTW9kZWw+fVxuICogQHRlbXBsYXRlIFRNb2RlbCBUaGUgdHlwZSBvZiB0aGUgbW9kZWwuXG4gKiBAdGVtcGxhdGUgVE1lc3NhZ2UgVGhlIHR5cGUgb2YgdGhlIG1lc3NhZ2VzLlxuICogQHRlbXBsYXRlIFRQcm9wcyBUaGUgdHlwZSBvZiB0aGUgcHJvcHMuXG4gKi9cbmFic3RyYWN0IGNsYXNzIEVsbUNvbXBvbmVudDxUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZSwgVFByb3BzPiBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxUUHJvcHM+IHtcblx0cHJpdmF0ZSBpbml0Q29tbWFuZHM6IE51bGxhYmxlPChDbWQ8VE1lc3NhZ2U+IHwgdW5kZWZpbmVkKVtdPiB8IHVuZGVmaW5lZDtcblx0cHJpdmF0ZSByZWFkb25seSBjb21wb25lbnROYW1lOiBzdHJpbmc7XG5cdHByaXZhdGUgcmVhZG9ubHkgYnVmZmVyOiBUTWVzc2FnZVtdID0gW107XG5cdHByaXZhdGUgcnVubmluZyA9IGZhbHNlO1xuXHRwcml2YXRlIG1vdW50ZWQgPSBmYWxzZTtcblx0cHJpdmF0ZSBjdXJyZW50TW9kZWw6IFRNb2RlbDtcblxuXHQvKipcblx0ICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBFbG1Db21wb25lbnQuXG5cdCAqIEBwYXJhbSB7VFByb3BzfSBwcm9wcyBUaGUgcHJvcHMgZm9yIHRoZSBjb21wb25lbnQuXG5cdCAqIEBwYXJhbSB7KCkgPT4gVE1vZGVsfSBpbml0IFRoZSBpbml0aWFsaXplciBmdW5jdGlvbi5cblx0ICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIGNvbXBvbmVudC5cblx0ICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuXHQgKi9cblx0cHVibGljIGNvbnN0cnVjdG9yKHByb3BzOiBUUHJvcHMsIGluaXQ6IEluaXRGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LCBuYW1lOiBzdHJpbmcpIHtcblx0XHRzdXBlcihwcm9wcyk7XG5cblx0XHRjb25zdCBmYWtlT3B0aW9ucyA9IGdldEZha2VPcHRpb25zT25jZSgpO1xuXG5cdFx0aWYgKGZha2VPcHRpb25zPy5kaXNwYXRjaCkge1xuXHRcdFx0dGhpcy5kaXNwYXRjaCA9IGZha2VPcHRpb25zLmRpc3BhdGNoO1xuXHRcdH1cblxuXHRcdGNvbnN0IFttb2RlbCwgLi4uY29tbWFuZHNdID0gZmFrZU9wdGlvbnM/Lm1vZGVsID8gW2Zha2VPcHRpb25zLm1vZGVsIGFzIFRNb2RlbF0gOiBpbml0KHRoaXMucHJvcHMpO1xuXG5cdFx0U2VydmljZXMubG9nZ2VyPy5kZWJ1ZyhcIkluaXRpYWwgbW9kZWwgZm9yXCIsIG5hbWUsIG1vZGVsKTtcblxuXHRcdHRoaXMuY29tcG9uZW50TmFtZSA9IG5hbWU7XG5cdFx0dGhpcy5jdXJyZW50TW9kZWwgPSBtb2RlbDtcblx0XHR0aGlzLmluaXRDb21tYW5kcyA9IGNvbW1hbmRzO1xuXHR9XG5cblx0LyoqXG5cdCAqIElzIGNhbGxlZCB3aGVuIHRoZSBjb21wb25lbnQgaXMgbG9hZGVkLlxuXHQgKiBXaGVuIGltcGxlbWVudGluZyB0aGlzIG1ldGhvZCwgdGhlIGJhc2UgaW1wbGVtZW50YXRpb24gaGFzIHRvIGJlIGNhbGxlZC5cblx0ICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuXHQgKi9cblx0cHVibGljIGNvbXBvbmVudERpZE1vdW50KCk6IHZvaWQge1xuXHRcdHRoaXMubW91bnRlZCA9IHRydWU7XG5cblx0XHRpZiAodGhpcy5pbml0Q29tbWFuZHMpIHtcblx0XHRcdGV4ZWNDbWQodGhpcy5kaXNwYXRjaCwgLi4udGhpcy5pbml0Q29tbWFuZHMpO1xuXHRcdFx0dGhpcy5pbml0Q29tbWFuZHMgPSBudWxsO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBJcyBjYWxsZWQgYmVmb3JlIHVubG9hZGluZyB0aGUgY29tcG9uZW50LlxuXHQgKiBXaGVuIGltcGxlbWVudGluZyB0aGlzIG1ldGhvZCwgdGhlIGJhc2UgaW1wbGVtZW50YXRpb24gaGFzIHRvIGJlIGNhbGxlZC5cblx0ICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuXHQgKi9cblx0cHVibGljIGNvbXBvbmVudFdpbGxVbm1vdW50KCk6IHZvaWQge1xuXHRcdHRoaXMubW91bnRlZCA9IGZhbHNlO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIGN1cnJlbnQgbW9kZWwuXG5cdCAqIEByZWFkb25seVxuXHQgKiBAdHlwZSB7UmVhZG9ubHk8VE1vZGVsPn1cblx0ICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuXHQgKi9cblx0cHVibGljIGdldCBtb2RlbCgpOiBSZWFkb25seTxUTW9kZWw+IHtcblx0XHRyZXR1cm4gdGhpcy5jdXJyZW50TW9kZWw7XG5cdH1cblxuXHQvKipcblx0ICogRGlzcGF0Y2hlcyBhIG1lc3NhZ2UuXG5cdCAqIEBwYXJhbSB7VE1lc3NhZ2V9IG1zZyBUaGUgbWVzc2FnZSB0byBkaXNwYXRjaC5cblx0ICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuXHQgKi9cblx0cHVibGljIHJlYWRvbmx5IGRpc3BhdGNoID0gKG1zZzogVE1lc3NhZ2UpOiB2b2lkID0+IHtcblx0XHRpZiAodGhpcy5ydW5uaW5nKSB7XG5cdFx0XHR0aGlzLmJ1ZmZlci5wdXNoKG1zZyk7XG5cblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHR0aGlzLnJ1bm5pbmcgPSB0cnVlO1xuXG5cdFx0bGV0IG5leHRNc2c6IFRNZXNzYWdlIHwgdW5kZWZpbmVkID0gbXNnO1xuXHRcdGxldCBtb2RpZmllZCA9IGZhbHNlO1xuXG5cdFx0ZG8ge1xuXHRcdFx0bG9nTWVzc2FnZSh0aGlzLmNvbXBvbmVudE5hbWUsIG5leHRNc2cpO1xuXG5cdFx0XHRsZXQgZGVmZXJyZWRNb2RlbDogUGFydGlhbDxUTW9kZWw+ID0ge307XG5cdFx0XHRjb25zdCBkZWZlcnJlZENvbW1hbmRzOiAoQ21kPFRNZXNzYWdlPiB8IHVuZGVmaW5lZClbXSA9IFtdO1xuXG5cdFx0XHRjb25zdCBkZWZlckhhbmRsZXI6IERlZmVyRnVuY3Rpb248VE1vZGVsLCBUTWVzc2FnZT4gPSAodGVtcERlZmVycmVkTW9kZWwsIC4uLnRlbXBEZWZlcnJlZENvbW1hbmRzKSA9PiB7XG5cdFx0XHRcdGRlZmVycmVkTW9kZWwgPSB7IC4uLmRlZmVycmVkTW9kZWwsIC4uLnRlbXBEZWZlcnJlZE1vZGVsIH07XG5cdFx0XHRcdGRlZmVycmVkQ29tbWFuZHMucHVzaCguLi50ZW1wRGVmZXJyZWRDb21tYW5kcyk7XG5cdFx0XHR9O1xuXG5cdFx0XHRjb25zdCBbbW9kZWwsIC4uLmNvbW1hbmRzXSA9IHRoaXMudXBkYXRlKHRoaXMuY3VycmVudE1vZGVsLCBuZXh0TXNnLCB0aGlzLnByb3BzLCBkZWZlckhhbmRsZXIpO1xuXG5cdFx0XHRpZiAobW9kZWxIYXNDaGFuZ2VkKHRoaXMuY3VycmVudE1vZGVsLCB7IC4uLmRlZmVycmVkTW9kZWwsIC4uLm1vZGVsIH0pKSB7XG5cdFx0XHRcdHRoaXMuY3VycmVudE1vZGVsID0geyAuLi50aGlzLmN1cnJlbnRNb2RlbCwgLi4uZGVmZXJyZWRNb2RlbCwgLi4ubW9kZWwgfTtcblx0XHRcdFx0bW9kaWZpZWQgPSB0cnVlO1xuXHRcdFx0fVxuXG5cdFx0XHRleGVjQ21kKHRoaXMuZGlzcGF0Y2gsIC4uLmNvbW1hbmRzLCAuLi5kZWZlcnJlZENvbW1hbmRzKTtcblxuXHRcdFx0bmV4dE1zZyA9IHRoaXMuYnVmZmVyLnNoaWZ0KCk7XG5cdFx0fSB3aGlsZSAobmV4dE1zZyk7XG5cblx0XHR0aGlzLnJ1bm5pbmcgPSBmYWxzZTtcblxuXHRcdGlmICh0aGlzLm1vdW50ZWQgJiYgbW9kaWZpZWQpIHtcblx0XHRcdFNlcnZpY2VzLmxvZ2dlcj8uZGVidWcoXCJVcGRhdGUgbW9kZWwgZm9yXCIsIHRoaXMuY29tcG9uZW50TmFtZSwgdGhpcy5jdXJyZW50TW9kZWwpO1xuXHRcdFx0dGhpcy5mb3JjZVVwZGF0ZSgpO1xuXHRcdH1cblx0fTtcblxuXHQvKipcblx0ICogRnVuY3Rpb24gdG8gbW9kaWZ5IHRoZSBtb2RlbCBiYXNlZCBvbiBhIG1lc3NhZ2UuXG5cdCAqIEBwYXJhbSB7VE1vZGVsfSBtb2RlbCBUaGUgY3VycmVudCBtb2RlbC5cblx0ICogQHBhcmFtIHtUTWVzc2FnZX0gbXNnIFRoZSBtZXNzYWdlIHRvIHByb2Nlc3MuXG5cdCAqIEBwYXJhbSB7VFByb3BzfSBwcm9wcyBUaGUgcHJvcHMgb2YgdGhlIGNvbXBvbmVudC5cblx0ICogQHBhcmFtIHtEZWZlckZ1bmN0aW9uPFRNb2RlbCwgVE1lc3NhZ2U+fSBkZWZlciBBIGZ1bmN0aW9uIHRvIGRlZmVyIGEgbW9kZWwgdXBkYXRlIGFuZCBjb21tYW5kIGV4ZWN1dGlvbi5cblx0ICogQHJldHVybnMgVGhlIG5ldyBtb2RlbCAoY2FuIGFsc28gYmUgYW4gZW1wdHkgb2JqZWN0IHt9KSBhbmQgYW4gb3B0aW9uYWwgbmV3IG1lc3NhZ2UgdG8gZGlzcGF0Y2guXG5cdCAqIEBhYnN0cmFjdFxuXHQgKiBAbWVtYmVyb2YgRWxtQ29tcG9uZW50XG5cdCAqL1xuXHRwdWJsaWMgYWJzdHJhY3QgdXBkYXRlOiBVcGRhdGVGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+O1xufVxuXG5leHBvcnQgeyBFbG1Db21wb25lbnQgfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsS0FBQSxHQUFBRixPQUFBO0FBRUEsSUFBQUcsWUFBQSxHQUFBSCxPQUFBO0FBQW1ELFNBQUFELHVCQUFBSyxHQUFBLFdBQUFBLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLEdBQUFELEdBQUEsZ0JBQUFBLEdBQUE7QUFBQSxTQUFBRSxRQUFBQyxDQUFBLHNDQUFBRCxPQUFBLHdCQUFBRSxNQUFBLHVCQUFBQSxNQUFBLENBQUFDLFFBQUEsYUFBQUYsQ0FBQSxrQkFBQUEsQ0FBQSxnQkFBQUEsQ0FBQSxXQUFBQSxDQUFBLHlCQUFBQyxNQUFBLElBQUFELENBQUEsQ0FBQUcsV0FBQSxLQUFBRixNQUFBLElBQUFELENBQUEsS0FBQUMsTUFBQSxDQUFBRyxTQUFBLHFCQUFBSixDQUFBLEtBQUFELE9BQUEsQ0FBQUMsQ0FBQTtBQUFBLFNBQUFLLG1CQUFBQyxHQUFBLFdBQUFDLGtCQUFBLENBQUFELEdBQUEsS0FBQUUsZ0JBQUEsQ0FBQUYsR0FBQSxLQUFBRywyQkFBQSxDQUFBSCxHQUFBLEtBQUFJLGtCQUFBO0FBQUEsU0FBQUEsbUJBQUEsY0FBQUMsU0FBQTtBQUFBLFNBQUFKLG1CQUFBRCxHQUFBLFFBQUFNLEtBQUEsQ0FBQUMsT0FBQSxDQUFBUCxHQUFBLFVBQUFRLGlCQUFBLENBQUFSLEdBQUE7QUFBQSxTQUFBUyxTQUFBVCxHQUFBLFdBQUFVLGVBQUEs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
179
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9Db21tb24iLCJfSW5pdCIsIl9jcmVhdGVEZWZlcjMiLCJfZmFrZU9wdGlvbnMiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsIm8iLCJTeW1ib2wiLCJpdGVyYXRvciIsImNvbnN0cnVjdG9yIiwicHJvdG90eXBlIiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiYXJyIiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIlR5cGVFcnJvciIsIkFycmF5IiwiaXNBcnJheSIsIl9hcnJheUxpa2VUb0FycmF5Iiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiX3RvQXJyYXkiLCJfYXJyYXlXaXRoSG9sZXMiLCJfbm9uSXRlcmFibGVSZXN0IiwiaXRlciIsImZyb20iLCJfc2xpY2VkVG9BcnJheSIsImkiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJtaW5MZW4iLCJuIiwidG9TdHJpbmciLCJjYWxsIiwic2xpY2UiLCJuYW1lIiwidGVzdCIsImxlbiIsImFycjIiLCJsIiwidSIsImEiLCJmIiwibmV4dCIsImRvbmUiLCJ2YWx1ZSIsIl9jbGFzc0NhbGxDaGVjayIsImluc3RhbmNlIiwiQ29uc3RydWN0b3IiLCJfZGVmaW5lUHJvcGVydGllcyIsInRhcmdldCIsInByb3BzIiwiZGVzY3JpcHRvciIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiX3RvUHJvcGVydHlLZXkiLCJrZXkiLCJfY3JlYXRlQ2xhc3MiLCJwcm90b1Byb3BzIiwic3RhdGljUHJvcHMiLCJfY2FsbFN1cGVyIiwiX2dldFByb3RvdHlwZU9mIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4iLCJfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiUmVmbGVjdCIsImNvbnN0cnVjdCIsInNlbGYiLCJfYXNzZXJ0VGhpc0luaXRpYWxpemVkIiwiQm9vbGVhbiIsInZhbHVlT2YiLCJzZXRQcm90b3R5cGVPZiIsImdldFByb3RvdHlwZU9mIiwiYmluZCIsIl9fcHJvdG9fXyIsIlJlZmVyZW5jZUVycm9yIiwiX2luaGVyaXRzIiwic3ViQ2xhc3MiLCJzdXBlckNsYXNzIiwiY3JlYXRlIiwiX3NldFByb3RvdHlwZU9mIiwicCIsIl90b1ByaW1pdGl2ZSIsIlN0cmluZyIsInRvUHJpbWl0aXZlIiwiTnVtYmVyIiwiRWxtQ29tcG9uZW50IiwiZXhwb3J0cyIsIl9SZWFjdCRDb21wb25lbnQiLCJpbml0IiwiX1NlcnZpY2VzJGxvZ2dlcjIiLCJfdGhpcyIsIm1zZyIsInJ1bm5pbmciLCJidWZmZXIiLCJuZXh0TXNnIiwibW9kaWZpZWQiLCJsb2dNZXNzYWdlIiwiY29tcG9uZW50TmFtZSIsIl9jcmVhdGVEZWZlciIsImNyZWF0ZURlZmVyIiwiX2NyZWF0ZURlZmVyMiIsImRlZmVyIiwiZ2V0RGVmZXJyZWQiLCJfdGhpcyR1cGRhdGUiLCJ1cGRhdGUiLCJjdXJyZW50TW9kZWwiLCJfdGhpcyR1cGRhdGUyIiwibW9kZWwiLCJjb21tYW5kcyIsIl9nZXREZWZlcnJlZCIsIl9nZXREZWZlcnJlZDIiLCJkZWZlcnJlZE1vZGVsIiwiZGVmZXJyZWRDb21tYW5kcyIsIm1vZGVsSGFzQ2hhbmdlZCIsImV4ZWNDbWQiLCJkaXNwYXRjaCIsImNvbmNhdCIsInNoaWZ0IiwibW91bnRlZCIsIl9TZXJ2aWNlcyRsb2dnZXIiLCJTZXJ2aWNlcyIsImxvZ2dlciIsImRlYnVnIiwiZm9yY2VVcGRhdGUiLCJmYWtlT3B0aW9ucyIsImdldEZha2VPcHRpb25zT25jZSIsIl9yZWYiLCJfcmVmMiIsImluaXRDb21tYW5kcyIsImNvbXBvbmVudERpZE1vdW50IiwiY29tcG9uZW50V2lsbFVubW91bnQiLCJnZXQiLCJSZWFjdCIsIkNvbXBvbmVudCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9FbG1Db21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgZXhlY0NtZCwgbG9nTWVzc2FnZSwgbW9kZWxIYXNDaGFuZ2VkIH0gZnJvbSBcIi4vQ29tbW9uXCI7XG5pbXBvcnQgeyBTZXJ2aWNlcyB9IGZyb20gXCIuL0luaXRcIjtcbmltcG9ydCB0eXBlIHsgQ21kLCBJbml0RnVuY3Rpb24sIE1lc3NhZ2UsIE51bGxhYmxlLCBVcGRhdGVGdW5jdGlvbiB9IGZyb20gXCIuL1R5cGVzXCI7XG5pbXBvcnQgeyBjcmVhdGVEZWZlciB9IGZyb20gXCIuL2NyZWF0ZURlZmVyXCI7XG5pbXBvcnQgeyBnZXRGYWtlT3B0aW9uc09uY2UgfSBmcm9tIFwiLi9mYWtlT3B0aW9uc1wiO1xuXG4vKipcbiAqIEFic3RyYWN0IGNsYXNzIGZvciBhIHJlYWN0IGNsYXNzIGNvbXBvbmVudCB1c2luZyB0aGUgRWxtaXNoIHBhdHRlcm4uXG4gKiBAZXhwb3J0XG4gKiBAYWJzdHJhY3RcbiAqIEBjbGFzcyBFbG1Db21wb25lbnRcbiAqIEBleHRlbmRzIHtDb21wb25lbnQ8VFByb3BzLCBUTW9kZWw+fVxuICogQHRlbXBsYXRlIFRNb2RlbCBUaGUgdHlwZSBvZiB0aGUgbW9kZWwuXG4gKiBAdGVtcGxhdGUgVE1lc3NhZ2UgVGhlIHR5cGUgb2YgdGhlIG1lc3NhZ2VzLlxuICogQHRlbXBsYXRlIFRQcm9wcyBUaGUgdHlwZSBvZiB0aGUgcHJvcHMuXG4gKi9cbmFic3RyYWN0IGNsYXNzIEVsbUNvbXBvbmVudDxUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZSwgVFByb3BzPiBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxUUHJvcHM+IHtcblx0cHJpdmF0ZSBpbml0Q29tbWFuZHM6IE51bGxhYmxlPChDbWQ8VE1lc3NhZ2U+IHwgdW5kZWZpbmVkKVtdPiB8IHVuZGVmaW5lZDtcblx0cHJpdmF0ZSByZWFkb25seSBjb21wb25lbnROYW1lOiBzdHJpbmc7XG5cdHByaXZhdGUgcmVhZG9ubHkgYnVmZmVyOiBUTWVzc2FnZVtdID0gW107XG5cdHByaXZhdGUgcnVubmluZyA9IGZhbHNlO1xuXHRwcml2YXRlIG1vdW50ZWQgPSBmYWxzZTtcblx0cHJpdmF0ZSBjdXJyZW50TW9kZWw6IFRNb2RlbDtcblxuXHQvKipcblx0ICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBFbG1Db21wb25lbnQuXG5cdCAqIEBwYXJhbSB7VFByb3BzfSBwcm9wcyBUaGUgcHJvcHMgZm9yIHRoZSBjb21wb25lbnQuXG5cdCAqIEBwYXJhbSB7KCkgPT4gVE1vZGVsfSBpbml0IFRoZSBpbml0aWFsaXplciBmdW5jdGlvbi5cblx0ICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIGNvbXBvbmVudC5cblx0ICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuXHQgKi9cblx0cHVibGljIGNvbnN0cnVjdG9yKHByb3BzOiBUUHJvcHMsIGluaXQ6IEluaXRGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LCBuYW1lOiBzdHJpbmcpIHtcblx0XHRzdXBlcihwcm9wcyk7XG5cblx0XHRjb25zdCBmYWtlT3B0aW9ucyA9IGdldEZha2VPcHRpb25zT25jZSgpO1xuXG5cdFx0aWYgKGZha2VPcHRpb25zPy5kaXNwYXRjaCkge1xuXHRcdFx0dGhpcy5kaXNwYXRjaCA9IGZha2VPcHRpb25zLmRpc3BhdGNoO1xuXHRcdH1cblxuXHRcdGNvbnN0IFttb2RlbCwgLi4uY29tbWFuZHNdID0gZmFrZU9wdGlvbnM/Lm1vZGVsID8gW2Zha2VPcHRpb25zLm1vZGVsIGFzIFRNb2RlbF0gOiBpbml0KHRoaXMucHJvcHMpO1xuXG5cdFx0U2VydmljZXMubG9nZ2VyPy5kZWJ1ZyhcIkluaXRpYWwgbW9kZWwgZm9yXCIsIG5hbWUsIG1vZGVsKTtcblxuXHRcdHRoaXMuY29tcG9uZW50TmFtZSA9IG5hbWU7XG5cdFx0dGhpcy5jdXJyZW50TW9kZWwgPSBtb2RlbDtcblx0XHR0aGlzLmluaXRDb21tYW5kcyA9IGNvbW1hbmRzO1xuXHR9XG5cblx0LyoqXG5cdCAqIElzIGNhbGxlZCB3aGVuIHRoZSBjb21wb25lbnQgaXMgbG9hZGVkLlxuXHQgKiBXaGVuIGltcGxlbWVudGluZyB0aGlzIG1ldGhvZCwgdGhlIGJhc2UgaW1wbGVtZW50YXRpb24gaGFzIHRvIGJlIGNhbGxlZC5cblx0ICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuXHQgKi9cblx0cHVibGljIGNvbXBvbmVudERpZE1vdW50KCk6IHZvaWQge1xuXHRcdHRoaXMubW91bnRlZCA9IHRydWU7XG5cblx0XHRpZiAodGhpcy5pbml0Q29tbWFuZHMpIHtcblx0XHRcdGV4ZWNDbWQodGhpcy5kaXNwYXRjaCwgLi4udGhpcy5pbml0Q29tbWFuZHMpO1xuXHRcdFx0dGhpcy5pbml0Q29tbWFuZHMgPSBudWxsO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBJcyBjYWxsZWQgYmVmb3JlIHVubG9hZGluZyB0aGUgY29tcG9uZW50LlxuXHQgKiBXaGVuIGltcGxlbWVudGluZyB0aGlzIG1ldGhvZCwgdGhlIGJhc2UgaW1wbGVtZW50YXRpb24gaGFzIHRvIGJlIGNhbGxlZC5cblx0ICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuXHQgKi9cblx0cHVibGljIGNvbXBvbmVudFdpbGxVbm1vdW50KCk6IHZvaWQge1xuXHRcdHRoaXMubW91bnRlZCA9IGZhbHNlO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIGN1cnJlbnQgbW9kZWwuXG5cdCAqIEByZWFkb25seVxuXHQgKiBAdHlwZSB7UmVhZG9ubHk8VE1vZGVsPn1cblx0ICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuXHQgKi9cblx0cHVibGljIGdldCBtb2RlbCgpOiBSZWFkb25seTxUTW9kZWw+IHtcblx0XHRyZXR1cm4gdGhpcy5jdXJyZW50TW9kZWw7XG5cdH1cblxuXHQvKipcblx0ICogRGlzcGF0Y2hlcyBhIG1lc3NhZ2UuXG5cdCAqIEBwYXJhbSB7VE1lc3NhZ2V9IG1zZyBUaGUgbWVzc2FnZSB0byBkaXNwYXRjaC5cblx0ICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuXHQgKi9cblx0cHVibGljIHJlYWRvbmx5IGRpc3BhdGNoID0gKG1zZzogVE1lc3NhZ2UpOiB2b2lkID0+IHtcblx0XHRpZiAodGhpcy5ydW5uaW5nKSB7XG5cdFx0XHR0aGlzLmJ1ZmZlci5wdXNoKG1zZyk7XG5cblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHR0aGlzLnJ1bm5pbmcgPSB0cnVlO1xuXG5cdFx0bGV0IG5leHRNc2c6IFRNZXNzYWdlIHwgdW5kZWZpbmVkID0gbXNnO1xuXHRcdGxldCBtb2RpZmllZCA9IGZhbHNlO1xuXG5cdFx0ZG8ge1xuXHRcdFx0bG9nTWVzc2FnZSh0aGlzLmNvbXBvbmVudE5hbWUsIG5leHRNc2cpO1xuXG5cdFx0XHRjb25zdCBbZGVmZXIsIGdldERlZmVycmVkXSA9IGNyZWF0ZURlZmVyPFRNb2RlbCwgVE1lc3NhZ2U+KCk7XG5cblx0XHRcdGNvbnN0IFttb2RlbCwgLi4uY29tbWFuZHNdID0gdGhpcy51cGRhdGUodGhpcy5jdXJyZW50TW9kZWwsIG5leHRNc2csIHRoaXMucHJvcHMsIHsgZGVmZXIgfSk7XG5cblx0XHRcdGNvbnN0IFtkZWZlcnJlZE1vZGVsLCBkZWZlcnJlZENvbW1hbmRzXSA9IGdldERlZmVycmVkKCk7XG5cblx0XHRcdGlmIChtb2RlbEhhc0NoYW5nZWQodGhpcy5jdXJyZW50TW9kZWwsIHsgLi4uZGVmZXJyZWRNb2RlbCwgLi4ubW9kZWwgfSkpIHtcblx0XHRcdFx0dGhpcy5jdXJyZW50TW9kZWwgPSB7IC4uLnRoaXMuY3VycmVudE1vZGVsLCAuLi5kZWZlcnJlZE1vZGVsLCAuLi5tb2RlbCB9O1xuXHRcdFx0XHRtb2RpZmllZCA9IHRydWU7XG5cdFx0XHR9XG5cblx0XHRcdGV4ZWNDbWQodGhpcy5kaXNwYXRjaCwgLi4uY29tbWFuZHMsIC4uLmRlZmVycmVkQ29tbWFuZHMpO1xuXG5cdFx0XHRuZXh0TXNnID0gdGhpcy5idWZmZXIuc2hpZnQoKTtcblx0XHR9IHdoaWxlIChuZXh0TXNnKTtcblxuXHRcdHRoaXMucnVubmluZyA9IGZhbHNlO1xuXG5cdFx0aWYgKHRoaXMubW91bnRlZCAmJiBtb2RpZmllZCkge1xuXHRcdFx0U2VydmljZXMubG9nZ2VyPy5kZWJ1ZyhcIlVwZGF0ZSBtb2RlbCBmb3JcIiwgdGhpcy5jb21wb25lbnROYW1lLCB0aGlzLmN1cnJlbnRNb2RlbCk7XG5cdFx0XHR0aGlzLmZvcmNlVXBkYXRlKCk7XG5cdFx0fVxuXHR9O1xuXG5cdC8qKlxuXHQgKiBGdW5jdGlvbiB0byBtb2RpZnkgdGhlIG1vZGVsIGJhc2VkIG9uIGEgbWVzc2FnZS5cblx0ICogQHBhcmFtIHtUTW9kZWx9IG1vZGVsIFRoZSBjdXJyZW50IG1vZGVsLlxuXHQgKiBAcGFyYW0ge1RNZXNzYWdlfSBtc2cgVGhlIG1lc3NhZ2UgdG8gcHJvY2Vzcy5cblx0ICogQHBhcmFtIHtUUHJvcHN9IHByb3BzIFRoZSBwcm9wcyBvZiB0aGUgY29tcG9uZW50LlxuXHQgKiBAcGFyYW0gb3B0aW9ucyBUaGUgb3B0aW9ucyBmb3IgdGhlIHVwZGF0ZSBmdW5jdGlvbi5cblx0ICogQHJldHVybnMgVGhlIG5ldyBtb2RlbCAoY2FuIGFsc28gYmUgYW4gZW1wdHkgb2JqZWN0IHt9KSBhbmQgYW4gb3B0aW9uYWwgbmV3IG1lc3NhZ2UgdG8gZGlzcGF0Y2guXG5cdCAqIEBhYnN0cmFjdFxuXHQgKiBAbWVtYmVyb2YgRWxtQ29tcG9uZW50XG5cdCAqL1xuXHRwdWJsaWMgYWJzdHJhY3QgdXBkYXRlOiBVcGRhdGVGdW5jdGlv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
@@ -1,24 +1,24 @@
1
- import type { DeferFunction, Message, Nullable, UpdateMap, UpdateReturnType } from "../Types";
1
+ import type { Message, Nullable, UpdateMap, UpdateReturnType } from "../Types";
2
2
  /**
3
3
  * Creates an update function out of an UpdateMap.
4
- * @param {UpdateMap<TProps, TModel, TMessage>} updateMap The UpdateMap.
5
- * @returns {(msg: TMessage, model: TModel, props: TProps) => UpdateReturnType<TModel, TMessage>} The created update function which can be used in tests.
4
+ * @param updateMap The UpdateMap.
5
+ * @returns The created update function which can be used in tests.
6
6
  * @example
7
7
  * const updateFn = getUpdateFn(update);
8
8
  *
9
9
  * // in your tests:
10
10
  * const [model, cmd] = updateFn(...args);
11
11
  */
12
- declare function getUpdateFn<TProps, TModel, TMessage extends Message>(updateMap: UpdateMap<TProps, TModel, TMessage>): (msg: TMessage, model: TModel, props: TProps, defer: DeferFunction<TModel, TMessage>) => UpdateReturnType<TModel, TMessage>;
12
+ declare function getUpdateFn<TProps, TModel, TMessage extends Message>(updateMap: UpdateMap<TProps, TModel, TMessage>): (msg: TMessage, model: TModel, props: TProps) => UpdateReturnType<TModel, TMessage>;
13
13
  /**
14
14
  * Creates an update function out of an UpdateMap which immediately executes the command.
15
- * @param {UpdateMap<TProps, TModel, TMessage>} updateMap The UpdateMap.
16
- * @returns {(msg: TMessage, model: TModel, props: TProps) => Promise<[Partial<TModel>, Nullable<TMessage> []]>} The created update function which can be used in tests.
15
+ * @param updateMap The UpdateMap.
16
+ * @returns The created update function which can be used in tests.
17
17
  * @example
18
18
  * const updateAndExecCmd = getUpdateAndExecCmdFn(update);
19
19
  *
20
20
  * // in your test:
21
21
  * const [model, messages] = await updateAndExecCmd(...args);
22
22
  */
23
- declare function getUpdateAndExecCmdFn<TProps, TModel, TMessage extends Message>(updateMap: UpdateMap<TProps, TModel, TMessage>): (msg: TMessage, model: TModel, props: TProps, defer: DeferFunction<TModel, TMessage>) => Promise<[Partial<TModel>, Nullable<TMessage>[]]>;
23
+ declare function getUpdateAndExecCmdFn<TProps, TModel, TMessage extends Message>(updateMap: UpdateMap<TProps, TModel, TMessage>): (msg: TMessage, model: TModel, props: TProps) => Promise<[Partial<TModel>, Nullable<TMessage>[]]>;
24
24
  export { getUpdateAndExecCmdFn, getUpdateFn };
@@ -6,24 +6,32 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.getUpdateAndExecCmdFn = getUpdateAndExecCmdFn;
8
8
  exports.getUpdateFn = getUpdateFn;
9
+ var _createDefer5 = require("../createDefer");
9
10
  var _useElmish = require("../useElmish");
10
11
  var _execCmd = require("./execCmd");
11
12
  function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
13
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
14
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
15
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
16
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
17
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
18
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
19
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
12
20
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
13
21
  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."); }
14
22
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
15
23
  function _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest(); }
24
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
25
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
16
26
  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."); }
17
27
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
18
28
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
19
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
29
+ 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; } }
20
30
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
21
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
22
- function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
23
31
  /**
24
32
  * Creates an update function out of an UpdateMap.
25
- * @param {UpdateMap<TProps, TModel, TMessage>} updateMap The UpdateMap.
26
- * @returns {(msg: TMessage, model: TModel, props: TProps) => UpdateReturnType<TModel, TMessage>} The created update function which can be used in tests.
33
+ * @param updateMap The UpdateMap.
34
+ * @returns The created update function which can be used in tests.
27
35
  * @example
28
36
  * const updateFn = getUpdateFn(update);
29
37
  *
@@ -31,15 +39,30 @@ function _asyncToGenerator(fn) { return function () { var self = this, args = ar
31
39
  * const [model, cmd] = updateFn(...args);
32
40
  */
33
41
  function getUpdateFn(updateMap) {
34
- return function updateFn(msg, model, props, defer) {
35
- return (0, _useElmish.callUpdateMap)(updateMap, msg, model, props, defer);
42
+ return function updateFn(msg, model, props) {
43
+ var _createDefer = (0, _createDefer5.createDefer)(),
44
+ _createDefer2 = _slicedToArray(_createDefer, 2),
45
+ defer = _createDefer2[0],
46
+ getDeferred = _createDefer2[1];
47
+ var options = {
48
+ defer: defer
49
+ };
50
+ var _callUpdateMap = (0, _useElmish.callUpdateMap)(updateMap, msg, model, props, options),
51
+ _callUpdateMap2 = _toArray(_callUpdateMap),
52
+ updatedModel = _callUpdateMap2[0],
53
+ commands = _callUpdateMap2.slice(1);
54
+ var _getDeferred = getDeferred(),
55
+ _getDeferred2 = _slicedToArray(_getDeferred, 2),
56
+ deferredModel = _getDeferred2[0],
57
+ deferredCommands = _getDeferred2[1];
58
+ return [_objectSpread(_objectSpread({}, deferredModel), updatedModel)].concat(_toConsumableArray(commands), _toConsumableArray(deferredCommands));
36
59
  };
37
60
  }
38
61
 
39
62
  /**
40
63
  * Creates an update function out of an UpdateMap which immediately executes the command.
41
- * @param {UpdateMap<TProps, TModel, TMessage>} updateMap The UpdateMap.
42
- * @returns {(msg: TMessage, model: TModel, props: TProps) => Promise<[Partial<TModel>, Nullable<TMessage> []]>} The created update function which can be used in tests.
64
+ * @param updateMap The UpdateMap.
65
+ * @returns The created update function which can be used in tests.
43
66
  * @example
44
67
  * const updateAndExecCmd = getUpdateAndExecCmdFn(update);
45
68
  *
@@ -48,27 +71,32 @@ function getUpdateFn(updateMap) {
48
71
  */
49
72
  function getUpdateAndExecCmdFn(updateMap) {
50
73
  return /*#__PURE__*/function () {
51
- var _updateAndExecCmdFn = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(msg, model, props, defer) {
52
- var _callUpdateMap, _callUpdateMap2, updatedModel, commands, messages;
74
+ var _updateAndExecCmdFn = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(msg, model, props) {
75
+ var _createDefer3, _createDefer4, defer, getDeferred, options, _callUpdateMap3, _callUpdateMap4, updatedModel, commands, _getDeferred3, _getDeferred4, deferredModel, deferredCommands, messages;
53
76
  return _regeneratorRuntime().wrap(function _callee$(_context) {
54
77
  while (1) switch (_context.prev = _context.next) {
55
78
  case 0:
56
- _callUpdateMap = (0, _useElmish.callUpdateMap)(updateMap, msg, model, props, defer), _callUpdateMap2 = _toArray(_callUpdateMap), updatedModel = _callUpdateMap2[0], commands = _callUpdateMap2.slice(1);
57
- _context.next = 3;
58
- return _execCmd.execCmd.apply(void 0, _toConsumableArray(commands));
59
- case 3:
79
+ _createDefer3 = (0, _createDefer5.createDefer)(), _createDefer4 = _slicedToArray(_createDefer3, 2), defer = _createDefer4[0], getDeferred = _createDefer4[1];
80
+ options = {
81
+ defer: defer
82
+ };
83
+ _callUpdateMap3 = (0, _useElmish.callUpdateMap)(updateMap, msg, model, props, options), _callUpdateMap4 = _toArray(_callUpdateMap3), updatedModel = _callUpdateMap4[0], commands = _callUpdateMap4.slice(1);
84
+ _getDeferred3 = getDeferred(), _getDeferred4 = _slicedToArray(_getDeferred3, 2), deferredModel = _getDeferred4[0], deferredCommands = _getDeferred4[1];
85
+ _context.next = 6;
86
+ return _execCmd.execCmd.apply(void 0, _toConsumableArray(commands).concat(_toConsumableArray(deferredCommands)));
87
+ case 6:
60
88
  messages = _context.sent;
61
- return _context.abrupt("return", [updatedModel, messages]);
62
- case 5:
89
+ return _context.abrupt("return", [_objectSpread(_objectSpread({}, deferredModel), updatedModel), messages]);
90
+ case 8:
63
91
  case "end":
64
92
  return _context.stop();
65
93
  }
66
94
  }, _callee);
67
95
  }));
68
- function updateAndExecCmdFn(_x, _x2, _x3, _x4) {
96
+ function updateAndExecCmdFn(_x, _x2, _x3) {
69
97
  return _updateAndExecCmdFn.apply(this, arguments);
70
98
  }
71
99
  return updateAndExecCmdFn;
72
100
  }();
73
101
  }
74
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdXNlRWxtaXNoIiwicmVxdWlyZSIsIl9leGVjQ21kIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsImUiLCJ0IiwiciIsIk9iamVjdCIsInByb3RvdHlwZSIsIm4iLCJoYXNPd25Qcm9wZXJ0eSIsIm8iLCJkZWZpbmVQcm9wZXJ0eSIsInZhbHVlIiwiaSIsIlN5bWJvbCIsImEiLCJpdGVyYXRvciIsImMiLCJhc3luY0l0ZXJhdG9yIiwidSIsInRvU3RyaW5nVGFnIiwiZGVmaW5lIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwid3JhcCIsIkdlbmVyYXRvciIsImNyZWF0ZSIsIkNvbnRleHQiLCJtYWtlSW52b2tlTWV0aG9kIiwidHJ5Q2F0Y2giLCJ0eXBlIiwiYXJnIiwiY2FsbCIsImgiLCJsIiwiZiIsInMiLCJ5IiwiR2VuZXJhdG9yRnVuY3Rpb24iLCJHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSIsInAiLCJkIiwiZ2V0UHJvdG90eXBlT2YiLCJ2IiwidmFsdWVzIiwiZyIsImRlZmluZUl0ZXJhdG9yTWV0aG9kcyIsImZvckVhY2giLCJfaW52b2tlIiwiQXN5bmNJdGVyYXRvciIsImludm9rZSIsIl90eXBlb2YiLCJyZXNvbHZlIiwiX19hd2FpdCIsInRoZW4iLCJjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZyIsIkVycm9yIiwiZG9uZSIsIm1ldGhvZCIsImRlbGVnYXRlIiwibWF5YmVJbnZva2VEZWxlZ2F0ZSIsInNlbnQiLCJfc2VudCIsImRpc3BhdGNoRXhjZXB0aW9uIiwiYWJydXB0IiwiVHlwZUVycm9yIiwicmVzdWx0TmFtZSIsIm5leHQiLCJuZXh0TG9jIiwicHVzaFRyeUVudHJ5IiwidHJ5TG9jIiwiY2F0Y2hMb2MiLCJmaW5hbGx5TG9jIiwiYWZ0ZXJMb2MiLCJ0cnlFbnRyaWVzIiwicHVzaCIsInJlc2V0VHJ5RW50cnkiLCJjb21wbGV0aW9uIiwicmVzZXQiLCJpc05hTiIsImxlbmd0aCIsImRpc3BsYXlOYW1lIiwiaXNHZW5lcmF0b3JGdW5jdGlvbiIsImNvbnN0cnVjdG9yIiwibmFtZSIsIm1hcmsiLCJzZXRQcm90b3R5cGVPZiIsIl9fcHJvdG9fXyIsImF3cmFwIiwiYXN5bmMiLCJQcm9taXNlIiwia2V5cyIsInJldmVyc2UiLCJwb3AiLCJwcmV2IiwiY2hhckF0Iiwic2xpY2UiLCJzdG9wIiwicnZhbCIsImhhbmRsZSIsImNvbXBsZXRlIiwiZmluaXNoIiwiX2NhdGNoIiwiZGVsZWdhdGVZaWVsZCIsIl90b0NvbnN1bWFibGVBcnJheSIsImFyciIsIl9hcnJheVdpdGhvdXRIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXkiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVTcHJlYWQiLCJBcnJheSIsImlzQXJyYXkiLCJfYXJyYXlMaWtlVG9BcnJheSIsIl90b0FycmF5IiwiX2FycmF5V2l0aEhvbGVzIiwiX25vbkl0ZXJhYmxlUmVzdCIsIm1pbkxlbiIsInRvU3RyaW5nIiwiZnJvbSIsInRlc3QiLCJsZW4iLCJhcnIyIiwiaXRlciIsImFzeW5jR2VuZXJhdG9yU3RlcCIsImdlbiIsInJlamVjdCIsIl9uZXh0IiwiX3Rocm93Iiwia2V5IiwiaW5mbyIsImVycm9yIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJmbiIsInNlbGYiLCJhcmdzIiwiYXJndW1lbnRzIiwiYXBwbHkiLCJlcnIiLCJ1bmRlZmluZWQiLCJnZXRVcGRhdGVGbiIsInVwZGF0ZU1hcCIsInVwZGF0ZUZuIiwibXNnIiwibW9kZWwiLCJwcm9wcyIsImRlZmVyIiwiY2FsbFVwZGF0ZU1hcCIsImdldFVwZGF0ZUFuZEV4ZWNDbWRGbiIsIl91cGRhdGVBbmRFeGVjQ21kRm4iLCJfY2FsbGVlIiwiX2NhbGxVcGRhdGVNYXAiLCJfY2FsbFVwZGF0ZU1hcDIiLCJ1cGRhdGVkTW9kZWwiLCJjb21tYW5kcyIsIm1lc3NhZ2VzIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsImV4ZWNDbWQiLCJ1cGRhdGVBbmRFeGVjQ21kRm4iLCJfeCIsIl94MiIsIl94MyIsIl94NCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9UZXN0aW5nL2dldFVwZGF0ZUZuLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRGVmZXJGdW5jdGlvbiwgTWVzc2FnZSwgTnVsbGFibGUsIFVwZGF0ZU1hcCwgVXBkYXRlUmV0dXJuVHlwZSB9IGZyb20gXCIuLi9UeXBlc1wiO1xuaW1wb3J0IHsgY2FsbFVwZGF0ZU1hcCB9IGZyb20gXCIuLi91c2VFbG1pc2hcIjtcbmltcG9ydCB7IGV4ZWNDbWQgfSBmcm9tIFwiLi9leGVjQ21kXCI7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiB1cGRhdGUgZnVuY3Rpb24gb3V0IG9mIGFuIFVwZGF0ZU1hcC5cbiAqIEBwYXJhbSB7VXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT59IHVwZGF0ZU1hcCBUaGUgVXBkYXRlTWFwLlxuICogQHJldHVybnMgeyhtc2c6IFRNZXNzYWdlLCBtb2RlbDogVE1vZGVsLCBwcm9wczogVFByb3BzKSA9PiBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgVE1lc3NhZ2U+fSBUaGUgY3JlYXRlZCB1cGRhdGUgZnVuY3Rpb24gd2hpY2ggY2FuIGJlIHVzZWQgaW4gdGVzdHMuXG4gKiBAZXhhbXBsZVxuICogY29uc3QgdXBkYXRlRm4gPSBnZXRVcGRhdGVGbih1cGRhdGUpO1xuICpcbiAqIC8vIGluIHlvdXIgdGVzdHM6XG4gKiBjb25zdCBbbW9kZWwsIGNtZF0gPSB1cGRhdGVGbiguLi5hcmdzKTtcbiAqL1xuZnVuY3Rpb24gZ2V0VXBkYXRlRm48VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4oXG5cdHVwZGF0ZU1hcDogVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG4pOiAobXNnOiBUTWVzc2FnZSwgbW9kZWw6IFRNb2RlbCwgcHJvcHM6IFRQcm9wcywgZGVmZXI6IERlZmVyRnVuY3Rpb248VE1vZGVsLCBUTWVzc2FnZT4pID0+IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTWVzc2FnZT4ge1xuXHRyZXR1cm4gZnVuY3Rpb24gdXBkYXRlRm4obXNnLCBtb2RlbCwgcHJvcHMsIGRlZmVyKTogVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPiB7XG5cdFx0cmV0dXJuIGNhbGxVcGRhdGVNYXAodXBkYXRlTWFwLCBtc2csIG1vZGVsLCBwcm9wcywgZGVmZXIpO1xuXHR9O1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYW4gdXBkYXRlIGZ1bmN0aW9uIG91dCBvZiBhbiBVcGRhdGVNYXAgd2hpY2ggaW1tZWRpYXRlbHkgZXhlY3V0ZXMgdGhlIGNvbW1hbmQuXG4gKiBAcGFyYW0ge1VwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+fSB1cGRhdGVNYXAgVGhlIFVwZGF0ZU1hcC5cbiAqIEByZXR1cm5zIHsobXNnOiBUTWVzc2FnZSwgbW9kZWw6IFRNb2RlbCwgcHJvcHM6IFRQcm9wcykgPT4gUHJvbWlzZTxbUGFydGlhbDxUTW9kZWw+LCBOdWxsYWJsZTxUTWVzc2FnZT4gW11dPn0gVGhlIGNyZWF0ZWQgdXBkYXRlIGZ1bmN0aW9uIHdoaWNoIGNhbiBiZSB1c2VkIGluIHRlc3RzLlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IHVwZGF0ZUFuZEV4ZWNDbWQgPSBnZXRVcGRhdGVBbmRFeGVjQ21kRm4odXBkYXRlKTtcbiAqXG4gKiAvLyBpbiB5b3VyIHRlc3Q6XG4gKiBjb25zdCBbbW9kZWwsIG1lc3NhZ2VzXSA9IGF3YWl0IHVwZGF0ZUFuZEV4ZWNDbWQoLi4uYXJncyk7XG4gKi9cbmZ1bmN0aW9uIGdldFVwZGF0ZUFuZEV4ZWNDbWRGbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPihcblx0dXBkYXRlTWFwOiBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPixcbik6IChcblx0bXNnOiBUTWVzc2FnZSxcblx0bW9kZWw6IFRNb2RlbCxcblx0cHJvcHM6IFRQcm9wcyxcblx0ZGVmZXI6IERlZmVyRnVuY3Rpb248VE1vZGVsLCBUTWVzc2FnZT4sXG4pID0+IFByb21pc2U8W1BhcnRpYWw8VE1vZGVsPiwgTnVsbGFibGU8VE1lc3NhZ2U+W11dPiB7XG5cdHJldHVybiBhc3luYyBmdW5jdGlvbiB1cGRhdGVBbmRFeGVjQ21kRm4obXNnLCBtb2RlbCwgcHJvcHMsIGRlZmVyKTogUHJvbWlzZTxbUGFydGlhbDxUTW9kZWw+LCBOdWxsYWJsZTxUTWVzc2FnZT5bXV0+IHtcblx0XHRjb25zdCBbdXBkYXRlZE1vZGVsLCAuLi5jb21tYW5kc10gPSBjYWxsVXBkYXRlTWFwKHVwZGF0ZU1hcCwgbXNnLCBtb2RlbCwgcHJvcHMsIGRlZmVyKTtcblxuXHRcdGNvbnN0IG1lc3NhZ2VzID0gYXdhaXQgZXhlY0NtZCguLi5jb21tYW5kcyk7XG5cblx0XHRyZXR1cm4gW3VwZGF0ZWRNb2RlbCwgbWVzc2FnZXNdO1xuXHR9O1xufVxuXG5leHBvcnQgeyBnZXRVcGRhdGVBbmRFeGVjQ21kRm4sIGdldFVwZGF0ZUZuIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQ0EsSUFBQUEsVUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsUUFBQSxHQUFBRCxPQUFBO0FBQW9DLFNBQUFFLG9CQUFBLGtCQURwQyxxSkFBQUEsbUJBQUEsWUFBQUEsb0JBQUEsV0FBQUMsQ0FBQSxTQUFBQyxDQUFBLEVBQUFELENBQUEsT0FBQUUsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLFNBQUEsRUFBQUMsQ0FBQSxHQUFBSCxDQUFBLENBQUFJLGNBQUEsRUFBQUMsQ0FBQSxHQUFBSixNQUFBLENBQUFLLGNBQUEsY0FBQVAsQ0FBQSxFQUFBRCxDQUFBLEVBQUFFLENBQUEsSUFBQUQsQ0FBQSxDQUFBRCxDQUFBLElBQUFFLENBQUEsQ0FBQU8sS0FBQSxLQUFBQyxDQUFBLHdCQUFBQyxNQUFBLEdBQUFBLE1BQUEsT0FBQUMsQ0FBQSxHQUFBRixDQUFBLENBQUFHLFFBQUEsa0JBQUFDLENBQUEsR0FBQUosQ0FBQSxDQUFBSyxhQUFBLHVCQUFB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
102
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY3JlYXRlRGVmZXI1IiwicmVxdWlyZSIsIl91c2VFbG1pc2giLCJfZXhlY0NtZCIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJlIiwidCIsInIiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJuIiwiaGFzT3duUHJvcGVydHkiLCJvIiwiZGVmaW5lUHJvcGVydHkiLCJ2YWx1ZSIsImkiLCJTeW1ib2wiLCJhIiwiaXRlcmF0b3IiLCJjIiwiYXN5bmNJdGVyYXRvciIsInUiLCJ0b1N0cmluZ1RhZyIsImRlZmluZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIndyYXAiLCJHZW5lcmF0b3IiLCJjcmVhdGUiLCJDb250ZXh0IiwibWFrZUludm9rZU1ldGhvZCIsInRyeUNhdGNoIiwidHlwZSIsImFyZyIsImNhbGwiLCJoIiwibCIsImYiLCJzIiwieSIsIkdlbmVyYXRvckZ1bmN0aW9uIiwiR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUiLCJwIiwiZCIsImdldFByb3RvdHlwZU9mIiwidiIsInZhbHVlcyIsImciLCJkZWZpbmVJdGVyYXRvck1ldGhvZHMiLCJmb3JFYWNoIiwiX2ludm9rZSIsIkFzeW5jSXRlcmF0b3IiLCJpbnZva2UiLCJfdHlwZW9mIiwicmVzb2x2ZSIsIl9fYXdhaXQiLCJ0aGVuIiwiY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmciLCJFcnJvciIsImRvbmUiLCJtZXRob2QiLCJkZWxlZ2F0ZSIsIm1heWJlSW52b2tlRGVsZWdhdGUiLCJzZW50IiwiX3NlbnQiLCJkaXNwYXRjaEV4Y2VwdGlvbiIsImFicnVwdCIsIlR5cGVFcnJvciIsInJlc3VsdE5hbWUiLCJuZXh0IiwibmV4dExvYyIsInB1c2hUcnlFbnRyeSIsInRyeUxvYyIsImNhdGNoTG9jIiwiZmluYWxseUxvYyIsImFmdGVyTG9jIiwidHJ5RW50cmllcyIsInB1c2giLCJyZXNldFRyeUVudHJ5IiwiY29tcGxldGlvbiIsInJlc2V0IiwiaXNOYU4iLCJsZW5ndGgiLCJkaXNwbGF5TmFtZSIsImlzR2VuZXJhdG9yRnVuY3Rpb24iLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJtYXJrIiwic2V0UHJvdG90eXBlT2YiLCJfX3Byb3RvX18iLCJhd3JhcCIsImFzeW5jIiwiUHJvbWlzZSIsImtleXMiLCJyZXZlcnNlIiwicG9wIiwicHJldiIsImNoYXJBdCIsInNsaWNlIiwic3RvcCIsInJ2YWwiLCJoYW5kbGUiLCJjb21wbGV0ZSIsImZpbmlzaCIsIl9jYXRjaCIsImRlbGVnYXRlWWllbGQiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJnZW4iLCJyZWplY3QiLCJfbmV4dCIsIl90aHJvdyIsImtleSIsImluZm8iLCJlcnJvciIsIl9hc3luY1RvR2VuZXJhdG9yIiwiZm4iLCJzZWxmIiwiYXJncyIsImFyZ3VtZW50cyIsImFwcGx5IiwiZXJyIiwidW5kZWZpbmVkIiwib3duS2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIl9vYmplY3RTcHJlYWQiLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIm9iaiIsIl90b1Byb3BlcnR5S2V5IiwiX3RvUHJpbWl0aXZlIiwiU3RyaW5nIiwidG9QcmltaXRpdmUiLCJOdW1iZXIiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJhcnIiLCJfYXJyYXlXaXRob3V0SG9sZXMiLCJfaXRlcmFibGVUb0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlU3ByZWFkIiwiQXJyYXkiLCJpc0FycmF5IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJfdG9BcnJheSIsIl9hcnJheVdpdGhIb2xlcyIsIl9ub25JdGVyYWJsZVJlc3QiLCJpdGVyIiwiZnJvbSIsIl9zbGljZWRUb0FycmF5IiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwibWluTGVuIiwidG9TdHJpbmciLCJ0ZXN0IiwibGVuIiwiYXJyMiIsImdldFVwZGF0ZUZuIiwidXBkYXRlTWFwIiwidXBkYXRlRm4iLCJtc2ciLCJtb2RlbCIsInByb3BzIiwiX2NyZWF0ZURlZmVyIiwiY3JlYXRlRGVmZXIiLCJfY3JlYXRlRGVmZXIyIiwiZGVmZXIiLCJnZXREZWZlcnJlZCIsIm9wdGlvbnMiLCJfY2FsbFVwZGF0ZU1hcCIsImNhbGxVcGRhdGVNYXAiLCJfY2FsbFVwZGF0ZU1hcDIiLCJ1cGRhdGVkTW9kZWwiLCJjb21tYW5kcyIsIl9nZXREZWZlcnJlZCIsIl9nZXREZWZlcnJlZDIiLCJkZWZlcnJlZE1vZGVsIiwiZGVmZXJyZWRDb21tYW5kcyIsImNvbmNhdCIsImdldFVwZGF0ZUFuZEV4ZWNDbWRGbiIsIl91cGRhdGVBbmRFeGVjQ21kRm4iLCJfY2FsbGVlIiwiX2NyZWF0ZURlZmVyMyIsIl9jcmVhdGVEZWZlcjQiLCJfY2FsbFVwZGF0ZU1hcDMiLCJfY2FsbFVwZGF0ZU1hcDQiLCJfZ2V0RGVmZXJyZWQzIiwiX2dldERlZmVycmVkNCIsIm1lc3NhZ2VzIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsImV4ZWNDbWQiLCJ1cGRhdGVBbmRFeGVjQ21kRm4iLCJfeCIsIl94MiIsIl94MyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9UZXN0aW5nL2dldFVwZGF0ZUZuLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTWVzc2FnZSwgTnVsbGFibGUsIFVwZGF0ZUZ1bmN0aW9uT3B0aW9ucywgVXBkYXRlTWFwLCBVcGRhdGVSZXR1cm5UeXBlIH0gZnJvbSBcIi4uL1R5cGVzXCI7XG5pbXBvcnQgeyBjcmVhdGVEZWZlciB9IGZyb20gXCIuLi9jcmVhdGVEZWZlclwiO1xuaW1wb3J0IHsgY2FsbFVwZGF0ZU1hcCB9IGZyb20gXCIuLi91c2VFbG1pc2hcIjtcbmltcG9ydCB7IGV4ZWNDbWQgfSBmcm9tIFwiLi9leGVjQ21kXCI7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiB1cGRhdGUgZnVuY3Rpb24gb3V0IG9mIGFuIFVwZGF0ZU1hcC5cbiAqIEBwYXJhbSB1cGRhdGVNYXAgVGhlIFVwZGF0ZU1hcC5cbiAqIEByZXR1cm5zIFRoZSBjcmVhdGVkIHVwZGF0ZSBmdW5jdGlvbiB3aGljaCBjYW4gYmUgdXNlZCBpbiB0ZXN0cy5cbiAqIEBleGFtcGxlXG4gKiBjb25zdCB1cGRhdGVGbiA9IGdldFVwZGF0ZUZuKHVwZGF0ZSk7XG4gKlxuICogLy8gaW4geW91ciB0ZXN0czpcbiAqIGNvbnN0IFttb2RlbCwgY21kXSA9IHVwZGF0ZUZuKC4uLmFyZ3MpO1xuICovXG5mdW5jdGlvbiBnZXRVcGRhdGVGbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPihcblx0dXBkYXRlTWFwOiBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPixcbik6IChtc2c6IFRNZXNzYWdlLCBtb2RlbDogVE1vZGVsLCBwcm9wczogVFByb3BzKSA9PiBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgVE1lc3NhZ2U+IHtcblx0cmV0dXJuIGZ1bmN0aW9uIHVwZGF0ZUZuKG1zZywgbW9kZWwsIHByb3BzKTogVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPiB7XG5cdFx0Y29uc3QgW2RlZmVyLCBnZXREZWZlcnJlZF0gPSBjcmVhdGVEZWZlcjxUTW9kZWwsIFRNZXNzYWdlPigpO1xuXG5cdFx0Y29uc3Qgb3B0aW9uczogVXBkYXRlRnVuY3Rpb25PcHRpb25zPFRNb2RlbCwgVE1lc3NhZ2U+ID0ge1xuXHRcdFx0ZGVmZXIsXG5cdFx0fTtcblxuXHRcdGNvbnN0IFt1cGRhdGVkTW9kZWwsIC4uLmNvbW1hbmRzXSA9IGNhbGxVcGRhdGVNYXAodXBkYXRlTWFwLCBtc2csIG1vZGVsLCBwcm9wcywgb3B0aW9ucyk7XG5cblx0XHRjb25zdCBbZGVmZXJyZWRNb2RlbCwgZGVmZXJyZWRDb21tYW5kc10gPSBnZXREZWZlcnJlZCgpO1xuXG5cdFx0cmV0dXJuIFt7IC4uLmRlZmVycmVkTW9kZWwsIC4uLnVwZGF0ZWRNb2RlbCB9LCAuLi5jb21tYW5kcywgLi4uZGVmZXJyZWRDb21tYW5kc107XG5cdH07XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhbiB1cGRhdGUgZnVuY3Rpb24gb3V0IG9mIGFuIFVwZGF0ZU1hcCB3aGljaCBpbW1lZGlhdGVseSBleGVjdXRlcyB0aGUgY29tbWFuZC5cbiAqIEBwYXJhbSB1cGRhdGVNYXAgVGhlIFVwZGF0ZU1hcC5cbiAqIEByZXR1cm5zIFRoZSBjcmVhdGVkIHVwZGF0ZSBmdW5jdGlvbiB3aGljaCBjYW4gYmUgdXNlZCBpbiB0ZXN0cy5cbiAqIEBleGFtcGxlXG4gKiBjb25zdCB1cGRhdGVBbmRFeGVjQ21kID0gZ2V0VXBkYXRlQW5kRXhlY0NtZEZuKHVwZGF0ZSk7XG4gKlxuICogLy8gaW4geW91ciB0ZXN0OlxuICogY29uc3QgW21vZGVsLCBtZXNzYWdlc10gPSBhd2FpdCB1cGRhdGVBbmRFeGVjQ21kKC4uLmFyZ3MpO1xuICovXG5mdW5jdGlvbiBnZXRVcGRhdGVBbmRFeGVjQ21kRm48VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4oXG5cdHVwZGF0ZU1hcDogVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG4pOiAobXNnOiBUTWVzc2FnZSwgbW9kZWw6IFRNb2RlbCwgcHJvcHM6IFRQcm9wcykgPT4gUHJvbWlzZTxbUGFydGlhbDxUTW9kZWw+LCBOdWxsYWJsZTxUTWVzc2FnZT5bXV0+IHtcblx0cmV0dXJuIGFzeW5jIGZ1bmN0aW9uIHVwZGF0ZUFuZEV4ZWNDbWRGbihtc2csIG1vZGVsLCBwcm9wcyk6IFByb21pc2U8W1BhcnRpYWw8VE1vZGVsPiwgTnVsbGFibGU8VE1lc3NhZ2U+W11dPiB7XG5cdFx0Y29uc3QgW2RlZmVyLCBnZXREZWZlcnJlZF0gPSBjcmVhdGVEZWZlcjxUTW9kZWwsIFRNZXNzYWdlPigpO1xuXG5cdFx0Y29uc3Qgb3B0aW9uczogVXBkYXRlRnVuY3Rpb25PcHRpb25zPFRNb2RlbCwgVE1lc3NhZ2U+ID0ge1xuXHRcdFx0ZGVmZXIsXG5cdFx0fTtcblxuXHRcdGNvbnN0IFt1cGRhdGVkTW9kZWwsIC4uLmNvbW1hbmRzXSA9IGNhbGxVcGRhdGVNYXAodXBkYXRlTWFwLCBtc2csIG1vZGVsLCBwcm9wcywgb3B0aW9ucyk7XG5cblx0XHRjb25zdCBbZGVmZXJyZWRNb2RlbCwgZGVmZXJyZWRDb21tYW5kc10gPSBnZXREZWZlcnJlZCgpO1xuXG5cdFx0Y29uc3QgbWVzc2FnZXMgPSBhd2FpdCBleGVjQ21kKC4uLmNvbW1hbmRzLCAuLi5kZWZlcnJlZENvbW1hbmRzKTtcblxuXHRcdHJldHVybiBbeyAuLi5kZWZlcnJlZE1vZGVsLCAuLi51cGRhdGVkTW9kZWwgfSwgbWVzc2FnZXNdO1xuXHR9O1xufVxuXG5leHBvcnQgeyBnZXRVcGRhdGVBbmRFeGVjQ21kRm4sIGdldFVwZGF0ZUZuIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQ0EsSUFBQUEsYUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsVUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsUUFBQSxHQUFBRixPQUFBO0FBQW9DLFNBQUFHLG9CQUFBLGtCQUZwQyxxSkFBQUEsbUJBQUEsWUFBQUEsb0JBQUEsV0FBQUMsQ0FBQSxTQUFBQyxDQUFBLEVBQUFELENBQUEsT0FBQUUsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLFNBQUEsRUFBQUMsQ0FBQSxHQUFBSCxDQUFBLENBQUFJLGNBQUEsRUFBQUMsQ0FBQSxHQUFBSixNQUFBLENBQUFLLGNBQUEsY0FBQVAsQ0FBQSxFQUFBRCxDQUFBLEVBQUFFLENBQUEsSUFBQUQsQ0FBQSxDQUFBRCxDQUFBLElBQUFFLENBQUEsQ0FBQU8sS0FBQSxLQUFBQyxDQUFBLHdCQUFBQyxNQUFBLEdBQUFBLE1BQUEsT0FBQUMsQ0FBQSxHQUFBRixDQUFBLENBQUFHLFFBQUEsa0JBQUFDLENBQUEsR0FBQUosQ0FBQSxDQUFBSyxhQUFBLHVCQUFBQyxDQUFBLEdBQUFOLENBQUEsQ0FBQU8sV0FBQSw4QkFBQUMsT0FBQWpCLENBQUEsRUFBQUQsQ0FBQSxFQUFB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
package/dist/Types.d.ts CHANGED
@@ -28,7 +28,10 @@ type InitFunction<TProps, TModel, TMessage> = (props: TProps) => InitResult<TMod
28
28
  */
29
29
  type UpdateReturnType<TModel, TMessage> = [Partial<TModel>, ...(Cmd<TMessage> | undefined)[]];
30
30
  type DeferFunction<TModel, TMessage> = (model: Partial<TModel>, ...commands: (Cmd<TMessage> | undefined)[]) => void;
31
- type UpdateFunction<TProps, TModel, TMessage> = (model: TModel, msg: TMessage, props: TProps, defer: DeferFunction<TModel, TMessage>) => UpdateReturnType<TModel, TMessage>;
31
+ interface UpdateFunctionOptions<TModel, TMessage> {
32
+ defer: DeferFunction<TModel, TMessage>;
33
+ }
34
+ type UpdateFunction<TProps, TModel, TMessage> = (model: TModel, msg: TMessage, props: TProps, options: UpdateFunctionOptions<TModel, TMessage>) => UpdateReturnType<TModel, TMessage>;
32
35
  /**
33
36
  * Type for mapping messages to functions.
34
37
  * Use this type to create your update logic for the useElmish hook.
@@ -36,6 +39,6 @@ type UpdateFunction<TProps, TModel, TMessage> = (model: TModel, msg: TMessage, p
36
39
  type UpdateMap<TProps, TModel, TMessage extends Message> = {
37
40
  [M in TMessage["name"]]: (msg: TMessage & {
38
41
  name: M;
39
- }, model: TModel, props: TProps, defer: DeferFunction<TModel, TMessage>) => UpdateReturnType<TModel, TMessage>;
42
+ }, model: TModel, props: TProps, options: UpdateFunctionOptions<TModel, TMessage>) => UpdateReturnType<TModel, TMessage>;
40
43
  };
41
- export type { Cmd, DeferFunction, Dispatch, FallbackHandler, InitFunction, InitResult, Message, MsgSource, Nullable, Sub, UpdateFunction, UpdateMap, UpdateReturnType, };
44
+ export type { Cmd, DeferFunction, Dispatch, FallbackHandler, InitFunction, InitResult, Message, MsgSource, Nullable, Sub, UpdateFunction, UpdateFunctionOptions, UpdateMap, UpdateReturnType, };
package/dist/Types.js CHANGED
@@ -3,4 +3,4 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL1R5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbInR5cGUgTnVsbGFibGU8VD4gPSBUIHwgbnVsbDtcblxuaW50ZXJmYWNlIE1lc3NhZ2Uge1xuXHRuYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVHlwZSBvZiB0aGUgZGlzcGF0Y2ggZnVuY3Rpb24uXG4gKi9cbnR5cGUgRGlzcGF0Y2g8VE1lc3NhZ2U+ID0gKG1zZzogVE1lc3NhZ2UpID0+IHZvaWQ7XG5cbnR5cGUgRmFsbGJhY2tIYW5kbGVyID0gKGVycm9yPzogRXJyb3IpID0+IHZvaWQ7XG50eXBlIFN1YjxUTXNnPiA9IChkaXNwYXRjaDogRGlzcGF0Y2g8VE1zZz4sIGZhbGxiYWNrPzogRmFsbGJhY2tIYW5kbGVyKSA9PiB2b2lkO1xuXG4vKipcbiAqIFR5cGUgb2YgYSBjb21tYW5kLlxuICovXG50eXBlIENtZDxUTWVzc2FnZT4gPSBTdWI8VE1lc3NhZ2U+W107XG5cbi8qKlxuICogQ3JlYXRlcyBhIE1zZ1NvdXJjZSB0eXBlLlxuICovXG5pbnRlcmZhY2UgTXNnU291cmNlPFQgZXh0ZW5kcyBzdHJpbmc+IHtcblx0c291cmNlOiBUO1xufVxuXG4vKipcbiAqIFRoZSByZXR1cm4gdHlwZSBvZiB0aGUgYGluaXRgIGZ1bmN0aW9uLlxuICovXG50eXBlIEluaXRSZXN1bHQ8VE1vZGVsLCBUTWVzc2FnZT4gPSBbVE1vZGVsLCAuLi4oQ21kPFRNZXNzYWdlPiB8IHVuZGVmaW5lZClbXV07XG5cbnR5cGUgSW5pdEZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gPSAocHJvcHM6IFRQcm9wcykgPT4gSW5pdFJlc3VsdDxUTW9kZWwsIFRNZXNzYWdlPjtcblxuLyoqXG4gKiBUeXBlIGZvciB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBgdXBkYXRlYCBmdW5jdGlvbi5cbiAqL1xudHlwZSBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgVE1lc3NhZ2U+ID0gW1BhcnRpYWw8VE1vZGVsPiwgLi4uKENtZDxUTWVzc2FnZT4gfCB1bmRlZmluZWQpW11dO1xuXG50eXBlIERlZmVyRnVuY3Rpb248VE1vZGVsLCBUTWVzc2FnZT4gPSAobW9kZWw6IFBhcnRpYWw8VE1vZGVsPiwgLi4uY29tbWFuZHM6IChDbWQ8VE1lc3NhZ2U+IHwgdW5kZWZpbmVkKVtdKSA9PiB2b2lkO1xuXG50eXBlIFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gPSAoXG5cdG1vZGVsOiBUTW9kZWwsXG5cdG1zZzogVE1lc3NhZ2UsXG5cdHByb3BzOiBUUHJvcHMsXG5cdGRlZmVyOiBEZWZlckZ1bmN0aW9uPFRNb2RlbCwgVE1lc3NhZ2U+LFxuKSA9PiBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgVE1lc3NhZ2U+O1xuXG4vKipcbiAqIFR5cGUgZm9yIG1hcHBpbmcgbWVzc2FnZXMgdG8gZnVuY3Rpb25zLlxuICogVXNlIHRoaXMgdHlwZSB0byBjcmVhdGUgeW91ciB1cGRhdGUgbG9naWMgZm9yIHRoZSB1c2VFbG1pc2ggaG9vay5cbiAqL1xudHlwZSBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4gPSB7XG5cdFtNIGluIFRNZXNzYWdlW1wibmFtZVwiXV06IChcblx0XHRtc2c6IFRNZXNzYWdlICYgeyBuYW1lOiBNIH0sXG5cdFx0bW9kZWw6IFRNb2RlbCxcblx0XHRwcm9wczogVFByb3BzLFxuXHRcdGRlZmVyOiBEZWZlckZ1bmN0aW9uPFRNb2RlbCwgVE1lc3NhZ2U+LFxuXHQpID0+IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTWVzc2FnZT47XG59O1xuXG5leHBvcnQgdHlwZSB7XG5cdENtZCxcblx0RGVmZXJGdW5jdGlvbixcblx0RGlzcGF0Y2gsXG5cdEZhbGxiYWNrSGFuZGxlcixcblx0SW5pdEZ1bmN0aW9uLFxuXHRJbml0UmVzdWx0LFxuXHRNZXNzYWdlLFxuXHRNc2dTb3VyY2UsXG5cdE51bGxhYmxlLFxuXHRTdWIsXG5cdFVwZGF0ZUZ1bmN0aW9uLFxuXHRVcGRhdGVNYXAsXG5cdFVwZGF0ZVJldHVyblR5cGUsXG59O1xuIl0sIm1hcHBpbmdzIjoiIn0=
6
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL1R5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbInR5cGUgTnVsbGFibGU8VD4gPSBUIHwgbnVsbDtcblxuaW50ZXJmYWNlIE1lc3NhZ2Uge1xuXHRuYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVHlwZSBvZiB0aGUgZGlzcGF0Y2ggZnVuY3Rpb24uXG4gKi9cbnR5cGUgRGlzcGF0Y2g8VE1lc3NhZ2U+ID0gKG1zZzogVE1lc3NhZ2UpID0+IHZvaWQ7XG5cbnR5cGUgRmFsbGJhY2tIYW5kbGVyID0gKGVycm9yPzogRXJyb3IpID0+IHZvaWQ7XG50eXBlIFN1YjxUTXNnPiA9IChkaXNwYXRjaDogRGlzcGF0Y2g8VE1zZz4sIGZhbGxiYWNrPzogRmFsbGJhY2tIYW5kbGVyKSA9PiB2b2lkO1xuXG4vKipcbiAqIFR5cGUgb2YgYSBjb21tYW5kLlxuICovXG50eXBlIENtZDxUTWVzc2FnZT4gPSBTdWI8VE1lc3NhZ2U+W107XG5cbi8qKlxuICogQ3JlYXRlcyBhIE1zZ1NvdXJjZSB0eXBlLlxuICovXG5pbnRlcmZhY2UgTXNnU291cmNlPFQgZXh0ZW5kcyBzdHJpbmc+IHtcblx0c291cmNlOiBUO1xufVxuXG4vKipcbiAqIFRoZSByZXR1cm4gdHlwZSBvZiB0aGUgYGluaXRgIGZ1bmN0aW9uLlxuICovXG50eXBlIEluaXRSZXN1bHQ8VE1vZGVsLCBUTWVzc2FnZT4gPSBbVE1vZGVsLCAuLi4oQ21kPFRNZXNzYWdlPiB8IHVuZGVmaW5lZClbXV07XG5cbnR5cGUgSW5pdEZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gPSAocHJvcHM6IFRQcm9wcykgPT4gSW5pdFJlc3VsdDxUTW9kZWwsIFRNZXNzYWdlPjtcblxuLyoqXG4gKiBUeXBlIGZvciB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBgdXBkYXRlYCBmdW5jdGlvbi5cbiAqL1xudHlwZSBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgVE1lc3NhZ2U+ID0gW1BhcnRpYWw8VE1vZGVsPiwgLi4uKENtZDxUTWVzc2FnZT4gfCB1bmRlZmluZWQpW11dO1xuXG50eXBlIERlZmVyRnVuY3Rpb248VE1vZGVsLCBUTWVzc2FnZT4gPSAobW9kZWw6IFBhcnRpYWw8VE1vZGVsPiwgLi4uY29tbWFuZHM6IChDbWQ8VE1lc3NhZ2U+IHwgdW5kZWZpbmVkKVtdKSA9PiB2b2lkO1xuXG5pbnRlcmZhY2UgVXBkYXRlRnVuY3Rpb25PcHRpb25zPFRNb2RlbCwgVE1lc3NhZ2U+IHtcblx0ZGVmZXI6IERlZmVyRnVuY3Rpb248VE1vZGVsLCBUTWVzc2FnZT47XG59XG5cbnR5cGUgVXBkYXRlRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiA9IChcblx0bW9kZWw6IFRNb2RlbCxcblx0bXNnOiBUTWVzc2FnZSxcblx0cHJvcHM6IFRQcm9wcyxcblx0b3B0aW9uczogVXBkYXRlRnVuY3Rpb25PcHRpb25zPFRNb2RlbCwgVE1lc3NhZ2U+LFxuKSA9PiBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgVE1lc3NhZ2U+O1xuXG4vKipcbiAqIFR5cGUgZm9yIG1hcHBpbmcgbWVzc2FnZXMgdG8gZnVuY3Rpb25zLlxuICogVXNlIHRoaXMgdHlwZSB0byBjcmVhdGUgeW91ciB1cGRhdGUgbG9naWMgZm9yIHRoZSB1c2VFbG1pc2ggaG9vay5cbiAqL1xudHlwZSBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4gPSB7XG5cdFtNIGluIFRNZXNzYWdlW1wibmFtZVwiXV06IChcblx0XHRtc2c6IFRNZXNzYWdlICYgeyBuYW1lOiBNIH0sXG5cdFx0bW9kZWw6IFRNb2RlbCxcblx0XHRwcm9wczogVFByb3BzLFxuXHRcdG9wdGlvbnM6IFVwZGF0ZUZ1bmN0aW9uT3B0aW9uczxUTW9kZWwsIFRNZXNzYWdlPixcblx0KSA9PiBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgVE1lc3NhZ2U+O1xufTtcblxuZXhwb3J0IHR5cGUge1xuXHRDbWQsXG5cdERlZmVyRnVuY3Rpb24sXG5cdERpc3BhdGNoLFxuXHRGYWxsYmFja0hhbmRsZXIsXG5cdEluaXRGdW5jdGlvbixcblx0SW5pdFJlc3VsdCxcblx0TWVzc2FnZSxcblx0TXNnU291cmNlLFxuXHROdWxsYWJsZSxcblx0U3ViLFxuXHRVcGRhdGVGdW5jdGlvbixcblx0VXBkYXRlRnVuY3Rpb25PcHRpb25zLFxuXHRVcGRhdGVNYXAsXG5cdFVwZGF0ZVJldHVyblR5cGUsXG59O1xuIl0sIm1hcHBpbmdzIjoiIn0=
@@ -0,0 +1,6 @@
1
+ import type { Cmd, DeferFunction, Message } from "./Types";
2
+ declare function createDefer<TModel, TMessage extends Message>(): [
3
+ DeferFunction<TModel, TMessage>,
4
+ () => [Partial<TModel>, (Cmd<TMessage> | undefined)[]]
5
+ ];
6
+ export { createDefer };
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createDefer = createDefer;
7
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
8
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
9
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
10
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
11
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
12
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
13
+ function createDefer() {
14
+ var deferredModel = {};
15
+ var deferredCommands = [];
16
+ var defer = function defer(tempDeferredModel) {
17
+ deferredModel = _objectSpread(_objectSpread({}, deferredModel), tempDeferredModel);
18
+ for (var _len = arguments.length, tempDeferredCommands = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
19
+ tempDeferredCommands[_key - 1] = arguments[_key];
20
+ }
21
+ deferredCommands.push.apply(deferredCommands, tempDeferredCommands);
22
+ };
23
+ return [defer, function () {
24
+ return [deferredModel, deferredCommands];
25
+ }];
26
+ }
27
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjcmVhdGVEZWZlciIsImRlZmVycmVkTW9kZWwiLCJkZWZlcnJlZENvbW1hbmRzIiwiZGVmZXIiLCJ0ZW1wRGVmZXJyZWRNb2RlbCIsIl9vYmplY3RTcHJlYWQiLCJfbGVuIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidGVtcERlZmVycmVkQ29tbWFuZHMiLCJBcnJheSIsIl9rZXkiLCJwdXNoIiwiYXBwbHkiXSwic291cmNlcyI6WyIuLi9zcmMvY3JlYXRlRGVmZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDbWQsIERlZmVyRnVuY3Rpb24sIE1lc3NhZ2UgfSBmcm9tIFwiLi9UeXBlc1wiO1xuXG5mdW5jdGlvbiBjcmVhdGVEZWZlcjxUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4oKTogW1xuXHREZWZlckZ1bmN0aW9uPFRNb2RlbCwgVE1lc3NhZ2U+LFxuXHQoKSA9PiBbUGFydGlhbDxUTW9kZWw+LCAoQ21kPFRNZXNzYWdlPiB8IHVuZGVmaW5lZClbXV0sXG5dIHtcblx0bGV0IGRlZmVycmVkTW9kZWw6IFBhcnRpYWw8VE1vZGVsPiA9IHt9O1xuXHRjb25zdCBkZWZlcnJlZENvbW1hbmRzOiAoQ21kPFRNZXNzYWdlPiB8IHVuZGVmaW5lZClbXSA9IFtdO1xuXG5cdGNvbnN0IGRlZmVyOiBEZWZlckZ1bmN0aW9uPFRNb2RlbCwgVE1lc3NhZ2U+ID0gKHRlbXBEZWZlcnJlZE1vZGVsLCAuLi50ZW1wRGVmZXJyZWRDb21tYW5kcykgPT4ge1xuXHRcdGRlZmVycmVkTW9kZWwgPSB7IC4uLmRlZmVycmVkTW9kZWwsIC4uLnRlbXBEZWZlcnJlZE1vZGVsIH07XG5cdFx0ZGVmZXJyZWRDb21tYW5kcy5wdXNoKC4uLnRlbXBEZWZlcnJlZENvbW1hbmRzKTtcblx0fTtcblxuXHRyZXR1cm4gW2RlZmVyLCAoKSA9PiBbZGVmZXJyZWRNb2RlbCwgZGVmZXJyZWRDb21tYW5kc11dO1xufVxuXG5leHBvcnQgeyBjcmVhdGVEZWZlciB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFFQSxTQUFTQSxXQUFXQSxDQUFBLEVBR2xCO0VBQ0QsSUFBSUMsYUFBOEIsR0FBRyxDQUFDLENBQUM7RUFDdkMsSUFBTUMsZ0JBQStDLEdBQUcsRUFBRTtFQUUxRCxJQUFNQyxLQUFzQyxHQUFHLFNBQXpDQSxLQUFzQ0EsQ0FBSUMsaUJBQWlCLEVBQThCO0lBQzlGSCxhQUFhLEdBQUFJLGFBQUEsQ0FBQUEsYUFBQSxLQUFRSixhQUFhLEdBQUtHLGlCQUFpQixDQUFFO0lBQUMsU0FBQUUsSUFBQSxHQUFBQyxTQUFBLENBQUFDLE1BQUEsRUFEVUMsb0JBQW9CLE9BQUFDLEtBQUEsQ0FBQUosSUFBQSxPQUFBQSxJQUFBLFdBQUFLLElBQUEsTUFBQUEsSUFBQSxHQUFBTCxJQUFBLEVBQUFLLElBQUE7TUFBcEJGLG9CQUFvQixDQUFBRSxJQUFBLFFBQUFKLFNBQUEsQ0FBQUksSUFBQTtJQUFBO0lBRXpGVCxnQkFBZ0IsQ0FBQ1UsSUFBSSxDQUFBQyxLQUFBLENBQXJCWCxnQkFBZ0IsRUFBU08sb0JBQW9CLENBQUM7RUFDL0MsQ0FBQztFQUVELE9BQU8sQ0FBQ04sS0FBSyxFQUFFO0lBQUEsT0FBTSxDQUFDRixhQUFhLEVBQUVDLGdCQUFnQixDQUFDO0VBQUEsRUFBQztBQUN4RCJ9
package/dist/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { ElmComponent } from "./ElmComponent";
2
2
  import { errorHandler, errorMsg, handleError, type ErrorMessage } from "./ErrorHandling";
3
3
  import { init, type ElmOptions, type Logger } from "./Init";
4
- import type { Cmd, Dispatch, InitResult, Message, MsgSource, UpdateMap, UpdateReturnType } from "./Types";
4
+ import type { Cmd, Dispatch, InitResult, Message, MsgSource, UpdateFunctionOptions, UpdateMap, UpdateReturnType } from "./Types";
5
5
  import { cmd } from "./cmd";
6
6
  import { useElmish, type SubscriptionResult, type UseElmishOptions } from "./useElmish";
7
- export type { Cmd, Dispatch, ElmOptions, ErrorMessage, InitResult, Logger, Message, MsgSource, SubscriptionResult, UpdateMap, UpdateReturnType, UseElmishOptions, };
7
+ export type { Cmd, Dispatch, ElmOptions, ErrorMessage, InitResult, Logger, Message, MsgSource, SubscriptionResult, UpdateFunctionOptions, UpdateMap, UpdateReturnType, UseElmishOptions, };
8
8
  export { ElmComponent, cmd, errorHandler, errorMsg, handleError, init, useElmish };
package/dist/index.js CHANGED
@@ -50,4 +50,4 @@ var _ErrorHandling = require("./ErrorHandling");
50
50
  var _Init = require("./Init");
51
51
  var _cmd = require("./cmd");
52
52
  var _useElmish = require("./useElmish");
53
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfRWxtQ29tcG9uZW50IiwicmVxdWlyZSIsIl9FcnJvckhhbmRsaW5nIiwiX0luaXQiLCJfY21kIiwiX3VzZUVsbWlzaCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbG1Db21wb25lbnQgfSBmcm9tIFwiLi9FbG1Db21wb25lbnRcIjtcbmltcG9ydCB7IGVycm9ySGFuZGxlciwgZXJyb3JNc2csIGhhbmRsZUVycm9yLCB0eXBlIEVycm9yTWVzc2FnZSB9IGZyb20gXCIuL0Vycm9ySGFuZGxpbmdcIjtcbmltcG9ydCB7IGluaXQsIHR5cGUgRWxtT3B0aW9ucywgdHlwZSBMb2dnZXIgfSBmcm9tIFwiLi9Jbml0XCI7XG5pbXBvcnQgdHlwZSB7IENtZCwgRGlzcGF0Y2gsIEluaXRSZXN1bHQsIE1lc3NhZ2UsIE1zZ1NvdXJjZSwgVXBkYXRlTWFwLCBVcGRhdGVSZXR1cm5UeXBlIH0gZnJvbSBcIi4vVHlwZXNcIjtcbmltcG9ydCB7IGNtZCB9IGZyb20gXCIuL2NtZFwiO1xuaW1wb3J0IHsgdXNlRWxtaXNoLCB0eXBlIFN1YnNjcmlwdGlvblJlc3VsdCwgdHlwZSBVc2VFbG1pc2hPcHRpb25zIH0gZnJvbSBcIi4vdXNlRWxtaXNoXCI7XG5cbmV4cG9ydCB0eXBlIHtcblx0Q21kLFxuXHREaXNwYXRjaCxcblx0RWxtT3B0aW9ucyxcblx0RXJyb3JNZXNzYWdlLFxuXHRJbml0UmVzdWx0LFxuXHRMb2dnZXIsXG5cdE1lc3NhZ2UsXG5cdE1zZ1NvdXJjZSxcblx0U3Vic2NyaXB0aW9uUmVzdWx0LFxuXHRVcGRhdGVNYXAsXG5cdFVwZGF0ZVJldHVyblR5cGUsXG5cdFVzZUVsbWlzaE9wdGlvbnMsXG59O1xuXG5leHBvcnQgeyBFbG1Db21wb25lbnQsIGNtZCwgZXJyb3JIYW5kbGVyLCBlcnJvck1zZywgaGFuZGxlRXJyb3IsIGluaXQsIHVzZUVsbWlzaCB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLGFBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLGNBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLEtBQUEsR0FBQUYsT0FBQTtBQUVBLElBQUFHLElBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFVBQUEsR0FBQUosT0FBQSJ9
53
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfRWxtQ29tcG9uZW50IiwicmVxdWlyZSIsIl9FcnJvckhhbmRsaW5nIiwiX0luaXQiLCJfY21kIiwiX3VzZUVsbWlzaCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbG1Db21wb25lbnQgfSBmcm9tIFwiLi9FbG1Db21wb25lbnRcIjtcbmltcG9ydCB7IGVycm9ySGFuZGxlciwgZXJyb3JNc2csIGhhbmRsZUVycm9yLCB0eXBlIEVycm9yTWVzc2FnZSB9IGZyb20gXCIuL0Vycm9ySGFuZGxpbmdcIjtcbmltcG9ydCB7IGluaXQsIHR5cGUgRWxtT3B0aW9ucywgdHlwZSBMb2dnZXIgfSBmcm9tIFwiLi9Jbml0XCI7XG5pbXBvcnQgdHlwZSB7IENtZCwgRGlzcGF0Y2gsIEluaXRSZXN1bHQsIE1lc3NhZ2UsIE1zZ1NvdXJjZSwgVXBkYXRlRnVuY3Rpb25PcHRpb25zLCBVcGRhdGVNYXAsIFVwZGF0ZVJldHVyblR5cGUgfSBmcm9tIFwiLi9UeXBlc1wiO1xuaW1wb3J0IHsgY21kIH0gZnJvbSBcIi4vY21kXCI7XG5pbXBvcnQgeyB1c2VFbG1pc2gsIHR5cGUgU3Vic2NyaXB0aW9uUmVzdWx0LCB0eXBlIFVzZUVsbWlzaE9wdGlvbnMgfSBmcm9tIFwiLi91c2VFbG1pc2hcIjtcblxuZXhwb3J0IHR5cGUge1xuXHRDbWQsXG5cdERpc3BhdGNoLFxuXHRFbG1PcHRpb25zLFxuXHRFcnJvck1lc3NhZ2UsXG5cdEluaXRSZXN1bHQsXG5cdExvZ2dlcixcblx0TWVzc2FnZSxcblx0TXNnU291cmNlLFxuXHRTdWJzY3JpcHRpb25SZXN1bHQsXG5cdFVwZGF0ZUZ1bmN0aW9uT3B0aW9ucyxcblx0VXBkYXRlTWFwLFxuXHRVcGRhdGVSZXR1cm5UeXBlLFxuXHRVc2VFbG1pc2hPcHRpb25zLFxufTtcblxuZXhwb3J0IHsgRWxtQ29tcG9uZW50LCBjbWQsIGVycm9ySGFuZGxlciwgZXJyb3JNc2csIGhhbmRsZUVycm9yLCBpbml0LCB1c2VFbG1pc2ggfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxhQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxjQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxLQUFBLEdBQUFGLE9BQUE7QUFFQSxJQUFBRyxJQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxVQUFBLEdBQUFKLE9BQUEifQ==
@@ -1,4 +1,4 @@
1
- import type { Cmd, DeferFunction, Dispatch, InitFunction, Message, UpdateFunction, UpdateMap, UpdateReturnType } from "./Types";
1
+ import type { Cmd, Dispatch, InitFunction, Message, UpdateFunction, UpdateFunctionOptions, UpdateMap, UpdateReturnType } from "./Types";
2
2
  /**
3
3
  * The return type of the `subscription` function.
4
4
  * @template TMessage The type of the messages discriminated union.
@@ -47,7 +47,7 @@ interface UseElmishOptions<TProps, TModel, TMessage extends Message> {
47
47
  * const [model, dispatch] = useElmish({ props, init, update, name: "MyComponent" });
48
48
  */
49
49
  declare function useElmish<TProps, TModel, TMessage extends Message>({ name, props, init, update, subscription, }: UseElmishOptions<TProps, TModel, TMessage>): [TModel, Dispatch<TMessage>];
50
- declare function callUpdate<TProps, TModel, TMessage extends Message>(update: UpdateFunction<TProps, TModel, TMessage> | UpdateMap<TProps, TModel, TMessage>, msg: TMessage, model: TModel, props: TProps, defer: DeferFunction<TModel, TMessage>): UpdateReturnType<TModel, TMessage>;
51
- declare function callUpdateMap<TProps, TModel, TMessage extends Message>(updateMap: UpdateMap<TProps, TModel, TMessage>, msg: TMessage, model: TModel, props: TProps, defer: DeferFunction<TModel, TMessage>): UpdateReturnType<TModel, TMessage>;
50
+ 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<TModel, TMessage>): UpdateReturnType<TModel, TMessage>;
51
+ declare function callUpdateMap<TProps, TModel, TMessage extends Message>(updateMap: UpdateMap<TProps, TModel, TMessage>, msg: TMessage, model: TModel, props: TProps, options: UpdateFunctionOptions<TModel, TMessage>): UpdateReturnType<TModel, TMessage>;
52
52
  export type { Subscription, SubscriptionResult, UseElmishOptions };
53
53
  export { callUpdate, callUpdateMap, useElmish };
package/dist/useElmish.js CHANGED
@@ -10,6 +10,7 @@ exports.useElmish = useElmish;
10
10
  var _react = require("react");
11
11
  var _Common = require("./Common");
12
12
  var _Init = require("./Init");
13
+ var _createDefer3 = require("./createDefer");
13
14
  var _fakeOptions = require("./fakeOptions");
14
15
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
15
16
  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."); }
@@ -128,35 +129,36 @@ function useElmish(_ref) {
128
129
  }
129
130
  var modified = false;
130
131
  (0, _Common.logMessage)(name, nextMsg);
131
- var deferredModel = {};
132
- var deferredCommands = [];
133
- var deferHandler = function deferHandler(tempDeferredModel) {
134
- deferredModel = _objectSpread(_objectSpread({}, deferredModel), tempDeferredModel);
135
- for (var _len = arguments.length, tempDeferredCommands = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
136
- tempDeferredCommands[_key - 1] = arguments[_key];
137
- }
138
- deferredCommands.push.apply(deferredCommands, tempDeferredCommands);
139
- };
140
- var _callUpdate = callUpdate(update, nextMsg, _objectSpread(_objectSpread({}, initializedModel), currentModel), propsRef.current, deferHandler),
132
+ var _createDefer = (0, _createDefer3.createDefer)(),
133
+ _createDefer2 = _slicedToArray(_createDefer, 2),
134
+ defer = _createDefer2[0],
135
+ getDeferred = _createDefer2[1];
136
+ var _callUpdate = callUpdate(update, nextMsg, _objectSpread(_objectSpread({}, initializedModel), currentModel), propsRef.current, {
137
+ defer: defer
138
+ }),
141
139
  _callUpdate2 = _toArray(_callUpdate),
142
140
  newModel = _callUpdate2[0],
143
141
  commands = _callUpdate2.slice(1);
142
+ var _getDeferred = getDeferred(),
143
+ _getDeferred2 = _slicedToArray(_getDeferred, 2),
144
+ deferredModel = _getDeferred2[0],
145
+ deferredCommands = _getDeferred2[1];
144
146
  if ((0, _Common.modelHasChanged)(currentModel, _objectSpread(_objectSpread({}, deferredModel), newModel))) {
145
147
  currentModel = _objectSpread(_objectSpread(_objectSpread({}, currentModel), deferredModel), newModel);
146
148
  modified = true;
147
149
  }
148
- _Common.execCmd.apply(void 0, [dispatch].concat(_toConsumableArray(commands), deferredCommands));
150
+ _Common.execCmd.apply(void 0, [dispatch].concat(_toConsumableArray(commands), _toConsumableArray(deferredCommands)));
149
151
  return modified;
150
152
  }
151
153
  }
152
- function callUpdate(update, msg, model, props, defer) {
154
+ function callUpdate(update, msg, model, props, options) {
153
155
  if (typeof update === "function") {
154
- return update(model, msg, props, defer);
156
+ return update(model, msg, props, options);
155
157
  }
156
- return callUpdateMap(update, msg, model, props, defer);
158
+ return callUpdateMap(update, msg, model, props, options);
157
159
  }
158
- function callUpdateMap(updateMap, msg, model, props, defer) {
160
+ function callUpdateMap(updateMap, msg, model, props, options) {
159
161
  var msgName = msg.name;
160
- return updateMap[msgName](msg, model, props, defer);
162
+ return updateMap[msgName](msg, model, props, options);
161
163
  }
162
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX0NvbW1vbiIsIl9Jbml0IiwiX2Zha2VPcHRpb25zIiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiYXJyIiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIlR5cGVFcnJvciIsIkFycmF5IiwiaXNBcnJheSIsIl9hcnJheUxpa2VUb0FycmF5IiwiX3RvQXJyYXkiLCJfYXJyYXlXaXRoSG9sZXMiLCJfbm9uSXRlcmFibGVSZXN0IiwiaXRlciIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiZnJvbSIsIm93bktleXMiLCJlIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJvYmoiLCJrZXkiLCJ2YWx1ZSIsIl90b1Byb3BlcnR5S2V5IiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJpIiwiX3RvUHJpbWl0aXZlIiwiX3R5cGVvZiIsIlN0cmluZyIsInRvUHJpbWl0aXZlIiwiY2FsbCIsIk51bWJlciIsIl9zbGljZWRUb0FycmF5IiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwibWluTGVuIiwibiIsInByb3RvdHlwZSIsInRvU3RyaW5nIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJ0ZXN0IiwibGVuIiwiYXJyMiIsImwiLCJ1IiwiYSIsImYiLCJuZXh0IiwiZG9uZSIsInVzZUVsbWlzaCIsIl9yZWYiLCJfZmFrZU9wdGlvbnMkZGlzcGF0Y2giLCJwcm9wcyIsImluaXQiLCJ1cGRhdGUiLCJzdWJzY3JpcHRpb24iLCJydW5uaW5nIiwiYnVmZmVyIiwiY3VycmVudE1vZGVsIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwibW9kZWwiLCJzZXRNb2RlbCIsInByb3BzUmVmIiwidXNlUmVmIiwiaXNNb3VudGVkUmVmIiwidXNlRWZmZWN0IiwiY3VycmVudCIsImluaXRpYWxpemVkTW9kZWwiLCJmYWtlT3B0aW9ucyIsImdldEZha2VPcHRpb25zT25jZSIsImRpc3BhdGNoIiwidXNlQ2FsbGJhY2siLCJtc2ciLCJuZXh0TXNnIiwibW9kaWZpZWQiLCJoYW5kbGVNZXNzYWdlIiwic2hpZnQiLCJwcmV2TW9kZWwiLCJfU2VydmljZXMkbG9nZ2VyIiwidXBkYXRlZE1vZGVsIiwiU2VydmljZXMiLCJsb2dnZXIiLCJkZWJ1ZyIsIl9TZXJ2aWNlcyRsb2dnZXIyIiwiX3JlZjIiLCJfcmVmMyIsImluaXRNb2RlbCIsImluaXRDb21tYW5kcyIsImV4ZWNDbWQiLCJjb25jYXQiLCJfc3Vic2NyaXB0aW9uIiwiX3N1YnNjcmlwdGlvbjIiLCJzdWJDbWQiLCJkZXN0cnVjdG9yIiwibG9nTWVzc2FnZSIsImRlZmVycmVkTW9kZWwiLCJkZWZlcnJlZENvbW1hbmRzIiwiZGVmZXJIYW5kbGVyIiwidGVtcERlZmVycmVkTW9kZWwiLCJfbGVuIiwidGVtcERlZmVycmVkQ29tbWFuZHMiLCJfa2V5IiwiX2NhbGxVcGRhdGUiLCJjYWxsVXBkYXRlIiwiX2NhbGxVcGRhdGUyIiwibmV3TW9kZWwiLCJjb21tYW5kcyIsIm1vZGVsSGFzQ2hhbmdlZCIsImRlZmVyIiwiY2FsbFVwZGF0ZU1hcCIsInVwZGF0ZU1hcCIsIm1zZ05hbWUiXSwic291cmNlcyI6WyIuLi9zcmMvdXNlRWxtaXNoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwcyAqL1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgZXhlY0NtZCwgbG9nTWVzc2FnZSwgbW9kZWxIYXNDaGFuZ2VkIH0gZnJvbSBcIi4vQ29tbW9uXCI7XG5pbXBvcnQgeyBTZXJ2aWNlcyB9IGZyb20gXCIuL0luaXRcIjtcbmltcG9ydCB0eXBlIHtcblx0Q21kLFxuXHREZWZlckZ1bmN0aW9uLFxuXHREaXNwYXRjaCxcblx0SW5pdEZ1bmN0aW9uLFxuXHRNZXNzYWdlLFxuXHROdWxsYWJsZSxcblx0VXBkYXRlRnVuY3Rpb24sXG5cdFVwZGF0ZU1hcCxcblx0VXBkYXRlUmV0dXJuVHlwZSxcbn0gZnJvbSBcIi4vVHlwZXNcIjtcbmltcG9ydCB7IGdldEZha2VPcHRpb25zT25jZSB9IGZyb20gXCIuL2Zha2VPcHRpb25zXCI7XG5cbi8qKlxuICogVGhlIHJldHVybiB0eXBlIG9mIHRoZSBgc3Vic2NyaXB0aW9uYCBmdW5jdGlvbi5cbiAqIEB0ZW1wbGF0ZSBUTWVzc2FnZSBUaGUgdHlwZSBvZiB0aGUgbWVzc2FnZXMgZGlzY3JpbWluYXRlZCB1bmlvbi5cbiAqL1xudHlwZSBTdWJzY3JpcHRpb25SZXN1bHQ8VE1lc3NhZ2U+ID0gW0NtZDxUTWVzc2FnZT4sICgoKSA9PiB2b2lkKT9dO1xudHlwZSBTdWJzY3JpcHRpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiA9IChtb2RlbDogVE1vZGVsLCBwcm9wczogVFByb3BzKSA9PiBTdWJzY3JpcHRpb25SZXN1bHQ8VE1lc3NhZ2U+O1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHRoZSBgdXNlRWxtaXNoYCBob29rLlxuICogQGludGVyZmFjZSBVc2VFbG1pc2hPcHRpb25zXG4gKiBAdGVtcGxhdGUgVFByb3BzIFRoZSB0eXBlIG9mIHRoZSBwcm9wcy5cbiAqIEB0ZW1wbGF0ZSBUTW9kZWwgVGhlIHR5cGUgb2YgdGhlIG1vZGVsLlxuICogQHRlbXBsYXRlIFRNZXNzYWdlIFRoZSB0eXBlIG9mIHRoZSBtZXNzYWdlcyBkaXNjcmltaW5hdGVkIHVuaW9uLlxuICovXG5pbnRlcmZhY2UgVXNlRWxtaXNoT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPiB7XG5cdC8qKlxuXHQgKiBUaGUgbmFtZSBvZiB0aGUgY29tcG9uZW50LiBUaGlzIGlzIHVzZWQgZm9yIGxvZ2dpbmcgb25seS5cblx0ICogQHR5cGUge3N0cmluZ31cblx0ICovXG5cdG5hbWU6IHN0cmluZztcblx0LyoqXG5cdCAqIFRoZSBwcm9wcyBwYXNzZWQgdG8gdGhlIGNvbXBvbmVudC5cblx0ICogQHR5cGUge1RQcm9wc31cblx0ICovXG5cdHByb3BzOiBUUHJvcHM7XG5cdC8qKlxuXHQgKiBUaGUgZnVuY3Rpb24gdG8gaW5pdGlhbGl6ZSB0aGUgY29tcG9uZW50cyBtb2RlbC4gVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGNhbGxlZCBvbmNlLlxuXHQgKiBAdHlwZSB7SW5pdEZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT59XG5cdCAqL1xuXHRpbml0OiBJbml0RnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPjtcblx0LyoqXG5cdCAqIFRoZSBgdXBkYXRlYCBmdW5jdGlvbiBvciB1cGRhdGUgbWFwIG9iamVjdC5cblx0ICogQHR5cGUgeyhVcGRhdGVGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+IHwgVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4pfVxuXHQgKi9cblx0dXBkYXRlOiBVcGRhdGVGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+IHwgVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT47XG5cdC8qKlxuXHQgKiBUaGUgb3B0aW9uYWwgYHN1YnNjcmlwdGlvbmAgZnVuY3Rpb24uIFRoaXMgZnVuY3Rpb24gaXMgb25seSBjYWxsZWQgb25jZS5cblx0ICogQHR5cGUgeyhVcGRhdGVGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+IHwgVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4pfVxuXHQgKi9cblx0c3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT47XG59XG5cbi8qKlxuICogSG9vayB0byB1c2UgdGhlIEVsbSBhcmNoaXRlY3R1cmUgcGF0dGVybiBpbiBhIGZ1bmN0aW9uIGNvbXBvbmVudC5cbiAqIEBwYXJhbSB7VXNlRWxtaXNoT3B0aW9uc30gb3B0aW9ucyBUaGUgb3B0aW9ucyBwYXNzZWQgdGhlIHRoZSBob29rLlxuICogQHJldHVybnMgQSB0dXBsZSBjb250YWluaW5nIHRoZSBjdXJyZW50IG1vZGVsIGFuZCB0aGUgZGlzcGF0Y2hlci5cbiAqIEBleGFtcGxlXG4gKiBjb25zdCBbbW9kZWwsIGRpc3BhdGNoXSA9IHVzZUVsbWlzaCh7IHByb3BzLCBpbml0LCB1cGRhdGUsIG5hbWU6IFwiTXlDb21wb25lbnRcIiB9KTtcbiAqL1xuZnVuY3Rpb24gdXNlRWxtaXNoPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+KHtcblx0bmFtZSxcblx0cHJvcHMsXG5cdGluaXQsXG5cdHVwZGF0ZSxcblx0c3Vic2NyaXB0aW9uLFxufTogVXNlRWxtaXNoT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+KTogW1RNb2RlbCwgRGlzcGF0Y2g8VE1lc3NhZ2U+XSB7XG5cdGxldCBydW5uaW5nID0gZmFsc2U7XG5cdGNvbnN0IGJ1ZmZlcjogVE1lc3NhZ2VbXSA9IFtdO1xuXHRsZXQgY3VycmVudE1vZGVsOiBQYXJ0aWFsPFRNb2RlbD4gPSB7fTtcblxuXHRjb25zdCBbbW9kZWwsIHNldE1vZGVsXSA9IHVzZVN0YXRlPE51bGxhYmxlPFRNb2RlbD4+KG51bGwpO1xuXHRjb25zdCBwcm9wc1JlZiA9IHVzZVJlZihwcm9wcyk7XG5cdGNvbnN0IGlzTW91bnRlZFJlZiA9IHVzZVJlZih0cnVlKTtcblxuXHR1c2VFZmZlY3QoKCkgPT4ge1xuXHRcdGlzTW91bnRlZFJlZi5jdXJyZW50ID0gdHJ1ZTtcblxuXHRcdHJldHVybiAoKSA9PiB7XG5cdFx0XHRpc01vdW50ZWRSZWYuY3VycmVudCA9IGZhbHNlO1xuXHRcdH07XG5cdH0sIFtdKTtcblxuXHRsZXQgaW5pdGlhbGl6ZWRNb2RlbCA9IG1vZGVsO1xuXG5cdGlmIChwcm9wc1JlZi5jdXJyZW50ICE9PSBwcm9wcykge1xuXHRcdHByb3BzUmVmLmN1cnJlbnQgPSBwcm9wcztcblx0fVxuXG5cdGNvbnN0IGZha2VPcHRpb25zID0gZ2V0RmFrZU9wdGlvbnNPbmNlKCk7XG5cdGNvbnN0IGRpc3BhdGNoID0gdXNlQ2FsbGJhY2soXG5cdFx0ZmFrZU9wdGlvbnM/LmRpc3BhdGNoID8/XG5cdFx0XHQoKG1zZzogVE1lc3NhZ2UpOiB2b2lkID0+IHtcblx0XHRcdFx0aWYgKHJ1bm5pbmcpIHtcblx0XHRcdFx0XHRidWZmZXIucHVzaChtc2cpO1xuXG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cnVubmluZyA9IHRydWU7XG5cblx0XHRcdFx0bGV0IG5leHRNc2c6IFRNZXNzYWdlIHwgdW5kZWZpbmVkID0gbXNnO1xuXHRcdFx0XHRsZXQgbW9kaWZpZWQgPSBmYWxzZTtcblxuXHRcdFx0XHRkbyB7XG5cdFx0XHRcdFx0aWYgKGhhbmRsZU1lc3NhZ2UobmV4dE1zZykpIHtcblx0XHRcdFx0XHRcdG1vZGlmaWVkID0gdHJ1ZTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRuZXh0TXNnID0gYnVmZmVyLnNoaWZ0KCk7XG5cdFx0XHRcdH0gd2hpbGUgKG5leHRNc2cpO1xuXG5cdFx0XHRcdHJ1bm5pbmcgPSBmYWxzZTtcblxuXHRcdFx0XHRpZiAoaXNNb3VudGVkUmVmLmN1cnJlbnQgJiYgbW9kaWZpZWQpIHtcblx0XHRcdFx0XHRzZXRNb2RlbCgocHJldk1vZGVsKSA9PiB7XG5cdFx0XHRcdFx0XHRjb25zdCB1cGRhdGVkTW9kZWwgPSB7IC4uLihwcmV2TW9kZWwgYXMgVE1vZGVsKSwgLi4uY3VycmVudE1vZGVsIH07XG5cblx0XHRcdFx0XHRcdFNlcnZpY2VzLmxvZ2dlcj8uZGVidWcoXCJVcGRhdGUgbW9kZWwgZm9yXCIsIG5hbWUsIHVwZGF0ZWRNb2RlbCk7XG5cblx0XHRcdFx0XHRcdHJldHVybiB1cGRhdGVkTW9kZWw7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdH0pLFxuXHRcdFtdLFxuXHQpO1xuXG5cdGlmICghaW5pdGlhbGl6ZWRNb2RlbCkge1xuXHRcdGNvbnN0IFtpbml0TW9kZWwsIC4uLmluaXRDb21tYW5kc10gPSBmYWtlT3B0aW9ucz8ubW9kZWwgPyBbZmFrZU9wdGlvbnMubW9kZWwgYXMgVE1vZGVsXSA6IGluaXQocHJvcHMpO1xuXG5cdFx0aW5pdGlhbGl6ZWRNb2RlbCA9IGluaXRNb2RlbDtcblx0XHRzZXRNb2RlbChpbml0aWFsaXplZE1vZGVsKTtcblxuXHRcdFNlcnZpY2VzLmxvZ2dlcj8uZGVidWcoXCJJbml0aWFsIG1vZGVsIGZvclwiLCBuYW1lLCBpbml0aWFsaXplZE1vZGVsKTtcblxuXHRcdGV4ZWNDbWQoZGlzcGF0Y2gsIC4uLmluaXRDb21tYW5kcyk7XG5cdH1cblxuXHQvLyBiaW9tZS1pZ25vcmUgbGludC9jb3JyZWN0bmVzcy91c2VFeGhhdXN0aXZlRGVwZW5kZW5jaWVzOiBXZSB3YW50IHRvIHJ1biB0aGlzIGVmZmVjdCBvbmx5IG9uY2Vcblx0dXNlRWZmZWN0KCgpID0+IHtcblx0XHRpZiAoc3Vic2NyaXB0aW9uKSB7XG5cdFx0XHRjb25zdCBbc3ViQ21kLCBkZXN0cnVjdG9yXSA9IHN1YnNjcmlwdGlvbihpbml0aWFsaXplZE1vZGVsLCBwcm9wcyk7XG5cblx0XHRcdGV4ZWNDbWQoZGlzcGF0Y2gsIHN1YkNtZCk7XG5cblx0XHRcdHJldHVybiBkZXN0cnVjdG9yO1xuXHRcdH1cblx0fSwgW10pO1xuXG5cdHJldHVybiBbaW5pdGlhbGl6ZWRNb2RlbCwgZGlzcGF0Y2hdO1xuXG5cdGZ1bmN0aW9uIGhhbmRsZU1lc3NhZ2UobmV4dE1zZzogVE1lc3NhZ2UpOiBib29sZWFuIHtcblx0XHRpZiAoIWluaXRpYWxpemVkTW9kZWwpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHRsZXQgbW9kaWZpZWQgPSBmYWxzZTtcblxuXHRcdGxvZ01lc3NhZ2UobmFtZSwgbmV4dE1zZyk7XG5cblx0XHRsZXQgZGVmZXJyZWRNb2RlbDogUGFydGlhbDxUTW9kZWw+ID0ge307XG5cdFx0Y29uc3QgZGVmZXJyZWRDb21tYW5kczogKENtZDxUTWVzc2FnZT4gfCB1bmRlZmluZWQpW10gPSBbXTtcblxuXHRcdGNvbnN0IGRlZmVySGFuZGxlcjogRGVmZXJGdW5jdGlvbjxUTW9kZWwsIFRNZXNzYWdlPiA9ICh0ZW1wRGVmZXJyZWRNb2RlbCwgLi4udGVtcERlZmVycmVkQ29tbWFuZHMpID0+IHtcblx0XHRcdGRlZmVycmVkTW9kZWwgPSB7IC4uLmRlZmVycmVkTW9kZWwsIC4uLnRlbXBEZWZlcnJlZE1vZGVsIH07XG5cdFx0XHRkZWZlcnJlZENvbW1hbmRzLnB1c2goLi4udGVtcERlZmVycmVkQ29tbWFuZHMpO1xuXHRcdH07XG5cblx0XHRjb25zdCBbbmV3TW9kZWwsIC4uLmNvbW1hbmRzXSA9IGNhbGxVcGRhdGUoXG5cdFx0XHR1cGRhdGUsXG5cdFx0XHRuZXh0TXNnLFxuXHRcdFx0eyAuLi5pbml0aWFsaXplZE1vZGVsLCAuLi5jdXJyZW50TW9kZWwgfSxcblx0XHRcdHByb3BzUmVmLmN1cnJlbnQsXG5cdFx0XHRkZWZlckhhbmRsZXIsXG5cdFx0KTtcblxuXHRcdGlmIChtb2RlbEhhc0NoYW5nZWQoY3VycmVudE1vZGVsLCB7IC4uLmRlZmVycmVkTW9kZWwsIC4uLm5ld01vZGVsIH0pKSB7XG5cdFx0XHRjdXJyZW50TW9kZWwgPSB7IC4uLmN1cnJlbnRNb2RlbCwgLi4uZGVmZXJyZWRNb2RlbCwgLi4ubmV3TW9kZWwgfTtcblxuXHRcdFx0bW9kaWZpZWQgPSB0cnVlO1xuXHRcdH1cblxuXHRcdGV4ZWNDbWQoZGlzcGF0Y2gsIC4uLmNvbW1hbmRzLCAuLi5kZWZlcnJlZENvbW1hbmRzKTtcblxuXHRcdHJldHVybiBtb2RpZmllZDtcblx0fVxufVxuXG5mdW5jdGlvbiBjYWxsVXBkYXRlPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+KFxuXHR1cGRhdGU6IFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPixcblx0bXNnOiBUTWVzc2FnZSxcblx0bW9kZWw6IFRNb2RlbCxcblx0cHJvcHM6IFRQcm9wcyxcblx0ZGVmZXI6IERlZmVyRnVuY3Rpb248VE1vZGVsLCBUTWVzc2FnZT4sXG4pOiBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgVE1lc3NhZ2U+IHtcblx0aWYgKHR5cGVvZiB1cGRhdGUgPT09IFwiZnVuY3Rpb25cIikge1xuXHRcdHJldHVybiB1cGRhdGUobW9kZWwsIG1zZywgcHJvcHMsIGRlZmVyKTtcblx0fVxuXG5cdHJldHVybiBjYWxsVXBkYXRlTWFwKHVwZGF0ZSwgbXNnLCBtb2RlbCwgcHJvcHMsIGRlZmVyKTtcbn1cblxuZnVuY3Rpb24gY2FsbFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPihcblx0dXBkYXRlTWFwOiBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPixcblx0bXNnOiBUTWVzc2FnZSxcblx0bW9kZWw6IFRNb2RlbCxcblx0cHJvcHM6IFRQcm9wcyxcblx0ZGVmZXI6IERlZmVyRnVuY3Rpb248VE1vZGVsLCBUTWVzc2FnZT4sXG4pOiBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgVE1lc3NhZ2U+IHtcblx0Y29uc3QgbXNnTmFtZTogVE1lc3NhZ2VbXCJuYW1lXCJdID0gbXNnLm5hbWU7XG5cblx0cmV0dXJuIHVwZGF0ZU1hcFttc2dOYW1lXShtc2csIG1vZGVsLCBwcm9wcywgZGVmZXIpO1xufVxuXG5leHBvcnQgdHlwZSB7IFN1YnNjcmlwdGlvbiwgU3Vic2NyaXB0aW9uUmVzdWx0LCBVc2VFbG1pc2hPcHRpb25zIH07XG5cbmV4cG9ydCB7IGNhbGxVcGRhdGUsIGNhbGxVcGRhdGVNYXAsIHVzZUVsbWlzaCB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFDQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxLQUFBLEdBQUFGLE9BQUE7QUFZQSxJQUFBRyxZQUFBLEdBQUFILE9BQUE7QUFBbUQsU0FBQUksbUJBQUFDLEdBQUEsV0FBQUMsa0JBQUEsQ0FBQUQsR0FBQSxLQUFBRSxnQkFBQSxDQUFBRixHQUFBLEtBQUFHLDJCQUFBLENBQUFILEdBQUEsS0FBQUksa0JBQUE7QUFBQSxTQUFBQSxtQkFBQSxjQUFBQyxTQUFBO0FBQUEsU0FBQUosbUJBQUFELEdBQUEsUUFBQU0sS0FBQSxDQUFBQyxPQUFBLENBQUFQLEdBQUEsVUFBQVEsaUJBQUEsQ0FBQVIsR0FBQTtBQUFBLFNBQUFTLFNBQUFULEdBQUEsV0FBQVUsZUFBQSxDQUFBVixHQUFBLEtBQUFFLGdCQUFBLENBQUFGLEdBQUEsS0FBQUcsMkJBQUEsQ0FBQUgsR0FBQSxLQUFBVyxnQkFBQTtBQUFBLFNBQUFULGlCQUFBVSxJQUFBLGVBQUFDLE1BQUEsb0JBQUFELElBQUEsQ0FBQUMsTUFBQSxDQUFBQyxRQUFBLGFBQUFGLElBQUEsK0JBQUFOLEtBQUEsQ0FBQVMsSUFBQSxDQUFBSCxJQUFBO0FBQUEsU0FBQUksUUFBQUMsQ0FBQSxFQUFBQyxDQUFBLFFBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFKLENBQUEsT0FBQUcsTUFBQSxDQUFBRSxxQkFBQSxRQUFBQyxDQUFBLEdBQUFILE1BQUEsQ0FBQUUscUJBQUEsQ0FBQUwsQ0FBQSxHQUFBQyxDQUFBLEtBQUFLLENBQUEsR0FBQUEsQ0FBQSxDQUFBQyxNQUFBLFdBQUFOLENBQUEsV0FBQUUsTUFB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
164
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX0NvbW1vbiIsIl9Jbml0IiwiX2NyZWF0ZURlZmVyMyIsIl9mYWtlT3B0aW9ucyIsIl90b0NvbnN1bWFibGVBcnJheSIsImFyciIsIl9hcnJheVdpdGhvdXRIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXkiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVTcHJlYWQiLCJUeXBlRXJyb3IiLCJBcnJheSIsImlzQXJyYXkiLCJfYXJyYXlMaWtlVG9BcnJheSIsIl90b0FycmF5IiwiX2FycmF5V2l0aEhvbGVzIiwiX25vbkl0ZXJhYmxlUmVzdCIsIml0ZXIiLCJTeW1ib2wiLCJpdGVyYXRvciIsImZyb20iLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5Iiwib2JqIiwia2V5IiwidmFsdWUiLCJfdG9Qcm9wZXJ0eUtleSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiaSIsIl90b1ByaW1pdGl2ZSIsIl90eXBlb2YiLCJTdHJpbmciLCJ0b1ByaW1pdGl2ZSIsImNhbGwiLCJOdW1iZXIiLCJfc2xpY2VkVG9BcnJheSIsIl9pdGVyYWJsZVRvQXJyYXlMaW1pdCIsIm1pbkxlbiIsIm4iLCJwcm90b3R5cGUiLCJ0b1N0cmluZyIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwidGVzdCIsImxlbiIsImFycjIiLCJsIiwidSIsImEiLCJmIiwibmV4dCIsImRvbmUiLCJ1c2VFbG1pc2giLCJfcmVmIiwiX2Zha2VPcHRpb25zJGRpc3BhdGNoIiwicHJvcHMiLCJpbml0IiwidXBkYXRlIiwic3Vic2NyaXB0aW9uIiwicnVubmluZyIsImJ1ZmZlciIsImN1cnJlbnRNb2RlbCIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIm1vZGVsIiwic2V0TW9kZWwiLCJwcm9wc1JlZiIsInVzZVJlZiIsImlzTW91bnRlZFJlZiIsInVzZUVmZmVjdCIsImN1cnJlbnQiLCJpbml0aWFsaXplZE1vZGVsIiwiZmFrZU9wdGlvbnMiLCJnZXRGYWtlT3B0aW9uc09uY2UiLCJkaXNwYXRjaCIsInVzZUNhbGxiYWNrIiwibXNnIiwibmV4dE1zZyIsIm1vZGlmaWVkIiwiaGFuZGxlTWVzc2FnZSIsInNoaWZ0IiwicHJldk1vZGVsIiwiX1NlcnZpY2VzJGxvZ2dlciIsInVwZGF0ZWRNb2RlbCIsIlNlcnZpY2VzIiwibG9nZ2VyIiwiZGVidWciLCJfU2VydmljZXMkbG9nZ2VyMiIsIl9yZWYyIiwiX3JlZjMiLCJpbml0TW9kZWwiLCJpbml0Q29tbWFuZHMiLCJleGVjQ21kIiwiY29uY2F0IiwiX3N1YnNjcmlwdGlvbiIsIl9zdWJzY3JpcHRpb24yIiwic3ViQ21kIiwiZGVzdHJ1Y3RvciIsImxvZ01lc3NhZ2UiLCJfY3JlYXRlRGVmZXIiLCJjcmVhdGVEZWZlciIsIl9jcmVhdGVEZWZlcjIiLCJkZWZlciIsImdldERlZmVycmVkIiwiX2NhbGxVcGRhdGUiLCJjYWxsVXBkYXRlIiwiX2NhbGxVcGRhdGUyIiwibmV3TW9kZWwiLCJjb21tYW5kcyIsIl9nZXREZWZlcnJlZCIsIl9nZXREZWZlcnJlZDIiLCJkZWZlcnJlZE1vZGVsIiwiZGVmZXJyZWRDb21tYW5kcyIsIm1vZGVsSGFzQ2hhbmdlZCIsIm9wdGlvbnMiLCJjYWxsVXBkYXRlTWFwIiwidXBkYXRlTWFwIiwibXNnTmFtZSJdLCJzb3VyY2VzIjpbIi4uL3NyYy91c2VFbG1pc2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzICovXG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBleGVjQ21kLCBsb2dNZXNzYWdlLCBtb2RlbEhhc0NoYW5nZWQgfSBmcm9tIFwiLi9Db21tb25cIjtcbmltcG9ydCB7IFNlcnZpY2VzIH0gZnJvbSBcIi4vSW5pdFwiO1xuaW1wb3J0IHR5cGUge1xuXHRDbWQsXG5cdERpc3BhdGNoLFxuXHRJbml0RnVuY3Rpb24sXG5cdE1lc3NhZ2UsXG5cdE51bGxhYmxlLFxuXHRVcGRhdGVGdW5jdGlvbixcblx0VXBkYXRlRnVuY3Rpb25PcHRpb25zLFxuXHRVcGRhdGVNYXAsXG5cdFVwZGF0ZVJldHVyblR5cGUsXG59IGZyb20gXCIuL1R5cGVzXCI7XG5pbXBvcnQgeyBjcmVhdGVEZWZlciB9IGZyb20gXCIuL2NyZWF0ZURlZmVyXCI7XG5pbXBvcnQgeyBnZXRGYWtlT3B0aW9uc09uY2UgfSBmcm9tIFwiLi9mYWtlT3B0aW9uc1wiO1xuXG4vKipcbiAqIFRoZSByZXR1cm4gdHlwZSBvZiB0aGUgYHN1YnNjcmlwdGlvbmAgZnVuY3Rpb24uXG4gKiBAdGVtcGxhdGUgVE1lc3NhZ2UgVGhlIHR5cGUgb2YgdGhlIG1lc3NhZ2VzIGRpc2NyaW1pbmF0ZWQgdW5pb24uXG4gKi9cbnR5cGUgU3Vic2NyaXB0aW9uUmVzdWx0PFRNZXNzYWdlPiA9IFtDbWQ8VE1lc3NhZ2U+LCAoKCkgPT4gdm9pZCk/XTtcbnR5cGUgU3Vic2NyaXB0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gPSAobW9kZWw6IFRNb2RlbCwgcHJvcHM6IFRQcm9wcykgPT4gU3Vic2NyaXB0aW9uUmVzdWx0PFRNZXNzYWdlPjtcblxuLyoqXG4gKiBPcHRpb25zIGZvciB0aGUgYHVzZUVsbWlzaGAgaG9vay5cbiAqIEBpbnRlcmZhY2UgVXNlRWxtaXNoT3B0aW9uc1xuICogQHRlbXBsYXRlIFRQcm9wcyBUaGUgdHlwZSBvZiB0aGUgcHJvcHMuXG4gKiBAdGVtcGxhdGUgVE1vZGVsIFRoZSB0eXBlIG9mIHRoZSBtb2RlbC5cbiAqIEB0ZW1wbGF0ZSBUTWVzc2FnZSBUaGUgdHlwZSBvZiB0aGUgbWVzc2FnZXMgZGlzY3JpbWluYXRlZCB1bmlvbi5cbiAqL1xuaW50ZXJmYWNlIFVzZUVsbWlzaE9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4ge1xuXHQvKipcblx0ICogVGhlIG5hbWUgb2YgdGhlIGNvbXBvbmVudC4gVGhpcyBpcyB1c2VkIGZvciBsb2dnaW5nIG9ubHkuXG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqL1xuXHRuYW1lOiBzdHJpbmc7XG5cdC8qKlxuXHQgKiBUaGUgcHJvcHMgcGFzc2VkIHRvIHRoZSBjb21wb25lbnQuXG5cdCAqIEB0eXBlIHtUUHJvcHN9XG5cdCAqL1xuXHRwcm9wczogVFByb3BzO1xuXHQvKipcblx0ICogVGhlIGZ1bmN0aW9uIHRvIGluaXRpYWxpemUgdGhlIGNvbXBvbmVudHMgbW9kZWwuIFRoaXMgZnVuY3Rpb24gaXMgb25seSBjYWxsZWQgb25jZS5cblx0ICogQHR5cGUge0luaXRGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+fVxuXHQgKi9cblx0aW5pdDogSW5pdEZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT47XG5cdC8qKlxuXHQgKiBUaGUgYHVwZGF0ZWAgZnVuY3Rpb24gb3IgdXBkYXRlIG1hcCBvYmplY3QuXG5cdCAqIEB0eXBlIHsoVXBkYXRlRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiB8IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+KX1cblx0ICovXG5cdHVwZGF0ZTogVXBkYXRlRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiB8IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+O1xuXHQvKipcblx0ICogVGhlIG9wdGlvbmFsIGBzdWJzY3JpcHRpb25gIGZ1bmN0aW9uLiBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgY2FsbGVkIG9uY2UuXG5cdCAqIEB0eXBlIHsoVXBkYXRlRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiB8IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+KX1cblx0ICovXG5cdHN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+O1xufVxuXG4vKipcbiAqIEhvb2sgdG8gdXNlIHRoZSBFbG0gYXJjaGl0ZWN0dXJlIHBhdHRlcm4gaW4gYSBmdW5jdGlvbiBjb21wb25lbnQuXG4gKiBAcGFyYW0ge1VzZUVsbWlzaE9wdGlvbnN9IG9wdGlvbnMgVGhlIG9wdGlvbnMgcGFzc2VkIHRoZSB0aGUgaG9vay5cbiAqIEByZXR1cm5zIEEgdHVwbGUgY29udGFpbmluZyB0aGUgY3VycmVudCBtb2RlbCBhbmQgdGhlIGRpc3BhdGNoZXIuXG4gKiBAZXhhbXBsZVxuICogY29uc3QgW21vZGVsLCBkaXNwYXRjaF0gPSB1c2VFbG1pc2goeyBwcm9wcywgaW5pdCwgdXBkYXRlLCBuYW1lOiBcIk15Q29tcG9uZW50XCIgfSk7XG4gKi9cbmZ1bmN0aW9uIHVzZUVsbWlzaDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPih7XG5cdG5hbWUsXG5cdHByb3BzLFxuXHRpbml0LFxuXHR1cGRhdGUsXG5cdHN1YnNjcmlwdGlvbixcbn06IFVzZUVsbWlzaE9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPik6IFtUTW9kZWwsIERpc3BhdGNoPFRNZXNzYWdlPl0ge1xuXHRsZXQgcnVubmluZyA9IGZhbHNlO1xuXHRjb25zdCBidWZmZXI6IFRNZXNzYWdlW10gPSBbXTtcblx0bGV0IGN1cnJlbnRNb2RlbDogUGFydGlhbDxUTW9kZWw+ID0ge307XG5cblx0Y29uc3QgW21vZGVsLCBzZXRNb2RlbF0gPSB1c2VTdGF0ZTxOdWxsYWJsZTxUTW9kZWw+PihudWxsKTtcblx0Y29uc3QgcHJvcHNSZWYgPSB1c2VSZWYocHJvcHMpO1xuXHRjb25zdCBpc01vdW50ZWRSZWYgPSB1c2VSZWYodHJ1ZSk7XG5cblx0dXNlRWZmZWN0KCgpID0+IHtcblx0XHRpc01vdW50ZWRSZWYuY3VycmVudCA9IHRydWU7XG5cblx0XHRyZXR1cm4gKCkgPT4ge1xuXHRcdFx0aXNNb3VudGVkUmVmLmN1cnJlbnQgPSBmYWxzZTtcblx0XHR9O1xuXHR9LCBbXSk7XG5cblx0bGV0IGluaXRpYWxpemVkTW9kZWwgPSBtb2RlbDtcblxuXHRpZiAocHJvcHNSZWYuY3VycmVudCAhPT0gcHJvcHMpIHtcblx0XHRwcm9wc1JlZi5jdXJyZW50ID0gcHJvcHM7XG5cdH1cblxuXHRjb25zdCBmYWtlT3B0aW9ucyA9IGdldEZha2VPcHRpb25zT25jZSgpO1xuXHRjb25zdCBkaXNwYXRjaCA9IHVzZUNhbGxiYWNrKFxuXHRcdGZha2VPcHRpb25zPy5kaXNwYXRjaCA/P1xuXHRcdFx0KChtc2c6IFRNZXNzYWdlKTogdm9pZCA9PiB7XG5cdFx0XHRcdGlmIChydW5uaW5nKSB7XG5cdFx0XHRcdFx0YnVmZmVyLnB1c2gobXNnKTtcblxuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHJ1bm5pbmcgPSB0cnVlO1xuXG5cdFx0XHRcdGxldCBuZXh0TXNnOiBUTWVzc2FnZSB8IHVuZGVmaW5lZCA9IG1zZztcblx0XHRcdFx0bGV0IG1vZGlmaWVkID0gZmFsc2U7XG5cblx0XHRcdFx0ZG8ge1xuXHRcdFx0XHRcdGlmIChoYW5kbGVNZXNzYWdlKG5leHRNc2cpKSB7XG5cdFx0XHRcdFx0XHRtb2RpZmllZCA9IHRydWU7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0bmV4dE1zZyA9IGJ1ZmZlci5zaGlmdCgpO1xuXHRcdFx0XHR9IHdoaWxlIChuZXh0TXNnKTtcblxuXHRcdFx0XHRydW5uaW5nID0gZmFsc2U7XG5cblx0XHRcdFx0aWYgKGlzTW91bnRlZFJlZi5jdXJyZW50ICYmIG1vZGlmaWVkKSB7XG5cdFx0XHRcdFx0c2V0TW9kZWwoKHByZXZNb2RlbCkgPT4ge1xuXHRcdFx0XHRcdFx0Y29uc3QgdXBkYXRlZE1vZGVsID0geyAuLi4ocHJldk1vZGVsIGFzIFRNb2RlbCksIC4uLmN1cnJlbnRNb2RlbCB9O1xuXG5cdFx0XHRcdFx0XHRTZXJ2aWNlcy5sb2dnZXI/LmRlYnVnKFwiVXBkYXRlIG1vZGVsIGZvclwiLCBuYW1lLCB1cGRhdGVkTW9kZWwpO1xuXG5cdFx0XHRcdFx0XHRyZXR1cm4gdXBkYXRlZE1vZGVsO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9KSxcblx0XHRbXSxcblx0KTtcblxuXHRpZiAoIWluaXRpYWxpemVkTW9kZWwpIHtcblx0XHRjb25zdCBbaW5pdE1vZGVsLCAuLi5pbml0Q29tbWFuZHNdID0gZmFrZU9wdGlvbnM/Lm1vZGVsID8gW2Zha2VPcHRpb25zLm1vZGVsIGFzIFRNb2RlbF0gOiBpbml0KHByb3BzKTtcblxuXHRcdGluaXRpYWxpemVkTW9kZWwgPSBpbml0TW9kZWw7XG5cdFx0c2V0TW9kZWwoaW5pdGlhbGl6ZWRNb2RlbCk7XG5cblx0XHRTZXJ2aWNlcy5sb2dnZXI/LmRlYnVnKFwiSW5pdGlhbCBtb2RlbCBmb3JcIiwgbmFtZSwgaW5pdGlhbGl6ZWRNb2RlbCk7XG5cblx0XHRleGVjQ21kKGRpc3BhdGNoLCAuLi5pbml0Q29tbWFuZHMpO1xuXHR9XG5cblx0Ly8gYmlvbWUtaWdub3JlIGxpbnQvY29ycmVjdG5lc3MvdXNlRXhoYXVzdGl2ZURlcGVuZGVuY2llczogV2Ugd2FudCB0byBydW4gdGhpcyBlZmZlY3Qgb25seSBvbmNlXG5cdHVzZUVmZmVjdCgoKSA9PiB7XG5cdFx0aWYgKHN1YnNjcmlwdGlvbikge1xuXHRcdFx0Y29uc3QgW3N1YkNtZCwgZGVzdHJ1Y3Rvcl0gPSBzdWJzY3JpcHRpb24oaW5pdGlhbGl6ZWRNb2RlbCwgcHJvcHMpO1xuXG5cdFx0XHRleGVjQ21kKGRpc3BhdGNoLCBzdWJDbWQpO1xuXG5cdFx0XHRyZXR1cm4gZGVzdHJ1Y3Rvcjtcblx0XHR9XG5cdH0sIFtdKTtcblxuXHRyZXR1cm4gW2luaXRpYWxpemVkTW9kZWwsIGRpc3BhdGNoXTtcblxuXHRmdW5jdGlvbiBoYW5kbGVNZXNzYWdlKG5leHRNc2c6IFRNZXNzYWdlKTogYm9vbGVhbiB7XG5cdFx0aWYgKCFpbml0aWFsaXplZE1vZGVsKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0bGV0IG1vZGlmaWVkID0gZmFsc2U7XG5cblx0XHRsb2dNZXNzYWdlKG5hbWUsIG5leHRNc2cpO1xuXG5cdFx0Y29uc3QgW2RlZmVyLCBnZXREZWZlcnJlZF0gPSBjcmVhdGVEZWZlcjxUTW9kZWwsIFRNZXNzYWdlPigpO1xuXG5cdFx0Y29uc3QgW25ld01vZGVsLCAuLi5jb21tYW5kc10gPSBjYWxsVXBkYXRlKHVwZGF0ZSwgbmV4dE1zZywgeyAuLi5pbml0aWFsaXplZE1vZGVsLCAuLi5jdXJyZW50TW9kZWwgfSwgcHJvcHNSZWYuY3VycmVudCwge1xuXHRcdFx0ZGVmZXIsXG5cdFx0fSk7XG5cblx0XHRjb25zdCBbZGVmZXJyZWRNb2RlbCwgZGVmZXJyZWRDb21tYW5kc10gPSBnZXREZWZlcnJlZCgpO1xuXG5cdFx0aWYgKG1vZGVsSGFzQ2hhbmdlZChjdXJyZW50TW9kZWwsIHsgLi4uZGVmZXJyZWRNb2RlbCwgLi4ubmV3TW9kZWwgfSkpIHtcblx0XHRcdGN1cnJlbnRNb2RlbCA9IHsgLi4uY3VycmVudE1vZGVsLCAuLi5kZWZlcnJlZE1vZGVsLCAuLi5uZXdNb2RlbCB9O1xuXG5cdFx0XHRtb2RpZmllZCA9IHRydWU7XG5cdFx0fVxuXG5cdFx0ZXhlY0NtZChkaXNwYXRjaCwgLi4uY29tbWFuZHMsIC4uLmRlZmVycmVkQ29tbWFuZHMpO1xuXG5cdFx0cmV0dXJuIG1vZGlmaWVkO1xuXHR9XG59XG5cbmZ1bmN0aW9uIGNhbGxVcGRhdGU8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4oXG5cdHVwZGF0ZTogVXBkYXRlRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiB8IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuXHRtc2c6IFRNZXNzYWdlLFxuXHRtb2RlbDogVE1vZGVsLFxuXHRwcm9wczogVFByb3BzLFxuXHRvcHRpb25zOiBVcGRhdGVGdW5jdGlvbk9wdGlvbnM8VE1vZGVsLCBUTWVzc2FnZT4sXG4pOiBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgVE1lc3NhZ2U+IHtcblx0aWYgKHR5cGVvZiB1cGRhdGUgPT09IFwiZnVuY3Rpb25cIikge1xuXHRcdHJldHVybiB1cGRhdGUobW9kZWwsIG1zZywgcHJvcHMsIG9wdGlvbnMpO1xuXHR9XG5cblx0cmV0dXJuIGNhbGxVcGRhdGVNYXAodXBkYXRlLCBtc2csIG1vZGVsLCBwcm9wcywgb3B0aW9ucyk7XG59XG5cbmZ1bmN0aW9uIGNhbGxVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4oXG5cdHVwZGF0ZU1hcDogVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG5cdG1zZzogVE1lc3NhZ2UsXG5cdG1vZGVsOiBUTW9kZWwsXG5cdHByb3BzOiBUUHJvcHMsXG5cdG9wdGlvbnM6IFVwZGF0ZUZ1bmN0aW9uT3B0aW9uczxUTW9kZWwsIFRNZXNzYWdlPixcbik6IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTWVzc2FnZT4ge1xuXHRjb25zdCBtc2dOYW1lOiBUTWVzc2FnZVtcIm5hbWVcIl0gPSBtc2cubmFtZTtcblxuXHRyZXR1cm4gdXBkYXRlTWFwW21zZ05hbWVdKG1zZywgbW9kZWwsIHByb3BzLCBvcHRpb25zKTtcbn1cblxuZXhwb3J0IHR5cGUgeyBTdWJzY3JpcHRpb24sIFN1YnNjcmlwdGlvblJlc3VsdCwgVXNlRWxtaXNoT3B0aW9ucyB9O1xuXG5leHBvcnQgeyBjYWxsVXBkYXRlLCBjYWxsVXBkYXRlTWFwLCB1c2VFbG1pc2gg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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-elmish",
3
- "version": "7.2.0",
3
+ "version": "7.3.1",
4
4
  "description": "Elmish for React using Typescript",
5
5
  "author": "atheck",
6
6
  "license": "MIT",