react-elmish 7.0.1 → 7.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/README.md +28 -0
  2. package/dist/Common.d.ts +1 -1
  3. package/dist/Common.js +21 -9
  4. package/dist/ElmComponent.d.ts +2 -2
  5. package/dist/ElmComponent.js +30 -30
  6. package/dist/ErrorHandling.d.ts +1 -1
  7. package/dist/ErrorHandling.js +2 -2
  8. package/dist/Init.d.ts +2 -2
  9. package/dist/Init.js +1 -1
  10. package/dist/Testing/createModelAndProps.d.ts +3 -0
  11. package/dist/Testing/createModelAndProps.js +26 -0
  12. package/dist/Testing/createUpdateArgsFactory.d.ts +3 -2
  13. package/dist/Testing/createUpdateArgsFactory.js +5 -5
  14. package/dist/Testing/execCmd.d.ts +3 -1
  15. package/dist/Testing/execCmd.js +38 -3
  16. package/dist/Testing/getCreateUpdateArgs.d.ts +14 -2
  17. package/dist/Testing/getCreateUpdateArgs.js +26 -17
  18. package/dist/Testing/getUpdateFn.d.ts +2 -2
  19. package/dist/Testing/getUpdateFn.js +10 -9
  20. package/dist/Testing/index.d.ts +6 -5
  21. package/dist/Testing/index.js +14 -1
  22. package/dist/Testing/initAndExecCmd.d.ts +1 -1
  23. package/dist/Testing/initAndExecCmd.js +3 -3
  24. package/dist/Testing/renderWithModel.d.ts +2 -2
  25. package/dist/Testing/renderWithModel.js +5 -5
  26. package/dist/Testing/runSubscription.d.ts +5 -0
  27. package/dist/Testing/runSubscription.js +22 -0
  28. package/dist/Types.d.ts +3 -3
  29. package/dist/Types.js +1 -1
  30. package/dist/cmd.d.ts +49 -49
  31. package/dist/cmd.js +49 -49
  32. package/dist/{Testing/fakeOptions.d.ts → fakeOptions.d.ts} +3 -3
  33. package/dist/fakeOptions.js +31 -0
  34. package/dist/index.d.ts +6 -6
  35. package/dist/index.js +2 -2
  36. package/dist/useElmish.d.ts +3 -3
  37. package/dist/useElmish.js +46 -39
  38. package/package.json +17 -16
  39. package/dist/Testing/fakeOptions.js +0 -31
package/README.md CHANGED
@@ -28,6 +28,7 @@ This library brings the elmish pattern to react.
28
28
  - [Testing the init function](#testing-the-init-function)
29
29
  - [Testing the update handler](#testing-the-update-handler)
30
30
  - [Combine update and execCmd](#combine-update-and-execcmd)
31
+ - [Testing subscriptions](#testing-subscriptions)
31
32
  - [UI Tests](#ui-tests)
32
33
  - [Migrations](#migrations)
33
34
  - [From v1.x to v2.x](#from-v1x-to-v2x)
@@ -950,6 +951,33 @@ it("returns the correct cmd", async () => {
950
951
  ...
951
952
  ```
952
953
 
954
+ ### Testing subscriptions
955
+
956
+ It is almost the same as testing the `update` function. You can use the `getCreateModelAndProps` function to create a factory for the model and the props. Then use `runSubscription` to execute the subscriptions:
957
+
958
+ ```ts
959
+ import { getCreateModelAndProps, runSubscription } from "react-elmish/dist/Testing";
960
+ import { init, Msg, subscription } from "./MyComponent";
961
+
962
+ const createModelAndProps = getCreateModelAndProps(init, () => ({ /* initial props */ }));
963
+
964
+ it("dispatches the eventTriggered message", async () => {
965
+ // arrange
966
+ const mockDispatch = jest.fn();
967
+ const args = createModelAndProps({ /* optionally override model here */ }, { /* optionally override props here */ });
968
+ const dispose = runSubscription(subscription, mockDispatch, ...args);
969
+
970
+ // act
971
+ // Trigger events
972
+
973
+ // assert
974
+ expect(mockDispatch).toHaveBeenCalledWith(Msg.eventTriggered());
975
+
976
+ // Dispose the subscriptions if required
977
+ dispose?.();
978
+ });
979
+ ```
980
+
953
981
  ### UI Tests
954
982
 
955
983
  To test UI components with a fake model you can use `renderWithModel` from the Testing namespace. The first parameter is a function to render your component (e.g. with **@testing-library/react**). The second parameter is the fake model. The third parameter is an optional options object, where you can also pass a fake `dispatch` function.
package/dist/Common.d.ts CHANGED
@@ -2,4 +2,4 @@ import { Cmd, Dispatch, Message } from "./Types";
2
2
  declare function logMessage<TMessage extends Message>(name: string, msg: TMessage): void;
3
3
  declare function modelHasChanged<TModel>(currentModel: TModel, model: Partial<TModel>): boolean;
4
4
  declare function execCmd<TMessage>(dispatch: Dispatch<TMessage>, ...commands: (Cmd<TMessage> | undefined)[]): void;
5
- export { logMessage, modelHasChanged, execCmd, };
5
+ export { execCmd, logMessage, modelHasChanged };
package/dist/Common.js CHANGED
@@ -7,11 +7,14 @@ exports.execCmd = execCmd;
7
7
  exports.logMessage = logMessage;
8
8
  exports.modelHasChanged = modelHasChanged;
9
9
  var _Init = require("./Init");
10
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
11
+ 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); }
12
+ 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; }
10
13
  function logMessage(name, msg) {
11
14
  var _Services$logger, _Services$logger2, _Services$dispatchMid;
12
- (_Services$logger = _Init.Services.logger) === null || _Services$logger === void 0 ? void 0 : _Services$logger.info("Message from", name, msg.name);
13
- (_Services$logger2 = _Init.Services.logger) === null || _Services$logger2 === void 0 ? void 0 : _Services$logger2.debug("Message from", name, msg);
14
- (_Services$dispatchMid = _Init.Services.dispatchMiddleware) === null || _Services$dispatchMid === void 0 ? void 0 : _Services$dispatchMid.call(_Init.Services, msg);
15
+ (_Services$logger = _Init.Services.logger) === null || _Services$logger === void 0 || _Services$logger.info("Message from", name, msg.name);
16
+ (_Services$logger2 = _Init.Services.logger) === null || _Services$logger2 === void 0 || _Services$logger2.debug("Message from", name, msg);
17
+ (_Services$dispatchMid = _Init.Services.dispatchMiddleware) === null || _Services$dispatchMid === void 0 || _Services$dispatchMid.call(_Init.Services, msg);
15
18
  }
16
19
  function modelHasChanged(currentModel, model) {
17
20
  return !Object.is(model, currentModel) && Object.getOwnPropertyNames(model).length > 0;
@@ -20,10 +23,19 @@ function execCmd(dispatch) {
20
23
  for (var _len = arguments.length, commands = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
21
24
  commands[_key - 1] = arguments[_key];
22
25
  }
23
- commands.forEach(function (cmd) {
24
- return cmd === null || cmd === void 0 ? void 0 : cmd.forEach(function (call) {
25
- return call(dispatch);
26
- });
27
- });
26
+ var _iterator = _createForOfIteratorHelper(commands.flat()),
27
+ _step;
28
+ try {
29
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
30
+ var call = _step.value;
31
+ if (call) {
32
+ call(dispatch);
33
+ }
34
+ }
35
+ } catch (err) {
36
+ _iterator.e(err);
37
+ } finally {
38
+ _iterator.f();
39
+ }
28
40
  }
29
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfSW5pdCIsInJlcXVpcmUiLCJsb2dNZXNzYWdlIiwibmFtZSIsIm1zZyIsIl9TZXJ2aWNlcyRsb2dnZXIiLCJfU2VydmljZXMkbG9nZ2VyMiIsIl9TZXJ2aWNlcyRkaXNwYXRjaE1pZCIsIlNlcnZpY2VzIiwibG9nZ2VyIiwiaW5mbyIsImRlYnVnIiwiZGlzcGF0Y2hNaWRkbGV3YXJlIiwiY2FsbCIsIm1vZGVsSGFzQ2hhbmdlZCIsImN1cnJlbnRNb2RlbCIsIm1vZGVsIiwiT2JqZWN0IiwiaXMiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwibGVuZ3RoIiwiZXhlY0NtZCIsImRpc3BhdGNoIiwiX2xlbiIsImFyZ3VtZW50cyIsImNvbW1hbmRzIiwiQXJyYXkiLCJfa2V5IiwiZm9yRWFjaCIsImNtZCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9Db21tb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VydmljZXMgfSBmcm9tIFwiLi9Jbml0XCI7XG5pbXBvcnQgeyBDbWQsIERpc3BhdGNoLCBNZXNzYWdlIH0gZnJvbSBcIi4vVHlwZXNcIjtcblxuZnVuY3Rpb24gbG9nTWVzc2FnZTxUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+IChuYW1lOiBzdHJpbmcsIG1zZzogVE1lc3NhZ2UpOiB2b2lkIHtcbiAgICBTZXJ2aWNlcy5sb2dnZXI/LmluZm8oXCJNZXNzYWdlIGZyb21cIiwgbmFtZSwgbXNnLm5hbWUpO1xuICAgIFNlcnZpY2VzLmxvZ2dlcj8uZGVidWcoXCJNZXNzYWdlIGZyb21cIiwgbmFtZSwgbXNnKTtcblxuICAgIFNlcnZpY2VzLmRpc3BhdGNoTWlkZGxld2FyZT8uKG1zZyk7XG59XG5cbmZ1bmN0aW9uIG1vZGVsSGFzQ2hhbmdlZDxUTW9kZWw+IChjdXJyZW50TW9kZWw6IFRNb2RlbCwgbW9kZWw6IFBhcnRpYWw8VE1vZGVsPik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhT2JqZWN0LmlzKG1vZGVsLCBjdXJyZW50TW9kZWwpICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG1vZGVsKS5sZW5ndGggPiAwO1xufVxuXG5mdW5jdGlvbiBleGVjQ21kPFRNZXNzYWdlPiAoZGlzcGF0Y2g6IERpc3BhdGNoPFRNZXNzYWdlPiwgLi4uY29tbWFuZHM6IChDbWQ8VE1lc3NhZ2U+IHwgdW5kZWZpbmVkKSBbXSk6IHZvaWQge1xuICAgIGNvbW1hbmRzLmZvckVhY2goY21kID0+IGNtZD8uZm9yRWFjaChjYWxsID0+IGNhbGwoZGlzcGF0Y2gpKSk7XG59XG5cbmV4cG9ydCB7XG4gICAgbG9nTWVzc2FnZSxcbiAgICBtb2RlbEhhc0NoYW5nZWQsXG4gICAgZXhlY0NtZCxcbn07Il0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLEtBQUEsR0FBQUMsT0FBQTtBQUdBLFNBQVNDLFVBQVVBLENBQTRCQyxJQUFZLEVBQUVDLEdBQWEsRUFBUTtFQUFBLElBQUFDLGdCQUFBLEVBQUFDLGlCQUFBLEVBQUFDLHFCQUFBO0VBQzlFLENBQUFGLGdCQUFBLEdBQUFHLGNBQVEsQ0FBQ0MsTUFBTSxjQUFBSixnQkFBQSx1QkFBZkEsZ0JBQUEsQ0FBaUJLLElBQUksQ0FBQyxjQUFjLEVBQUVQLElBQUksRUFBRUMsR0FBRyxDQUFDRCxJQUFJLENBQUM7RUFDckQsQ0FBQUcsaUJBQUEsR0FBQUUsY0FBUSxDQUFDQyxNQUFNLGNBQUFILGlCQUFBLHVCQUFmQSxpQkFBQSxDQUFpQkssS0FBSyxDQUFDLGNBQWMsRUFBRVIsSUFBSSxFQUFFQyxHQUFHLENBQUM7RUFFakQsQ0FBQUcscUJBQUEsR0FBQUMsY0FBUSxDQUFDSSxrQkFBa0IsY0FBQUwscUJBQUEsdUJBQTNCQSxxQkFBQSxDQUFBTSxJQUFBLENBQUFMLGNBQVEsRUFBc0JKLEdBQUcsQ0FBQztBQUN0QztBQUVBLFNBQVNVLGVBQWVBLENBQVVDLFlBQW9CLEVBQUVDLEtBQXNCLEVBQVc7RUFDckYsT0FBTyxDQUFDQyxNQUFNLENBQUNDLEVBQUUsQ0FBQ0YsS0FBSyxFQUFFRCxZQUFZLENBQUMsSUFBSUUsTUFBTSxDQUFDRSxtQkFBbUIsQ0FBQ0gsS0FBSyxDQUFDLENBQUNJLE1BQU0sR0FBRyxDQUFDO0FBQzFGO0FBRUEsU0FBU0MsT0FBT0EsQ0FBWUMsUUFBNEIsRUFBcUQ7RUFBQSxTQUFBQyxJQUFBLEdBQUFDLFNBQUEsQ0FBQUosTUFBQSxFQUFoREssUUFBUSxPQUFBQyxLQUFBLENBQUFILElBQUEsT0FBQUEsSUFBQSxXQUFBSSxJQUFBLE1BQUFBLElBQUEsR0FBQUosSUFBQSxFQUFBSSxJQUFBO0lBQVJGLFFBQVEsQ0FBQUUsSUFBQSxRQUFBSCxTQUFBLENBQUFHLElBQUE7RUFBQTtFQUNqRUYsUUFBUSxDQUFDRyxPQUFPLENBQUMsVUFBQUMsR0FBRztJQUFBLE9BQUlBLEdBQUcsYUFBSEEsR0FBRyx1QkFBSEEsR0FBRyxDQUFFRCxPQUFPLENBQUMsVUFBQWYsSUFBSTtNQUFBLE9BQUlBLElBQUksQ0FBQ1MsUUFBUSxDQUFDO0lBQUEsRUFBQztFQUFBLEVBQUM7QUFDakUifQ==
41
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfSW5pdCIsInJlcXVpcmUiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsIm8iLCJhbGxvd0FycmF5TGlrZSIsIml0IiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJBcnJheSIsImlzQXJyYXkiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJsZW5ndGgiLCJpIiwiRiIsInMiLCJuIiwiZG9uZSIsInZhbHVlIiwiZSIsIl9lIiwiZiIsIlR5cGVFcnJvciIsIm5vcm1hbENvbXBsZXRpb24iLCJkaWRFcnIiLCJlcnIiLCJjYWxsIiwic3RlcCIsIm5leHQiLCJfZTIiLCJtaW5MZW4iLCJfYXJyYXlMaWtlVG9BcnJheSIsIk9iamVjdCIsInByb3RvdHlwZSIsInRvU3RyaW5nIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJmcm9tIiwidGVzdCIsImFyciIsImxlbiIsImFycjIiLCJsb2dNZXNzYWdlIiwibXNnIiwiX1NlcnZpY2VzJGxvZ2dlciIsIl9TZXJ2aWNlcyRsb2dnZXIyIiwiX1NlcnZpY2VzJGRpc3BhdGNoTWlkIiwiU2VydmljZXMiLCJsb2dnZXIiLCJpbmZvIiwiZGVidWciLCJkaXNwYXRjaE1pZGRsZXdhcmUiLCJtb2RlbEhhc0NoYW5nZWQiLCJjdXJyZW50TW9kZWwiLCJtb2RlbCIsImlzIiwiZ2V0T3duUHJvcGVydHlOYW1lcyIsImV4ZWNDbWQiLCJkaXNwYXRjaCIsIl9sZW4iLCJhcmd1bWVudHMiLCJjb21tYW5kcyIsIl9rZXkiLCJfaXRlcmF0b3IiLCJmbGF0IiwiX3N0ZXAiXSwic291cmNlcyI6WyIuLi9zcmMvQ29tbW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlcnZpY2VzIH0gZnJvbSBcIi4vSW5pdFwiO1xuaW1wb3J0IHsgQ21kLCBEaXNwYXRjaCwgTWVzc2FnZSB9IGZyb20gXCIuL1R5cGVzXCI7XG5cbmZ1bmN0aW9uIGxvZ01lc3NhZ2U8VE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPihuYW1lOiBzdHJpbmcsIG1zZzogVE1lc3NhZ2UpOiB2b2lkIHtcblx0U2VydmljZXMubG9nZ2VyPy5pbmZvKFwiTWVzc2FnZSBmcm9tXCIsIG5hbWUsIG1zZy5uYW1lKTtcblx0U2VydmljZXMubG9nZ2VyPy5kZWJ1ZyhcIk1lc3NhZ2UgZnJvbVwiLCBuYW1lLCBtc2cpO1xuXG5cdFNlcnZpY2VzLmRpc3BhdGNoTWlkZGxld2FyZT8uKG1zZyk7XG59XG5cbmZ1bmN0aW9uIG1vZGVsSGFzQ2hhbmdlZDxUTW9kZWw+KGN1cnJlbnRNb2RlbDogVE1vZGVsLCBtb2RlbDogUGFydGlhbDxUTW9kZWw+KTogYm9vbGVhbiB7XG5cdHJldHVybiAhT2JqZWN0LmlzKG1vZGVsLCBjdXJyZW50TW9kZWwpICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG1vZGVsKS5sZW5ndGggPiAwO1xufVxuXG5mdW5jdGlvbiBleGVjQ21kPFRNZXNzYWdlPihkaXNwYXRjaDogRGlzcGF0Y2g8VE1lc3NhZ2U+LCAuLi5jb21tYW5kczogKENtZDxUTWVzc2FnZT4gfCB1bmRlZmluZWQpW10pOiB2b2lkIHtcblx0Zm9yIChjb25zdCBjYWxsIG9mIGNvbW1hbmRzLmZsYXQoKSkge1xuXHRcdGlmIChjYWxsKSB7XG5cdFx0XHRjYWxsKGRpc3BhdGNoKTtcblx0XHR9XG5cdH1cbn1cblxuZXhwb3J0IHsgZXhlY0NtZCwgbG9nTWVzc2FnZSwgbW9kZWxIYXNDaGFuZ2VkIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsSUFBQUEsS0FBQSxHQUFBQyxPQUFBO0FBQWtDLFNBQUFDLDJCQUFBQyxDQUFBLEVBQUFDLGNBQUEsUUFBQUMsRUFBQSxVQUFBQyxNQUFBLG9CQUFBSCxDQUFBLENBQUFHLE1BQUEsQ0FBQUMsUUFBQSxLQUFBSixDQUFBLHFCQUFBRSxFQUFBLFFBQUFHLEtBQUEsQ0FBQUMsT0FBQSxDQUFBTixDQUFBLE1BQUFFLEVBQUEsR0FBQUssMkJBQUEsQ0FBQVAsQ0FBQSxNQUFBQyxjQUFBLElBQUFELENBQUEsV0FBQUEsQ0FBQSxDQUFBUSxNQUFBLHFCQUFBTixFQUFBLEVBQUFGLENBQUEsR0FBQUUsRUFBQSxNQUFBTyxDQUFBLFVBQUFDLENBQUEsWUFBQUEsRUFBQSxlQUFBQyxDQUFBLEVBQUFELENBQUEsRUFBQUUsQ0FBQSxXQUFBQSxFQUFBLFFBQUFILENBQUEsSUFBQVQsQ0FBQSxDQUFBUSxNQUFBLFdBQUFLLElBQUEsbUJBQUFBLElBQUEsU0FBQUMsS0FBQSxFQUFBZCxDQUFBLENBQUFTLENBQUEsVUFBQU0sQ0FBQSxXQUFBQSxFQUFBQyxFQUFBLFVBQUFBLEVBQUEsS0FBQUMsQ0FBQSxFQUFBUCxDQUFBLGdCQUFBUSxTQUFBLGlKQUFBQyxnQkFBQSxTQUFBQyxNQUFBLFVBQUFDLEdBQUEsV0FBQVYsQ0FBQSxXQUFBQSxFQUFBLElBQUFULEVBQUEsR0FBQUEsRUFBQSxDQUFBb0IsSUFBQSxDQUFBdEIsQ0FBQSxNQUFBWSxDQUFBLFdBQUFBLEVBQUEsUUFBQVcsSUFBQSxHQUFBckIsRUFBQSxDQUFBc0IsSUFBQSxJQUFBTCxnQkFBQSxHQUFBSSxJQUFBLENBQUFWLElBQUEsU0FBQVUsSUFBQSxLQUFBUixDQUFBLFdBQUFBLEVBQUFVLEdBQUEsSUFBQUwsTUFBQSxTQUFBQyxHQUFBLEdBQUFJLEdBQUEsS0FBQVIsQ0FBQSxXQUFBQSxFQUFBLGVBQUFFLGdCQUFBLElBQUFqQixFQUFBLG9CQUFBQSxFQUFBLDhCQUFBa0IsTUFBQSxRQUFBQyxHQUFBO0FBQUEsU0FBQWQsNEJBQUFQLENBQUEsRUFBQTBCLE1BQUEsU0FBQTFCLENBQUEscUJBQUFBLENBQUEsc0JBQUEyQixpQkFBQSxDQUFBM0IsQ0FBQSxFQUFBMEIsTUFBQSxPQUFBZCxDQUFBLEdBQUFnQixNQUFBLENBQUFDLFNBQUEsQ0FBQUMsUUFBQSxDQUFBUixJQUFBLENBQUF0QixDQUFBLEVBQUErQixLQUFBLGFBQUFuQixDQUFBLGlCQUFBWixDQUFBLENBQUFnQyxXQUFBLEVBQUFwQixDQUFBLEdBQUFaLENBQUEsQ0FBQWdDLFdBQUEsQ0FBQUMsSUFBQSxNQUFBckIsQ0FBQSxjQUFBQSxDQUFBLG1CQUFBUCxLQUFBLENBQUE2QixJQUFBLENBQUFsQyxDQUFBLE9BQUFZLENBQUEsK0RBQUF1QixJQUFBLENBQUF2QixDQUFBLFVBQUFlLGlCQUFBLENBQUEzQixDQUFBLEVBQUEwQixNQUFBO0FBQUEsU0FBQUMsa0JBQUFTLEdBQUEsRUFBQUMsR0FBQSxRQUFBQSxHQUFBLFlBQUFBLEdBQUEsR0FBQUQsR0FBQSxDQUFBNUIsTUFBQSxFQUFBNkIsR0FBQSxHQUFBRCxHQUFBLENBQUE1QixNQUFBLFdBQUFDLENBQUEsTUFBQTZCLElBQUEsT0FBQWpDLEtBQUEsQ0FBQWdDLEdBQUEsR0FBQTVCLENBQUEsR0FBQTRCLEdBQUEsRUFBQTVCLENBQUEsSUFBQTZCLElBQUEsQ0FBQTdCLENBQUEsSUFBQTJCLEdBQUEsQ0FBQTNCLENBQUEsVUFBQTZCLElBQUE7QUFHbEMsU0FBU0MsVUFBVUEsQ0FBMkJOLElBQVksRUFBRU8sR0FBYSxFQUFRO0VBQUEsSUFBQUMsZ0JBQUEsRUFBQUMsaUJBQUEsRUFBQUMscUJBQUE7RUFDaEYsQ0FBQUYsZ0JBQUEsR0FBQUcsY0FBUSxDQUFDQyxNQUFNLGNBQUFKLGdCQUFBLGVBQWZBLGdCQUFBLENBQWlCSyxJQUFJLENBQUMsY0FBYyxFQUFFYixJQUFJLEVBQUVPLEdBQUcsQ0FBQ1AsSUFBSSxDQUFDO0VBQ3JELENBQUFTLGlCQUFBLEdBQUFFLGNBQVEsQ0FBQ0MsTUFBTSxjQUFBSCxpQkFBQSxlQUFmQSxpQkFBQSxDQUFpQkssS0FBSyxDQUFDLGNBQWMsRUFBRWQsSUFBSSxFQUFFTyxHQUFHLENBQUM7RUFFakQsQ0FBQUcscUJBQUEsR0FBQUMsY0FBUSxDQUFDSSxrQkFBa0IsY0FBQUwscUJBQUEsZUFBM0JBLHFCQUFBLENBQUFyQixJQUFBLENBQUFzQixjQUFRLEVBQXNCSixHQUFHLENBQUM7QUFDbkM7QUFFQSxTQUFTUyxlQUFlQSxDQUFTQyxZQUFvQixFQUFFQyxLQUFzQixFQUFXO0VBQ3ZGLE9BQU8sQ0FBQ3ZCLE1BQU0sQ0FBQ3dCLEVBQUUsQ0FBQ0QsS0FBSyxFQUFFRCxZQUFZLENBQUMsSUFBSXRCLE1BQU0sQ0FBQ3lCLG1CQUFtQixDQUFDRixLQUFLLENBQUMsQ0FBQzNDLE1BQU0sR0FBRyxDQUFDO0FBQ3ZGO0FBRUEsU0FBUzhDLE9BQU9BLENBQVdDLFFBQTRCLEVBQW9EO0VBQUEsU0FBQUMsSUFBQSxHQUFBQyxTQUFBLENBQUFqRCxNQUFBLEVBQS9Da0QsUUFBUSxPQUFBckQsS0FBQSxDQUFBbUQsSUFBQSxPQUFBQSxJQUFBLFdBQUFHLElBQUEsTUFBQUEsSUFBQSxHQUFBSCxJQUFBLEVBQUFHLElBQUE7SUFBUkQsUUFBUSxDQUFBQyxJQUFBLFFBQUFGLFNBQUEsQ0FBQUUsSUFBQTtFQUFBO0VBQUEsSUFBQUMsU0FBQSxHQUFBN0QsMEJBQUEsQ0FDaEQyRCxRQUFRLENBQUNHLElBQUksQ0FBQyxDQUFDO0lBQUFDLEtBQUE7RUFBQTtJQUFsQyxLQUFBRixTQUFBLENBQUFqRCxDQUFBLE1BQUFtRCxLQUFBLEdBQUFGLFNBQUEsQ0FBQWhELENBQUEsSUFBQUMsSUFBQSxHQUFvQztNQUFBLElBQXpCUyxJQUFJLEdBQUF3QyxLQUFBLENBQUFoRCxLQUFBO01BQ2QsSUFBSVEsSUFBSSxFQUFFO1FBQ1RBLElBQUksQ0FBQ2lDLFFBQVEsQ0FBQztNQUNmO0lBQ0Q7RUFBQyxTQUFBbEMsR0FBQTtJQUFBdUMsU0FBQSxDQUFBN0MsQ0FBQSxDQUFBTSxHQUFBO0VBQUE7SUFBQXVDLFNBQUEsQ0FBQTNDLENBQUE7RUFBQTtBQUNGIn0=
@@ -14,7 +14,7 @@ declare abstract class ElmComponent<TModel, TMessage extends Message, TProps> ex
14
14
  private initCommands;
15
15
  private readonly componentName;
16
16
  private readonly buffer;
17
- private reentered;
17
+ private running;
18
18
  private mounted;
19
19
  private currentModel;
20
20
  /**
@@ -61,4 +61,4 @@ declare abstract class ElmComponent<TModel, TMessage extends Message, TProps> ex
61
61
  */
62
62
  abstract update: UpdateFunction<TProps, TModel, TMessage>;
63
63
  }
64
- export { ElmComponent, };
64
+ export { ElmComponent };
@@ -7,14 +7,14 @@ 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 _fakeOptions = require("./Testing/fakeOptions");
10
+ var _fakeOptions = require("./fakeOptions");
11
11
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
12
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
12
+ 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
13
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
14
14
  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
15
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
16
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
17
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
16
+ 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; }
17
+ 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; }
18
18
  function _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest(); }
19
19
  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."); }
20
20
  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); }
@@ -62,7 +62,7 @@ var ElmComponent = /*#__PURE__*/function (_React$Component) {
62
62
  _defineProperty(_assertThisInitialized(_this), "initCommands", void 0);
63
63
  _defineProperty(_assertThisInitialized(_this), "componentName", void 0);
64
64
  _defineProperty(_assertThisInitialized(_this), "buffer", []);
65
- _defineProperty(_assertThisInitialized(_this), "reentered", false);
65
+ _defineProperty(_assertThisInitialized(_this), "running", false);
66
66
  _defineProperty(_assertThisInitialized(_this), "mounted", false);
67
67
  _defineProperty(_assertThisInitialized(_this), "currentModel", void 0);
68
68
  /**
@@ -71,31 +71,31 @@ var ElmComponent = /*#__PURE__*/function (_React$Component) {
71
71
  * @memberof ElmComponent
72
72
  */
73
73
  _defineProperty(_assertThisInitialized(_this), "dispatch", function (msg) {
74
- if (_this.reentered) {
74
+ if (_this.running) {
75
75
  _this.buffer.push(msg);
76
- } else {
77
- _this.reentered = true;
78
- var nextMsg = msg;
79
- var modified = false;
80
- while (nextMsg) {
81
- (0, _Common.logMessage)(_this.componentName, nextMsg);
82
- var _this$update = _this.update(_this.currentModel, nextMsg, _this.props),
83
- _this$update2 = _toArray(_this$update),
84
- model = _this$update2[0],
85
- commands = _this$update2.slice(1);
86
- if ((0, _Common.modelHasChanged)(_this.currentModel, model)) {
87
- _this.currentModel = _objectSpread(_objectSpread({}, _this.currentModel), model);
88
- modified = true;
89
- }
90
- _Common.execCmd.apply(void 0, [_this.dispatch].concat(_toConsumableArray(commands)));
91
- nextMsg = _this.buffer.shift();
92
- }
93
- _this.reentered = false;
94
- if (_this.mounted && modified) {
95
- var _Services$logger;
96
- (_Services$logger = _Init.Services.logger) === null || _Services$logger === void 0 ? void 0 : _Services$logger.debug("Update model for", _this.componentName, _this.currentModel);
97
- _this.forceUpdate();
76
+ return;
77
+ }
78
+ _this.running = true;
79
+ var nextMsg = msg;
80
+ var modified = false;
81
+ do {
82
+ (0, _Common.logMessage)(_this.componentName, nextMsg);
83
+ var _this$update = _this.update(_this.currentModel, nextMsg, _this.props),
84
+ _this$update2 = _toArray(_this$update),
85
+ model = _this$update2[0],
86
+ commands = _this$update2.slice(1);
87
+ if ((0, _Common.modelHasChanged)(_this.currentModel, model)) {
88
+ _this.currentModel = _objectSpread(_objectSpread({}, _this.currentModel), model);
89
+ modified = true;
98
90
  }
91
+ _Common.execCmd.apply(void 0, [_this.dispatch].concat(_toConsumableArray(commands)));
92
+ nextMsg = _this.buffer.shift();
93
+ } while (nextMsg);
94
+ _this.running = false;
95
+ if (_this.mounted && modified) {
96
+ var _Services$logger;
97
+ (_Services$logger = _Init.Services.logger) === null || _Services$logger === void 0 || _Services$logger.debug("Update model for", _this.componentName, _this.currentModel);
98
+ _this.forceUpdate();
99
99
  }
100
100
  });
101
101
  /**
@@ -116,7 +116,7 @@ var ElmComponent = /*#__PURE__*/function (_React$Component) {
116
116
  _ref2 = _toArray(_ref),
117
117
  _model = _ref2[0],
118
118
  _commands = _ref2.slice(1);
119
- (_Services$logger2 = _Init.Services.logger) === null || _Services$logger2 === void 0 ? void 0 : _Services$logger2.debug("Initial model for", name, _model);
119
+ (_Services$logger2 = _Init.Services.logger) === null || _Services$logger2 === void 0 || _Services$logger2.debug("Initial model for", name, _model);
120
120
  _this.componentName = name;
121
121
  _this.currentModel = _model;
122
122
  _this.initCommands = _commands;
@@ -164,4 +164,4 @@ var ElmComponent = /*#__PURE__*/function (_React$Component) {
164
164
  return ElmComponent;
165
165
  }(_react["default"].Component);
166
166
  exports.ElmComponent = ElmComponent;
167
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9Db21tb24iLCJfSW5pdCIsIl9mYWtlT3B0aW9ucyIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJjb25zdHJ1Y3RvciIsInByb3RvdHlwZSIsIl90b0NvbnN1bWFibGVBcnJheSIsImFyciIsIl9hcnJheVdpdGhvdXRIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXkiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVTcHJlYWQiLCJUeXBlRXJyb3IiLCJBcnJheSIsImlzQXJyYXkiLCJfYXJyYXlMaWtlVG9BcnJheSIsIm93bktleXMiLCJvYmplY3QiLCJlbnVtZXJhYmxlT25seSIsImtleXMiLCJPYmplY3QiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJzeW1ib2xzIiwiZmlsdGVyIiwic3ltIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJ0YXJnZXQiLCJpIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwic291cmNlIiwiZm9yRWFjaCIsImtleSIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfdG9BcnJheSIsIl9hcnJheVdpdGhIb2xlcyIsIl9ub25JdGVyYWJsZVJlc3QiLCJvIiwibWluTGVuIiwibiIsInRvU3RyaW5nIiwiY2FsbCIsInNsaWNlIiwibmFtZSIsImZyb20iLCJ0ZXN0IiwibGVuIiwiYXJyMiIsIml0ZXIiLCJfY2xhc3NDYWxsQ2hlY2siLCJpbnN0YW5jZSIsIkNvbnN0cnVjdG9yIiwiX2RlZmluZVByb3BlcnRpZXMiLCJwcm9wcyIsImRlc2NyaXB0b3IiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIl90b1Byb3BlcnR5S2V5IiwiX2NyZWF0ZUNsYXNzIiwicHJvdG9Qcm9wcyIsInN0YXRpY1Byb3BzIiwiX2luaGVyaXRzIiwic3ViQ2xhc3MiLCJzdXBlckNsYXNzIiwiY3JlYXRlIiwidmFsdWUiLCJfc2V0UHJvdG90eXBlT2YiLCJwIiwic2V0UHJvdG90eXBlT2YiLCJiaW5kIiwiX19wcm90b19fIiwiX2NyZWF0ZVN1cGVyIiwiRGVyaXZlZCIsImhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiX2NyZWF0ZVN1cGVySW50ZXJuYWwiLCJTdXBlciIsIl9nZXRQcm90b3R5cGVPZiIsInJlc3VsdCIsIk5ld1RhcmdldCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybiIsInNlbGYiLCJfYXNzZXJ0VGhpc0luaXRpYWxpemVkIiwiUmVmZXJlbmNlRXJyb3IiLCJzaGFtIiwiUHJveHkiLCJCb29sZWFuIiwidmFsdWVPZiIsImUiLCJnZXRQcm90b3R5cGVPZiIsImFyZyIsIl90b1ByaW1pdGl2ZSIsIlN0cmluZyIsImlucHV0IiwiaGludCIsInByaW0iLCJ0b1ByaW1pdGl2ZSIsInVuZGVmaW5lZCIsInJlcyIsIk51bWJlciIsIkVsbUNvbXBvbmVudCIsIl9SZWFjdCRDb21wb25lbnQiLCJfc3VwZXIiLCJpbml0IiwiX1NlcnZpY2VzJGxvZ2dlcjIiLCJfdGhpcyIsIm1zZyIsInJlZW50ZXJlZCIsImJ1ZmZlciIsIm5leHRNc2ciLCJtb2RpZmllZCIsImxvZ01lc3NhZ2UiLCJjb21wb25lbnROYW1lIiwiX3RoaXMkdXBkYXRlIiwidXBkYXRlIiwiY3VycmVudE1vZGVsIiwiX3RoaXMkdXBkYXRlMiIsIm1vZGVsIiwiY29tbWFuZHMiLCJtb2RlbEhhc0NoYW5nZWQiLCJleGVjQ21kIiwiZGlzcGF0Y2giLCJjb25jYXQiLCJzaGlmdCIsIm1vdW50ZWQiLCJfU2VydmljZXMkbG9nZ2VyIiwiU2VydmljZXMiLCJsb2dnZXIiLCJkZWJ1ZyIsImZvcmNlVXBkYXRlIiwiZmFrZU9wdGlvbnMiLCJnZXRGYWtlT3B0aW9uc09uY2UiLCJfcmVmIiwiX3JlZjIiLCJpbml0Q29tbWFuZHMiLCJjb21wb25lbnREaWRNb3VudCIsImNvbXBvbmVudFdpbGxVbm1vdW50IiwiZ2V0IiwiUmVhY3QiLCJDb21wb25lbnQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vc3JjL0VsbUNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBleGVjQ21kLCBsb2dNZXNzYWdlLCBtb2RlbEhhc0NoYW5nZWQgfSBmcm9tIFwiLi9Db21tb25cIjtcbmltcG9ydCB7IFNlcnZpY2VzIH0gZnJvbSBcIi4vSW5pdFwiO1xuaW1wb3J0IHsgZ2V0RmFrZU9wdGlvbnNPbmNlIH0gZnJvbSBcIi4vVGVzdGluZy9mYWtlT3B0aW9uc1wiO1xuaW1wb3J0IHsgQ21kLCBJbml0RnVuY3Rpb24sIE1lc3NhZ2UsIE51bGxhYmxlLCBVcGRhdGVGdW5jdGlvbiB9IGZyb20gXCIuL1R5cGVzXCI7XG5cbi8qKlxuICogQWJzdHJhY3QgY2xhc3MgZm9yIGEgcmVhY3QgY2xhc3MgY29tcG9uZW50IHVzaW5nIHRoZSBFbG1pc2ggcGF0dGVybi5cbiAqIEBleHBvcnRcbiAqIEBhYnN0cmFjdFxuICogQGNsYXNzIEVsbUNvbXBvbmVudFxuICogQGV4dGVuZHMge0NvbXBvbmVudDxUUHJvcHMsIFRNb2RlbD59XG4gKiBAdGVtcGxhdGUgVE1vZGVsIFRoZSB0eXBlIG9mIHRoZSBtb2RlbC5cbiAqIEB0ZW1wbGF0ZSBUTWVzc2FnZSBUaGUgdHlwZSBvZiB0aGUgbWVzc2FnZXMuXG4gKiBAdGVtcGxhdGUgVFByb3BzIFRoZSB0eXBlIG9mIHRoZSBwcm9wcy5cbiAqL1xuYWJzdHJhY3QgY2xhc3MgRWxtQ29tcG9uZW50PFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlLCBUUHJvcHM+IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PFRQcm9wcz4ge1xuICAgIHByaXZhdGUgaW5pdENvbW1hbmRzOiBOdWxsYWJsZTwoQ21kPFRNZXNzYWdlPiB8IHVuZGVmaW5lZCkgW10+IHwgdW5kZWZpbmVkO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY29tcG9uZW50TmFtZTogc3RyaW5nO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgYnVmZmVyOiBUTWVzc2FnZSBbXSA9IFtdO1xuICAgIHByaXZhdGUgcmVlbnRlcmVkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBtb3VudGVkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBjdXJyZW50TW9kZWw6IFRNb2RlbDtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgRWxtQ29tcG9uZW50LlxuICAgICAqIEBwYXJhbSB7VFByb3BzfSBwcm9wcyBUaGUgcHJvcHMgZm9yIHRoZSBjb21wb25lbnQuXG4gICAgICogQHBhcmFtIHsoKSA9PiBUTW9kZWx9IGluaXQgVGhlIGluaXRpYWxpemVyIGZ1bmN0aW9uLlxuICAgICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBjb21wb25lbnQuXG4gICAgICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvciAocHJvcHM6IFRQcm9wcywgaW5pdDogSW5pdEZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sIG5hbWU6IHN0cmluZykge1xuICAgICAgICBzdXBlcihwcm9wcyk7XG5cbiAgICAgICAgY29uc3QgZmFrZU9wdGlvbnMgPSBnZXRGYWtlT3B0aW9uc09uY2UoKTtcblxuICAgICAgICBpZiAoZmFrZU9wdGlvbnM/LmRpc3BhdGNoKSB7XG4gICAgICAgICAgICB0aGlzLmRpc3BhdGNoID0gZmFrZU9wdGlvbnMuZGlzcGF0Y2g7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBbbW9kZWwsIC4uLmNvbW1hbmRzXSA9IGZha2VPcHRpb25zPy5tb2RlbCA/IFtmYWtlT3B0aW9ucy5tb2RlbCBhcyBUTW9kZWxdIDogaW5pdCh0aGlzLnByb3BzKTtcblxuICAgICAgICBTZXJ2aWNlcy5sb2dnZXI/LmRlYnVnKFwiSW5pdGlhbCBtb2RlbCBmb3JcIiwgbmFtZSwgbW9kZWwpO1xuXG4gICAgICAgIHRoaXMuY29tcG9uZW50TmFtZSA9IG5hbWU7XG4gICAgICAgIHRoaXMuY3VycmVudE1vZGVsID0gbW9kZWw7XG4gICAgICAgIHRoaXMuaW5pdENvbW1hbmRzID0gY29tbWFuZHM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSXMgY2FsbGVkIHdoZW4gdGhlIGNvbXBvbmVudCBpcyBsb2FkZWQuXG4gICAgICogV2hlbiBpbXBsZW1lbnRpbmcgdGhpcyBtZXRob2QsIHRoZSBiYXNlIGltcGxlbWVudGF0aW9uIGhhcyB0byBiZSBjYWxsZWQuXG4gICAgICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBjb21wb25lbnREaWRNb3VudCAoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubW91bnRlZCA9IHRydWU7XG5cbiAgICAgICAgaWYgKHRoaXMuaW5pdENvbW1hbmRzKSB7XG4gICAgICAgICAgICBleGVjQ21kKHRoaXMuZGlzcGF0Y2gsIC4uLnRoaXMuaW5pdENvbW1hbmRzKTtcbiAgICAgICAgICAgIHRoaXMuaW5pdENvbW1hbmRzID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIElzIGNhbGxlZCBiZWZvcmUgdW5sb2FkaW5nIHRoZSBjb21wb25lbnQuXG4gICAgICogV2hlbiBpbXBsZW1lbnRpbmcgdGhpcyBtZXRob2QsIHRoZSBiYXNlIGltcGxlbWVudGF0aW9uIGhhcyB0byBiZSBjYWxsZWQuXG4gICAgICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBjb21wb25lbnRXaWxsVW5tb3VudCAoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubW91bnRlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGN1cnJlbnQgbW9kZWwuXG4gICAgICogQHJlYWRvbmx5XG4gICAgICogQHR5cGUge1JlYWRvbmx5PFRNb2RlbD59XG4gICAgICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgbW9kZWwgKCk6IFJlYWRvbmx5PFRNb2RlbD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50TW9kZWw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGlzcGF0Y2hlcyBhIG1lc3NhZ2UuXG4gICAgICogQHBhcmFtIHtUTWVzc2FnZX0gbXNnIFRoZSBtZXNzYWdlIHRvIGRpc3BhdGNoLlxuICAgICAqIEBtZW1iZXJvZiBFbG1Db21wb25lbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgZGlzcGF0Y2ggPSAobXNnOiBUTWVzc2FnZSk6IHZvaWQgPT4ge1xuICAgICAgICBpZiAodGhpcy5yZWVudGVyZWQpIHtcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyLnB1c2gobXNnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucmVlbnRlcmVkID0gdHJ1ZTtcblxuICAgICAgICAgICAgbGV0IG5leHRNc2c6IFRNZXNzYWdlIHwgdW5kZWZpbmVkID0gbXNnO1xuICAgICAgICAgICAgbGV0IG1vZGlmaWVkID0gZmFsc2U7XG5cbiAgICAgICAgICAgIHdoaWxlIChuZXh0TXNnKSB7XG4gICAgICAgICAgICAgICAgbG9nTWVzc2FnZSh0aGlzLmNvbXBvbmVudE5hbWUsIG5leHRNc2cpO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgW21vZGVsLCAuLi5jb21tYW5kc10gPSB0aGlzLnVwZGF0ZSh0aGlzLmN1cnJlbnRNb2RlbCwgbmV4dE1zZywgdGhpcy5wcm9wcyk7XG5cbiAgICAgICAgICAgICAgICBpZiAobW9kZWxIYXNDaGFuZ2VkKHRoaXMuY3VycmVudE1vZGVsLCBtb2RlbCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50TW9kZWwgPSB7IC4uLnRoaXMuY3VycmVudE1vZGVsLCAuLi5tb2RlbCB9O1xuICAgICAgICAgICAgICAgICAgICBtb2RpZmllZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgZXhlY0NtZCh0aGlzLmRpc3BhdGNoLCAuLi5jb21tYW5kcyk7XG5cbiAgICAgICAgICAgICAgICBuZXh0TXNnID0gdGhpcy5idWZmZXIuc2hpZnQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMucmVlbnRlcmVkID0gZmFsc2U7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLm1vdW50ZWQgJiYgbW9kaWZpZWQpIHtcbiAgICAgICAgICAgICAgICBTZXJ2aWNlcy5sb2dnZXI/LmRlYnVnKFwiVXBkYXRlIG1vZGVsIGZvclwiLCB0aGlzLmNvbXBvbmVudE5hbWUsIHRoaXMuY3VycmVudE1vZGVsKTtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcmNlVXBkYXRlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogRnVuY3Rpb24gdG8gbW9kaWZ5IHRoZSBtb2RlbCBiYXNlZCBvbiBhIG1lc3NhZ2UuXG4gICAgICogQHBhcmFtIHtUTW9kZWx9IG1vZGVsIFRoZSBjdXJyZW50IG1vZGVsLlxuICAgICAqIEBwYXJhbSB7VE1lc3NhZ2V9IG1zZyBUaGUgbWVzc2FnZSB0byBwcm9jZXNzLlxuICAgICAqIEBwYXJhbSB7VFByb3BzfSBwcm9wcyBUaGUgcHJvcHMgb2YgdGhlIGNvbXBvbmVudC5cbiAgICAgKiBAcmV0dXJucyBUaGUgbmV3IG1vZGVsIChjYW4gYWxzbyBiZSBhbiBlbXB0eSBvYmplY3Qge30pIGFuZCBhbiBvcHRpb25hbCBuZXcgbWVzc2FnZSB0byBkaXNwYXRjaC5cbiAgICAgKiBAYWJzdHJhY3RcbiAgICAgKiBAbWVtYmVyb2YgRWxtQ29tcG9uZW50XG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IHVwZGF0ZTogVXBkYXRlRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPjtcbn1cblxuZXhwb3J0IHtcbiAgICBFbG1Db21wb25lbnQsXG59OyJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsS0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsWUFBQSxHQUFBSCxPQUFBO0FBQTJELFNBQUFELHVCQUFBSyxHQUFBLFdBQUFBLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLEdBQUFELEdBQUEsZ0JBQUFBLEdBQUE7QUFBQSxTQUFBRSxRQUFBRixHQUFBLHNDQUFBRSxPQUFBLHdCQUFBQyxNQUFBLHVCQUFBQSxNQUFBLENBQUFDLFFBQUEsYUFBQUosR0FBQSxrQkFBQUEsR0FBQSxnQkFBQUEsR0FBQSxXQUFBQSxHQUFBLHlCQUFBRyxNQUFBLElBQUFILEdBQUEsQ0FBQUssV0FBQSxLQUFBRixNQUFBLElBQUFILEdBQUEsS0FBQUcsTUFBQSxDQUFBRyxTQUFBLHFCQUFBTixHQUFBLEtBQUFFLE9BQUEsQ0FBQUYsR0FBQTtBQUFBLFNBQUFPLG1CQUFBQyxHQUFBLFdBQUFDLGtCQUFBLENBQUFELEdBQUEsS0FBQUUsZ0JBQUEsQ0FBQUYsR0FBQSxLQUFBRywyQkFBQSxDQUFBSCxHQUFBLEtBQUFJLGtCQUFBO0FBQUEsU0FBQUEsbUJBQUEsY0FBQUMsU0FBQTtBQUFBLFNBQUFKLG1CQUFBRCxHQUFBLFFBQUFNLEtBQUEsQ0FBQUMsT0FBQSxDQUFBUCxHQUFBLFVBQUFRLGlCQUFBLENBQUFSLEdBQUE7QUFBQSxTQUFBUyxRQUFBQyxNQUFBLEVBQUFDLGNBQUEsUUFBQUMsSUFBQSxHQUFBQyxNQUFBLENBQUFELElBQUEsQ0FBQUYsTUFBQSxPQUFBRyxNQUFBLENBQUFDLHFCQUFBLFFBQUFDLE9BQUEsR0FBQUYsTUFBQSxDQUFBQyxxQkFB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
167
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9Db21tb24iLCJfSW5pdCIsIl9mYWtlT3B0aW9ucyIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwibyIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiY29uc3RydWN0b3IiLCJwcm90b3R5cGUiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJhcnIiLCJfYXJyYXlXaXRob3V0SG9sZXMiLCJfaXRlcmFibGVUb0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlU3ByZWFkIiwiVHlwZUVycm9yIiwiQXJyYXkiLCJpc0FycmF5IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfdG9BcnJheSIsIl9hcnJheVdpdGhIb2xlcyIsIl9ub25JdGVyYWJsZVJlc3QiLCJtaW5MZW4iLCJuIiwidG9TdHJpbmciLCJjYWxsIiwic2xpY2UiLCJuYW1lIiwiZnJvbSIsInRlc3QiLCJsZW4iLCJpIiwiYXJyMiIsIml0ZXIiLCJfY2xhc3NDYWxsQ2hlY2siLCJpbnN0YW5jZSIsIkNvbnN0cnVjdG9yIiwiX2RlZmluZVByb3BlcnRpZXMiLCJ0YXJnZXQiLCJwcm9wcyIsImRlc2NyaXB0b3IiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIl90b1Byb3BlcnR5S2V5Iiwia2V5IiwiX2NyZWF0ZUNsYXNzIiwicHJvdG9Qcm9wcyIsInN0YXRpY1Byb3BzIiwiX2luaGVyaXRzIiwic3ViQ2xhc3MiLCJzdXBlckNsYXNzIiwiY3JlYXRlIiwidmFsdWUiLCJfc2V0UHJvdG90eXBlT2YiLCJwIiwic2V0UHJvdG90eXBlT2YiLCJiaW5kIiwiX19wcm90b19fIiwiX2NyZWF0ZVN1cGVyIiwiRGVyaXZlZCIsImhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiX2NyZWF0ZVN1cGVySW50ZXJuYWwiLCJTdXBlciIsIl9nZXRQcm90b3R5cGVPZiIsInJlc3VsdCIsIk5ld1RhcmdldCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybiIsInNlbGYiLCJfYXNzZXJ0VGhpc0luaXRpYWxpemVkIiwiUmVmZXJlbmNlRXJyb3IiLCJzaGFtIiwiUHJveHkiLCJCb29sZWFuIiwidmFsdWVPZiIsImdldFByb3RvdHlwZU9mIiwiYXJnIiwiX3RvUHJpbWl0aXZlIiwiU3RyaW5nIiwiaW5wdXQiLCJoaW50IiwicHJpbSIsInRvUHJpbWl0aXZlIiwidW5kZWZpbmVkIiwicmVzIiwiTnVtYmVyIiwiRWxtQ29tcG9uZW50IiwiX1JlYWN0JENvbXBvbmVudCIsIl9zdXBlciIsImluaXQiLCJfU2VydmljZXMkbG9nZ2VyMiIsIl90aGlzIiwibXNnIiwicnVubmluZyIsImJ1ZmZlciIsIm5leHRNc2ciLCJtb2RpZmllZCIsImxvZ01lc3NhZ2UiLCJjb21wb25lbnROYW1lIiwiX3RoaXMkdXBkYXRlIiwidXBkYXRlIiwiY3VycmVudE1vZGVsIiwiX3RoaXMkdXBkYXRlMiIsIm1vZGVsIiwiY29tbWFuZHMiLCJtb2RlbEhhc0NoYW5nZWQiLCJleGVjQ21kIiwiZGlzcGF0Y2giLCJjb25jYXQiLCJzaGlmdCIsIm1vdW50ZWQiLCJfU2VydmljZXMkbG9nZ2VyIiwiU2VydmljZXMiLCJsb2dnZXIiLCJkZWJ1ZyIsImZvcmNlVXBkYXRlIiwiZmFrZU9wdGlvbnMiLCJnZXRGYWtlT3B0aW9uc09uY2UiLCJfcmVmIiwiX3JlZjIiLCJpbml0Q29tbWFuZHMiLCJjb21wb25lbnREaWRNb3VudCIsImNvbXBvbmVudFdpbGxVbm1vdW50IiwiZ2V0IiwiUmVhY3QiLCJDb21wb25lbnQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vc3JjL0VsbUNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBleGVjQ21kLCBsb2dNZXNzYWdlLCBtb2RlbEhhc0NoYW5nZWQgfSBmcm9tIFwiLi9Db21tb25cIjtcbmltcG9ydCB7IFNlcnZpY2VzIH0gZnJvbSBcIi4vSW5pdFwiO1xuaW1wb3J0IHsgQ21kLCBJbml0RnVuY3Rpb24sIE1lc3NhZ2UsIE51bGxhYmxlLCBVcGRhdGVGdW5jdGlvbiB9IGZyb20gXCIuL1R5cGVzXCI7XG5pbXBvcnQgeyBnZXRGYWtlT3B0aW9uc09uY2UgfSBmcm9tIFwiLi9mYWtlT3B0aW9uc1wiO1xuXG4vKipcbiAqIEFic3RyYWN0IGNsYXNzIGZvciBhIHJlYWN0IGNsYXNzIGNvbXBvbmVudCB1c2luZyB0aGUgRWxtaXNoIHBhdHRlcm4uXG4gKiBAZXhwb3J0XG4gKiBAYWJzdHJhY3RcbiAqIEBjbGFzcyBFbG1Db21wb25lbnRcbiAqIEBleHRlbmRzIHtDb21wb25lbnQ8VFByb3BzLCBUTW9kZWw+fVxuICogQHRlbXBsYXRlIFRNb2RlbCBUaGUgdHlwZSBvZiB0aGUgbW9kZWwuXG4gKiBAdGVtcGxhdGUgVE1lc3NhZ2UgVGhlIHR5cGUgb2YgdGhlIG1lc3NhZ2VzLlxuICogQHRlbXBsYXRlIFRQcm9wcyBUaGUgdHlwZSBvZiB0aGUgcHJvcHMuXG4gKi9cbmFic3RyYWN0IGNsYXNzIEVsbUNvbXBvbmVudDxUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZSwgVFByb3BzPiBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxUUHJvcHM+IHtcblx0cHJpdmF0ZSBpbml0Q29tbWFuZHM6IE51bGxhYmxlPChDbWQ8VE1lc3NhZ2U+IHwgdW5kZWZpbmVkKVtdPiB8IHVuZGVmaW5lZDtcblx0cHJpdmF0ZSByZWFkb25seSBjb21wb25lbnROYW1lOiBzdHJpbmc7XG5cdHByaXZhdGUgcmVhZG9ubHkgYnVmZmVyOiBUTWVzc2FnZVtdID0gW107XG5cdHByaXZhdGUgcnVubmluZyA9IGZhbHNlO1xuXHRwcml2YXRlIG1vdW50ZWQgPSBmYWxzZTtcblx0cHJpdmF0ZSBjdXJyZW50TW9kZWw6IFRNb2RlbDtcblxuXHQvKipcblx0ICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBFbG1Db21wb25lbnQuXG5cdCAqIEBwYXJhbSB7VFByb3BzfSBwcm9wcyBUaGUgcHJvcHMgZm9yIHRoZSBjb21wb25lbnQuXG5cdCAqIEBwYXJhbSB7KCkgPT4gVE1vZGVsfSBpbml0IFRoZSBpbml0aWFsaXplciBmdW5jdGlvbi5cblx0ICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIGNvbXBvbmVudC5cblx0ICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuXHQgKi9cblx0cHVibGljIGNvbnN0cnVjdG9yKHByb3BzOiBUUHJvcHMsIGluaXQ6IEluaXRGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LCBuYW1lOiBzdHJpbmcpIHtcblx0XHRzdXBlcihwcm9wcyk7XG5cblx0XHRjb25zdCBmYWtlT3B0aW9ucyA9IGdldEZha2VPcHRpb25zT25jZSgpO1xuXG5cdFx0aWYgKGZha2VPcHRpb25zPy5kaXNwYXRjaCkge1xuXHRcdFx0dGhpcy5kaXNwYXRjaCA9IGZha2VPcHRpb25zLmRpc3BhdGNoO1xuXHRcdH1cblxuXHRcdGNvbnN0IFttb2RlbCwgLi4uY29tbWFuZHNdID0gZmFrZU9wdGlvbnM/Lm1vZGVsID8gW2Zha2VPcHRpb25zLm1vZGVsIGFzIFRNb2RlbF0gOiBpbml0KHRoaXMucHJvcHMpO1xuXG5cdFx0U2VydmljZXMubG9nZ2VyPy5kZWJ1ZyhcIkluaXRpYWwgbW9kZWwgZm9yXCIsIG5hbWUsIG1vZGVsKTtcblxuXHRcdHRoaXMuY29tcG9uZW50TmFtZSA9IG5hbWU7XG5cdFx0dGhpcy5jdXJyZW50TW9kZWwgPSBtb2RlbDtcblx0XHR0aGlzLmluaXRDb21tYW5kcyA9IGNvbW1hbmRzO1xuXHR9XG5cblx0LyoqXG5cdCAqIElzIGNhbGxlZCB3aGVuIHRoZSBjb21wb25lbnQgaXMgbG9hZGVkLlxuXHQgKiBXaGVuIGltcGxlbWVudGluZyB0aGlzIG1ldGhvZCwgdGhlIGJhc2UgaW1wbGVtZW50YXRpb24gaGFzIHRvIGJlIGNhbGxlZC5cblx0ICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuXHQgKi9cblx0cHVibGljIGNvbXBvbmVudERpZE1vdW50KCk6IHZvaWQge1xuXHRcdHRoaXMubW91bnRlZCA9IHRydWU7XG5cblx0XHRpZiAodGhpcy5pbml0Q29tbWFuZHMpIHtcblx0XHRcdGV4ZWNDbWQodGhpcy5kaXNwYXRjaCwgLi4udGhpcy5pbml0Q29tbWFuZHMpO1xuXHRcdFx0dGhpcy5pbml0Q29tbWFuZHMgPSBudWxsO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBJcyBjYWxsZWQgYmVmb3JlIHVubG9hZGluZyB0aGUgY29tcG9uZW50LlxuXHQgKiBXaGVuIGltcGxlbWVudGluZyB0aGlzIG1ldGhvZCwgdGhlIGJhc2UgaW1wbGVtZW50YXRpb24gaGFzIHRvIGJlIGNhbGxlZC5cblx0ICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuXHQgKi9cblx0cHVibGljIGNvbXBvbmVudFdpbGxVbm1vdW50KCk6IHZvaWQge1xuXHRcdHRoaXMubW91bnRlZCA9IGZhbHNlO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIGN1cnJlbnQgbW9kZWwuXG5cdCAqIEByZWFkb25seVxuXHQgKiBAdHlwZSB7UmVhZG9ubHk8VE1vZGVsPn1cblx0ICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuXHQgKi9cblx0cHVibGljIGdldCBtb2RlbCgpOiBSZWFkb25seTxUTW9kZWw+IHtcblx0XHRyZXR1cm4gdGhpcy5jdXJyZW50TW9kZWw7XG5cdH1cblxuXHQvKipcblx0ICogRGlzcGF0Y2hlcyBhIG1lc3NhZ2UuXG5cdCAqIEBwYXJhbSB7VE1lc3NhZ2V9IG1zZyBUaGUgbWVzc2FnZSB0byBkaXNwYXRjaC5cblx0ICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuXHQgKi9cblx0cHVibGljIHJlYWRvbmx5IGRpc3BhdGNoID0gKG1zZzogVE1lc3NhZ2UpOiB2b2lkID0+IHtcblx0XHRpZiAodGhpcy5ydW5uaW5nKSB7XG5cdFx0XHR0aGlzLmJ1ZmZlci5wdXNoKG1zZyk7XG5cblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHR0aGlzLnJ1bm5pbmcgPSB0cnVlO1xuXG5cdFx0bGV0IG5leHRNc2c6IFRNZXNzYWdlIHwgdW5kZWZpbmVkID0gbXNnO1xuXHRcdGxldCBtb2RpZmllZCA9IGZhbHNlO1xuXG5cdFx0ZG8ge1xuXHRcdFx0bG9nTWVzc2FnZSh0aGlzLmNvbXBvbmVudE5hbWUsIG5leHRNc2cpO1xuXG5cdFx0XHRjb25zdCBbbW9kZWwsIC4uLmNvbW1hbmRzXSA9IHRoaXMudXBkYXRlKHRoaXMuY3VycmVudE1vZGVsLCBuZXh0TXNnLCB0aGlzLnByb3BzKTtcblxuXHRcdFx0aWYgKG1vZGVsSGFzQ2hhbmdlZCh0aGlzLmN1cnJlbnRNb2RlbCwgbW9kZWwpKSB7XG5cdFx0XHRcdHRoaXMuY3VycmVudE1vZGVsID0geyAuLi50aGlzLmN1cnJlbnRNb2RlbCwgLi4ubW9kZWwgfTtcblx0XHRcdFx0bW9kaWZpZWQgPSB0cnVlO1xuXHRcdFx0fVxuXG5cdFx0XHRleGVjQ21kKHRoaXMuZGlzcGF0Y2gsIC4uLmNvbW1hbmRzKTtcblxuXHRcdFx0bmV4dE1zZyA9IHRoaXMuYnVmZmVyLnNoaWZ0KCk7XG5cdFx0fSB3aGlsZSAobmV4dE1zZyk7XG5cblx0XHR0aGlzLnJ1bm5pbmcgPSBmYWxzZTtcblxuXHRcdGlmICh0aGlzLm1vdW50ZWQgJiYgbW9kaWZpZWQpIHtcblx0XHRcdFNlcnZpY2VzLmxvZ2dlcj8uZGVidWcoXCJVcGRhdGUgbW9kZWwgZm9yXCIsIHRoaXMuY29tcG9uZW50TmFtZSwgdGhpcy5jdXJyZW50TW9kZWwpO1xuXHRcdFx0dGhpcy5mb3JjZVVwZGF0ZSgpO1xuXHRcdH1cblx0fTtcblxuXHQvKipcblx0ICogRnVuY3Rpb24gdG8gbW9kaWZ5IHRoZSBtb2RlbCBiYXNlZCBvbiBhIG1lc3NhZ2UuXG5cdCAqIEBwYXJhbSB7VE1vZGVsfSBtb2RlbCBUaGUgY3VycmVudCBtb2RlbC5cblx0ICogQHBhcmFtIHtUTWVzc2FnZX0gbXNnIFRoZSBtZXNzYWdlIHRvIHByb2Nlc3MuXG5cdCAqIEBwYXJhbSB7VFByb3BzfSBwcm9wcyBUaGUgcHJvcHMgb2YgdGhlIGNvbXBvbmVudC5cblx0ICogQHJldHVybnMgVGhlIG5ldyBtb2RlbCAoY2FuIGFsc28gYmUgYW4gZW1wdHkgb2JqZWN0IHt9KSBhbmQgYW4gb3B0aW9uYWwgbmV3IG1lc3NhZ2UgdG8gZGlzcGF0Y2guXG5cdCAqIEBhYnN0cmFjdFxuXHQgKiBAbWVtYmVyb2YgRWxtQ29tcG9uZW50XG5cdCAqL1xuXHRwdWJsaWMgYWJzdHJhY3QgdXBkYXRlOiBVcGRhdGVGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+O1xufVxuXG5leHBvcnQgeyBFbG1Db21wb25lbnQgfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsS0FBQSxHQUFBRixPQUFBO0FBRUEsSUFBQUcsWUFBQSxHQUFBSCxPQUFBO0FBQW1ELFNBQUFELHVCQUFBSyxHQUFBLFdBQUFBLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLEdBQUFELEdBQUEsZ0JBQUFBLEdBQUE7QUFBQSxTQUFBRSxRQUFBQyxDQUFBLHNDQUFBRCxPQUFBLHdCQUFBRSxNQUFBLHVCQUFBQSxNQUFBLENBQUFDLFFBQUEsYUFBQUYsQ0FBQSxrQkFBQUEsQ0FBQSxnQkFBQUEs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
@@ -44,4 +44,4 @@ declare function errorHandler<TModel, TMessage>(): {
44
44
  */
45
45
  declare function handleError<TModel, TMessage>(error: Error): UpdateReturnType<TModel, TMessage>;
46
46
  export type { ErrorMessage };
47
- export { errorMsg, errorHandler, handleError, };
47
+ export { errorHandler, errorMsg, handleError };
@@ -65,7 +65,7 @@ function handleError(error) {
65
65
  if (_Init.Services.errorMiddleware) {
66
66
  _Init.Services.errorMiddleware(error);
67
67
  }
68
- (_Services$logger = _Init.Services.logger) === null || _Services$logger === void 0 ? void 0 : _Services$logger.error(error);
68
+ (_Services$logger = _Init.Services.logger) === null || _Services$logger === void 0 || _Services$logger.error(error);
69
69
  return [{}];
70
70
  }
71
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfSW5pdCIsInJlcXVpcmUiLCJlcnJvck1zZyIsImVycm9yIiwibmFtZSIsImV4cG9ydHMiLCJlcnJvckhhbmRsZXIiLCJfcmVmIiwiaGFuZGxlRXJyb3IiLCJfU2VydmljZXMkbG9nZ2VyIiwiU2VydmljZXMiLCJlcnJvck1pZGRsZXdhcmUiLCJsb2dnZXIiXSwic291cmNlcyI6WyIuLi9zcmMvRXJyb3JIYW5kbGluZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZXJ2aWNlcyB9IGZyb20gXCIuL0luaXRcIjtcbmltcG9ydCB7IFVwZGF0ZVJldHVyblR5cGUgfSBmcm9tIFwiLi9UeXBlc1wiO1xuXG4vKipcbiAqIEVycm9yIG1lc3NhZ2Ugb2JqZWN0LlxuICogQWRkIHRoaXMgdG8geW91ciBNZXNzYWdlIHR5cGUuXG4gKi9cbmludGVyZmFjZSBFcnJvck1lc3NhZ2Uge1xuICAgIG5hbWU6IFwiZXJyb3JcIixcbiAgICBlcnJvcjogRXJyb3IsXG59XG5cbi8qKlxuICogVGhpcyBvYmplY3QgY29udGFpbnMgdGhlIGZ1bmN0aW9uIHRvIGNyZWF0ZSBhbiBlcnJvciBtZXNzYWdlLlxuICogU3ByZWFkIHRoaXMgaW50byB5b3VyIE1zZyBvYmplY3QuXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGNvbnN0IE1zZyA9IHtcbiAqICAgICAvLyAuLi5cbiAqICAgICAuLi5lcnJvck1zZyxcbiAqIH07XG4gKiBgYGBcbiAqL1xuY29uc3QgZXJyb3JNc2cgPSB7XG4gICAgZXJyb3I6IChlcnJvcjogRXJyb3IpOiBFcnJvck1lc3NhZ2UgPT4gKHsgbmFtZTogXCJlcnJvclwiLCBlcnJvciB9KSxcbn07XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBvYmplY3QgdG8gaGFuZGxlIGVycm9yIG1lc3NhZ2VzIGluIGFuIHVwZGF0ZSBtYXAuXG4gKiBTcHJlYWQgdGhlIG9iamVjdCByZXR1cm5lZCBieSB0aGlzIGZ1bmN0aW9uIGludG8geW91ciBgVXBkYXRlTWFwYC5cbiAqIEByZXR1cm5zIEFuIG9iamVjdCBjb250YWluaW5nIGFuIGVycm9yIGhhbmRsZXIgZnVuY3Rpb24uXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGNvbnN0IHVwZGF0ZTogVXBkYXRlTWFwPFByb3BzLCBNb2RlbCwgTWVzc2FnZT4gPSB7XG4gKiAgICAgLy8gLi4uXG4gKiAgICAgLi4uZXJyb3JIYW5kbGVyKCksXG4gKiB9O1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGVycm9ySGFuZGxlcjxUTW9kZWwsIFRNZXNzYWdlPiAoKTogeyBlcnJvcjogKG1zZzogRXJyb3JNZXNzYWdlKSA9PiBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgVE1lc3NhZ2U+IH0ge1xuICAgIHJldHVybiB7XG4gICAgICAgIGVycm9yICh7IGVycm9yIH0pIHtcbiAgICAgICAgICAgIHJldHVybiBoYW5kbGVFcnJvcihlcnJvcik7XG4gICAgICAgIH0sXG4gICAgfTtcbn1cblxuLyoqXG4gKiBIYW5kbGVzIGFuIGVycm9yLlxuICogTG9ncyB0aGUgZXJyb3IgaWYgYSBMb2dnZXIgd2FzIHNwZWNpZmllZC5cbiAqIENhbGxzIHRoZSBlcnJvciBoYW5kbGluZyBtaWRkbGV3YXJlIGlmIHNwZWNpZmllZC5cbiAqIEBwYXJhbSB7RXJyb3J9IGVycm9yIFRoZSBlcnJvci5cbiAqL1xuZnVuY3Rpb24gaGFuZGxlRXJyb3I8VE1vZGVsLCBUTWVzc2FnZT4gKGVycm9yOiBFcnJvcik6IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTWVzc2FnZT4ge1xuICAgIGlmIChTZXJ2aWNlcy5lcnJvck1pZGRsZXdhcmUpIHtcbiAgICAgICAgU2VydmljZXMuZXJyb3JNaWRkbGV3YXJlKGVycm9yKTtcbiAgICB9XG4gICAgU2VydmljZXMubG9nZ2VyPy5lcnJvcihlcnJvcik7XG5cbiAgICByZXR1cm4gW3t9XTtcbn1cblxuZXhwb3J0IHR5cGUgeyBFcnJvck1lc3NhZ2UgfTtcblxuZXhwb3J0IHtcbiAgICBlcnJvck1zZyxcbiAgICBlcnJvckhhbmRsZXIsXG4gICAgaGFuZGxlRXJyb3IsXG59OyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxLQUFBLEdBQUFDLE9BQUE7QUFHQTtBQUNBO0FBQ0E7QUFDQTs7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBTUMsUUFBUSxHQUFHO0VBQ2JDLEtBQUssRUFBRSxTQUFBQSxNQUFDQSxNQUFZO0lBQUEsT0FBb0I7TUFBRUMsSUFBSSxFQUFFLE9BQU87TUFBRUQsS0FBSyxFQUFMQTtJQUFNLENBQUM7RUFBQTtBQUNwRSxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVhBRSxPQUFBLENBQUFILFFBQUEsR0FBQUEsUUFBQTtBQVlBLFNBQVNJLFlBQVlBLENBQUEsRUFBNEY7RUFDN0csT0FBTztJQUNISCxLQUFLLFdBQUFBLE1BQUFJLElBQUEsRUFBYTtNQUFBLElBQVRKLEtBQUssR0FBQUksSUFBQSxDQUFMSixLQUFLO01BQ1YsT0FBT0ssV0FBVyxDQUFDTCxLQUFLLENBQUM7SUFDN0I7RUFDSixDQUFDO0FBQ0w7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0ssV0FBV0EsQ0FBb0JMLEtBQVksRUFBc0M7RUFBQSxJQUFBTSxnQkFBQTtFQUN0RixJQUFJQyxjQUFRLENBQUNDLGVBQWUsRUFBRTtJQUMxQkQsY0FBUSxDQUFDQyxlQUFlLENBQUNSLEtBQUssQ0FBQztFQUNuQztFQUNBLENBQUFNLGdCQUFBLEdBQUFDLGNBQVEsQ0FBQ0UsTUFBTSxjQUFBSCxnQkFBQSx1QkFBZkEsZ0JBQUEsQ0FBaUJOLEtBQUssQ0FBQ0EsS0FBSyxDQUFDO0VBRTdCLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNmIn0=
71
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfSW5pdCIsInJlcXVpcmUiLCJlcnJvck1zZyIsImVycm9yIiwibmFtZSIsImV4cG9ydHMiLCJlcnJvckhhbmRsZXIiLCJfcmVmIiwiaGFuZGxlRXJyb3IiLCJfU2VydmljZXMkbG9nZ2VyIiwiU2VydmljZXMiLCJlcnJvck1pZGRsZXdhcmUiLCJsb2dnZXIiXSwic291cmNlcyI6WyIuLi9zcmMvRXJyb3JIYW5kbGluZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZXJ2aWNlcyB9IGZyb20gXCIuL0luaXRcIjtcbmltcG9ydCB7IFVwZGF0ZVJldHVyblR5cGUgfSBmcm9tIFwiLi9UeXBlc1wiO1xuXG4vKipcbiAqIEVycm9yIG1lc3NhZ2Ugb2JqZWN0LlxuICogQWRkIHRoaXMgdG8geW91ciBNZXNzYWdlIHR5cGUuXG4gKi9cbmludGVyZmFjZSBFcnJvck1lc3NhZ2Uge1xuXHRuYW1lOiBcImVycm9yXCI7XG5cdGVycm9yOiBFcnJvcjtcbn1cblxuLyoqXG4gKiBUaGlzIG9iamVjdCBjb250YWlucyB0aGUgZnVuY3Rpb24gdG8gY3JlYXRlIGFuIGVycm9yIG1lc3NhZ2UuXG4gKiBTcHJlYWQgdGhpcyBpbnRvIHlvdXIgTXNnIG9iamVjdC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogY29uc3QgTXNnID0ge1xuICogICAgIC8vIC4uLlxuICogICAgIC4uLmVycm9yTXNnLFxuICogfTtcbiAqIGBgYFxuICovXG5jb25zdCBlcnJvck1zZyA9IHtcblx0ZXJyb3I6IChlcnJvcjogRXJyb3IpOiBFcnJvck1lc3NhZ2UgPT4gKHsgbmFtZTogXCJlcnJvclwiLCBlcnJvciB9KSxcbn07XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBvYmplY3QgdG8gaGFuZGxlIGVycm9yIG1lc3NhZ2VzIGluIGFuIHVwZGF0ZSBtYXAuXG4gKiBTcHJlYWQgdGhlIG9iamVjdCByZXR1cm5lZCBieSB0aGlzIGZ1bmN0aW9uIGludG8geW91ciBgVXBkYXRlTWFwYC5cbiAqIEByZXR1cm5zIEFuIG9iamVjdCBjb250YWluaW5nIGFuIGVycm9yIGhhbmRsZXIgZnVuY3Rpb24uXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGNvbnN0IHVwZGF0ZTogVXBkYXRlTWFwPFByb3BzLCBNb2RlbCwgTWVzc2FnZT4gPSB7XG4gKiAgICAgLy8gLi4uXG4gKiAgICAgLi4uZXJyb3JIYW5kbGVyKCksXG4gKiB9O1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGVycm9ySGFuZGxlcjxUTW9kZWwsIFRNZXNzYWdlPigpOiB7XG5cdGVycm9yOiAobXNnOiBFcnJvck1lc3NhZ2UpID0+IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTWVzc2FnZT47XG59IHtcblx0cmV0dXJuIHtcblx0XHRlcnJvcih7IGVycm9yIH0pIHtcblx0XHRcdHJldHVybiBoYW5kbGVFcnJvcihlcnJvcik7XG5cdFx0fSxcblx0fTtcbn1cblxuLyoqXG4gKiBIYW5kbGVzIGFuIGVycm9yLlxuICogTG9ncyB0aGUgZXJyb3IgaWYgYSBMb2dnZXIgd2FzIHNwZWNpZmllZC5cbiAqIENhbGxzIHRoZSBlcnJvciBoYW5kbGluZyBtaWRkbGV3YXJlIGlmIHNwZWNpZmllZC5cbiAqIEBwYXJhbSB7RXJyb3J9IGVycm9yIFRoZSBlcnJvci5cbiAqL1xuZnVuY3Rpb24gaGFuZGxlRXJyb3I8VE1vZGVsLCBUTWVzc2FnZT4oZXJyb3I6IEVycm9yKTogVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPiB7XG5cdGlmIChTZXJ2aWNlcy5lcnJvck1pZGRsZXdhcmUpIHtcblx0XHRTZXJ2aWNlcy5lcnJvck1pZGRsZXdhcmUoZXJyb3IpO1xuXHR9XG5cdFNlcnZpY2VzLmxvZ2dlcj8uZXJyb3IoZXJyb3IpO1xuXG5cdHJldHVybiBbe31dO1xufVxuXG5leHBvcnQgdHlwZSB7IEVycm9yTWVzc2FnZSB9O1xuXG5leHBvcnQgeyBlcnJvckhhbmRsZXIsIGVycm9yTXNnLCBoYW5kbGVFcnJvciB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLEtBQUEsR0FBQUMsT0FBQTtBQUdBO0FBQ0E7QUFDQTtBQUNBOztBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFNQyxRQUFRLEdBQUc7RUFDaEJDLEtBQUssRUFBRSxTQUFBQSxNQUFDQSxNQUFZO0lBQUEsT0FBb0I7TUFBRUMsSUFBSSxFQUFFLE9BQU87TUFBRUQsS0FBSyxFQUFMQTtJQUFNLENBQUM7RUFBQTtBQUNqRSxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVhBRSxPQUFBLENBQUFILFFBQUEsR0FBQUEsUUFBQTtBQVlBLFNBQVNJLFlBQVlBLENBQUEsRUFFbkI7RUFDRCxPQUFPO0lBQ05ILEtBQUssV0FBQUEsTUFBQUksSUFBQSxFQUFZO01BQUEsSUFBVEosS0FBSyxHQUFBSSxJQUFBLENBQUxKLEtBQUs7TUFDWixPQUFPSyxXQUFXLENBQUNMLEtBQUssQ0FBQztJQUMxQjtFQUNELENBQUM7QUFDRjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTSyxXQUFXQSxDQUFtQkwsS0FBWSxFQUFzQztFQUFBLElBQUFNLGdCQUFBO0VBQ3hGLElBQUlDLGNBQVEsQ0FBQ0MsZUFBZSxFQUFFO0lBQzdCRCxjQUFRLENBQUNDLGVBQWUsQ0FBQ1IsS0FBSyxDQUFDO0VBQ2hDO0VBQ0EsQ0FBQU0sZ0JBQUEsR0FBQUMsY0FBUSxDQUFDRSxNQUFNLGNBQUFILGdCQUFBLGVBQWZBLGdCQUFBLENBQWlCTixLQUFLLENBQUNBLEtBQUssQ0FBQztFQUU3QixPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDWiJ9
package/dist/Init.d.ts CHANGED
@@ -30,5 +30,5 @@ declare const Services: ElmOptions;
30
30
  * @param {ElmOptions} options
31
31
  */
32
32
  declare function init(options: ElmOptions): void;
33
- export type { Logger, ErrorMiddlewareFunc, DispatchMiddlewareFunc, ElmOptions, };
34
- export { Services, init, };
33
+ export type { DispatchMiddlewareFunc, ElmOptions, ErrorMiddlewareFunc, Logger };
34
+ export { Services, init };
package/dist/Init.js CHANGED
@@ -22,4 +22,4 @@ function init(options) {
22
22
  Services.errorMiddleware = options.errorMiddleware;
23
23
  Services.dispatchMiddleware = options.dispatchMiddleware;
24
24
  }
25
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTZXJ2aWNlcyIsImxvZ2dlciIsInVuZGVmaW5lZCIsImVycm9yTWlkZGxld2FyZSIsImRpc3BhdGNoTWlkZGxld2FyZSIsImV4cG9ydHMiLCJpbml0Iiwib3B0aW9ucyJdLCJzb3VyY2VzIjpbIi4uL3NyYy9Jbml0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1lc3NhZ2UgfSBmcm9tIFwiLi9UeXBlc1wiO1xuXG5pbnRlcmZhY2UgTG9nZ2VyIHtcbiAgICBkZWJ1ZzogKC4uLmFyZ3M6IHVua25vd24gW10pID0+IHZvaWQsXG4gICAgaW5mbzogKC4uLmFyZ3M6IHVua25vd24gW10pID0+IHZvaWQsXG4gICAgZXJyb3I6ICguLi5hcmdzOiB1bmtub3duIFtdKSA9PiB2b2lkLFxufVxuXG50eXBlIEVycm9yTWlkZGxld2FyZUZ1bmMgPSAoZXJyb3I6IEVycm9yKSA9PiB2b2lkO1xudHlwZSBEaXNwYXRjaE1pZGRsZXdhcmVGdW5jID0gKG1zZzogTWVzc2FnZSkgPT4gdm9pZDtcblxuaW50ZXJmYWNlIEVsbU9wdGlvbnMge1xuICAgIC8qKlxuICAgICAqIFRoZSBsb2dnZXIgdG8gdXNlIGZvciBsb2dnaW5nIGNhbGxlZCBtZXNzYWdlcyBhbmQgdXBkYXRlZCBtb2RlbHMuXG4gICAgICogQHR5cGUge0xvZ2dlcn1cbiAgICAgKi9cbiAgICBsb2dnZXI/OiBMb2dnZXIsXG5cbiAgICAvKipcbiAgICAgKiBNaWRkbGV3YXJlIHRvIGNhbGwgd2hlbiBlcnJvciBtZXNzYWdlcyBhcmUgaGFuZGxlZCBieSB0aGUgYGhhbmRsZUVycm9yYCBmdW5jdGlvbi5cbiAgICAgKiBAdHlwZSB7RXJyb3JNaWRkbGV3YXJlRnVuY31cbiAgICAgKi9cbiAgICBlcnJvck1pZGRsZXdhcmU/OiBFcnJvck1pZGRsZXdhcmVGdW5jLFxuXG4gICAgLyoqXG4gICAgICogTWlkZGxld2FyZSB0byBjYWxsIGZvciBldmVyeSBwcm9jZXNzZWQgbWVzc2FnZS5cbiAgICAgKiBAdHlwZSB7RGlzcGF0Y2hNaWRkbGV3YXJlRnVuY31cbiAgICAgKi9cbiAgICBkaXNwYXRjaE1pZGRsZXdhcmU/OiBEaXNwYXRjaE1pZGRsZXdhcmVGdW5jLFxufVxuXG5jb25zdCBTZXJ2aWNlczogRWxtT3B0aW9ucyA9IHtcbiAgICBsb2dnZXI6IHVuZGVmaW5lZCxcbiAgICBlcnJvck1pZGRsZXdhcmU6IHVuZGVmaW5lZCxcbiAgICBkaXNwYXRjaE1pZGRsZXdhcmU6IHVuZGVmaW5lZCxcbn07XG5cbi8qKlxuICogVGhpcyBpbml0aWFsaXplcyB0aGUgRWxtaXNoIG1vZHVsZS5cbiAqIFlvdSBvbmx5IG5lZWQgdG8gY2FsbCB0aGlzIGZ1bmN0aW9uIGlmIHlvdSB3YW50IHRvIHNldCBzb21lIG9mIHRoZSBvcHRpb25zLlxuICogQHBhcmFtIHtFbG1PcHRpb25zfSBvcHRpb25zXG4gKi9cbmZ1bmN0aW9uIGluaXQgKG9wdGlvbnM6IEVsbU9wdGlvbnMpOiB2b2lkIHtcbiAgICBTZXJ2aWNlcy5sb2dnZXIgPSBvcHRpb25zLmxvZ2dlcjtcbiAgICBTZXJ2aWNlcy5lcnJvck1pZGRsZXdhcmUgPSBvcHRpb25zLmVycm9yTWlkZGxld2FyZTtcbiAgICBTZXJ2aWNlcy5kaXNwYXRjaE1pZGRsZXdhcmUgPSBvcHRpb25zLmRpc3BhdGNoTWlkZGxld2FyZTtcbn1cblxuZXhwb3J0IHR5cGUge1xuICAgIExvZ2dlcixcbiAgICBFcnJvck1pZGRsZXdhcmVGdW5jLFxuICAgIERpc3BhdGNoTWlkZGxld2FyZUZ1bmMsXG4gICAgRWxtT3B0aW9ucyxcbn07XG5cbmV4cG9ydCB7XG4gICAgU2VydmljZXMsXG4gICAgaW5pdCxcbn07Il0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBK0JBLElBQU1BLFFBQW9CLEdBQUc7RUFDekJDLE1BQU0sRUFBRUMsU0FBUztFQUNqQkMsZUFBZSxFQUFFRCxTQUFTO0VBQzFCRSxrQkFBa0IsRUFBRUY7QUFDeEIsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSkFHLE9BQUEsQ0FBQUwsUUFBQSxHQUFBQSxRQUFBO0FBS0EsU0FBU00sSUFBSUEsQ0FBRUMsT0FBbUIsRUFBUTtFQUN0Q1AsUUFBUSxDQUFDQyxNQUFNLEdBQUdNLE9BQU8sQ0FBQ04sTUFBTTtFQUNoQ0QsUUFBUSxDQUFDRyxlQUFlLEdBQUdJLE9BQU8sQ0FBQ0osZUFBZTtFQUNsREgsUUFBUSxDQUFDSSxrQkFBa0IsR0FBR0csT0FBTyxDQUFDSCxrQkFBa0I7QUFDNUQifQ==
25
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTZXJ2aWNlcyIsImxvZ2dlciIsInVuZGVmaW5lZCIsImVycm9yTWlkZGxld2FyZSIsImRpc3BhdGNoTWlkZGxld2FyZSIsImV4cG9ydHMiLCJpbml0Iiwib3B0aW9ucyJdLCJzb3VyY2VzIjpbIi4uL3NyYy9Jbml0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1lc3NhZ2UgfSBmcm9tIFwiLi9UeXBlc1wiO1xuXG5pbnRlcmZhY2UgTG9nZ2VyIHtcblx0ZGVidWc6ICguLi5hcmdzOiB1bmtub3duW10pID0+IHZvaWQ7XG5cdGluZm86ICguLi5hcmdzOiB1bmtub3duW10pID0+IHZvaWQ7XG5cdGVycm9yOiAoLi4uYXJnczogdW5rbm93bltdKSA9PiB2b2lkO1xufVxuXG50eXBlIEVycm9yTWlkZGxld2FyZUZ1bmMgPSAoZXJyb3I6IEVycm9yKSA9PiB2b2lkO1xudHlwZSBEaXNwYXRjaE1pZGRsZXdhcmVGdW5jID0gKG1zZzogTWVzc2FnZSkgPT4gdm9pZDtcblxuaW50ZXJmYWNlIEVsbU9wdGlvbnMge1xuXHQvKipcblx0ICogVGhlIGxvZ2dlciB0byB1c2UgZm9yIGxvZ2dpbmcgY2FsbGVkIG1lc3NhZ2VzIGFuZCB1cGRhdGVkIG1vZGVscy5cblx0ICogQHR5cGUge0xvZ2dlcn1cblx0ICovXG5cdGxvZ2dlcj86IExvZ2dlcjtcblxuXHQvKipcblx0ICogTWlkZGxld2FyZSB0byBjYWxsIHdoZW4gZXJyb3IgbWVzc2FnZXMgYXJlIGhhbmRsZWQgYnkgdGhlIGBoYW5kbGVFcnJvcmAgZnVuY3Rpb24uXG5cdCAqIEB0eXBlIHtFcnJvck1pZGRsZXdhcmVGdW5jfVxuXHQgKi9cblx0ZXJyb3JNaWRkbGV3YXJlPzogRXJyb3JNaWRkbGV3YXJlRnVuYztcblxuXHQvKipcblx0ICogTWlkZGxld2FyZSB0byBjYWxsIGZvciBldmVyeSBwcm9jZXNzZWQgbWVzc2FnZS5cblx0ICogQHR5cGUge0Rpc3BhdGNoTWlkZGxld2FyZUZ1bmN9XG5cdCAqL1xuXHRkaXNwYXRjaE1pZGRsZXdhcmU/OiBEaXNwYXRjaE1pZGRsZXdhcmVGdW5jO1xufVxuXG5jb25zdCBTZXJ2aWNlczogRWxtT3B0aW9ucyA9IHtcblx0bG9nZ2VyOiB1bmRlZmluZWQsXG5cdGVycm9yTWlkZGxld2FyZTogdW5kZWZpbmVkLFxuXHRkaXNwYXRjaE1pZGRsZXdhcmU6IHVuZGVmaW5lZCxcbn07XG5cbi8qKlxuICogVGhpcyBpbml0aWFsaXplcyB0aGUgRWxtaXNoIG1vZHVsZS5cbiAqIFlvdSBvbmx5IG5lZWQgdG8gY2FsbCB0aGlzIGZ1bmN0aW9uIGlmIHlvdSB3YW50IHRvIHNldCBzb21lIG9mIHRoZSBvcHRpb25zLlxuICogQHBhcmFtIHtFbG1PcHRpb25zfSBvcHRpb25zXG4gKi9cbmZ1bmN0aW9uIGluaXQob3B0aW9uczogRWxtT3B0aW9ucyk6IHZvaWQge1xuXHRTZXJ2aWNlcy5sb2dnZXIgPSBvcHRpb25zLmxvZ2dlcjtcblx0U2VydmljZXMuZXJyb3JNaWRkbGV3YXJlID0gb3B0aW9ucy5lcnJvck1pZGRsZXdhcmU7XG5cdFNlcnZpY2VzLmRpc3BhdGNoTWlkZGxld2FyZSA9IG9wdGlvbnMuZGlzcGF0Y2hNaWRkbGV3YXJlO1xufVxuXG5leHBvcnQgdHlwZSB7IERpc3BhdGNoTWlkZGxld2FyZUZ1bmMsIEVsbU9wdGlvbnMsIEVycm9yTWlkZGxld2FyZUZ1bmMsIExvZ2dlciB9O1xuXG5leHBvcnQgeyBTZXJ2aWNlcywgaW5pdCB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBK0JBLElBQU1BLFFBQW9CLEdBQUc7RUFDNUJDLE1BQU0sRUFBRUMsU0FBUztFQUNqQkMsZUFBZSxFQUFFRCxTQUFTO0VBQzFCRSxrQkFBa0IsRUFBRUY7QUFDckIsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSkFHLE9BQUEsQ0FBQUwsUUFBQSxHQUFBQSxRQUFBO0FBS0EsU0FBU00sSUFBSUEsQ0FBQ0MsT0FBbUIsRUFBUTtFQUN4Q1AsUUFBUSxDQUFDQyxNQUFNLEdBQUdNLE9BQU8sQ0FBQ04sTUFBTTtFQUNoQ0QsUUFBUSxDQUFDRyxlQUFlLEdBQUdJLE9BQU8sQ0FBQ0osZUFBZTtFQUNsREgsUUFBUSxDQUFDSSxrQkFBa0IsR0FBR0csT0FBTyxDQUFDSCxrQkFBa0I7QUFDekQifQ==
@@ -0,0 +1,3 @@
1
+ import { InitFunction, Message } from "../Types";
2
+ declare function createModelAndProps<TProps, TModel, TMessage extends Message>(init: InitFunction<TProps, TModel, TMessage>, initProps: () => TProps, modelTemplate?: Partial<TModel>, propsTemplate?: Partial<TProps>): [TModel, TProps];
3
+ export { createModelAndProps };
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createModelAndProps = createModelAndProps;
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 _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
9
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
10
+ function _unsupportedIterableToArray(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); }
11
+ 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; }
12
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
13
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
14
+ 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; }
15
+ 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
+ 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; }
17
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
18
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
19
+ function createModelAndProps(init, initProps, modelTemplate, propsTemplate) {
20
+ var props = _objectSpread(_objectSpread({}, initProps()), propsTemplate);
21
+ var _init = init(props),
22
+ _init2 = _slicedToArray(_init, 1),
23
+ model = _init2[0];
24
+ return [_objectSpread(_objectSpread({}, model), modelTemplate), props];
25
+ }
26
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjcmVhdGVNb2RlbEFuZFByb3BzIiwiaW5pdCIsImluaXRQcm9wcyIsIm1vZGVsVGVtcGxhdGUiLCJwcm9wc1RlbXBsYXRlIiwicHJvcHMiLCJfb2JqZWN0U3ByZWFkIiwiX2luaXQiLCJfaW5pdDIiLCJfc2xpY2VkVG9BcnJheSIsIm1vZGVsIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL1Rlc3RpbmcvY3JlYXRlTW9kZWxBbmRQcm9wcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbml0RnVuY3Rpb24sIE1lc3NhZ2UgfSBmcm9tIFwiLi4vVHlwZXNcIjtcblxuZnVuY3Rpb24gY3JlYXRlTW9kZWxBbmRQcm9wczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPihcblx0aW5pdDogSW5pdEZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG5cdGluaXRQcm9wczogKCkgPT4gVFByb3BzLFxuXHRtb2RlbFRlbXBsYXRlPzogUGFydGlhbDxUTW9kZWw+LFxuXHRwcm9wc1RlbXBsYXRlPzogUGFydGlhbDxUUHJvcHM+LFxuKTogW1RNb2RlbCwgVFByb3BzXSB7XG5cdGNvbnN0IHByb3BzOiBUUHJvcHMgPSB7XG5cdFx0Li4uaW5pdFByb3BzKCksXG5cdFx0Li4ucHJvcHNUZW1wbGF0ZSxcblx0fTtcblx0Y29uc3QgW21vZGVsXSA9IGluaXQocHJvcHMpO1xuXG5cdHJldHVybiBbeyAuLi5tb2RlbCwgLi4ubW9kZWxUZW1wbGF0ZSB9LCBwcm9wc107XG59XG5cbmV4cG9ydCB7IGNyZWF0ZU1vZGVsQW5kUHJvcHMgfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsU0FBU0EsbUJBQW1CQSxDQUMzQkMsSUFBNEMsRUFDNUNDLFNBQXVCLEVBQ3ZCQyxhQUErQixFQUMvQkMsYUFBK0IsRUFDWjtFQUNuQixJQUFNQyxLQUFhLEdBQUFDLGFBQUEsQ0FBQUEsYUFBQSxLQUNmSixTQUFTLENBQUMsQ0FBQyxHQUNYRSxhQUFhLENBQ2hCO0VBQ0QsSUFBQUcsS0FBQSxHQUFnQk4sSUFBSSxDQUFDSSxLQUFLLENBQUM7SUFBQUcsTUFBQSxHQUFBQyxjQUFBLENBQUFGLEtBQUE7SUFBcEJHLEtBQUssR0FBQUYsTUFBQTtFQUVaLE9BQU8sQ0FBQUYsYUFBQSxDQUFBQSxhQUFBLEtBQU1JLEtBQUssR0FBS1AsYUFBYSxHQUFJRSxLQUFLLENBQUM7QUFDL0MifQ==
@@ -1,5 +1,6 @@
1
1
  import { Message } from "../Types";
2
2
  type UpdateArgsFactory<TProps, TModel, TMessage extends Message> = (msg: TMessage, modelTemplate?: Partial<TModel>, propsTemplate?: Partial<TProps>) => [TMessage, TModel, TProps];
3
+ type ModelAndPropsFactory<TProps, TModel> = (modelTemplate?: Partial<TModel>, propsTemplate?: Partial<TProps>) => [TModel, TProps];
3
4
  /**
4
5
  * Creates a factory function to create a message, a model, and props which can be passed to an update function in tests.
5
6
  * @param {() => TModel} initModel A function to create an initial model.
@@ -12,5 +13,5 @@ type UpdateArgsFactory<TProps, TModel, TMessage extends Message> = (msg: TMessag
12
13
  * const [msg, model, props] = createUpdateArgs(Msg.myMessage(), { ... }, , { ... });
13
14
  */
14
15
  declare function createUpdateArgsFactory<TProps, TModel, TMessage extends Message>(initModel: () => TModel, initProps: () => TProps): UpdateArgsFactory<TProps, TModel, TMessage>;
15
- export type { UpdateArgsFactory, };
16
- export { createUpdateArgsFactory, };
16
+ export type { ModelAndPropsFactory, UpdateArgsFactory };
17
+ export { createUpdateArgsFactory };
@@ -4,9 +4,9 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.createUpdateArgsFactory = createUpdateArgsFactory;
7
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
8
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
9
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
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
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
11
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
12
12
  function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
@@ -22,8 +22,8 @@ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input ==
22
22
  * const [msg, model, props] = createUpdateArgs(Msg.myMessage(), { ... }, , { ... });
23
23
  */
24
24
  function createUpdateArgsFactory(initModel, initProps) {
25
- return function (msg, modelTemplate, propsTemplate) {
25
+ return function createUpdateArgs(msg, modelTemplate, propsTemplate) {
26
26
  return [msg, _objectSpread(_objectSpread({}, initModel()), modelTemplate), _objectSpread(_objectSpread({}, initProps()), propsTemplate)];
27
27
  };
28
28
  }
29
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjcmVhdGVVcGRhdGVBcmdzRmFjdG9yeSIsImluaXRNb2RlbCIsImluaXRQcm9wcyIsIm1zZyIsIm1vZGVsVGVtcGxhdGUiLCJwcm9wc1RlbXBsYXRlIiwiX29iamVjdFNwcmVhZCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9UZXN0aW5nL2NyZWF0ZVVwZGF0ZUFyZ3NGYWN0b3J5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1lc3NhZ2UgfSBmcm9tIFwiLi4vVHlwZXNcIjtcblxudHlwZSBVcGRhdGVBcmdzRmFjdG9yeTxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPiA9IChtc2c6IFRNZXNzYWdlLCBtb2RlbFRlbXBsYXRlPzogUGFydGlhbDxUTW9kZWw+LCBwcm9wc1RlbXBsYXRlPzogUGFydGlhbDxUUHJvcHM+KSA9PiBbVE1lc3NhZ2UsIFRNb2RlbCwgVFByb3BzXTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgZmFjdG9yeSBmdW5jdGlvbiB0byBjcmVhdGUgYSBtZXNzYWdlLCBhIG1vZGVsLCBhbmQgcHJvcHMgd2hpY2ggY2FuIGJlIHBhc3NlZCB0byBhbiB1cGRhdGUgZnVuY3Rpb24gaW4gdGVzdHMuXG4gKiBAcGFyYW0geygpID0+IFRNb2RlbH0gaW5pdE1vZGVsIEEgZnVuY3Rpb24gdG8gY3JlYXRlIGFuIGluaXRpYWwgbW9kZWwuXG4gKiBAcGFyYW0geygpID0+IFRQcm9wc30gaW5pdFByb3BzIEEgZnVuY3Rpb24gdG8gY3JlYXRlIGluaXRpYWwgcHJvcHMuXG4gKiBAcmV0dXJucyB7VXBkYXRlQXJnc0ZhY3Rvcnk8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPn0gQSBmdW5jdGlvbiB0byBjcmVhdGUgYSBtZXNzYWdlLCBhIG1vZGVsLCBhbmQgcHJvcHMuXG4gKiBAZXhhbXBsZVxuICogLy8gb25lIHRpbWVcbiAqIGNvbnN0IGNyZWF0ZVVwZGF0ZUFyZ3MgPSBjcmVhdGVVcGRhdGVBcmdzRmFjdG9yeSgoKSA9PiAoeyAuLi4gfSksICgpID0+ICh7IC4uLiB9KSk7XG4gKiAvLyBpbiB0ZXN0c1xuICogY29uc3QgW21zZywgbW9kZWwsIHByb3BzXSA9IGNyZWF0ZVVwZGF0ZUFyZ3MoTXNnLm15TWVzc2FnZSgpLCB7IC4uLiB9LCAsIHsgLi4uIH0pO1xuICovXG5mdW5jdGlvbiBjcmVhdGVVcGRhdGVBcmdzRmFjdG9yeTxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPiAoaW5pdE1vZGVsOiAoKSA9PiBUTW9kZWwsIGluaXRQcm9wczogKCkgPT4gVFByb3BzKTogVXBkYXRlQXJnc0ZhY3Rvcnk8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChtc2c6IFRNZXNzYWdlLCBtb2RlbFRlbXBsYXRlPzogUGFydGlhbDxUTW9kZWw+LCBwcm9wc1RlbXBsYXRlPzogUGFydGlhbDxUUHJvcHM+KTogW1RNZXNzYWdlLCBUTW9kZWwsIFRQcm9wc10ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgbXNnLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIC4uLmluaXRNb2RlbCgpLFxuICAgICAgICAgICAgICAgIC4uLm1vZGVsVGVtcGxhdGUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIC4uLmluaXRQcm9wcygpLFxuICAgICAgICAgICAgICAgIC4uLnByb3BzVGVtcGxhdGUsXG4gICAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgIH07XG59XG5cbmV4cG9ydCB0eXBlIHtcbiAgICBVcGRhdGVBcmdzRmFjdG9yeSxcbn07XG5cbmV4cG9ydCB7XG4gICAgY3JlYXRlVXBkYXRlQXJnc0ZhY3RvcnksXG59OyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLHVCQUF1QkEsQ0FBNENDLFNBQXVCLEVBQUVDLFNBQXVCLEVBQStDO0VBQ3ZLLE9BQU8sVUFBVUMsR0FBYSxFQUFFQyxhQUErQixFQUFFQyxhQUErQixFQUE4QjtJQUMxSCxPQUFPLENBQ0hGLEdBQUcsRUFBQUcsYUFBQSxDQUFBQSxhQUFBLEtBRUlMLFNBQVMsQ0FBQyxDQUFDLEdBQ1hHLGFBQWEsR0FBQUUsYUFBQSxDQUFBQSxhQUFBLEtBR2JKLFNBQVMsQ0FBQyxDQUFDLEdBQ1hHLGFBQWEsRUFFdkI7RUFDTCxDQUFDO0FBQ0wifQ==
29
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjcmVhdGVVcGRhdGVBcmdzRmFjdG9yeSIsImluaXRNb2RlbCIsImluaXRQcm9wcyIsImNyZWF0ZVVwZGF0ZUFyZ3MiLCJtc2ciLCJtb2RlbFRlbXBsYXRlIiwicHJvcHNUZW1wbGF0ZSIsIl9vYmplY3RTcHJlYWQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvVGVzdGluZy9jcmVhdGVVcGRhdGVBcmdzRmFjdG9yeS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNZXNzYWdlIH0gZnJvbSBcIi4uL1R5cGVzXCI7XG5cbnR5cGUgVXBkYXRlQXJnc0ZhY3Rvcnk8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4gPSAoXG5cdG1zZzogVE1lc3NhZ2UsXG5cdG1vZGVsVGVtcGxhdGU/OiBQYXJ0aWFsPFRNb2RlbD4sXG5cdHByb3BzVGVtcGxhdGU/OiBQYXJ0aWFsPFRQcm9wcz4sXG4pID0+IFtUTWVzc2FnZSwgVE1vZGVsLCBUUHJvcHNdO1xuXG50eXBlIE1vZGVsQW5kUHJvcHNGYWN0b3J5PFRQcm9wcywgVE1vZGVsPiA9IChcblx0bW9kZWxUZW1wbGF0ZT86IFBhcnRpYWw8VE1vZGVsPixcblx0cHJvcHNUZW1wbGF0ZT86IFBhcnRpYWw8VFByb3BzPixcbikgPT4gW1RNb2RlbCwgVFByb3BzXTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgZmFjdG9yeSBmdW5jdGlvbiB0byBjcmVhdGUgYSBtZXNzYWdlLCBhIG1vZGVsLCBhbmQgcHJvcHMgd2hpY2ggY2FuIGJlIHBhc3NlZCB0byBhbiB1cGRhdGUgZnVuY3Rpb24gaW4gdGVzdHMuXG4gKiBAcGFyYW0geygpID0+IFRNb2RlbH0gaW5pdE1vZGVsIEEgZnVuY3Rpb24gdG8gY3JlYXRlIGFuIGluaXRpYWwgbW9kZWwuXG4gKiBAcGFyYW0geygpID0+IFRQcm9wc30gaW5pdFByb3BzIEEgZnVuY3Rpb24gdG8gY3JlYXRlIGluaXRpYWwgcHJvcHMuXG4gKiBAcmV0dXJucyB7VXBkYXRlQXJnc0ZhY3Rvcnk8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPn0gQSBmdW5jdGlvbiB0byBjcmVhdGUgYSBtZXNzYWdlLCBhIG1vZGVsLCBhbmQgcHJvcHMuXG4gKiBAZXhhbXBsZVxuICogLy8gb25lIHRpbWVcbiAqIGNvbnN0IGNyZWF0ZVVwZGF0ZUFyZ3MgPSBjcmVhdGVVcGRhdGVBcmdzRmFjdG9yeSgoKSA9PiAoeyAuLi4gfSksICgpID0+ICh7IC4uLiB9KSk7XG4gKiAvLyBpbiB0ZXN0c1xuICogY29uc3QgW21zZywgbW9kZWwsIHByb3BzXSA9IGNyZWF0ZVVwZGF0ZUFyZ3MoTXNnLm15TWVzc2FnZSgpLCB7IC4uLiB9LCAsIHsgLi4uIH0pO1xuICovXG5mdW5jdGlvbiBjcmVhdGVVcGRhdGVBcmdzRmFjdG9yeTxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPihcblx0aW5pdE1vZGVsOiAoKSA9PiBUTW9kZWwsXG5cdGluaXRQcm9wczogKCkgPT4gVFByb3BzLFxuKTogVXBkYXRlQXJnc0ZhY3Rvcnk8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiB7XG5cdHJldHVybiBmdW5jdGlvbiBjcmVhdGVVcGRhdGVBcmdzKFxuXHRcdG1zZzogVE1lc3NhZ2UsXG5cdFx0bW9kZWxUZW1wbGF0ZT86IFBhcnRpYWw8VE1vZGVsPixcblx0XHRwcm9wc1RlbXBsYXRlPzogUGFydGlhbDxUUHJvcHM+LFxuXHQpOiBbVE1lc3NhZ2UsIFRNb2RlbCwgVFByb3BzXSB7XG5cdFx0cmV0dXJuIFtcblx0XHRcdG1zZyxcblx0XHRcdHtcblx0XHRcdFx0Li4uaW5pdE1vZGVsKCksXG5cdFx0XHRcdC4uLm1vZGVsVGVtcGxhdGUsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHQuLi5pbml0UHJvcHMoKSxcblx0XHRcdFx0Li4ucHJvcHNUZW1wbGF0ZSxcblx0XHRcdH0sXG5cdFx0XTtcblx0fTtcbn1cblxuZXhwb3J0IHR5cGUgeyBNb2RlbEFuZFByb3BzRmFjdG9yeSwgVXBkYXRlQXJnc0ZhY3RvcnkgfTtcblxuZXhwb3J0IHsgY3JlYXRlVXBkYXRlQXJnc0ZhY3RvcnkgfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBYUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLHVCQUF1QkEsQ0FDL0JDLFNBQXVCLEVBQ3ZCQyxTQUF1QixFQUN1QjtFQUM5QyxPQUFPLFNBQVNDLGdCQUFnQkEsQ0FDL0JDLEdBQWEsRUFDYkMsYUFBK0IsRUFDL0JDLGFBQStCLEVBQ0Y7SUFDN0IsT0FBTyxDQUNORixHQUFHLEVBQUFHLGFBQUEsQ0FBQUEsYUFBQSxLQUVDTixTQUFTLENBQUMsQ0FBQyxHQUNYSSxhQUFhLEdBQUFFLGFBQUEsQ0FBQUEsYUFBQSxLQUdiTCxTQUFTLENBQUMsQ0FBQyxHQUNYSSxhQUFhLEVBRWpCO0VBQ0YsQ0FBQztBQUNGIn0=
@@ -1,3 +1,4 @@
1
+ import { Dispatch } from "react";
1
2
  import { Cmd, Nullable } from "../Types";
2
3
  /**
3
4
  * Executes all commands and resolves the messages.
@@ -5,4 +6,5 @@ import { Cmd, Nullable } from "../Types";
5
6
  * @returns The array of processed messages.
6
7
  */
7
8
  declare function execCmd<TMessage>(...commands: (Cmd<TMessage> | undefined)[]): Promise<Nullable<TMessage>[]>;
8
- export { execCmd, };
9
+ declare function execCmdWithDispatch<TMessage>(dispatch: Dispatch<TMessage>, ...commands: (Cmd<TMessage> | undefined)[]): void;
10
+ export { execCmd, execCmdWithDispatch };