react-elmish 10.0.0-beta.3 → 10.0.0-beta.5

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
@@ -18,6 +18,7 @@ This library brings the elmish pattern to react.
18
18
  - [Working with external sources of events](#working-with-external-sources-of-events)
19
19
  - [Cleanup subscriptions](#cleanup-subscriptions)
20
20
  - [Immutability](#immutability)
21
+ - [Testing](#testing)
21
22
  - [Setup](#setup)
22
23
  - [Error handling](#error-handling)
23
24
  - [React life cycle management](#react-life-cycle-management)
@@ -27,7 +28,7 @@ This library brings the elmish pattern to react.
27
28
  - [With an `UpdateMap`](#with-an-updatemap)
28
29
  - [With an update function](#with-an-update-function)
29
30
  - [Merge multiple subscriptions](#merge-multiple-subscriptions)
30
- - [Testing](#testing)
31
+ - [Testing](#testing-1)
31
32
  - [Testing the init function](#testing-the-init-function)
32
33
  - [Testing the update handler](#testing-the-update-handler)
33
34
  - [Combine update and execCmd](#combine-update-and-execcmd)
@@ -502,6 +503,10 @@ const updateMap: UpdateMap<Props, Model, Message> = {
502
503
  };
503
504
  ```
504
505
 
506
+ ### Testing
507
+
508
+ If you want to test your component with immutable data structures, you can use the `react-elmish/testing/immutable` module. This module provides the same functions as the normal testing module.
509
+
505
510
  ## Setup
506
511
 
507
512
  **react-elmish** works without a setup. But if you want to use logging or some middleware, you can setup **react-elmish** at the start of your program.
@@ -1,6 +1,6 @@
1
- import type { Immutable } from "immer";
1
+ import type { Draft, Immutable } from "immer";
2
2
  import type { Cmd, Message, SubscriptionResult } from "../Types";
3
- type DraftModelFunction<TModel> = (draft: TModel) => void;
3
+ type DraftModelFunction<TModel> = (draft: Draft<TModel>) => void;
4
4
  /**
5
5
  * Type for the return value of the `update` function.
6
6
  */
@@ -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,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ltbXV0YWJsZS9UeXBlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEltbXV0YWJsZSB9IGZyb20gXCJpbW1lclwiO1xuaW1wb3J0IHR5cGUgeyBDbWQsIE1lc3NhZ2UsIFN1YnNjcmlwdGlvblJlc3VsdCB9IGZyb20gXCIuLi9UeXBlc1wiO1xuXG50eXBlIERyYWZ0TW9kZWxGdW5jdGlvbjxUTW9kZWw+ID0gKGRyYWZ0OiBUTW9kZWwpID0+IHZvaWQ7XG5cbi8qKlxuICogVHlwZSBmb3IgdGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgYHVwZGF0ZWAgZnVuY3Rpb24uXG4gKi9cbnR5cGUgVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPiA9IFtEcmFmdE1vZGVsRnVuY3Rpb248VE1vZGVsPiB8IG51bGwgfCB1bmRlZmluZWQsIC4uLihDbWQ8VE1lc3NhZ2U+IHwgdW5kZWZpbmVkKVtdXSB8IFtdO1xuXG50eXBlIERlZmVyRnVuY3Rpb248VE1vZGVsLCBUTWVzc2FnZT4gPSAoXG5cdGRyYWZ0Rm46IERyYWZ0TW9kZWxGdW5jdGlvbjxUTW9kZWw+IHwgbnVsbCB8IHVuZGVmaW5lZCxcblx0Li4uY29tbWFuZHM6IChDbWQ8VE1lc3NhZ2U+IHwgdW5kZWZpbmVkKVtdXG4pID0+IHZvaWQ7XG50eXBlIENhbGxCYXNlRnVuY3Rpb248VE1vZGVsLCBUUHJvcHMsIFRNZXNzYWdlPiA9IChcblx0Zm46IChcblx0XHRtc2c6IFRNZXNzYWdlLFxuXHRcdG1vZGVsOiBJbW11dGFibGU8VE1vZGVsPixcblx0XHRwcm9wczogVFByb3BzLFxuXHRcdG9wdGlvbnM6IFVwZGF0ZUZ1bmN0aW9uT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuXHQpID0+IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBNZXNzYWdlPixcbikgPT4gVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPjtcblxudHlwZSBVcGRhdGVNYXBGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+ID0gKFxuXHRtc2c6IFRNZXNzYWdlLFxuXHRtb2RlbDogSW1tdXRhYmxlPFRNb2RlbD4sXG5cdHByb3BzOiBUUHJvcHMsXG5cdG9wdGlvbnM6IFVwZGF0ZUZ1bmN0aW9uT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuKSA9PiBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgVE1lc3NhZ2U+O1xuXG5pbnRlcmZhY2UgVXBkYXRlRnVuY3Rpb25PcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4ge1xuXHRkZWZlcjogRGVmZXJGdW5jdGlvbjxUTW9kZWwsIFRNZXNzYWdlPjtcblx0Y2FsbEJhc2U6IENhbGxCYXNlRnVuY3Rpb248VE1vZGVsLCBUUHJvcHMsIFRNZXNzYWdlPjtcbn1cblxudHlwZSBVcGRhdGVGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPiA9IChcblx0bW9kZWw6IEltbXV0YWJsZTxUTW9kZWw+LFxuXHRtc2c6IFRNZXNzYWdlLFxuXHRwcm9wczogVFByb3BzLFxuXHRvcHRpb25zOiBVcGRhdGVGdW5jdGlvbk9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPixcbikgPT4gVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPjtcblxuLyoqXG4gKiBUeXBlIGZvciBtYXBwaW5nIG1lc3NhZ2VzIHRvIGZ1bmN0aW9ucy5cbiAqIFVzZSB0aGlzIHR5cGUgdG8gY3JlYXRlIHlvdXIgdXBkYXRlIGxvZ2ljIGZvciB0aGUgdXNlRWxtaXNoIGhvb2suXG4gKi9cbnR5cGUgVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+ID0ge1xuXHRbVE1lc3NhZ2VOYW1lIGluIFRNZXNzYWdlW1wibmFtZVwiXV06IChcblx0XHRtc2c6IFRNZXNzYWdlICYgeyBuYW1lOiBUTWVzc2FnZU5hbWUgfSxcblx0XHRtb2RlbDogSW1tdXRhYmxlPFRNb2RlbD4sXG5cdFx0cHJvcHM6IFRQcm9wcyxcblx0XHRvcHRpb25zOiBVcGRhdGVGdW5jdGlvbk9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlICYgeyBuYW1lOiBUTWVzc2FnZU5hbWUgfT4sXG5cdCkgPT4gVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPjtcbn07XG5cbnR5cGUgU3Vic2NyaXB0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gPSAobW9kZWw6IEltbXV0YWJsZTxUTW9kZWw+LCBwcm9wczogVFByb3BzKSA9PiBTdWJzY3JpcHRpb25SZXN1bHQ8VE1lc3NhZ2U+O1xuXG5leHBvcnQgdHlwZSB7XG5cdENhbGxCYXNlRnVuY3Rpb24sXG5cdERlZmVyRnVuY3Rpb24sXG5cdERyYWZ0TW9kZWxGdW5jdGlvbixcblx0U3Vic2NyaXB0aW9uLFxuXHRVcGRhdGVGdW5jdGlvbixcblx0VXBkYXRlRnVuY3Rpb25PcHRpb25zLFxuXHRVcGRhdGVNYXAsXG5cdFVwZGF0ZU1hcEZ1bmN0aW9uLFxuXHRVcGRhdGVSZXR1cm5UeXBlLFxufTtcbiJdLCJtYXBwaW5ncyI6IiIsImlnbm9yZUxpc3QiOltdfQ==
6
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ltbXV0YWJsZS9UeXBlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERyYWZ0LCBJbW11dGFibGUgfSBmcm9tIFwiaW1tZXJcIjtcbmltcG9ydCB0eXBlIHsgQ21kLCBNZXNzYWdlLCBTdWJzY3JpcHRpb25SZXN1bHQgfSBmcm9tIFwiLi4vVHlwZXNcIjtcblxudHlwZSBEcmFmdE1vZGVsRnVuY3Rpb248VE1vZGVsPiA9IChkcmFmdDogRHJhZnQ8VE1vZGVsPikgPT4gdm9pZDtcblxuLyoqXG4gKiBUeXBlIGZvciB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBgdXBkYXRlYCBmdW5jdGlvbi5cbiAqL1xudHlwZSBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgVE1lc3NhZ2U+ID0gW0RyYWZ0TW9kZWxGdW5jdGlvbjxUTW9kZWw+IHwgbnVsbCB8IHVuZGVmaW5lZCwgLi4uKENtZDxUTWVzc2FnZT4gfCB1bmRlZmluZWQpW11dIHwgW107XG5cbnR5cGUgRGVmZXJGdW5jdGlvbjxUTW9kZWwsIFRNZXNzYWdlPiA9IChcblx0ZHJhZnRGbjogRHJhZnRNb2RlbEZ1bmN0aW9uPFRNb2RlbD4gfCBudWxsIHwgdW5kZWZpbmVkLFxuXHQuLi5jb21tYW5kczogKENtZDxUTWVzc2FnZT4gfCB1bmRlZmluZWQpW11cbikgPT4gdm9pZDtcbnR5cGUgQ2FsbEJhc2VGdW5jdGlvbjxUTW9kZWwsIFRQcm9wcywgVE1lc3NhZ2U+ID0gKFxuXHRmbjogKFxuXHRcdG1zZzogVE1lc3NhZ2UsXG5cdFx0bW9kZWw6IEltbXV0YWJsZTxUTW9kZWw+LFxuXHRcdHByb3BzOiBUUHJvcHMsXG5cdFx0b3B0aW9uczogVXBkYXRlRnVuY3Rpb25PcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG5cdCkgPT4gVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIE1lc3NhZ2U+LFxuKSA9PiBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgVE1lc3NhZ2U+O1xuXG50eXBlIFVwZGF0ZU1hcEZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gPSAoXG5cdG1zZzogVE1lc3NhZ2UsXG5cdG1vZGVsOiBJbW11dGFibGU8VE1vZGVsPixcblx0cHJvcHM6IFRQcm9wcyxcblx0b3B0aW9uczogVXBkYXRlRnVuY3Rpb25PcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG4pID0+IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTWVzc2FnZT47XG5cbmludGVyZmFjZSBVcGRhdGVGdW5jdGlvbk9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiB7XG5cdGRlZmVyOiBEZWZlckZ1bmN0aW9uPFRNb2RlbCwgVE1lc3NhZ2U+O1xuXHRjYWxsQmFzZTogQ2FsbEJhc2VGdW5jdGlvbjxUTW9kZWwsIFRQcm9wcywgVE1lc3NhZ2U+O1xufVxuXG50eXBlIFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+ID0gKFxuXHRtb2RlbDogSW1tdXRhYmxlPFRNb2RlbD4sXG5cdG1zZzogVE1lc3NhZ2UsXG5cdHByb3BzOiBUUHJvcHMsXG5cdG9wdGlvbnM6IFVwZGF0ZUZ1bmN0aW9uT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuKSA9PiBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgVE1lc3NhZ2U+O1xuXG4vKipcbiAqIFR5cGUgZm9yIG1hcHBpbmcgbWVzc2FnZXMgdG8gZnVuY3Rpb25zLlxuICogVXNlIHRoaXMgdHlwZSB0byBjcmVhdGUgeW91ciB1cGRhdGUgbG9naWMgZm9yIHRoZSB1c2VFbG1pc2ggaG9vay5cbiAqL1xudHlwZSBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4gPSB7XG5cdFtUTWVzc2FnZU5hbWUgaW4gVE1lc3NhZ2VbXCJuYW1lXCJdXTogKFxuXHRcdG1zZzogVE1lc3NhZ2UgJiB7IG5hbWU6IFRNZXNzYWdlTmFtZSB9LFxuXHRcdG1vZGVsOiBJbW11dGFibGU8VE1vZGVsPixcblx0XHRwcm9wczogVFByb3BzLFxuXHRcdG9wdGlvbnM6IFVwZGF0ZUZ1bmN0aW9uT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgJiB7IG5hbWU6IFRNZXNzYWdlTmFtZSB9Pixcblx0KSA9PiBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgVE1lc3NhZ2U+O1xufTtcblxudHlwZSBTdWJzY3JpcHRpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiA9IChtb2RlbDogSW1tdXRhYmxlPFRNb2RlbD4sIHByb3BzOiBUUHJvcHMpID0+IFN1YnNjcmlwdGlvblJlc3VsdDxUTWVzc2FnZT47XG5cbmV4cG9ydCB0eXBlIHtcblx0Q2FsbEJhc2VGdW5jdGlvbixcblx0RGVmZXJGdW5jdGlvbixcblx0RHJhZnRNb2RlbEZ1bmN0aW9uLFxuXHRTdWJzY3JpcHRpb24sXG5cdFVwZGF0ZUZ1bmN0aW9uLFxuXHRVcGRhdGVGdW5jdGlvbk9wdGlvbnMsXG5cdFVwZGF0ZU1hcCxcblx0VXBkYXRlTWFwRnVuY3Rpb24sXG5cdFVwZGF0ZVJldHVyblR5cGUsXG59O1xuIl0sIm1hcHBpbmdzIjoiIiwiaWdub3JlTGlzdCI6W119
@@ -0,0 +1,4 @@
1
+ import { type Immutable } from "immer";
2
+ import type { InitFunction, Message } from "../../Types";
3
+ declare function createModelAndProps<TProps, TModel, TMessage extends Message>(init: InitFunction<TProps, TModel, TMessage>, initProps: () => TProps, modelTemplate?: Partial<TModel>, propsTemplate?: Partial<TProps>): [Immutable<TModel>, TProps];
4
+ export { createModelAndProps };
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createModelAndProps = createModelAndProps;
7
+ var _immer = require("immer");
8
+ 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); }
9
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
10
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
11
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
12
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
13
+ 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; } }
14
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
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(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
18
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : 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); }
20
+ function createModelAndProps(init, initProps, modelTemplate, propsTemplate) {
21
+ var props = _objectSpread(_objectSpread({}, initProps()), propsTemplate);
22
+ var _init = init(props),
23
+ _init2 = _slicedToArray(_init, 1),
24
+ model = _init2[0];
25
+ return [(0, _immer.castImmutable)((0, _immer.freeze)(_objectSpread(_objectSpread({}, model), modelTemplate), true)), props];
26
+ }
27
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaW1tZXIiLCJyZXF1aXJlIiwiX3R5cGVvZiIsIm8iLCJTeW1ib2wiLCJpdGVyYXRvciIsImNvbnN0cnVjdG9yIiwicHJvdG90eXBlIiwiX3NsaWNlZFRvQXJyYXkiLCJyIiwiZSIsIl9hcnJheVdpdGhIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXlMaW1pdCIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVJlc3QiLCJUeXBlRXJyb3IiLCJhIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0IiwidG9TdHJpbmciLCJjYWxsIiwic2xpY2UiLCJuYW1lIiwiQXJyYXkiLCJmcm9tIiwidGVzdCIsImxlbmd0aCIsIm4iLCJsIiwiaSIsInUiLCJmIiwibmV4dCIsIk9iamVjdCIsImRvbmUiLCJwdXNoIiwidmFsdWUiLCJpc0FycmF5Iiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfdG9Qcm9wZXJ0eUtleSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiX3RvUHJpbWl0aXZlIiwidG9QcmltaXRpdmUiLCJTdHJpbmciLCJOdW1iZXIiLCJjcmVhdGVNb2RlbEFuZFByb3BzIiwiaW5pdCIsImluaXRQcm9wcyIsIm1vZGVsVGVtcGxhdGUiLCJwcm9wc1RlbXBsYXRlIiwicHJvcHMiLCJfaW5pdCIsIl9pbml0MiIsIm1vZGVsIiwiY2FzdEltbXV0YWJsZSIsImZyZWV6ZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbW11dGFibGUvdGVzdGluZy9jcmVhdGVNb2RlbEFuZFByb3BzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNhc3RJbW11dGFibGUsIGZyZWV6ZSwgdHlwZSBJbW11dGFibGUgfSBmcm9tIFwiaW1tZXJcIjtcbmltcG9ydCB0eXBlIHsgSW5pdEZ1bmN0aW9uLCBNZXNzYWdlIH0gZnJvbSBcIi4uLy4uL1R5cGVzXCI7XG5cbmZ1bmN0aW9uIGNyZWF0ZU1vZGVsQW5kUHJvcHM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4oXG5cdGluaXQ6IEluaXRGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuXHRpbml0UHJvcHM6ICgpID0+IFRQcm9wcyxcblx0bW9kZWxUZW1wbGF0ZT86IFBhcnRpYWw8VE1vZGVsPixcblx0cHJvcHNUZW1wbGF0ZT86IFBhcnRpYWw8VFByb3BzPixcbik6IFtJbW11dGFibGU8VE1vZGVsPiwgVFByb3BzXSB7XG5cdGNvbnN0IHByb3BzOiBUUHJvcHMgPSB7XG5cdFx0Li4uaW5pdFByb3BzKCksXG5cdFx0Li4ucHJvcHNUZW1wbGF0ZSxcblx0fTtcblx0Y29uc3QgW21vZGVsXSA9IGluaXQocHJvcHMpO1xuXG5cdHJldHVybiBbY2FzdEltbXV0YWJsZShmcmVlemUoeyAuLi5tb2RlbCwgLi4ubW9kZWxUZW1wbGF0ZSB9LCB0cnVlKSksIHByb3BzXTtcbn1cblxuZXhwb3J0IHsgY3JlYXRlTW9kZWxBbmRQcm9wcyB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFBOEQsU0FBQUMsUUFBQUMsQ0FBQSxzQ0FBQUQsT0FBQSx3QkFBQUUsTUFBQSx1QkFBQUEsTUFBQSxDQUFBQyxRQUFBLGFBQUFGLENBQUEsa0JBQUFBLENBQUEsZ0JBQUFBLENBQUEsV0FBQUEsQ0FBQSx5QkFBQUMsTUFBQSxJQUFBRCxDQUFBLENBQUFHLFdBQUEsS0FBQUYsTUFBQSxJQUFBRCxDQUFBLEtBQUFDLE1BQUEsQ0FBQUcsU0FBQSxxQkFBQUosQ0FBQSxLQUFBRCxPQUFBLENBQUFD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
@@ -0,0 +1,18 @@
1
+ import { type Immutable } from "immer";
2
+ import type { Message } from "../../Types";
3
+ import type { UpdateFunctionOptions } from "../Types";
4
+ type UpdateArgsFactory<TProps, TModel, TMessage extends Message> = (msg: TMessage, modelTemplate?: Partial<TModel>, propsTemplate?: Partial<TProps>, optionsTemplate?: Partial<UpdateFunctionOptions<TProps, TModel, TMessage>>) => [TMessage, Immutable<TModel>, TProps, Partial<UpdateFunctionOptions<TProps, TModel, TMessage>>?];
5
+ /**
6
+ * Creates a factory function to create a message, a model, props, and options which can be passed to an update function in tests.
7
+ * @param {() => TModel} initModel A function to create an initial model.
8
+ * @param {() => TProps} initProps A function to create initial props.
9
+ * @returns {UpdateArgsFactory<TProps, TModel, TMessage>} A function to create a message, a model, and props.
10
+ * @example
11
+ * // one time
12
+ * const createUpdateArgs = createUpdateArgsFactory(() => ({ ... }), () => ({ ... }));
13
+ * // in tests
14
+ * const [msg, model, props] = createUpdateArgs(Msg.myMessage(), { ... }, , { ... });
15
+ */
16
+ declare function createUpdateArgsFactory<TProps, TModel, TMessage extends Message>(initModel: () => TModel, initProps: () => TProps): UpdateArgsFactory<TProps, TModel, TMessage>;
17
+ export type { UpdateArgsFactory };
18
+ export { createUpdateArgsFactory };
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createUpdateArgsFactory = createUpdateArgsFactory;
7
+ var _immer = require("immer");
8
+ 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); }
9
+ 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; }
10
+ 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; }
11
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
12
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
13
+ 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); }
14
+ /**
15
+ * Creates a factory function to create a message, a model, props, and options which can be passed to an update function in tests.
16
+ * @param {() => TModel} initModel A function to create an initial model.
17
+ * @param {() => TProps} initProps A function to create initial props.
18
+ * @returns {UpdateArgsFactory<TProps, TModel, TMessage>} A function to create a message, a model, and props.
19
+ * @example
20
+ * // one time
21
+ * const createUpdateArgs = createUpdateArgsFactory(() => ({ ... }), () => ({ ... }));
22
+ * // in tests
23
+ * const [msg, model, props] = createUpdateArgs(Msg.myMessage(), { ... }, , { ... });
24
+ */
25
+ function createUpdateArgsFactory(initModel, initProps) {
26
+ return function createUpdateArgs(msg, modelTemplate, propsTemplate, optionsTemplate) {
27
+ var model = (0, _immer.castImmutable)((0, _immer.freeze)(_objectSpread(_objectSpread({}, initModel()), modelTemplate), true));
28
+ var props = _objectSpread(_objectSpread({}, initProps()), propsTemplate);
29
+ return [msg, model, props, optionsTemplate];
30
+ };
31
+ }
32
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaW1tZXIiLCJyZXF1aXJlIiwiX3R5cGVvZiIsIm8iLCJTeW1ib2wiLCJpdGVyYXRvciIsImNvbnN0cnVjdG9yIiwicHJvdG90eXBlIiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiX3RvUHJvcGVydHlLZXkiLCJ2YWx1ZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiaSIsIl90b1ByaW1pdGl2ZSIsInRvUHJpbWl0aXZlIiwiY2FsbCIsIlR5cGVFcnJvciIsIlN0cmluZyIsIk51bWJlciIsImNyZWF0ZVVwZGF0ZUFyZ3NGYWN0b3J5IiwiaW5pdE1vZGVsIiwiaW5pdFByb3BzIiwiY3JlYXRlVXBkYXRlQXJncyIsIm1zZyIsIm1vZGVsVGVtcGxhdGUiLCJwcm9wc1RlbXBsYXRlIiwib3B0aW9uc1RlbXBsYXRlIiwibW9kZWwiLCJjYXN0SW1tdXRhYmxlIiwiZnJlZXplIiwicHJvcHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW1tdXRhYmxlL3Rlc3RpbmcvY3JlYXRlVXBkYXRlQXJnc0ZhY3RvcnkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY2FzdEltbXV0YWJsZSwgZnJlZXplLCB0eXBlIEltbXV0YWJsZSB9IGZyb20gXCJpbW1lclwiO1xuaW1wb3J0IHR5cGUgeyBNZXNzYWdlIH0gZnJvbSBcIi4uLy4uL1R5cGVzXCI7XG5pbXBvcnQgdHlwZSB7IFVwZGF0ZUZ1bmN0aW9uT3B0aW9ucyB9IGZyb20gXCIuLi9UeXBlc1wiO1xuXG50eXBlIFVwZGF0ZUFyZ3NGYWN0b3J5PFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+ID0gKFxuXHRtc2c6IFRNZXNzYWdlLFxuXHRtb2RlbFRlbXBsYXRlPzogUGFydGlhbDxUTW9kZWw+LFxuXHRwcm9wc1RlbXBsYXRlPzogUGFydGlhbDxUUHJvcHM+LFxuXHRvcHRpb25zVGVtcGxhdGU/OiBQYXJ0aWFsPFVwZGF0ZUZ1bmN0aW9uT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+PixcbikgPT4gW1RNZXNzYWdlLCBJbW11dGFibGU8VE1vZGVsPiwgVFByb3BzLCBQYXJ0aWFsPFVwZGF0ZUZ1bmN0aW9uT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+Pj9dO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBmYWN0b3J5IGZ1bmN0aW9uIHRvIGNyZWF0ZSBhIG1lc3NhZ2UsIGEgbW9kZWwsIHByb3BzLCBhbmQgb3B0aW9ucyB3aGljaCBjYW4gYmUgcGFzc2VkIHRvIGFuIHVwZGF0ZSBmdW5jdGlvbiBpbiB0ZXN0cy5cbiAqIEBwYXJhbSB7KCkgPT4gVE1vZGVsfSBpbml0TW9kZWwgQSBmdW5jdGlvbiB0byBjcmVhdGUgYW4gaW5pdGlhbCBtb2RlbC5cbiAqIEBwYXJhbSB7KCkgPT4gVFByb3BzfSBpbml0UHJvcHMgQSBmdW5jdGlvbiB0byBjcmVhdGUgaW5pdGlhbCBwcm9wcy5cbiAqIEByZXR1cm5zIHtVcGRhdGVBcmdzRmFjdG9yeTxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+fSBBIGZ1bmN0aW9uIHRvIGNyZWF0ZSBhIG1lc3NhZ2UsIGEgbW9kZWwsIGFuZCBwcm9wcy5cbiAqIEBleGFtcGxlXG4gKiAvLyBvbmUgdGltZVxuICogY29uc3QgY3JlYXRlVXBkYXRlQXJncyA9IGNyZWF0ZVVwZGF0ZUFyZ3NGYWN0b3J5KCgpID0+ICh7IC4uLiB9KSwgKCkgPT4gKHsgLi4uIH0pKTtcbiAqIC8vIGluIHRlc3RzXG4gKiBjb25zdCBbbXNnLCBtb2RlbCwgcHJvcHNdID0gY3JlYXRlVXBkYXRlQXJncyhNc2cubXlNZXNzYWdlKCksIHsgLi4uIH0sICwgeyAuLi4gfSk7XG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZVVwZGF0ZUFyZ3NGYWN0b3J5PFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+KFxuXHRpbml0TW9kZWw6ICgpID0+IFRNb2RlbCxcblx0aW5pdFByb3BzOiAoKSA9PiBUUHJvcHMsXG4pOiBVcGRhdGVBcmdzRmFjdG9yeTxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+IHtcblx0cmV0dXJuIGZ1bmN0aW9uIGNyZWF0ZVVwZGF0ZUFyZ3MoXG5cdFx0bXNnOiBUTWVzc2FnZSxcblx0XHRtb2RlbFRlbXBsYXRlPzogUGFydGlhbDxUTW9kZWw+LFxuXHRcdHByb3BzVGVtcGxhdGU/OiBQYXJ0aWFsPFRQcm9wcz4sXG5cdFx0b3B0aW9uc1RlbXBsYXRlPzogUGFydGlhbDxVcGRhdGVGdW5jdGlvbk9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPj4sXG5cdCk6IFtUTWVzc2FnZSwgSW1tdXRhYmxlPFRNb2RlbD4sIFRQcm9wcywgUGFydGlhbDxVcGRhdGVGdW5jdGlvbk9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPj4/XSB7XG5cdFx0Y29uc3QgbW9kZWwgPSBjYXN0SW1tdXRhYmxlKFxuXHRcdFx0ZnJlZXplKFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0Li4uaW5pdE1vZGVsKCksXG5cdFx0XHRcdFx0Li4ubW9kZWxUZW1wbGF0ZSxcblx0XHRcdFx0fSxcblx0XHRcdFx0dHJ1ZSxcblx0XHRcdCksXG5cdFx0KTtcblx0XHRjb25zdCBwcm9wcyA9IHtcblx0XHRcdC4uLmluaXRQcm9wcygpLFxuXHRcdFx0Li4ucHJvcHNUZW1wbGF0ZSxcblx0XHR9O1xuXG5cdFx0cmV0dXJuIFttc2csIG1vZGVsLCBwcm9wcywgb3B0aW9uc1RlbXBsYXRlXTtcblx0fTtcbn1cblxuZXhwb3J0IHR5cGUgeyBVcGRhdGVBcmdz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
@@ -0,0 +1,5 @@
1
+ import type { Immutable } from "immer";
2
+ import { type Dispatch, type Message } from "../../Types";
3
+ import type { Subscription } from "../Types";
4
+ declare function execSubscription<TProps, TModel, TMessage extends Message>(subscription: Subscription<TProps, TModel, TMessage> | undefined, dispatch: Dispatch<TMessage>, model: Immutable<TModel>, props: TProps): () => void;
5
+ export { execSubscription };
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.execSubscription = execSubscription;
7
+ var _Types = require("../../Types");
8
+ var _testing = require("../../testing");
9
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
10
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
11
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
12
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
13
+ function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
14
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
15
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
16
+ function execSubscription(subscription, dispatch, model, props) {
17
+ var noop = function noop() {
18
+ // do nothing
19
+ };
20
+ if (!subscription) {
21
+ return noop;
22
+ }
23
+ var subscriptionResult = subscription(model, props);
24
+ if ((0, _Types.subscriptionIsFunctionArray)(subscriptionResult)) {
25
+ var disposers = subscriptionResult.map(function (sub) {
26
+ return sub(dispatch);
27
+ }).filter(function (disposer) {
28
+ return disposer !== undefined;
29
+ });
30
+ return function () {
31
+ var _iterator = _createForOfIteratorHelper(disposers),
32
+ _step;
33
+ try {
34
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
35
+ var _dispose = _step.value;
36
+ _dispose();
37
+ }
38
+ } catch (err) {
39
+ _iterator.e(err);
40
+ } finally {
41
+ _iterator.f();
42
+ }
43
+ };
44
+ }
45
+ var _subscriptionResult = _slicedToArray(subscriptionResult, 2),
46
+ cmd = _subscriptionResult[0],
47
+ dispose = _subscriptionResult[1];
48
+ (0, _testing.execCmdWithDispatch)(dispatch, cmd);
49
+ return dispose !== null && dispose !== void 0 ? dispose : noop;
50
+ }
51
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfVHlwZXMiLCJyZXF1aXJlIiwiX3Rlc3RpbmciLCJfc2xpY2VkVG9BcnJheSIsInIiLCJlIiwiX2FycmF5V2l0aEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlUmVzdCIsIlR5cGVFcnJvciIsImwiLCJ0IiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJuIiwiaSIsInUiLCJhIiwiZiIsIm8iLCJjYWxsIiwibmV4dCIsIk9iamVjdCIsImRvbmUiLCJwdXNoIiwidmFsdWUiLCJsZW5ndGgiLCJBcnJheSIsImlzQXJyYXkiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsIl9uIiwiRiIsInMiLCJfYXJyYXlMaWtlVG9BcnJheSIsInRvU3RyaW5nIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJmcm9tIiwidGVzdCIsImV4ZWNTdWJzY3JpcHRpb24iLCJzdWJzY3JpcHRpb24iLCJkaXNwYXRjaCIsIm1vZGVsIiwicHJvcHMiLCJub29wIiwic3Vic2NyaXB0aW9uUmVzdWx0Iiwic3Vic2NyaXB0aW9uSXNGdW5jdGlvbkFycmF5IiwiZGlzcG9zZXJzIiwibWFwIiwic3ViIiwiZmlsdGVyIiwiZGlzcG9zZXIiLCJ1bmRlZmluZWQiLCJfaXRlcmF0b3IiLCJfc3RlcCIsImRpc3Bvc2UiLCJlcnIiLCJfc3Vic2NyaXB0aW9uUmVzdWx0IiwiY21kIiwiZXhlY0NtZFdpdGhEaXNwYXRjaCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbW11dGFibGUvdGVzdGluZy9leGVjU3Vic2NyaXB0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSW1tdXRhYmxlIH0gZnJvbSBcImltbWVyXCI7XG5pbXBvcnQgeyBzdWJzY3JpcHRpb25Jc0Z1bmN0aW9uQXJyYXksIHR5cGUgRGlzcGF0Y2gsIHR5cGUgTWVzc2FnZSB9IGZyb20gXCIuLi8uLi9UeXBlc1wiO1xuaW1wb3J0IHsgZXhlY0NtZFdpdGhEaXNwYXRjaCB9IGZyb20gXCIuLi8uLi90ZXN0aW5nXCI7XG5pbXBvcnQgdHlwZSB7IFN1YnNjcmlwdGlvbiB9IGZyb20gXCIuLi9UeXBlc1wiO1xuXG5mdW5jdGlvbiBleGVjU3Vic2NyaXB0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+KFxuXHRzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+IHwgdW5kZWZpbmVkLFxuXHRkaXNwYXRjaDogRGlzcGF0Y2g8VE1lc3NhZ2U+LFxuXHRtb2RlbDogSW1tdXRhYmxlPFRNb2RlbD4sXG5cdHByb3BzOiBUUHJvcHMsXG4pOiAoKSA9PiB2b2lkIHtcblx0Y29uc3Qgbm9vcCA9ICgpOiB2b2lkID0+IHtcblx0XHQvLyBkbyBub3RoaW5nXG5cdH07XG5cblx0aWYgKCFzdWJzY3JpcHRpb24pIHtcblx0XHRyZXR1cm4gbm9vcDtcblx0fVxuXG5cdGNvbnN0IHN1YnNjcmlwdGlvblJlc3VsdCA9IHN1YnNjcmlwdGlvbihtb2RlbCwgcHJvcHMpO1xuXG5cdGlmIChzdWJzY3JpcHRpb25Jc0Z1bmN0aW9uQXJyYXkoc3Vic2NyaXB0aW9uUmVzdWx0KSkge1xuXHRcdGNvbnN0IGRpc3Bvc2VycyA9IHN1YnNjcmlwdGlvblJlc3VsdC5tYXAoKHN1YikgPT4gc3ViKGRpc3BhdGNoKSkuZmlsdGVyKChkaXNwb3NlcikgPT4gZGlzcG9zZXIgIT09IHVuZGVmaW5lZCk7XG5cblx0XHRyZXR1cm4gKCkgPT4ge1xuXHRcdFx0Zm9yIChjb25zdCBkaXNwb3NlIG9mIGRpc3Bvc2Vycykge1xuXHRcdFx0XHRkaXNwb3NlKCk7XG5cdFx0XHR9XG5cdFx0fTtcblx0fVxuXG5cdGNvbnN0IFtjbWQsIGRpc3Bvc2VdID0gc3Vic2NyaXB0aW9uUmVzdWx0O1xuXG5cdGV4ZWNDbWRXaXRoRGlzcGF0Y2g8VE1lc3NhZ2U+KGRpc3BhdGNoLCBjbWQpO1xuXG5cdHJldHVybiBk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
@@ -0,0 +1,30 @@
1
+ import type { Immutable } from "immer";
2
+ import type { InitFunction, Message } from "../../Types";
3
+ import type { UpdateArgsFactory } from "./createUpdateArgsFactory";
4
+ /**
5
+ * Creates a factory function to create a message, a model, props, and options which can be passed to an update function in tests.
6
+ * @param {InitFunction<TProps, TModel, TMessage>} init The init function which creates the model.
7
+ * @param {() => TProps} initProps A function to create initial props.
8
+ * @returns {UpdateArgsFactory<TProps, TModel, TMessage>} A function to create a message, a model, and props.
9
+ * @example
10
+ * // one time
11
+ * const createUpdateArgs = getCreateUpdateArgs(init, () => ({ ... }));
12
+ * // in tests
13
+ * const [msg, model, props] = createUpdateArgs(Msg.myMessage(), { ... }, , { ... });
14
+ */
15
+ declare function getCreateUpdateArgs<TProps, TModel, TMessage extends Message>(init: InitFunction<TProps, TModel, TMessage>, initProps: () => TProps): UpdateArgsFactory<TProps, TModel, TMessage>;
16
+ type ModelAndPropsFactory<TProps, TModel> = (modelTemplate?: Partial<TModel>, propsTemplate?: Partial<TProps>) => [Immutable<TModel>, TProps];
17
+ /**
18
+ * Creates a factory function to create a model, props, and options which can be passed to an update or subscription function in tests.
19
+ * @param {InitFunction<TProps, TModel, TMessage>} init The init function which creates the model.
20
+ * @param {() => TProps} initProps A function to create initial props.
21
+ * @returns {ModelAndPropsFactory<TProps, TModel>} A function to create a a model and props.
22
+ * @example
23
+ * // one time
24
+ * const createModelAndProps = getCreateModelAndProps(init, () => ({ ... }));
25
+ * // in tests
26
+ * const [model, props] = createModelAndProps({ ... }, , { ... });
27
+ */
28
+ declare function getCreateModelAndProps<TProps, TModel, TMessage extends Message>(init: InitFunction<TProps, TModel, TMessage>, initProps: () => TProps): ModelAndPropsFactory<TProps, TModel>;
29
+ export type { ModelAndPropsFactory };
30
+ export { getCreateModelAndProps, getCreateUpdateArgs };
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getCreateModelAndProps = getCreateModelAndProps;
7
+ exports.getCreateUpdateArgs = getCreateUpdateArgs;
8
+ var _createModelAndProps = require("./createModelAndProps");
9
+ function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
10
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
11
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
12
+ function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
13
+ function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
14
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
15
+ /**
16
+ * Creates a factory function to create a message, a model, props, and options which can be passed to an update function in tests.
17
+ * @param {InitFunction<TProps, TModel, TMessage>} init The init function which creates the model.
18
+ * @param {() => TProps} initProps A function to create initial props.
19
+ * @returns {UpdateArgsFactory<TProps, TModel, TMessage>} A function to create a message, a model, and props.
20
+ * @example
21
+ * // one time
22
+ * const createUpdateArgs = getCreateUpdateArgs(init, () => ({ ... }));
23
+ * // in tests
24
+ * const [msg, model, props] = createUpdateArgs(Msg.myMessage(), { ... }, , { ... });
25
+ */
26
+ function getCreateUpdateArgs(init, initProps) {
27
+ return function createUpdateArgs(msg, modelTemplate, propsTemplate, optionsTemplate) {
28
+ var args = (0, _createModelAndProps.createModelAndProps)(init, initProps, modelTemplate, propsTemplate);
29
+ return [msg].concat(_toConsumableArray(args), [optionsTemplate]);
30
+ };
31
+ }
32
+ /**
33
+ * Creates a factory function to create a model, props, and options which can be passed to an update or subscription function in tests.
34
+ * @param {InitFunction<TProps, TModel, TMessage>} init The init function which creates the model.
35
+ * @param {() => TProps} initProps A function to create initial props.
36
+ * @returns {ModelAndPropsFactory<TProps, TModel>} A function to create a a model and props.
37
+ * @example
38
+ * // one time
39
+ * const createModelAndProps = getCreateModelAndProps(init, () => ({ ... }));
40
+ * // in tests
41
+ * const [model, props] = createModelAndProps({ ... }, , { ... });
42
+ */
43
+ function getCreateModelAndProps(init, initProps) {
44
+ return function create(modelTemplate, propsTemplate) {
45
+ return (0, _createModelAndProps.createModelAndProps)(init, initProps, modelTemplate, propsTemplate);
46
+ };
47
+ }
48
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY3JlYXRlTW9kZWxBbmRQcm9wcyIsInJlcXVpcmUiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJyIiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIlR5cGVFcnJvciIsImEiLCJfYXJyYXlMaWtlVG9BcnJheSIsInQiLCJ0b1N0cmluZyIsImNhbGwiLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsIkFycmF5IiwiZnJvbSIsInRlc3QiLCJTeW1ib2wiLCJpdGVyYXRvciIsImlzQXJyYXkiLCJsZW5ndGgiLCJlIiwibiIsImdldENyZWF0ZVVwZGF0ZUFyZ3MiLCJpbml0IiwiaW5pdFByb3BzIiwiY3JlYXRlVXBkYXRlQXJncyIsIm1zZyIsIm1vZGVsVGVtcGxhdGUiLCJwcm9wc1RlbXBsYXRlIiwib3B0aW9uc1RlbXBsYXRlIiwiYXJncyIsImNyZWF0ZU1vZGVsQW5kUHJvcHMiLCJjb25jYXQiLCJnZXRDcmVhdGVNb2RlbEFuZFByb3BzIiwiY3JlYXRlIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ltbXV0YWJsZS90ZXN0aW5nL2dldENyZWF0ZVVwZGF0ZUFyZ3MudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBJbW11dGFibGUgfSBmcm9tIFwiaW1tZXJcIjtcbmltcG9ydCB0eXBlIHsgSW5pdEZ1bmN0aW9uLCBNZXNzYWdlIH0gZnJvbSBcIi4uLy4uL1R5cGVzXCI7XG5pbXBvcnQgdHlwZSB7IFVwZGF0ZUZ1bmN0aW9uT3B0aW9ucyB9IGZyb20gXCIuLi9UeXBlc1wiO1xuaW1wb3J0IHsgY3JlYXRlTW9kZWxBbmRQcm9wcyB9IGZyb20gXCIuL2NyZWF0ZU1vZGVsQW5kUHJvcHNcIjtcbmltcG9ydCB0eXBlIHsgVXBkYXRlQXJnc0ZhY3RvcnkgfSBmcm9tIFwiLi9jcmVhdGVVcGRhdGVBcmdzRmFjdG9yeVwiO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBmYWN0b3J5IGZ1bmN0aW9uIHRvIGNyZWF0ZSBhIG1lc3NhZ2UsIGEgbW9kZWwsIHByb3BzLCBhbmQgb3B0aW9ucyB3aGljaCBjYW4gYmUgcGFzc2VkIHRvIGFuIHVwZGF0ZSBmdW5jdGlvbiBpbiB0ZXN0cy5cbiAqIEBwYXJhbSB7SW5pdEZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT59IGluaXQgVGhlIGluaXQgZnVuY3Rpb24gd2hpY2ggY3JlYXRlcyB0aGUgbW9kZWwuXG4gKiBAcGFyYW0geygpID0+IFRQcm9wc30gaW5pdFByb3BzIEEgZnVuY3Rpb24gdG8gY3JlYXRlIGluaXRpYWwgcHJvcHMuXG4gKiBAcmV0dXJucyB7VXBkYXRlQXJnc0ZhY3Rvcnk8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPn0gQSBmdW5jdGlvbiB0byBjcmVhdGUgYSBtZXNzYWdlLCBhIG1vZGVsLCBhbmQgcHJvcHMuXG4gKiBAZXhhbXBsZVxuICogLy8gb25lIHRpbWVcbiAqIGNvbnN0IGNyZWF0ZVVwZGF0ZUFyZ3MgPSBnZXRDcmVhdGVVcGRhdGVBcmdzKGluaXQsICgpID0+ICh7IC4uLiB9KSk7XG4gKiAvLyBpbiB0ZXN0c1xuICogY29uc3QgW21zZywgbW9kZWwsIHByb3BzXSA9IGNyZWF0ZVVwZGF0ZUFyZ3MoTXNnLm15TWVzc2FnZSgpLCB7IC4uLiB9LCAsIHsgLi4uIH0pO1xuICovXG5mdW5jdGlvbiBnZXRDcmVhdGVVcGRhdGVBcmdzPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+KFxuXHRpbml0OiBJbml0RnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPixcblx0aW5pdFByb3BzOiAoKSA9PiBUUHJvcHMsXG4pOiBVcGRhdGVBcmdzRmFjdG9yeTxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+IHtcblx0cmV0dXJuIGZ1bmN0aW9uIGNyZWF0ZVVwZGF0ZUFyZ3MoXG5cdFx0bXNnOiBUTWVzc2FnZSxcblx0XHRtb2RlbFRlbXBsYXRlPzogUGFydGlhbDxUTW9kZWw+LFxuXHRcdHByb3BzVGVtcGxhdGU/OiBQYXJ0aWFsPFRQcm9wcz4sXG5cdFx0b3B0aW9uc1RlbXBsYXRlPzogUGFydGlhbDxVcGRhdGVGdW5jdGlvbk9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPj4sXG5cdCk6IFtUTWVzc2FnZSwgSW1tdXRhYmxlPFRNb2RlbD4sIFRQcm9wcywgUGFydGlhbDxVcGRhdGVGdW5jdGlvbk9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPj4/XSB7XG5cdFx0Y29uc3QgYXJncyA9IGNyZWF0ZU1vZGVsQW5kUHJvcHMoaW5pdCwgaW5pdFByb3BzLCBtb2RlbFRlbXBsYXRlLCBwcm9wc1RlbXBsYXRlKTtcblxuXHRcdHJldHVybiBbbXNnLCAuLi5hcmdzLCBvcHRpb25zVGVtcGxhdGVdO1xuXHR9O1xufVxuXG50eXBlIE1vZGVsQW5kUHJvcHNGYWN0b3J5PFRQcm9wcywgVE1vZGVsPiA9IChcblx0bW9kZWxUZW1wbGF0ZT86IFBhcnRpYWw8VE1vZGVsPixcblx0cHJvcHNUZW1wbGF0ZT86IFBhcnRpYWw8VFByb3BzPixcbikgPT4gW0ltbXV0YWJsZTxUTW9kZWw+LCBUUHJvcHNdO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBmYWN0b3J5IGZ1bmN0aW9uIHRvIGNyZWF0ZSBhIG1vZGVsLCBwcm9wcywgYW5kIG9wdGlvbnMgd2hpY2ggY2FuIGJlIHBhc3NlZCB0byBhbiB1cGRhdGUgb3Igc3Vic2NyaXB0aW9uIGZ1bmN0aW9uIGluIHRlc3RzLlxuICogQHBhcmFtIHtJbml0RnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPn0gaW5pdCBUaGUgaW5pdCBmdW5jdGlvbiB3aGljaCBjcmVhdGVzIHRoZSBtb2RlbC5cbiAqIEBwYXJhbSB7KCkgPT4gVFByb3BzfSBpbml0UHJvcHMgQSBmdW5jdGlvbiB0byBjcmVhdGUgaW5pdGlhbCBwcm9wcy5cbiAqIEByZXR1cm5zIHtNb2RlbEFuZFByb3BzRmFjdG9yeTxUUHJvcHMsIFRNb2RlbD59IEEgZnVuY3Rpb24gdG8gY3JlYXRlIGEgYSBtb2RlbCBhbmQgcHJvcHMuXG4gKiBAZXhhbXBsZVxuICogLy8gb25lIHRpbWVcbiAqIGNvbnN0IGNyZWF0ZU1vZGVsQW5kUHJvcHMgPSBnZXRDcmVhdGVNb2RlbEFuZFByb3BzKGluaXQsICgpID0+ICh7IC4uLiB9KSk7XG4gKiAvLyBpbiB0ZXN0c1xuICogY29uc3QgW21vZGVsLCBwcm9wc10gPSBjcmVhdGVNb2RlbEFuZFByb3BzKHsgLi4uIH0sICwgeyAuLi4gfSk7XG4gKi9cbmZ1bmN0aW9uIGdldENyZWF0ZU1vZGVsQW5kUHJvcHM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4oXG5cdGluaXQ6IEluaXRGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuXHRpbml0UHJvcHM6ICgpID0+IFRQcm9wcyxcbik6IE1vZGVsQW5kUHJvcHNGYWN0b3J5PFRQcm9wcywgVE1vZGVsPiB7XG5cdHJldHVybiBmdW5jdGlvbiBjcmVhdGUobW9kZWxUZW1wbGF0ZT86IFBhcnRpYWw8VE1vZGVsPiwgcHJvcHNUZW1wbGF0ZT86IFBhcnRpYWw8VFByb3BzPik6IFtJbW11dGFibGU8VE1vZGVsPiwgVFByb3BzXSB7XG5cdFx0cmV0dXJuIGNyZWF0ZU1vZGVsQW5kUHJvcHMoaW5pdCwgaW5pdFByb3BzLCBtb2RlbFRlbXBsYXRlLCBwcm9wc1RlbXBsYXRlKTtcblx0fTtcbn1cblxuZXhwb3J0IHR5cGUgeyBNb2RlbEFuZFByb3BzRmFjdG9yeSB9O1xuXG5leHBvcnQgeyBnZXRDcmVhdGVNb2RlbEFuZFByb3BzLCBnZXRDcmVhdGVVcGRhdGVBcmdzIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFHQSxJQUFBQSxvQkFBQSxHQUFBQyxPQUFBO0FBQTRELFNBQUFDLG1CQUFBQyxDQUFBLFdBQUFDLGtCQUFBLENBQUFELENBQUEsS0FBQUUsZ0JBQUEsQ0FBQUYsQ0FBQSxLQUFBRywyQkFBQSxDQUFBSCxDQUFBLEtBQUFJLGtCQUFBO0FBQUEsU0FBQUEsbUJBQUEsY0FBQUMsU0FBQTtBQUFBLFNBQUFGLDRCQUFBSCxDQUFBLEVBQUFNLENBQUEsUUFBQU4sQ0FBQSwyQkFBQUEsQ0FBQSxTQUFBTyxpQkFBQSxDQUFBUCxDQUFBLEVBQUFNLENBQUEsT0FBQUUsQ0FBQSxNQUFBQyxRQUFBLENBQUFDLElBQUEsQ0FBQVYsQ0FBQSxFQUFBVyxLQUFBLDZCQUFBSCxDQUFBLElBQUFSLENBQUEsQ0FBQVksV0FBQSxLQUFBSixDQUFBLEdBQUFSLENBQUEsQ0FBQVksV0FBQSxDQUFBQyxJQUFBLGFBQUFMLENBQUEsY0FBQUEsQ0FBQSxHQUFBTSxLQUFBLENBQUFDLElBQUEsQ0FBQWYsQ0FBQSxvQkFBQVEsQ0FBQSwrQ0FBQVEsSUFBQSxDQUFBUixDQUFBLElBQUFELGlCQUFBLENBQUFQLENBQUEsRUFBQU0sQ0FBQTtBQUFBLFNBQUFKLGlCQUFBRixDQUFBLDhCQUFBaUIsTUFBQSxZQUFBakIsQ0FBQSxDQUFBaUIsTUFBQSxDQUFBQyxRQUFBLGFBQUFsQixDQUFBLHVCQUFBYyxLQUFBLENBQUFDLElBQUEsQ0FBQWYsQ0FBQTtBQUFBLFNBQUFDLG1CQUFBRCxDQUFBLFFBQUFjLEtBQUEsQ0FBQUssT0FBQSxDQUFBbkIsQ0FBQSxVQUFBTyxpQkFBQSxDQUFBUCxDQUFBO0FBQUEsU0FBQU8sa0JBQUFQLENBQUEsRUFBQU0sQ0FBQSxhQUFBQSxDQUFBLElBQUFBLENBQUEsR0FBQU4sQ0FBQSxDQUFBb0IsTUFBQSxNQUFBZCxDQUFBLEdBQUFOLENBQUEsQ0FBQW9CLE1BQUEsWUFBQUMsQ0FBQSxNQUFBQyxDQUFBLEdBQUFSLEtBQUEsQ0FBQVIsQ0FBQSxHQUFBZSxDQUFBLEdBQUFmLENBQUEsRUFBQWUsQ0FBQSxJQUFBQyxDQUFBLENBQUFELENBQUEsSUFBQXJCLENBQUEsQ0FBQXFCLENBQUEsVUFBQUMsQ0FBQTtBQUc1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0MsbUJBQW1CQSxDQUMzQkMsSUFBNEMsRUFDNUNDLFNBQXVCLEVBQ3VCO0VBQzlDLE9BQU8sU0FBU0MsZ0JBQWdCQSxDQUMvQkMsR0FBYSxFQUNiQyxhQUErQixFQUMvQkMsYUFBK0IsRUFDL0JDLGVBQTBFLEVBQ3lCO0lBQ25HLElBQU1DLElBQUksR0FBRyxJQUFBQyx3Q0FBbUIsRUFBQ1IsSUFBSSxFQUFFQyxTQUFTLEVBQUVHLGFBQWEsRUFBRUMsYUFBYSxDQUFDO0lBRS9FLFFBQVFGLEdBQUcsRUFBQU0sTUFBQSxDQUFBbEMsa0JBQUEsQ0FBS2dDLElBQUksSUFBRUQsZUFBZTtFQUN0QyxDQUFDO0FBQ0Y7QUFPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0ksc0JBQXNCQSxDQUM5QlYsSUFBNEMsRUFDNUNDLFNBQXVCLEVBQ2dCO0VBQ3ZDLE9BQU8sU0FBU1UsTUFBTUEsQ0FBQ1AsYUFBK0IsRUFBRUMsYUFBK0IsRUFBK0I7SUFDckgsT0FBTyxJQUFBRyx3Q0FBbUIsRUFBQ1IsSUFBSSxFQUFFQyxTQUFTLEVBQUVHLGFBQWEsRUFBRUMsYUFBYSxDQUFDO0VBQzFFLENBQUM7QUFDRiIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,26 @@
1
+ import { type Immutable } from "immer";
2
+ import type { Cmd, Message, Nullable } from "../../Types";
3
+ import type { UpdateFunctionOptions, UpdateMap } from "../Types";
4
+ /**
5
+ * Creates an update function out of an UpdateMap.
6
+ * @param updateMap The UpdateMap.
7
+ * @returns The created update function which can be used in tests.
8
+ * @example
9
+ * const updateFn = getUpdateFn(update);
10
+ *
11
+ * // in your tests:
12
+ * const [model, cmd] = updateFn(...args);
13
+ */
14
+ declare function getUpdateFn<TProps, TModel, TMessage extends Message>(updateMap: UpdateMap<TProps, TModel, TMessage>): (msg: TMessage, model: Immutable<TModel>, props: TProps, optionsTemplate?: Partial<UpdateFunctionOptions<TProps, TModel, TMessage>>) => [Partial<TModel>, ...(Cmd<TMessage> | undefined)[]];
15
+ /**
16
+ * Creates an update function out of an UpdateMap which immediately executes the command.
17
+ * @param updateMap The UpdateMap.
18
+ * @returns The created update function which can be used in tests.
19
+ * @example
20
+ * const updateAndExecCmd = getUpdateAndExecCmdFn(update);
21
+ *
22
+ * // in your test:
23
+ * const [model, messages] = await updateAndExecCmd(...args);
24
+ */
25
+ declare function getUpdateAndExecCmdFn<TProps, TModel, TMessage extends Message>(updateMap: UpdateMap<TProps, TModel, TMessage>): (msg: TMessage, model: Immutable<TModel>, props: TProps, optionsTemplate?: Partial<UpdateFunctionOptions<TProps, TModel, TMessage>>) => Promise<[Partial<TModel>, Nullable<TMessage>[]]>;
26
+ export { getUpdateAndExecCmdFn, getUpdateFn };
@@ -0,0 +1,231 @@
1
+ "use strict";
2
+
3
+ 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); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.getUpdateAndExecCmdFn = getUpdateAndExecCmdFn;
8
+ exports.getUpdateFn = getUpdateFn;
9
+ var _immer = require("immer");
10
+ var _testing = require("../../testing");
11
+ var _createCallBase = require("../createCallBase");
12
+ var _createDefer5 = require("../createDefer");
13
+ var _useElmish = require("../useElmish");
14
+ 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 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 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 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; }
15
+ function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
16
+ function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
17
+ function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
18
+ function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
19
+ 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."); }
20
+ function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
21
+ function _toArray(r) { return _arrayWithHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableRest(); }
22
+ function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
23
+ 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; }
24
+ 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; }
25
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
26
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
27
+ 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); }
28
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
29
+ 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."); }
30
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
31
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
32
+ 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; } }
33
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
34
+ (0, _immer.enablePatches)();
35
+
36
+ /**
37
+ * Creates an update function out of an UpdateMap.
38
+ * @param updateMap The UpdateMap.
39
+ * @returns The created update function which can be used in tests.
40
+ * @example
41
+ * const updateFn = getUpdateFn(update);
42
+ *
43
+ * // in your tests:
44
+ * const [model, cmd] = updateFn(...args);
45
+ */
46
+ function getUpdateFn(updateMap) {
47
+ return function updateFn(msg, model, props, optionsTemplate) {
48
+ var _createDefer = (0, _createDefer5.createDefer)(),
49
+ _createDefer2 = _slicedToArray(_createDefer, 2),
50
+ defer = _createDefer2[0],
51
+ getDeferred = _createDefer2[1];
52
+ var callBase = (0, _createCallBase.createCallBase)(msg, model, props, {
53
+ defer: defer
54
+ });
55
+ var options = _objectSpread({
56
+ defer: defer,
57
+ callBase: callBase
58
+ }, optionsTemplate);
59
+ var _callUpdateMap = (0, _useElmish.callUpdateMap)(updateMap, msg, model, props, options),
60
+ _callUpdateMap2 = _toArray(_callUpdateMap),
61
+ draftFn = _callUpdateMap2[0],
62
+ commands = _callUpdateMap2.slice(1);
63
+ var _getDeferred = getDeferred(),
64
+ _getDeferred2 = _slicedToArray(_getDeferred, 2),
65
+ deferredDraftFunctions = _getDeferred2[0],
66
+ deferredCommands = _getDeferred2[1];
67
+ var allDraftFunctions = [].concat(_toConsumableArray(deferredDraftFunctions), [draftFn]).filter(function (fn) {
68
+ return fn != null;
69
+ });
70
+ var currentModel = model;
71
+ var recordedPatches = [];
72
+ var _iterator = _createForOfIteratorHelper(allDraftFunctions),
73
+ _step;
74
+ try {
75
+ var _loop = function _loop() {
76
+ var fn = _step.value;
77
+ currentModel = (0, _immer.produce)(currentModel, function (draft) {
78
+ fn(draft);
79
+ }, function (patches) {
80
+ recordedPatches.push.apply(recordedPatches, _toConsumableArray(patches));
81
+ });
82
+ };
83
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
84
+ _loop();
85
+ }
86
+ } catch (err) {
87
+ _iterator.e(err);
88
+ } finally {
89
+ _iterator.f();
90
+ }
91
+ var diff = getDiffFromPatches(recordedPatches, currentModel);
92
+ return [diff].concat(_toConsumableArray(commands), _toConsumableArray(deferredCommands));
93
+ };
94
+ }
95
+
96
+ /**
97
+ * Creates an update function out of an UpdateMap which immediately executes the command.
98
+ * @param updateMap The UpdateMap.
99
+ * @returns The created update function which can be used in tests.
100
+ * @example
101
+ * const updateAndExecCmd = getUpdateAndExecCmdFn(update);
102
+ *
103
+ * // in your test:
104
+ * const [model, messages] = await updateAndExecCmd(...args);
105
+ */
106
+ function getUpdateAndExecCmdFn(updateMap) {
107
+ return /*#__PURE__*/function () {
108
+ var _updateAndExecCmdFn = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(msg, model, props, optionsTemplate) {
109
+ var _createDefer3, _createDefer4, defer, getDeferred, callBase, options, _callUpdateMap3, _callUpdateMap4, draftFn, commands, _getDeferred3, _getDeferred4, deferredDraftFunctions, deferredCommands, allDraftFunctions, currentModel, recordedPatches, _iterator2, _step2, _loop2, diff, messages;
110
+ return _regeneratorRuntime().wrap(function _callee$(_context2) {
111
+ while (1) switch (_context2.prev = _context2.next) {
112
+ case 0:
113
+ _createDefer3 = (0, _createDefer5.createDefer)(), _createDefer4 = _slicedToArray(_createDefer3, 2), defer = _createDefer4[0], getDeferred = _createDefer4[1];
114
+ callBase = (0, _createCallBase.createCallBase)(msg, model, props, {
115
+ defer: defer
116
+ });
117
+ options = _objectSpread({
118
+ defer: defer,
119
+ callBase: callBase
120
+ }, optionsTemplate);
121
+ _callUpdateMap3 = (0, _useElmish.callUpdateMap)(updateMap, msg, model, props, options), _callUpdateMap4 = _toArray(_callUpdateMap3), draftFn = _callUpdateMap4[0], commands = _callUpdateMap4.slice(1);
122
+ _getDeferred3 = getDeferred(), _getDeferred4 = _slicedToArray(_getDeferred3, 2), deferredDraftFunctions = _getDeferred4[0], deferredCommands = _getDeferred4[1];
123
+ allDraftFunctions = [draftFn].concat(_toConsumableArray(deferredDraftFunctions)).filter(function (fn) {
124
+ return fn != null;
125
+ });
126
+ currentModel = model;
127
+ recordedPatches = [];
128
+ _iterator2 = _createForOfIteratorHelper(allDraftFunctions);
129
+ _context2.prev = 9;
130
+ _loop2 = /*#__PURE__*/_regeneratorRuntime().mark(function _loop2() {
131
+ var fn;
132
+ return _regeneratorRuntime().wrap(function _loop2$(_context) {
133
+ while (1) switch (_context.prev = _context.next) {
134
+ case 0:
135
+ fn = _step2.value;
136
+ currentModel = (0, _immer.produce)(currentModel, function (draft) {
137
+ fn(draft);
138
+ }, function (patches) {
139
+ recordedPatches.push.apply(recordedPatches, _toConsumableArray(patches));
140
+ });
141
+ case 2:
142
+ case "end":
143
+ return _context.stop();
144
+ }
145
+ }, _loop2);
146
+ });
147
+ _iterator2.s();
148
+ case 12:
149
+ if ((_step2 = _iterator2.n()).done) {
150
+ _context2.next = 16;
151
+ break;
152
+ }
153
+ return _context2.delegateYield(_loop2(), "t0", 14);
154
+ case 14:
155
+ _context2.next = 12;
156
+ break;
157
+ case 16:
158
+ _context2.next = 21;
159
+ break;
160
+ case 18:
161
+ _context2.prev = 18;
162
+ _context2.t1 = _context2["catch"](9);
163
+ _iterator2.e(_context2.t1);
164
+ case 21:
165
+ _context2.prev = 21;
166
+ _iterator2.f();
167
+ return _context2.finish(21);
168
+ case 24:
169
+ diff = getDiffFromPatches(recordedPatches, currentModel);
170
+ _context2.next = 27;
171
+ return _testing.execCmd.apply(void 0, _toConsumableArray(commands).concat(_toConsumableArray(deferredCommands)));
172
+ case 27:
173
+ messages = _context2.sent;
174
+ return _context2.abrupt("return", [diff, messages]);
175
+ case 29:
176
+ case "end":
177
+ return _context2.stop();
178
+ }
179
+ }, _callee, null, [[9, 18, 21, 24]]);
180
+ }));
181
+ function updateAndExecCmdFn(_x, _x2, _x3, _x4) {
182
+ return _updateAndExecCmdFn.apply(this, arguments);
183
+ }
184
+ return updateAndExecCmdFn;
185
+ }();
186
+ }
187
+ function getDiffFromPatches(patches, model) {
188
+ var diff = {};
189
+
190
+ /* eslint-disable @typescript-eslint/no-unsafe-assignment */
191
+ /* eslint-disable @typescript-eslint/ban-ts-comment */
192
+ /* eslint-disable @typescript-eslint/no-dynamic-delete */
193
+ var _iterator3 = _createForOfIteratorHelper(patches),
194
+ _step3;
195
+ try {
196
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
197
+ var patch = _step3.value;
198
+ // biome-ignore lint/style/noNonNullAssertion: The path is always defined
199
+ var path = patch.path[0];
200
+ switch (patch.op) {
201
+ case "replace":
202
+ {
203
+ // @ts-expect-error
204
+ diff[path] = model[path];
205
+ break;
206
+ }
207
+ case "add":
208
+ {
209
+ // @ts-expect-error
210
+ diff[path] = model[path];
211
+ break;
212
+ }
213
+ case "remove":
214
+ {
215
+ // @ts-expect-error
216
+ delete diff[path];
217
+ break;
218
+ }
219
+ }
220
+ }
221
+ /* eslint-enable @typescript-eslint/no-dynamic-delete */
222
+ /* eslint-enable @typescript-eslint/ban-ts-comment */
223
+ /* eslint-enable @typescript-eslint/no-unsafe-assignment */
224
+ } catch (err) {
225
+ _iterator3.e(err);
226
+ } finally {
227
+ _iterator3.f();
228
+ }
229
+ return diff;
230
+ }
231
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaW1tZXIiLCJyZXF1aXJlIiwiX3Rlc3RpbmciLCJfY3JlYXRlQ2FsbEJhc2UiLCJfY3JlYXRlRGVmZXI1IiwiX3VzZUVsbWlzaCIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJlIiwidCIsInIiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJuIiwiaGFzT3duUHJvcGVydHkiLCJvIiwiZGVmaW5lUHJvcGVydHkiLCJ2YWx1ZSIsImkiLCJTeW1ib2wiLCJhIiwiaXRlcmF0b3IiLCJjIiwiYXN5bmNJdGVyYXRvciIsInUiLCJ0b1N0cmluZ1RhZyIsImRlZmluZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIndyYXAiLCJHZW5lcmF0b3IiLCJjcmVhdGUiLCJDb250ZXh0IiwibWFrZUludm9rZU1ldGhvZCIsInRyeUNhdGNoIiwidHlwZSIsImFyZyIsImNhbGwiLCJoIiwibCIsImYiLCJzIiwieSIsIkdlbmVyYXRvckZ1bmN0aW9uIiwiR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUiLCJwIiwiZCIsImdldFByb3RvdHlwZU9mIiwidiIsInZhbHVlcyIsImciLCJkZWZpbmVJdGVyYXRvck1ldGhvZHMiLCJmb3JFYWNoIiwiX2ludm9rZSIsIkFzeW5jSXRlcmF0b3IiLCJpbnZva2UiLCJfdHlwZW9mIiwicmVzb2x2ZSIsIl9fYXdhaXQiLCJ0aGVuIiwiY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmciLCJFcnJvciIsImRvbmUiLCJtZXRob2QiLCJkZWxlZ2F0ZSIsIm1heWJlSW52b2tlRGVsZWdhdGUiLCJzZW50IiwiX3NlbnQiLCJkaXNwYXRjaEV4Y2VwdGlvbiIsImFicnVwdCIsIlR5cGVFcnJvciIsInJlc3VsdE5hbWUiLCJuZXh0IiwibmV4dExvYyIsInB1c2hUcnlFbnRyeSIsInRyeUxvYyIsImNhdGNoTG9jIiwiZmluYWxseUxvYyIsImFmdGVyTG9jIiwidHJ5RW50cmllcyIsInB1c2giLCJyZXNldFRyeUVudHJ5IiwiY29tcGxldGlvbiIsInJlc2V0IiwiaXNOYU4iLCJsZW5ndGgiLCJkaXNwbGF5TmFtZSIsImlzR2VuZXJhdG9yRnVuY3Rpb24iLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJtYXJrIiwic2V0UHJvdG90eXBlT2YiLCJfX3Byb3RvX18iLCJhd3JhcCIsImFzeW5jIiwiUHJvbWlzZSIsImtleXMiLCJyZXZlcnNlIiwicG9wIiwicHJldiIsImNoYXJBdCIsInNsaWNlIiwic3RvcCIsInJ2YWwiLCJoYW5kbGUiLCJjb21wbGV0ZSIsImZpbmlzaCIsIl9jYXRjaCIsImRlbGVnYXRlWWllbGQiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJfYXN5bmNUb0dlbmVyYXRvciIsImFyZ3VtZW50cyIsImFwcGx5IiwiX25leHQiLCJfdGhyb3ciLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsIkFycmF5IiwiaXNBcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9uIiwiRiIsIl90b0NvbnN1bWFibGVBcnJheSIsIl9hcnJheVdpdGhvdXRIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVTcHJlYWQiLCJfYXJyYXlMaWtlVG9BcnJheSIsIl90b0FycmF5IiwiX2FycmF5V2l0aEhvbGVzIiwiX25vbkl0ZXJhYmxlUmVzdCIsImZyb20iLCJvd25LZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiX29iamVjdFNwcmVhZCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiX3RvUHJvcGVydHlLZXkiLCJfdG9QcmltaXRpdmUiLCJ0b1ByaW1pdGl2ZSIsIlN0cmluZyIsIk51bWJlciIsIl9zbGljZWRUb0FycmF5IiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwidG9TdHJpbmciLCJ0ZXN0IiwiZW5hYmxlUGF0Y2hlcyIsImdldFVwZGF0ZUZuIiwidXBkYXRlTWFwIiwidXBkYXRlRm4iLCJtc2ciLCJtb2RlbCIsInByb3BzIiwib3B0aW9uc1RlbXBsYXRlIiwiX2NyZWF0ZURlZmVyIiwiY3JlYXRlRGVmZXIiLCJfY3JlYXRlRGVmZXIyIiwiZGVmZXIiLCJnZXREZWZlcnJlZCIsImNhbGxCYXNlIiwiY3JlYXRlQ2FsbEJhc2UiLCJvcHRpb25zIiwiX2NhbGxVcGRhdGVNYXAiLCJjYWxsVXBkYXRlTWFwIiwiX2NhbGxVcGRhdGVNYXAyIiwiZHJhZnRGbiIsImNvbW1hbmRzIiwiX2dldERlZmVycmVkIiwiX2dldERlZmVycmVkMiIsImRlZmVycmVkRHJhZnRGdW5jdGlvbnMiLCJkZWZlcnJlZENvbW1hbmRzIiwiYWxsRHJhZnRGdW5jdGlvbnMiLCJjb25jYXQiLCJmbiIsImN1cnJlbnRNb2RlbCIsInJlY29yZGVkUGF0Y2hlcyIsIl9pdGVyYXRvciIsIl9zdGVwIiwiX2xvb3AiLCJwcm9kdWNlIiwiZHJhZnQiLCJwYXRjaGVzIiwiZXJyIiwiZGlmZiIsImdldERpZmZGcm9tUGF0Y2hlcyIsImdldFVwZGF0ZUFuZEV4ZWNDbWRGbiIsIl91cGRhdGVBbmRFeGVjQ21kRm4iLCJfY2FsbGVlIiwiX2NyZWF0ZURlZmVyMyIsIl9jcmVhdGVEZWZlcjQiLCJfY2FsbFVwZGF0ZU1hcDMiLCJfY2FsbFVwZGF0ZU1hcDQiLCJfZ2V0RGVmZXJyZWQzIiwiX2dldERlZmVycmVkNCIsIl9pdGVyYXRvcjIiLCJfc3RlcDIiLCJfbG9vcDIiLCJtZXNzYWdlcyIsIl9jYWxsZWUkIiwiX2NvbnRleHQyIiwiX2xvb3AyJCIsIl9jb250ZXh0IiwidDEiLCJleGVjQ21kIiwidXBkYXRlQW5kRXhlY0NtZEZuIiwiX3giLCJfeDIiLCJfeDMiLCJfeDQiLCJfaXRlcmF0b3IzIiwiX3N0ZXAzIiwicGF0Y2giLCJwYXRoIiwib3AiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW1tdXRhYmxlL3Rlc3RpbmcvZ2V0VXBkYXRlRm4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZW5hYmxlUGF0Y2hlcywgcHJvZHVjZSwgdHlwZSBEcmFmdCwgdHlwZSBJbW11dGFibGUsIHR5cGUgUGF0Y2ggfSBmcm9tIFwiaW1tZXJcIjtcbmltcG9ydCB7IGV4ZWNDbWQgfSBmcm9tIFwiLi4vLi4vdGVzdGluZ1wiO1xuaW1wb3J0IHR5cGUgeyBDbWQsIE1lc3NhZ2UsIE51bGxhYmxlIH0gZnJvbSBcIi4uLy4uL1R5cGVzXCI7XG5pbXBvcnQgeyBjcmVhdGVDYWxsQmFzZSB9IGZyb20gXCIuLi9jcmVhdGVDYWxsQmFzZVwiO1xuaW1wb3J0IHsgY3JlYXRlRGVmZXIgfSBmcm9tIFwiLi4vY3JlYXRlRGVmZXJcIjtcbmltcG9ydCB0eXBlIHsgVXBkYXRlRnVuY3Rpb25PcHRpb25zLCBVcGRhdGVNYXAgfSBmcm9tIFwiLi4vVHlwZXNcIjtcbmltcG9ydCB7IGNhbGxVcGRhdGVNYXAgfSBmcm9tIFwiLi4vdXNlRWxtaXNoXCI7XG5cbmVuYWJsZVBhdGNoZXMoKTtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIHVwZGF0ZSBmdW5jdGlvbiBvdXQgb2YgYW4gVXBkYXRlTWFwLlxuICogQHBhcmFtIHVwZGF0ZU1hcCBUaGUgVXBkYXRlTWFwLlxuICogQHJldHVybnMgVGhlIGNyZWF0ZWQgdXBkYXRlIGZ1bmN0aW9uIHdoaWNoIGNhbiBiZSB1c2VkIGluIHRlc3RzLlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IHVwZGF0ZUZuID0gZ2V0VXBkYXRlRm4odXBkYXRlKTtcbiAqXG4gKiAvLyBpbiB5b3VyIHRlc3RzOlxuICogY29uc3QgW21vZGVsLCBjbWRdID0gdXBkYXRlRm4oLi4uYXJncyk7XG4gKi9cbmZ1bmN0aW9uIGdldFVwZGF0ZUZuPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+KFxuXHR1cGRhdGVNYXA6IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuKTogKFxuXHRtc2c6IFRNZXNzYWdlLFxuXHRtb2RlbDogSW1tdXRhYmxlPFRNb2RlbD4sXG5cdHByb3BzOiBUUHJvcHMsXG5cdG9wdGlvbnNUZW1wbGF0ZT86IFBhcnRpYWw8VXBkYXRlRnVuY3Rpb25PcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4+LFxuKSA9PiBbUGFydGlhbDxUTW9kZWw+LCAuLi4oQ21kPFRNZXNzYWdlPiB8IHVuZGVmaW5lZClbXV0ge1xuXHRyZXR1cm4gZnVuY3Rpb24gdXBkYXRlRm4obXNnLCBtb2RlbCwgcHJvcHMsIG9wdGlvbnNUZW1wbGF0ZSk6IFtQYXJ0aWFsPFRNb2RlbD4sIC4uLihDbWQ8VE1lc3NhZ2U+IHwgdW5kZWZpbmVkKVtdXSB7XG5cdFx0Y29uc3QgW2RlZmVyLCBnZXREZWZlcnJlZF0gPSBjcmVhdGVEZWZlcjxUTW9kZWwsIFRNZXNzYWdlPigpO1xuXHRcdGNvbnN0IGNhbGxCYXNlID0gY3JlYXRlQ2FsbEJhc2UobXNnLCBtb2RlbCwgcHJvcHMsIHsgZGVmZXIgfSk7XG5cblx0XHRjb25zdCBvcHRpb25zOiBVcGRhdGVGdW5jdGlvbk9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiA9IHtcblx0XHRcdGRlZmVyLFxuXHRcdFx0Y2FsbEJhc2UsXG5cdFx0XHQuLi5vcHRpb25zVGVtcGxhdGUsXG5cdFx0fTtcblxuXHRcdGNvbnN0IFtkcmFmdEZuLCAuLi5jb21tYW5kc10gPSBjYWxsVXBkYXRlTWFwKHVwZGF0ZU1hcCwgbXNnLCBtb2RlbCwgcHJvcHMsIG9wdGlvbnMpO1xuXHRcdGNvbnN0IFtkZWZlcnJlZERyYWZ0RnVuY3Rpb25zLCBkZWZlcnJlZENvbW1hbmRzXSA9IGdldERlZmVycmVkKCk7XG5cblx0XHRjb25zdCBhbGxEcmFmdEZ1bmN0aW9ucyA9IFsuLi5kZWZlcnJlZERyYWZ0RnVuY3Rpb25zLCBkcmFmdEZuXS5maWx0ZXIoKGZuKSA9PiBmbiAhPSBudWxsKTtcblxuXHRcdGxldCBjdXJyZW50TW9kZWwgPSBtb2RlbDtcblx0XHRjb25zdCByZWNvcmRlZFBhdGNoZXM6IFBhdGNoW10gPSBbXTtcblxuXHRcdGZvciAoY29uc3QgZm4gb2YgYWxsRHJhZnRGdW5jdGlvbnMpIHtcblx0XHRcdGN1cnJlbnRNb2RlbCA9IHByb2R1Y2UoXG5cdFx0XHRcdGN1cnJlbnRNb2RlbCxcblx0XHRcdFx0KGRyYWZ0OiBEcmFmdDxUTW9kZWw+KSA9PiB7XG5cdFx0XHRcdFx0Zm4oZHJhZnQpO1xuXHRcdFx0XHR9LFxuXHRcdFx0XHQocGF0Y2hlcykgPT4ge1xuXHRcdFx0XHRcdHJlY29yZGVkUGF0Y2hlcy5wdXNoKC4uLnBhdGNoZXMpO1xuXHRcdFx0XHR9LFxuXHRcdFx0KTtcblx0XHR9XG5cblx0XHRjb25zdCBkaWZmID0gZ2V0RGlmZkZyb21QYXRjaGVzKHJlY29yZGVkUGF0Y2hlcywgY3VycmVudE1vZGVsKTtcblxuXHRcdHJldHVybiBbZGlmZiwgLi4uY29tbWFuZHMsIC4uLmRlZmVycmVkQ29tbWFuZHNdO1xuXHR9O1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYW4gdXBkYXRlIGZ1bmN0aW9uIG91dCBvZiBhbiBVcGRhdGVNYXAgd2hpY2ggaW1tZWRpYXRlbHkgZXhlY3V0ZXMgdGhlIGNvbW1hbmQuXG4gKiBAcGFyYW0gdXBkYXRlTWFwIFRoZSBVcGRhdGVNYXAuXG4gKiBAcmV0dXJucyBUaGUgY3JlYXRlZCB1cGRhdGUgZnVuY3Rpb24gd2hpY2ggY2FuIGJlIHVzZWQgaW4gdGVzdHMuXG4gKiBAZXhhbXBsZVxuICogY29uc3QgdXBkYXRlQW5kRXhlY0NtZCA9IGdldFVwZGF0ZUFuZEV4ZWNDbWRGbih1cGRhdGUpO1xuICpcbiAqIC8vIGluIHlvdXIgdGVzdDpcbiAqIGNvbnN0IFttb2RlbCwgbWVzc2FnZXNdID0gYXdhaXQgdXBkYXRlQW5kRXhlY0NtZCguLi5hcmdzKTtcbiAqL1xuZnVuY3Rpb24gZ2V0VXBkYXRlQW5kRXhlY0NtZEZuPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+KFxuXHR1cGRhdGVNYXA6IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuKTogKFxuXHRtc2c6IFRNZXNzYWdlLFxuXHRtb2RlbDogSW1tdXRhYmxlPFRNb2RlbD4sXG5cdHByb3BzOiBUUHJvcHMsXG5cdG9wdGlvbnNUZW1wbGF0ZT86IFBhcnRpYWw8VXBkYXRlRnVuY3Rpb25PcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4+LFxuKSA9PiBQcm9taXNlPFtQYXJ0aWFsPFRNb2RlbD4sIE51bGxhYmxlPFRNZXNzYWdlPltdXT4ge1xuXHRyZXR1cm4gYXN5bmMgZnVuY3Rpb24gdXBkYXRlQW5kRXhlY0NtZEZuKG1zZywgbW9kZWwsIHByb3BzLCBvcHRpb25zVGVtcGxhdGUpOiBQcm9taXNlPFtQYXJ0aWFsPFRNb2RlbD4sIE51bGxhYmxlPFRNZXNzYWdlPltdXT4ge1xuXHRcdGNvbnN0IFtkZWZlciwgZ2V0RGVmZXJyZWRdID0gY3JlYXRlRGVmZXI8VE1vZGVsLCBUTWVzc2FnZT4oKTtcblx0XHRjb25zdCBjYWxsQmFzZSA9IGNyZWF0ZUNhbGxCYXNlKG1zZywgbW9kZWwsIHByb3BzLCB7IGRlZmVyIH0pO1xuXG5cdFx0Y29uc3Qgb3B0aW9uczogVXBkYXRlRnVuY3Rpb25PcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gPSB7XG5cdFx0XHRkZWZlcixcblx0XHRcdGNhbGxCYXNlLFxuXHRcdFx0Li4ub3B0aW9uc1RlbXBsYXRlLFxuXHRcdH07XG5cblx0XHRjb25zdCBbZHJhZnRGbiwgLi4uY29tbWFuZHNdID0gY2FsbFVwZGF0ZU1hcCh1cGRhdGVNYXAsIG1zZywgbW9kZWwsIHByb3BzLCBvcHRpb25zKTtcblx0XHRjb25zdCBbZGVmZXJyZWREcmFmdEZ1bmN0aW9ucywgZGVmZXJyZWRDb21tYW5kc10gPSBnZXREZWZlcnJlZCgpO1xuXG5cdFx0Y29uc3QgYWxsRHJhZnRGdW5jdGlvbnMgPSBbZHJhZnRGbiwgLi4uZGVmZXJyZWREcmFmdEZ1bmN0aW9uc10uZmlsdGVyKChmbikgPT4gZm4gIT0gbnVsbCk7XG5cblx0XHRsZXQgY3VycmVudE1vZGVsID0gbW9kZWw7XG5cdFx0Y29uc3QgcmVjb3JkZWRQYXRjaGVzOiBQYXRjaFtdID0gW107XG5cblx0XHRmb3IgKGNvbnN0IGZuIG9mIGFsbERyYWZ0RnVuY3Rpb25zKSB7XG5cdFx0XHRjdXJyZW50TW9kZWwgPSBwcm9kdWNlKFxuXHRcdFx0XHRjdXJyZW50TW9kZWwsXG5cdFx0XHRcdChkcmFmdDogRHJhZnQ8VE1vZGVsPikgPT4ge1xuXHRcdFx0XHRcdGZuKGRyYWZ0KTtcblx0XHRcdFx0fSxcblx0XHRcdFx0KHBhdGNoZXMpID0+IHtcblx0XHRcdFx0XHRyZWNvcmRlZFBhdGNoZXMucHVzaCguLi5wYXRjaGVzKTtcblx0XHRcdFx0fSxcblx0XHRcdCk7XG5cdFx0fVxuXG5cdFx0Y29uc3QgZGlmZiA9IGdldERpZmZGcm9tUGF0Y2hlcyhyZWNvcmRlZFBhdGNoZXMsIGN1cnJlbnRNb2RlbCk7XG5cblx0XHRjb25zdCBtZXNzYWdlcyA9IGF3YWl0IGV4ZWNDbWQoLi4uY29tbWFuZHMsIC4uLmRlZmVycmVkQ29tbWFuZHMpO1xuXG5cdFx0cmV0dXJuIFtkaWZmLCBtZXNzYWdlc107XG5cdH07XG59XG5cbmZ1bmN0aW9uIGdldERpZmZGcm9tUGF0Y2hlczxUTW9kZWw+KHBhdGNoZXM6IFBhdGNoW10sIG1vZGVsOiBJbW11dGFibGU8VE1vZGVsPik6IFBhcnRpYWw8VE1vZGVsPiB7XG5cdGNvbnN0IGRpZmY6IFBhcnRpYWw8VE1vZGVsPiA9IHt9O1xuXG5cdC8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtYXNzaWdubWVudCAqL1xuXHQvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnQgKi9cblx0LyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWR5bmFtaWMtZGVsZXRlICovXG5cdGZvciAoY29uc3QgcGF0Y2ggb2YgcGF0Y2hlcykge1xuXHRcdC8vIGJpb21lLWlnbm9yZSBsaW50L3N0eWxlL25vTm9uTnVsbEFzc2VydGlvbjogVGhlIHBhdGggaXMgYWx3YXlzIGRlZmluZWRcblx0XHRjb25zdCBwYXRoID0gcGF0Y2gucGF0aFswXSE7XG5cblx0XHRzd2l0Y2ggKHBhdGNoLm9wKSB7XG5cdFx0XHRjYXNlIFwicmVwbGFjZVwiOiB7XG5cdFx0XHRcdC8vIEB0cy1leHBlY3QtZXJyb3Jcblx0XHRcdFx0ZGlmZltwYXRoXSA9IG1vZGVsW3BhdGhdO1xuXG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXHRcdFx0Y2FzZSBcImFkZFwiOiB7XG5cdFx0XHRcdC8vIEB0cy1leHBlY3QtZXJyb3Jcblx0XHRcdFx0ZGlmZltwYXRoXSA9IG1vZGVsW3BhdGhdO1xuXG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXHRcdFx0Y2FzZSBcInJlbW92ZVwiOiB7XG5cdFx0XHRcdC8vIEB0cy1leHBlY3QtZXJyb3Jcblx0XHRcdFx0ZGVsZXRlIGRpZmZbcGF0aF07XG5cblx0XHRcdFx0YnJlYWs7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdC8qIGVzbGludC1lbmFibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWR5bmFtaWMtZGVsZXRlICovXG5cdC8qIGVzbGludC1lbmFibGUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50ICovXG5cdC8qIGVzbGludC1lbmFibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1hc3NpZ25tZW50ICovXG5cblx0cmV0dXJuIGRpZmY7XG59XG5cbmV4cG9ydCB7IGdldFVwZGF0ZUFuZEV4ZWNDbWRGbiwgZ2V0VXBkYXRlRm4gfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxRQUFBLEdBQUFELE9BQUE7QUFFQSxJQUFBRSxlQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxhQUFBLEdBQUFILE9BQUE7QUFFQSxJQUFBSSxVQUFBLEdBQUFKLE9BQUE7QUFBNkMsU0FBQUssb0JBQUEsa0JBTDdDLHFKQUFBQSxtQkFBQSxZQUFBQSxvQkFBQSxXQUFBQyxDQUFBLFNBQUFD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UUFBUSxHQUFBRSxTQUFBLENBQUF0SSxJQUFBO1lBQUEsT0FBQXNJLFNBQUEsQ0FBQW5JLE1BQUEsV0FFUCxDQUFDbUgsSUFBSSxFQUFFYyxRQUFRLENBQUM7VUFBQTtVQUFBO1lBQUEsT0FBQUUsU0FBQSxDQUFBbEcsSUFBQTtRQUFBO01BQUEsR0FBQXNGLE9BQUE7SUFBQSxDQUN2QjtJQUFBLFNBbkNxQmlCLGtCQUFrQkEsQ0FBQUMsRUFBQSxFQUFBQyxHQUFBLEVBQUFDLEdBQUEsRUFBQUMsR0FBQTtNQUFBLE9BQUF0QixtQkFBQSxDQUFBM0UsS0FBQSxPQUFBRCxTQUFBO0lBQUE7SUFBQSxPQUFsQjhGLGtCQUFrQjtFQUFBO0FBb0N6QztBQUVBLFNBQVNwQixrQkFBa0JBLENBQVNILE9BQWdCLEVBQUU5QixLQUF3QixFQUFtQjtFQUNoRyxJQUFNZ0MsSUFBcUIsR0FBRyxDQUFDLENBQUM7O0VBRWhDO0VBQ0E7RUFDQTtFQUFBLElBQUEwQixVQUFBLEdBQUEvRiwwQkFBQSxDQUNvQm1FLE9BQU87SUFBQTZCLE1BQUE7RUFBQTtJQUEzQixLQUFBRCxVQUFBLENBQUF6SyxDQUFBLE1BQUEwSyxNQUFBLEdBQUFELFVBQUEsQ0FBQXRNLENBQUEsSUFBQWtELElBQUEsR0FBNkI7TUFBQSxJQUFsQnNKLEtBQUssR0FBQUQsTUFBQSxDQUFBbk0sS0FBQTtNQUNmO01BQ0EsSUFBTXFNLElBQUksR0FBR0QsS0FBSyxDQUFDQyxJQUFJLENBQUMsQ0FBQyxDQUFFO01BRTNCLFFBQVFELEtBQUssQ0FBQ0UsRUFBRTtRQUNmLEtBQUssU0FBUztVQUFFO1lBQ2Y7WUFDQTlCLElBQUksQ0FBQzZCLElBQUksQ0FBQyxHQUFHN0QsS0FBSyxDQUFDNkQsSUFBSSxDQUFDO1lBRXhCO1VBQ0Q7UUFDQSxLQUFLLEtBQUs7VUFBRTtZQUNYO1lBQ0E3QixJQUFJLENBQUM2QixJQUFJLENBQUMsR0FBRzdELEtBQUssQ0FBQzZELElBQUksQ0FBQztZQUV4QjtVQUNEO1FBQ0EsS0FBSyxRQUFRO1VBQUU7WUFDZDtZQUNBLE9BQU83QixJQUFJLENBQUM2QixJQUFJLENBQUM7WUFFakI7VUFDRDtNQUNEO0lBQ0Q7SUFDQTtJQUNBO0lBQ0E7RUFBQSxTQUFBOUIsR0FBQTtJQUFBMkIsVUFBQSxDQUFBM00sQ0FBQSxDQUFBZ0wsR0FBQTtFQUFBO0lBQUEyQixVQUFBLENBQUExSyxDQUFBO0VBQUE7RUFFQSxPQUFPZ0osSUFBSTtBQUNaIiwiaWdub3JlTGlzdCI6W119
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,7 @@
1
+ export type { RenderWithModelOptions } from "../../fakeOptions";
2
+ export { execCmd, initAndExecCmd, renderWithModel } from "../../testing";
3
+ export { createModelAndProps } from "./createModelAndProps";
4
+ export { createUpdateArgsFactory, type UpdateArgsFactory } from "./createUpdateArgsFactory";
5
+ export { execSubscription } from "./execSubscription";
6
+ export { getCreateModelAndProps, getCreateUpdateArgs, type ModelAndPropsFactory } from "./getCreateUpdateArgs";
7
+ export { getUpdateAndExecCmdFn, getUpdateFn } from "./getUpdateFn";
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "createModelAndProps", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _createModelAndProps.createModelAndProps;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "createUpdateArgsFactory", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _createUpdateArgsFactory.createUpdateArgsFactory;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "execCmd", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _testing.execCmd;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "execSubscription", {
25
+ enumerable: true,
26
+ get: function get() {
27
+ return _execSubscription.execSubscription;
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "getCreateModelAndProps", {
31
+ enumerable: true,
32
+ get: function get() {
33
+ return _getCreateUpdateArgs.getCreateModelAndProps;
34
+ }
35
+ });
36
+ Object.defineProperty(exports, "getCreateUpdateArgs", {
37
+ enumerable: true,
38
+ get: function get() {
39
+ return _getCreateUpdateArgs.getCreateUpdateArgs;
40
+ }
41
+ });
42
+ Object.defineProperty(exports, "getUpdateAndExecCmdFn", {
43
+ enumerable: true,
44
+ get: function get() {
45
+ return _getUpdateFn.getUpdateAndExecCmdFn;
46
+ }
47
+ });
48
+ Object.defineProperty(exports, "getUpdateFn", {
49
+ enumerable: true,
50
+ get: function get() {
51
+ return _getUpdateFn.getUpdateFn;
52
+ }
53
+ });
54
+ Object.defineProperty(exports, "initAndExecCmd", {
55
+ enumerable: true,
56
+ get: function get() {
57
+ return _testing.initAndExecCmd;
58
+ }
59
+ });
60
+ Object.defineProperty(exports, "renderWithModel", {
61
+ enumerable: true,
62
+ get: function get() {
63
+ return _testing.renderWithModel;
64
+ }
65
+ });
66
+ var _testing = require("../../testing");
67
+ var _createModelAndProps = require("./createModelAndProps");
68
+ var _createUpdateArgsFactory = require("./createUpdateArgsFactory");
69
+ var _execSubscription = require("./execSubscription");
70
+ var _getCreateUpdateArgs = require("./getCreateUpdateArgs");
71
+ var _getUpdateFn = require("./getUpdateFn");
72
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdGVzdGluZyIsInJlcXVpcmUiLCJfY3JlYXRlTW9kZWxBbmRQcm9wcyIsIl9jcmVhdGVVcGRhdGVBcmdzRmFjdG9yeSIsIl9leGVjU3Vic2NyaXB0aW9uIiwiX2dldENyZWF0ZVVwZGF0ZUFyZ3MiLCJfZ2V0VXBkYXRlRm4iXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW1tdXRhYmxlL3Rlc3RpbmcvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgeyBSZW5kZXJXaXRoTW9kZWxPcHRpb25zIH0gZnJvbSBcIi4uLy4uL2Zha2VPcHRpb25zXCI7XG5leHBvcnQgeyBleGVjQ21kLCBpbml0QW5kRXhlY0NtZCwgcmVuZGVyV2l0aE1vZGVsIH0gZnJvbSBcIi4uLy4uL3Rlc3RpbmdcIjtcbmV4cG9ydCB7IGNyZWF0ZU1vZGVsQW5kUHJvcHMgfSBmcm9tIFwiLi9jcmVhdGVNb2RlbEFuZFByb3BzXCI7XG5leHBvcnQgeyBjcmVhdGVVcGRhdGVBcmdzRmFjdG9yeSwgdHlwZSBVcGRhdGVBcmdzRmFjdG9yeSB9IGZyb20gXCIuL2NyZWF0ZVVwZGF0ZUFyZ3NGYWN0b3J5XCI7XG5leHBvcnQgeyBleGVjU3Vic2NyaXB0aW9uIH0gZnJvbSBcIi4vZXhlY1N1YnNjcmlwdGlvblwiO1xuZXhwb3J0IHsgZ2V0Q3JlYXRlTW9kZWxBbmRQcm9wcywgZ2V0Q3JlYXRlVXBkYXRlQXJncywgdHlwZSBNb2RlbEFuZFByb3BzRmFjdG9yeSB9IGZyb20gXCIuL2dldENyZWF0ZVVwZGF0ZUFyZ3NcIjtcbmV4cG9ydCB7IGdldFVwZGF0ZUFuZEV4ZWNDbWRGbiwgZ2V0VXBkYXRlRm4gfSBmcm9tIFwiLi9nZXRVcGRhdGVGblwiO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLElBQUFBLFFBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLG9CQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSx3QkFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsaUJBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLG9CQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxZQUFBLEdBQUFMLE9BQUEiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -1,6 +1,5 @@
1
1
  import type { Message, UpdateFunctionOptions } from "../Types";
2
2
  type UpdateArgsFactory<TProps, TModel, TMessage extends Message> = (msg: TMessage, modelTemplate?: Partial<TModel>, propsTemplate?: Partial<TProps>, optionsTemplate?: Partial<UpdateFunctionOptions<TProps, TModel, TMessage>>) => [TMessage, TModel, TProps, Partial<UpdateFunctionOptions<TProps, TModel, TMessage>>?];
3
- type ModelAndPropsFactory<TProps, TModel> = (modelTemplate?: Partial<TModel>, propsTemplate?: Partial<TProps>) => [TModel, TProps];
4
3
  /**
5
4
  * Creates a factory function to create a message, a model, props, and options which can be passed to an update function in tests.
6
5
  * @param {() => TModel} initModel A function to create an initial model.
@@ -13,5 +12,5 @@ type ModelAndPropsFactory<TProps, TModel> = (modelTemplate?: Partial<TModel>, pr
13
12
  * const [msg, model, props] = createUpdateArgs(Msg.myMessage(), { ... }, , { ... });
14
13
  */
15
14
  declare function createUpdateArgsFactory<TProps, TModel, TMessage extends Message>(initModel: () => TModel, initProps: () => TProps): UpdateArgsFactory<TProps, TModel, TMessage>;
16
- export type { ModelAndPropsFactory, UpdateArgsFactory };
15
+ export type { UpdateArgsFactory };
17
16
  export { createUpdateArgsFactory };
@@ -28,4 +28,4 @@ function createUpdateArgsFactory(initModel, initProps) {
28
28
  return [msg, model, props, optionsTemplate];
29
29
  };
30
30
  }
31
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjcmVhdGVVcGRhdGVBcmdzRmFjdG9yeSIsImluaXRNb2RlbCIsImluaXRQcm9wcyIsImNyZWF0ZVVwZGF0ZUFyZ3MiLCJtc2ciLCJtb2RlbFRlbXBsYXRlIiwicHJvcHNUZW1wbGF0ZSIsIm9wdGlvbnNUZW1wbGF0ZSIsIm1vZGVsIiwiX29iamVjdFNwcmVhZCIsInByb3BzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3RpbmcvY3JlYXRlVXBkYXRlQXJnc0ZhY3RvcnkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBNZXNzYWdlLCBVcGRhdGVGdW5jdGlvbk9wdGlvbnMgfSBmcm9tIFwiLi4vVHlwZXNcIjtcblxudHlwZSBVcGRhdGVBcmdzRmFjdG9yeTxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPiA9IChcblx0bXNnOiBUTWVzc2FnZSxcblx0bW9kZWxUZW1wbGF0ZT86IFBhcnRpYWw8VE1vZGVsPixcblx0cHJvcHNUZW1wbGF0ZT86IFBhcnRpYWw8VFByb3BzPixcblx0b3B0aW9uc1RlbXBsYXRlPzogUGFydGlhbDxVcGRhdGVGdW5jdGlvbk9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPj4sXG4pID0+IFtUTWVzc2FnZSwgVE1vZGVsLCBUUHJvcHMsIFBhcnRpYWw8VXBkYXRlRnVuY3Rpb25PcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4+P107XG5cbnR5cGUgTW9kZWxBbmRQcm9wc0ZhY3Rvcnk8VFByb3BzLCBUTW9kZWw+ID0gKFxuXHRtb2RlbFRlbXBsYXRlPzogUGFydGlhbDxUTW9kZWw+LFxuXHRwcm9wc1RlbXBsYXRlPzogUGFydGlhbDxUUHJvcHM+LFxuKSA9PiBbVE1vZGVsLCBUUHJvcHNdO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBmYWN0b3J5IGZ1bmN0aW9uIHRvIGNyZWF0ZSBhIG1lc3NhZ2UsIGEgbW9kZWwsIHByb3BzLCBhbmQgb3B0aW9ucyB3aGljaCBjYW4gYmUgcGFzc2VkIHRvIGFuIHVwZGF0ZSBmdW5jdGlvbiBpbiB0ZXN0cy5cbiAqIEBwYXJhbSB7KCkgPT4gVE1vZGVsfSBpbml0TW9kZWwgQSBmdW5jdGlvbiB0byBjcmVhdGUgYW4gaW5pdGlhbCBtb2RlbC5cbiAqIEBwYXJhbSB7KCkgPT4gVFByb3BzfSBpbml0UHJvcHMgQSBmdW5jdGlvbiB0byBjcmVhdGUgaW5pdGlhbCBwcm9wcy5cbiAqIEByZXR1cm5zIHtVcGRhdGVBcmdzRmFjdG9yeTxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+fSBBIGZ1bmN0aW9uIHRvIGNyZWF0ZSBhIG1lc3NhZ2UsIGEgbW9kZWwsIGFuZCBwcm9wcy5cbiAqIEBleGFtcGxlXG4gKiAvLyBvbmUgdGltZVxuICogY29uc3QgY3JlYXRlVXBkYXRlQXJncyA9IGNyZWF0ZVVwZGF0ZUFyZ3NGYWN0b3J5KCgpID0+ICh7IC4uLiB9KSwgKCkgPT4gKHsgLi4uIH0pKTtcbiAqIC8vIGluIHRlc3RzXG4gKiBjb25zdCBbbXNnLCBtb2RlbCwgcHJvcHNdID0gY3JlYXRlVXBkYXRlQXJncyhNc2cubXlNZXNzYWdlKCksIHsgLi4uIH0sICwgeyAuLi4gfSk7XG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZVVwZGF0ZUFyZ3NGYWN0b3J5PFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+KFxuXHRpbml0TW9kZWw6ICgpID0+IFRNb2RlbCxcblx0aW5pdFByb3BzOiAoKSA9PiBUUHJvcHMsXG4pOiBVcGRhdGVBcmdzRmFjdG9yeTxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+IHtcblx0cmV0dXJuIGZ1bmN0aW9uIGNyZWF0ZVVwZGF0ZUFyZ3MoXG5cdFx0bXNnOiBUTWVzc2FnZSxcblx0XHRtb2RlbFRlbXBsYXRlPzogUGFydGlhbDxUTW9kZWw+LFxuXHRcdHByb3BzVGVtcGxhdGU/OiBQYXJ0aWFsPFRQcm9wcz4sXG5cdFx0b3B0aW9uc1RlbXBsYXRlPzogUGFydGlhbDxVcGRhdGVGdW5jdGlvbk9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPj4sXG5cdCk6IFtUTWVzc2FnZSwgVE1vZGVsLCBUUHJvcHMsIFBhcnRpYWw8VXBkYXRlRnVuY3Rpb25PcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4+P10ge1xuXHRcdGNvbnN0IG1vZGVsID0ge1xuXHRcdFx0Li4uaW5pdE1vZGVsKCksXG5cdFx0XHQuLi5tb2RlbFRlbXBsYXRlLFxuXHRcdH07XG5cdFx0Y29uc3QgcHJvcHMgPSB7XG5cdFx0XHQuLi5pbml0UHJvcHMoKSxcblx0XHRcdC4uLnByb3BzVGVtcGxhdGUsXG5cdFx0fTtcblxuXHRcdHJldHVybiBbbXNnLCBtb2RlbCwgcHJvcHMsIG9wdGlvbnNUZW1wbGF0ZV07XG5cdH07XG59XG5cbmV4cG9ydCB0eXBlIHsgTW9kZWxBbmRQcm9wc0ZhY3RvcnksIFVwZGF0ZUFyZ3NGYWN0b3J5IH07XG5cbmV4cG9ydCB7IGNyZWF0ZVVwZGF0ZUFyZ3NGYWN0b3J5IH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQWNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSx1QkFBdUJBLENBQy9CQyxTQUF1QixFQUN2QkMsU0FBdUIsRUFDdUI7RUFDOUMsT0FBTyxTQUFTQyxnQkFBZ0JBLENBQy9CQyxHQUFhLEVBQ2JDLGFBQStCLEVBQy9CQyxhQUErQixFQUMvQkMsZUFBMEUsRUFDYztJQUN4RixJQUFNQyxLQUFLLEdBQUFDLGFBQUEsQ0FBQUEsYUFBQSxLQUNQUixTQUFTLENBQUMsQ0FBQyxHQUNYSSxhQUFhLENBQ2hCO0lBQ0QsSUFBTUssS0FBSyxHQUFBRCxhQUFBLENBQUFBLGFBQUEsS0FDUFAsU0FBUyxDQUFDLENBQUMsR0FDWEksYUFBYSxDQUNoQjtJQUVELE9BQU8sQ0FBQ0YsR0FBRyxFQUFFSSxLQUFLLEVBQUVFLEtBQUssRUFBRUgsZUFBZSxDQUFDO0VBQzVDLENBQUM7QUFDRiIsImlnbm9yZUxpc3QiOltdfQ==
31
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjcmVhdGVVcGRhdGVBcmdzRmFjdG9yeSIsImluaXRNb2RlbCIsImluaXRQcm9wcyIsImNyZWF0ZVVwZGF0ZUFyZ3MiLCJtc2ciLCJtb2RlbFRlbXBsYXRlIiwicHJvcHNUZW1wbGF0ZSIsIm9wdGlvbnNUZW1wbGF0ZSIsIm1vZGVsIiwiX29iamVjdFNwcmVhZCIsInByb3BzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3RpbmcvY3JlYXRlVXBkYXRlQXJnc0ZhY3RvcnkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBNZXNzYWdlLCBVcGRhdGVGdW5jdGlvbk9wdGlvbnMgfSBmcm9tIFwiLi4vVHlwZXNcIjtcblxudHlwZSBVcGRhdGVBcmdzRmFjdG9yeTxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPiA9IChcblx0bXNnOiBUTWVzc2FnZSxcblx0bW9kZWxUZW1wbGF0ZT86IFBhcnRpYWw8VE1vZGVsPixcblx0cHJvcHNUZW1wbGF0ZT86IFBhcnRpYWw8VFByb3BzPixcblx0b3B0aW9uc1RlbXBsYXRlPzogUGFydGlhbDxVcGRhdGVGdW5jdGlvbk9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPj4sXG4pID0+IFtUTWVzc2FnZSwgVE1vZGVsLCBUUHJvcHMsIFBhcnRpYWw8VXBkYXRlRnVuY3Rpb25PcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4+P107XG5cbi8qKlxuICogQ3JlYXRlcyBhIGZhY3RvcnkgZnVuY3Rpb24gdG8gY3JlYXRlIGEgbWVzc2FnZSwgYSBtb2RlbCwgcHJvcHMsIGFuZCBvcHRpb25zIHdoaWNoIGNhbiBiZSBwYXNzZWQgdG8gYW4gdXBkYXRlIGZ1bmN0aW9uIGluIHRlc3RzLlxuICogQHBhcmFtIHsoKSA9PiBUTW9kZWx9IGluaXRNb2RlbCBBIGZ1bmN0aW9uIHRvIGNyZWF0ZSBhbiBpbml0aWFsIG1vZGVsLlxuICogQHBhcmFtIHsoKSA9PiBUUHJvcHN9IGluaXRQcm9wcyBBIGZ1bmN0aW9uIHRvIGNyZWF0ZSBpbml0aWFsIHByb3BzLlxuICogQHJldHVybnMge1VwZGF0ZUFyZ3NGYWN0b3J5PFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT59IEEgZnVuY3Rpb24gdG8gY3JlYXRlIGEgbWVzc2FnZSwgYSBtb2RlbCwgYW5kIHByb3BzLlxuICogQGV4YW1wbGVcbiAqIC8vIG9uZSB0aW1lXG4gKiBjb25zdCBjcmVhdGVVcGRhdGVBcmdzID0gY3JlYXRlVXBkYXRlQXJnc0ZhY3RvcnkoKCkgPT4gKHsgLi4uIH0pLCAoKSA9PiAoeyAuLi4gfSkpO1xuICogLy8gaW4gdGVzdHNcbiAqIGNvbnN0IFttc2csIG1vZGVsLCBwcm9wc10gPSBjcmVhdGVVcGRhdGVBcmdzKE1zZy5teU1lc3NhZ2UoKSwgeyAuLi4gfSwgLCB7IC4uLiB9KTtcbiAqL1xuZnVuY3Rpb24gY3JlYXRlVXBkYXRlQXJnc0ZhY3Rvcnk8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4oXG5cdGluaXRNb2RlbDogKCkgPT4gVE1vZGVsLFxuXHRpbml0UHJvcHM6ICgpID0+IFRQcm9wcyxcbik6IFVwZGF0ZUFyZ3NGYWN0b3J5PFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4ge1xuXHRyZXR1cm4gZnVuY3Rpb24gY3JlYXRlVXBkYXRlQXJncyhcblx0XHRtc2c6IFRNZXNzYWdlLFxuXHRcdG1vZGVsVGVtcGxhdGU/OiBQYXJ0aWFsPFRNb2RlbD4sXG5cdFx0cHJvcHNUZW1wbGF0ZT86IFBhcnRpYWw8VFByb3BzPixcblx0XHRvcHRpb25zVGVtcGxhdGU/OiBQYXJ0aWFsPFVwZGF0ZUZ1bmN0aW9uT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+Pixcblx0KTogW1RNZXNzYWdlLCBUTW9kZWwsIFRQcm9wcywgUGFydGlhbDxVcGRhdGVGdW5jdGlvbk9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPj4/XSB7XG5cdFx0Y29uc3QgbW9kZWwgPSB7XG5cdFx0XHQuLi5pbml0TW9kZWwoKSxcblx0XHRcdC4uLm1vZGVsVGVtcGxhdGUsXG5cdFx0fTtcblx0XHRjb25zdCBwcm9wcyA9IHtcblx0XHRcdC4uLmluaXRQcm9wcygpLFxuXHRcdFx0Li4ucHJvcHNUZW1wbGF0ZSxcblx0XHR9O1xuXG5cdFx0cmV0dXJuIFttc2csIG1vZGVsLCBwcm9wcywgb3B0aW9uc1RlbXBsYXRlXTtcblx0fTtcbn1cblxuZXhwb3J0IHR5cGUgeyBVcGRhdGVBcmdzRmFjdG9yeSB9O1xuXG5leHBvcnQgeyBjcmVhdGVVcGRhdGVBcmdzRmFjdG9yeSB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFTQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsdUJBQXVCQSxDQUMvQkMsU0FBdUIsRUFDdkJDLFNBQXVCLEVBQ3VCO0VBQzlDLE9BQU8sU0FBU0MsZ0JBQWdCQSxDQUMvQkMsR0FBYSxFQUNiQyxhQUErQixFQUMvQkMsYUFBK0IsRUFDL0JDLGVBQTBFLEVBQ2M7SUFDeEYsSUFBTUMsS0FBSyxHQUFBQyxhQUFBLENBQUFBLGFBQUEsS0FDUFIsU0FBUyxDQUFDLENBQUMsR0FDWEksYUFBYSxDQUNoQjtJQUNELElBQU1LLEtBQUssR0FBQUQsYUFBQSxDQUFBQSxhQUFBLEtBQ1BQLFNBQVMsQ0FBQyxDQUFDLEdBQ1hJLGFBQWEsQ0FDaEI7SUFFRCxPQUFPLENBQUNGLEdBQUcsRUFBRUksS0FBSyxFQUFFRSxLQUFLLEVBQUVILGVBQWUsQ0FBQztFQUM1QyxDQUFDO0FBQ0YiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -1,5 +1,5 @@
1
1
  import type { InitFunction, Message } from "../Types";
2
- import type { ModelAndPropsFactory, UpdateArgsFactory } from "./createUpdateArgsFactory";
2
+ import type { UpdateArgsFactory } from "./createUpdateArgsFactory";
3
3
  /**
4
4
  * Creates a factory function to create a message, a model, props, and options which can be passed to an update function in tests.
5
5
  * @param {InitFunction<TProps, TModel, TMessage>} init The init function which creates the model.
@@ -12,6 +12,7 @@ import type { ModelAndPropsFactory, UpdateArgsFactory } from "./createUpdateArgs
12
12
  * const [msg, model, props] = createUpdateArgs(Msg.myMessage(), { ... }, , { ... });
13
13
  */
14
14
  declare function getCreateUpdateArgs<TProps, TModel, TMessage extends Message>(init: InitFunction<TProps, TModel, TMessage>, initProps: () => TProps): UpdateArgsFactory<TProps, TModel, TMessage>;
15
+ type ModelAndPropsFactory<TProps, TModel> = (modelTemplate?: Partial<TModel>, propsTemplate?: Partial<TProps>) => [TModel, TProps];
15
16
  /**
16
17
  * Creates a factory function to create a model, props, and options which can be passed to an update or subscription function in tests.
17
18
  * @param {InitFunction<TProps, TModel, TMessage>} init The init function which creates the model.
@@ -24,4 +25,5 @@ declare function getCreateUpdateArgs<TProps, TModel, TMessage extends Message>(i
24
25
  * const [model, props] = createModelAndProps({ ... }, , { ... });
25
26
  */
26
27
  declare function getCreateModelAndProps<TProps, TModel, TMessage extends Message>(init: InitFunction<TProps, TModel, TMessage>, initProps: () => TProps): ModelAndPropsFactory<TProps, TModel>;
28
+ export type { ModelAndPropsFactory };
27
29
  export { getCreateModelAndProps, getCreateUpdateArgs };
@@ -29,7 +29,6 @@ function getCreateUpdateArgs(init, initProps) {
29
29
  return [msg].concat(_toConsumableArray(args), [optionsTemplate]);
30
30
  };
31
31
  }
32
-
33
32
  /**
34
33
  * Creates a factory function to create a model, props, and options which can be passed to an update or subscription function in tests.
35
34
  * @param {InitFunction<TProps, TModel, TMessage>} init The init function which creates the model.
@@ -46,4 +45,4 @@ function getCreateModelAndProps(init, initProps) {
46
45
  return (0, _createModelAndProps.createModelAndProps)(init, initProps, modelTemplate, propsTemplate);
47
46
  };
48
47
  }
49
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY3JlYXRlTW9kZWxBbmRQcm9wcyIsInJlcXVpcmUiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJyIiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIlR5cGVFcnJvciIsImEiLCJfYXJyYXlMaWtlVG9BcnJheSIsInQiLCJ0b1N0cmluZyIsImNhbGwiLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsIkFycmF5IiwiZnJvbSIsInRlc3QiLCJTeW1ib2wiLCJpdGVyYXRvciIsImlzQXJyYXkiLCJsZW5ndGgiLCJlIiwibiIsImdldENyZWF0ZVVwZGF0ZUFyZ3MiLCJpbml0IiwiaW5pdFByb3BzIiwiY3JlYXRlVXBkYXRlQXJncyIsIm1zZyIsIm1vZGVsVGVtcGxhdGUiLCJwcm9wc1RlbXBsYXRlIiwib3B0aW9uc1RlbXBsYXRlIiwiYXJncyIsImNyZWF0ZU1vZGVsQW5kUHJvcHMiLCJjb25jYXQiLCJnZXRDcmVhdGVNb2RlbEFuZFByb3BzIiwiY3JlYXRlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3RpbmcvZ2V0Q3JlYXRlVXBkYXRlQXJncy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEluaXRGdW5jdGlvbiwgTWVzc2FnZSwgVXBkYXRlRnVuY3Rpb25PcHRpb25zIH0gZnJvbSBcIi4uL1R5cGVzXCI7XG5pbXBvcnQgeyBjcmVhdGVNb2RlbEFuZFByb3BzIH0gZnJvbSBcIi4vY3JlYXRlTW9kZWxBbmRQcm9wc1wiO1xuaW1wb3J0IHR5cGUgeyBNb2RlbEFuZFByb3BzRmFjdG9yeSwgVXBkYXRlQXJnc0ZhY3RvcnkgfSBmcm9tIFwiLi9jcmVhdGVVcGRhdGVBcmdzRmFjdG9yeVwiO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBmYWN0b3J5IGZ1bmN0aW9uIHRvIGNyZWF0ZSBhIG1lc3NhZ2UsIGEgbW9kZWwsIHByb3BzLCBhbmQgb3B0aW9ucyB3aGljaCBjYW4gYmUgcGFzc2VkIHRvIGFuIHVwZGF0ZSBmdW5jdGlvbiBpbiB0ZXN0cy5cbiAqIEBwYXJhbSB7SW5pdEZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT59IGluaXQgVGhlIGluaXQgZnVuY3Rpb24gd2hpY2ggY3JlYXRlcyB0aGUgbW9kZWwuXG4gKiBAcGFyYW0geygpID0+IFRQcm9wc30gaW5pdFByb3BzIEEgZnVuY3Rpb24gdG8gY3JlYXRlIGluaXRpYWwgcHJvcHMuXG4gKiBAcmV0dXJucyB7VXBkYXRlQXJnc0ZhY3Rvcnk8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPn0gQSBmdW5jdGlvbiB0byBjcmVhdGUgYSBtZXNzYWdlLCBhIG1vZGVsLCBhbmQgcHJvcHMuXG4gKiBAZXhhbXBsZVxuICogLy8gb25lIHRpbWVcbiAqIGNvbnN0IGNyZWF0ZVVwZGF0ZUFyZ3MgPSBnZXRDcmVhdGVVcGRhdGVBcmdzKGluaXQsICgpID0+ICh7IC4uLiB9KSk7XG4gKiAvLyBpbiB0ZXN0c1xuICogY29uc3QgW21zZywgbW9kZWwsIHByb3BzXSA9IGNyZWF0ZVVwZGF0ZUFyZ3MoTXNnLm15TWVzc2FnZSgpLCB7IC4uLiB9LCAsIHsgLi4uIH0pO1xuICovXG5mdW5jdGlvbiBnZXRDcmVhdGVVcGRhdGVBcmdzPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+KFxuXHRpbml0OiBJbml0RnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPixcblx0aW5pdFByb3BzOiAoKSA9PiBUUHJvcHMsXG4pOiBVcGRhdGVBcmdzRmFjdG9yeTxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+IHtcblx0cmV0dXJuIGZ1bmN0aW9uIGNyZWF0ZVVwZGF0ZUFyZ3MoXG5cdFx0bXNnOiBUTWVzc2FnZSxcblx0XHRtb2RlbFRlbXBsYXRlPzogUGFydGlhbDxUTW9kZWw+LFxuXHRcdHByb3BzVGVtcGxhdGU/OiBQYXJ0aWFsPFRQcm9wcz4sXG5cdFx0b3B0aW9uc1RlbXBsYXRlPzogUGFydGlhbDxVcGRhdGVGdW5jdGlvbk9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPj4sXG5cdCk6IFtUTWVzc2FnZSwgVE1vZGVsLCBUUHJvcHMsIFBhcnRpYWw8VXBkYXRlRnVuY3Rpb25PcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4+P10ge1xuXHRcdGNvbnN0IGFyZ3MgPSBjcmVhdGVNb2RlbEFuZFByb3BzKGluaXQsIGluaXRQcm9wcywgbW9kZWxUZW1wbGF0ZSwgcHJvcHNUZW1wbGF0ZSk7XG5cblx0XHRyZXR1cm4gW21zZywgLi4uYXJncywgb3B0aW9uc1RlbXBsYXRlXTtcblx0fTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgZmFjdG9yeSBmdW5jdGlvbiB0byBjcmVhdGUgYSBtb2RlbCwgcHJvcHMsIGFuZCBvcHRpb25zIHdoaWNoIGNhbiBiZSBwYXNzZWQgdG8gYW4gdXBkYXRlIG9yIHN1YnNjcmlwdGlvbiBmdW5jdGlvbiBpbiB0ZXN0cy5cbiAqIEBwYXJhbSB7SW5pdEZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT59IGluaXQgVGhlIGluaXQgZnVuY3Rpb24gd2hpY2ggY3JlYXRlcyB0aGUgbW9kZWwuXG4gKiBAcGFyYW0geygpID0+IFRQcm9wc30gaW5pdFByb3BzIEEgZnVuY3Rpb24gdG8gY3JlYXRlIGluaXRpYWwgcHJvcHMuXG4gKiBAcmV0dXJucyB7TW9kZWxBbmRQcm9wc0ZhY3Rvcnk8VFByb3BzLCBUTW9kZWw+fSBBIGZ1bmN0aW9uIHRvIGNyZWF0ZSBhIGEgbW9kZWwgYW5kIHByb3BzLlxuICogQGV4YW1wbGVcbiAqIC8vIG9uZSB0aW1lXG4gKiBjb25zdCBjcmVhdGVNb2RlbEFuZFByb3BzID0gZ2V0Q3JlYXRlTW9kZWxBbmRQcm9wcyhpbml0LCAoKSA9PiAoeyAuLi4gfSkpO1xuICogLy8gaW4gdGVzdHNcbiAqIGNvbnN0IFttb2RlbCwgcHJvcHNdID0gY3JlYXRlTW9kZWxBbmRQcm9wcyh7IC4uLiB9LCAsIHsgLi4uIH0pO1xuICovXG5mdW5jdGlvbiBnZXRDcmVhdGVNb2RlbEFuZFByb3BzPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+KFxuXHRpbml0OiBJbml0RnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPixcblx0aW5pdFByb3BzOiAoKSA9PiBUUHJvcHMsXG4pOiBNb2RlbEFuZFByb3BzRmFjdG9yeTxUUHJvcHMsIFRNb2RlbD4ge1xuXHRyZXR1cm4gZnVuY3Rpb24gY3JlYXRlKG1vZGVsVGVtcGxhdGU/OiBQYXJ0aWFsPFRNb2RlbD4sIHByb3BzVGVtcGxhdGU/OiBQYXJ0aWFsPFRQcm9wcz4pOiBbVE1vZGVsLCBUUHJvcHNdIHtcblx0XHRyZXR1cm4gY3JlYXRlTW9kZWxBbmRQcm9wcyhpbml0LCBpbml0UHJvcHMsIG1vZGVsVGVtcGxhdGUsIHByb3BzVGVtcGxhdGUpO1xuXHR9O1xufVxuXG5leHBvcnQgeyBnZXRDcmVhdGVNb2RlbEFuZFByb3BzLCBnZXRDcmVhdGVVcGRhdGVBcmdzIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQSxJQUFBQSxvQkFBQSxHQUFBQyxPQUFBO0FBQTRELFNBQUFDLG1CQUFBQyxDQUFBLFdBQUFDLGtCQUFBLENBQUFELENBQUEsS0FBQUUsZ0JBQUEsQ0FBQUYsQ0FBQSxLQUFBRywyQkFBQSxDQUFBSCxDQUFBLEtBQUFJLGtCQUFBO0FBQUEsU0FBQUEsbUJBQUEsY0FBQUMsU0FBQTtBQUFBLFNBQUFGLDRCQUFBSCxDQUFBLEVBQUFNLENBQUEsUUFBQU4sQ0FBQSwyQkFBQUEsQ0FBQSxTQUFBTyxpQkFBQSxDQUFBUCxDQUFBLEVBQUFNLENBQUEsT0FBQUUsQ0FBQSxNQUFBQyxRQUFBLENBQUFDLElBQUEsQ0FBQVYsQ0FBQSxFQUFBVyxLQUFBLDZCQUFBSCxDQUFBLElBQUFSLENBQUEsQ0FBQVksV0FBQSxLQUFBSixDQUFBLEdBQUFSLENBQUEsQ0FBQVksV0FBQSxDQUFBQyxJQUFBLGFBQUFMLENBQUEsY0FBQUEsQ0FBQSxHQUFBTSxLQUFBLENBQUFDLElBQUEsQ0FBQWYsQ0FBQSxvQkFBQVEsQ0FBQSwrQ0FBQVEsSUFBQSxDQUFBUixDQUFBLElBQUFELGlCQUFBLENBQUFQLENBQUEsRUFBQU0sQ0FBQTtBQUFBLFNBQUFKLGlCQUFBRixDQUFBLDhCQUFBaUIsTUFBQSxZQUFBakIsQ0FBQSxDQUFBaUIsTUFBQSxDQUFBQyxRQUFBLGFBQUFsQixDQUFBLHVCQUFBYyxLQUFBLENBQUFDLElBQUEsQ0FBQWYsQ0FBQTtBQUFBLFNBQUFDLG1CQUFBRCxDQUFBLFFBQUFjLEtBQUEsQ0FBQUssT0FBQSxDQUFBbkIsQ0FBQSxVQUFBTyxpQkFBQSxDQUFBUCxDQUFBO0FBQUEsU0FBQU8sa0JBQUFQLENBQUEsRUFBQU0sQ0FBQSxhQUFBQSxDQUFBLElBQUFBLENBQUEsR0FBQU4sQ0FBQSxDQUFBb0IsTUFBQSxNQUFBZCxDQUFBLEdBQUFOLENBQUEsQ0FBQW9CLE1BQUEsWUFBQUMsQ0FBQSxNQUFBQyxDQUFBLEdBQUFSLEtBQUEsQ0FBQVIsQ0FBQSxHQUFBZSxDQUFBLEdBQUFmLENBQUEsRUFBQWUsQ0FBQSxJQUFBQyxDQUFBLENBQUFELENBQUEsSUFBQXJCLENBQUEsQ0FBQXFCLENBQUEsVUFBQUMsQ0FBQTtBQUc1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0MsbUJBQW1CQSxDQUMzQkMsSUFBNEMsRUFDNUNDLFNBQXVCLEVBQ3VCO0VBQzlDLE9BQU8sU0FBU0MsZ0JBQWdCQSxDQUMvQkMsR0FBYSxFQUNiQyxhQUErQixFQUMvQkMsYUFBK0IsRUFDL0JDLGVBQTBFLEVBQ2M7SUFDeEYsSUFBTUMsSUFBSSxHQUFHLElBQUFDLHdDQUFtQixFQUFDUixJQUFJLEVBQUVDLFNBQVMsRUFBRUcsYUFBYSxFQUFFQyxhQUFhLENBQUM7SUFFL0UsUUFBUUYsR0FBRyxFQUFBTSxNQUFBLENBQUFsQyxrQkFBQSxDQUFLZ0MsSUFBSSxJQUFFRCxlQUFlO0VBQ3RDLENBQUM7QUFDRjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0ksc0JBQXNCQSxDQUM5QlYsSUFBNEMsRUFDNUNDLFNBQXVCLEVBQ2dCO0VBQ3ZDLE9BQU8sU0FBU1UsTUFBTUEsQ0FBQ1AsYUFBK0IsRUFBRUMsYUFBK0IsRUFBb0I7SUFDMUcsT0FBTyxJQUFBRyx3Q0FBbUIsRUFBQ1IsSUFBSSxFQUFFQyxTQUFTLEVBQUVHLGFBQWEsRUFBRUMsYUFBYSxDQUFDO0VBQzFFLENBQUM7QUFDRiIsImlnbm9yZUxpc3QiOltdfQ==
48
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY3JlYXRlTW9kZWxBbmRQcm9wcyIsInJlcXVpcmUiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJyIiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIlR5cGVFcnJvciIsImEiLCJfYXJyYXlMaWtlVG9BcnJheSIsInQiLCJ0b1N0cmluZyIsImNhbGwiLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsIkFycmF5IiwiZnJvbSIsInRlc3QiLCJTeW1ib2wiLCJpdGVyYXRvciIsImlzQXJyYXkiLCJsZW5ndGgiLCJlIiwibiIsImdldENyZWF0ZVVwZGF0ZUFyZ3MiLCJpbml0IiwiaW5pdFByb3BzIiwiY3JlYXRlVXBkYXRlQXJncyIsIm1zZyIsIm1vZGVsVGVtcGxhdGUiLCJwcm9wc1RlbXBsYXRlIiwib3B0aW9uc1RlbXBsYXRlIiwiYXJncyIsImNyZWF0ZU1vZGVsQW5kUHJvcHMiLCJjb25jYXQiLCJnZXRDcmVhdGVNb2RlbEFuZFByb3BzIiwiY3JlYXRlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3RpbmcvZ2V0Q3JlYXRlVXBkYXRlQXJncy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEluaXRGdW5jdGlvbiwgTWVzc2FnZSwgVXBkYXRlRnVuY3Rpb25PcHRpb25zIH0gZnJvbSBcIi4uL1R5cGVzXCI7XG5pbXBvcnQgeyBjcmVhdGVNb2RlbEFuZFByb3BzIH0gZnJvbSBcIi4vY3JlYXRlTW9kZWxBbmRQcm9wc1wiO1xuaW1wb3J0IHR5cGUgeyBVcGRhdGVBcmdzRmFjdG9yeSB9IGZyb20gXCIuL2NyZWF0ZVVwZGF0ZUFyZ3NGYWN0b3J5XCI7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGZhY3RvcnkgZnVuY3Rpb24gdG8gY3JlYXRlIGEgbWVzc2FnZSwgYSBtb2RlbCwgcHJvcHMsIGFuZCBvcHRpb25zIHdoaWNoIGNhbiBiZSBwYXNzZWQgdG8gYW4gdXBkYXRlIGZ1bmN0aW9uIGluIHRlc3RzLlxuICogQHBhcmFtIHtJbml0RnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPn0gaW5pdCBUaGUgaW5pdCBmdW5jdGlvbiB3aGljaCBjcmVhdGVzIHRoZSBtb2RlbC5cbiAqIEBwYXJhbSB7KCkgPT4gVFByb3BzfSBpbml0UHJvcHMgQSBmdW5jdGlvbiB0byBjcmVhdGUgaW5pdGlhbCBwcm9wcy5cbiAqIEByZXR1cm5zIHtVcGRhdGVBcmdzRmFjdG9yeTxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+fSBBIGZ1bmN0aW9uIHRvIGNyZWF0ZSBhIG1lc3NhZ2UsIGEgbW9kZWwsIGFuZCBwcm9wcy5cbiAqIEBleGFtcGxlXG4gKiAvLyBvbmUgdGltZVxuICogY29uc3QgY3JlYXRlVXBkYXRlQXJncyA9IGdldENyZWF0ZVVwZGF0ZUFyZ3MoaW5pdCwgKCkgPT4gKHsgLi4uIH0pKTtcbiAqIC8vIGluIHRlc3RzXG4gKiBjb25zdCBbbXNnLCBtb2RlbCwgcHJvcHNdID0gY3JlYXRlVXBkYXRlQXJncyhNc2cubXlNZXNzYWdlKCksIHsgLi4uIH0sICwgeyAuLi4gfSk7XG4gKi9cbmZ1bmN0aW9uIGdldENyZWF0ZVVwZGF0ZUFyZ3M8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4oXG5cdGluaXQ6IEluaXRGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuXHRpbml0UHJvcHM6ICgpID0+IFRQcm9wcyxcbik6IFVwZGF0ZUFyZ3NGYWN0b3J5PFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4ge1xuXHRyZXR1cm4gZnVuY3Rpb24gY3JlYXRlVXBkYXRlQXJncyhcblx0XHRtc2c6IFRNZXNzYWdlLFxuXHRcdG1vZGVsVGVtcGxhdGU/OiBQYXJ0aWFsPFRNb2RlbD4sXG5cdFx0cHJvcHNUZW1wbGF0ZT86IFBhcnRpYWw8VFByb3BzPixcblx0XHRvcHRpb25zVGVtcGxhdGU/OiBQYXJ0aWFsPFVwZGF0ZUZ1bmN0aW9uT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+Pixcblx0KTogW1RNZXNzYWdlLCBUTW9kZWwsIFRQcm9wcywgUGFydGlhbDxVcGRhdGVGdW5jdGlvbk9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPj4/XSB7XG5cdFx0Y29uc3QgYXJncyA9IGNyZWF0ZU1vZGVsQW5kUHJvcHMoaW5pdCwgaW5pdFByb3BzLCBtb2RlbFRlbXBsYXRlLCBwcm9wc1RlbXBsYXRlKTtcblxuXHRcdHJldHVybiBbbXNnLCAuLi5hcmdzLCBvcHRpb25zVGVtcGxhdGVdO1xuXHR9O1xufVxuXG50eXBlIE1vZGVsQW5kUHJvcHNGYWN0b3J5PFRQcm9wcywgVE1vZGVsPiA9IChcblx0bW9kZWxUZW1wbGF0ZT86IFBhcnRpYWw8VE1vZGVsPixcblx0cHJvcHNUZW1wbGF0ZT86IFBhcnRpYWw8VFByb3BzPixcbikgPT4gW1RNb2RlbCwgVFByb3BzXTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgZmFjdG9yeSBmdW5jdGlvbiB0byBjcmVhdGUgYSBtb2RlbCwgcHJvcHMsIGFuZCBvcHRpb25zIHdoaWNoIGNhbiBiZSBwYXNzZWQgdG8gYW4gdXBkYXRlIG9yIHN1YnNjcmlwdGlvbiBmdW5jdGlvbiBpbiB0ZXN0cy5cbiAqIEBwYXJhbSB7SW5pdEZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT59IGluaXQgVGhlIGluaXQgZnVuY3Rpb24gd2hpY2ggY3JlYXRlcyB0aGUgbW9kZWwuXG4gKiBAcGFyYW0geygpID0+IFRQcm9wc30gaW5pdFByb3BzIEEgZnVuY3Rpb24gdG8gY3JlYXRlIGluaXRpYWwgcHJvcHMuXG4gKiBAcmV0dXJucyB7TW9kZWxBbmRQcm9wc0ZhY3Rvcnk8VFByb3BzLCBUTW9kZWw+fSBBIGZ1bmN0aW9uIHRvIGNyZWF0ZSBhIGEgbW9kZWwgYW5kIHByb3BzLlxuICogQGV4YW1wbGVcbiAqIC8vIG9uZSB0aW1lXG4gKiBjb25zdCBjcmVhdGVNb2RlbEFuZFByb3BzID0gZ2V0Q3JlYXRlTW9kZWxBbmRQcm9wcyhpbml0LCAoKSA9PiAoeyAuLi4gfSkpO1xuICogLy8gaW4gdGVzdHNcbiAqIGNvbnN0IFttb2RlbCwgcHJvcHNdID0gY3JlYXRlTW9kZWxBbmRQcm9wcyh7IC4uLiB9LCAsIHsgLi4uIH0pO1xuICovXG5mdW5jdGlvbiBnZXRDcmVhdGVNb2RlbEFuZFByb3BzPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+KFxuXHRpbml0OiBJbml0RnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPixcblx0aW5pdFByb3BzOiAoKSA9PiBUUHJvcHMsXG4pOiBNb2RlbEFuZFByb3BzRmFjdG9yeTxUUHJvcHMsIFRNb2RlbD4ge1xuXHRyZXR1cm4gZnVuY3Rpb24gY3JlYXRlKG1vZGVsVGVtcGxhdGU/OiBQYXJ0aWFsPFRNb2RlbD4sIHByb3BzVGVtcGxhdGU/OiBQYXJ0aWFsPFRQcm9wcz4pOiBbVE1vZGVsLCBUUHJvcHNdIHtcblx0XHRyZXR1cm4gY3JlYXRlTW9kZWxBbmRQcm9wcyhpbml0LCBpbml0UHJvcHMsIG1vZGVsVGVtcGxhdGUsIHByb3BzVGVtcGxhdGUpO1xuXHR9O1xufVxuXG5leHBvcnQgdHlwZSB7IE1vZGVsQW5kUHJvcHNGYWN0b3J5IH07XG5cbmV4cG9ydCB7IGdldENyZWF0ZU1vZGVsQW5kUHJvcHMsIGdldENyZWF0ZVVwZGF0ZUFyZ3MgfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUNBLElBQUFBLG9CQUFBLEdBQUFDLE9BQUE7QUFBNEQsU0FBQUMsbUJBQUFDLENBQUEsV0FBQUMsa0JBQUEsQ0FBQUQsQ0FBQSxLQUFBRSxnQkFBQSxDQUFBRixDQUFBLEtBQUFHLDJCQUFBLENBQUFILENBQUEsS0FBQUksa0JBQUE7QUFBQSxTQUFBQSxtQkFBQSxjQUFBQyxTQUFBO0FBQUEsU0FBQUYsNEJBQUFILENBQUEsRUFBQU0sQ0FBQSxRQUFBTixDQUFBLDJCQUFBQSxDQUFBLFNBQUFPLGlCQUFBLENBQUFQLENBQUEsRUFBQU0sQ0FBQSxPQUFBRSxDQUFBLE1BQUFDLFFBQUEsQ0FBQUMsSUFBQSxDQUFBVixDQUFBLEVBQUFXLEtBQUEsNkJBQUFILENBQUEsSUFBQVIsQ0FBQSxDQUFBWSxXQUFBLEtBQUFKLENBQUEsR0FBQVIsQ0FBQSxDQUFBWSxXQUFBLENBQUFDLElBQUEsYUFBQUwsQ0FBQSxjQUFBQSxDQUFBLEdBQUFNLEtBQUEsQ0FBQUMsSUFBQSxDQUFBZixDQUFBLG9CQUFBUSxDQUFBLCtDQUFBUSxJQUFBLENBQUFSLENBQUEsSUFBQUQsaUJBQUEsQ0FBQVAsQ0FBQSxFQUFBTSxDQUFBO0FBQUEsU0FBQUosaUJBQUFGLENBQUEsOEJBQUFpQixNQUFBLFlBQUFqQixDQUFBLENBQUFpQixNQUFBLENBQUFDLFFBQUEsYUFBQWxCLENBQUEsdUJBQUFjLEtBQUEsQ0FBQUMsSUFBQSxDQUFBZixDQUFBO0FBQUEsU0FBQUMsbUJBQUFELENBQUEsUUFBQWMsS0FBQSxDQUFBSyxPQUFBLENBQUFuQixDQUFBLFVBQUFPLGlCQUFBLENBQUFQLENBQUE7QUFBQSxTQUFBTyxrQkFBQVAsQ0FBQSxFQUFBTSxDQUFBLGFBQUFBLENBQUEsSUFBQUEsQ0FBQSxHQUFBTixDQUFBLENBQUFvQixNQUFBLE1BQUFkLENBQUEsR0FBQU4sQ0FBQSxDQUFBb0IsTUFBQSxZQUFBQyxDQUFBLE1BQUFDLENBQUEsR0FBQVIsS0FBQSxDQUFBUixDQUFBLEdBQUFlLENBQUEsR0FBQWYsQ0FBQSxFQUFBZSxDQUFBLElBQUFDLENBQUEsQ0FBQUQsQ0FBQSxJQUFBckIsQ0FBQSxDQUFBcUIsQ0FBQSxVQUFBQyxDQUFBO0FBRzVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQyxtQkFBbUJBLENBQzNCQyxJQUE0QyxFQUM1Q0MsU0FBdUIsRUFDdUI7RUFDOUMsT0FBTyxTQUFTQyxnQkFBZ0JBLENBQy9CQyxHQUFhLEVBQ2JDLGFBQStCLEVBQy9CQyxhQUErQixFQUMvQkMsZUFBMEUsRUFDYztJQUN4RixJQUFNQyxJQUFJLEdBQUcsSUFBQUMsd0NBQW1CLEVBQUNSLElBQUksRUFBRUMsU0FBUyxFQUFFRyxhQUFhLEVBQUVDLGFBQWEsQ0FBQztJQUUvRSxRQUFRRixHQUFHLEVBQUFNLE1BQUEsQ0FBQWxDLGtCQUFBLENBQUtnQyxJQUFJLElBQUVELGVBQWU7RUFDdEMsQ0FBQztBQUNGO0FBT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNJLHNCQUFzQkEsQ0FDOUJWLElBQTRDLEVBQzVDQyxTQUF1QixFQUNnQjtFQUN2QyxPQUFPLFNBQVNVLE1BQU1BLENBQUNQLGFBQStCLEVBQUVDLGFBQStCLEVBQW9CO0lBQzFHLE9BQU8sSUFBQUcsd0NBQW1CLEVBQUNSLElBQUksRUFBRUMsU0FBUyxFQUFFRyxhQUFhLEVBQUVDLGFBQWEsQ0FBQztFQUMxRSxDQUFDO0FBQ0YiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -1,9 +1,9 @@
1
1
  export type { RenderWithModelOptions } from "../fakeOptions";
2
2
  export { createModelAndProps } from "./createModelAndProps";
3
- export { createUpdateArgsFactory, type ModelAndPropsFactory, type UpdateArgsFactory } from "./createUpdateArgsFactory";
4
- export { execCmd } from "./execCmd";
3
+ export { createUpdateArgsFactory, type UpdateArgsFactory } from "./createUpdateArgsFactory";
4
+ export { execCmd, execCmdWithDispatch } from "./execCmd";
5
5
  export { execSubscription } from "./execSubscription";
6
- export { getCreateModelAndProps, getCreateUpdateArgs } from "./getCreateUpdateArgs";
6
+ export { getCreateModelAndProps, getCreateUpdateArgs, type ModelAndPropsFactory } from "./getCreateUpdateArgs";
7
7
  export { getUpdateAndExecCmdFn, getUpdateFn } from "./getUpdateFn";
8
8
  export { initAndExecCmd } from "./initAndExecCmd";
9
9
  export { renderWithModel } from "./renderWithModel";
@@ -21,6 +21,12 @@ Object.defineProperty(exports, "execCmd", {
21
21
  return _execCmd.execCmd;
22
22
  }
23
23
  });
24
+ Object.defineProperty(exports, "execCmdWithDispatch", {
25
+ enumerable: true,
26
+ get: function get() {
27
+ return _execCmd.execCmdWithDispatch;
28
+ }
29
+ });
24
30
  Object.defineProperty(exports, "execSubscription", {
25
31
  enumerable: true,
26
32
  get: function get() {
@@ -71,4 +77,4 @@ var _getCreateUpdateArgs = require("./getCreateUpdateArgs");
71
77
  var _getUpdateFn = require("./getUpdateFn");
72
78
  var _initAndExecCmd = require("./initAndExecCmd");
73
79
  var _renderWithModel = require("./renderWithModel");
74
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY3JlYXRlTW9kZWxBbmRQcm9wcyIsInJlcXVpcmUiLCJfY3JlYXRlVXBkYXRlQXJnc0ZhY3RvcnkiLCJfZXhlY0NtZCIsIl9leGVjU3Vic2NyaXB0aW9uIiwiX2dldENyZWF0ZVVwZGF0ZUFyZ3MiLCJfZ2V0VXBkYXRlRm4iLCJfaW5pdEFuZEV4ZWNDbWQiLCJfcmVuZGVyV2l0aE1vZGVsIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3RpbmcvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgeyBSZW5kZXJXaXRoTW9kZWxPcHRpb25zIH0gZnJvbSBcIi4uL2Zha2VPcHRpb25zXCI7XG5leHBvcnQgeyBjcmVhdGVNb2RlbEFuZFByb3BzIH0gZnJvbSBcIi4vY3JlYXRlTW9kZWxBbmRQcm9wc1wiO1xuZXhwb3J0IHsgY3JlYXRlVXBkYXRlQXJnc0ZhY3RvcnksIHR5cGUgTW9kZWxBbmRQcm9wc0ZhY3RvcnksIHR5cGUgVXBkYXRlQXJnc0ZhY3RvcnkgfSBmcm9tIFwiLi9jcmVhdGVVcGRhdGVBcmdzRmFjdG9yeVwiO1xuZXhwb3J0IHsgZXhlY0NtZCB9IGZyb20gXCIuL2V4ZWNDbWRcIjtcbmV4cG9ydCB7IGV4ZWNTdWJzY3JpcHRpb24gfSBmcm9tIFwiLi9leGVjU3Vic2NyaXB0aW9uXCI7XG5leHBvcnQgeyBnZXRDcmVhdGVNb2RlbEFuZFByb3BzLCBnZXRDcmVhdGVVcGRhdGVBcmdzIH0gZnJvbSBcIi4vZ2V0Q3JlYXRlVXBkYXRlQXJnc1wiO1xuZXhwb3J0IHsgZ2V0VXBkYXRlQW5kRXhlY0NtZEZuLCBnZXRVcGRhdGVGbiB9IGZyb20gXCIuL2dldFVwZGF0ZUZuXCI7XG5leHBvcnQgeyBpbml0QW5kRXhlY0NtZCB9IGZyb20gXCIuL2luaXRBbmRFeGVjQ21kXCI7XG5leHBvcnQgeyByZW5kZXJXaXRoTW9kZWwgfSBmcm9tIFwiLi9yZW5kZXJXaXRoTW9kZWxcIjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxJQUFBQSxvQkFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsd0JBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFFBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLGlCQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxvQkFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssWUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sZUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sZ0JBQUEsR0FBQVAsT0FBQSIsImlnbm9yZUxpc3QiOltdfQ==
80
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY3JlYXRlTW9kZWxBbmRQcm9wcyIsInJlcXVpcmUiLCJfY3JlYXRlVXBkYXRlQXJnc0ZhY3RvcnkiLCJfZXhlY0NtZCIsIl9leGVjU3Vic2NyaXB0aW9uIiwiX2dldENyZWF0ZVVwZGF0ZUFyZ3MiLCJfZ2V0VXBkYXRlRm4iLCJfaW5pdEFuZEV4ZWNDbWQiLCJfcmVuZGVyV2l0aE1vZGVsIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3RpbmcvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgeyBSZW5kZXJXaXRoTW9kZWxPcHRpb25zIH0gZnJvbSBcIi4uL2Zha2VPcHRpb25zXCI7XG5leHBvcnQgeyBjcmVhdGVNb2RlbEFuZFByb3BzIH0gZnJvbSBcIi4vY3JlYXRlTW9kZWxBbmRQcm9wc1wiO1xuZXhwb3J0IHsgY3JlYXRlVXBkYXRlQXJnc0ZhY3RvcnksIHR5cGUgVXBkYXRlQXJnc0ZhY3RvcnkgfSBmcm9tIFwiLi9jcmVhdGVVcGRhdGVBcmdzRmFjdG9yeVwiO1xuZXhwb3J0IHsgZXhlY0NtZCwgZXhlY0NtZFdpdGhEaXNwYXRjaCB9IGZyb20gXCIuL2V4ZWNDbWRcIjtcbmV4cG9ydCB7IGV4ZWNTdWJzY3JpcHRpb24gfSBmcm9tIFwiLi9leGVjU3Vic2NyaXB0aW9uXCI7XG5leHBvcnQgeyBnZXRDcmVhdGVNb2RlbEFuZFByb3BzLCBnZXRDcmVhdGVVcGRhdGVBcmdzLCB0eXBlIE1vZGVsQW5kUHJvcHNGYWN0b3J5IH0gZnJvbSBcIi4vZ2V0Q3JlYXRlVXBkYXRlQXJnc1wiO1xuZXhwb3J0IHsgZ2V0VXBkYXRlQW5kRXhlY0NtZEZuLCBnZXRVcGRhdGVGbiB9IGZyb20gXCIuL2dldFVwZGF0ZUZuXCI7XG5leHBvcnQgeyBpbml0QW5kRXhlY0NtZCB9IGZyb20gXCIuL2luaXRBbmRFeGVjQ21kXCI7XG5leHBvcnQgeyByZW5kZXJXaXRoTW9kZWwgfSBmcm9tIFwiLi9yZW5kZXJXaXRoTW9kZWxcIjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxJQUFBQSxvQkFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsd0JBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFFBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLGlCQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxvQkFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssWUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sZUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sZ0JBQUEsR0FBQVAsT0FBQSIsImlnbm9yZUxpc3QiOltdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-elmish",
3
- "version": "10.0.0-beta.3",
3
+ "version": "10.0.0-beta.5",
4
4
  "description": "Elmish for React using Typescript",
5
5
  "author": "atheck",
6
6
  "license": "MIT",
@@ -58,8 +58,9 @@
58
58
  ],
59
59
  "exports": {
60
60
  ".": "./dist/index.js",
61
+ "./testing": "./dist/testing/index.js",
61
62
  "./immutable": "./dist/immutable/index.js",
62
- "./testing": "./dist/testing/index.js"
63
+ "./immutable/testing": "./dist/immutable/testing/index.js"
63
64
  },
64
65
  "types": "dist/index.d.ts"
65
66
  }