react-elmish 9.3.1 → 10.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -7
- package/dist/Testing/execSubscription.d.ts +1 -2
- package/dist/Testing/execSubscription.js +3 -3
- package/dist/Types.d.ts +10 -1
- package/dist/Types.js +35 -1
- package/dist/immutable/Types.d.ts +28 -0
- package/dist/immutable/Types.js +6 -0
- package/dist/immutable/createCallBase.d.ts +5 -0
- package/dist/immutable/createCallBase.js +24 -0
- package/dist/immutable/createDefer.d.ts +7 -0
- package/dist/immutable/createDefer.js +23 -0
- package/dist/immutable/index.d.ts +7 -0
- package/dist/immutable/index.js +53 -0
- package/dist/immutable/useElmish.d.ts +49 -0
- package/dist/immutable/useElmish.js +219 -0
- package/dist/immutable/useElmish.spec.d.ts +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/mergeSubscriptions.d.ts +1 -2
- package/dist/mergeSubscriptions.js +3 -3
- package/dist/useElmish.d.ts +3 -11
- package/dist/useElmish.js +3 -12
- package/package.json +9 -2
package/README.md
CHANGED
|
@@ -911,7 +911,7 @@ const subscription = mergeSubscriptions(LoadSettings.subscription, localSubscrip
|
|
|
911
911
|
|
|
912
912
|
## Testing
|
|
913
913
|
|
|
914
|
-
To test your **update** handler you can use some helper functions in `react-elmish/
|
|
914
|
+
To test your **update** handler you can use some helper functions in `react-elmish/testing`:
|
|
915
915
|
|
|
916
916
|
| Function | Description |
|
|
917
917
|
| --- | --- |
|
|
@@ -925,7 +925,7 @@ To test your **update** handler you can use some helper functions in `react-elmi
|
|
|
925
925
|
### Testing the init function
|
|
926
926
|
|
|
927
927
|
```ts
|
|
928
|
-
import { initAndExecCmd } from "react-elmish/
|
|
928
|
+
import { initAndExecCmd } from "react-elmish/testing";
|
|
929
929
|
import { init, Msg } from "./MyComponent";
|
|
930
930
|
|
|
931
931
|
it("initializes the model correctly", async () => {
|
|
@@ -946,7 +946,7 @@ it("initializes the model correctly", async () => {
|
|
|
946
946
|
**Note**: When using an `UpdateMap`, you can get an `update` function by calling `getUpdateFn`:
|
|
947
947
|
|
|
948
948
|
```ts
|
|
949
|
-
import { getUpdateFn } from "react-elmish/
|
|
949
|
+
import { getUpdateFn } from "react-elmish/testing";
|
|
950
950
|
import { updateMap } from "./MyComponent";
|
|
951
951
|
|
|
952
952
|
const updateFn = getUpdateFn(updateMap);
|
|
@@ -958,7 +958,7 @@ const [model, cmd] = updateFn(msg, model, props);
|
|
|
958
958
|
A simple test:
|
|
959
959
|
|
|
960
960
|
```ts
|
|
961
|
-
import { getCreateUpdateArgs, createUpdateArgsFactory, execCmd } from "react-elmish/
|
|
961
|
+
import { getCreateUpdateArgs, createUpdateArgsFactory, execCmd } from "react-elmish/testing";
|
|
962
962
|
import { init, Msg } from "./MyComponent";
|
|
963
963
|
|
|
964
964
|
const createUpdateArgs = getCreateUpdateArgs(init, () => ({ /* initial props */ }));
|
|
@@ -991,7 +991,7 @@ It also resolves for `attempt` functions if the called functions succeed. And it
|
|
|
991
991
|
There is an alternative function `getUpdateAndExecCmdFn` to get the `update` function for an update map, which immediately invokes the command and returns the messages.
|
|
992
992
|
|
|
993
993
|
```ts
|
|
994
|
-
import { createUpdateArgs, getUpdateAndExecCmdFn } from "react-elmish/
|
|
994
|
+
import { createUpdateArgs, getUpdateAndExecCmdFn } from "react-elmish/testing";
|
|
995
995
|
|
|
996
996
|
const updateAndExecCmdFn = getUpdateAndExecCmdFn(updateMap);
|
|
997
997
|
|
|
@@ -1018,7 +1018,7 @@ it("returns the correct cmd", async () => {
|
|
|
1018
1018
|
It is almost the same as testing the `update` function. You can use the `getCreateModelAndProps` function to create a factory for the model and the props. Then use `execSubscription` to execute the subscriptions:
|
|
1019
1019
|
|
|
1020
1020
|
```ts
|
|
1021
|
-
import { getCreateModelAndProps, execSubscription } from "react-elmish/
|
|
1021
|
+
import { getCreateModelAndProps, execSubscription } from "react-elmish/testing";
|
|
1022
1022
|
import { init, Msg, subscription } from "./MyComponent";
|
|
1023
1023
|
|
|
1024
1024
|
const createModelAndProps = getCreateModelAndProps(init, () => ({ /* initial props */ }));
|
|
@@ -1045,7 +1045,7 @@ it("dispatches the eventTriggered message", async () => {
|
|
|
1045
1045
|
To test UI components with a fake model you can use `renderWithModel` from the Testing namespace. The first parameter is a function to render your component (e.g. with **@testing-library/react**). The second parameter is the fake model. The third parameter is an optional options object, where you can also pass a fake `dispatch` function.
|
|
1046
1046
|
|
|
1047
1047
|
```tsx
|
|
1048
|
-
import { renderWithModel } from "react-elmish/
|
|
1048
|
+
import { renderWithModel } from "react-elmish/testing";
|
|
1049
1049
|
import { fireEvent, render, screen } from "@testing-library/react";
|
|
1050
1050
|
|
|
1051
1051
|
it("renders the correct value", () => {
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type { Dispatch } from "react";
|
|
2
|
-
import type
|
|
3
|
-
import { type Subscription } from "../useElmish";
|
|
2
|
+
import { type Message, type Subscription } from "../Types";
|
|
4
3
|
declare function execSubscription<TProps, TModel, TMessage extends Message>(subscription: Subscription<TProps, TModel, TMessage> | undefined, dispatch: Dispatch<TMessage>, model: TModel, props: TProps): () => void;
|
|
5
4
|
export { execSubscription };
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.execSubscription = execSubscription;
|
|
7
|
-
var
|
|
7
|
+
var _Types = require("../Types");
|
|
8
8
|
var _execCmd = require("./execCmd");
|
|
9
9
|
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
10
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."); }
|
|
@@ -21,7 +21,7 @@ function execSubscription(subscription, dispatch, model, props) {
|
|
|
21
21
|
return noop;
|
|
22
22
|
}
|
|
23
23
|
var subscriptionResult = subscription(model, props);
|
|
24
|
-
if ((0,
|
|
24
|
+
if ((0, _Types.subscriptionIsFunctionArray)(subscriptionResult)) {
|
|
25
25
|
var disposers = subscriptionResult.map(function (sub) {
|
|
26
26
|
return sub(dispatch);
|
|
27
27
|
}).filter(function (disposer) {
|
|
@@ -48,4 +48,4 @@ function execSubscription(subscription, dispatch, model, props) {
|
|
|
48
48
|
(0, _execCmd.execCmdWithDispatch)(dispatch, cmd);
|
|
49
49
|
return dispose !== null && dispose !== void 0 ? dispose : noop;
|
|
50
50
|
}
|
|
51
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfVHlwZXMiLCJyZXF1aXJlIiwiX2V4ZWNDbWQiLCJfc2xpY2VkVG9BcnJheSIsInIiLCJlIiwiX2FycmF5V2l0aEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlUmVzdCIsIlR5cGVFcnJvciIsImwiLCJ0IiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJuIiwiaSIsInUiLCJhIiwiZiIsIm8iLCJjYWxsIiwibmV4dCIsIk9iamVjdCIsImRvbmUiLCJwdXNoIiwidmFsdWUiLCJsZW5ndGgiLCJBcnJheSIsImlzQXJyYXkiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsIl9uIiwiRiIsInMiLCJfYXJyYXlMaWtlVG9BcnJheSIsInRvU3RyaW5nIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJmcm9tIiwidGVzdCIsImV4ZWNTdWJzY3JpcHRpb24iLCJzdWJzY3JpcHRpb24iLCJkaXNwYXRjaCIsIm1vZGVsIiwicHJvcHMiLCJub29wIiwic3Vic2NyaXB0aW9uUmVzdWx0Iiwic3Vic2NyaXB0aW9uSXNGdW5jdGlvbkFycmF5IiwiZGlzcG9zZXJzIiwibWFwIiwic3ViIiwiZmlsdGVyIiwiZGlzcG9zZXIiLCJ1bmRlZmluZWQiLCJfaXRlcmF0b3IiLCJfc3RlcCIsImRpc3Bvc2UiLCJlcnIiLCJfc3Vic2NyaXB0aW9uUmVzdWx0IiwiY21kIiwiZXhlY0NtZFdpdGhEaXNwYXRjaCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9UZXN0aW5nL2V4ZWNTdWJzY3JpcHRpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEaXNwYXRjaCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgc3Vic2NyaXB0aW9uSXNGdW5jdGlvbkFycmF5LCB0eXBlIE1lc3NhZ2UsIHR5cGUgU3Vic2NyaXB0aW9uIH0gZnJvbSBcIi4uL1R5cGVzXCI7XG5pbXBvcnQgeyBleGVjQ21kV2l0aERpc3BhdGNoIH0gZnJvbSBcIi4vZXhlY0NtZFwiO1xuXG5mdW5jdGlvbiBleGVjU3Vic2NyaXB0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+KFxuXHRzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+IHwgdW5kZWZpbmVkLFxuXHRkaXNwYXRjaDogRGlzcGF0Y2g8VE1lc3NhZ2U+LFxuXHRtb2RlbDogVE1vZGVsLFxuXHRwcm9wczogVFByb3BzLFxuKTogKCkgPT4gdm9pZCB7XG5cdGNvbnN0IG5vb3AgPSAoKTogdm9pZCA9PiB7XG5cdFx0Ly8gZG8gbm90aGluZ1xuXHR9O1xuXG5cdGlmICghc3Vic2NyaXB0aW9uKSB7XG5cdFx0cmV0dXJuIG5vb3A7XG5cdH1cblxuXHRjb25zdCBzdWJzY3JpcHRpb25SZXN1bHQgPSBzdWJzY3JpcHRpb24obW9kZWwsIHByb3BzKTtcblxuXHRpZiAoc3Vic2NyaXB0aW9uSXNGdW5jdGlvbkFycmF5KHN1YnNjcmlwdGlvblJlc3VsdCkpIHtcblx0XHRjb25zdCBkaXNwb3NlcnMgPSBzdWJzY3JpcHRpb25SZXN1bHQubWFwKChzdWIpID0+IHN1YihkaXNwYXRjaCkpLmZpbHRlcigoZGlzcG9zZXIpID0+IGRpc3Bvc2VyICE9PSB1bmRlZmluZWQpO1xuXG5cdFx0cmV0dXJuICgpID0+IHtcblx0XHRcdGZvciAoY29uc3QgZGlzcG9zZSBvZiBkaXNwb3NlcnMpIHtcblx0XHRcdFx0ZGlzcG9zZSgpO1xuXHRcdFx0fVxuXHRcdH07XG5cdH1cblxuXHRjb25zdCBbY21kLCBkaXNwb3NlXSA9IHN1YnNjcmlwdGlvblJlc3VsdDtcblxuXHRleGVjQ21kV2l0aERpc3BhdGNoPFRNZXNzYWdlPihkaXNwYXRjaCwgY21kKTtcblxuXHRyZXR1cm4gZGlzcG9zZSA/PyBub29wO1xufVxuXG5leHBvcnQgeyBleGVjU3Vic2NyaXB0aW9uIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNB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
|
package/dist/Types.d.ts
CHANGED
|
@@ -46,4 +46,13 @@ type UpdateMap<TProps, TModel, TMessage extends Message> = {
|
|
|
46
46
|
name: TMessageName;
|
|
47
47
|
}>) => UpdateReturnType<TModel, TMessage>;
|
|
48
48
|
};
|
|
49
|
-
|
|
49
|
+
/**
|
|
50
|
+
* The return type of the `subscription` function.
|
|
51
|
+
* @template TMessage The type of the messages discriminated union.
|
|
52
|
+
*/
|
|
53
|
+
type SubscriptionResult<TMessage> = [Cmd<TMessage>, (() => void)?] | SubscriptionFunction<TMessage>[];
|
|
54
|
+
type SubscriptionFunction<TMessage> = (dispatch: Dispatch<TMessage>) => (() => void) | undefined;
|
|
55
|
+
type Subscription<TProps, TModel, TMessage> = (model: TModel, props: TProps) => SubscriptionResult<TMessage>;
|
|
56
|
+
declare function subscriptionIsFunctionArray(subscription: SubscriptionResult<unknown>): subscription is SubscriptionFunction<unknown>[];
|
|
57
|
+
export type { CallBaseFunction, Cmd, DeferFunction, Dispatch, FallbackHandler, InitFunction, InitResult, Message, MsgSource, Nullable, Sub, Subscription, SubscriptionFunction, SubscriptionResult, UpdateFunction, UpdateFunctionOptions, UpdateMap, UpdateMapFunction, UpdateReturnType, };
|
|
58
|
+
export { subscriptionIsFunctionArray };
|
package/dist/Types.js
CHANGED
|
@@ -3,4 +3,38 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
|
|
6
|
+
exports.subscriptionIsFunctionArray = subscriptionIsFunctionArray;
|
|
7
|
+
/**
|
|
8
|
+
* Type of the dispatch function.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Type of a command.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Creates a MsgSource type.
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* The return type of the `init` function.
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Type for the return value of the `update` function.
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Type for mapping messages to functions.
|
|
29
|
+
* Use this type to create your update logic for the useElmish hook.
|
|
30
|
+
*/
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* The return type of the `subscription` function.
|
|
34
|
+
* @template TMessage The type of the messages discriminated union.
|
|
35
|
+
*/
|
|
36
|
+
|
|
37
|
+
function subscriptionIsFunctionArray(subscription) {
|
|
38
|
+
return typeof subscription[0] === "function";
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdWJzY3JpcHRpb25Jc0Z1bmN0aW9uQXJyYXkiLCJzdWJzY3JpcHRpb24iXSwic291cmNlcyI6WyIuLi9zcmMvVHlwZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsidHlwZSBOdWxsYWJsZTxUVHlwZT4gPSBUVHlwZSB8IG51bGw7XG5cbmludGVyZmFjZSBNZXNzYWdlIHtcblx0bmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFR5cGUgb2YgdGhlIGRpc3BhdGNoIGZ1bmN0aW9uLlxuICovXG50eXBlIERpc3BhdGNoPFRNZXNzYWdlPiA9IChtc2c6IFRNZXNzYWdlKSA9PiB2b2lkO1xuXG50eXBlIEZhbGxiYWNrSGFuZGxlciA9IChlcnJvcj86IEVycm9yKSA9PiB2b2lkO1xudHlwZSBTdWI8VE1zZz4gPSAoZGlzcGF0Y2g6IERpc3BhdGNoPFRNc2c+LCBmYWxsYmFjaz86IEZhbGxiYWNrSGFuZGxlcikgPT4gdm9pZDtcblxuLyoqXG4gKiBUeXBlIG9mIGEgY29tbWFuZC5cbiAqL1xudHlwZSBDbWQ8VE1lc3NhZ2U+ID0gU3ViPFRNZXNzYWdlPltdO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBNc2dTb3VyY2UgdHlwZS5cbiAqL1xuaW50ZXJmYWNlIE1zZ1NvdXJjZTxUU291cmNlIGV4dGVuZHMgc3RyaW5nPiB7XG5cdHNvdXJjZTogVFNvdXJjZTtcbn1cblxuLyoqXG4gKiBUaGUgcmV0dXJuIHR5cGUgb2YgdGhlIGBpbml0YCBmdW5jdGlvbi5cbiAqL1xudHlwZSBJbml0UmVzdWx0PFRNb2RlbCwgVE1lc3NhZ2U+ID0gW1RNb2RlbCwgLi4uKENtZDxUTWVzc2FnZT4gfCB1bmRlZmluZWQpW11dO1xuXG50eXBlIEluaXRGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+ID0gKHByb3BzOiBUUHJvcHMpID0+IEluaXRSZXN1bHQ8VE1vZGVsLCBUTWVzc2FnZT47XG5cbi8qKlxuICogVHlwZSBmb3IgdGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgYHVwZGF0ZWAgZnVuY3Rpb24uXG4gKi9cbnR5cGUgVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPiA9IFtQYXJ0aWFsPFRNb2RlbD4sIC4uLihDbWQ8VE1lc3NhZ2U+IHwgdW5kZWZpbmVkKVtdXTtcblxudHlwZSBEZWZlckZ1bmN0aW9uPFRNb2RlbCwgVE1lc3NhZ2U+ID0gKG1vZGVsOiBQYXJ0aWFsPFRNb2RlbD4sIC4uLmNvbW1hbmRzOiAoQ21kPFRNZXNzYWdlPiB8IHVuZGVmaW5lZClbXSkgPT4gdm9pZDtcbnR5cGUgQ2FsbEJhc2VGdW5jdGlvbjxUTW9kZWwsIFRQcm9wcywgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPiA9IChcblx0Zm46IChcblx0XHRtc2c6IFRNZXNzYWdlLFxuXHRcdG1vZGVsOiBUTW9kZWwsXG5cdFx0cHJvcHM6IFRQcm9wcyxcblx0XHQvLyBiaW9tZS1pZ25vcmUgbGludC9zdXNwaWNpb3VzL25vRXhwbGljaXRBbnk6IGFueSBpcyBuZWVkZWQgaGVyZSB0byBhbGxvdyBvcHRpb25zIG9mIGFueSB0eXBlXG5cdFx0Li4uYXJnczogYW55W11cblx0KSA9PiBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgTWVzc2FnZT4sXG4pID0+IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTWVzc2FnZT47XG5cbnR5cGUgVXBkYXRlTWFwRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4gPSAoXG5cdG1zZzogVE1lc3NhZ2UsXG5cdG1vZGVsOiBUTW9kZWwsXG5cdHByb3BzOiBUUHJvcHMsXG5cdG9wdGlvbnM6IFVwZGF0ZUZ1bmN0aW9uT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuKSA9PiBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgVE1lc3NhZ2U+O1xuXG5pbnRlcmZhY2UgVXBkYXRlRnVuY3Rpb25PcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2UsIFRTcGVjaWZpY01lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlID0gVE1lc3NhZ2U+IHtcblx0ZGVmZXI6IERlZmVyRnVuY3Rpb248VE1vZGVsLCBUTWVzc2FnZT47XG5cdGNhbGxCYXNlOiBDYWxsQmFzZUZ1bmN0aW9uPFRNb2RlbCwgVFByb3BzLCBUU3BlY2lmaWNNZXNzYWdlPjtcbn1cblxudHlwZSBVcGRhdGVGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPiA9IChcblx0bW9kZWw6IFRNb2RlbCxcblx0bXNnOiBUTWVzc2FnZSxcblx0cHJvcHM6IFRQcm9wcyxcblx0b3B0aW9uczogVXBkYXRlRnVuY3Rpb25PcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG4pID0+IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTWVzc2FnZT47XG5cbi8qKlxuICogVHlwZSBmb3IgbWFwcGluZyBtZXNzYWdlcyB0byBmdW5jdGlvbnMuXG4gKiBVc2UgdGhpcyB0eXBlIHRvIGNyZWF0ZSB5b3VyIHVwZGF0ZSBsb2dpYyBmb3IgdGhlIHVzZUVsbWlzaCBob29rLlxuICovXG50eXBlIFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPiA9IHtcblx0W1RNZXNzYWdlTmFtZSBpbiBUTWVzc2FnZVtcIm5hbWVcIl1dOiAoXG5cdFx0bXNnOiBUTWVzc2FnZSAmIHsgbmFtZTogVE1lc3NhZ2VOYW1lIH0sXG5cdFx0bW9kZWw6IFRNb2RlbCxcblx0XHRwcm9wczogVFByb3BzLFxuXHRcdG9wdGlvbnM6IFVwZGF0ZUZ1bmN0aW9uT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UsIFRNZXNzYWdlICYgeyBuYW1lOiBUTWVzc2FnZU5hbWUgfT4sXG5cdCkgPT4gVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPjtcbn07XG5cbi8qKlxuICogVGhlIHJldHVybiB0eXBlIG9mIHRoZSBgc3Vic2NyaXB0aW9uYCBmdW5jdGlvbi5cbiAqIEB0ZW1wbGF0ZSBUTWVzc2FnZSBUaGUgdHlwZSBvZiB0aGUgbWVzc2FnZXMgZGlzY3JpbWluYXRlZCB1bmlvbi5cbiAqL1xudHlwZSBTdWJzY3JpcHRpb25SZXN1bHQ8VE1lc3NhZ2U+ID0gW0NtZDxUTWVzc2FnZT4sICgoKSA9PiB2b2lkKT9dIHwgU3Vic2NyaXB0aW9uRnVuY3Rpb248VE1lc3NhZ2U+W107XG50eXBlIFN1YnNjcmlwdGlvbkZ1bmN0aW9uPFRNZXNzYWdlPiA9IChkaXNwYXRjaDogRGlzcGF0Y2g8VE1lc3NhZ2U+KSA9PiAoKCkgPT4gdm9pZCkgfCB1bmRlZmluZWQ7XG50eXBlIFN1YnNjcmlwdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+ID0gKG1vZGVsOiBUTW9kZWwsIHByb3BzOiBUUHJvcHMpID0+IFN1YnNjcmlwdGlvblJlc3VsdDxUTWVzc2FnZT47XG5cbmZ1bmN0aW9uIHN1YnNjcmlwdGlvbklzRnVuY3Rpb25BcnJheShzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvblJlc3VsdDx1bmtub3duPik6IHN1YnNjcmlwdGlvbiBpcyBTdWJzY3JpcHRpb25GdW5jdGlvbjx1bmtub3duPltdIHtcblx0cmV0dXJuIHR5cGVvZiBzdWJzY3JpcHRpb25bMF0gPT09IFwiZnVuY3Rpb25cIjtcbn1cblxuZXhwb3J0IHR5cGUge1xuXHRDYWxsQmFzZUZ1bmN0aW9uLFxuXHRDbWQsXG5cdERlZmVyRnVuY3Rpb24sXG5cdERpc3BhdGNoLFxuXHRGYWxsYmFja0hhbmRsZXIsXG5cdEluaXRGdW5jdGlvbixcblx0SW5pdFJlc3VsdCxcblx0TWVzc2FnZSxcblx0TXNnU291cmNlLFxuXHROdWxsYWJsZSxcblx0U3ViLFxuXHRTdWJzY3JpcHRpb24sXG5cdFN1YnNjcmlwdGlvbkZ1bmN0aW9uLFxuXHRTdWJzY3JpcHRpb25SZXN1bHQsXG5cdFVwZGF0ZUZ1bmN0aW9uLFxuXHRVcGRhdGVGdW5jdGlvbk9wdGlvbnMsXG5cdFVwZGF0ZU1hcCxcblx0VXBkYXRlTWFwRnVuY3Rpb24sXG5cdFVwZGF0ZVJldHVyblR5cGUsXG59O1xuXG5leHBvcnQgeyBzdWJzY3JpcHRpb25Jc0Z1bmN0aW9uQXJyYXkgfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBTUE7QUFDQTtBQUNBOztBQU1BO0FBQ0E7QUFDQTs7QUFHQTtBQUNBO0FBQ0E7O0FBS0E7QUFDQTtBQUNBOztBQUtBO0FBQ0E7QUFDQTs7QUFpQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBVUE7QUFDQTtBQUNBO0FBQ0E7O0FBS0EsU0FBU0EsMkJBQTJCQSxDQUFDQyxZQUF5QyxFQUFtRDtFQUNoSSxPQUFPLE9BQU9BLFlBQVksQ0FBQyxDQUFDLENBQUMsS0FBSyxVQUFVO0FBQzdDIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { Immutable } from "immer";
|
|
2
|
+
import type { Cmd, Message, SubscriptionResult } from "../Types";
|
|
3
|
+
type DraftModelFunction<TModel> = (draft: TModel) => void;
|
|
4
|
+
/**
|
|
5
|
+
* Type for the return value of the `update` function.
|
|
6
|
+
*/
|
|
7
|
+
type UpdateReturnType<TModel, TMessage> = [DraftModelFunction<TModel> | null | undefined, ...(Cmd<TMessage> | undefined)[]] | [];
|
|
8
|
+
type DeferFunction<TModel, TMessage> = (draftFn: DraftModelFunction<TModel> | null | undefined, ...commands: (Cmd<TMessage> | undefined)[]) => void;
|
|
9
|
+
type CallBaseFunction<TModel, TProps, TMessage> = (fn: (msg: TMessage, model: Immutable<TModel>, props: TProps, options: UpdateFunctionOptions<TProps, TModel, TMessage>) => UpdateReturnType<TModel, Message>) => UpdateReturnType<TModel, TMessage>;
|
|
10
|
+
type UpdateMapFunction<TProps, TModel, TMessage> = (msg: TMessage, model: Immutable<TModel>, props: TProps, options: UpdateFunctionOptions<TProps, TModel, TMessage>) => UpdateReturnType<TModel, TMessage>;
|
|
11
|
+
interface UpdateFunctionOptions<TProps, TModel, TMessage> {
|
|
12
|
+
defer: DeferFunction<TModel, TMessage>;
|
|
13
|
+
callBase: CallBaseFunction<TModel, TProps, TMessage>;
|
|
14
|
+
}
|
|
15
|
+
type UpdateFunction<TProps, TModel, TMessage extends Message> = (model: Immutable<TModel>, msg: TMessage, props: TProps, options: UpdateFunctionOptions<TProps, TModel, TMessage>) => UpdateReturnType<TModel, TMessage>;
|
|
16
|
+
/**
|
|
17
|
+
* Type for mapping messages to functions.
|
|
18
|
+
* Use this type to create your update logic for the useElmish hook.
|
|
19
|
+
*/
|
|
20
|
+
type UpdateMap<TProps, TModel, TMessage extends Message> = {
|
|
21
|
+
[TMessageName in TMessage["name"]]: (msg: TMessage & {
|
|
22
|
+
name: TMessageName;
|
|
23
|
+
}, model: Immutable<TModel>, props: TProps, options: UpdateFunctionOptions<TProps, TModel, TMessage & {
|
|
24
|
+
name: TMessageName;
|
|
25
|
+
}>) => UpdateReturnType<TModel, TMessage>;
|
|
26
|
+
};
|
|
27
|
+
type Subscription<TProps, TModel, TMessage> = (model: Immutable<TModel>, props: TProps) => SubscriptionResult<TMessage>;
|
|
28
|
+
export type { CallBaseFunction, DeferFunction, DraftModelFunction, Subscription, UpdateFunction, UpdateFunctionOptions, UpdateMap, UpdateMapFunction, UpdateReturnType, };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
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==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Immutable } from "immer";
|
|
2
|
+
import type { Message } from "../Types";
|
|
3
|
+
import type { CallBaseFunction, UpdateFunctionOptions } from "./Types";
|
|
4
|
+
declare function createCallBase<TProps, TModel, TMessage extends Message>(msg: TMessage, model: Immutable<TModel>, props: TProps, options: Omit<UpdateFunctionOptions<TProps, TModel, TMessage>, "callBase">): CallBaseFunction<TModel, TProps, TMessage>;
|
|
5
|
+
export { createCallBase };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createCallBase = createCallBase;
|
|
7
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
8
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
9
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
10
|
+
function _defineProperty(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; }
|
|
11
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
12
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
13
|
+
function createCallBase(msg, model, props, options) {
|
|
14
|
+
var _callBase = function callBase(fn) {
|
|
15
|
+
return (
|
|
16
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- The current TMessage must be extended from Message
|
|
17
|
+
fn(msg, model, props, _objectSpread(_objectSpread({}, options), {}, {
|
|
18
|
+
callBase: _callBase
|
|
19
|
+
}))
|
|
20
|
+
);
|
|
21
|
+
};
|
|
22
|
+
return _callBase;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjcmVhdGVDYWxsQmFzZSIsIm1zZyIsIm1vZGVsIiwicHJvcHMiLCJvcHRpb25zIiwiY2FsbEJhc2UiLCJmbiIsIl9vYmplY3RTcHJlYWQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaW1tdXRhYmxlL2NyZWF0ZUNhbGxCYXNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSW1tdXRhYmxlIH0gZnJvbSBcImltbWVyXCI7XG5pbXBvcnQgdHlwZSB7IE1lc3NhZ2UgfSBmcm9tIFwiLi4vVHlwZXNcIjtcbmltcG9ydCB0eXBlIHsgQ2FsbEJhc2VGdW5jdGlvbiwgVXBkYXRlRnVuY3Rpb25PcHRpb25zLCBVcGRhdGVSZXR1cm5UeXBlIH0gZnJvbSBcIi4vVHlwZXNcIjtcblxuZnVuY3Rpb24gY3JlYXRlQ2FsbEJhc2U8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4oXG5cdG1zZzogVE1lc3NhZ2UsXG5cdG1vZGVsOiBJbW11dGFibGU8VE1vZGVsPixcblx0cHJvcHM6IFRQcm9wcyxcblx0b3B0aW9uczogT21pdDxVcGRhdGVGdW5jdGlvbk9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiwgXCJjYWxsQmFzZVwiPixcbik6IENhbGxCYXNlRnVuY3Rpb248VE1vZGVsLCBUUHJvcHMsIFRNZXNzYWdlPiB7XG5cdGNvbnN0IGNhbGxCYXNlOiBDYWxsQmFzZUZ1bmN0aW9uPFRNb2RlbCwgVFByb3BzLCBUTWVzc2FnZT4gPSAoZm4pID0+XG5cdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtdHlwZS1hc3NlcnRpb24gLS0gVGhlIGN1cnJlbnQgVE1lc3NhZ2UgbXVzdCBiZSBleHRlbmRlZCBmcm9tIE1lc3NhZ2Vcblx0XHRmbihtc2csIG1vZGVsLCBwcm9wcywgeyAuLi5vcHRpb25zLCBjYWxsQmFzZSB9KSBhcyBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgVE1lc3NhZ2U+O1xuXG5cdHJldHVybiBjYWxsQmFzZTtcbn1cblxuZXhwb3J0IHsgY3JlYXRlQ2FsbEJhc2UgfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBSUEsU0FBU0EsY0FBY0EsQ0FDdEJDLEdBQWEsRUFDYkMsS0FBd0IsRUFDeEJDLEtBQWEsRUFDYkMsT0FBMEUsRUFDN0I7RUFDN0MsSUFBTUMsU0FBb0QsR0FBRyxTQUF2REEsUUFBb0RBLENBQUlDLEVBQUU7SUFBQTtNQUMvRDtNQUNBQSxFQUFFLENBQUNMLEdBQUcsRUFBRUMsS0FBSyxFQUFFQyxLQUFLLEVBQUFJLGFBQUEsQ0FBQUEsYUFBQSxLQUFPSCxPQUFPO1FBQUVDLFFBQVEsRUFBUkE7TUFBUSxFQUFFO0lBQUM7RUFBQSxDQUFzQztFQUV0RixPQUFPQSxTQUFRO0FBQ2hCIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Cmd, Message } from "../Types";
|
|
2
|
+
import type { DeferFunction, DraftModelFunction } from "./Types";
|
|
3
|
+
declare function createDefer<TModel, TMessage extends Message>(): [
|
|
4
|
+
DeferFunction<TModel, TMessage>,
|
|
5
|
+
() => [DraftModelFunction<TModel>[], (Cmd<TMessage> | undefined)[]]
|
|
6
|
+
];
|
|
7
|
+
export { createDefer };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createDefer = createDefer;
|
|
7
|
+
function createDefer() {
|
|
8
|
+
var draftFunctions = [];
|
|
9
|
+
var deferredCommands = [];
|
|
10
|
+
var defer = function defer(tempDraftFn) {
|
|
11
|
+
if (tempDraftFn) {
|
|
12
|
+
draftFunctions.push(tempDraftFn);
|
|
13
|
+
}
|
|
14
|
+
for (var _len = arguments.length, tempDeferredCommands = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
15
|
+
tempDeferredCommands[_key - 1] = arguments[_key];
|
|
16
|
+
}
|
|
17
|
+
deferredCommands.push.apply(deferredCommands, tempDeferredCommands);
|
|
18
|
+
};
|
|
19
|
+
return [defer, function () {
|
|
20
|
+
return [draftFunctions, deferredCommands];
|
|
21
|
+
}];
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjcmVhdGVEZWZlciIsImRyYWZ0RnVuY3Rpb25zIiwiZGVmZXJyZWRDb21tYW5kcyIsImRlZmVyIiwidGVtcERyYWZ0Rm4iLCJwdXNoIiwiX2xlbiIsImFyZ3VtZW50cyIsImxlbmd0aCIsInRlbXBEZWZlcnJlZENvbW1hbmRzIiwiQXJyYXkiLCJfa2V5IiwiYXBwbHkiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaW1tdXRhYmxlL2NyZWF0ZURlZmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ21kLCBNZXNzYWdlIH0gZnJvbSBcIi4uL1R5cGVzXCI7XG5pbXBvcnQgdHlwZSB7IERlZmVyRnVuY3Rpb24sIERyYWZ0TW9kZWxGdW5jdGlvbiB9IGZyb20gXCIuL1R5cGVzXCI7XG5cbmZ1bmN0aW9uIGNyZWF0ZURlZmVyPFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPigpOiBbXG5cdERlZmVyRnVuY3Rpb248VE1vZGVsLCBUTWVzc2FnZT4sXG5cdCgpID0+IFtEcmFmdE1vZGVsRnVuY3Rpb248VE1vZGVsPltdLCAoQ21kPFRNZXNzYWdlPiB8IHVuZGVmaW5lZClbXV0sXG5dIHtcblx0Y29uc3QgZHJhZnRGdW5jdGlvbnM6IERyYWZ0TW9kZWxGdW5jdGlvbjxUTW9kZWw+W10gPSBbXTtcblx0Y29uc3QgZGVmZXJyZWRDb21tYW5kczogKENtZDxUTWVzc2FnZT4gfCB1bmRlZmluZWQpW10gPSBbXTtcblxuXHRjb25zdCBkZWZlcjogRGVmZXJGdW5jdGlvbjxUTW9kZWwsIFRNZXNzYWdlPiA9ICh0ZW1wRHJhZnRGbiwgLi4udGVtcERlZmVycmVkQ29tbWFuZHMpID0+IHtcblx0XHRpZiAodGVtcERyYWZ0Rm4pIHtcblx0XHRcdGRyYWZ0RnVuY3Rpb25zLnB1c2godGVtcERyYWZ0Rm4pO1xuXHRcdH1cblxuXHRcdGRlZmVycmVkQ29tbWFuZHMucHVzaCguLi50ZW1wRGVmZXJyZWRDb21tYW5kcyk7XG5cdH07XG5cblx0cmV0dXJuIFtkZWZlciwgKCkgPT4gW2RyYWZ0RnVuY3Rpb25zLCBkZWZlcnJlZENvbW1hbmRzXV07XG59XG5cbmV4cG9ydCB7IGNyZWF0ZURlZmVyIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUdBLFNBQVNBLFdBQVdBLENBQUEsRUFHbEI7RUFDRCxJQUFNQyxjQUE0QyxHQUFHLEVBQUU7RUFDdkQsSUFBTUMsZ0JBQStDLEdBQUcsRUFBRTtFQUUxRCxJQUFNQyxLQUFzQyxHQUFHLFNBQXpDQSxLQUFzQ0EsQ0FBSUMsV0FBVyxFQUE4QjtJQUN4RixJQUFJQSxXQUFXLEVBQUU7TUFDaEJILGNBQWMsQ0FBQ0ksSUFBSSxDQUFDRCxXQUFXLENBQUM7SUFDakM7SUFBQyxTQUFBRSxJQUFBLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxFQUg4REMsb0JBQW9CLE9BQUFDLEtBQUEsQ0FBQUosSUFBQSxPQUFBQSxJQUFBLFdBQUFLLElBQUEsTUFBQUEsSUFBQSxHQUFBTCxJQUFBLEVBQUFLLElBQUE7TUFBcEJGLG9CQUFvQixDQUFBRSxJQUFBLFFBQUFKLFNBQUEsQ0FBQUksSUFBQTtJQUFBO0lBS25GVCxnQkFBZ0IsQ0FBQ0csSUFBSSxDQUFBTyxLQUFBLENBQXJCVixnQkFBZ0IsRUFBU08sb0JBQW9CLENBQUM7RUFDL0MsQ0FBQztFQUVELE9BQU8sQ0FBQ04sS0FBSyxFQUFFO0lBQUEsT0FBTSxDQUFDRixjQUFjLEVBQUVDLGdCQUFnQixDQUFDO0VBQUEsRUFBQztBQUN6RCIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { cmd } from "../cmd";
|
|
2
|
+
export { errorHandler, errorMsg, handleError, type ErrorMessage } from "../ErrorHandling";
|
|
3
|
+
export { init, type ElmOptions, type Logger } from "../Init";
|
|
4
|
+
export { mergeSubscriptions } from "../mergeSubscriptions";
|
|
5
|
+
export type { Cmd, Dispatch, InitResult, Message, SubscriptionResult, } from "../Types";
|
|
6
|
+
export type { UpdateFunctionOptions, UpdateMap, UpdateReturnType, } from "./Types";
|
|
7
|
+
export { useElmish, type UseElmishOptions } from "./useElmish";
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "cmd", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function get() {
|
|
9
|
+
return _cmd.cmd;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "errorHandler", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function get() {
|
|
15
|
+
return _ErrorHandling.errorHandler;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "errorMsg", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function get() {
|
|
21
|
+
return _ErrorHandling.errorMsg;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(exports, "handleError", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function get() {
|
|
27
|
+
return _ErrorHandling.handleError;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
Object.defineProperty(exports, "init", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
get: function get() {
|
|
33
|
+
return _Init.init;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
Object.defineProperty(exports, "mergeSubscriptions", {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
get: function get() {
|
|
39
|
+
return _mergeSubscriptions.mergeSubscriptions;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
Object.defineProperty(exports, "useElmish", {
|
|
43
|
+
enumerable: true,
|
|
44
|
+
get: function get() {
|
|
45
|
+
return _useElmish.useElmish;
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
var _cmd = require("../cmd");
|
|
49
|
+
var _ErrorHandling = require("../ErrorHandling");
|
|
50
|
+
var _Init = require("../Init");
|
|
51
|
+
var _mergeSubscriptions = require("../mergeSubscriptions");
|
|
52
|
+
var _useElmish = require("./useElmish");
|
|
53
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY21kIiwicmVxdWlyZSIsIl9FcnJvckhhbmRsaW5nIiwiX0luaXQiLCJfbWVyZ2VTdWJzY3JpcHRpb25zIiwiX3VzZUVsbWlzaCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbW11dGFibGUvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgY21kIH0gZnJvbSBcIi4uL2NtZFwiO1xuZXhwb3J0IHsgZXJyb3JIYW5kbGVyLCBlcnJvck1zZywgaGFuZGxlRXJyb3IsIHR5cGUgRXJyb3JNZXNzYWdlIH0gZnJvbSBcIi4uL0Vycm9ySGFuZGxpbmdcIjtcbmV4cG9ydCB7IGluaXQsIHR5cGUgRWxtT3B0aW9ucywgdHlwZSBMb2dnZXIgfSBmcm9tIFwiLi4vSW5pdFwiO1xuZXhwb3J0IHsgbWVyZ2VTdWJzY3JpcHRpb25zIH0gZnJvbSBcIi4uL21lcmdlU3Vic2NyaXB0aW9uc1wiO1xuZXhwb3J0IHR5cGUge1xuXHRDbWQsXG5cdERpc3BhdGNoLFxuXHRJbml0UmVzdWx0LFxuXHRNZXNzYWdlLFxuXHRTdWJzY3JpcHRpb25SZXN1bHQsXG59IGZyb20gXCIuLi9UeXBlc1wiO1xuZXhwb3J0IHR5cGUge1xuXHRVcGRhdGVGdW5jdGlvbk9wdGlvbnMsXG5cdFVwZGF0ZU1hcCxcblx0VXBkYXRlUmV0dXJuVHlwZSxcbn0gZnJvbSBcIi4vVHlwZXNcIjtcbmV4cG9ydCB7IHVzZUVsbWlzaCwgdHlwZSBVc2VFbG1pc2hPcHRpb25zIH0gZnJvbSBcIi4vdXNlRWxtaXNoXCI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsSUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsY0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsS0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsbUJBQUEsR0FBQUgsT0FBQTtBQWFBLElBQUFJLFVBQUEsR0FBQUosT0FBQSIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { type Immutable } from "immer";
|
|
2
|
+
import { type Dispatch, type InitFunction, type Message } from "../Types";
|
|
3
|
+
import type { Subscription, UpdateFunction, UpdateFunctionOptions, UpdateMap, UpdateReturnType } from "./Types";
|
|
4
|
+
/**
|
|
5
|
+
* Options for the `useElmish` hook.
|
|
6
|
+
* @interface UseElmishOptions
|
|
7
|
+
* @template TProps The type of the props.
|
|
8
|
+
* @template TModel The type of the model.
|
|
9
|
+
* @template TMessage The type of the messages discriminated union.
|
|
10
|
+
*/
|
|
11
|
+
interface UseElmishOptions<TProps, TModel, TMessage extends Message> {
|
|
12
|
+
/**
|
|
13
|
+
* The name of the component. This is used for logging only.
|
|
14
|
+
* @type {string}
|
|
15
|
+
*/
|
|
16
|
+
name: string;
|
|
17
|
+
/**
|
|
18
|
+
* The props passed to the component.
|
|
19
|
+
* @type {TProps}
|
|
20
|
+
*/
|
|
21
|
+
props: TProps;
|
|
22
|
+
/**
|
|
23
|
+
* The function to initialize the components model. This function is only called once.
|
|
24
|
+
* @type {InitFunction<TProps, TModel, TMessage>}
|
|
25
|
+
*/
|
|
26
|
+
init: InitFunction<TProps, TModel, TMessage>;
|
|
27
|
+
/**
|
|
28
|
+
* The `update` function or update map object.
|
|
29
|
+
* @type {(UpdateFunction<TProps, TModel, TMessage> | UpdateMap<TProps, TModel, TMessage>)}
|
|
30
|
+
*/
|
|
31
|
+
update: UpdateFunction<TProps, TModel, TMessage> | UpdateMap<TProps, TModel, TMessage>;
|
|
32
|
+
/**
|
|
33
|
+
* The optional `subscription` function. This function is only called once.
|
|
34
|
+
* @type {(UpdateFunction<TProps, TModel, TMessage> | UpdateMap<TProps, TModel, TMessage>)}
|
|
35
|
+
*/
|
|
36
|
+
subscription?: Subscription<TProps, TModel, TMessage>;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Hook to use the Elm architecture pattern in a function component.
|
|
40
|
+
* @param {UseElmishOptions} options The options passed the the hook.
|
|
41
|
+
* @returns A tuple containing the current model and the dispatcher.
|
|
42
|
+
* @example
|
|
43
|
+
* const [model, dispatch] = useElmish({ props, init, update, name: "MyComponent" });
|
|
44
|
+
*/
|
|
45
|
+
declare function useElmish<TProps, TModel, TMessage extends Message>({ name, props, init, update, subscription, }: UseElmishOptions<TProps, TModel, TMessage>): [Immutable<TModel>, Dispatch<TMessage>];
|
|
46
|
+
declare function callUpdate<TProps, TModel, TMessage extends Message>(update: UpdateFunction<TProps, TModel, TMessage> | UpdateMap<TProps, TModel, TMessage>, msg: TMessage, model: Immutable<TModel>, props: TProps, options: UpdateFunctionOptions<TProps, TModel, TMessage>): UpdateReturnType<TModel, TMessage>;
|
|
47
|
+
declare function callUpdateMap<TProps, TModel, TMessage extends Message>(updateMap: UpdateMap<TProps, TModel, TMessage>, msg: TMessage, model: Immutable<TModel>, props: TProps, options: UpdateFunctionOptions<TProps, TModel, TMessage>): UpdateReturnType<TModel, TMessage>;
|
|
48
|
+
export type { UseElmishOptions };
|
|
49
|
+
export { callUpdate, callUpdateMap, useElmish };
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.callUpdate = callUpdate;
|
|
7
|
+
exports.callUpdateMap = callUpdateMap;
|
|
8
|
+
exports.useElmish = useElmish;
|
|
9
|
+
var _immer = require("immer");
|
|
10
|
+
var _react = require("react");
|
|
11
|
+
var _Common = require("../Common");
|
|
12
|
+
var _fakeOptions = require("../fakeOptions");
|
|
13
|
+
var _Init = require("../Init");
|
|
14
|
+
var _reduxDevTools = require("../reduxDevTools");
|
|
15
|
+
var _Types = require("../Types");
|
|
16
|
+
var _createCallBase = require("./createCallBase");
|
|
17
|
+
var _createDefer3 = require("./createDefer");
|
|
18
|
+
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
19
|
+
function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
|
|
20
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
21
|
+
function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
|
|
22
|
+
function _toArray(r) { return _arrayWithHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableRest(); }
|
|
23
|
+
function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
|
|
24
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
25
|
+
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."); }
|
|
26
|
+
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; } }
|
|
27
|
+
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; }
|
|
28
|
+
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; } }
|
|
29
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; } /* eslint-disable react-hooks/exhaustive-deps */
|
|
30
|
+
/**
|
|
31
|
+
* Options for the `useElmish` hook.
|
|
32
|
+
* @interface UseElmishOptions
|
|
33
|
+
* @template TProps The type of the props.
|
|
34
|
+
* @template TModel The type of the model.
|
|
35
|
+
* @template TMessage The type of the messages discriminated union.
|
|
36
|
+
*/
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Hook to use the Elm architecture pattern in a function component.
|
|
40
|
+
* @param {UseElmishOptions} options The options passed the the hook.
|
|
41
|
+
* @returns A tuple containing the current model and the dispatcher.
|
|
42
|
+
* @example
|
|
43
|
+
* const [model, dispatch] = useElmish({ props, init, update, name: "MyComponent" });
|
|
44
|
+
*/
|
|
45
|
+
function useElmish(_ref) {
|
|
46
|
+
var _fakeOptions$dispatch;
|
|
47
|
+
var name = _ref.name,
|
|
48
|
+
props = _ref.props,
|
|
49
|
+
init = _ref.init,
|
|
50
|
+
update = _ref.update,
|
|
51
|
+
subscription = _ref.subscription;
|
|
52
|
+
var running = false;
|
|
53
|
+
var buffer = [];
|
|
54
|
+
var _useState = (0, _react.useState)(null),
|
|
55
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
56
|
+
model = _useState2[0],
|
|
57
|
+
setModel = _useState2[1];
|
|
58
|
+
var propsRef = (0, _react.useRef)(props);
|
|
59
|
+
var isMountedRef = (0, _react.useRef)(true);
|
|
60
|
+
var devTools = (0, _react.useRef)(null);
|
|
61
|
+
(0, _react.useEffect)(function () {
|
|
62
|
+
var reduxUnsubscribe;
|
|
63
|
+
if (_Init.Services.enableDevTools === true && (0, _reduxDevTools.isReduxDevToolsEnabled)(window)) {
|
|
64
|
+
// eslint-disable-next-line no-underscore-dangle
|
|
65
|
+
devTools.current = window.__REDUX_DEVTOOLS_EXTENSION__.connect({
|
|
66
|
+
name: name,
|
|
67
|
+
serialize: {
|
|
68
|
+
options: true
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
reduxUnsubscribe = devTools.current.subscribe(function (message) {
|
|
72
|
+
if (message.type === "DISPATCH" && message.payload.type === "JUMP_TO_ACTION") {
|
|
73
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
|
|
74
|
+
setModel(JSON.parse(message.state));
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
isMountedRef.current = true;
|
|
79
|
+
return function () {
|
|
80
|
+
var _reduxUnsubscribe;
|
|
81
|
+
isMountedRef.current = false;
|
|
82
|
+
(_reduxUnsubscribe = reduxUnsubscribe) === null || _reduxUnsubscribe === void 0 || _reduxUnsubscribe();
|
|
83
|
+
};
|
|
84
|
+
}, [name]);
|
|
85
|
+
var currentModel = model;
|
|
86
|
+
if (propsRef.current !== props) {
|
|
87
|
+
propsRef.current = props;
|
|
88
|
+
}
|
|
89
|
+
var fakeOptions = (0, _fakeOptions.getFakeOptionsOnce)();
|
|
90
|
+
var dispatch = (0, _react.useCallback)((_fakeOptions$dispatch = fakeOptions === null || fakeOptions === void 0 ? void 0 : fakeOptions.dispatch) !== null && _fakeOptions$dispatch !== void 0 ? _fakeOptions$dispatch : function (msg) {
|
|
91
|
+
if (running) {
|
|
92
|
+
buffer.push(msg);
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
running = true;
|
|
96
|
+
var nextMsg = msg;
|
|
97
|
+
var modified = false;
|
|
98
|
+
do {
|
|
99
|
+
if (handleMessage(nextMsg)) {
|
|
100
|
+
modified = true;
|
|
101
|
+
}
|
|
102
|
+
if (devTools.current) {
|
|
103
|
+
devTools.current.send(nextMsg.name, currentModel);
|
|
104
|
+
}
|
|
105
|
+
nextMsg = buffer.shift();
|
|
106
|
+
} while (nextMsg);
|
|
107
|
+
running = false;
|
|
108
|
+
if (isMountedRef.current && modified) {
|
|
109
|
+
setModel(function () {
|
|
110
|
+
var _Services$logger;
|
|
111
|
+
(_Services$logger = _Init.Services.logger) === null || _Services$logger === void 0 || _Services$logger.debug("Update model for", name, currentModel);
|
|
112
|
+
return currentModel;
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
}, []);
|
|
116
|
+
var initializedModel = model;
|
|
117
|
+
if (!initializedModel) {
|
|
118
|
+
var _devTools$current, _Services$logger2;
|
|
119
|
+
var _ref2 = fakeOptions !== null && fakeOptions !== void 0 && fakeOptions.model ? [fakeOptions.model] : init(props),
|
|
120
|
+
_ref3 = _toArray(_ref2),
|
|
121
|
+
initModel = _ref3[0],
|
|
122
|
+
initCommands = _ref3.slice(1);
|
|
123
|
+
initializedModel = (0, _immer.castImmutable)((0, _immer.freeze)(initModel, true));
|
|
124
|
+
currentModel = initializedModel;
|
|
125
|
+
setModel(initializedModel);
|
|
126
|
+
(_devTools$current = devTools.current) === null || _devTools$current === void 0 || _devTools$current.init(initializedModel);
|
|
127
|
+
(_Services$logger2 = _Init.Services.logger) === null || _Services$logger2 === void 0 || _Services$logger2.debug("Initial model for", name, initializedModel);
|
|
128
|
+
_Common.execCmd.apply(void 0, [dispatch].concat(_toConsumableArray(initCommands)));
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
// biome-ignore lint/correctness/useExhaustiveDependencies: We want to run this effect only once
|
|
132
|
+
(0, _react.useEffect)(function () {
|
|
133
|
+
if (subscription) {
|
|
134
|
+
var subscriptionResult = subscription(initializedModel, props);
|
|
135
|
+
if ((0, _Types.subscriptionIsFunctionArray)(subscriptionResult)) {
|
|
136
|
+
var destructors = subscriptionResult.map(function (sub) {
|
|
137
|
+
return sub(dispatch);
|
|
138
|
+
}).filter(function (destructor) {
|
|
139
|
+
return destructor !== undefined;
|
|
140
|
+
});
|
|
141
|
+
return function combinedDestructor() {
|
|
142
|
+
var _iterator = _createForOfIteratorHelper(destructors),
|
|
143
|
+
_step;
|
|
144
|
+
try {
|
|
145
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
146
|
+
var _destructor = _step.value;
|
|
147
|
+
_destructor();
|
|
148
|
+
}
|
|
149
|
+
} catch (err) {
|
|
150
|
+
_iterator.e(err);
|
|
151
|
+
} finally {
|
|
152
|
+
_iterator.f();
|
|
153
|
+
}
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
var _subscriptionResult = _slicedToArray(subscriptionResult, 2),
|
|
157
|
+
subCmd = _subscriptionResult[0],
|
|
158
|
+
destructor = _subscriptionResult[1];
|
|
159
|
+
(0, _Common.execCmd)(dispatch, subCmd);
|
|
160
|
+
return destructor;
|
|
161
|
+
}
|
|
162
|
+
}, []);
|
|
163
|
+
return [initializedModel, dispatch];
|
|
164
|
+
function handleMessage(nextMsg) {
|
|
165
|
+
if (!currentModel) {
|
|
166
|
+
return false;
|
|
167
|
+
}
|
|
168
|
+
var modified = false;
|
|
169
|
+
(0, _Common.logMessage)(name, nextMsg);
|
|
170
|
+
var _createDefer = (0, _createDefer3.createDefer)(),
|
|
171
|
+
_createDefer2 = _slicedToArray(_createDefer, 2),
|
|
172
|
+
defer = _createDefer2[0],
|
|
173
|
+
getDeferred = _createDefer2[1];
|
|
174
|
+
var callBase = (0, _createCallBase.createCallBase)(nextMsg, currentModel, propsRef.current, {
|
|
175
|
+
defer: defer
|
|
176
|
+
});
|
|
177
|
+
var _callUpdate = callUpdate(update, nextMsg, currentModel, propsRef.current, {
|
|
178
|
+
defer: defer,
|
|
179
|
+
callBase: callBase
|
|
180
|
+
}),
|
|
181
|
+
_callUpdate2 = _toArray(_callUpdate),
|
|
182
|
+
draftFn = _callUpdate2[0],
|
|
183
|
+
commands = _callUpdate2.slice(1);
|
|
184
|
+
var _getDeferred = getDeferred(),
|
|
185
|
+
_getDeferred2 = _slicedToArray(_getDeferred, 2),
|
|
186
|
+
deferredDraftFunctions = _getDeferred2[0],
|
|
187
|
+
deferredCommands = _getDeferred2[1];
|
|
188
|
+
var _iterator2 = _createForOfIteratorHelper(deferredDraftFunctions),
|
|
189
|
+
_step2;
|
|
190
|
+
try {
|
|
191
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
192
|
+
var deferredDraftFn = _step2.value;
|
|
193
|
+
currentModel = (0, _immer.produce)(currentModel, deferredDraftFn);
|
|
194
|
+
modified = true;
|
|
195
|
+
}
|
|
196
|
+
} catch (err) {
|
|
197
|
+
_iterator2.e(err);
|
|
198
|
+
} finally {
|
|
199
|
+
_iterator2.f();
|
|
200
|
+
}
|
|
201
|
+
if (draftFn) {
|
|
202
|
+
currentModel = (0, _immer.produce)(currentModel, draftFn);
|
|
203
|
+
modified = true;
|
|
204
|
+
}
|
|
205
|
+
_Common.execCmd.apply(void 0, [dispatch].concat(_toConsumableArray(commands), _toConsumableArray(deferredCommands)));
|
|
206
|
+
return modified;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
function callUpdate(update, msg, model, props, options) {
|
|
210
|
+
if (typeof update === "function") {
|
|
211
|
+
return update(model, msg, props, options);
|
|
212
|
+
}
|
|
213
|
+
return callUpdateMap(update, msg, model, props, options);
|
|
214
|
+
}
|
|
215
|
+
function callUpdateMap(updateMap, msg, model, props, options) {
|
|
216
|
+
var msgName = msg.name;
|
|
217
|
+
return updateMap[msgName](msg, model, props, options);
|
|
218
|
+
}
|
|
219
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaW1tZXIiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX0NvbW1vbiIsIl9mYWtlT3B0aW9ucyIsIl9Jbml0IiwiX3JlZHV4RGV2VG9vbHMiLCJfVHlwZXMiLCJfY3JlYXRlQ2FsbEJhc2UiLCJfY3JlYXRlRGVmZXIzIiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJyIiwiZSIsInQiLCJTeW1ib2wiLCJpdGVyYXRvciIsIkFycmF5IiwiaXNBcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsImxlbmd0aCIsIl9uIiwiRiIsInMiLCJuIiwiZG9uZSIsInZhbHVlIiwiZiIsIlR5cGVFcnJvciIsIm8iLCJhIiwidSIsImNhbGwiLCJuZXh0IiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIl9hcnJheUxpa2VUb0FycmF5IiwiX3RvQXJyYXkiLCJfYXJyYXlXaXRoSG9sZXMiLCJfbm9uSXRlcmFibGVSZXN0IiwiZnJvbSIsIl9zbGljZWRUb0FycmF5IiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwidG9TdHJpbmciLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsInRlc3QiLCJsIiwiaSIsIk9iamVjdCIsInB1c2giLCJ1c2VFbG1pc2giLCJfcmVmIiwiX2Zha2VPcHRpb25zJGRpc3BhdGNoIiwicHJvcHMiLCJpbml0IiwidXBkYXRlIiwic3Vic2NyaXB0aW9uIiwicnVubmluZyIsImJ1ZmZlciIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIm1vZGVsIiwic2V0TW9kZWwiLCJwcm9wc1JlZiIsInVzZVJlZiIsImlzTW91bnRlZFJlZiIsImRldlRvb2xzIiwidXNlRWZmZWN0IiwicmVkdXhVbnN1YnNjcmliZSIsIlNlcnZpY2VzIiwiZW5hYmxlRGV2VG9vbHMiLCJpc1JlZHV4RGV2VG9vbHNFbmFibGVkIiwid2luZG93IiwiY3VycmVudCIsIl9fUkVEVVhfREVWVE9PTFNfRVhURU5TSU9OX18iLCJjb25uZWN0Iiwic2VyaWFsaXplIiwib3B0aW9ucyIsInN1YnNjcmliZSIsIm1lc3NhZ2UiLCJ0eXBlIiwicGF5bG9hZCIsIkpTT04iLCJwYXJzZSIsInN0YXRlIiwiX3JlZHV4VW5zdWJzY3JpYmUiLCJjdXJyZW50TW9kZWwiLCJmYWtlT3B0aW9ucyIsImdldEZha2VPcHRpb25zT25jZSIsImRpc3BhdGNoIiwidXNlQ2FsbGJhY2siLCJtc2ciLCJuZXh0TXNnIiwibW9kaWZpZWQiLCJoYW5kbGVNZXNzYWdlIiwic2VuZCIsInNoaWZ0IiwiX1NlcnZpY2VzJGxvZ2dlciIsImxvZ2dlciIsImRlYnVnIiwiaW5pdGlhbGl6ZWRNb2RlbCIsIl9kZXZUb29scyRjdXJyZW50IiwiX1NlcnZpY2VzJGxvZ2dlcjIiLCJfcmVmMiIsIl9yZWYzIiwiaW5pdE1vZGVsIiwiaW5pdENvbW1hbmRzIiwiY2FzdEltbXV0YWJsZSIsImZyZWV6ZSIsImV4ZWNDbWQiLCJhcHBseSIsImNvbmNhdCIsInN1YnNjcmlwdGlvblJlc3VsdCIsInN1YnNjcmlwdGlvbklzRnVuY3Rpb25BcnJheSIsImRlc3RydWN0b3JzIiwibWFwIiwic3ViIiwiZmlsdGVyIiwiZGVzdHJ1Y3RvciIsInVuZGVmaW5lZCIsImNvbWJpbmVkRGVzdHJ1Y3RvciIsIl9pdGVyYXRvciIsIl9zdGVwIiwiZXJyIiwiX3N1YnNjcmlwdGlvblJlc3VsdCIsInN1YkNtZCIsImxvZ01lc3NhZ2UiLCJfY3JlYXRlRGVmZXIiLCJjcmVhdGVEZWZlciIsIl9jcmVhdGVEZWZlcjIiLCJkZWZlciIsImdldERlZmVycmVkIiwiY2FsbEJhc2UiLCJjcmVhdGVDYWxsQmFzZSIsIl9jYWxsVXBkYXRlIiwiY2FsbFVwZGF0ZSIsIl9jYWxsVXBkYXRlMiIsImRyYWZ0Rm4iLCJjb21tYW5kcyIsIl9nZXREZWZlcnJlZCIsIl9nZXREZWZlcnJlZDIiLCJkZWZlcnJlZERyYWZ0RnVuY3Rpb25zIiwiZGVmZXJyZWRDb21tYW5kcyIsIl9pdGVyYXRvcjIiLCJfc3RlcDIiLCJkZWZlcnJlZERyYWZ0Rm4iLCJwcm9kdWNlIiwiY2FsbFVwZGF0ZU1hcCIsInVwZGF0ZU1hcCIsIm1zZ05hbWUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaW1tdXRhYmxlL3VzZUVsbWlzaC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHMgKi9cbmltcG9ydCB7IGNhc3RJbW11dGFibGUsIGZyZWV6ZSwgcHJvZHVjZSwgdHlwZSBJbW11dGFibGUgfSBmcm9tIFwiaW1tZXJcIjtcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGV4ZWNDbWQsIGxvZ01lc3NhZ2UgfSBmcm9tIFwiLi4vQ29tbW9uXCI7XG5pbXBvcnQgeyBnZXRGYWtlT3B0aW9uc09uY2UgfSBmcm9tIFwiLi4vZmFrZU9wdGlvbnNcIjtcbmltcG9ydCB7IFNlcnZpY2VzIH0gZnJvbSBcIi4uL0luaXRcIjtcbmltcG9ydCB7IGlzUmVkdXhEZXZUb29sc0VuYWJsZWQsIHR5cGUgUmVkdXhEZXZUb29scyB9IGZyb20gXCIuLi9yZWR1eERldlRvb2xzXCI7XG5pbXBvcnQgeyBzdWJzY3JpcHRpb25Jc0Z1bmN0aW9uQXJyYXksIHR5cGUgRGlzcGF0Y2gsIHR5cGUgSW5pdEZ1bmN0aW9uLCB0eXBlIE1lc3NhZ2UsIHR5cGUgTnVsbGFibGUgfSBmcm9tIFwiLi4vVHlwZXNcIjtcbmltcG9ydCB7IGNyZWF0ZUNhbGxCYXNlIH0gZnJvbSBcIi4vY3JlYXRlQ2FsbEJhc2VcIjtcbmltcG9ydCB7IGNyZWF0ZURlZmVyIH0gZnJvbSBcIi4vY3JlYXRlRGVmZXJcIjtcbmltcG9ydCB0eXBlIHsgU3Vic2NyaXB0aW9uLCBVcGRhdGVGdW5jdGlvbiwgVXBkYXRlRnVuY3Rpb25PcHRpb25zLCBVcGRhdGVNYXAsIFVwZGF0ZVJldHVyblR5cGUgfSBmcm9tIFwiLi9UeXBlc1wiO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHRoZSBgdXNlRWxtaXNoYCBob29rLlxuICogQGludGVyZmFjZSBVc2VFbG1pc2hPcHRpb25zXG4gKiBAdGVtcGxhdGUgVFByb3BzIFRoZSB0eXBlIG9mIHRoZSBwcm9wcy5cbiAqIEB0ZW1wbGF0ZSBUTW9kZWwgVGhlIHR5cGUgb2YgdGhlIG1vZGVsLlxuICogQHRlbXBsYXRlIFRNZXNzYWdlIFRoZSB0eXBlIG9mIHRoZSBtZXNzYWdlcyBkaXNjcmltaW5hdGVkIHVuaW9uLlxuICovXG5pbnRlcmZhY2UgVXNlRWxtaXNoT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPiB7XG5cdC8qKlxuXHQgKiBUaGUgbmFtZSBvZiB0aGUgY29tcG9uZW50LiBUaGlzIGlzIHVzZWQgZm9yIGxvZ2dpbmcgb25seS5cblx0ICogQHR5cGUge3N0cmluZ31cblx0ICovXG5cdG5hbWU6IHN0cmluZztcblx0LyoqXG5cdCAqIFRoZSBwcm9wcyBwYXNzZWQgdG8gdGhlIGNvbXBvbmVudC5cblx0ICogQHR5cGUge1RQcm9wc31cblx0ICovXG5cdHByb3BzOiBUUHJvcHM7XG5cdC8qKlxuXHQgKiBUaGUgZnVuY3Rpb24gdG8gaW5pdGlhbGl6ZSB0aGUgY29tcG9uZW50cyBtb2RlbC4gVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGNhbGxlZCBvbmNlLlxuXHQgKiBAdHlwZSB7SW5pdEZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT59XG5cdCAqL1xuXHRpbml0OiBJbml0RnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPjtcblx0LyoqXG5cdCAqIFRoZSBgdXBkYXRlYCBmdW5jdGlvbiBvciB1cGRhdGUgbWFwIG9iamVjdC5cblx0ICogQHR5cGUgeyhVcGRhdGVGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+IHwgVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4pfVxuXHQgKi9cblx0dXBkYXRlOiBVcGRhdGVGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+IHwgVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT47XG5cdC8qKlxuXHQgKiBUaGUgb3B0aW9uYWwgYHN1YnNjcmlwdGlvbmAgZnVuY3Rpb24uIFRoaXMgZnVuY3Rpb24gaXMgb25seSBjYWxsZWQgb25jZS5cblx0ICogQHR5cGUgeyhVcGRhdGVGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+IHwgVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4pfVxuXHQgKi9cblx0c3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT47XG59XG5cbi8qKlxuICogSG9vayB0byB1c2UgdGhlIEVsbSBhcmNoaXRlY3R1cmUgcGF0dGVybiBpbiBhIGZ1bmN0aW9uIGNvbXBvbmVudC5cbiAqIEBwYXJhbSB7VXNlRWxtaXNoT3B0aW9uc30gb3B0aW9ucyBUaGUgb3B0aW9ucyBwYXNzZWQgdGhlIHRoZSBob29rLlxuICogQHJldHVybnMgQSB0dXBsZSBjb250YWluaW5nIHRoZSBjdXJyZW50IG1vZGVsIGFuZCB0aGUgZGlzcGF0Y2hlci5cbiAqIEBleGFtcGxlXG4gKiBjb25zdCBbbW9kZWwsIGRpc3BhdGNoXSA9IHVzZUVsbWlzaCh7IHByb3BzLCBpbml0LCB1cGRhdGUsIG5hbWU6IFwiTXlDb21wb25lbnRcIiB9KTtcbiAqL1xuZnVuY3Rpb24gdXNlRWxtaXNoPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+KHtcblx0bmFtZSxcblx0cHJvcHMsXG5cdGluaXQsXG5cdHVwZGF0ZSxcblx0c3Vic2NyaXB0aW9uLFxufTogVXNlRWxtaXNoT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+KTogW0ltbXV0YWJsZTxUTW9kZWw+LCBEaXNwYXRjaDxUTWVzc2FnZT5dIHtcblx0bGV0IHJ1bm5pbmcgPSBmYWxzZTtcblx0Y29uc3QgYnVmZmVyOiBUTWVzc2FnZVtdID0gW107XG5cblx0Y29uc3QgW21vZGVsLCBzZXRNb2RlbF0gPSB1c2VTdGF0ZTxOdWxsYWJsZTxJbW11dGFibGU8VE1vZGVsPj4+KG51bGwpO1xuXHRjb25zdCBwcm9wc1JlZiA9IHVzZVJlZihwcm9wcyk7XG5cdGNvbnN0IGlzTW91bnRlZFJlZiA9IHVzZVJlZih0cnVlKTtcblxuXHRjb25zdCBkZXZUb29scyA9IHVzZVJlZjxSZWR1eERldlRvb2xzIHwgbnVsbD4obnVsbCk7XG5cblx0dXNlRWZmZWN0KCgpID0+IHtcblx0XHRsZXQgcmVkdXhVbnN1YnNjcmliZTogKCgpID0+IHZvaWQpIHwgdW5kZWZpbmVkO1xuXG5cdFx0aWYgKFNlcnZpY2VzLmVuYWJsZURldlRvb2xzID09PSB0cnVlICYmIGlzUmVkdXhEZXZUb29sc0VuYWJsZWQod2luZG93KSkge1xuXHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVyc2NvcmUtZGFuZ2xlXG5cdFx0XHRkZXZUb29scy5jdXJyZW50ID0gd2luZG93Ll9fUkVEVVhfREVWVE9PTFNfRVhURU5TSU9OX18uY29ubmVjdCh7IG5hbWUsIHNlcmlhbGl6ZTogeyBvcHRpb25zOiB0cnVlIH0gfSk7XG5cblx0XHRcdHJlZHV4VW5zdWJzY3JpYmUgPSBkZXZUb29scy5jdXJyZW50LnN1YnNjcmliZSgobWVzc2FnZSkgPT4ge1xuXHRcdFx0XHRpZiAobWVzc2FnZS50eXBlID09PSBcIkRJU1BBVENIXCIgJiYgbWVzc2FnZS5wYXlsb2FkLnR5cGUgPT09IFwiSlVNUF9UT19BQ1RJT05cIikge1xuXHRcdFx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLXR5cGUtYXNzZXJ0aW9uXG5cdFx0XHRcdFx0c2V0TW9kZWwoSlNPTi5wYXJzZShtZXNzYWdlLnN0YXRlKSBhcyBJbW11dGFibGU8VE1vZGVsPik7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH1cblxuXHRcdGlzTW91bnRlZFJlZi5jdXJyZW50ID0gdHJ1ZTtcblxuXHRcdHJldHVybiAoKSA9PiB7XG5cdFx0XHRpc01vdW50ZWRSZWYuY3VycmVudCA9IGZhbHNlO1xuXG5cdFx0XHRyZWR1eFVuc3Vic2NyaWJlPy4oKTtcblx0XHR9O1xuXHR9LCBbbmFtZV0pO1xuXG5cdGxldCBjdXJyZW50TW9kZWwgPSBtb2RlbDtcblxuXHRpZiAocHJvcHNSZWYuY3VycmVudCAhPT0gcHJvcHMpIHtcblx0XHRwcm9wc1JlZi5jdXJyZW50ID0gcHJvcHM7XG5cdH1cblxuXHRjb25zdCBmYWtlT3B0aW9ucyA9IGdldEZha2VPcHRpb25zT25jZTxUTW9kZWwsIFRNZXNzYWdlPigpO1xuXHRjb25zdCBkaXNwYXRjaCA9IHVzZUNhbGxiYWNrKFxuXHRcdGZha2VPcHRpb25zPy5kaXNwYXRjaCA/P1xuXHRcdFx0KChtc2c6IFRNZXNzYWdlKTogdm9pZCA9PiB7XG5cdFx0XHRcdGlmIChydW5uaW5nKSB7XG5cdFx0XHRcdFx0YnVmZmVyLnB1c2gobXNnKTtcblxuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHJ1bm5pbmcgPSB0cnVlO1xuXG5cdFx0XHRcdGxldCBuZXh0TXNnOiBUTWVzc2FnZSB8IHVuZGVmaW5lZCA9IG1zZztcblx0XHRcdFx0bGV0IG1vZGlmaWVkID0gZmFsc2U7XG5cblx0XHRcdFx0ZG8ge1xuXHRcdFx0XHRcdGlmIChoYW5kbGVNZXNzYWdlKG5leHRNc2cpKSB7XG5cdFx0XHRcdFx0XHRtb2RpZmllZCA9IHRydWU7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0aWYgKGRldlRvb2xzLmN1cnJlbnQpIHtcblx0XHRcdFx0XHRcdGRldlRvb2xzLmN1cnJlbnQuc2VuZChuZXh0TXNnLm5hbWUsIGN1cnJlbnRNb2RlbCk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0bmV4dE1zZyA9IGJ1ZmZlci5zaGlmdCgpO1xuXHRcdFx0XHR9IHdoaWxlIChuZXh0TXNnKTtcblxuXHRcdFx0XHRydW5uaW5nID0gZmFsc2U7XG5cblx0XHRcdFx0aWYgKGlzTW91bnRlZFJlZi5jdXJyZW50ICYmIG1vZGlmaWVkKSB7XG5cdFx0XHRcdFx0c2V0TW9kZWwoKCkgPT4ge1xuXHRcdFx0XHRcdFx0U2VydmljZXMubG9nZ2VyPy5kZWJ1ZyhcIlVwZGF0ZSBtb2RlbCBmb3JcIiwgbmFtZSwgY3VycmVudE1vZGVsKTtcblxuXHRcdFx0XHRcdFx0cmV0dXJuIGN1cnJlbnRNb2RlbDtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXHRcdFx0fSksXG5cdFx0W10sXG5cdCk7XG5cblx0bGV0IGluaXRpYWxpemVkTW9kZWwgPSBtb2RlbDtcblxuXHRpZiAoIWluaXRpYWxpemVkTW9kZWwpIHtcblx0XHRjb25zdCBbaW5pdE1vZGVsLCAuLi5pbml0Q29tbWFuZHNdID0gZmFrZU9wdGlvbnM/Lm1vZGVsID8gW2Zha2VPcHRpb25zLm1vZGVsXSA6IGluaXQocHJvcHMpO1xuXG5cdFx0aW5pdGlhbGl6ZWRNb2RlbCA9IGNhc3RJbW11dGFibGUoZnJlZXplKGluaXRNb2RlbCwgdHJ1ZSkpO1xuXHRcdGN1cnJlbnRNb2RlbCA9IGluaXRpYWxpemVkTW9kZWw7XG5cdFx0c2V0TW9kZWwoaW5pdGlhbGl6ZWRNb2RlbCk7XG5cblx0XHRkZXZUb29scy5jdXJyZW50Py5pbml0KGluaXRpYWxpemVkTW9kZWwpO1xuXG5cdFx0U2VydmljZXMubG9nZ2VyPy5kZWJ1ZyhcIkluaXRpYWwgbW9kZWwgZm9yXCIsIG5hbWUsIGluaXRpYWxpemVkTW9kZWwpO1xuXG5cdFx0ZXhlY0NtZChkaXNwYXRjaCwgLi4uaW5pdENvbW1hbmRzKTtcblx0fVxuXG5cdC8vIGJpb21lLWlnbm9yZSBsaW50L2NvcnJlY3RuZXNzL3VzZUV4aGF1c3RpdmVEZXBlbmRlbmNpZXM6IFdlIHdhbnQgdG8gcnVuIHRoaXMgZWZmZWN0IG9ubHkgb25jZVxuXHR1c2VFZmZlY3QoKCkgPT4ge1xuXHRcdGlmIChzdWJzY3JpcHRpb24pIHtcblx0XHRcdGNvbnN0IHN1YnNjcmlwdGlvblJlc3VsdCA9IHN1YnNjcmlwdGlvbihpbml0aWFsaXplZE1vZGVsLCBwcm9wcyk7XG5cblx0XHRcdGlmIChzdWJzY3JpcHRpb25Jc0Z1bmN0aW9uQXJyYXkoc3Vic2NyaXB0aW9uUmVzdWx0KSkge1xuXHRcdFx0XHRjb25zdCBkZXN0cnVjdG9ycyA9IHN1YnNjcmlwdGlvblJlc3VsdC5tYXAoKHN1YikgPT4gc3ViKGRpc3BhdGNoKSkuZmlsdGVyKChkZXN0cnVjdG9yKSA9PiBkZXN0cnVjdG9yICE9PSB1bmRlZmluZWQpO1xuXG5cdFx0XHRcdHJldHVybiBmdW5jdGlvbiBjb21iaW5lZERlc3RydWN0b3IoKSB7XG5cdFx0XHRcdFx0Zm9yIChjb25zdCBkZXN0cnVjdG9yIG9mIGRlc3RydWN0b3JzKSB7XG5cdFx0XHRcdFx0XHRkZXN0cnVjdG9yKCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9O1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBbc3ViQ21kLCBkZXN0cnVjdG9yXSA9IHN1YnNjcmlwdGlvblJlc3VsdDtcblxuXHRcdFx0ZXhlY0NtZChkaXNwYXRjaCwgc3ViQ21kKTtcblxuXHRcdFx0cmV0dXJuIGRlc3RydWN0b3I7XG5cdFx0fVxuXHR9LCBbXSk7XG5cblx0cmV0dXJuIFtpbml0aWFsaXplZE1vZGVsLCBkaXNwYXRjaF07XG5cblx0ZnVuY3Rpb24gaGFuZGxlTWVzc2FnZShuZXh0TXNnOiBUTWVzc2FnZSk6IGJvb2xlYW4ge1xuXHRcdGlmICghY3VycmVudE1vZGVsKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0bGV0IG1vZGlmaWVkID0gZmFsc2U7XG5cblx0XHRsb2dNZXNzYWdlKG5hbWUsIG5leHRNc2cpO1xuXG5cdFx0Y29uc3QgW2RlZmVyLCBnZXREZWZlcnJlZF0gPSBjcmVhdGVEZWZlcjxUTW9kZWwsIFRNZXNzYWdlPigpO1xuXHRcdGNvbnN0IGNhbGxCYXNlID0gY3JlYXRlQ2FsbEJhc2U8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPihuZXh0TXNnLCBjdXJyZW50TW9kZWwsIHByb3BzUmVmLmN1cnJlbnQsIHsgZGVmZXIgfSk7XG5cblx0XHRjb25zdCBbZHJhZnRGbiwgLi4uY29tbWFuZHNdID0gY2FsbFVwZGF0ZSh1cGRhdGUsIG5leHRNc2csIGN1cnJlbnRNb2RlbCwgcHJvcHNSZWYuY3VycmVudCwgeyBkZWZlciwgY2FsbEJhc2UgfSk7XG5cblx0XHRjb25zdCBbZGVmZXJyZWREcmFmdEZ1bmN0aW9ucywgZGVmZXJyZWRDb21tYW5kc10gPSBnZXREZWZlcnJlZCgpO1xuXG5cdFx0Zm9yIChjb25zdCBkZWZlcnJlZERyYWZ0Rm4gb2YgZGVmZXJyZWREcmFmdEZ1bmN0aW9ucykge1xuXHRcdFx0Y3VycmVudE1vZGVsID0gcHJvZHVjZShjdXJyZW50TW9kZWwsIGRlZmVycmVkRHJhZnRGbik7XG5cblx0XHRcdG1vZGlmaWVkID0gdHJ1ZTtcblx0XHR9XG5cblx0XHRpZiAoZHJhZnRGbikge1xuXHRcdFx0Y3VycmVudE1vZGVsID0gcHJvZHVjZShjdXJyZW50TW9kZWwsIGRyYWZ0Rm4pO1xuXG5cdFx0XHRtb2RpZmllZCA9IHRydWU7XG5cdFx0fVxuXG5cdFx0ZXhlY0NtZChkaXNwYXRjaCwgLi4uY29tbWFuZHMsIC4uLmRlZmVycmVkQ29tbWFuZHMpO1xuXG5cdFx0cmV0dXJuIG1vZGlmaWVkO1xuXHR9XG59XG5cbmZ1bmN0aW9uIGNhbGxVcGRhdGU8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4oXG5cdHVwZGF0ZTogVXBkYXRlRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiB8IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuXHRtc2c6IFRNZXNzYWdlLFxuXHRtb2RlbDogSW1tdXRhYmxlPFRNb2RlbD4sXG5cdHByb3BzOiBUUHJvcHMsXG5cdG9wdGlvbnM6IFVwZGF0ZUZ1bmN0aW9uT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuKTogVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPiB7XG5cdGlmICh0eXBlb2YgdXBkYXRlID09PSBcImZ1bmN0aW9uXCIpIHtcblx0XHRyZXR1cm4gdXBkYXRlKG1vZGVsLCBtc2csIHByb3BzLCBvcHRpb25zKTtcblx0fVxuXG5cdHJldHVybiBjYWxsVXBkYXRlTWFwKHVwZGF0ZSwgbXNnLCBtb2RlbCwgcHJvcHMsIG9wdGlvbnMpO1xufVxuXG5mdW5jdGlvbiBjYWxsVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+KFxuXHR1cGRhdGVNYXA6IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuXHRtc2c6IFRNZXNzYWdlLFxuXHRtb2RlbDogSW1tdXRhYmxlPFRNb2RlbD4sXG5cdHByb3BzOiBUUHJvcHMsXG5cdG9wdGlvbnM6IFVwZGF0ZUZ1bmN0aW9uT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuKTogVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPiB7XG5cdGNvbnN0IG1zZ05hbWU6IFRNZXNzYWdlW1wibmFtZVwiXSA9IG1zZy5uYW1lO1xuXG5cdHJldHVybiB1cGRhdGVNYXBbbXNnTmFtZV0obXNnLCBtb2RlbCwgcHJvcHMsIG9wdGlvbnMpO1xufVxuXG5leHBvcnQgdHlwZSB7IFVzZUVsbWlzaE9wdGlvbnMgfTtcblxuZXhwb3J0IHsgY2FsbFVwZGF0ZSwgY2FsbFVwZGF0ZU1hcCwgdXNlRWxtaXNoIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQ0EsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsT0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsWUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksS0FBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssY0FBQSxHQUFBTCxPQUFBO0FBQ0EsSUFB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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/index.d.ts
CHANGED
|
@@ -3,5 +3,5 @@ export { ElmComponent } from "./ElmComponent";
|
|
|
3
3
|
export { errorHandler, errorMsg, handleError, type ErrorMessage } from "./ErrorHandling";
|
|
4
4
|
export { init, type ElmOptions, type Logger } from "./Init";
|
|
5
5
|
export { mergeSubscriptions } from "./mergeSubscriptions";
|
|
6
|
-
export type { Cmd, Dispatch, InitResult, Message, MsgSource, UpdateFunctionOptions, UpdateMap, UpdateReturnType } from "./Types";
|
|
7
|
-
export { useElmish, type
|
|
6
|
+
export type { Cmd, Dispatch, InitResult, Message, MsgSource, SubscriptionResult, UpdateFunctionOptions, UpdateMap, UpdateReturnType, } from "./Types";
|
|
7
|
+
export { useElmish, type UseElmishOptions } from "./useElmish";
|
package/dist/index.js
CHANGED
|
@@ -57,4 +57,4 @@ var _ErrorHandling = require("./ErrorHandling");
|
|
|
57
57
|
var _Init = require("./Init");
|
|
58
58
|
var _mergeSubscriptions = require("./mergeSubscriptions");
|
|
59
59
|
var _useElmish = require("./useElmish");
|
|
60
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY21kIiwicmVxdWlyZSIsIl9FbG1Db21wb25lbnQiLCJfRXJyb3JIYW5kbGluZyIsIl9Jbml0IiwiX21lcmdlU3Vic2NyaXB0aW9ucyIsIl91c2VFbG1pc2giXSwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgY21kIH0gZnJvbSBcIi4vY21kXCI7XG5leHBvcnQgeyBFbG1Db21wb25lbnQgfSBmcm9tIFwiLi9FbG1Db21wb25lbnRcIjtcbmV4cG9ydCB7IGVycm9ySGFuZGxlciwgZXJyb3JNc2csIGhhbmRsZUVycm9yLCB0eXBlIEVycm9yTWVzc2FnZSB9IGZyb20gXCIuL0Vycm9ySGFuZGxpbmdcIjtcbmV4cG9ydCB7IGluaXQsIHR5cGUgRWxtT3B0aW9ucywgdHlwZSBMb2dnZXIgfSBmcm9tIFwiLi9Jbml0XCI7XG5leHBvcnQgeyBtZXJnZVN1YnNjcmlwdGlvbnMgfSBmcm9tIFwiLi9tZXJnZVN1YnNjcmlwdGlvbnNcIjtcbmV4cG9ydCB0eXBlIHtcblx0Q21kLFxuXHREaXNwYXRjaCxcblx0SW5pdFJlc3VsdCxcblx0TWVzc2FnZSxcblx0TXNnU291cmNlLFxuXHRTdWJzY3JpcHRpb25SZXN1bHQsXG5cdFVwZGF0ZUZ1bmN0aW9uT3B0aW9ucyxcblx0VXBkYXRlTWFwLFxuXHRVcGRhdGVSZXR1cm5UeXBlLFxufSBmcm9tIFwiLi9UeXBlc1wiO1xuZXhwb3J0IHsgdXNlRWxtaXNoLCB0eXBlIFVzZUVsbWlzaE9wdGlvbnMgfSBmcm9tIFwiLi91c2VFbG1pc2hcIjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxJQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxhQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxjQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxLQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxtQkFBQSxHQUFBSixPQUFBO0FBWUEsSUFBQUssVUFBQSxHQUFBTCxPQUFBIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import { type Subscription, type SubscriptionFunction } from "./useElmish";
|
|
1
|
+
import { type Message, type Subscription, type SubscriptionFunction } from "./Types";
|
|
3
2
|
type MergedSubscription<TProps, TModel, TMessage> = (model: TModel, props: TProps) => SubscriptionFunction<TMessage>[];
|
|
4
3
|
declare function mergeSubscriptions<TProps, TModel, TMessage extends Message>(...subscriptions: (Subscription<TProps, TModel, TMessage> | undefined)[]): MergedSubscription<TProps, TModel, TMessage>;
|
|
5
4
|
export { mergeSubscriptions };
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.mergeSubscriptions = mergeSubscriptions;
|
|
7
|
-
var
|
|
7
|
+
var _Types = require("./Types");
|
|
8
8
|
function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
|
|
9
9
|
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
10
10
|
function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
|
|
@@ -26,7 +26,7 @@ function mergeSubscriptions() {
|
|
|
26
26
|
return subscription !== undefined;
|
|
27
27
|
});
|
|
28
28
|
var subscriptionFunctions = results.flatMap(function (result) {
|
|
29
|
-
if ((0,
|
|
29
|
+
if ((0, _Types.subscriptionIsFunctionArray)(result)) {
|
|
30
30
|
return result;
|
|
31
31
|
}
|
|
32
32
|
var _result = _slicedToArray(result, 2),
|
|
@@ -46,4 +46,4 @@ function mapToFn(cmd) {
|
|
|
46
46
|
cmd(dispatch);
|
|
47
47
|
};
|
|
48
48
|
}
|
|
49
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfVHlwZXMiLCJyZXF1aXJlIiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiciIsIl9hcnJheVdpdGhvdXRIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXkiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVTcHJlYWQiLCJUeXBlRXJyb3IiLCJTeW1ib2wiLCJpdGVyYXRvciIsIkFycmF5IiwiZnJvbSIsImlzQXJyYXkiLCJfYXJyYXlMaWtlVG9BcnJheSIsIl9zbGljZWRUb0FycmF5IiwiZSIsIl9hcnJheVdpdGhIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXlMaW1pdCIsIl9ub25JdGVyYWJsZVJlc3QiLCJhIiwidCIsInRvU3RyaW5nIiwiY2FsbCIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwidGVzdCIsImxlbmd0aCIsIm4iLCJsIiwiaSIsInUiLCJmIiwibyIsIm5leHQiLCJPYmplY3QiLCJkb25lIiwicHVzaCIsInZhbHVlIiwibWVyZ2VTdWJzY3JpcHRpb25zIiwiX2xlbiIsImFyZ3VtZW50cyIsInN1YnNjcmlwdGlvbnMiLCJfa2V5IiwibWVyZ2VkU3Vic2NyaXB0aW9uIiwibW9kZWwiLCJwcm9wcyIsInJlc3VsdHMiLCJtYXAiLCJzdWIiLCJmaWx0ZXIiLCJzdWJzY3JpcHRpb24iLCJ1bmRlZmluZWQiLCJzdWJzY3JpcHRpb25GdW5jdGlvbnMiLCJmbGF0TWFwIiwicmVzdWx0Iiwic3Vic2NyaXB0aW9uSXNGdW5jdGlvbkFycmF5IiwiX3Jlc3VsdCIsInN1YkNtZCIsImRpc3Bvc2UiLCJjb25jYXQiLCJtYXBUb0ZuIiwiY21kIiwiZGlzcGF0Y2giXSwic291cmNlcyI6WyIuLi9zcmMvbWVyZ2VTdWJzY3JpcHRpb25zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdHN1YnNjcmlwdGlvbklzRnVuY3Rpb25BcnJheSxcblx0dHlwZSBEaXNwYXRjaCxcblx0dHlwZSBNZXNzYWdlLFxuXHR0eXBlIFN1Yixcblx0dHlwZSBTdWJzY3JpcHRpb24sXG5cdHR5cGUgU3Vic2NyaXB0aW9uRnVuY3Rpb24sXG59IGZyb20gXCIuL1R5cGVzXCI7XG5cbnR5cGUgTWVyZ2VkU3Vic2NyaXB0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gPSAobW9kZWw6IFRNb2RlbCwgcHJvcHM6IFRQcm9wcykgPT4gU3Vic2NyaXB0aW9uRnVuY3Rpb248VE1lc3NhZ2U+W107XG5cbmZ1bmN0aW9uIG1lcmdlU3Vic2NyaXB0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPihcblx0Li4uc3Vic2NyaXB0aW9uczogKFN1YnNjcmlwdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+IHwgdW5kZWZpbmVkKVtdXG4pOiBNZXJnZWRTdWJzY3JpcHRpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiB7XG5cdHJldHVybiBmdW5jdGlvbiBtZXJnZWRTdWJzY3JpcHRpb24obW9kZWwsIHByb3BzKSB7XG5cdFx0Y29uc3QgcmVzdWx0cyA9IHN1YnNjcmlwdGlvbnMubWFwKChzdWIpID0+IHN1Yj8uKG1vZGVsLCBwcm9wcykpLmZpbHRlcigoc3Vic2NyaXB0aW9uKSA9PiBzdWJzY3JpcHRpb24gIT09IHVuZGVmaW5lZCk7XG5cblx0XHRjb25zdCBzdWJzY3JpcHRpb25GdW5jdGlvbnMgPSByZXN1bHRzLmZsYXRNYXAoKHJlc3VsdCkgPT4ge1xuXHRcdFx0aWYgKHN1YnNjcmlwdGlvbklzRnVuY3Rpb25BcnJheShyZXN1bHQpKSB7XG5cdFx0XHRcdHJldHVybiByZXN1bHQ7XG5cdFx0XHR9XG5cblx0XHRcdGNvbnN0IFtzdWJDbWQsIGRpc3Bvc2VdID0gcmVzdWx0O1xuXG5cdFx0XHRyZXR1cm4gWy4uLnN1YkNtZC5tYXAobWFwVG9GbiksICgpID0+ICgpID0+IGRpc3Bvc2U/LigpXTtcblx0XHR9KTtcblxuXHRcdHJldHVybiBzdWJzY3JpcHRpb25GdW5jdGlvbnM7XG5cdH07XG59XG5cbmZ1bmN0aW9uIG1hcFRvRm48VE1lc3NhZ2U+KGNtZDogU3ViPFRNZXNzYWdlPik6IChkaXNwYXRjaDogRGlzcGF0Y2g8VE1lc3NhZ2U+KSA9PiB1bmRlZmluZWQge1xuXHRyZXR1cm4gKGRpc3BhdGNoKSA9PiB7XG5cdFx0Y21kKGRpc3BhdGNoKTtcblx0fTtcbn1cblxuZXhwb3J0IHsgbWVyZ2VTdWJzY3JpcHRpb25zIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQU9pQixTQUFBQyxtQkFBQUMsQ0FBQSxXQUFBQyxrQkFBQSxDQUFBRCxDQUFBLEtBQUFFLGdCQUFBLENBQUFGLENBQUEsS0FBQUcsMkJBQUEsQ0FBQUgsQ0FBQSxLQUFBSSxrQkFBQTtBQUFBLFNBQUFBLG1CQUFBLGNBQUFDLFNBQUE7QUFBQSxTQUFBSCxpQkFBQUYsQ0FBQSw4QkFBQU0sTUFBQSxZQUFBTixDQUFBLENBQUFNLE1BQUEsQ0FBQUMsUUFBQSxhQUFBUCxDQUFBLHVCQUFBUSxLQUFBLENBQUFDLElBQUEsQ0FBQVQsQ0FBQTtBQUFBLFNBQUFDLG1CQUFBRCxDQUFBLFFBQUFRLEtBQUEsQ0FBQUUsT0FBQSxDQUFBVixDQUFBLFVBQUFXLGlCQUFBLENBQUFYLENBQUE7QUFBQSxTQUFBWSxlQUFBWixDQUFBLEVBQUFhLENBQUEsV0FBQUMsZUFBQSxDQUFBZCxDQUFBLEtBQUFlLHFCQUFBLENBQUFmLENBQUEsRUFBQWEsQ0FBQSxLQUFBViwyQkFBQSxDQUFBSCxDQUFBLEVBQUFhLENBQUEsS0FBQUcsZ0JBQUE7QUFBQSxTQUFBQSxpQkFBQSxjQUFBWCxTQUFBO0FBQUEsU0FBQUYsNEJBQUFILENBQUEsRUFBQWlCLENBQUEsUUFBQWpCLENBQUEsMkJBQUFBLENBQUEsU0FBQVcsaUJBQUEsQ0FBQVgsQ0FBQSxFQUFBaUIsQ0FBQSxPQUFBQyxDQUFBLE1BQUFDLFFBQUEsQ0FBQUMsSUFBQSxDQUFBcEIsQ0FBQSxFQUFBcUIsS0FBQSw2QkFBQUgsQ0FBQSxJQUFBbEIsQ0FBQSxDQUFBc0IsV0FBQSxLQUFB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
|
package/dist/useElmish.d.ts
CHANGED
|
@@ -1,12 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
/**
|
|
3
|
-
* The return type of the `subscription` function.
|
|
4
|
-
* @template TMessage The type of the messages discriminated union.
|
|
5
|
-
*/
|
|
6
|
-
type SubscriptionResult<TMessage> = [Cmd<TMessage>, (() => void)?] | SubscriptionFunction<TMessage>[];
|
|
7
|
-
type SubscriptionFunction<TMessage> = (dispatch: Dispatch<TMessage>) => (() => void) | undefined;
|
|
8
|
-
type Subscription<TProps, TModel, TMessage> = (model: TModel, props: TProps) => SubscriptionResult<TMessage>;
|
|
9
|
-
declare function subscriptionIsFunctionArray(subscription: SubscriptionResult<unknown>): subscription is SubscriptionFunction<unknown>[];
|
|
1
|
+
import { type Dispatch, type InitFunction, type Message, type Subscription, type UpdateFunction, type UpdateFunctionOptions, type UpdateMap, type UpdateReturnType } from "./Types";
|
|
10
2
|
/**
|
|
11
3
|
* Options for the `useElmish` hook.
|
|
12
4
|
* @interface UseElmishOptions
|
|
@@ -51,5 +43,5 @@ interface UseElmishOptions<TProps, TModel, TMessage extends Message> {
|
|
|
51
43
|
declare function useElmish<TProps, TModel, TMessage extends Message>({ name, props, init, update, subscription, }: UseElmishOptions<TProps, TModel, TMessage>): [TModel, Dispatch<TMessage>];
|
|
52
44
|
declare function callUpdate<TProps, TModel, TMessage extends Message>(update: UpdateFunction<TProps, TModel, TMessage> | UpdateMap<TProps, TModel, TMessage>, msg: TMessage, model: TModel, props: TProps, options: UpdateFunctionOptions<TProps, TModel, TMessage>): UpdateReturnType<TModel, TMessage>;
|
|
53
45
|
declare function callUpdateMap<TProps, TModel, TMessage extends Message>(updateMap: UpdateMap<TProps, TModel, TMessage>, msg: TMessage, model: TModel, props: TProps, options: UpdateFunctionOptions<TProps, TModel, TMessage>): UpdateReturnType<TModel, TMessage>;
|
|
54
|
-
export type {
|
|
55
|
-
export { callUpdate, callUpdateMap,
|
|
46
|
+
export type { UseElmishOptions };
|
|
47
|
+
export { callUpdate, callUpdateMap, useElmish };
|
package/dist/useElmish.js
CHANGED
|
@@ -6,11 +6,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.callUpdate = callUpdate;
|
|
8
8
|
exports.callUpdateMap = callUpdateMap;
|
|
9
|
-
exports.subscriptionIsFunctionArray = subscriptionIsFunctionArray;
|
|
10
9
|
exports.useElmish = useElmish;
|
|
11
10
|
var _react = require("react");
|
|
12
11
|
var _Common = require("./Common");
|
|
13
12
|
var _Init = require("./Init");
|
|
13
|
+
var _Types = require("./Types");
|
|
14
14
|
var _createCallBase = require("./createCallBase");
|
|
15
15
|
var _createDefer3 = require("./createDefer");
|
|
16
16
|
var _fakeOptions = require("./fakeOptions");
|
|
@@ -32,15 +32,6 @@ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r)
|
|
|
32
32
|
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; }
|
|
33
33
|
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; } }
|
|
34
34
|
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; } /* eslint-disable react-hooks/exhaustive-deps */
|
|
35
|
-
/**
|
|
36
|
-
* The return type of the `subscription` function.
|
|
37
|
-
* @template TMessage The type of the messages discriminated union.
|
|
38
|
-
*/
|
|
39
|
-
|
|
40
|
-
function subscriptionIsFunctionArray(subscription) {
|
|
41
|
-
return typeof subscription[0] === "function";
|
|
42
|
-
}
|
|
43
|
-
|
|
44
35
|
/**
|
|
45
36
|
* Options for the `useElmish` hook.
|
|
46
37
|
* @interface UseElmishOptions
|
|
@@ -148,7 +139,7 @@ function useElmish(_ref) {
|
|
|
148
139
|
(0, _react.useEffect)(function () {
|
|
149
140
|
if (subscription) {
|
|
150
141
|
var subscriptionResult = subscription(initializedModel, props);
|
|
151
|
-
if (subscriptionIsFunctionArray(subscriptionResult)) {
|
|
142
|
+
if ((0, _Types.subscriptionIsFunctionArray)(subscriptionResult)) {
|
|
152
143
|
var destructors = subscriptionResult.map(function (sub) {
|
|
153
144
|
return sub(dispatch);
|
|
154
145
|
}).filter(function (destructor) {
|
|
@@ -220,4 +211,4 @@ function callUpdateMap(updateMap, msg, model, props, options) {
|
|
|
220
211
|
var msgName = msg.name;
|
|
221
212
|
return updateMap[msgName](msg, model, props, options);
|
|
222
213
|
}
|
|
223
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX0NvbW1vbiIsIl9Jbml0IiwiX2NyZWF0ZUNhbGxCYXNlIiwiX2NyZWF0ZURlZmVyMyIsIl9mYWtlT3B0aW9ucyIsIl9yZWR1eERldlRvb2xzIiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJyIiwiZSIsInQiLCJTeW1ib2wiLCJpdGVyYXRvciIsIkFycmF5IiwiaXNBcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsImxlbmd0aCIsIl9uIiwiRiIsInMiLCJuIiwiZG9uZSIsInZhbHVlIiwiZiIsIlR5cGVFcnJvciIsIm8iLCJhIiwidSIsImNhbGwiLCJuZXh0IiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIl9hcnJheUxpa2VUb0FycmF5IiwiX3RvQXJyYXkiLCJfYXJyYXlXaXRoSG9sZXMiLCJfbm9uSXRlcmFibGVSZXN0IiwiZnJvbSIsIm93bktleXMiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIl90b1Byb3BlcnR5S2V5IiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJpIiwiX3RvUHJpbWl0aXZlIiwiX3R5cGVvZiIsInRvUHJpbWl0aXZlIiwiU3RyaW5nIiwiTnVtYmVyIiwiX3NsaWNlZFRvQXJyYXkiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJ0b1N0cmluZyIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwidGVzdCIsImwiLCJzdWJzY3JpcHRpb25Jc0Z1bmN0aW9uQXJyYXkiLCJzdWJzY3JpcHRpb24iLCJ1c2VFbG1pc2giLCJfcmVmIiwiX2Zha2VPcHRpb25zJGRpc3BhdGNoIiwicHJvcHMiLCJpbml0IiwidXBkYXRlIiwicnVubmluZyIsImJ1ZmZlciIsImN1cnJlbnRNb2RlbCIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIm1vZGVsIiwic2V0TW9kZWwiLCJwcm9wc1JlZiIsInVzZVJlZiIsImlzTW91bnRlZFJlZiIsImRldlRvb2xzIiwidXNlRWZmZWN0IiwicmVkdXhVbnN1YnNjcmliZSIsIlNlcnZpY2VzIiwiZW5hYmxlRGV2VG9vbHMiLCJpc1JlZHV4RGV2VG9vbHNFbmFibGVkIiwid2luZG93IiwiY3VycmVudCIsIl9fUkVEVVhfREVWVE9PTFNfRVhURU5TSU9OX18iLCJjb25uZWN0Iiwic2VyaWFsaXplIiwib3B0aW9ucyIsInN1YnNjcmliZSIsIm1lc3NhZ2UiLCJ0eXBlIiwicGF5bG9hZCIsIkpTT04iLCJwYXJzZSIsInN0YXRlIiwiX3JlZHV4VW5zdWJzY3JpYmUiLCJpbml0aWFsaXplZE1vZGVsIiwiZmFrZU9wdGlvbnMiLCJnZXRGYWtlT3B0aW9uc09uY2UiLCJkaXNwYXRjaCIsInVzZUNhbGxiYWNrIiwibXNnIiwibmV4dE1zZyIsIm1vZGlmaWVkIiwiaGFuZGxlTWVzc2FnZSIsInNlbmQiLCJzaGlmdCIsInByZXZNb2RlbCIsIl9TZXJ2aWNlcyRsb2dnZXIiLCJ1cGRhdGVkTW9kZWwiLCJsb2dnZXIiLCJkZWJ1ZyIsIl9kZXZUb29scyRjdXJyZW50IiwiX1NlcnZpY2VzJGxvZ2dlcjIiLCJfcmVmMiIsIl9yZWYzIiwiaW5pdE1vZGVsIiwiaW5pdENvbW1hbmRzIiwiZXhlY0NtZCIsImNvbmNhdCIsInN1YnNjcmlwdGlvblJlc3VsdCIsImRlc3RydWN0b3JzIiwibWFwIiwic3ViIiwiZGVzdHJ1Y3RvciIsInVuZGVmaW5lZCIsImNvbWJpbmVkRGVzdHJ1Y3RvciIsIl9pdGVyYXRvciIsIl9zdGVwIiwiZXJyIiwiX3N1YnNjcmlwdGlvblJlc3VsdCIsInN1YkNtZCIsImxvZ01lc3NhZ2UiLCJfY3JlYXRlRGVmZXIiLCJjcmVhdGVEZWZlciIsIl9jcmVhdGVEZWZlcjIiLCJkZWZlciIsImdldERlZmVycmVkIiwiY2FsbEJhc2UiLCJjcmVhdGVDYWxsQmFzZSIsIl9jYWxsVXBkYXRlIiwiY2FsbFVwZGF0ZSIsIl9jYWxsVXBkYXRlMiIsIm5ld01vZGVsIiwiY29tbWFuZHMiLCJfZ2V0RGVmZXJyZWQiLCJfZ2V0RGVmZXJyZWQyIiwiZGVmZXJyZWRNb2RlbCIsImRlZmVycmVkQ29tbWFuZHMiLCJtb2RlbEhhc0NoYW5nZWQiLCJjYWxsVXBkYXRlTWFwIiwidXBkYXRlTWFwIiwibXNnTmFtZSJdLCJzb3VyY2VzIjpbIi4uL3NyYy91c2VFbG1pc2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzICovXG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBleGVjQ21kLCBsb2dNZXNzYWdlLCBtb2RlbEhhc0NoYW5nZWQgfSBmcm9tIFwiLi9Db21tb25cIjtcbmltcG9ydCB7IFNlcnZpY2VzIH0gZnJvbSBcIi4vSW5pdFwiO1xuaW1wb3J0IHR5cGUge1xuXHRDbWQsXG5cdERpc3BhdGNoLFxuXHRJbml0RnVuY3Rpb24sXG5cdE1lc3NhZ2UsXG5cdE51bGxhYmxlLFxuXHRVcGRhdGVGdW5jdGlvbixcblx0VXBkYXRlRnVuY3Rpb25PcHRpb25zLFxuXHRVcGRhdGVNYXAsXG5cdFVwZGF0ZVJldHVyblR5cGUsXG59IGZyb20gXCIuL1R5cGVzXCI7XG5pbXBvcnQgeyBjcmVhdGVDYWxsQmFzZSB9IGZyb20gXCIuL2NyZWF0ZUNhbGxCYXNlXCI7XG5pbXBvcnQgeyBjcmVhdGVEZWZlciB9IGZyb20gXCIuL2NyZWF0ZURlZmVyXCI7XG5pbXBvcnQgeyBnZXRGYWtlT3B0aW9uc09uY2UgfSBmcm9tIFwiLi9mYWtlT3B0aW9uc1wiO1xuaW1wb3J0IHsgaXNSZWR1eERldlRvb2xzRW5hYmxlZCwgdHlwZSBSZWR1eERldlRvb2xzIH0gZnJvbSBcIi4vcmVkdXhEZXZUb29sc1wiO1xuXG4vKipcbiAqIFRoZSByZXR1cm4gdHlwZSBvZiB0aGUgYHN1YnNjcmlwdGlvbmAgZnVuY3Rpb24uXG4gKiBAdGVtcGxhdGUgVE1lc3NhZ2UgVGhlIHR5cGUgb2YgdGhlIG1lc3NhZ2VzIGRpc2NyaW1pbmF0ZWQgdW5pb24uXG4gKi9cbnR5cGUgU3Vic2NyaXB0aW9uUmVzdWx0PFRNZXNzYWdlPiA9IFtDbWQ8VE1lc3NhZ2U+LCAoKCkgPT4gdm9pZCk/XSB8IFN1YnNjcmlwdGlvbkZ1bmN0aW9uPFRNZXNzYWdlPltdO1xudHlwZSBTdWJzY3JpcHRpb25GdW5jdGlvbjxUTWVzc2FnZT4gPSAoZGlzcGF0Y2g6IERpc3BhdGNoPFRNZXNzYWdlPikgPT4gKCgpID0+IHZvaWQpIHwgdW5kZWZpbmVkO1xudHlwZSBTdWJzY3JpcHRpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiA9IChtb2RlbDogVE1vZGVsLCBwcm9wczogVFByb3BzKSA9PiBTdWJzY3JpcHRpb25SZXN1bHQ8VE1lc3NhZ2U+O1xuXG5mdW5jdGlvbiBzdWJzY3JpcHRpb25Jc0Z1bmN0aW9uQXJyYXkoc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb25SZXN1bHQ8dW5rbm93bj4pOiBzdWJzY3JpcHRpb24gaXMgU3Vic2NyaXB0aW9uRnVuY3Rpb248dW5rbm93bj5bXSB7XG5cdHJldHVybiB0eXBlb2Ygc3Vic2NyaXB0aW9uWzBdID09PSBcImZ1bmN0aW9uXCI7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgdGhlIGB1c2VFbG1pc2hgIGhvb2suXG4gKiBAaW50ZXJmYWNlIFVzZUVsbWlzaE9wdGlvbnNcbiAqIEB0ZW1wbGF0ZSBUUHJvcHMgVGhlIHR5cGUgb2YgdGhlIHByb3BzLlxuICogQHRlbXBsYXRlIFRNb2RlbCBUaGUgdHlwZSBvZiB0aGUgbW9kZWwuXG4gKiBAdGVtcGxhdGUgVE1lc3NhZ2UgVGhlIHR5cGUgb2YgdGhlIG1lc3NhZ2VzIGRpc2NyaW1pbmF0ZWQgdW5pb24uXG4gKi9cbmludGVyZmFjZSBVc2VFbG1pc2hPcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+IHtcblx0LyoqXG5cdCAqIFRoZSBuYW1lIG9mIHRoZSBjb21wb25lbnQuIFRoaXMgaXMgdXNlZCBmb3IgbG9nZ2luZyBvbmx5LlxuXHQgKiBAdHlwZSB7c3RyaW5nfVxuXHQgKi9cblx0bmFtZTogc3RyaW5nO1xuXHQvKipcblx0ICogVGhlIHByb3BzIHBhc3NlZCB0byB0aGUgY29tcG9uZW50LlxuXHQgKiBAdHlwZSB7VFByb3BzfVxuXHQgKi9cblx0cHJvcHM6IFRQcm9wcztcblx0LyoqXG5cdCAqIFRoZSBmdW5jdGlvbiB0byBpbml0aWFsaXplIHRoZSBjb21wb25lbnRzIG1vZGVsLiBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgY2FsbGVkIG9uY2UuXG5cdCAqIEB0eXBlIHtJbml0RnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPn1cblx0ICovXG5cdGluaXQ6IEluaXRGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+O1xuXHQvKipcblx0ICogVGhlIGB1cGRhdGVgIGZ1bmN0aW9uIG9yIHVwZGF0ZSBtYXAgb2JqZWN0LlxuXHQgKiBAdHlwZSB7KFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPil9XG5cdCAqL1xuXHR1cGRhdGU6IFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPjtcblx0LyoqXG5cdCAqIFRoZSBvcHRpb25hbCBgc3Vic2NyaXB0aW9uYCBmdW5jdGlvbi4gVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGNhbGxlZCBvbmNlLlxuXHQgKiBAdHlwZSB7KFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPil9XG5cdCAqL1xuXHRzdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPjtcbn1cblxuLyoqXG4gKiBIb29rIHRvIHVzZSB0aGUgRWxtIGFyY2hpdGVjdHVyZSBwYXR0ZXJuIGluIGEgZnVuY3Rpb24gY29tcG9uZW50LlxuICogQHBhcmFtIHtVc2VFbG1pc2hPcHRpb25zfSBvcHRpb25zIFRoZSBvcHRpb25zIHBhc3NlZCB0aGUgdGhlIGhvb2suXG4gKiBAcmV0dXJucyBBIHR1cGxlIGNvbnRhaW5pbmcgdGhlIGN1cnJlbnQgbW9kZWwgYW5kIHRoZSBkaXNwYXRjaGVyLlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IFttb2RlbCwgZGlzcGF0Y2hdID0gdXNlRWxtaXNoKHsgcHJvcHMsIGluaXQsIHVwZGF0ZSwgbmFtZTogXCJNeUNvbXBvbmVudFwiIH0pO1xuICovXG5mdW5jdGlvbiB1c2VFbG1pc2g8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4oe1xuXHRuYW1lLFxuXHRwcm9wcyxcblx0aW5pdCxcblx0dXBkYXRlLFxuXHRzdWJzY3JpcHRpb24sXG59OiBVc2VFbG1pc2hPcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4pOiBbVE1vZGVsLCBEaXNwYXRjaDxUTWVzc2FnZT5dIHtcblx0bGV0IHJ1bm5pbmcgPSBmYWxzZTtcblx0Y29uc3QgYnVmZmVyOiBUTWVzc2FnZVtdID0gW107XG5cdGxldCBjdXJyZW50TW9kZWw6IFBhcnRpYWw8VE1vZGVsPiA9IHt9O1xuXG5cdGNvbnN0IFttb2RlbCwgc2V0TW9kZWxdID0gdXNlU3RhdGU8TnVsbGFibGU8VE1vZGVsPj4obnVsbCk7XG5cdGNvbnN0IHByb3BzUmVmID0gdXNlUmVmKHByb3BzKTtcblx0Y29uc3QgaXNNb3VudGVkUmVmID0gdXNlUmVmKHRydWUpO1xuXG5cdGNvbnN0IGRldlRvb2xzID0gdXNlUmVmPFJlZHV4RGV2VG9vbHMgfCBudWxsPihudWxsKTtcblxuXHR1c2VFZmZlY3QoKCkgPT4ge1xuXHRcdGxldCByZWR1eFVuc3Vic2NyaWJlOiAoKCkgPT4gdm9pZCkgfCB1bmRlZmluZWQ7XG5cblx0XHRpZiAoU2VydmljZXMuZW5hYmxlRGV2VG9vbHMgPT09IHRydWUgJiYgaXNSZWR1eERldlRvb2xzRW5hYmxlZCh3aW5kb3cpKSB7XG5cdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZXJzY29yZS1kYW5nbGVcblx0XHRcdGRldlRvb2xzLmN1cnJlbnQgPSB3aW5kb3cuX19SRURVWF9ERVZUT09MU19FWFRFTlNJT05fXy5jb25uZWN0KHsgbmFtZSwgc2VyaWFsaXplOiB7IG9wdGlvbnM6IHRydWUgfSB9KTtcblxuXHRcdFx0cmVkdXhVbnN1YnNjcmliZSA9IGRldlRvb2xzLmN1cnJlbnQuc3Vic2NyaWJlKChtZXNzYWdlKSA9PiB7XG5cdFx0XHRcdGlmIChtZXNzYWdlLnR5cGUgPT09IFwiRElTUEFUQ0hcIiAmJiBtZXNzYWdlLnBheWxvYWQudHlwZSA9PT0gXCJKVU1QX1RPX0FDVElPTlwiKSB7XG5cdFx0XHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtdHlwZS1hc3NlcnRpb25cblx0XHRcdFx0XHRzZXRNb2RlbChKU09OLnBhcnNlKG1lc3NhZ2Uuc3RhdGUpIGFzIFRNb2RlbCk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH1cblxuXHRcdGlzTW91bnRlZFJlZi5jdXJyZW50ID0gdHJ1ZTtcblxuXHRcdHJldHVybiAoKSA9PiB7XG5cdFx0XHRpc01vdW50ZWRSZWYuY3VycmVudCA9IGZhbHNlO1xuXG5cdFx0XHRyZWR1eFVuc3Vic2NyaWJlPy4oKTtcblx0XHR9O1xuXHR9LCBbbmFtZV0pO1xuXG5cdGxldCBpbml0aWFsaXplZE1vZGVsID0gbW9kZWw7XG5cblx0aWYgKHByb3BzUmVmLmN1cnJlbnQgIT09IHByb3BzKSB7XG5cdFx0cHJvcHNSZWYuY3VycmVudCA9IHByb3BzO1xuXHR9XG5cblx0Y29uc3QgZmFrZU9wdGlvbnMgPSBnZXRGYWtlT3B0aW9uc09uY2U8VE1vZGVsLCBUTWVzc2FnZT4oKTtcblx0Y29uc3QgZGlzcGF0Y2ggPSB1c2VDYWxsYmFjayhcblx0XHRmYWtlT3B0aW9ucz8uZGlzcGF0Y2ggPz9cblx0XHRcdCgobXNnOiBUTWVzc2FnZSk6IHZvaWQgPT4ge1xuXHRcdFx0XHRpZiAocnVubmluZykge1xuXHRcdFx0XHRcdGJ1ZmZlci5wdXNoKG1zZyk7XG5cblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRydW5uaW5nID0gdHJ1ZTtcblxuXHRcdFx0XHRsZXQgbmV4dE1zZzogVE1lc3NhZ2UgfCB1bmRlZmluZWQgPSBtc2c7XG5cdFx0XHRcdGxldCBtb2RpZmllZCA9IGZhbHNlO1xuXG5cdFx0XHRcdGRvIHtcblx0XHRcdFx0XHRpZiAoaGFuZGxlTWVzc2FnZShuZXh0TXNnKSkge1xuXHRcdFx0XHRcdFx0bW9kaWZpZWQgPSB0cnVlO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGlmIChkZXZUb29scy5jdXJyZW50KSB7XG5cdFx0XHRcdFx0XHRkZXZUb29scy5jdXJyZW50LnNlbmQobmV4dE1zZy5uYW1lLCB7IC4uLmluaXRpYWxpemVkTW9kZWwsIC4uLmN1cnJlbnRNb2RlbCB9KTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRuZXh0TXNnID0gYnVmZmVyLnNoaWZ0KCk7XG5cdFx0XHRcdH0gd2hpbGUgKG5leHRNc2cpO1xuXG5cdFx0XHRcdHJ1bm5pbmcgPSBmYWxzZTtcblxuXHRcdFx0XHRpZiAoaXNNb3VudGVkUmVmLmN1cnJlbnQgJiYgbW9kaWZpZWQpIHtcblx0XHRcdFx0XHRzZXRNb2RlbCgocHJldk1vZGVsKSA9PiB7XG5cdFx0XHRcdFx0XHRjb25zdCB1cGRhdGVkTW9kZWwgPSB7IC4uLnByZXZNb2RlbCwgLi4uY3VycmVudE1vZGVsIH07XG5cblx0XHRcdFx0XHRcdFNlcnZpY2VzLmxvZ2dlcj8uZGVidWcoXCJVcGRhdGUgbW9kZWwgZm9yXCIsIG5hbWUsIHVwZGF0ZWRNb2RlbCk7XG5cblx0XHRcdFx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLXR5cGUtYXNzZXJ0aW9uIC0tIFdlIGFsd2F5cyBoYXZlIGEgZnVsbCBtb2RlbCBoZXJlXG5cdFx0XHRcdFx0XHRyZXR1cm4gdXBkYXRlZE1vZGVsIGFzIFRNb2RlbDtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXHRcdFx0fSksXG5cdFx0W10sXG5cdCk7XG5cblx0aWYgKCFpbml0aWFsaXplZE1vZGVsKSB7XG5cdFx0Y29uc3QgW2luaXRNb2RlbCwgLi4uaW5pdENvbW1hbmRzXSA9IGZha2VPcHRpb25zPy5tb2RlbCA/IFtmYWtlT3B0aW9ucy5tb2RlbF0gOiBpbml0KHByb3BzKTtcblxuXHRcdGluaXRpYWxpemVkTW9kZWwgPSBpbml0TW9kZWw7XG5cdFx0c2V0TW9kZWwoaW5pdGlhbGl6ZWRNb2RlbCk7XG5cblx0XHRkZXZUb29scy5jdXJyZW50Py5pbml0KGluaXRpYWxpemVkTW9kZWwpO1xuXG5cdFx0U2VydmljZXMubG9nZ2VyPy5kZWJ1ZyhcIkluaXRpYWwgbW9kZWwgZm9yXCIsIG5hbWUsIGluaXRpYWxpemVkTW9kZWwpO1xuXG5cdFx0ZXhlY0NtZChkaXNwYXRjaCwgLi4uaW5pdENvbW1hbmRzKTtcblx0fVxuXG5cdC8vIGJpb21lLWlnbm9yZSBsaW50L2NvcnJlY3RuZXNzL3VzZUV4aGF1c3RpdmVEZXBlbmRlbmNpZXM6IFdlIHdhbnQgdG8gcnVuIHRoaXMgZWZmZWN0IG9ubHkgb25jZVxuXHR1c2VFZmZlY3QoKCkgPT4ge1xuXHRcdGlmIChzdWJzY3JpcHRpb24pIHtcblx0XHRcdGNvbnN0IHN1YnNjcmlwdGlvblJlc3VsdCA9IHN1YnNjcmlwdGlvbihpbml0aWFsaXplZE1vZGVsLCBwcm9wcyk7XG5cblx0XHRcdGlmIChzdWJzY3JpcHRpb25Jc0Z1bmN0aW9uQXJyYXkoc3Vic2NyaXB0aW9uUmVzdWx0KSkge1xuXHRcdFx0XHRjb25zdCBkZXN0cnVjdG9ycyA9IHN1YnNjcmlwdGlvblJlc3VsdC5tYXAoKHN1YikgPT4gc3ViKGRpc3BhdGNoKSkuZmlsdGVyKChkZXN0cnVjdG9yKSA9PiBkZXN0cnVjdG9yICE9PSB1bmRlZmluZWQpO1xuXG5cdFx0XHRcdHJldHVybiBmdW5jdGlvbiBjb21iaW5lZERlc3RydWN0b3IoKSB7XG5cdFx0XHRcdFx0Zm9yIChjb25zdCBkZXN0cnVjdG9yIG9mIGRlc3RydWN0b3JzKSB7XG5cdFx0XHRcdFx0XHRkZXN0cnVjdG9yKCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9O1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBbc3ViQ21kLCBkZXN0cnVjdG9yXSA9IHN1YnNjcmlwdGlvblJlc3VsdDtcblxuXHRcdFx0ZXhlY0NtZChkaXNwYXRjaCwgc3ViQ21kKTtcblxuXHRcdFx0cmV0dXJuIGRlc3RydWN0b3I7XG5cdFx0fVxuXHR9LCBbXSk7XG5cblx0cmV0dXJuIFtpbml0aWFsaXplZE1vZGVsLCBkaXNwYXRjaF07XG5cblx0ZnVuY3Rpb24gaGFuZGxlTWVzc2FnZShuZXh0TXNnOiBUTWVzc2FnZSk6IGJvb2xlYW4ge1xuXHRcdGlmICghaW5pdGlhbGl6ZWRNb2RlbCkge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdGxldCBtb2RpZmllZCA9IGZhbHNlO1xuXG5cdFx0bG9nTWVzc2FnZShuYW1lLCBuZXh0TXNnKTtcblxuXHRcdGNvbnN0IHVwZGF0ZWRNb2RlbCA9IHsgLi4uaW5pdGlhbGl6ZWRNb2RlbCwgLi4uY3VycmVudE1vZGVsIH07XG5cblx0XHRjb25zdCBbZGVmZXIsIGdldERlZmVycmVkXSA9IGNyZWF0ZURlZmVyPFRNb2RlbCwgVE1lc3NhZ2U+KCk7XG5cdFx0Y29uc3QgY2FsbEJhc2UgPSBjcmVhdGVDYWxsQmFzZShuZXh0TXNnLCB1cGRhdGVkTW9kZWwsIHByb3BzUmVmLmN1cnJlbnQsIHsgZGVmZXIgfSk7XG5cblx0XHRjb25zdCBbbmV3TW9kZWwsIC4uLmNvbW1hbmRzXSA9IGNhbGxVcGRhdGUodXBkYXRlLCBuZXh0TXNnLCB1cGRhdGVkTW9kZWwsIHByb3BzUmVmLmN1cnJlbnQsIHsgZGVmZXIsIGNhbGxCYXNlIH0pO1xuXG5cdFx0Y29uc3QgW2RlZmVycmVkTW9kZWwsIGRlZmVycmVkQ29tbWFuZHNdID0gZ2V0RGVmZXJyZWQoKTtcblxuXHRcdGlmIChtb2RlbEhhc0NoYW5nZWQoY3VycmVudE1vZGVsLCB7IC4uLmRlZmVycmVkTW9kZWwsIC4uLm5ld01vZGVsIH0pKSB7XG5cdFx0XHRjdXJyZW50TW9kZWwgPSB7IC4uLmN1cnJlbnRNb2RlbCwgLi4uZGVmZXJyZWRNb2RlbCwgLi4ubmV3TW9kZWwgfTtcblxuXHRcdFx0bW9kaWZpZWQgPSB0cnVlO1xuXHRcdH1cblxuXHRcdGV4ZWNDbWQoZGlzcGF0Y2gsIC4uLmNvbW1hbmRzLCAuLi5kZWZlcnJlZENvbW1hbmRzKTtcblxuXHRcdHJldHVybiBtb2RpZmllZDtcblx0fVxufVxuXG5mdW5jdGlvbiBjYWxsVXBkYXRlPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+KFxuXHR1cGRhdGU6IFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPixcblx0bXNnOiBUTWVzc2FnZSxcblx0bW9kZWw6IFRNb2RlbCxcblx0cHJvcHM6IFRQcm9wcyxcblx0b3B0aW9uczogVXBkYXRlRnVuY3Rpb25PcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG4pOiBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgVE1lc3NhZ2U+IHtcblx0aWYgKHR5cGVvZiB1cGRhdGUgPT09IFwiZnVuY3Rpb25cIikge1xuXHRcdHJldHVybiB1cGRhdGUobW9kZWwsIG1zZywgcHJvcHMsIG9wdGlvbnMpO1xuXHR9XG5cblx0cmV0dXJuIGNhbGxVcGRhdGVNYXAodXBkYXRlLCBtc2csIG1vZGVsLCBwcm9wcywgb3B0aW9ucyk7XG59XG5cbmZ1bmN0aW9uIGNhbGxVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4oXG5cdHVwZGF0ZU1hcDogVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG5cdG1zZzogVE1lc3NhZ2UsXG5cdG1vZGVsOiBUTW9kZWwsXG5cdHByb3BzOiBUUHJvcHMsXG5cdG9wdGlvbnM6IFVwZGF0ZUZ1bmN0aW9uT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuKTogVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPiB7XG5cdGNvbnN0IG1zZ05hbWU6IFRNZXNzYWdlW1wibmFtZVwiXSA9IG1zZy5uYW1lO1xuXG5cdHJldHVybiB1cGRhdGVNYXBbbXNnTmFtZV0obXNnLCBtb2RlbCwgcHJvcHMsIG9wdGlvbnMpO1xufVxuXG5leHBvcnQgdHlwZSB7IFN1YnNjcmlwdGlvbiwgU3Vic2NyaXB0aW9uRnVuY3Rpb24sIFN1YnNjcmlwdGlvblJlc3VsdCwgVXNlRWxtaXNoT3B0aW9ucyB9O1xuXG5leHBvcnQgeyBjYWxsVXBkYXRlLCBjYWxsVXBkYXRlTWFwLCBzdWJzY3JpcHRpb25Jc0Z1bmN0aW9uQXJyYXksIHVzZUVsbWlzaCB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQ0EsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsS0FBQSxHQUFBRixPQUFBO0FBWUEsSUFBQUcsZUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksYUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssWUFB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
|
|
214
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX0NvbW1vbiIsIl9Jbml0IiwiX1R5cGVzIiwiX2NyZWF0ZUNhbGxCYXNlIiwiX2NyZWF0ZURlZmVyMyIsIl9mYWtlT3B0aW9ucyIsIl9yZWR1eERldlRvb2xzIiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJyIiwiZSIsInQiLCJTeW1ib2wiLCJpdGVyYXRvciIsIkFycmF5IiwiaXNBcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsImxlbmd0aCIsIl9uIiwiRiIsInMiLCJuIiwiZG9uZSIsInZhbHVlIiwiZiIsIlR5cGVFcnJvciIsIm8iLCJhIiwidSIsImNhbGwiLCJuZXh0IiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIl9hcnJheUxpa2VUb0FycmF5IiwiX3RvQXJyYXkiLCJfYXJyYXlXaXRoSG9sZXMiLCJfbm9uSXRlcmFibGVSZXN0IiwiZnJvbSIsIm93bktleXMiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIl90b1Byb3BlcnR5S2V5IiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJpIiwiX3RvUHJpbWl0aXZlIiwiX3R5cGVvZiIsInRvUHJpbWl0aXZlIiwiU3RyaW5nIiwiTnVtYmVyIiwiX3NsaWNlZFRvQXJyYXkiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJ0b1N0cmluZyIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwidGVzdCIsImwiLCJ1c2VFbG1pc2giLCJfcmVmIiwiX2Zha2VPcHRpb25zJGRpc3BhdGNoIiwicHJvcHMiLCJpbml0IiwidXBkYXRlIiwic3Vic2NyaXB0aW9uIiwicnVubmluZyIsImJ1ZmZlciIsImN1cnJlbnRNb2RlbCIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIm1vZGVsIiwic2V0TW9kZWwiLCJwcm9wc1JlZiIsInVzZVJlZiIsImlzTW91bnRlZFJlZiIsImRldlRvb2xzIiwidXNlRWZmZWN0IiwicmVkdXhVbnN1YnNjcmliZSIsIlNlcnZpY2VzIiwiZW5hYmxlRGV2VG9vbHMiLCJpc1JlZHV4RGV2VG9vbHNFbmFibGVkIiwid2luZG93IiwiY3VycmVudCIsIl9fUkVEVVhfREVWVE9PTFNfRVhURU5TSU9OX18iLCJjb25uZWN0Iiwic2VyaWFsaXplIiwib3B0aW9ucyIsInN1YnNjcmliZSIsIm1lc3NhZ2UiLCJ0eXBlIiwicGF5bG9hZCIsIkpTT04iLCJwYXJzZSIsInN0YXRlIiwiX3JlZHV4VW5zdWJzY3JpYmUiLCJpbml0aWFsaXplZE1vZGVsIiwiZmFrZU9wdGlvbnMiLCJnZXRGYWtlT3B0aW9uc09uY2UiLCJkaXNwYXRjaCIsInVzZUNhbGxiYWNrIiwibXNnIiwibmV4dE1zZyIsIm1vZGlmaWVkIiwiaGFuZGxlTWVzc2FnZSIsInNlbmQiLCJzaGlmdCIsInByZXZNb2RlbCIsIl9TZXJ2aWNlcyRsb2dnZXIiLCJ1cGRhdGVkTW9kZWwiLCJsb2dnZXIiLCJkZWJ1ZyIsIl9kZXZUb29scyRjdXJyZW50IiwiX1NlcnZpY2VzJGxvZ2dlcjIiLCJfcmVmMiIsIl9yZWYzIiwiaW5pdE1vZGVsIiwiaW5pdENvbW1hbmRzIiwiZXhlY0NtZCIsImNvbmNhdCIsInN1YnNjcmlwdGlvblJlc3VsdCIsInN1YnNjcmlwdGlvbklzRnVuY3Rpb25BcnJheSIsImRlc3RydWN0b3JzIiwibWFwIiwic3ViIiwiZGVzdHJ1Y3RvciIsInVuZGVmaW5lZCIsImNvbWJpbmVkRGVzdHJ1Y3RvciIsIl9pdGVyYXRvciIsIl9zdGVwIiwiZXJyIiwiX3N1YnNjcmlwdGlvblJlc3VsdCIsInN1YkNtZCIsImxvZ01lc3NhZ2UiLCJfY3JlYXRlRGVmZXIiLCJjcmVhdGVEZWZlciIsIl9jcmVhdGVEZWZlcjIiLCJkZWZlciIsImdldERlZmVycmVkIiwiY2FsbEJhc2UiLCJjcmVhdGVDYWxsQmFzZSIsIl9jYWxsVXBkYXRlIiwiY2FsbFVwZGF0ZSIsIl9jYWxsVXBkYXRlMiIsIm5ld01vZGVsIiwiY29tbWFuZHMiLCJfZ2V0RGVmZXJyZWQiLCJfZ2V0RGVmZXJyZWQyIiwiZGVmZXJyZWRNb2RlbCIsImRlZmVycmVkQ29tbWFuZHMiLCJtb2RlbEhhc0NoYW5nZWQiLCJjYWxsVXBkYXRlTWFwIiwidXBkYXRlTWFwIiwibXNnTmFtZSJdLCJzb3VyY2VzIjpbIi4uL3NyYy91c2VFbG1pc2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzICovXG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBleGVjQ21kLCBsb2dNZXNzYWdlLCBtb2RlbEhhc0NoYW5nZWQgfSBmcm9tIFwiLi9Db21tb25cIjtcbmltcG9ydCB7IFNlcnZpY2VzIH0gZnJvbSBcIi4vSW5pdFwiO1xuaW1wb3J0IHtcblx0c3Vic2NyaXB0aW9uSXNGdW5jdGlvbkFycmF5LFxuXHR0eXBlIERpc3BhdGNoLFxuXHR0eXBlIEluaXRGdW5jdGlvbixcblx0dHlwZSBNZXNzYWdlLFxuXHR0eXBlIE51bGxhYmxlLFxuXHR0eXBlIFN1YnNjcmlwdGlvbixcblx0dHlwZSBVcGRhdGVGdW5jdGlvbixcblx0dHlwZSBVcGRhdGVGdW5jdGlvbk9wdGlvbnMsXG5cdHR5cGUgVXBkYXRlTWFwLFxuXHR0eXBlIFVwZGF0ZVJldHVyblR5cGUsXG59IGZyb20gXCIuL1R5cGVzXCI7XG5pbXBvcnQgeyBjcmVhdGVDYWxsQmFzZSB9IGZyb20gXCIuL2NyZWF0ZUNhbGxCYXNlXCI7XG5pbXBvcnQgeyBjcmVhdGVEZWZlciB9IGZyb20gXCIuL2NyZWF0ZURlZmVyXCI7XG5pbXBvcnQgeyBnZXRGYWtlT3B0aW9uc09uY2UgfSBmcm9tIFwiLi9mYWtlT3B0aW9uc1wiO1xuaW1wb3J0IHsgaXNSZWR1eERldlRvb2xzRW5hYmxlZCwgdHlwZSBSZWR1eERldlRvb2xzIH0gZnJvbSBcIi4vcmVkdXhEZXZUb29sc1wiO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHRoZSBgdXNlRWxtaXNoYCBob29rLlxuICogQGludGVyZmFjZSBVc2VFbG1pc2hPcHRpb25zXG4gKiBAdGVtcGxhdGUgVFByb3BzIFRoZSB0eXBlIG9mIHRoZSBwcm9wcy5cbiAqIEB0ZW1wbGF0ZSBUTW9kZWwgVGhlIHR5cGUgb2YgdGhlIG1vZGVsLlxuICogQHRlbXBsYXRlIFRNZXNzYWdlIFRoZSB0eXBlIG9mIHRoZSBtZXNzYWdlcyBkaXNjcmltaW5hdGVkIHVuaW9uLlxuICovXG5pbnRlcmZhY2UgVXNlRWxtaXNoT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPiB7XG5cdC8qKlxuXHQgKiBUaGUgbmFtZSBvZiB0aGUgY29tcG9uZW50LiBUaGlzIGlzIHVzZWQgZm9yIGxvZ2dpbmcgb25seS5cblx0ICogQHR5cGUge3N0cmluZ31cblx0ICovXG5cdG5hbWU6IHN0cmluZztcblx0LyoqXG5cdCAqIFRoZSBwcm9wcyBwYXNzZWQgdG8gdGhlIGNvbXBvbmVudC5cblx0ICogQHR5cGUge1RQcm9wc31cblx0ICovXG5cdHByb3BzOiBUUHJvcHM7XG5cdC8qKlxuXHQgKiBUaGUgZnVuY3Rpb24gdG8gaW5pdGlhbGl6ZSB0aGUgY29tcG9uZW50cyBtb2RlbC4gVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGNhbGxlZCBvbmNlLlxuXHQgKiBAdHlwZSB7SW5pdEZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT59XG5cdCAqL1xuXHRpbml0OiBJbml0RnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPjtcblx0LyoqXG5cdCAqIFRoZSBgdXBkYXRlYCBmdW5jdGlvbiBvciB1cGRhdGUgbWFwIG9iamVjdC5cblx0ICogQHR5cGUgeyhVcGRhdGVGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+IHwgVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4pfVxuXHQgKi9cblx0dXBkYXRlOiBVcGRhdGVGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+IHwgVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT47XG5cdC8qKlxuXHQgKiBUaGUgb3B0aW9uYWwgYHN1YnNjcmlwdGlvbmAgZnVuY3Rpb24uIFRoaXMgZnVuY3Rpb24gaXMgb25seSBjYWxsZWQgb25jZS5cblx0ICogQHR5cGUgeyhVcGRhdGVGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+IHwgVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4pfVxuXHQgKi9cblx0c3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT47XG59XG5cbi8qKlxuICogSG9vayB0byB1c2UgdGhlIEVsbSBhcmNoaXRlY3R1cmUgcGF0dGVybiBpbiBhIGZ1bmN0aW9uIGNvbXBvbmVudC5cbiAqIEBwYXJhbSB7VXNlRWxtaXNoT3B0aW9uc30gb3B0aW9ucyBUaGUgb3B0aW9ucyBwYXNzZWQgdGhlIHRoZSBob29rLlxuICogQHJldHVybnMgQSB0dXBsZSBjb250YWluaW5nIHRoZSBjdXJyZW50IG1vZGVsIGFuZCB0aGUgZGlzcGF0Y2hlci5cbiAqIEBleGFtcGxlXG4gKiBjb25zdCBbbW9kZWwsIGRpc3BhdGNoXSA9IHVzZUVsbWlzaCh7IHByb3BzLCBpbml0LCB1cGRhdGUsIG5hbWU6IFwiTXlDb21wb25lbnRcIiB9KTtcbiAqL1xuZnVuY3Rpb24gdXNlRWxtaXNoPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+KHtcblx0bmFtZSxcblx0cHJvcHMsXG5cdGluaXQsXG5cdHVwZGF0ZSxcblx0c3Vic2NyaXB0aW9uLFxufTogVXNlRWxtaXNoT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+KTogW1RNb2RlbCwgRGlzcGF0Y2g8VE1lc3NhZ2U+XSB7XG5cdGxldCBydW5uaW5nID0gZmFsc2U7XG5cdGNvbnN0IGJ1ZmZlcjogVE1lc3NhZ2VbXSA9IFtdO1xuXHRsZXQgY3VycmVudE1vZGVsOiBQYXJ0aWFsPFRNb2RlbD4gPSB7fTtcblxuXHRjb25zdCBbbW9kZWwsIHNldE1vZGVsXSA9IHVzZVN0YXRlPE51bGxhYmxlPFRNb2RlbD4+KG51bGwpO1xuXHRjb25zdCBwcm9wc1JlZiA9IHVzZVJlZihwcm9wcyk7XG5cdGNvbnN0IGlzTW91bnRlZFJlZiA9IHVzZVJlZih0cnVlKTtcblxuXHRjb25zdCBkZXZUb29scyA9IHVzZVJlZjxSZWR1eERldlRvb2xzIHwgbnVsbD4obnVsbCk7XG5cblx0dXNlRWZmZWN0KCgpID0+IHtcblx0XHRsZXQgcmVkdXhVbnN1YnNjcmliZTogKCgpID0+IHZvaWQpIHwgdW5kZWZpbmVkO1xuXG5cdFx0aWYgKFNlcnZpY2VzLmVuYWJsZURldlRvb2xzID09PSB0cnVlICYmIGlzUmVkdXhEZXZUb29sc0VuYWJsZWQod2luZG93KSkge1xuXHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVyc2NvcmUtZGFuZ2xlXG5cdFx0XHRkZXZUb29scy5jdXJyZW50ID0gd2luZG93Ll9fUkVEVVhfREVWVE9PTFNfRVhURU5TSU9OX18uY29ubmVjdCh7IG5hbWUsIHNlcmlhbGl6ZTogeyBvcHRpb25zOiB0cnVlIH0gfSk7XG5cblx0XHRcdHJlZHV4VW5zdWJzY3JpYmUgPSBkZXZUb29scy5jdXJyZW50LnN1YnNjcmliZSgobWVzc2FnZSkgPT4ge1xuXHRcdFx0XHRpZiAobWVzc2FnZS50eXBlID09PSBcIkRJU1BBVENIXCIgJiYgbWVzc2FnZS5wYXlsb2FkLnR5cGUgPT09IFwiSlVNUF9UT19BQ1RJT05cIikge1xuXHRcdFx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLXR5cGUtYXNzZXJ0aW9uXG5cdFx0XHRcdFx0c2V0TW9kZWwoSlNPTi5wYXJzZShtZXNzYWdlLnN0YXRlKSBhcyBUTW9kZWwpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHRpc01vdW50ZWRSZWYuY3VycmVudCA9IHRydWU7XG5cblx0XHRyZXR1cm4gKCkgPT4ge1xuXHRcdFx0aXNNb3VudGVkUmVmLmN1cnJlbnQgPSBmYWxzZTtcblxuXHRcdFx0cmVkdXhVbnN1YnNjcmliZT8uKCk7XG5cdFx0fTtcblx0fSwgW25hbWVdKTtcblxuXHRsZXQgaW5pdGlhbGl6ZWRNb2RlbCA9IG1vZGVsO1xuXG5cdGlmIChwcm9wc1JlZi5jdXJyZW50ICE9PSBwcm9wcykge1xuXHRcdHByb3BzUmVmLmN1cnJlbnQgPSBwcm9wcztcblx0fVxuXG5cdGNvbnN0IGZha2VPcHRpb25zID0gZ2V0RmFrZU9wdGlvbnNPbmNlPFRNb2RlbCwgVE1lc3NhZ2U+KCk7XG5cdGNvbnN0IGRpc3BhdGNoID0gdXNlQ2FsbGJhY2soXG5cdFx0ZmFrZU9wdGlvbnM/LmRpc3BhdGNoID8/XG5cdFx0XHQoKG1zZzogVE1lc3NhZ2UpOiB2b2lkID0+IHtcblx0XHRcdFx0aWYgKHJ1bm5pbmcpIHtcblx0XHRcdFx0XHRidWZmZXIucHVzaChtc2cpO1xuXG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cnVubmluZyA9IHRydWU7XG5cblx0XHRcdFx0bGV0IG5leHRNc2c6IFRNZXNzYWdlIHwgdW5kZWZpbmVkID0gbXNnO1xuXHRcdFx0XHRsZXQgbW9kaWZpZWQgPSBmYWxzZTtcblxuXHRcdFx0XHRkbyB7XG5cdFx0XHRcdFx0aWYgKGhhbmRsZU1lc3NhZ2UobmV4dE1zZykpIHtcblx0XHRcdFx0XHRcdG1vZGlmaWVkID0gdHJ1ZTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRpZiAoZGV2VG9vbHMuY3VycmVudCkge1xuXHRcdFx0XHRcdFx0ZGV2VG9vbHMuY3VycmVudC5zZW5kKG5leHRNc2cubmFtZSwgeyAuLi5pbml0aWFsaXplZE1vZGVsLCAuLi5jdXJyZW50TW9kZWwgfSk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0bmV4dE1zZyA9IGJ1ZmZlci5zaGlmdCgpO1xuXHRcdFx0XHR9IHdoaWxlIChuZXh0TXNnKTtcblxuXHRcdFx0XHRydW5uaW5nID0gZmFsc2U7XG5cblx0XHRcdFx0aWYgKGlzTW91bnRlZFJlZi5jdXJyZW50ICYmIG1vZGlmaWVkKSB7XG5cdFx0XHRcdFx0c2V0TW9kZWwoKHByZXZNb2RlbCkgPT4ge1xuXHRcdFx0XHRcdFx0Y29uc3QgdXBkYXRlZE1vZGVsID0geyAuLi5wcmV2TW9kZWwsIC4uLmN1cnJlbnRNb2RlbCB9O1xuXG5cdFx0XHRcdFx0XHRTZXJ2aWNlcy5sb2dnZXI/LmRlYnVnKFwiVXBkYXRlIG1vZGVsIGZvclwiLCBuYW1lLCB1cGRhdGVkTW9kZWwpO1xuXG5cdFx0XHRcdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS10eXBlLWFzc2VydGlvbiAtLSBXZSBhbHdheXMgaGF2ZSBhIGZ1bGwgbW9kZWwgaGVyZVxuXHRcdFx0XHRcdFx0cmV0dXJuIHVwZGF0ZWRNb2RlbCBhcyBUTW9kZWw7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdH0pLFxuXHRcdFtdLFxuXHQpO1xuXG5cdGlmICghaW5pdGlhbGl6ZWRNb2RlbCkge1xuXHRcdGNvbnN0IFtpbml0TW9kZWwsIC4uLmluaXRDb21tYW5kc10gPSBmYWtlT3B0aW9ucz8ubW9kZWwgPyBbZmFrZU9wdGlvbnMubW9kZWxdIDogaW5pdChwcm9wcyk7XG5cblx0XHRpbml0aWFsaXplZE1vZGVsID0gaW5pdE1vZGVsO1xuXHRcdHNldE1vZGVsKGluaXRpYWxpemVkTW9kZWwpO1xuXG5cdFx0ZGV2VG9vbHMuY3VycmVudD8uaW5pdChpbml0aWFsaXplZE1vZGVsKTtcblxuXHRcdFNlcnZpY2VzLmxvZ2dlcj8uZGVidWcoXCJJbml0aWFsIG1vZGVsIGZvclwiLCBuYW1lLCBpbml0aWFsaXplZE1vZGVsKTtcblxuXHRcdGV4ZWNDbWQoZGlzcGF0Y2gsIC4uLmluaXRDb21tYW5kcyk7XG5cdH1cblxuXHQvLyBiaW9tZS1pZ25vcmUgbGludC9jb3JyZWN0bmVzcy91c2VFeGhhdXN0aXZlRGVwZW5kZW5jaWVzOiBXZSB3YW50IHRvIHJ1biB0aGlzIGVmZmVjdCBvbmx5IG9uY2Vcblx0dXNlRWZmZWN0KCgpID0+IHtcblx0XHRpZiAoc3Vic2NyaXB0aW9uKSB7XG5cdFx0XHRjb25zdCBzdWJzY3JpcHRpb25SZXN1bHQgPSBzdWJzY3JpcHRpb24oaW5pdGlhbGl6ZWRNb2RlbCwgcHJvcHMpO1xuXG5cdFx0XHRpZiAoc3Vic2NyaXB0aW9uSXNGdW5jdGlvbkFycmF5KHN1YnNjcmlwdGlvblJlc3VsdCkpIHtcblx0XHRcdFx0Y29uc3QgZGVzdHJ1Y3RvcnMgPSBzdWJzY3JpcHRpb25SZXN1bHQubWFwKChzdWIpID0+IHN1YihkaXNwYXRjaCkpLmZpbHRlcigoZGVzdHJ1Y3RvcikgPT4gZGVzdHJ1Y3RvciAhPT0gdW5kZWZpbmVkKTtcblxuXHRcdFx0XHRyZXR1cm4gZnVuY3Rpb24gY29tYmluZWREZXN0cnVjdG9yKCkge1xuXHRcdFx0XHRcdGZvciAoY29uc3QgZGVzdHJ1Y3RvciBvZiBkZXN0cnVjdG9ycykge1xuXHRcdFx0XHRcdFx0ZGVzdHJ1Y3RvcigpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fTtcblx0XHRcdH1cblxuXHRcdFx0Y29uc3QgW3N1YkNtZCwgZGVzdHJ1Y3Rvcl0gPSBzdWJzY3JpcHRpb25SZXN1bHQ7XG5cblx0XHRcdGV4ZWNDbWQoZGlzcGF0Y2gsIHN1YkNtZCk7XG5cblx0XHRcdHJldHVybiBkZXN0cnVjdG9yO1xuXHRcdH1cblx0fSwgW10pO1xuXG5cdHJldHVybiBbaW5pdGlhbGl6ZWRNb2RlbCwgZGlzcGF0Y2hdO1xuXG5cdGZ1bmN0aW9uIGhhbmRsZU1lc3NhZ2UobmV4dE1zZzogVE1lc3NhZ2UpOiBib29sZWFuIHtcblx0XHRpZiAoIWluaXRpYWxpemVkTW9kZWwpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHRsZXQgbW9kaWZpZWQgPSBmYWxzZTtcblxuXHRcdGxvZ01lc3NhZ2UobmFtZSwgbmV4dE1zZyk7XG5cblx0XHRjb25zdCB1cGRhdGVkTW9kZWwgPSB7IC4uLmluaXRpYWxpemVkTW9kZWwsIC4uLmN1cnJlbnRNb2RlbCB9O1xuXG5cdFx0Y29uc3QgW2RlZmVyLCBnZXREZWZlcnJlZF0gPSBjcmVhdGVEZWZlcjxUTW9kZWwsIFRNZXNzYWdlPigpO1xuXHRcdGNvbnN0IGNhbGxCYXNlID0gY3JlYXRlQ2FsbEJhc2UobmV4dE1zZywgdXBkYXRlZE1vZGVsLCBwcm9wc1JlZi5jdXJyZW50LCB7IGRlZmVyIH0pO1xuXG5cdFx0Y29uc3QgW25ld01vZGVsLCAuLi5jb21tYW5kc10gPSBjYWxsVXBkYXRlKHVwZGF0ZSwgbmV4dE1zZywgdXBkYXRlZE1vZGVsLCBwcm9wc1JlZi5jdXJyZW50LCB7IGRlZmVyLCBjYWxsQmFzZSB9KTtcblxuXHRcdGNvbnN0IFtkZWZlcnJlZE1vZGVsLCBkZWZlcnJlZENvbW1hbmRzXSA9IGdldERlZmVycmVkKCk7XG5cblx0XHRpZiAobW9kZWxIYXNDaGFuZ2VkKGN1cnJlbnRNb2RlbCwgeyAuLi5kZWZlcnJlZE1vZGVsLCAuLi5uZXdNb2RlbCB9KSkge1xuXHRcdFx0Y3VycmVudE1vZGVsID0geyAuLi5jdXJyZW50TW9kZWwsIC4uLmRlZmVycmVkTW9kZWwsIC4uLm5ld01vZGVsIH07XG5cblx0XHRcdG1vZGlmaWVkID0gdHJ1ZTtcblx0XHR9XG5cblx0XHRleGVjQ21kKGRpc3BhdGNoLCAuLi5jb21tYW5kcywgLi4uZGVmZXJyZWRDb21tYW5kcyk7XG5cblx0XHRyZXR1cm4gbW9kaWZpZWQ7XG5cdH1cbn1cblxuZnVuY3Rpb24gY2FsbFVwZGF0ZTxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPihcblx0dXBkYXRlOiBVcGRhdGVGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+IHwgVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG5cdG1zZzogVE1lc3NhZ2UsXG5cdG1vZGVsOiBUTW9kZWwsXG5cdHByb3BzOiBUUHJvcHMsXG5cdG9wdGlvbnM6IFVwZGF0ZUZ1bmN0aW9uT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuKTogVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPiB7XG5cdGlmICh0eXBlb2YgdXBkYXRlID09PSBcImZ1bmN0aW9uXCIpIHtcblx0XHRyZXR1cm4gdXBkYXRlKG1vZGVsLCBtc2csIHByb3BzLCBvcHRpb25zKTtcblx0fVxuXG5cdHJldHVybiBjYWxsVXBkYXRlTWFwKHVwZGF0ZSwgbXNnLCBtb2RlbCwgcHJvcHMsIG9wdGlvbnMpO1xufVxuXG5mdW5jdGlvbiBjYWxsVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+KFxuXHR1cGRhdGVNYXA6IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuXHRtc2c6IFRNZXNzYWdlLFxuXHRtb2RlbDogVE1vZGVsLFxuXHRwcm9wczogVFByb3BzLFxuXHRvcHRpb25zOiBVcGRhdGVGdW5jdGlvbk9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPixcbik6IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTWVzc2FnZT4ge1xuXHRjb25zdCBtc2dOYW1lOiBUTWVzc2FnZVtcIm5hbWVcIl0gPSBtc2cubmFtZTtcblxuXHRyZXR1cm4gdXBkYXRlTWFwW21zZ05hbWVdKG1zZywgbW9kZWwsIHByb3BzLCBvcHRpb25zKTtcbn1cblxuZXhwb3J0IHR5cGUgeyBVc2VFbG1pc2hPcHRpb25zIH07XG5cbmV4cG9ydCB7IGNhbGxVcGRhdGUsIGNhbGxVcGRhdGVNYXAsIHVzZUVsbWlzaCB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFDQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxLQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxNQUFBLEdBQUFILE9BQUE7QUFZQSxJQUFBSSxlQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxhQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxZQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxjQUFBLEdBQUFQLE9BQUE7QUFBNkUsU0FBQVEsMkJBQUFDLENBQUEsRUFBQUMsQ0FBQSxRQUFBQyxDQUFBLHlCQUFBQyxNQUFBLElBQUFILENBQUEsQ0FBQUcsTUFBQSxDQUFBQyxRQUFBLEtBQUFKLENBQUEscUJBQUFFLENBQUEsUUFBQUcsS0FBQSxDQUFBQyxPQUFBLENBQUFOLENBQUEsTUFBQUUsQ0FBQSxHQUFBSywyQkFBQSxDQUFBUCxDQUFBLE1BQUFDLENBQUEsSUFBQUQsQ0FBQSx1QkFBQUEsQ0FBQSxDQUFBUSxNQUFBLElBQUFOLENBQUEsS0FBQUYsQ0FBQSxHQUFBRSxDQUFBLE9BQUFPLEVBQUEsTUFBQUMsQ0FBQSxZQUFBQSxFQUFBLGVBQUFDLENBQUEsRUFBQUQsQ0FBQSxFQUFBRSxDQUFBLFdBQUFBLEVBQUEsV0FBQUgsRUFBQSxJQUFBVCxDQUFBLENBQUFRLE1BQUEsS0FBQUssSUFBQSxXQUFBQSxJQUFBLE1BQUFDLEtBQUEsRUFBQWQsQ0FBQSxDQUFBUyxFQUFBLFVBQUFSLENBQUEsV0FBQUEsRUFBQUQsQ0FBQSxVQUFBQSxDQUFBLEtBQUFlLENBQUEsRUFBQUwsQ0FBQSxnQkFBQU0sU0FBQSxpSkFBQUMsQ0FBQSxFQUFBQyxDQUFBLE9BQUFDLENBQUEsZ0JBQUFSLENBQUEsV0FBQUEsRUFBQSxJQUFBVCxDQUFBLEdBQUFBLENBQUEsQ0FBQWtCLElBQUEsQ0FBQXBCLENBQUEsTUFBQVksQ0FBQSxXQUFBQSxFQUFBLFFBQUFaLENBQUEsR0FBQUUsQ0FBQSxDQUFBbUIsSUFBQSxXQUFBSCxDQUFBLEdBQUFsQixDQUFBLENBQUFhLElBQUEsRUFBQWIsQ0FBQSxLQUFBQyxDQUFBLFdBQUFBLEVBQUFELENBQUEsSUFBQW1CLENBQUEsT0FBQUYsQ0FBQSxHQUFBakIsQ0FBQSxLQUFBZSxDQUFBLFdBQUFBLEVBQUEsVUFBQUcsQ0FBQSxZQUFBaEIsQ0FBQSxjQUFBQSxDQUFBLDhCQUFBaUIsQ0FBQSxRQUFBRixDQUFBO0FBQUEsU0FBQUssbUJBQUF0QixDQUFBLFdBQUF1QixrQkFBQSxDQUFBdkIsQ0FBQSxLQUFBd0IsZ0JBQUEsQ0FBQXhCLENBQUEsS0FBQU8sMkJBQUEsQ0FBQVAsQ0FBQSxLQUFBeUIsa0JBQUE7QUFBQSxTQUFBQSxtQkFBQSxjQUFBVCxTQUFBO0FBQUEsU0FBQU8sbUJBQUF2QixDQUFBLFFBQUFLLEtBQUEsQ0FBQUMsT0FBQSxDQUFBTixDQUFBLFVBQUEwQixpQkFBQSxDQUFBMUIsQ0FBQTtBQUFBLFNBQUEyQixTQUFBM0IsQ0FBQSxXQUFBNEIsZUFBQSxDQUFBNUIsQ0FBQSxLQUFBd0IsZ0JBQUEsQ0FBQXhCLENBQUEsS0FBQU8sMkJBQUEsQ0FBQVAsQ0FBQSxLQUFBNkIsZ0JBQUE7QUFBQSxTQUFBTCxpQkFBQXhCLENBQUEsOEJBQUFHLE1BQUEsWUFBQUgsQ0FBQSxDQUFBRyxNQUFBLENBQUFDLFFBQUEsYUFBQUosQ0FBQSx1QkFBQUssS0FBQSxDQUFBeUIsSUFBQSxDQUFBOUIsQ0FBQTtBQUFBLFNBQUErQixRQUFBOUIsQ0FBQSxFQUFBRCxDQUFBLFFBQUFFLENBQUEsR0FBQThCLE1BQUEsQ0FBQUMsSUFBQSxDQUFBaEMsQ0FBQSxPQUFBK0IsTUFBQSxDQUFBRSxxQkFBQSxRQUFBakIsQ0FBQSxHQUFBZSxNQUFBLENBQUFFLHFCQUFBLENBQUFqQyxDQUFBLEdBQUFELENBQUEsS0FBQWlCLENBQUEsR0FBQUEsQ0FBQSxDQUFBa0IsTUFBQSxXQUFBbkMsQ0FBQSxXQUFBZ0MsTUFBQSxDQUFBSSx3QkFBQSxDQUFBbkMsQ0FBQSxFQUFBRCxDQUFBLEVBQUFxQyxVQUFBLE9BQUFuQyxDQUFBLENBQUFvQyxJQUFBLENBQUFDLEtBQUEsQ0FBQXJDLENBQUEsRUFBQWUsQ0FBQSxZQUFBZixDQUFBO0FBQUEsU0FBQXNDLGNBQUF2QyxDQUFBLGFBQUFELENBQUEsTUFBQUEsQ0FBQSxHQUFBeUMsU0FBQSxDQUFBakMsTUFBQSxFQUFBUixDQUFBLFVBQUFFLENBQUEsV0FBQXVDLFNBQUEsQ0FBQXpDLENBQUEsSUFBQXlDLFNBQUEsQ0FBQXpDLENBQUEsUUFBQUEsQ0FBQSxPQUFBK0IsT0FBQSxDQUFBQyxNQUFBLENBQUE5QixDQUFBLE9BQUF3QyxPQUFBLFdBQUExQyxDQUFBLElBQUEyQyxlQUFBLENBQUExQyxDQUFBLEVBQUFELENBQUEsRUFBQUUsQ0FBQSxDQUFBRixDQUFBLFNBQUFnQyxNQUFBLENBQUFZLHlCQUFBLEdBQUFaLE1BQUEsQ0FBQWEsZ0JBQUEsQ0FBQTVDLENBQUEsRUFBQStCLE1BQUEsQ0FBQVkseUJBQUEsQ0FBQTFDLENBQUEsS0FBQTZCLE9BQUEsQ0FBQUMsTUFBQSxDQUFBOUIsQ0FBQSxHQUFBd0MsT0FBQSxXQUFBMUMsQ0FBQSxJQUFBZ0MsTUFBQSxDQUFBYyxjQUFBLENBQUE3QyxDQUFBLEVBQUFELENBQUEsRUFBQWdDLE1BQUEsQ0FBQUksd0JBQUEsQ0FBQWxDLENBQUEsRUFBQUYsQ0FBQSxpQkFBQUMsQ0FBQTtBQUFBLFNBQUEwQyxnQkFBQTFDLENBQUEsRUFBQUQsQ0FBQSxFQUFBRSxDQUFBLFlBQUFGLENBQUEsR0FBQStDLGNBQUEsQ0FBQS9DLENBQUEsTUFBQUMsQ0FBQSxHQUFBK0IsTUFBQSxDQUFBYyxjQUFBLENBQUE3QyxDQUFBLEVBQUFELENBQUEsSUFBQWMsS0FBQSxFQUFBWixDQUFBLEVBQUFtQyxVQUFBLE1BQUFXLFlBQUEsTUFBQUMsUUFBQSxVQUFBaEQsQ0FBQSxDQUFBRCxDQUFBLElBQUFFLENBQUEsRUFBQUQsQ0FBQTtBQUFBLFNBQUE4QyxlQUFBN0MsQ0FBQSxRQUFBZ0QsQ0FBQSxHQUFBQyxZQUFBLENBQUFqRCxDQUFBLGdDQUFBa0QsT0FBQSxDQUFBRixDQUFBLElBQUFBLENBQUEsR0FBQUEsQ0FBQTtBQUFBLFNBQUFDLGFBQUFqRCxDQUFBLEVBQUFGLENBQUEsb0JBQUFvRCxPQUFBLENBQUFsRCxDQUFBLE1BQUFBLENBQUEsU0FBQUEsQ0FBQSxNQUFBRCxDQUFBLEdBQUFDLENBQUEsQ0FBQUMsTUFBQSxDQUFBa0QsV0FBQSxrQkFBQXBELENBQUEsUUFBQWlELENBQUEsR0FBQWpELENBQUEsQ0FBQW1CLElBQUEsQ0FBQWxCLENBQUEsRUFBQUYsQ0FBQSxnQ0FBQW9ELE9BQUEsQ0FBQUYsQ0FBQSxVQUFBQSxDQUFBLFlBQUFsQyxTQUFBLHlFQUFBaEIsQ0FBQSxHQUFBc0QsTUFBQSxHQUFBQyxNQUFBLEVBQUFyRCxDQUFBO0FBQUEsU0FBQXNELGVBQUF4RCxDQUFBLEVBQUFDLENBQUEsV0FBQTJCLGVBQUEsQ0FBQTVCLENBQUEsS0FBQXlELHFCQUFBLENBQUF6RCxDQUFBLEVBQUFDLENBQUEsS0FBQU0sMkJBQUEsQ0FBQVAsQ0FBQSxFQUFBQyxDQUFBLEtBQUE0QixnQkFBQTtBQUFBLFNBQUFBLGlCQUFBLGNBQUFiLFNBQUE7QUFBQSxTQUFBVCw0QkFBQVAsQ0FBQSxFQUFBa0IsQ0FBQSxRQUFBbEIsQ0FBQSwyQkFBQUEsQ0FBQSxTQUFBMEIsaUJBQUEsQ0FBQTFCLENBQUEsRUFBQWtCLENBQUEsT0FBQWhCLENBQUEsTUFBQXdELFFBQUEsQ0FBQXRDLElBQUEsQ0FBQXBCLENBQUEsRUFBQTJELEtBQUEsNkJBQUF6RCxDQUFBLElBQUFGLENBQUEsQ0FBQTRELFdBQUEsS0FBQTFELENBQUEsR0FBQUYsQ0FBQSxDQUFBNEQsV0FBQSxDQUFBQyxJQUFBLGFBQUEzRCxDQUFBLGNBQUFBLENBQUEsR0FBQUcsS0FBQSxDQUFBeUIsSUFBQSxDQUFBOUIsQ0FBQSxvQkFBQUUsQ0FBQSwrQ0FBQTRELElBQUEsQ0FBQTVELENBQUEsSUFBQXdCLGlCQUFBLENBQUExQixDQUFBLEVBQUFrQixDQUFBO0FBQUEsU0FBQVEsa0JBQUExQixDQUFBLEVBQUFrQixDQUFBLGFBQUFBLENBQUEsSUFBQUEsQ0FBQSxHQUFBbEIsQ0FBQSxDQUFBUSxNQUFBLE1BQUFVLENBQUEsR0FBQWxCLENBQUEsQ0FBQVEsTUFBQSxZQUFBUCxDQUFBLE1BQUFXLENBQUEsR0FBQVAsS0FBQSxDQUFBYSxDQUFBLEdBQUFqQixDQUFBLEdBQUFpQixDQUFBLEVBQUFqQixDQUFBLElBQUFXLENBQUEsQ0FBQVgsQ0FBQSxJQUFBRCxDQUFBLENBQUFDLENBQUEsVUFBQVcsQ0FBQTtBQUFBLFNBQUE2QyxzQkFBQXpELENBQUEsRUFBQStELENBQUEsUUFBQTdELENBQUEsV0FBQUYsQ0FBQSxnQ0FBQUcsTUFBQSxJQUFBSCxDQUFBLENBQUFHLE1BQUEsQ0FBQUMsUUFBQSxLQUFBSixDQUFBLDRCQUFBRSxDQUFBLFFBQUFELENBQUEsRUFBQVcsQ0FBQSxFQUFBc0MsQ0FBQSxFQUFBL0IsQ0FBQSxFQUFBRCxDQUFBLE9BQUFILENBQUEsT0FBQUUsQ0FBQSxpQkFBQWlDLENBQUEsSUFBQWhELENBQUEsR0FBQUEsQ0FBQSxDQUFBa0IsSUFBQSxDQUFBcEIsQ0FBQSxHQUFBcUIsSUFBQSxRQUFBMEMsQ0FBQSxRQUFBL0IsTUFBQSxDQUFBOUIsQ0FBQSxNQUFBQSxDQUFBLFVBQUFhLENBQUEsdUJBQUFBLENBQUEsSUFBQWQsQ0FBQSxHQUFBaUQsQ0FBQSxDQUFBOUIsSUFBQSxDQUFBbEIsQ0FBQSxHQUFBVyxJQUFBLE1BQUFLLENBQUEsQ0FBQW9CLElBQUEsQ0FBQXJDLENBQUEsQ0FBQWEsS0FBQSxHQUFBSSxDQUFBLENBQUFWLE1BQUEsS0FBQXVELENBQUEsR0FBQWhELENBQUEsaUJBQUFmLENBQUEsSUFBQWlCLENBQUEsT0FBQUwsQ0FBQSxHQUFBWixDQUFBLHlCQUFBZSxDQUFBLFlBQUFiLENBQUEsZUFBQWlCLENBQUEsR0FBQWpCLENBQUEsY0FBQThCLE1BQUEsQ0FBQWIsQ0FBQSxNQUFBQSxDQUFBLDJCQUFBRixDQUFBLFFBQUFMLENBQUEsYUFBQU0sQ0FBQTtBQUFBLFNBQUFVLGdCQUFBNUIsQ0FBQSxRQUFBSyxLQUFBLENBQUFDLE9BQUEsQ0FBQU4sQ0FBQSxVQUFBQSxDQUFBLElBbkI3RTtBQXFCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUE2QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTZ0UsU0FBU0EsQ0FBQUMsSUFBQSxFQU0yRDtFQUFBLElBQUFDLHFCQUFBO0VBQUEsSUFMNUVMLElBQUksR0FBQUksSUFBQSxDQUFKSixJQUFJO0lBQ0pNLEtBQUssR0FBQUYsSUFBQSxDQUFMRSxLQUFLO0lBQ0xDLElBQUksR0FBQUgsSUFBQSxDQUFKRyxJQUFJO0lBQ0pDLE1BQU0sR0FBQUosSUFBQSxDQUFOSSxNQUFNO0lBQ05DLFlBQVksR0FBQUwsSUFBQSxDQUFaSyxZQUFZO0VBRVosSUFBSUMsT0FBTyxHQUFHLEtBQUs7RUFDbkIsSUFBTUMsTUFBa0IsR0FBRyxFQUFFO0VBQzdCLElBQUlDLFlBQTZCLEdBQUcsQ0FBQyxDQUFDO0VBRXRDLElBQUFDLFNBQUEsR0FBMEIsSUFBQUMsZUFBUSxFQUFtQixJQUFJLENBQUM7SUFBQUMsVUFBQSxHQUFBcEIsY0FBQSxDQUFBa0IsU0FBQTtJQUFuREcsS0FBSyxHQUFBRCxVQUFBO0lBQUVFLFFBQVEsR0FBQUYsVUFBQTtFQUN0QixJQUFNRyxRQUFRLEdBQUcsSUFBQUMsYUFBTSxFQUFDYixLQUFLLENBQUM7RUFDOUIsSUFBTWMsWUFBWSxHQUFHLElBQUFELGFBQU0sRUFBQyxJQUFJLENBQUM7RUFFakMsSUFBTUUsUUFBUSxHQUFHLElBQUFGLGFBQU0sRUFBdUIsSUFBSSxDQUFDO0VBRW5ELElBQUFHLGdCQUFTLEVBQUMsWUFBTTtJQUNmLElBQUlDLGdCQUEwQztJQUU5QyxJQUFJQyxjQUFRLENBQUNDLGNBQWMsS0FBSyxJQUFJLElBQUksSUFBQUMscUNBQXNCLEVBQUNDLE1BQU0sQ0FBQyxFQUFFO01BQ3ZFO01BQ0FOLFFBQVEsQ0FBQ08sT0FBTyxHQUFHRCxNQUFNLENBQUNFLDRCQUE0QixDQUFDQyxPQUFPLENBQUM7UUFBRTlCLElBQUksRUFBSkEsSUFBSTtRQUFFK0IsU0FBUyxFQUFFO1VBQUVDLE9BQU8sRUFBRTtRQUFLO01BQUUsQ0FBQyxDQUFDO01BRXRHVCxnQkFBZ0IsR0FBR0YsUUFBUSxDQUFDTyxPQUFPLENBQUNLLFNBQVMsQ0FBQyxVQUFDQyxPQUFPLEVBQUs7UUFDMUQsSUFBSUEsT0FBTyxDQUFDQyxJQUFJLEtBQUssVUFBVSxJQUFJRCxPQUFPLENBQUNFLE9BQU8sQ0FBQ0QsSUFBSSxLQUFLLGdCQUFnQixFQUFFO1VBQzdFO1VBQ0FsQixRQUFRLENBQUNvQixJQUFJLENBQUNDLEtBQUssQ0FBQ0osT0FBTyxDQUFDSyxLQUFLLENBQVcsQ0FBQztRQUM5QztNQUNELENBQUMsQ0FBQztJQUNIO0lBRUFuQixZQUFZLENBQUNRLE9BQU8sR0FBRyxJQUFJO0lBRTNCLE9BQU8sWUFBTTtNQUFBLElBQUFZLGlCQUFBO01BQ1pwQixZQUFZLENBQUNRLE9BQU8sR0FBRyxLQUFLO01BRTVCLENBQUFZLGlCQUFBLEdBQUFqQixnQkFBZ0IsY0FBQWlCLGlCQUFBLGVBQWhCQSxpQkFBQSxDQUFtQixDQUFDO0lBQ3JCLENBQUM7RUFDRixDQUFDLEVBQUUsQ0FBQ3hDLElBQUksQ0FBQyxDQUFDO0VBRVYsSUFBSXlDLGdCQUFnQixHQUFHekIsS0FBSztFQUU1QixJQUFJRSxRQUFRLENBQUNVLE9BQU8sS0FBS3RCLEtBQUssRUFBRTtJQUMvQlksUUFBUSxDQUFDVSxPQUFPLEdBQUd0QixLQUFLO0VBQ3pCO0VBRUEsSUFBTW9DLFdBQVcsR0FBRyxJQUFBQywrQkFBa0IsRUFBbUIsQ0FBQztFQUMxRCxJQUFNQyxRQUFRLEdBQUcsSUFBQUMsa0JBQVcsR0FBQXhDLHFCQUFBLEdBQzNCcUMsV0FBVyxhQUFYQSxXQUFXLHVCQUFYQSxXQUFXLENBQUVFLFFBQVEsY0FBQXZDLHFCQUFBLGNBQUFBLHFCQUFBLEdBQ25CLFVBQUN5QyxHQUFhLEVBQVc7SUFDekIsSUFBSXBDLE9BQU8sRUFBRTtNQUNaQyxNQUFNLENBQUNsQyxJQUFJLENBQUNxRSxHQUFHLENBQUM7TUFFaEI7SUFDRDtJQUVBcEMsT0FBTyxHQUFHLElBQUk7SUFFZCxJQUFJcUMsT0FBNkIsR0FBR0QsR0FBRztJQUN2QyxJQUFJRSxRQUFRLEdBQUcsS0FBSztJQUVwQixHQUFHO01BQ0YsSUFBSUMsYUFBYSxDQUFDRixPQUFPLENBQUMsRUFBRTtRQUMzQkMsUUFBUSxHQUFHLElBQUk7TUFDaEI7TUFFQSxJQUFJM0IsUUFBUSxDQUFDTyxPQUFPLEVBQUU7UUFDckJQLFFBQVEsQ0FBQ08sT0FBTyxDQUFDc0IsSUFBSSxDQUFDSCxPQUFPLENBQUMvQyxJQUFJLEVBQUFyQixhQUFBLENBQUFBLGFBQUEsS0FBTzhELGdCQUFnQixHQUFLN0IsWUFBWSxDQUFFLENBQUM7TUFDOUU7TUFFQW1DLE9BQU8sR0FBR3BDLE1BQU0sQ0FBQ3dDLEtBQUssQ0FBQyxDQUFDO0lBQ3pCLENBQUMsUUFBUUosT0FBTztJQUVoQnJDLE9BQU8sR0FBRyxLQUFLO0lBRWYsSUFBSVUsWUFBWSxDQUFDUSxPQUFPLElBQUlvQixRQUFRLEVBQUU7TUFDckMvQixRQUFRLENBQUMsVUFBQ21DLFNBQVMsRUFBSztRQUFBLElBQUFDLGdCQUFBO1FBQ3ZCLElBQU1DLFlBQVksR0FBQTNFLGFBQUEsQ0FBQUEsYUFBQSxLQUFReUUsU0FBUyxHQUFLeEMsWUFBWSxDQUFFO1FBRXRELENBQUF5QyxnQkFBQSxHQUFBN0IsY0FBUSxDQUFDK0IsTUFBTSxjQUFBRixnQkFBQSxlQUFmQSxnQkFBQSxDQUFpQkcsS0FBSyxDQUFDLGtCQUFrQixFQUFFeEQsSUFBSSxFQUFFc0QsWUFBWSxDQUFDOztRQUU5RDtRQUNBLE9BQU9BLFlBQVk7TUFDcEIsQ0FBQyxDQUFDO0lBQ0g7RUFDRCxDQUFDLEVBQ0YsRUFDRCxDQUFDO0VBRUQsSUFBSSxDQUFDYixnQkFBZ0IsRUFBRTtJQUFBLElBQUFnQixpQkFBQSxFQUFBQyxpQkFBQTtJQUN0QixJQUFBQyxLQUFBLEdBQXFDakIsV0FBVyxhQUFYQSxXQUFXLGVBQVhBLFdBQVcsQ0FBRTFCLEtBQUssR0FBRyxDQUFDMEIsV0FBVyxDQUFDMUIsS0FBSyxDQUFDLEdBQUdULElBQUksQ0FBQ0QsS0FBSyxDQUFDO01BQUFzRCxLQUFBLEdBQUE5RixRQUFBLENBQUE2RixLQUFBO01BQXBGRSxTQUFTLEdBQUFELEtBQUE7TUFBS0UsWUFBWSxHQUFBRixLQUFBLENBQUE5RCxLQUFBO0lBRWpDMkMsZ0JBQWdCLEdBQUdvQixTQUFTO0lBQzVCNUMsUUFBUSxDQUFDd0IsZ0JBQWdCLENBQUM7SUFFMUIsQ0FBQWdCLGlCQUFBLEdBQUFwQyxRQUFRLENBQUNPLE9BQU8sY0FBQTZCLGlCQUFBLGVBQWhCQSxpQkFBQSxDQUFrQmxELElBQUksQ0FBQ2tDLGdCQUFnQixDQUFDO0lBRXhDLENBQUFpQixpQkFBQSxHQUFBbEMsY0FBUSxDQUFDK0IsTUFBTSxjQUFBRyxpQkFBQSxlQUFmQSxpQkFBQSxDQUFpQkYsS0FBSyxDQUFDLG1CQUFtQixFQUFFeEQsSUFBSSxFQUFFeUMsZ0JBQWdCLENBQUM7SUFFbkVzQixlQUFPLENBQUFyRixLQUFBLFVBQUNrRSxRQUFRLEVBQUFvQixNQUFBLENBQUF2RyxrQkFBQSxDQUFLcUcsWUFBWSxHQUFDO0VBQ25DOztFQUVBO0VBQ0EsSUFBQXhDLGdCQUFTLEVBQUMsWUFBTTtJQUNmLElBQUliLFlBQVksRUFBRTtNQUNqQixJQUFNd0Qsa0JBQWtCLEdBQUd4RCxZQUFZLENBQUNnQyxnQkFBZ0IsRUFBRW5DLEtBQUssQ0FBQztNQUVoRSxJQUFJLElBQUE0RCxrQ0FBMkIsRUFBQ0Qsa0JBQWtCLENBQUMsRUFBRTtRQUNwRCxJQUFNRSxXQUFXLEdBQUdGLGtCQUFrQixDQUFDRyxHQUFHLENBQUMsVUFBQ0MsR0FBRztVQUFBLE9BQUtBLEdBQUcsQ0FBQ3pCLFFBQVEsQ0FBQztRQUFBLEVBQUMsQ0FBQ3RFLE1BQU0sQ0FBQyxVQUFDZ0csVUFBVTtVQUFBLE9BQUtBLFVBQVUsS0FBS0MsU0FBUztRQUFBLEVBQUM7UUFFbkgsT0FBTyxTQUFTQyxrQkFBa0JBLENBQUEsRUFBRztVQUFBLElBQUFDLFNBQUEsR0FBQXZJLDBCQUFBLENBQ1hpSSxXQUFXO1lBQUFPLEtBQUE7VUFBQTtZQUFwQyxLQUFBRCxTQUFBLENBQUEzSCxDQUFBLE1BQUE0SCxLQUFBLEdBQUFELFNBQUEsQ0FBQTFILENBQUEsSUFBQUMsSUFBQSxHQUFzQztjQUFBLElBQTNCc0gsV0FBVSxHQUFBSSxLQUFBLENBQUF6SCxLQUFBO2NBQ3BCcUgsV0FBVSxDQUFDLENBQUM7WUFDYjtVQUFDLFNBQUFLLEdBQUE7WUFBQUYsU0FBQSxDQUFBckksQ0FBQSxDQUFBdUksR0FBQTtVQUFBO1lBQUFGLFNBQUEsQ0FBQXZILENBQUE7VUFBQTtRQUNGLENBQUM7TUFDRjtNQUVBLElBQUEwSCxtQkFBQSxHQUFBakYsY0FBQSxDQUE2QnNFLGtCQUFrQjtRQUF4Q1ksTUFBTSxHQUFBRCxtQkFBQTtRQUFFTixVQUFVLEdBQUFNLG1CQUFBO01BRXpCLElBQUFiLGVBQU8sRUFBQ25CLFFBQVEsRUFBRWlDLE1BQU0sQ0FBQztNQUV6QixPQUFPUCxVQUFVO0lBQ2xCO0VBQ0QsQ0FBQyxFQUFFLEVBQUUsQ0FBQztFQUVOLE9BQU8sQ0FBQzdCLGdCQUFnQixFQUFFRyxRQUFRLENBQUM7RUFFbkMsU0FBU0ssYUFBYUEsQ0FBQ0YsT0FBaUIsRUFBVztJQUNsRCxJQUFJLENBQUNOLGdCQUFnQixFQUFFO01BQ3RCLE9BQU8sS0FBSztJQUNiO0lBRUEsSUFBSU8sUUFBUSxHQUFHLEtBQUs7SUFFcEIsSUFBQThCLGtCQUFVLEVBQUM5RSxJQUFJLEVBQUUrQyxPQUFPLENBQUM7SUFFekIsSUFBTU8sWUFBWSxHQUFBM0UsYUFBQSxDQUFBQSxhQUFBLEtBQVE4RCxnQkFBZ0IsR0FBSzdCLFlBQVksQ0FBRTtJQUU3RCxJQUFBbUUsWUFBQSxHQUE2QixJQUFBQyx5QkFBVyxFQUFtQixDQUFDO01BQUFDLGFBQUEsR0FBQXRGLGNBQUEsQ0FBQW9GLFlBQUE7TUFBckRHLEtBQUssR0FBQUQsYUFBQTtNQUFFRSxXQUFXLEdBQUFGLGFBQUE7SUFDekIsSUFBTUcsUUFBUSxHQUFHLElBQUFDLDhCQUFjLEVBQUN0QyxPQUFPLEVBQUVPLFlBQVksRUFBRXBDLFFBQVEsQ0FBQ1UsT0FBTyxFQUFFO01BQUVzRCxLQUFLLEVBQUxBO0lBQU0sQ0FBQyxDQUFDO0lBRW5GLElBQUFJLFdBQUEsR0FBZ0NDLFVBQVUsQ0FBQy9FLE1BQU0sRUFBRXVDLE9BQU8sRUFBRU8sWUFBWSxFQUFFcEMsUUFBUSxDQUFDVSxPQUFPLEVBQUU7UUFBRXNELEtBQUssRUFBTEEsS0FBSztRQUFFRSxRQUFRLEVBQVJBO01BQVMsQ0FBQyxDQUFDO01BQUFJLFlBQUEsR0FBQTFILFFBQUEsQ0FBQXdILFdBQUE7TUFBekdHLFFBQVEsR0FBQUQsWUFBQTtNQUFLRSxRQUFRLEdBQUFGLFlBQUEsQ0FBQTFGLEtBQUE7SUFFNUIsSUFBQTZGLFlBQUEsR0FBMENSLFdBQVcsQ0FBQyxDQUFDO01BQUFTLGFBQUEsR0FBQWpHLGNBQUEsQ0FBQWdHLFlBQUE7TUFBaERFLGFBQWEsR0FBQUQsYUFBQTtNQUFFRSxnQkFBZ0IsR0FBQUYsYUFBQTtJQUV0QyxJQUFJLElBQUFHLHVCQUFlLEVBQUNuRixZQUFZLEVBQUFqQyxhQUFBLENBQUFBLGFBQUEsS0FBT2tILGFBQWEsR0FBS0osUUFBUSxDQUFFLENBQUMsRUFBRTtNQUNyRTdFLFlBQVksR0FBQWpDLGFBQUEsQ0FBQUEsYUFBQSxDQUFBQSxhQUFBLEtBQVFpQyxZQUFZLEdBQUtpRixhQUFhLEdBQUtKLFFBQVEsQ0FBRTtNQUVqRXpDLFFBQVEsR0FBRyxJQUFJO0lBQ2hCO0lBRUFlLGVBQU8sQ0FBQXJGLEtBQUEsVUFBQ2tFLFFBQVEsRUFBQW9CLE1BQUEsQ0FBQXZHLGtCQUFBLENBQUtpSSxRQUFRLEdBQUFqSSxrQkFBQSxDQUFLcUksZ0JBQWdCLEdBQUM7SUFFbkQsT0FBTzlDLFFBQVE7RUFDaEI7QUFDRDtBQUVBLFNBQVN1QyxVQUFVQSxDQUNsQi9FLE1BQXNGLEVBQ3RGc0MsR0FBYSxFQUNiOUIsS0FBYSxFQUNiVixLQUFhLEVBQ2IwQixPQUF3RCxFQUNuQjtFQUNyQyxJQUFJLE9BQU94QixNQUFNLEtBQUssVUFBVSxFQUFFO0lBQ2pDLE9BQU9BLE1BQU0sQ0FBQ1EsS0FBSyxFQUFFOEIsR0FBRyxFQUFFeEMsS0FBSyxFQUFFMEIsT0FBTyxDQUFDO0VBQzFDO0VBRUEsT0FBT2dFLGFBQWEsQ0FBQ3hGLE1BQU0sRUFBRXNDLEdBQUcsRUFBRTlCLEtBQUssRUFBRVYsS0FBSyxFQUFFMEIsT0FBTyxDQUFDO0FBQ3pEO0FBRUEsU0FBU2dFLGFBQWFBLENBQ3JCQyxTQUE4QyxFQUM5Q25ELEdBQWEsRUFDYjlCLEtBQWEsRUFDYlYsS0FBYSxFQUNiMEIsT0FBd0QsRUFDbkI7RUFDckMsSUFBTWtFLE9BQXlCLEdBQUdwRCxHQUFHLENBQUM5QyxJQUFJO0VBRTFDLE9BQU9pRyxTQUFTLENBQUNDLE9BQU8sQ0FBQyxDQUFDcEQsR0FBRyxFQUFFOUIsS0FBSyxFQUFFVixLQUFLLEVBQUUwQixPQUFPLENBQUM7QUFDdEQiLCJpZ25vcmVMaXN0IjpbXX0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-elmish",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "10.0.0-beta.1",
|
|
4
4
|
"description": "Elmish for React using Typescript",
|
|
5
5
|
"author": "atheck",
|
|
6
6
|
"license": "MIT",
|
|
@@ -14,6 +14,9 @@
|
|
|
14
14
|
"update": "npx -y npm-check-updates -i --install never && npx -y npm-check-updates -i --target minor --install never && npx -y npm-check-updates -i --target patch --install never && npm update",
|
|
15
15
|
"semantic-release": "semantic-release"
|
|
16
16
|
},
|
|
17
|
+
"dependencies": {
|
|
18
|
+
"immer": "10.1.1"
|
|
19
|
+
},
|
|
17
20
|
"peerDependencies": {
|
|
18
21
|
"react": ">=16.8.0 <20"
|
|
19
22
|
},
|
|
@@ -53,6 +56,10 @@
|
|
|
53
56
|
"files": [
|
|
54
57
|
"dist/**/*"
|
|
55
58
|
],
|
|
56
|
-
"
|
|
59
|
+
"exports": {
|
|
60
|
+
".": "./dist/index.js",
|
|
61
|
+
"./immutable": "./dist/immutable/index.js",
|
|
62
|
+
"./testing": "./dist/Testing/index.js"
|
|
63
|
+
},
|
|
57
64
|
"types": "dist/index.d.ts"
|
|
58
65
|
}
|