react-elmish 4.2.0-beta.5 → 4.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc +1 -1
- package/.vscode/settings.json +3 -0
- package/README.md +89 -18
- package/dist/Cmd.d.ts +19 -18
- package/dist/Cmd.js +4 -4
- package/dist/ElmComponent.d.ts +10 -10
- package/dist/ElmComponent.js +8 -8
- package/dist/ErrorHandling.d.ts +1 -1
- package/dist/ErrorHandling.js +1 -1
- package/dist/Init.d.ts +17 -0
- package/dist/Init.js +7 -1
- package/dist/Testing/createUpdateArgsFactory.d.ts +16 -0
- package/dist/Testing/createUpdateArgsFactory.js +30 -0
- package/dist/Testing/execCmd.d.ts +9 -0
- package/dist/Testing/execCmd.js +88 -0
- package/dist/Testing/execCmd.spec.d.ts +1 -0
- package/dist/Testing/{fakeInitResult.d.ts → fakeOptions.d.ts} +15 -1
- package/dist/Testing/fakeOptions.js +26 -0
- package/dist/Testing/getOfMsgParams.d.ts +8 -0
- package/dist/Testing/getOfMsgParams.js +25 -0
- package/dist/Testing/getUpdateFn.d.ts +8 -0
- package/dist/Testing/getUpdateFn.js +20 -0
- package/dist/Testing/index.d.ts +6 -35
- package/dist/Testing/index.js +36 -154
- package/dist/Testing/renderWithModel.d.ts +13 -0
- package/dist/Testing/renderWithModel.js +32 -0
- package/dist/Testing/renderWithModel.spec.d.ts +1 -0
- package/dist/Types.d.ts +8 -5
- package/dist/Types.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +3 -3
- package/dist/useElmish.d.ts +31 -0
- package/dist/useElmish.js +4 -4
- package/package.json +8 -8
- package/dist/Testing/fakeInitResult.js +0 -19
package/.eslintrc
CHANGED
package/README.md
CHANGED
|
@@ -5,6 +5,35 @@
|
|
|
5
5
|
|
|
6
6
|
This library brings the elmish pattern to react.
|
|
7
7
|
|
|
8
|
+
- [Installation](#installation)
|
|
9
|
+
- [Basic Usage](#basic-usage)
|
|
10
|
+
- [More on messages](#more-on-messages)
|
|
11
|
+
- [Message arguments](#message-arguments)
|
|
12
|
+
- [Symbols instead of strings](#symbols-instead-of-strings)
|
|
13
|
+
- [Dispatch commands in the update map or update function](#dispatch-commands-in-the-update-map-or-update-function)
|
|
14
|
+
- [Dispatch a message](#dispatch-a-message)
|
|
15
|
+
- [Call an async function](#call-an-async-function)
|
|
16
|
+
- [Dispatch a command from `init`](#dispatch-a-command-from-init)
|
|
17
|
+
- [Subscriptions](#subscriptions)
|
|
18
|
+
- [Working with external sources of events](#working-with-external-sources-of-events)
|
|
19
|
+
- [Cleanup subscriptions](#cleanup-subscriptions)
|
|
20
|
+
- [Setup](#setup)
|
|
21
|
+
- [Error handling](#error-handling)
|
|
22
|
+
- [React life cycle management](#react-life-cycle-management)
|
|
23
|
+
- [Composition](#composition)
|
|
24
|
+
- [With an `UpdateMap`](#with-an-updatemap)
|
|
25
|
+
- [With an update function](#with-an-update-function)
|
|
26
|
+
- [Call back parent components](#call-back-parent-components)
|
|
27
|
+
- [Testing](#testing)
|
|
28
|
+
- [Testing the model and simple message commands](#testing-the-model-and-simple-message-commands)
|
|
29
|
+
- [Testing all (async) messages](#testing-all-async-messages)
|
|
30
|
+
- [Testing with an UpdateMap](#testing-with-an-updatemap)
|
|
31
|
+
- [UI Tests](#ui-tests)
|
|
32
|
+
- [Migrations](#migrations)
|
|
33
|
+
- [From v1.x to v2.x](#from-v1x-to-v2x)
|
|
34
|
+
- [From v2.x to v3.x](#from-v2x-to-v3x)
|
|
35
|
+
- [From v3.x to v4.x](#from-v3x-to-v4x)
|
|
36
|
+
|
|
8
37
|
## Installation
|
|
9
38
|
|
|
10
39
|
`npm install react-elmish`
|
|
@@ -13,14 +42,14 @@ This library brings the elmish pattern to react.
|
|
|
13
42
|
|
|
14
43
|
An elmish component basically consists of the following parts:
|
|
15
44
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
45
|
+
- The **Model** holding the state of the component.
|
|
46
|
+
- The **Props** for the component.
|
|
47
|
+
- The **Init** function to create the initial model based on the props.
|
|
48
|
+
- The **Messages** to dispatch which modify the model.
|
|
49
|
+
- The **Update** function to modify the model based on a specific message.
|
|
50
|
+
- The **View** which renders the component based on the current model.
|
|
22
51
|
|
|
23
|
-
|
|
52
|
+
**App.ts:**
|
|
24
53
|
|
|
25
54
|
First import everything from `react-elmish` and declare the **Message** discriminated union type:
|
|
26
55
|
|
|
@@ -101,7 +130,7 @@ export const update = (model: Model, msg: Msg, props: Props): UpdateReturnType<M
|
|
|
101
130
|
|
|
102
131
|
> **Note:** If you are using **typescript** and **typescript-eslint** you should enable the [switch-exhaustive-check](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/switch-exhaustiveness-check.md) rule.
|
|
103
132
|
|
|
104
|
-
|
|
133
|
+
**App.tsx:**
|
|
105
134
|
|
|
106
135
|
To put all this together and to render our component, we need a React component.
|
|
107
136
|
|
|
@@ -439,7 +468,7 @@ function subscription (model: Model): SubscriptionResult<Message> {
|
|
|
439
468
|
}
|
|
440
469
|
|
|
441
470
|
const destructor = () => {
|
|
442
|
-
clearInterval(
|
|
471
|
+
clearInterval(timer);
|
|
443
472
|
}
|
|
444
473
|
|
|
445
474
|
return [cmd.ofSub(sub), destructor];
|
|
@@ -522,7 +551,7 @@ You can handle errors easily with the following pattern.
|
|
|
522
551
|
};
|
|
523
552
|
```
|
|
524
553
|
|
|
525
|
-
|
|
554
|
+
You can also use the `errorHandler` helper function:
|
|
526
555
|
|
|
527
556
|
```ts
|
|
528
557
|
const updateMap = {
|
|
@@ -828,9 +857,7 @@ To inform the parent component about some action, let's say to close a dialog fo
|
|
|
828
857
|
```ts Dialog.ts
|
|
829
858
|
...
|
|
830
859
|
case "close":
|
|
831
|
-
props.onClose
|
|
832
|
-
|
|
833
|
-
return [{}];
|
|
860
|
+
return [{}, cmd.ofFunc.attempt(props.onClose, Msg.error)];
|
|
834
861
|
...
|
|
835
862
|
```
|
|
836
863
|
|
|
@@ -922,10 +949,54 @@ const update = getUpdateFn(updateMap);
|
|
|
922
949
|
const [model, cmd] = update(msg, model, props);
|
|
923
950
|
```
|
|
924
951
|
|
|
925
|
-
|
|
952
|
+
### UI Tests
|
|
953
|
+
|
|
954
|
+
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 or an options object, where you can also pass a fake `dispatch` function.
|
|
955
|
+
|
|
956
|
+
```tsx
|
|
957
|
+
import { renderWithModel } from "react-elmish/dist/Testing";
|
|
958
|
+
import { fireEvent, render, screen } from "@testing-library/react";
|
|
959
|
+
|
|
960
|
+
it("renders the correct value", () => {
|
|
961
|
+
// arrange
|
|
962
|
+
const model: Model = { value: "It works" };
|
|
963
|
+
|
|
964
|
+
// act
|
|
965
|
+
renderWithModel(() => render(<TestComponent />), model);
|
|
966
|
+
|
|
967
|
+
// assert
|
|
968
|
+
expect(screen.getByText("It works")).not.toBeNull();
|
|
969
|
+
});
|
|
970
|
+
|
|
971
|
+
it("dispatches the correct message", async () => {
|
|
972
|
+
// arrange
|
|
973
|
+
const model: Model = { value: "" };
|
|
974
|
+
const mockDispatch = jest.fn();
|
|
975
|
+
|
|
976
|
+
renderWithModel(
|
|
977
|
+
() => render(<TestComponent />),
|
|
978
|
+
{
|
|
979
|
+
model,
|
|
980
|
+
dispatch: mockDispatch
|
|
981
|
+
}
|
|
982
|
+
);
|
|
983
|
+
|
|
984
|
+
// act
|
|
985
|
+
fireEvent.click(screen.getByText("Click"));
|
|
986
|
+
|
|
987
|
+
// assert
|
|
988
|
+
expect(mockDispatch).toHaveBeenCalledWith({ name: "click" });
|
|
989
|
+
});
|
|
990
|
+
```
|
|
991
|
+
|
|
992
|
+
This works for function components using the `useElmish` hook and class components.
|
|
993
|
+
|
|
994
|
+
## Migrations
|
|
995
|
+
|
|
996
|
+
### From v1.x to v2.x
|
|
926
997
|
|
|
927
|
-
|
|
928
|
-
|
|
998
|
+
- Use `Logger` and `Message` instead of `ILogger` and `IMessage`.
|
|
999
|
+
- The global declaration of the `Nullable` type was removed, because it is unexpected for this library to declare such a type. You can declare this type for yourself if needed:
|
|
929
1000
|
|
|
930
1001
|
```ts
|
|
931
1002
|
declare global {
|
|
@@ -933,7 +1004,7 @@ const [model, cmd] = update(msg, model, props);
|
|
|
933
1004
|
}
|
|
934
1005
|
```
|
|
935
1006
|
|
|
936
|
-
|
|
1007
|
+
### From v2.x to v3.x
|
|
937
1008
|
|
|
938
1009
|
The signature of `useElmish` has changed. It takes an options object now. Thus there is no need for the `useElmishMap` function. Use the new `useElmish` hook with an `UpdateMap` instead.
|
|
939
1010
|
|
|
@@ -946,6 +1017,6 @@ import { useElmishMap } from "react-elmish/dist/legacy/useElmishMap";
|
|
|
946
1017
|
|
|
947
1018
|
**Notice**: These functions are marked as deprecated and will be removed in a later release.
|
|
948
1019
|
|
|
949
|
-
|
|
1020
|
+
### From v3.x to v4.x
|
|
950
1021
|
|
|
951
1022
|
Because the legacy `useElmish` and `useElmishMap` have been removed, you have to convert all usages of `useElmish` to use the parameter object.
|
package/dist/Cmd.d.ts
CHANGED
|
@@ -1,37 +1,38 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Type of the dispatch function.
|
|
3
3
|
*/
|
|
4
|
-
declare type Dispatch<
|
|
4
|
+
declare type Dispatch<TMessage> = (msg: TMessage) => void;
|
|
5
5
|
declare type FallbackHandler = (error?: Error) => void;
|
|
6
6
|
declare type Sub<TMsg> = (dispatch: Dispatch<TMsg>, fallback?: FallbackHandler) => void;
|
|
7
7
|
/**
|
|
8
8
|
* Type of a command.
|
|
9
9
|
*/
|
|
10
|
-
declare type Cmd<
|
|
10
|
+
declare type Cmd<TMessage> = Sub<TMessage>[];
|
|
11
11
|
/**
|
|
12
12
|
* Contains functions to create commands.
|
|
13
|
-
* @template
|
|
13
|
+
* @template TMessage Type of the Message discriminated union.
|
|
14
14
|
*/
|
|
15
|
-
interface Command<
|
|
15
|
+
interface Command<TMessage> {
|
|
16
16
|
/**
|
|
17
17
|
* Represents an empty command.
|
|
18
|
+
* @deprecated Do return nothing (`undefined`) instead.
|
|
18
19
|
*/
|
|
19
20
|
none: [];
|
|
20
21
|
/**
|
|
21
22
|
* Creates a command out of a specific message.
|
|
22
|
-
* @param {
|
|
23
|
+
* @param {TMessage} msg The specific message.
|
|
23
24
|
*/
|
|
24
|
-
ofMsg: (msg:
|
|
25
|
+
ofMsg: (msg: TMessage) => Cmd<TMessage>;
|
|
25
26
|
/**
|
|
26
27
|
* Aggregates multiple commands.
|
|
27
|
-
* @param {Cmd<
|
|
28
|
+
* @param {Cmd<TMessage> []} commands Array of commands.
|
|
28
29
|
*/
|
|
29
|
-
batch: (...commands: Cmd<
|
|
30
|
+
batch: (...commands: (Cmd<TMessage> | undefined | null)[]) => Cmd<TMessage>;
|
|
30
31
|
/**
|
|
31
32
|
* Command to call the subscriber.
|
|
32
|
-
* @param {Sub<
|
|
33
|
+
* @param {Sub<TMessage>} sub The subscriber function.
|
|
33
34
|
*/
|
|
34
|
-
ofSub: (sub: Sub<
|
|
35
|
+
ofSub: (sub: Sub<TMessage>) => Cmd<TMessage>;
|
|
35
36
|
/**
|
|
36
37
|
* Provides functionalities to create commands from simple functions.
|
|
37
38
|
*/
|
|
@@ -43,21 +44,21 @@ interface Command<TMsg> {
|
|
|
43
44
|
* @param ofError Creates the message to dispatch when an error occurred.
|
|
44
45
|
* @param args The parameters of the task.
|
|
45
46
|
*/
|
|
46
|
-
either: <TArgs extends unknown[], TReturn>(task: (...args: TArgs) => TReturn, ofSuccess: (result: TReturn) =>
|
|
47
|
+
either: <TArgs extends unknown[], TReturn>(task: (...args: TArgs) => TReturn, ofSuccess: (result: TReturn) => TMessage, ofError: (error: Error) => TMessage, ...args: TArgs) => Cmd<TMessage>;
|
|
47
48
|
/**
|
|
48
49
|
* Creates a command out of a simple function and ignores the error case.
|
|
49
50
|
* @param task The function to call.
|
|
50
51
|
* @param ofSuccess Creates the message to dispatch after a successful call of the task.
|
|
51
52
|
* @param args The parameters of the task.
|
|
52
53
|
*/
|
|
53
|
-
perform: <TArgs extends unknown[], TReturn>(task: (...args: TArgs) => TReturn, ofSuccess: (result: TReturn) =>
|
|
54
|
+
perform: <TArgs extends unknown[], TReturn>(task: (...args: TArgs) => TReturn, ofSuccess: (result: TReturn) => TMessage, ...args: TArgs) => Cmd<TMessage>;
|
|
54
55
|
/**
|
|
55
56
|
* Creates a command out of a simple function and ignores the success case.
|
|
56
57
|
* @param task The function to call.
|
|
57
58
|
* @param ofError Creates the message to dispatch when an error occurred.
|
|
58
59
|
* @param args The parameters of the task.
|
|
59
60
|
*/
|
|
60
|
-
attempt: <TArgs extends unknown[], TReturn>(task: (...args: TArgs) => TReturn, ofError: (error: Error) =>
|
|
61
|
+
attempt: <TArgs extends unknown[], TReturn>(task: (...args: TArgs) => TReturn, ofError: (error: Error) => TMessage, ...args: TArgs) => Cmd<TMessage>;
|
|
61
62
|
};
|
|
62
63
|
/**
|
|
63
64
|
* Provides functionalities to create commands from async functions.
|
|
@@ -70,27 +71,27 @@ interface Command<TMsg> {
|
|
|
70
71
|
* @param ofError Creates the message to dispatch when the promise is rejected.
|
|
71
72
|
* @param args The parameters of the task.
|
|
72
73
|
*/
|
|
73
|
-
either: <TArgs extends unknown[], TReturn>(task: (...args: TArgs) => Promise<TReturn>, ofSuccess: (result: TReturn) =>
|
|
74
|
+
either: <TArgs extends unknown[], TReturn>(task: (...args: TArgs) => Promise<TReturn>, ofSuccess: (result: TReturn) => TMessage, ofError: (error: Error) => TMessage, ...args: TArgs) => Cmd<TMessage>;
|
|
74
75
|
/**
|
|
75
76
|
* Creates a command out of an async function and ignores the error case.
|
|
76
77
|
* @param task The async function to call.
|
|
77
78
|
* @param ofSuccess Creates the message to dispatch when the promise is resolved.
|
|
78
79
|
* @param args The parameters of the task.
|
|
79
80
|
*/
|
|
80
|
-
perform: <TArgs extends unknown[], TReturn>(task: (...args: TArgs) => Promise<TReturn>, ofSuccess: (result: TReturn) =>
|
|
81
|
+
perform: <TArgs extends unknown[], TReturn>(task: (...args: TArgs) => Promise<TReturn>, ofSuccess: (result: TReturn) => TMessage, ...args: TArgs) => Cmd<TMessage>;
|
|
81
82
|
/**
|
|
82
83
|
* Creates a command out of an async function and ignores the success case.
|
|
83
84
|
* @param task The async function to call.
|
|
84
85
|
* @param ofError Creates the message to dispatch when the promise is rejected.
|
|
85
86
|
* @param args The parameters of the task.
|
|
86
87
|
*/
|
|
87
|
-
attempt: <TArgs extends unknown[], TReturn>(task: (...args: TArgs) => Promise<TReturn>, ofError: (error: Error) =>
|
|
88
|
+
attempt: <TArgs extends unknown[], TReturn>(task: (...args: TArgs) => Promise<TReturn>, ofError: (error: Error) => TMessage, ...args: TArgs) => Cmd<TMessage>;
|
|
88
89
|
};
|
|
89
90
|
}
|
|
90
91
|
/**
|
|
91
92
|
* Creates a typed instance of the Command class.
|
|
92
|
-
* @template
|
|
93
|
+
* @template TMessage The type of the Msg discriminated union.
|
|
93
94
|
*/
|
|
94
|
-
declare function createCmd<
|
|
95
|
+
declare function createCmd<TMessage>(): Command<TMessage>;
|
|
95
96
|
export type { Dispatch, Cmd, };
|
|
96
97
|
export { createCmd, };
|
package/dist/Cmd.js
CHANGED
|
@@ -15,12 +15,12 @@ exports.createCmd = createCmd;
|
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
17
|
* Contains functions to create commands.
|
|
18
|
-
* @template
|
|
18
|
+
* @template TMessage Type of the Message discriminated union.
|
|
19
19
|
*/
|
|
20
20
|
|
|
21
21
|
/**
|
|
22
22
|
* Creates a typed instance of the Command class.
|
|
23
|
-
* @template
|
|
23
|
+
* @template TMessage The type of the Msg discriminated union.
|
|
24
24
|
*/
|
|
25
25
|
function createCmd() {
|
|
26
26
|
return {
|
|
@@ -35,7 +35,7 @@ function createCmd() {
|
|
|
35
35
|
commands[_key] = arguments[_key];
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
return commands.flat();
|
|
38
|
+
return commands.filter(Boolean).flat();
|
|
39
39
|
},
|
|
40
40
|
ofSub: function ofSub(sub) {
|
|
41
41
|
return [sub];
|
|
@@ -150,4 +150,4 @@ function createCmd() {
|
|
|
150
150
|
}
|
|
151
151
|
};
|
|
152
152
|
}
|
|
153
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjcmVhdGVDbWQiLCJub25lIiwib2ZNc2ciLCJtc2ciLCJkaXNwYXRjaCIsImJhdGNoIiwiY29tbWFuZHMiLCJmbGF0Iiwib2ZTdWIiLCJzdWIiLCJvZkZ1bmMiLCJlaXRoZXIiLCJ0YXNrIiwib2ZTdWNjZXNzIiwib2ZFcnJvciIsImFyZ3MiLCJiaW5kIiwicmVzdWx0IiwiZXgiLCJwZXJmb3JtIiwiZmFsbGJhY2siLCJhdHRlbXB0Iiwib2ZQcm9taXNlIiwidGhlbiIsImRlZmF1bHRGYWxsYmFja0hhbmRsZXIiXSwic291cmNlcyI6WyIuLi9zcmMvQ21kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVHlwZSBvZiB0aGUgZGlzcGF0Y2ggZnVuY3Rpb24uXG4gKi9cbnR5cGUgRGlzcGF0Y2g8VE1zZz4gPSAobXNnOiBUTXNnKSA9PiB2b2lkO1xuXG50eXBlIEZhbGxiYWNrSGFuZGxlciA9IChlcnJvcj86IEVycm9yKSA9PiB2b2lkO1xudHlwZSBTdWI8VE1zZz4gPSAoZGlzcGF0Y2g6IERpc3BhdGNoPFRNc2c+LCBmYWxsYmFjaz86IEZhbGxiYWNrSGFuZGxlcikgPT4gdm9pZDtcblxuLyoqXG4gKiBUeXBlIG9mIGEgY29tbWFuZC5cbiAqL1xudHlwZSBDbWQ8VE1zZz4gPSBTdWI8VE1zZz4gW107XG5cbi8qKlxuICogQ29udGFpbnMgZnVuY3Rpb25zIHRvIGNyZWF0ZSBjb21tYW5kcy5cbiAqIEB0ZW1wbGF0ZSBUTXNnIFR5cGUgb2YgdGhlIE1lc3NhZ2UgZGlzY3JpbWluYXRlZCB1bmlvbi5cbiAqL1xuaW50ZXJmYWNlIENvbW1hbmQ8VE1zZz4ge1xuICAgIC8qKlxuICAgICAqIFJlcHJlc2VudHMgYW4gZW1wdHkgY29tbWFuZC5cbiAgICAgKi9cbiAgICBub25lOiBbXSxcbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgY29tbWFuZCBvdXQgb2YgYSBzcGVjaWZpYyBtZXNzYWdlLlxuICAgICAqIEBwYXJhbSB7VE1zZ30gbXNnIFRoZSBzcGVjaWZpYyBtZXNzYWdlLlxuICAgICAqL1xuICAgIG9mTXNnOiAobXNnOiBUTXNnKSA9PiBDbWQ8VE1zZz4sXG4gICAgLyoqXG4gICAgICogQWdncmVnYXRlcyBtdWx0aXBsZSBjb21tYW5kcy5cbiAgICAgKiBAcGFyYW0ge0NtZDxUTXNnPiBbXX0gY29tbWFuZHMgQXJyYXkgb2YgY29tbWFuZHMuXG4gICAgICovXG4gICAgYmF0Y2g6ICguLi5jb21tYW5kczogQ21kPFRNc2c+IFtdKSA9PiBDbWQ8VE1zZz4sXG4gICAgLyoqXG4gICAgICogQ29tbWFuZCB0byBjYWxsIHRoZSBzdWJzY3JpYmVyLlxuICAgICAqIEBwYXJhbSB7U3ViPFRNc2c+fSBzdWIgVGhlIHN1YnNjcmliZXIgZnVuY3Rpb24uXG4gICAgICovXG4gICAgb2ZTdWI6IChzdWI6IFN1YjxUTXNnPikgPT4gQ21kPFRNc2c+LFxuICAgIC8qKlxuICAgICAqIFByb3ZpZGVzIGZ1bmN0aW9uYWxpdGllcyB0byBjcmVhdGUgY29tbWFuZHMgZnJvbSBzaW1wbGUgZnVuY3Rpb25zLlxuICAgICAqL1xuICAgIG9mRnVuYzoge1xuICAgICAgICAvKipcbiAgICAgICAgKiBDcmVhdGVzIGEgY29tbWFuZCBvdXQgb2YgYSBzaW1wbGUgZnVuY3Rpb24gYW5kIG1hcHMgdGhlIHJlc3VsdC5cbiAgICAgICAgKiBAcGFyYW0gdGFzayBUaGUgZnVuY3Rpb24gdG8gY2FsbC5cbiAgICAgICAgKiBAcGFyYW0gb2ZTdWNjZXNzIENyZWF0ZXMgdGhlIG1lc3NhZ2UgdG8gZGlzcGF0Y2ggYWZ0ZXIgYSBzdWNjZXNzZnVsIGNhbGwgb2YgdGhlIHRhc2suXG4gICAgICAgICogQHBhcmFtIG9mRXJyb3IgQ3JlYXRlcyB0aGUgbWVzc2FnZSB0byBkaXNwYXRjaCB3aGVuIGFuIGVycm9yIG9jY3VycmVkLlxuICAgICAgICAqIEBwYXJhbSBhcmdzIFRoZSBwYXJhbWV0ZXJzIG9mIHRoZSB0YXNrLlxuICAgICAgICAqL1xuICAgICAgICBlaXRoZXI6IDxUQXJncyBleHRlbmRzIHVua25vd24gW10sIFRSZXR1cm4+KHRhc2s6ICguLi5hcmdzOiBUQXJncykgPT4gVFJldHVybiwgb2ZTdWNjZXNzOiAocmVzdWx0OiBUUmV0dXJuKSA9PiBUTXNnLCBvZkVycm9yOiAoZXJyb3I6IEVycm9yKSA9PiBUTXNnLCAuLi5hcmdzOiBUQXJncykgPT4gQ21kPFRNc2c+LFxuICAgICAgICAvKipcbiAgICAgICAgKiBDcmVhdGVzIGEgY29tbWFuZCBvdXQgb2YgYSBzaW1wbGUgZnVuY3Rpb24gYW5kIGlnbm9yZXMgdGhlIGVycm9yIGNhc2UuXG4gICAgICAgICogQHBhcmFtIHRhc2sgVGhlIGZ1bmN0aW9uIHRvIGNhbGwuXG4gICAgICAgICogQHBhcmFtIG9mU3VjY2VzcyBDcmVhdGVzIHRoZSBtZXNzYWdlIHRvIGRpc3BhdGNoIGFmdGVyIGEgc3VjY2Vzc2Z1bCBjYWxsIG9mIHRoZSB0YXNrLlxuICAgICAgICAqIEBwYXJhbSBhcmdzIFRoZSBwYXJhbWV0ZXJzIG9mIHRoZSB0YXNrLlxuICAgICAgICAqL1xuICAgICAgICBwZXJmb3JtOiA8VEFyZ3MgZXh0ZW5kcyB1bmtub3duIFtdLCBUUmV0dXJuPih0YXNrOiAoLi4uYXJnczogVEFyZ3MpID0+IFRSZXR1cm4sIG9mU3VjY2VzczogKHJlc3VsdDogVFJldHVybikgPT4gVE1zZywgLi4uYXJnczogVEFyZ3MpID0+IENtZDxUTXNnPixcbiAgICAgICAgLyoqXG4gICAgICAgICogQ3JlYXRlcyBhIGNvbW1hbmQgb3V0IG9mIGEgc2ltcGxlIGZ1bmN0aW9uIGFuZCBpZ25vcmVzIHRoZSBzdWNjZXNzIGNhc2UuXG4gICAgICAgICogQHBhcmFtIHRhc2sgVGhlIGZ1bmN0aW9uIHRvIGNhbGwuXG4gICAgICAgICogQHBhcmFtIG9mRXJyb3IgQ3JlYXRlcyB0aGUgbWVzc2FnZSB0byBkaXNwYXRjaCB3aGVuIGFuIGVycm9yIG9jY3VycmVkLlxuICAgICAgICAqIEBwYXJhbSBhcmdzIFRoZSBwYXJhbWV0ZXJzIG9mIHRoZSB0YXNrLlxuICAgICAgICAqL1xuICAgICAgICBhdHRlbXB0OiA8VEFyZ3MgZXh0ZW5kcyB1bmtub3duIFtdLCBUUmV0dXJuPih0YXNrOiAoLi4uYXJnczogVEFyZ3MpID0+IFRSZXR1cm4sIG9mRXJyb3I6IChlcnJvcjogRXJyb3IpID0+IFRNc2csIC4uLmFyZ3M6IFRBcmdzKSA9PiBDbWQ8VE1zZz4sXG4gICAgfSxcbiAgICAvKipcbiAgICAgKiBQcm92aWRlcyBmdW5jdGlvbmFsaXRpZXMgdG8gY3JlYXRlIGNvbW1hbmRzIGZyb20gYXN5bmMgZnVuY3Rpb25zLlxuICAgICAqL1xuICAgIG9mUHJvbWlzZToge1xuICAgICAgICAvKipcbiAgICAgICAgKiBDcmVhdGVzIGEgY29tbWFuZCBvdXQgb2YgYW4gYXN5bmMgZnVuY3Rpb24gYW5kIG1hcHMgdGhlIHJlc3VsdC5cbiAgICAgICAgKiBAcGFyYW0gdGFzayBUaGUgYXN5bmMgZnVuY3Rpb24gdG8gY2FsbC5cbiAgICAgICAgKiBAcGFyYW0gb2ZTdWNjZXNzIENyZWF0ZXMgdGhlIG1lc3NhZ2UgdG8gZGlzcGF0Y2ggd2hlbiB0aGUgcHJvbWlzZSBpcyByZXNvbHZlZC5cbiAgICAgICAgKiBAcGFyYW0gb2ZFcnJvciBDcmVhdGVzIHRoZSBtZXNzYWdlIHRvIGRpc3BhdGNoIHdoZW4gdGhlIHByb21pc2UgaXMgcmVqZWN0ZWQuXG4gICAgICAgICogQHBhcmFtIGFyZ3MgVGhlIHBhcmFtZXRlcnMgb2YgdGhlIHRhc2suXG4gICAgICAgICovXG4gICAgICAgIGVpdGhlcjogPFRBcmdzIGV4dGVuZHMgdW5rbm93biBbXSwgVFJldHVybj4odGFzazogKC4uLmFyZ3M6IFRBcmdzKSA9PiBQcm9taXNlPFRSZXR1cm4+LCBvZlN1Y2Nlc3M6IChyZXN1bHQ6IFRSZXR1cm4pID0+IFRNc2csIG9mRXJyb3I6IChlcnJvcjogRXJyb3IpID0+IFRNc2csIC4uLmFyZ3M6IFRBcmdzKSA9PiBDbWQ8VE1zZz4sXG4gICAgICAgIC8qKlxuICAgICAgICAqIENyZWF0ZXMgYSBjb21tYW5kIG91dCBvZiBhbiBhc3luYyBmdW5jdGlvbiBhbmQgaWdub3JlcyB0aGUgZXJyb3IgY2FzZS5cbiAgICAgICAgKiBAcGFyYW0gdGFzayBUaGUgYXN5bmMgZnVuY3Rpb24gdG8gY2FsbC5cbiAgICAgICAgKiBAcGFyYW0gb2ZTdWNjZXNzIENyZWF0ZXMgdGhlIG1lc3NhZ2UgdG8gZGlzcGF0Y2ggd2hlbiB0aGUgcHJvbWlzZSBpcyByZXNvbHZlZC5cbiAgICAgICAgKiBAcGFyYW0gYXJncyBUaGUgcGFyYW1ldGVycyBvZiB0aGUgdGFzay5cbiAgICAgICAgKi9cbiAgICAgICAgcGVyZm9ybTogPFRBcmdzIGV4dGVuZHMgdW5rbm93biBbXSwgVFJldHVybj4odGFzazogKC4uLmFyZ3M6IFRBcmdzKSA9PiBQcm9taXNlPFRSZXR1cm4+LCBvZlN1Y2Nlc3M6IChyZXN1bHQ6IFRSZXR1cm4pID0+IFRNc2csIC4uLmFyZ3M6IFRBcmdzKSA9PiBDbWQ8VE1zZz4sXG4gICAgICAgIC8qKlxuICAgICAgICAqIENyZWF0ZXMgYSBjb21tYW5kIG91dCBvZiBhbiBhc3luYyBmdW5jdGlvbiBhbmQgaWdub3JlcyB0aGUgc3VjY2VzcyBjYXNlLlxuICAgICAgICAqIEBwYXJhbSB0YXNrIFRoZSBhc3luYyBmdW5jdGlvbiB0byBjYWxsLlxuICAgICAgICAqIEBwYXJhbSBvZkVycm9yIENyZWF0ZXMgdGhlIG1lc3NhZ2UgdG8gZGlzcGF0Y2ggd2hlbiB0aGUgcHJvbWlzZSBpcyByZWplY3RlZC5cbiAgICAgICAgKiBAcGFyYW0gYXJncyBUaGUgcGFyYW1ldGVycyBvZiB0aGUgdGFzay5cbiAgICAgICAgKi9cbiAgICAgICAgYXR0ZW1wdDogPFRBcmdzIGV4dGVuZHMgdW5rbm93biBbXSwgVFJldHVybj4odGFzazogKC4uLmFyZ3M6IFRBcmdzKSA9PiBQcm9taXNlPFRSZXR1cm4+LCBvZkVycm9yOiAoZXJyb3I6IEVycm9yKSA9PiBUTXNnLCAuLi5hcmdzOiBUQXJncykgPT4gQ21kPFRNc2c+LFxuICAgIH0sXG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIHR5cGVkIGluc3RhbmNlIG9mIHRoZSBDb21tYW5kIGNsYXNzLlxuICogQHRlbXBsYXRlIFRNc2cgVGhlIHR5cGUgb2YgdGhlIE1zZyBkaXNjcmltaW5hdGVkIHVuaW9uLlxuICovXG5mdW5jdGlvbiBjcmVhdGVDbWQ8VE1zZz4gKCk6IENvbW1hbmQ8VE1zZz4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIG5vbmU6IFtdLFxuICAgICAgICBvZk1zZyAobXNnOiBUTXNnKTogQ21kPFRNc2c+IHtcbiAgICAgICAgICAgIHJldHVybiBbZGlzcGF0Y2ggPT4gZGlzcGF0Y2gobXNnKV07XG4gICAgICAgIH0sXG4gICAgICAgIGJhdGNoICguLi5jb21tYW5kczogQ21kPFRNc2c+IFtdKTogQ21kPFRNc2c+IHtcbiAgICAgICAgICAgIHJldHVybiBjb21tYW5kcy5mbGF0KCk7XG4gICAgICAgIH0sXG4gICAgICAgIG9mU3ViIChzdWI6IFN1YjxUTXNnPik6IENtZDxUTXNnPiB7XG4gICAgICAgICAgICByZXR1cm4gW3N1Yl07XG4gICAgICAgIH0sXG4gICAgICAgIG9mRnVuYzoge1xuICAgICAgICAgICAgZWl0aGVyPFRBcmdzIGV4dGVuZHMgdW5rbm93biBbXSwgVFJldHVybj4odGFzazogKC4uLmFyZ3M6IFRBcmdzKSA9PiBUUmV0dXJuLCBvZlN1Y2Nlc3M6IChyZXN1bHQ6IFRSZXR1cm4pID0+IFRNc2csIG9mRXJyb3I6IChlcnJvcjogRXJyb3IpID0+IFRNc2csIC4uLmFyZ3M6IFRBcmdzKTogQ21kPFRNc2c+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBiaW5kID0gKGRpc3BhdGNoOiBEaXNwYXRjaDxUTXNnPik6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gdGFzayguLi5hcmdzKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2gob2ZTdWNjZXNzKHJlc3VsdCkpO1xuICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChleDogdW5rbm93bikge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2gob2ZFcnJvcihleCBhcyBFcnJvcikpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBbYmluZF07XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcGVyZm9ybTxUQXJncyBleHRlbmRzIHVua25vd24gW10sIFRSZXR1cm4+KHRhc2s6ICguLi5hcmdzOiBUQXJncykgPT4gVFJldHVybiwgb2ZTdWNjZXNzOiAocmVzdWx0OiBUUmV0dXJuKSA9PiBUTXNnLCAuLi5hcmdzOiBUQXJncyk6IENtZDxUTXNnPiB7XG4gICAgICAgICAgICAgICAgY29uc3QgYmluZCA9IChkaXNwYXRjaDogRGlzcGF0Y2g8VE1zZz4sIGZhbGxiYWNrPzogRmFsbGJhY2tIYW5kbGVyKTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSB0YXNrKC4uLmFyZ3MpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaChvZlN1Y2Nlc3MocmVzdWx0KSk7XG4gICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGV4OiB1bmtub3duKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmFsbGJhY2spIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxsYmFjayhleCBhcyBFcnJvcik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIFtiaW5kXTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBhdHRlbXB0PFRBcmdzIGV4dGVuZHMgdW5rbm93biBbXSwgVFJldHVybj4odGFzazogKC4uLmFyZ3M6IFRBcmdzKSA9PiBUUmV0dXJuLCBvZkVycm9yOiAoZXJyb3I6IEVycm9yKSA9PiBUTXNnLCAuLi5hcmdzOiBUQXJncyk6IENtZDxUTXNnPiB7XG4gICAgICAgICAgICAgICAgY29uc3QgYmluZCA9IChkaXNwYXRjaDogRGlzcGF0Y2g8VE1zZz4sIGZhbGxiYWNrPzogRmFsbGJhY2tIYW5kbGVyKTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0YXNrKC4uLmFyZ3MpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmFsbGJhY2spIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxsYmFjaygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChleDogdW5rbm93bikge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2gob2ZFcnJvcihleCBhcyBFcnJvcikpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBbYmluZF07XG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBvZlByb21pc2U6IHtcbiAgICAgICAgICAgIGVpdGhlcjxUQXJncyBleHRlbmRzIHVua25vd24gW10sIFRSZXR1cm4+KHRhc2s6ICguLi5hcmdzOiBUQXJncykgPT4gUHJvbWlzZTxUUmV0dXJuPiwgb2ZTdWNjZXNzOiAocmVzdWx0OiBUUmV0dXJuKSA9PiBUTXNnLCBvZkVycm9yOiAoZXJyb3I6IEVycm9yKSA9PiBUTXNnLCAuLi5hcmdzOiBUQXJncyk6IENtZDxUTXNnPiB7XG4gICAgICAgICAgICAgICAgY29uc3QgYmluZCA9IChkaXNwYXRjaDogRGlzcGF0Y2g8VE1zZz4pOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGFzayguLi5hcmdzKS50aGVuKHJlc3VsdCA9PiBkaXNwYXRjaChvZlN1Y2Nlc3MocmVzdWx0KSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKGV4OiBFcnJvcikgPT4gZGlzcGF0Y2gob2ZFcnJvcihleCkpKTtcbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIFtiaW5kXTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwZXJmb3JtPFRBcmdzIGV4dGVuZHMgdW5rbm93biBbXSwgVFJldHVybj4odGFzazogKC4uLmFyZ3M6IFRBcmdzKSA9PiBQcm9taXNlPFRSZXR1cm4+LCBvZlN1Y2Nlc3M6IChyZXN1bHQ6IFRSZXR1cm4pID0+IFRNc2csIC4uLmFyZ3M6IFRBcmdzKTogQ21kPFRNc2c+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBkZWZhdWx0RmFsbGJhY2tIYW5kbGVyID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAvLyBibGFua1xuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICBjb25zdCBiaW5kID0gKGRpc3BhdGNoOiBEaXNwYXRjaDxUTXNnPiwgZmFsbGJhY2s6IEZhbGxiYWNrSGFuZGxlciA9IGRlZmF1bHRGYWxsYmFja0hhbmRsZXIpOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGFzayguLi5hcmdzKS50aGVuKHJlc3VsdCA9PiBkaXNwYXRjaChvZlN1Y2Nlc3MocmVzdWx0KSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAuY2F0Y2goZmFsbGJhY2spO1xuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gW2JpbmRdO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGF0dGVtcHQ8VEFyZ3MgZXh0ZW5kcyB1bmtub3duIFtdLCBUUmV0dXJuPih0YXNrOiAoLi4uYXJnczogVEFyZ3MpID0+IFByb21pc2U8VFJldHVybj4sIG9mRXJyb3I6IChlcnJvcjogRXJyb3IpID0+IFRNc2csIC4uLmFyZ3M6IFRBcmdzKTogQ21kPFRNc2c+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBiaW5kID0gKGRpc3BhdGNoOiBEaXNwYXRjaDxUTXNnPiwgZmFsbGJhY2s/OiBGYWxsYmFja0hhbmRsZXIpOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGFzayguLi5hcmdzKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmYWxsYmFjaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbGxiYWNrKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKGV4OiBFcnJvcikgPT4gZGlzcGF0Y2gob2ZFcnJvcihleCkpKTtcbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIFtiaW5kXTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgfTtcbn1cblxuZXhwb3J0IHR5cGUge1xuICAgIERpc3BhdGNoLFxuICAgIENtZCxcbn07XG5cbmV4cG9ydCB7XG4gICAgY3JlYXRlQ21kLFxufTsiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7O0FBTUE7QUFDQTtBQUNBOztBQUdBO0FBQ0E7QUFDQTtBQUNBOztBQTZFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLFNBQVQsR0FBMkM7RUFDdkMsT0FBTztJQUNIQyxJQUFJLEVBQUUsRUFESDtJQUVIQyxLQUZHLGlCQUVJQyxHQUZKLEVBRTBCO01BQ3pCLE9BQU8sQ0FBQyxVQUFBQyxRQUFRO1FBQUEsT0FBSUEsUUFBUSxDQUFDRCxHQUFELENBQVo7TUFBQSxDQUFULENBQVA7SUFDSCxDQUpFO0lBS0hFLEtBTEcsbUJBSzBDO01BQUEsa0NBQW5DQyxRQUFtQztRQUFuQ0EsUUFBbUM7TUFBQTs7TUFDekMsT0FBT0EsUUFBUSxDQUFDQyxJQUFU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
|
|
153
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjcmVhdGVDbWQiLCJub25lIiwib2ZNc2ciLCJtc2ciLCJkaXNwYXRjaCIsImJhdGNoIiwiY29tbWFuZHMiLCJmaWx0ZXIiLCJCb29sZWFuIiwiZmxhdCIsIm9mU3ViIiwic3ViIiwib2ZGdW5jIiwiZWl0aGVyIiwidGFzayIsIm9mU3VjY2VzcyIsIm9mRXJyb3IiLCJhcmdzIiwiYmluZCIsInJlc3VsdCIsImV4IiwicGVyZm9ybSIsImZhbGxiYWNrIiwiYXR0ZW1wdCIsIm9mUHJvbWlzZSIsInRoZW4iLCJkZWZhdWx0RmFsbGJhY2tIYW5kbGVyIl0sInNvdXJjZXMiOlsiLi4vc3JjL0NtZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFR5cGUgb2YgdGhlIGRpc3BhdGNoIGZ1bmN0aW9uLlxuICovXG50eXBlIERpc3BhdGNoPFRNZXNzYWdlPiA9IChtc2c6IFRNZXNzYWdlKSA9PiB2b2lkO1xuXG50eXBlIEZhbGxiYWNrSGFuZGxlciA9IChlcnJvcj86IEVycm9yKSA9PiB2b2lkO1xudHlwZSBTdWI8VE1zZz4gPSAoZGlzcGF0Y2g6IERpc3BhdGNoPFRNc2c+LCBmYWxsYmFjaz86IEZhbGxiYWNrSGFuZGxlcikgPT4gdm9pZDtcblxuLyoqXG4gKiBUeXBlIG9mIGEgY29tbWFuZC5cbiAqL1xudHlwZSBDbWQ8VE1lc3NhZ2U+ID0gU3ViPFRNZXNzYWdlPiBbXTtcblxuLyoqXG4gKiBDb250YWlucyBmdW5jdGlvbnMgdG8gY3JlYXRlIGNvbW1hbmRzLlxuICogQHRlbXBsYXRlIFRNZXNzYWdlIFR5cGUgb2YgdGhlIE1lc3NhZ2UgZGlzY3JpbWluYXRlZCB1bmlvbi5cbiAqL1xuaW50ZXJmYWNlIENvbW1hbmQ8VE1lc3NhZ2U+IHtcbiAgICAvKipcbiAgICAgKiBSZXByZXNlbnRzIGFuIGVtcHR5IGNvbW1hbmQuXG4gICAgICogQGRlcHJlY2F0ZWQgRG8gcmV0dXJuIG5vdGhpbmcgKGB1bmRlZmluZWRgKSBpbnN0ZWFkLlxuICAgICAqL1xuICAgIG5vbmU6IFtdLFxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBjb21tYW5kIG91dCBvZiBhIHNwZWNpZmljIG1lc3NhZ2UuXG4gICAgICogQHBhcmFtIHtUTWVzc2FnZX0gbXNnIFRoZSBzcGVjaWZpYyBtZXNzYWdlLlxuICAgICAqL1xuICAgIG9mTXNnOiAobXNnOiBUTWVzc2FnZSkgPT4gQ21kPFRNZXNzYWdlPixcbiAgICAvKipcbiAgICAgKiBBZ2dyZWdhdGVzIG11bHRpcGxlIGNvbW1hbmRzLlxuICAgICAqIEBwYXJhbSB7Q21kPFRNZXNzYWdlPiBbXX0gY29tbWFuZHMgQXJyYXkgb2YgY29tbWFuZHMuXG4gICAgICovXG4gICAgYmF0Y2g6ICguLi5jb21tYW5kczogKENtZDxUTWVzc2FnZT4gfCB1bmRlZmluZWQgfCBudWxsKSBbXSkgPT4gQ21kPFRNZXNzYWdlPixcbiAgICAvKipcbiAgICAgKiBDb21tYW5kIHRvIGNhbGwgdGhlIHN1YnNjcmliZXIuXG4gICAgICogQHBhcmFtIHtTdWI8VE1lc3NhZ2U+fSBzdWIgVGhlIHN1YnNjcmliZXIgZnVuY3Rpb24uXG4gICAgICovXG4gICAgb2ZTdWI6IChzdWI6IFN1YjxUTWVzc2FnZT4pID0+IENtZDxUTWVzc2FnZT4sXG4gICAgLyoqXG4gICAgICogUHJvdmlkZXMgZnVuY3Rpb25hbGl0aWVzIHRvIGNyZWF0ZSBjb21tYW5kcyBmcm9tIHNpbXBsZSBmdW5jdGlvbnMuXG4gICAgICovXG4gICAgb2ZGdW5jOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAqIENyZWF0ZXMgYSBjb21tYW5kIG91dCBvZiBhIHNpbXBsZSBmdW5jdGlvbiBhbmQgbWFwcyB0aGUgcmVzdWx0LlxuICAgICAgICAqIEBwYXJhbSB0YXNrIFRoZSBmdW5jdGlvbiB0byBjYWxsLlxuICAgICAgICAqIEBwYXJhbSBvZlN1Y2Nlc3MgQ3JlYXRlcyB0aGUgbWVzc2FnZSB0byBkaXNwYXRjaCBhZnRlciBhIHN1Y2Nlc3NmdWwgY2FsbCBvZiB0aGUgdGFzay5cbiAgICAgICAgKiBAcGFyYW0gb2ZFcnJvciBDcmVhdGVzIHRoZSBtZXNzYWdlIHRvIGRpc3BhdGNoIHdoZW4gYW4gZXJyb3Igb2NjdXJyZWQuXG4gICAgICAgICogQHBhcmFtIGFyZ3MgVGhlIHBhcmFtZXRlcnMgb2YgdGhlIHRhc2suXG4gICAgICAgICovXG4gICAgICAgIGVpdGhlcjogPFRBcmdzIGV4dGVuZHMgdW5rbm93biBbXSwgVFJldHVybj4odGFzazogKC4uLmFyZ3M6IFRBcmdzKSA9PiBUUmV0dXJuLCBvZlN1Y2Nlc3M6IChyZXN1bHQ6IFRSZXR1cm4pID0+IFRNZXNzYWdlLCBvZkVycm9yOiAoZXJyb3I6IEVycm9yKSA9PiBUTWVzc2FnZSwgLi4uYXJnczogVEFyZ3MpID0+IENtZDxUTWVzc2FnZT4sXG4gICAgICAgIC8qKlxuICAgICAgICAqIENyZWF0ZXMgYSBjb21tYW5kIG91dCBvZiBhIHNpbXBsZSBmdW5jdGlvbiBhbmQgaWdub3JlcyB0aGUgZXJyb3IgY2FzZS5cbiAgICAgICAgKiBAcGFyYW0gdGFzayBUaGUgZnVuY3Rpb24gdG8gY2FsbC5cbiAgICAgICAgKiBAcGFyYW0gb2ZTdWNjZXNzIENyZWF0ZXMgdGhlIG1lc3NhZ2UgdG8gZGlzcGF0Y2ggYWZ0ZXIgYSBzdWNjZXNzZnVsIGNhbGwgb2YgdGhlIHRhc2suXG4gICAgICAgICogQHBhcmFtIGFyZ3MgVGhlIHBhcmFtZXRlcnMgb2YgdGhlIHRhc2suXG4gICAgICAgICovXG4gICAgICAgIHBlcmZvcm06IDxUQXJncyBleHRlbmRzIHVua25vd24gW10sIFRSZXR1cm4+KHRhc2s6ICguLi5hcmdzOiBUQXJncykgPT4gVFJldHVybiwgb2ZTdWNjZXNzOiAocmVzdWx0OiBUUmV0dXJuKSA9PiBUTWVzc2FnZSwgLi4uYXJnczogVEFyZ3MpID0+IENtZDxUTWVzc2FnZT4sXG4gICAgICAgIC8qKlxuICAgICAgICAqIENyZWF0ZXMgYSBjb21tYW5kIG91dCBvZiBhIHNpbXBsZSBmdW5jdGlvbiBhbmQgaWdub3JlcyB0aGUgc3VjY2VzcyBjYXNlLlxuICAgICAgICAqIEBwYXJhbSB0YXNrIFRoZSBmdW5jdGlvbiB0byBjYWxsLlxuICAgICAgICAqIEBwYXJhbSBvZkVycm9yIENyZWF0ZXMgdGhlIG1lc3NhZ2UgdG8gZGlzcGF0Y2ggd2hlbiBhbiBlcnJvciBvY2N1cnJlZC5cbiAgICAgICAgKiBAcGFyYW0gYXJncyBUaGUgcGFyYW1ldGVycyBvZiB0aGUgdGFzay5cbiAgICAgICAgKi9cbiAgICAgICAgYXR0ZW1wdDogPFRBcmdzIGV4dGVuZHMgdW5rbm93biBbXSwgVFJldHVybj4odGFzazogKC4uLmFyZ3M6IFRBcmdzKSA9PiBUUmV0dXJuLCBvZkVycm9yOiAoZXJyb3I6IEVycm9yKSA9PiBUTWVzc2FnZSwgLi4uYXJnczogVEFyZ3MpID0+IENtZDxUTWVzc2FnZT4sXG4gICAgfSxcbiAgICAvKipcbiAgICAgKiBQcm92aWRlcyBmdW5jdGlvbmFsaXRpZXMgdG8gY3JlYXRlIGNvbW1hbmRzIGZyb20gYXN5bmMgZnVuY3Rpb25zLlxuICAgICAqL1xuICAgIG9mUHJvbWlzZToge1xuICAgICAgICAvKipcbiAgICAgICAgKiBDcmVhdGVzIGEgY29tbWFuZCBvdXQgb2YgYW4gYXN5bmMgZnVuY3Rpb24gYW5kIG1hcHMgdGhlIHJlc3VsdC5cbiAgICAgICAgKiBAcGFyYW0gdGFzayBUaGUgYXN5bmMgZnVuY3Rpb24gdG8gY2FsbC5cbiAgICAgICAgKiBAcGFyYW0gb2ZTdWNjZXNzIENyZWF0ZXMgdGhlIG1lc3NhZ2UgdG8gZGlzcGF0Y2ggd2hlbiB0aGUgcHJvbWlzZSBpcyByZXNvbHZlZC5cbiAgICAgICAgKiBAcGFyYW0gb2ZFcnJvciBDcmVhdGVzIHRoZSBtZXNzYWdlIHRvIGRpc3BhdGNoIHdoZW4gdGhlIHByb21pc2UgaXMgcmVqZWN0ZWQuXG4gICAgICAgICogQHBhcmFtIGFyZ3MgVGhlIHBhcmFtZXRlcnMgb2YgdGhlIHRhc2suXG4gICAgICAgICovXG4gICAgICAgIGVpdGhlcjogPFRBcmdzIGV4dGVuZHMgdW5rbm93biBbXSwgVFJldHVybj4odGFzazogKC4uLmFyZ3M6IFRBcmdzKSA9PiBQcm9taXNlPFRSZXR1cm4+LCBvZlN1Y2Nlc3M6IChyZXN1bHQ6IFRSZXR1cm4pID0+IFRNZXNzYWdlLCBvZkVycm9yOiAoZXJyb3I6IEVycm9yKSA9PiBUTWVzc2FnZSwgLi4uYXJnczogVEFyZ3MpID0+IENtZDxUTWVzc2FnZT4sXG4gICAgICAgIC8qKlxuICAgICAgICAqIENyZWF0ZXMgYSBjb21tYW5kIG91dCBvZiBhbiBhc3luYyBmdW5jdGlvbiBhbmQgaWdub3JlcyB0aGUgZXJyb3IgY2FzZS5cbiAgICAgICAgKiBAcGFyYW0gdGFzayBUaGUgYXN5bmMgZnVuY3Rpb24gdG8gY2FsbC5cbiAgICAgICAgKiBAcGFyYW0gb2ZTdWNjZXNzIENyZWF0ZXMgdGhlIG1lc3NhZ2UgdG8gZGlzcGF0Y2ggd2hlbiB0aGUgcHJvbWlzZSBpcyByZXNvbHZlZC5cbiAgICAgICAgKiBAcGFyYW0gYXJncyBUaGUgcGFyYW1ldGVycyBvZiB0aGUgdGFzay5cbiAgICAgICAgKi9cbiAgICAgICAgcGVyZm9ybTogPFRBcmdzIGV4dGVuZHMgdW5rbm93biBbXSwgVFJldHVybj4odGFzazogKC4uLmFyZ3M6IFRBcmdzKSA9PiBQcm9taXNlPFRSZXR1cm4+LCBvZlN1Y2Nlc3M6IChyZXN1bHQ6IFRSZXR1cm4pID0+IFRNZXNzYWdlLCAuLi5hcmdzOiBUQXJncykgPT4gQ21kPFRNZXNzYWdlPixcbiAgICAgICAgLyoqXG4gICAgICAgICogQ3JlYXRlcyBhIGNvbW1hbmQgb3V0IG9mIGFuIGFzeW5jIGZ1bmN0aW9uIGFuZCBpZ25vcmVzIHRoZSBzdWNjZXNzIGNhc2UuXG4gICAgICAgICogQHBhcmFtIHRhc2sgVGhlIGFzeW5jIGZ1bmN0aW9uIHRvIGNhbGwuXG4gICAgICAgICogQHBhcmFtIG9mRXJyb3IgQ3JlYXRlcyB0aGUgbWVzc2FnZSB0byBkaXNwYXRjaCB3aGVuIHRoZSBwcm9taXNlIGlzIHJlamVjdGVkLlxuICAgICAgICAqIEBwYXJhbSBhcmdzIFRoZSBwYXJhbWV0ZXJzIG9mIHRoZSB0YXNrLlxuICAgICAgICAqL1xuICAgICAgICBhdHRlbXB0OiA8VEFyZ3MgZXh0ZW5kcyB1bmtub3duIFtdLCBUUmV0dXJuPih0YXNrOiAoLi4uYXJnczogVEFyZ3MpID0+IFByb21pc2U8VFJldHVybj4sIG9mRXJyb3I6IChlcnJvcjogRXJyb3IpID0+IFRNZXNzYWdlLCAuLi5hcmdzOiBUQXJncykgPT4gQ21kPFRNZXNzYWdlPixcbiAgICB9LFxufVxuXG4vKipcbiAqIENyZWF0ZXMgYSB0eXBlZCBpbnN0YW5jZSBvZiB0aGUgQ29tbWFuZCBjbGFzcy5cbiAqIEB0ZW1wbGF0ZSBUTWVzc2FnZSBUaGUgdHlwZSBvZiB0aGUgTXNnIGRpc2NyaW1pbmF0ZWQgdW5pb24uXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUNtZDxUTWVzc2FnZT4gKCk6IENvbW1hbmQ8VE1lc3NhZ2U+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICBub25lOiBbXSxcbiAgICAgICAgb2ZNc2cgKG1zZzogVE1lc3NhZ2UpOiBDbWQ8VE1lc3NhZ2U+IHtcbiAgICAgICAgICAgIHJldHVybiBbZGlzcGF0Y2ggPT4gZGlzcGF0Y2gobXNnKV07XG4gICAgICAgIH0sXG4gICAgICAgIGJhdGNoICguLi5jb21tYW5kczogKENtZDxUTWVzc2FnZT4gfCB1bmRlZmluZWQgfCBudWxsKSBbXSk6IENtZDxUTWVzc2FnZT4ge1xuICAgICAgICAgICAgcmV0dXJuIChjb21tYW5kcy5maWx0ZXIoQm9vbGVhbikgYXMgQ21kPFRNZXNzYWdlPiBbXSkuZmxhdCgpO1xuICAgICAgICB9LFxuICAgICAgICBvZlN1YiAoc3ViOiBTdWI8VE1lc3NhZ2U+KTogQ21kPFRNZXNzYWdlPiB7XG4gICAgICAgICAgICByZXR1cm4gW3N1Yl07XG4gICAgICAgIH0sXG4gICAgICAgIG9mRnVuYzoge1xuICAgICAgICAgICAgZWl0aGVyPFRBcmdzIGV4dGVuZHMgdW5rbm93biBbXSwgVFJldHVybj4odGFzazogKC4uLmFyZ3M6IFRBcmdzKSA9PiBUUmV0dXJuLCBvZlN1Y2Nlc3M6IChyZXN1bHQ6IFRSZXR1cm4pID0+IFRNZXNzYWdlLCBvZkVycm9yOiAoZXJyb3I6IEVycm9yKSA9PiBUTWVzc2FnZSwgLi4uYXJnczogVEFyZ3MpOiBDbWQ8VE1lc3NhZ2U+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBiaW5kID0gKGRpc3BhdGNoOiBEaXNwYXRjaDxUTWVzc2FnZT4pOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRhc2soLi4uYXJncyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoKG9mU3VjY2VzcyhyZXN1bHQpKTtcbiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZXg6IHVua25vd24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoKG9mRXJyb3IoZXggYXMgRXJyb3IpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gW2JpbmRdO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHBlcmZvcm08VEFyZ3MgZXh0ZW5kcyB1bmtub3duIFtdLCBUUmV0dXJuPih0YXNrOiAoLi4uYXJnczogVEFyZ3MpID0+IFRSZXR1cm4sIG9mU3VjY2VzczogKHJlc3VsdDogVFJldHVybikgPT4gVE1lc3NhZ2UsIC4uLmFyZ3M6IFRBcmdzKTogQ21kPFRNZXNzYWdlPiB7XG4gICAgICAgICAgICAgICAgY29uc3QgYmluZCA9IChkaXNwYXRjaDogRGlzcGF0Y2g8VE1lc3NhZ2U+LCBmYWxsYmFjaz86IEZhbGxiYWNrSGFuZGxlcik6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gdGFzayguLi5hcmdzKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2gob2ZTdWNjZXNzKHJlc3VsdCkpO1xuICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChleDogdW5rbm93bikge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsbGJhY2soZXggYXMgRXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBbYmluZF07XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYXR0ZW1wdDxUQXJncyBleHRlbmRzIHVua25vd24gW10sIFRSZXR1cm4+KHRhc2s6ICguLi5hcmdzOiBUQXJncykgPT4gVFJldHVybiwgb2ZFcnJvcjogKGVycm9yOiBFcnJvcikgPT4gVE1lc3NhZ2UsIC4uLmFyZ3M6IFRBcmdzKTogQ21kPFRNZXNzYWdlPiB7XG4gICAgICAgICAgICAgICAgY29uc3QgYmluZCA9IChkaXNwYXRjaDogRGlzcGF0Y2g8VE1lc3NhZ2U+LCBmYWxsYmFjaz86IEZhbGxiYWNrSGFuZGxlcik6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGFzayguLi5hcmdzKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsbGJhY2soKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZXg6IHVua25vd24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoKG9mRXJyb3IoZXggYXMgRXJyb3IpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gW2JpbmRdO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgb2ZQcm9taXNlOiB7XG4gICAgICAgICAgICBlaXRoZXI8VEFyZ3MgZXh0ZW5kcyB1bmtub3duIFtdLCBUUmV0dXJuPih0YXNrOiAoLi4uYXJnczogVEFyZ3MpID0+IFByb21pc2U8VFJldHVybj4sIG9mU3VjY2VzczogKHJlc3VsdDogVFJldHVybikgPT4gVE1lc3NhZ2UsIG9mRXJyb3I6IChlcnJvcjogRXJyb3IpID0+IFRNZXNzYWdlLCAuLi5hcmdzOiBUQXJncyk6IENtZDxUTWVzc2FnZT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJpbmQgPSAoZGlzcGF0Y2g6IERpc3BhdGNoPFRNZXNzYWdlPik6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0YXNrKC4uLmFyZ3MpLnRoZW4ocmVzdWx0ID0+IGRpc3BhdGNoKG9mU3VjY2VzcyhyZXN1bHQpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5jYXRjaCgoZXg6IEVycm9yKSA9PiBkaXNwYXRjaChvZkVycm9yKGV4KSkpO1xuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gW2JpbmRdO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHBlcmZvcm08VEFyZ3MgZXh0ZW5kcyB1bmtub3duIFtdLCBUUmV0dXJuPih0YXNrOiAoLi4uYXJnczogVEFyZ3MpID0+IFByb21pc2U8VFJldHVybj4sIG9mU3VjY2VzczogKHJlc3VsdDogVFJldHVybikgPT4gVE1lc3NhZ2UsIC4uLmFyZ3M6IFRBcmdzKTogQ21kPFRNZXNzYWdlPiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGVmYXVsdEZhbGxiYWNrSGFuZGxlciA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gYmxhbmtcbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgY29uc3QgYmluZCA9IChkaXNwYXRjaDogRGlzcGF0Y2g8VE1lc3NhZ2U+LCBmYWxsYmFjazogRmFsbGJhY2tIYW5kbGVyID0gZGVmYXVsdEZhbGxiYWNrSGFuZGxlcik6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0YXNrKC4uLmFyZ3MpLnRoZW4ocmVzdWx0ID0+IGRpc3BhdGNoKG9mU3VjY2VzcyhyZXN1bHQpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5jYXRjaChmYWxsYmFjayk7XG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBbYmluZF07XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYXR0ZW1wdDxUQXJncyBleHRlbmRzIHVua25vd24gW10sIFRSZXR1cm4+KHRhc2s6ICguLi5hcmdzOiBUQXJncykgPT4gUHJvbWlzZTxUUmV0dXJuPiwgb2ZFcnJvcjogKGVycm9yOiBFcnJvcikgPT4gVE1lc3NhZ2UsIC4uLmFyZ3M6IFRBcmdzKTogQ21kPFRNZXNzYWdlPiB7XG4gICAgICAgICAgICAgICAgY29uc3QgYmluZCA9IChkaXNwYXRjaDogRGlzcGF0Y2g8VE1lc3NhZ2U+LCBmYWxsYmFjaz86IEZhbGxiYWNrSGFuZGxlcik6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0YXNrKC4uLmFyZ3MpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsbGJhY2soKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5jYXRjaCgoZXg6IEVycm9yKSA9PiBkaXNwYXRjaChvZkVycm9yKGV4KSkpO1xuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gW2JpbmRdO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICB9O1xufVxuXG5leHBvcnQgdHlwZSB7XG4gICAgRGlzcGF0Y2gs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
|
package/dist/ElmComponent.d.ts
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { InitFunction, UpdateFunction } from "./Types";
|
|
2
|
-
import { Message } from "./Init";
|
|
3
1
|
import React from "react";
|
|
2
|
+
import { Message } from "./Init";
|
|
3
|
+
import { InitFunction, UpdateFunction } from "./Types";
|
|
4
4
|
/**
|
|
5
|
-
* Abstract class for a react class component using the
|
|
5
|
+
* Abstract class for a react class component using the Elmish pattern.
|
|
6
6
|
* @export
|
|
7
7
|
* @abstract
|
|
8
8
|
* @class ElmComponent
|
|
9
9
|
* @extends {Component<TProps, TModel>}
|
|
10
10
|
* @template TModel The type of the model.
|
|
11
|
-
* @template
|
|
11
|
+
* @template TMessage The type of the messages.
|
|
12
12
|
* @template TProps The type of the props.
|
|
13
13
|
*/
|
|
14
|
-
declare abstract class ElmComponent<TModel,
|
|
14
|
+
declare abstract class ElmComponent<TModel, TMessage extends Message, TProps> extends React.Component<TProps> {
|
|
15
15
|
private initCmd;
|
|
16
16
|
private readonly componentName;
|
|
17
17
|
private readonly buffer;
|
|
@@ -25,7 +25,7 @@ declare abstract class ElmComponent<TModel, TMsg extends Message, TProps> extend
|
|
|
25
25
|
* @param name The name of the component.
|
|
26
26
|
* @memberof ElmComponent
|
|
27
27
|
*/
|
|
28
|
-
constructor(props: TProps, init: InitFunction<TProps, TModel,
|
|
28
|
+
constructor(props: TProps, init: InitFunction<TProps, TModel, TMessage>, name: string);
|
|
29
29
|
/**
|
|
30
30
|
* Is called when the component is loaded.
|
|
31
31
|
* When implementing this method, the base implementation has to be called.
|
|
@@ -48,19 +48,19 @@ declare abstract class ElmComponent<TModel, TMsg extends Message, TProps> extend
|
|
|
48
48
|
get model(): Readonly<TModel>;
|
|
49
49
|
/**
|
|
50
50
|
* Dispatches a message.
|
|
51
|
-
* @param {
|
|
51
|
+
* @param {TMessage} msg The message to dispatch.
|
|
52
52
|
* @memberof ElmComponent
|
|
53
53
|
*/
|
|
54
|
-
readonly dispatch: (msg:
|
|
54
|
+
readonly dispatch: (msg: TMessage) => void;
|
|
55
55
|
/**
|
|
56
56
|
* Function to modify the model based on a message.
|
|
57
57
|
* @param {TModel} model The current model.
|
|
58
|
-
* @param {
|
|
58
|
+
* @param {TMessage} msg The message to process.
|
|
59
59
|
* @param {TProps} props The props of the component.
|
|
60
60
|
* @returns The new model (can also be an empty object {}) and an optional new message to dispatch.
|
|
61
61
|
* @abstract
|
|
62
62
|
* @memberof ElmComponent
|
|
63
63
|
*/
|
|
64
|
-
abstract update: UpdateFunction<TProps, TModel,
|
|
64
|
+
abstract update: UpdateFunction<TProps, TModel, TMessage>;
|
|
65
65
|
}
|
|
66
66
|
export { ElmComponent, };
|
package/dist/ElmComponent.js
CHANGED
|
@@ -7,11 +7,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.ElmComponent = void 0;
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _Init = require("./Init");
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _fakeOptions = require("./Testing/fakeOptions");
|
|
15
15
|
|
|
16
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
17
17
|
|
|
@@ -54,13 +54,13 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
|
|
|
54
54
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
55
55
|
|
|
56
56
|
/**
|
|
57
|
-
* Abstract class for a react class component using the
|
|
57
|
+
* Abstract class for a react class component using the Elmish pattern.
|
|
58
58
|
* @export
|
|
59
59
|
* @abstract
|
|
60
60
|
* @class ElmComponent
|
|
61
61
|
* @extends {Component<TProps, TModel>}
|
|
62
62
|
* @template TModel The type of the model.
|
|
63
|
-
* @template
|
|
63
|
+
* @template TMessage The type of the messages.
|
|
64
64
|
* @template TProps The type of the props.
|
|
65
65
|
*/
|
|
66
66
|
var ElmComponent = /*#__PURE__*/function (_React$Component) {
|
|
@@ -153,7 +153,7 @@ var ElmComponent = /*#__PURE__*/function (_React$Component) {
|
|
|
153
153
|
|
|
154
154
|
_defineProperty(_assertThisInitialized(_this), "update", void 0);
|
|
155
155
|
|
|
156
|
-
var fakeOptions = (0,
|
|
156
|
+
var fakeOptions = (0, _fakeOptions.getFakeOptionsOnce)();
|
|
157
157
|
|
|
158
158
|
if (fakeOptions !== null && fakeOptions !== void 0 && fakeOptions.dispatch) {
|
|
159
159
|
_this.dispatch = fakeOptions.dispatch;
|
|
@@ -226,7 +226,7 @@ var ElmComponent = /*#__PURE__*/function (_React$Component) {
|
|
|
226
226
|
}
|
|
227
227
|
/**
|
|
228
228
|
* Dispatches a message.
|
|
229
|
-
* @param {
|
|
229
|
+
* @param {TMessage} msg The message to dispatch.
|
|
230
230
|
* @memberof ElmComponent
|
|
231
231
|
*/
|
|
232
232
|
|
|
@@ -236,4 +236,4 @@ var ElmComponent = /*#__PURE__*/function (_React$Component) {
|
|
|
236
236
|
}(_react["default"].Component);
|
|
237
237
|
|
|
238
238
|
exports.ElmComponent = ElmComponent;
|
|
239
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFbG1Db21wb25lbnQiLCJwcm9wcyIsImluaXQiLCJuYW1lIiwibXNnIiwibW9kZWxIYXNDaGFuZ2VkIiwibW9kZWwiLCJjdXJyZW50TW9kZWwiLCJPYmplY3QiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwibGVuZ3RoIiwicmVlbnRlcmVkIiwiYnVmZmVyIiwicHVzaCIsIm5leHRNc2ciLCJtb2RpZmllZCIsIlNlcnZpY2VzIiwibG9nZ2VyIiwiaW5mbyIsImNvbXBvbmVudE5hbWUiLCJkZWJ1ZyIsImRpc3BhdGNoTWlkZGxld2FyZSIsInVwZGF0ZSIsImNtZCIsImV4ZWNDbWQiLCJleCIsImVycm9yIiwic2hpZnQiLCJtb3VudGVkIiwiZm9yY2VVcGRhdGUiLCJmYWtlT3B0aW9ucyIsImdldEZha2VPcHRpb25zT25jZSIsImRpc3BhdGNoIiwiaW5pdENtZCIsImZvckVhY2giLCJjYWxsIiwiUmVhY3QiLCJDb21wb25lbnQiXSwic291cmNlcyI6WyIuLi9zcmMvRWxtQ29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluaXRGdW5jdGlvbiwgTnVsbGFibGUsIFVwZGF0ZUZ1bmN0aW9uIH0gZnJvbSBcIi4vVHlwZXNcIjtcbmltcG9ydCB7IE1lc3NhZ2UsIFNlcnZpY2VzIH0gZnJvbSBcIi4vSW5pdFwiO1xuaW1wb3J0IHsgQ21kIH0gZnJvbSBcIi4vQ21kXCI7XG5pbXBvcnQgeyBnZXRGYWtlT3B0aW9uc09uY2UgfSBmcm9tIFwiLi9UZXN0aW5nL2Zha2VJbml0UmVzdWx0XCI7XG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5cbi8qKlxuICogQWJzdHJhY3QgY2xhc3MgZm9yIGEgcmVhY3QgY2xhc3MgY29tcG9uZW50IHVzaW5nIHRoZSBlbG1pc2ggcGF0dGVybi5cbiAqIEBleHBvcnRcbiAqIEBhYnN0cmFjdFxuICogQGNsYXNzIEVsbUNvbXBvbmVudFxuICogQGV4dGVuZHMge0NvbXBvbmVudDxUUHJvcHMsIFRNb2RlbD59XG4gKiBAdGVtcGxhdGUgVE1vZGVsIFRoZSB0eXBlIG9mIHRoZSBtb2RlbC5cbiAqIEB0ZW1wbGF0ZSBUTXNnIFRoZSB0eXBlIG9mIHRoZSBtZXNzYWdlcy5cbiAqIEB0ZW1wbGF0ZSBUUHJvcHMgVGhlIHR5cGUgb2YgdGhlIHByb3BzLlxuICovXG5hYnN0cmFjdCBjbGFzcyBFbG1Db21wb25lbnQ8VE1vZGVsLCBUTXNnIGV4dGVuZHMgTWVzc2FnZSwgVFByb3BzPiBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxUUHJvcHM+IHtcbiAgICBwcml2YXRlIGluaXRDbWQ6IE51bGxhYmxlPENtZDxUTXNnPj4gfCB1bmRlZmluZWQ7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjb21wb25lbnROYW1lOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBidWZmZXI6IFRNc2cgW10gPSBbXTtcbiAgICBwcml2YXRlIHJlZW50ZXJlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgbW91bnRlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgY3VycmVudE1vZGVsOiBUTW9kZWw7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIEVsbUNvbXBvbmVudC5cbiAgICAgKiBAcGFyYW0ge1RQcm9wc30gcHJvcHMgVGhlIHByb3BzIGZvciB0aGUgY29tcG9uZW50LlxuICAgICAqIEBwYXJhbSB7KCkgPT4gVE1vZGVsfSBpbml0IFRoZSBpbml0aWFsaXplciBmdW5jdGlvbi5cbiAgICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgY29tcG9uZW50LlxuICAgICAqIEBtZW1iZXJvZiBFbG1Db21wb25lbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgY29uc3RydWN0b3IgKHByb3BzOiBUUHJvcHMsIGluaXQ6IEluaXRGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1zZz4sIG5hbWU6IHN0cmluZykge1xuICAgICAgICBzdXBlcihwcm9wcyk7XG5cbiAgICAgICAgY29uc3QgZmFrZU9wdGlvbnMgPSBnZXRGYWtlT3B0aW9uc09uY2UoKTtcblxuICAgICAgICBpZiAoZmFrZU9wdGlvbnM/LmRpc3BhdGNoKSB7XG4gICAgICAgICAgICB0aGlzLmRpc3BhdGNoID0gZmFrZU9wdGlvbnMuZGlzcGF0Y2g7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBbbW9kZWwsIGNtZF0gPSBmYWtlT3B0aW9ucz8ubW9kZWwgPyBbZmFrZU9wdGlvbnMubW9kZWwgYXMgVE1vZGVsXSA6IGluaXQodGhpcy5wcm9wcyk7XG5cbiAgICAgICAgdGhpcy5jb21wb25lbnROYW1lID0gbmFtZTtcbiAgICAgICAgdGhpcy5jdXJyZW50TW9kZWwgPSBtb2RlbDtcbiAgICAgICAgdGhpcy5pbml0Q21kID0gY21kO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIElzIGNhbGxlZCB3aGVuIHRoZSBjb21wb25lbnQgaXMgbG9hZGVkLlxuICAgICAqIFdoZW4gaW1wbGVtZW50aW5nIHRoaXMgbWV0aG9kLCB0aGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBoYXMgdG8gYmUgY2FsbGVkLlxuICAgICAqIEBtZW1iZXJvZiBFbG1Db21wb25lbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgY29tcG9uZW50RGlkTW91bnQgKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1vdW50ZWQgPSB0cnVlO1xuXG4gICAgICAgIGlmICh0aGlzLmluaXRDbWQpIHtcbiAgICAgICAgICAgIHRoaXMuZXhlY0NtZCh0aGlzLmluaXRDbWQpO1xuICAgICAgICAgICAgdGhpcy5pbml0Q21kID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIElzIGNhbGxlZCBiZWZvcmUgdW5sb2FkaW5nIHRoZSBjb21wb25lbnQuXG4gICAgICogV2hlbiBpbXBsZW1lbnRpbmcgdGhpcyBtZXRob2QsIHRoZSBiYXNlIGltcGxlbWVudGF0aW9uIGhhcyB0byBiZSBjYWxsZWQuXG4gICAgICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBjb21wb25lbnRXaWxsVW5tb3VudCAoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubW91bnRlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgZXhlY0NtZCAoY21kOiBDbWQ8VE1zZz4pOiB2b2lkIHtcbiAgICAgICAgY21kLmZvckVhY2goY2FsbCA9PiB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNhbGwodGhpcy5kaXNwYXRjaCk7XG4gICAgICAgICAgICB9IGNhdGNoIChleDogdW5rbm93bikge1xuICAgICAgICAgICAgICAgIFNlcnZpY2VzLmxvZ2dlcj8uZXJyb3IoZXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IG1vZGVsLlxuICAgICAqIEByZWFkb25seVxuICAgICAqIEB0eXBlIHtSZWFkb25seTxUTW9kZWw+fVxuICAgICAqIEBtZW1iZXJvZiBFbG1Db21wb25lbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IG1vZGVsICgpOiBSZWFkb25seTxUTW9kZWw+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudE1vZGVsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERpc3BhdGNoZXMgYSBtZXNzYWdlLlxuICAgICAqIEBwYXJhbSB7VE1zZ30gbXNnIFRoZSBtZXNzYWdlIHRvIGRpc3BhdGNoLlxuICAgICAqIEBtZW1iZXJvZiBFbG1Db21wb25lbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgZGlzcGF0Y2ggPSAobXNnOiBUTXNnKTogdm9pZCA9PiB7XG4gICAgICAgIGNvbnN0IG1vZGVsSGFzQ2hhbmdlZCA9IChtb2RlbDogUGFydGlhbDxUTW9kZWw+KTogYm9vbGVhbiA9PiBtb2RlbCAhPT0gdGhpcy5jdXJyZW50TW9kZWwgJiYgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMobW9kZWwpLmxlbmd0aCA+IDA7XG5cbiAgICAgICAgaWYgKHRoaXMucmVlbnRlcmVkKSB7XG4gICAgICAgICAgICB0aGlzLmJ1ZmZlci5wdXNoKG1zZyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJlZW50ZXJlZCA9IHRydWU7XG5cbiAgICAgICAgICAgIGxldCBuZXh0TXNnOiBUTXNnIHwgdW5kZWZpbmVkID0gbXNnO1xuICAgICAgICAgICAgbGV0IG1vZGlmaWVkID0gZmFsc2U7XG5cbiAgICAgICAgICAgIHdoaWxlIChuZXh0TXNnKSB7XG4gICAgICAgICAgICAgICAgU2VydmljZXMubG9nZ2VyPy5pbmZvKFwiRWxtXCIsIFwibWVzc2FnZSBmcm9tXCIsIHRoaXMuY29tcG9uZW50TmFtZSwgbmV4dE1zZy5uYW1lKTtcbiAgICAgICAgICAgICAgICBTZXJ2aWNlcy5sb2dnZXI/LmRlYnVnKFwiRWxtXCIsIFwibWVzc2FnZSBmcm9tXCIsIHRoaXMuY29tcG9uZW50TmFtZSwgbmV4dE1zZyk7XG5cbiAgICAgICAgICAgICAgICBpZiAoU2VydmljZXMuZGlzcGF0Y2hNaWRkbGV3YXJlKSB7XG4gICAgICAgICAgICAgICAgICAgIFNlcnZpY2VzLmRpc3BhdGNoTWlkZGxld2FyZShuZXh0TXNnKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBbbW9kZWwsIGNtZF0gPSB0aGlzLnVwZGF0ZSh0aGlzLmN1cnJlbnRNb2RlbCwgbmV4dE1zZywgdGhpcy5wcm9wcyk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKG1vZGVsSGFzQ2hhbmdlZChtb2RlbCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudE1vZGVsID0geyAuLi50aGlzLmN1cnJlbnRNb2RlbCwgLi4ubW9kZWwgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChjbWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZXhlY0NtZChjbWQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXg6IHVua25vd24pIHtcbiAgICAgICAgICAgICAgICAgICAgU2VydmljZXMubG9nZ2VyPy5lcnJvcihleCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgbmV4dE1zZyA9IHRoaXMuYnVmZmVyLnNoaWZ0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnJlZW50ZXJlZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5tb3VudGVkICYmIG1vZGlmaWVkKSB7XG4gICAgICAgICAgICAgICAgU2VydmljZXMubG9nZ2VyPy5kZWJ1ZyhcIkVsbVwiLCBcInVwZGF0ZSBtb2RlbCBmb3JcIiwgdGhpcy5jb21wb25lbnROYW1lLCB0aGlzLmN1cnJlbnRNb2RlbCk7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JjZVVwZGF0ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEZ1bmN0aW9uIHRvIG1vZGlmeSB0aGUgbW9kZWwgYmFzZWQgb24gYSBtZXNzYWdlLlxuICAgICAqIEBwYXJhbSB7VE1vZGVsfSBtb2RlbCBUaGUgY3VycmVudCBtb2RlbC5cbiAgICAgKiBAcGFyYW0ge1RNc2d9IG1zZyBUaGUgbWVzc2FnZSB0byBwcm9jZXNzLlxuICAgICAqIEBwYXJhbSB7VFByb3BzfSBwcm9wcyBUaGUgcHJvcHMgb2YgdGhlIGNvbXBvbmVudC5cbiAgICAgKiBAcmV0dXJucyBUaGUgbmV3IG1vZGVsIChjYW4gYWxzbyBiZSBhbiBlbXB0eSBvYmplY3Qge30pIGFuZCBhbiBvcHRpb25hbCBuZXcgbWVzc2FnZSB0byBkaXNwYXRjaC5cbiAgICAgKiBAYWJzdHJhY3RcbiAgICAgKiBAbWVtYmVyb2YgRWxtQ29tcG9uZW50XG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IHVwZGF0ZTogVXBkYXRlRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNc2c+O1xufVxuXG5leHBvcnQge1xuICAgIEVsbUNvbXBvbmVudCxcbn07Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFDQTs7QUFFQTs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7SUFDZUEsWTs7Ozs7RUFRWDtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNJLHNCQUFvQkMsS0FBcEIsRUFBbUNDLElBQW5DLEVBQTZFQyxJQUE3RSxFQUEyRjtJQUFBOztJQUFBOztJQUN2RiwwQkFBTUYsS0FBTjs7SUFEdUY7O0lBQUE7O0lBQUEseURBWnhELEVBWXdEOztJQUFBLDREQVh2RSxLQVd1RTs7SUFBQSwwREFWekUsS0FVeUU7O0lBQUE7O0lBQUEsMkRBZ0VoRSxVQUFDRyxHQUFELEVBQXFCO01BQzVDLElBQU1DLGVBQWUsR0FBRyxTQUFsQkEsZUFBa0IsQ0FBQ0MsS0FBRDtRQUFBLE9BQXFDQSxLQUFLLEtBQUssTUFBS0MsWUFBZixJQUErQkMsTUFBTSxDQUFDQyxtQkFBUCxDQUEyQkgsS0FBM0IsRUFBa0NJLE1BQWxDLEdBQTJDLENBQS9HO01BQUEsQ0FBeEI7O01BRUEsSUFBSSxNQUFLQyxTQUFULEVBQW9CO1FBQ2hCLE1BQUtDLE1BQUwsQ0FBWUMsSUFBWixDQUFpQlQsR0FBakI7TUFDSCxDQUZELE1BRU87UUFDSCxNQUFLTyxTQUFMLEdBQWlCLElBQWpCO1FBRUEsSUFBSUcsT0FBeUIsR0FBR1YsR0FBaEM7UUFDQSxJQUFJVyxRQUFRLEdBQUcsS0FBZjs7UUFFQSxPQUFPRCxPQUFQLEVBQWdCO1VBQUE7O1VBQ1osb0JBQUFFLGNBQUEsQ0FBU0MsTUFBVCxzRUFBaUJDLElBQWpCLENBQXNCLEtBQXRCLEVBQTZCLGNBQTdCLEVBQTZDLE1BQUtDLGFBQWxELEVBQWlFTCxPQUFPLENBQUNYLElBQXpFO1VBQ0EscUJBQUFhLGNBQUEsQ0FBU0MsTUFBVCx3RUFBaUJHLEtBQWpCLENBQXVCLEtBQXZCLEVBQThCLGNBQTlCLEVBQThDLE1BQUtELGFBQW5ELEVBQWtFTCxPQUFsRTs7VUFFQSxJQUFJRSxjQUFBLENBQVNLLGtCQUFiLEVBQWlDO1lBQzdCTCxjQUFBLENBQVNLLGtCQUFULENBQTRCUCxPQUE1QjtVQUNIOztVQUVELElBQUk7WUFDQSxtQkFBcUIsTUFBS1EsTUFBTCxDQUFZLE1BQUtmLFlBQWpCLEVBQStCTyxPQUEvQixFQUF3QyxNQUFLYixLQUE3QyxDQUFyQjtZQUFBO1lBQUEsSUFBT0ssS0FBUDtZQUFBLElBQWNpQixHQUFkOztZQUVBLElBQUlsQixlQUFlLENBQUNDLEtBQUQsQ0FBbkIsRUFBNEI7Y0FDeEIsTUFBS0MsWUFBTCxtQ0FBeUIsTUFBS0EsWUFBOUIsR0FBK0NELEtBQS9DO2NBQ0FTLFFBQVEsR0FBRyxJQUFYO1lBQ0g7O1lBRUQsSUFBSVEsR0FBSixFQUFTO2NBQ0wsTUFBS0MsT0FBTCxDQUFhRCxHQUFiO1lBQ0g7VUFDSixDQVhELENBV0UsT0FBT0UsRUFBUCxFQUFvQjtZQUFBOztZQUNsQixxQkFBQVQsY0FBQSxDQUFTQyxNQUFULHdFQUFpQlMsS0FBakIsQ0FBdUJELEVBQXZCO1VBQ0g7O1VBRURYLE9BQU8sR0FBRyxNQUFLRixNQUFMLENBQVllLEtBQVosRUFBVjtRQUNIOztRQUNELE1BQUtoQixTQUFMLEdBQWlCLEtBQWpCOztRQUVBLElBQUksTUFBS2lCLE9BQUwsSUFBZ0JiLFFBQXBCLEVBQThCO1VBQUE7O1VBQzFCLHFCQUFBQyxjQUFBLENBQVNDLE1BQVQsd0VBQWlCRyxLQUFqQixDQUF1QixLQUF2QixFQUE4QixrQkFBOUIsRUFBa0QsTUFBS0QsYUFBdkQsRUFBc0UsTUFBS1osWUFBM0U7O1VBQ0EsTUFBS3NCLFdBQUw7UUFDSDtNQUNKO0lBQ0osQ0EzRzBGOztJQUFBOztJQUd2RixJQUFNQyxXQUFXLEdBQUcsSUFBQUMsa0NBQUEsR0FBcEI7O0lBRUEsSUFBSUQsV0FBSixhQUFJQSxXQUFKLGVBQUlBLFdBQVcsQ0FBRUUsUUFBakIsRUFBMkI7TUFDdkIsTUFBS0EsUUFBTCxHQUFnQkYsV0FBVyxDQUFDRSxRQUE1QjtJQUNIOztJQUVELFdBQXFCRixXQUFXLFNBQVgsSUFBQUEsV0FBVyxXQUFYLElBQUFBLFdBQVcsQ0FBRXhCLEtBQWIsR0FBcUIsQ0FBQ3dCLFdBQVcsQ0FBQ3hCLEtBQWIsQ0FBckIsR0FBcURKLElBQUksQ0FBQyxNQUFLRCxLQUFOLENBQTlFO0lBQUE7SUFBQSxJQUFPSyxNQUFQO0lBQUEsSUFBY2lCLElBQWQ7O0lBRUEsTUFBS0osYUFBTCxHQUFxQmhCLElBQXJCO0lBQ0EsTUFBS0ksWUFBTCxHQUFvQkQsTUFBcEI7SUFDQSxNQUFLMkIsT0FBTCxHQUFlVixJQUFmO0lBYnVGO0VBYzFGO0VBRUQ7QUFDSjtBQUNBO0FBQ0E7QUFDQTs7Ozs7V0FDSSw2QkFBa0M7TUFDOUIsS0FBS0ssT0FBTCxHQUFlLElBQWY7O01BRUEsSUFBSSxLQUFLSyxPQUFULEVBQWtCO1FBQ2QsS0FBS1QsT0FBTCxDQUFhLEtBQUtTLE9BQWxCO1FBQ0EsS0FBS0EsT0FBTCxHQUFlLElBQWY7TUFDSDtJQUNKO0lBRUQ7QUFDSjtBQUNBO0FBQ0E7QUFDQTs7OztXQUNJLGdDQUFxQztNQUNqQyxLQUFLTCxPQUFMLEdBQWUsS0FBZjtJQUNIOzs7V0FFRCxpQkFBaUJMLEdBQWpCLEVBQXVDO01BQUE7O01BQ25DQSxHQUFHLENBQUNXLE9BQUosQ0FBWSxVQUFBQyxJQUFJLEVBQUk7UUFDaEIsSUFBSTtVQUNBQSxJQUFJLENBQUMsTUFBSSxDQUFDSCxRQUFOLENBQUo7UUFDSCxDQUZELENBRUUsT0FBT1AsRUFBUCxFQUFvQjtVQUFBOztVQUNsQixxQkFBQVQsY0FBQSxDQUFTQyxNQUFULHdFQUFpQlMsS0FBakIsQ0FBdUJELEVBQXZCO1FBQ0g7TUFDSixDQU5EO0lBT0g7SUFFRDtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7U0FDSSxlQUFzQztNQUNsQyxPQUFPLEtBQUtsQixZQUFaO0lBQ0g7SUFFRDtBQUNKO0FBQ0E7QUFDQTtBQUNBOzs7OztFQTlFMEU2QixpQkFBQSxDQUFNQyxTIn0=
|
|
239
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFbG1Db21wb25lbnQiLCJwcm9wcyIsImluaXQiLCJuYW1lIiwibXNnIiwibW9kZWxIYXNDaGFuZ2VkIiwibW9kZWwiLCJjdXJyZW50TW9kZWwiLCJPYmplY3QiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwibGVuZ3RoIiwicmVlbnRlcmVkIiwiYnVmZmVyIiwicHVzaCIsIm5leHRNc2ciLCJtb2RpZmllZCIsIlNlcnZpY2VzIiwibG9nZ2VyIiwiaW5mbyIsImNvbXBvbmVudE5hbWUiLCJkZWJ1ZyIsImRpc3BhdGNoTWlkZGxld2FyZSIsInVwZGF0ZSIsImNtZCIsImV4ZWNDbWQiLCJleCIsImVycm9yIiwic2hpZnQiLCJtb3VudGVkIiwiZm9yY2VVcGRhdGUiLCJmYWtlT3B0aW9ucyIsImdldEZha2VPcHRpb25zT25jZSIsImRpc3BhdGNoIiwiaW5pdENtZCIsImZvckVhY2giLCJjYWxsIiwiUmVhY3QiLCJDb21wb25lbnQiXSwic291cmNlcyI6WyIuLi9zcmMvRWxtQ29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IENtZCB9IGZyb20gXCIuL0NtZFwiO1xuaW1wb3J0IHsgTWVzc2FnZSwgU2VydmljZXMgfSBmcm9tIFwiLi9Jbml0XCI7XG5pbXBvcnQgeyBnZXRGYWtlT3B0aW9uc09uY2UgfSBmcm9tIFwiLi9UZXN0aW5nL2Zha2VPcHRpb25zXCI7XG5pbXBvcnQgeyBJbml0RnVuY3Rpb24sIE51bGxhYmxlLCBVcGRhdGVGdW5jdGlvbiB9IGZyb20gXCIuL1R5cGVzXCI7XG5cbi8qKlxuICogQWJzdHJhY3QgY2xhc3MgZm9yIGEgcmVhY3QgY2xhc3MgY29tcG9uZW50IHVzaW5nIHRoZSBFbG1pc2ggcGF0dGVybi5cbiAqIEBleHBvcnRcbiAqIEBhYnN0cmFjdFxuICogQGNsYXNzIEVsbUNvbXBvbmVudFxuICogQGV4dGVuZHMge0NvbXBvbmVudDxUUHJvcHMsIFRNb2RlbD59XG4gKiBAdGVtcGxhdGUgVE1vZGVsIFRoZSB0eXBlIG9mIHRoZSBtb2RlbC5cbiAqIEB0ZW1wbGF0ZSBUTWVzc2FnZSBUaGUgdHlwZSBvZiB0aGUgbWVzc2FnZXMuXG4gKiBAdGVtcGxhdGUgVFByb3BzIFRoZSB0eXBlIG9mIHRoZSBwcm9wcy5cbiAqL1xuYWJzdHJhY3QgY2xhc3MgRWxtQ29tcG9uZW50PFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlLCBUUHJvcHM+IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PFRQcm9wcz4ge1xuICAgIHByaXZhdGUgaW5pdENtZDogTnVsbGFibGU8Q21kPFRNZXNzYWdlPj4gfCB1bmRlZmluZWQ7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjb21wb25lbnROYW1lOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBidWZmZXI6IFRNZXNzYWdlIFtdID0gW107XG4gICAgcHJpdmF0ZSByZWVudGVyZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIG1vdW50ZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIGN1cnJlbnRNb2RlbDogVE1vZGVsO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBFbG1Db21wb25lbnQuXG4gICAgICogQHBhcmFtIHtUUHJvcHN9IHByb3BzIFRoZSBwcm9wcyBmb3IgdGhlIGNvbXBvbmVudC5cbiAgICAgKiBAcGFyYW0geygpID0+IFRNb2RlbH0gaW5pdCBUaGUgaW5pdGlhbGl6ZXIgZnVuY3Rpb24uXG4gICAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICAgKiBAbWVtYmVyb2YgRWxtQ29tcG9uZW50XG4gICAgICovXG4gICAgcHVibGljIGNvbnN0cnVjdG9yIChwcm9wczogVFByb3BzLCBpbml0OiBJbml0RnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiwgbmFtZTogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyKHByb3BzKTtcblxuICAgICAgICBjb25zdCBmYWtlT3B0aW9ucyA9IGdldEZha2VPcHRpb25zT25jZSgpO1xuXG4gICAgICAgIGlmIChmYWtlT3B0aW9ucz8uZGlzcGF0Y2gpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2ggPSBmYWtlT3B0aW9ucy5kaXNwYXRjaDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IFttb2RlbCwgY21kXSA9IGZha2VPcHRpb25zPy5tb2RlbCA/IFtmYWtlT3B0aW9ucy5tb2RlbCBhcyBUTW9kZWxdIDogaW5pdCh0aGlzLnByb3BzKTtcblxuICAgICAgICB0aGlzLmNvbXBvbmVudE5hbWUgPSBuYW1lO1xuICAgICAgICB0aGlzLmN1cnJlbnRNb2RlbCA9IG1vZGVsO1xuICAgICAgICB0aGlzLmluaXRDbWQgPSBjbWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSXMgY2FsbGVkIHdoZW4gdGhlIGNvbXBvbmVudCBpcyBsb2FkZWQuXG4gICAgICogV2hlbiBpbXBsZW1lbnRpbmcgdGhpcyBtZXRob2QsIHRoZSBiYXNlIGltcGxlbWVudGF0aW9uIGhhcyB0byBiZSBjYWxsZWQuXG4gICAgICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBjb21wb25lbnREaWRNb3VudCAoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubW91bnRlZCA9IHRydWU7XG5cbiAgICAgICAgaWYgKHRoaXMuaW5pdENtZCkge1xuICAgICAgICAgICAgdGhpcy5leGVjQ21kKHRoaXMuaW5pdENtZCk7XG4gICAgICAgICAgICB0aGlzLmluaXRDbWQgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSXMgY2FsbGVkIGJlZm9yZSB1bmxvYWRpbmcgdGhlIGNvbXBvbmVudC5cbiAgICAgKiBXaGVuIGltcGxlbWVudGluZyB0aGlzIG1ldGhvZCwgdGhlIGJhc2UgaW1wbGVtZW50YXRpb24gaGFzIHRvIGJlIGNhbGxlZC5cbiAgICAgKiBAbWVtYmVyb2YgRWxtQ29tcG9uZW50XG4gICAgICovXG4gICAgcHVibGljIGNvbXBvbmVudFdpbGxVbm1vdW50ICgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb3VudGVkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBleGVjQ21kIChjbWQ6IENtZDxUTWVzc2FnZT4pOiB2b2lkIHtcbiAgICAgICAgY21kLmZvckVhY2goY2FsbCA9PiB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNhbGwodGhpcy5kaXNwYXRjaCk7XG4gICAgICAgICAgICB9IGNhdGNoIChleDogdW5rbm93bikge1xuICAgICAgICAgICAgICAgIFNlcnZpY2VzLmxvZ2dlcj8uZXJyb3IoZXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IG1vZGVsLlxuICAgICAqIEByZWFkb25seVxuICAgICAqIEB0eXBlIHtSZWFkb25seTxUTW9kZWw+fVxuICAgICAqIEBtZW1iZXJvZiBFbG1Db21wb25lbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IG1vZGVsICgpOiBSZWFkb25seTxUTW9kZWw+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudE1vZGVsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERpc3BhdGNoZXMgYSBtZXNzYWdlLlxuICAgICAqIEBwYXJhbSB7VE1lc3NhZ2V9IG1zZyBUaGUgbWVzc2FnZSB0byBkaXNwYXRjaC5cbiAgICAgKiBAbWVtYmVyb2YgRWxtQ29tcG9uZW50XG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGRpc3BhdGNoID0gKG1zZzogVE1lc3NhZ2UpOiB2b2lkID0+IHtcbiAgICAgICAgY29uc3QgbW9kZWxIYXNDaGFuZ2VkID0gKG1vZGVsOiBQYXJ0aWFsPFRNb2RlbD4pOiBib29sZWFuID0+IG1vZGVsICE9PSB0aGlzLmN1cnJlbnRNb2RlbCAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhtb2RlbCkubGVuZ3RoID4gMDtcblxuICAgICAgICBpZiAodGhpcy5yZWVudGVyZWQpIHtcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyLnB1c2gobXNnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucmVlbnRlcmVkID0gdHJ1ZTtcblxuICAgICAgICAgICAgbGV0IG5leHRNc2c6IFRNZXNzYWdlIHwgdW5kZWZpbmVkID0gbXNnO1xuICAgICAgICAgICAgbGV0IG1vZGlmaWVkID0gZmFsc2U7XG5cbiAgICAgICAgICAgIHdoaWxlIChuZXh0TXNnKSB7XG4gICAgICAgICAgICAgICAgU2VydmljZXMubG9nZ2VyPy5pbmZvKFwiRWxtXCIsIFwibWVzc2FnZSBmcm9tXCIsIHRoaXMuY29tcG9uZW50TmFtZSwgbmV4dE1zZy5uYW1lKTtcbiAgICAgICAgICAgICAgICBTZXJ2aWNlcy5sb2dnZXI/LmRlYnVnKFwiRWxtXCIsIFwibWVzc2FnZSBmcm9tXCIsIHRoaXMuY29tcG9uZW50TmFtZSwgbmV4dE1zZyk7XG5cbiAgICAgICAgICAgICAgICBpZiAoU2VydmljZXMuZGlzcGF0Y2hNaWRkbGV3YXJlKSB7XG4gICAgICAgICAgICAgICAgICAgIFNlcnZpY2VzLmRpc3BhdGNoTWlkZGxld2FyZShuZXh0TXNnKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBbbW9kZWwsIGNtZF0gPSB0aGlzLnVwZGF0ZSh0aGlzLmN1cnJlbnRNb2RlbCwgbmV4dE1zZywgdGhpcy5wcm9wcyk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKG1vZGVsSGFzQ2hhbmdlZChtb2RlbCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudE1vZGVsID0geyAuLi50aGlzLmN1cnJlbnRNb2RlbCwgLi4ubW9kZWwgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChjbWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZXhlY0NtZChjbWQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXg6IHVua25vd24pIHtcbiAgICAgICAgICAgICAgICAgICAgU2VydmljZXMubG9nZ2VyPy5lcnJvcihleCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgbmV4dE1zZyA9IHRoaXMuYnVmZmVyLnNoaWZ0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnJlZW50ZXJlZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5tb3VudGVkICYmIG1vZGlmaWVkKSB7XG4gICAgICAgICAgICAgICAgU2VydmljZXMubG9nZ2VyPy5kZWJ1ZyhcIkVsbVwiLCBcInVwZGF0ZSBtb2RlbCBmb3JcIiwgdGhpcy5jb21wb25lbnROYW1lLCB0aGlzLmN1cnJlbnRNb2RlbCk7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JjZVVwZGF0ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEZ1bmN0aW9uIHRvIG1vZGlmeSB0aGUgbW9kZWwgYmFzZWQgb24gYSBtZXNzYWdlLlxuICAgICAqIEBwYXJhbSB7VE1vZGVsfSBtb2RlbCBUaGUgY3VycmVudCBtb2RlbC5cbiAgICAgKiBAcGFyYW0ge1RNZXNzYWdlfSBtc2cgVGhlIG1lc3NhZ2UgdG8gcHJvY2Vzcy5cbiAgICAgKiBAcGFyYW0ge1RQcm9wc30gcHJvcHMgVGhlIHByb3BzIG9mIHRoZSBjb21wb25lbnQuXG4gICAgICogQHJldHVybnMgVGhlIG5ldyBtb2RlbCAoY2FuIGFsc28gYmUgYW4gZW1wdHkgb2JqZWN0IHt9KSBhbmQgYW4gb3B0aW9uYWwgbmV3IG1lc3NhZ2UgdG8gZGlzcGF0Y2guXG4gICAgICogQGFic3RyYWN0XG4gICAgICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCB1cGRhdGU6IFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT47XG59XG5cbmV4cG9ydCB7XG4gICAgRWxtQ29tcG9uZW50LFxufTsiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUVBOztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtJQUNlQSxZOzs7OztFQVFYO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0ksc0JBQW9CQyxLQUFwQixFQUFtQ0MsSUFBbkMsRUFBaUZDLElBQWpGLEVBQStGO0lBQUE7O0lBQUE7O0lBQzNGLDBCQUFNRixLQUFOOztJQUQyRjs7SUFBQTs7SUFBQSx5REFaeEQsRUFZd0Q7O0lBQUEsNERBWDNFLEtBVzJFOztJQUFBLDBEQVY3RSxLQVU2RTs7SUFBQTs7SUFBQSwyREFnRXBFLFVBQUNHLEdBQUQsRUFBeUI7TUFDaEQsSUFBTUMsZUFBZSxHQUFHLFNBQWxCQSxlQUFrQixDQUFDQyxLQUFEO1FBQUEsT0FBcUNBLEtBQUssS0FBSyxNQUFLQyxZQUFmLElBQStCQyxNQUFNLENBQUNDLG1CQUFQLENBQTJCSCxLQUEzQixFQUFrQ0ksTUFBbEMsR0FBMkMsQ0FBL0c7TUFBQSxDQUF4Qjs7TUFFQSxJQUFJLE1BQUtDLFNBQVQsRUFBb0I7UUFDaEIsTUFBS0MsTUFBTCxDQUFZQyxJQUFaLENBQWlCVCxHQUFqQjtNQUNILENBRkQsTUFFTztRQUNILE1BQUtPLFNBQUwsR0FBaUIsSUFBakI7UUFFQSxJQUFJRyxPQUE2QixHQUFHVixHQUFwQztRQUNBLElBQUlXLFFBQVEsR0FBRyxLQUFmOztRQUVBLE9BQU9ELE9BQVAsRUFBZ0I7VUFBQTs7VUFDWixvQkFBQUUsY0FBQSxDQUFTQyxNQUFULHNFQUFpQkMs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
|
package/dist/ErrorHandling.d.ts
CHANGED
|
@@ -28,6 +28,6 @@ declare function errorHandler<TModel, TMessage>(): {
|
|
|
28
28
|
* Calls the error handling middleware if specified.
|
|
29
29
|
* @param {Error} error The error.
|
|
30
30
|
*/
|
|
31
|
-
declare function handleError<TModel,
|
|
31
|
+
declare function handleError<TModel, TMessage>(error: Error): UpdateReturnType<TModel, TMessage>;
|
|
32
32
|
export type { ErrorMessage };
|
|
33
33
|
export { errorMsg, errorHandler, handleError, };
|
package/dist/ErrorHandling.js
CHANGED
|
@@ -55,4 +55,4 @@ function handleError(error) {
|
|
|
55
55
|
(_Services$logger = _Init.Services.logger) === null || _Services$logger === void 0 ? void 0 : _Services$logger.error(error);
|
|
56
56
|
return [{}];
|
|
57
57
|
}
|
|
58
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJlcnJvck1zZyIsImVycm9yIiwibmFtZSIsImVycm9ySGFuZGxlciIsImhhbmRsZUVycm9yIiwiU2VydmljZXMiLCJlcnJvck1pZGRsZXdhcmUiLCJsb2dnZXIiXSwic291cmNlcyI6WyIuLi9zcmMvRXJyb3JIYW5kbGluZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZXJ2aWNlcyB9IGZyb20gXCIuL0luaXRcIjtcbmltcG9ydCB7IFVwZGF0ZVJldHVyblR5cGUgfSBmcm9tIFwiLi9UeXBlc1wiO1xuXG4vKipcbiAqIEVycm9yIG1lc3NhZ2Ugb2JqZWN0LlxuICogQWRkIHRoaXMgdG8geW91ciBNZXNzYWdlIHR5cGUuXG4gKi9cbmludGVyZmFjZSBFcnJvck1lc3NhZ2Uge1xuICAgIG5hbWU6IFwiZXJyb3JcIixcbiAgICBlcnJvcjogRXJyb3IsXG59XG5cbi8qKlxuICogVGhpcyBvYmplY3QgY29udGFpbnMgdGhlIGZ1bmN0aW9uIHRvIGNyZWF0ZSBhbiBlcnJvciBtZXNzYWdlLlxuICogU3ByZWFkIHRoaXMgaW50byB5b3VyIE1zZyBvYmplY3QuXG4gKi9cbmNvbnN0IGVycm9yTXNnID0ge1xuICAgIGVycm9yOiAoZXJyb3I6IEVycm9yKTogRXJyb3JNZXNzYWdlID0+ICh7IG5hbWU6IFwiZXJyb3JcIiwgZXJyb3IgfSksXG59O1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gb2JqZWN0IHRvIGhhbmRsZSBlcnJvciBtZXNzYWdlcyBpbiBhbiB1cGRhdGUgbWFwLlxuICogU3ByZWFkIHRoaXMgaW50byB5b3VyIGBVcGRhdGVNYXBgLlxuICogQHJldHVybnMgQW4gb2JqZWN0IGNvbnRhaW5pbmcgYW4gZXJyb3IgaGFuZGxlciBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gZXJyb3JIYW5kbGVyPFRNb2RlbCwgVE1lc3NhZ2U+ICgpOiB7IGVycm9yOiAobXNnOiBFcnJvck1lc3NhZ2UpID0+
|
|
58
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJlcnJvck1zZyIsImVycm9yIiwibmFtZSIsImVycm9ySGFuZGxlciIsImhhbmRsZUVycm9yIiwiU2VydmljZXMiLCJlcnJvck1pZGRsZXdhcmUiLCJsb2dnZXIiXSwic291cmNlcyI6WyIuLi9zcmMvRXJyb3JIYW5kbGluZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZXJ2aWNlcyB9IGZyb20gXCIuL0luaXRcIjtcbmltcG9ydCB7IFVwZGF0ZVJldHVyblR5cGUgfSBmcm9tIFwiLi9UeXBlc1wiO1xuXG4vKipcbiAqIEVycm9yIG1lc3NhZ2Ugb2JqZWN0LlxuICogQWRkIHRoaXMgdG8geW91ciBNZXNzYWdlIHR5cGUuXG4gKi9cbmludGVyZmFjZSBFcnJvck1lc3NhZ2Uge1xuICAgIG5hbWU6IFwiZXJyb3JcIixcbiAgICBlcnJvcjogRXJyb3IsXG59XG5cbi8qKlxuICogVGhpcyBvYmplY3QgY29udGFpbnMgdGhlIGZ1bmN0aW9uIHRvIGNyZWF0ZSBhbiBlcnJvciBtZXNzYWdlLlxuICogU3ByZWFkIHRoaXMgaW50byB5b3VyIE1zZyBvYmplY3QuXG4gKi9cbmNvbnN0IGVycm9yTXNnID0ge1xuICAgIGVycm9yOiAoZXJyb3I6IEVycm9yKTogRXJyb3JNZXNzYWdlID0+ICh7IG5hbWU6IFwiZXJyb3JcIiwgZXJyb3IgfSksXG59O1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gb2JqZWN0IHRvIGhhbmRsZSBlcnJvciBtZXNzYWdlcyBpbiBhbiB1cGRhdGUgbWFwLlxuICogU3ByZWFkIHRoaXMgaW50byB5b3VyIGBVcGRhdGVNYXBgLlxuICogQHJldHVybnMgQW4gb2JqZWN0IGNvbnRhaW5pbmcgYW4gZXJyb3IgaGFuZGxlciBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gZXJyb3JIYW5kbGVyPFRNb2RlbCwgVE1lc3NhZ2U+ICgpOiB7IGVycm9yOiAobXNnOiBFcnJvck1lc3NhZ2UpID0+IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTWVzc2FnZT4gfSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgZXJyb3IgKHsgZXJyb3IgfSkge1xuICAgICAgICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKGVycm9yKTtcbiAgICAgICAgfSxcbiAgICB9O1xufVxuXG4vKipcbiAqIEhhbmRsZXMgYW4gZXJyb3IuXG4gKiBMb2dzIHRoZSBlcnJvciBpZiBhIExvZ2dlciB3YXMgc3BlY2lmaWVkLlxuICogQ2FsbHMgdGhlIGVycm9yIGhhbmRsaW5nIG1pZGRsZXdhcmUgaWYgc3BlY2lmaWVkLlxuICogQHBhcmFtIHtFcnJvcn0gZXJyb3IgVGhlIGVycm9yLlxuICovXG5mdW5jdGlvbiBoYW5kbGVFcnJvcjxUTW9kZWwsIFRNZXNzYWdlPiAoZXJyb3I6IEVycm9yKTogVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPiB7XG4gICAgaWYgKFNlcnZpY2VzLmVycm9yTWlkZGxld2FyZSkge1xuICAgICAgICBTZXJ2aWNlcy5lcnJvck1pZGRsZXdhcmUoZXJyb3IpO1xuICAgIH1cbiAgICBTZXJ2aWNlcy5sb2dnZXI/LmVycm9yKGVycm9yKTtcblxuICAgIHJldHVybiBbe31dO1xufVxuXG5leHBvcnQgdHlwZSB7IEVycm9yTWVzc2FnZSB9O1xuXG5leHBvcnQge1xuICAgIGVycm9yTXNnLFxuICAgIGVycm9ySGFuZGxlcixcbiAgICBoYW5kbGVFcnJvcixcbn07Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFZQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQU1BLFFBQVEsR0FBRztFQUNiQyxLQUFLLEVBQUUsZUFBQ0EsTUFBRDtJQUFBLE9BQWlDO01BQUVDLElBQUksRUFBRSxPQUFSO01BQWlCRCxLQUFLLEVBQUxBO0lBQWpCLENBQWpDO0VBQUE7QUFETSxDQUFqQjtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUFDQSxTQUFTRSxZQUFULEdBQWlIO0VBQzdHLE9BQU87SUFDSEYsS0FERyx1QkFDZTtNQUFBLElBQVRBLEtBQVMsUUFBVEEsS0FBUztNQUNkLE9BQU9HLFdBQVcsQ0FBQ0gsS0FBRCxDQUFsQjtJQUNIO0VBSEUsQ0FBUDtBQUtIO0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDQSxTQUFTRyxXQUFULENBQXdDSCxLQUF4QyxFQUEwRjtFQUFBOztFQUN0RixJQUFJSSxjQUFBLENBQVNDLGVBQWIsRUFBOEI7SUFDMUJELGNBQUEsQ0FBU0MsZUFBVCxDQUF5QkwsS0FBekI7RUFDSDs7RUFDRCxvQkFBQUksY0FBQSxDQUFTRSxNQUFULHNFQUFpQk4sS0FBakIsQ0FBdUJBLEtBQXZCO0VBRUEsT0FBTyxDQUFDLEVBQUQsQ0FBUDtBQUNIIn0=
|
package/dist/Init.d.ts
CHANGED
|
@@ -9,11 +9,28 @@ interface Message {
|
|
|
9
9
|
declare type ErrorMiddlewareFunc = (error: Error) => void;
|
|
10
10
|
declare type DispatchMiddlewareFunc = (msg: Message) => void;
|
|
11
11
|
interface ElmOptions {
|
|
12
|
+
/**
|
|
13
|
+
* The logger to use for logging called messages and updated models.
|
|
14
|
+
* @type {Logger}
|
|
15
|
+
*/
|
|
12
16
|
logger?: Logger;
|
|
17
|
+
/**
|
|
18
|
+
* Middleware to call when error messages are handled by the `handleError` function.
|
|
19
|
+
* @type {ErrorMiddlewareFunc}
|
|
20
|
+
*/
|
|
13
21
|
errorMiddleware?: ErrorMiddlewareFunc;
|
|
22
|
+
/**
|
|
23
|
+
* Middleware to call for every processed message.
|
|
24
|
+
* @type {DispatchMiddlewareFunc}
|
|
25
|
+
*/
|
|
14
26
|
dispatchMiddleware?: DispatchMiddlewareFunc;
|
|
15
27
|
}
|
|
16
28
|
declare const Services: ElmOptions;
|
|
29
|
+
/**
|
|
30
|
+
* This initializes the Elmish module.
|
|
31
|
+
* You only need to call this function if you want to set some of the options.
|
|
32
|
+
* @param {ElmOptions} options
|
|
33
|
+
*/
|
|
17
34
|
declare function init(options: ElmOptions): void;
|
|
18
35
|
export type { Logger, Message, ErrorMiddlewareFunc, DispatchMiddlewareFunc, ElmOptions, };
|
|
19
36
|
export { Services, init, };
|
package/dist/Init.js
CHANGED
|
@@ -10,6 +10,12 @@ var Services = {
|
|
|
10
10
|
errorMiddleware: undefined,
|
|
11
11
|
dispatchMiddleware: undefined
|
|
12
12
|
};
|
|
13
|
+
/**
|
|
14
|
+
* This initializes the Elmish module.
|
|
15
|
+
* You only need to call this function if you want to set some of the options.
|
|
16
|
+
* @param {ElmOptions} options
|
|
17
|
+
*/
|
|
18
|
+
|
|
13
19
|
exports.Services = Services;
|
|
14
20
|
|
|
15
21
|
function init(options) {
|
|
@@ -17,4 +23,4 @@ function init(options) {
|
|
|
17
23
|
Services.errorMiddleware = options.errorMiddleware;
|
|
18
24
|
Services.dispatchMiddleware = options.dispatchMiddleware;
|
|
19
25
|
}
|
|
20
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTZXJ2aWNlcyIsImxvZ2dlciIsInVuZGVmaW5lZCIsImVycm9yTWlkZGxld2FyZSIsImRpc3BhdGNoTWlkZGxld2FyZSIsImluaXQiLCJvcHRpb25zIl0sInNvdXJjZXMiOlsiLi4vc3JjL0luaXQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW50ZXJmYWNlIExvZ2dlciB7XG4gICAgZGVidWc6ICguLi5hcmdzOiB1bmtub3duIFtdKSA9PiB2b2lkLFxuICAgIGluZm86ICguLi5hcmdzOiB1bmtub3duIFtdKSA9PiB2b2lkLFxuICAgIGVycm9yOiAoLi4uYXJnczogdW5rbm93biBbXSkgPT4gdm9pZCxcbn1cblxuaW50ZXJmYWNlIE1lc3NhZ2Uge1xuICAgIG5hbWU6IHN0cmluZyB8IHN5bWJvbCxcbn1cblxudHlwZSBFcnJvck1pZGRsZXdhcmVGdW5jID0gKGVycm9yOiBFcnJvcikgPT4gdm9pZDtcbnR5cGUgRGlzcGF0Y2hNaWRkbGV3YXJlRnVuYyA9IChtc2c6IE1lc3NhZ2UpID0+
|
|
26
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTZXJ2aWNlcyIsImxvZ2dlciIsInVuZGVmaW5lZCIsImVycm9yTWlkZGxld2FyZSIsImRpc3BhdGNoTWlkZGxld2FyZSIsImluaXQiLCJvcHRpb25zIl0sInNvdXJjZXMiOlsiLi4vc3JjL0luaXQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW50ZXJmYWNlIExvZ2dlciB7XG4gICAgZGVidWc6ICguLi5hcmdzOiB1bmtub3duIFtdKSA9PiB2b2lkLFxuICAgIGluZm86ICguLi5hcmdzOiB1bmtub3duIFtdKSA9PiB2b2lkLFxuICAgIGVycm9yOiAoLi4uYXJnczogdW5rbm93biBbXSkgPT4gdm9pZCxcbn1cblxuaW50ZXJmYWNlIE1lc3NhZ2Uge1xuICAgIG5hbWU6IHN0cmluZyB8IHN5bWJvbCxcbn1cblxudHlwZSBFcnJvck1pZGRsZXdhcmVGdW5jID0gKGVycm9yOiBFcnJvcikgPT4gdm9pZDtcbnR5cGUgRGlzcGF0Y2hNaWRkbGV3YXJlRnVuYyA9IChtc2c6IE1lc3NhZ2UpID0+IHZvaWQ7XG5cbmludGVyZmFjZSBFbG1PcHRpb25zIHtcbiAgICAvKipcbiAgICAgKiBUaGUgbG9nZ2VyIHRvIHVzZSBmb3IgbG9nZ2luZyBjYWxsZWQgbWVzc2FnZXMgYW5kIHVwZGF0ZWQgbW9kZWxzLlxuICAgICAqIEB0eXBlIHtMb2dnZXJ9XG4gICAgICovXG4gICAgbG9nZ2VyPzogTG9nZ2VyLFxuXG4gICAgLyoqXG4gICAgICogTWlkZGxld2FyZSB0byBjYWxsIHdoZW4gZXJyb3IgbWVzc2FnZXMgYXJlIGhhbmRsZWQgYnkgdGhlIGBoYW5kbGVFcnJvcmAgZnVuY3Rpb24uXG4gICAgICogQHR5cGUge0Vycm9yTWlkZGxld2FyZUZ1bmN9XG4gICAgICovXG4gICAgZXJyb3JNaWRkbGV3YXJlPzogRXJyb3JNaWRkbGV3YXJlRnVuYyxcblxuICAgIC8qKlxuICAgICAqIE1pZGRsZXdhcmUgdG8gY2FsbCBmb3IgZXZlcnkgcHJvY2Vzc2VkIG1lc3NhZ2UuXG4gICAgICogQHR5cGUge0Rpc3BhdGNoTWlkZGxld2FyZUZ1bmN9XG4gICAgICovXG4gICAgZGlzcGF0Y2hNaWRkbGV3YXJlPzogRGlzcGF0Y2hNaWRkbGV3YXJlRnVuYyxcbn1cblxuY29uc3QgU2VydmljZXM6IEVsbU9wdGlvbnMgPSB7XG4gICAgbG9nZ2VyOiB1bmRlZmluZWQsXG4gICAgZXJyb3JNaWRkbGV3YXJlOiB1bmRlZmluZWQsXG4gICAgZGlzcGF0Y2hNaWRkbGV3YXJlOiB1bmRlZmluZWQsXG59O1xuXG4vKipcbiAqIFRoaXMgaW5pdGlhbGl6ZXMgdGhlIEVsbWlzaCBtb2R1bGUuXG4gKiBZb3Ugb25seSBuZWVkIHRvIGNhbGwgdGhpcyBmdW5jdGlvbiBpZiB5b3Ugd2FudCB0byBzZXQgc29tZSBvZiB0aGUgb3B0aW9ucy5cbiAqIEBwYXJhbSB7RWxtT3B0aW9uc30gb3B0aW9uc1xuICovXG5mdW5jdGlvbiBpbml0IChvcHRpb25zOiBFbG1PcHRpb25zKTogdm9pZCB7XG4gICAgU2VydmljZXMubG9nZ2VyID0gb3B0aW9ucy5sb2dnZXI7XG4gICAgU2VydmljZXMuZXJyb3JNaWRkbGV3YXJlID0gb3B0aW9ucy5lcnJvck1pZGRsZXdhcmU7XG4gICAgU2VydmljZXMuZGlzcGF0Y2hNaWRkbGV3YXJlID0gb3B0aW9ucy5kaXNwYXRjaE1pZGRsZXdhcmU7XG59XG5cbmV4cG9ydCB0eXBlIHtcbiAgICBMb2dnZXIsXG4gICAgTWVzc2FnZSxcbiAgICBFcnJvck1pZGRsZXdhcmVGdW5jLFxuICAgIERpc3BhdGNoTWlkZGxld2FyZUZ1bmMsXG4gICAgRWxtT3B0aW9ucyxcbn07XG5cbmV4cG9ydCB7XG4gICAgU2VydmljZXMsXG4gICAgaW5pdCxcbn07Il0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBaUNBLElBQU1BLFFBQW9CLEdBQUc7RUFDekJDLE1BQU0sRUFBRUMsU0FEaUI7RUFFekJDLGVBQWUsRUFBRUQsU0FGUTtFQUd6QkUsa0JBQWtCLEVBQUVGO0FBSEssQ0FBN0I7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FBQ0EsU0FBU0csSUFBVCxDQUFlQyxPQUFmLEVBQTBDO0VBQ3RDTixRQUFRLENBQUNDLE1BQVQsR0FBa0JLLE9BQU8sQ0FBQ0wsTUFBMUI7RUFDQUQsUUFBUSxDQUFDRyxlQUFULEdBQTJCRyxPQUFPLENBQUNILGVBQW5DO0VBQ0FILFFBQVEsQ0FBQ0ksa0JBQVQsR0FBOEJFLE9BQU8sQ0FBQ0Ysa0JBQXRDO0FBQ0gifQ==
|