react-elmish 4.2.0 → 4.2.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/.eslintrc CHANGED
@@ -1,3 +1,3 @@
1
1
  {
2
- "extends": "heck/node"
2
+ "extends": ["heck/node", "heck/groupImports"]
3
3
  }
@@ -0,0 +1,3 @@
1
+ {
2
+ "typescript.tsdk": "node_modules/typescript/lib"
3
+ }
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
- * The **Model** holding the state of the component.
17
- * The **Props** for the component.
18
- * The **Init** function to create the initial model based on the props.
19
- * The **Messages** to dispatch which modify the model.
20
- * The **Update** function to modify the model based on a specific message.
21
- * The **View** which renders the component based on the current model.
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
- ### App.ts
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
- ### App.tsx
133
+ **App.tsx:**
105
134
 
106
135
  To put all this together and to render our component, we need a React component.
107
136
 
@@ -964,10 +993,12 @@ it("dispatches the correct message", async () => {
964
993
 
965
994
  This works for function components using the `useElmish` hook and class components.
966
995
 
967
- ## Migration from v1.x to v2.x
996
+ ## Migrations
997
+
998
+ ### From v1.x to v2.x
968
999
 
969
- * Use `Logger` and `Message` instead of `ILogger` and `IMessage`.
970
- * 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:
1000
+ - Use `Logger` and `Message` instead of `ILogger` and `IMessage`.
1001
+ - 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:
971
1002
 
972
1003
  ```ts
973
1004
  declare global {
@@ -975,7 +1006,7 @@ This works for function components using the `useElmish` hook and class componen
975
1006
  }
976
1007
  ```
977
1008
 
978
- ## Migration from v2.x to v3.x
1009
+ ### From v2.x to v3.x
979
1010
 
980
1011
  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.
981
1012
 
@@ -988,6 +1019,6 @@ import { useElmishMap } from "react-elmish/dist/legacy/useElmishMap";
988
1019
 
989
1020
  **Notice**: These functions are marked as deprecated and will be removed in a later release.
990
1021
 
991
- ## Migration from v3.x to v4.x
1022
+ ### From v3.x to v4.x
992
1023
 
993
1024
  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<TMsg> = (msg: TMsg) => void;
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<TMsg> = Sub<TMsg>[];
10
+ declare type Cmd<TMessage> = Sub<TMessage>[];
11
11
  /**
12
12
  * Contains functions to create commands.
13
- * @template TMsg Type of the Message discriminated union.
13
+ * @template TMessage Type of the Message discriminated union.
14
14
  */
15
- interface Command<TMsg> {
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 {TMsg} msg The specific message.
23
+ * @param {TMessage} msg The specific message.
23
24
  */
24
- ofMsg: (msg: TMsg) => Cmd<TMsg>;
25
+ ofMsg: (msg: TMessage) => Cmd<TMessage>;
25
26
  /**
26
27
  * Aggregates multiple commands.
27
- * @param {Cmd<TMsg> []} commands Array of commands.
28
+ * @param {Cmd<TMessage> []} commands Array of commands.
28
29
  */
29
- batch: (...commands: Cmd<TMsg>[]) => Cmd<TMsg>;
30
+ batch: (...commands: Cmd<TMessage>[]) => Cmd<TMessage>;
30
31
  /**
31
32
  * Command to call the subscriber.
32
- * @param {Sub<TMsg>} sub The subscriber function.
33
+ * @param {Sub<TMessage>} sub The subscriber function.
33
34
  */
34
- ofSub: (sub: Sub<TMsg>) => Cmd<TMsg>;
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) => TMsg, ofError: (error: Error) => TMsg, ...args: TArgs) => Cmd<TMsg>;
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) => TMsg, ...args: TArgs) => Cmd<TMsg>;
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) => TMsg, ...args: TArgs) => Cmd<TMsg>;
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) => TMsg, ofError: (error: Error) => TMsg, ...args: TArgs) => Cmd<TMsg>;
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) => TMsg, ...args: TArgs) => Cmd<TMsg>;
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) => TMsg, ...args: TArgs) => Cmd<TMsg>;
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 TMsg The type of the Msg discriminated union.
93
+ * @template TMessage The type of the Msg discriminated union.
93
94
  */
94
- declare function createCmd<TMsg>(): Command<TMsg>;
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 TMsg Type of the Message discriminated union.
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 TMsg The type of the Msg discriminated union.
23
+ * @template TMessage The type of the Msg discriminated union.
24
24
  */
25
25
  function createCmd() {
26
26
  return {
@@ -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,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjcmVhdGVDbWQiLCJub25lIiwib2ZNc2ciLCJtc2ciLCJkaXNwYXRjaCIsImJhdGNoIiwiY29tbWFuZHMiLCJmbGF0Iiwib2ZTdWIiLCJzdWIiLCJvZkZ1bmMiLCJlaXRoZXIiLCJ0YXNrIiwib2ZTdWNjZXNzIiwib2ZFcnJvciIsImFyZ3MiLCJiaW5kIiwicmVzdWx0IiwiZXgiLCJwZXJmb3JtIiwiZmFsbGJhY2siLCJhdHRlbXB0Iiwib2ZQcm9taXNlIiwidGhlbiIsImRlZmF1bHRGYWxsYmFja0hhbmRsZXIiXSwic291cmNlcyI6WyIuLi9zcmMvQ21kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVHlwZSBvZiB0aGUgZGlzcGF0Y2ggZnVuY3Rpb24uXG4gKi9cbnR5cGUgRGlzcGF0Y2g8VE1lc3NhZ2U+ID0gKG1zZzogVE1lc3NhZ2UpID0+IHZvaWQ7XG5cbnR5cGUgRmFsbGJhY2tIYW5kbGVyID0gKGVycm9yPzogRXJyb3IpID0+IHZvaWQ7XG50eXBlIFN1YjxUTXNnPiA9IChkaXNwYXRjaDogRGlzcGF0Y2g8VE1zZz4sIGZhbGxiYWNrPzogRmFsbGJhY2tIYW5kbGVyKSA9PiB2b2lkO1xuXG4vKipcbiAqIFR5cGUgb2YgYSBjb21tYW5kLlxuICovXG50eXBlIENtZDxUTWVzc2FnZT4gPSBTdWI8VE1lc3NhZ2U+IFtdO1xuXG4vKipcbiAqIENvbnRhaW5zIGZ1bmN0aW9ucyB0byBjcmVhdGUgY29tbWFuZHMuXG4gKiBAdGVtcGxhdGUgVE1lc3NhZ2UgVHlwZSBvZiB0aGUgTWVzc2FnZSBkaXNjcmltaW5hdGVkIHVuaW9uLlxuICovXG5pbnRlcmZhY2UgQ29tbWFuZDxUTWVzc2FnZT4ge1xuICAgIC8qKlxuICAgICAqIFJlcHJlc2VudHMgYW4gZW1wdHkgY29tbWFuZC5cbiAgICAgKiBAZGVwcmVjYXRlZCBEbyByZXR1cm4gbm90aGluZyAoYHVuZGVmaW5lZGApIGluc3RlYWQuXG4gICAgICovXG4gICAgbm9uZTogW10sXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGNvbW1hbmQgb3V0IG9mIGEgc3BlY2lmaWMgbWVzc2FnZS5cbiAgICAgKiBAcGFyYW0ge1RNZXNzYWdlfSBtc2cgVGhlIHNwZWNpZmljIG1lc3NhZ2UuXG4gICAgICovXG4gICAgb2ZNc2c6IChtc2c6IFRNZXNzYWdlKSA9PiBDbWQ8VE1lc3NhZ2U+LFxuICAgIC8qKlxuICAgICAqIEFnZ3JlZ2F0ZXMgbXVsdGlwbGUgY29tbWFuZHMuXG4gICAgICogQHBhcmFtIHtDbWQ8VE1lc3NhZ2U+IFtdfSBjb21tYW5kcyBBcnJheSBvZiBjb21tYW5kcy5cbiAgICAgKi9cbiAgICBiYXRjaDogKC4uLmNvbW1hbmRzOiBDbWQ8VE1lc3NhZ2U+IFtdKSA9PiBDbWQ8VE1lc3NhZ2U+LFxuICAgIC8qKlxuICAgICAqIENvbW1hbmQgdG8gY2FsbCB0aGUgc3Vic2NyaWJlci5cbiAgICAgKiBAcGFyYW0ge1N1YjxUTWVzc2FnZT59IHN1YiBUaGUgc3Vic2NyaWJlciBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBvZlN1YjogKHN1YjogU3ViPFRNZXNzYWdlPikgPT4gQ21kPFRNZXNzYWdlPixcbiAgICAvKipcbiAgICAgKiBQcm92aWRlcyBmdW5jdGlvbmFsaXRpZXMgdG8gY3JlYXRlIGNvbW1hbmRzIGZyb20gc2ltcGxlIGZ1bmN0aW9ucy5cbiAgICAgKi9cbiAgICBvZkZ1bmM6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICogQ3JlYXRlcyBhIGNvbW1hbmQgb3V0IG9mIGEgc2ltcGxlIGZ1bmN0aW9uIGFuZCBtYXBzIHRoZSByZXN1bHQuXG4gICAgICAgICogQHBhcmFtIHRhc2sgVGhlIGZ1bmN0aW9uIHRvIGNhbGwuXG4gICAgICAgICogQHBhcmFtIG9mU3VjY2VzcyBDcmVhdGVzIHRoZSBtZXNzYWdlIHRvIGRpc3BhdGNoIGFmdGVyIGEgc3VjY2Vzc2Z1bCBjYWxsIG9mIHRoZSB0YXNrLlxuICAgICAgICAqIEBwYXJhbSBvZkVycm9yIENyZWF0ZXMgdGhlIG1lc3NhZ2UgdG8gZGlzcGF0Y2ggd2hlbiBhbiBlcnJvciBvY2N1cnJlZC5cbiAgICAgICAgKiBAcGFyYW0gYXJncyBUaGUgcGFyYW1ldGVycyBvZiB0aGUgdGFzay5cbiAgICAgICAgKi9cbiAgICAgICAgZWl0aGVyOiA8VEFyZ3MgZXh0ZW5kcyB1bmtub3duIFtdLCBUUmV0dXJuPih0YXNrOiAoLi4uYXJnczogVEFyZ3MpID0+IFRSZXR1cm4sIG9mU3VjY2VzczogKHJlc3VsdDogVFJldHVybikgPT4gVE1lc3NhZ2UsIG9mRXJyb3I6IChlcnJvcjogRXJyb3IpID0+IFRNZXNzYWdlLCAuLi5hcmdzOiBUQXJncykgPT4gQ21kPFRNZXNzYWdlPixcbiAgICAgICAgLyoqXG4gICAgICAgICogQ3JlYXRlcyBhIGNvbW1hbmQgb3V0IG9mIGEgc2ltcGxlIGZ1bmN0aW9uIGFuZCBpZ25vcmVzIHRoZSBlcnJvciBjYXNlLlxuICAgICAgICAqIEBwYXJhbSB0YXNrIFRoZSBmdW5jdGlvbiB0byBjYWxsLlxuICAgICAgICAqIEBwYXJhbSBvZlN1Y2Nlc3MgQ3JlYXRlcyB0aGUgbWVzc2FnZSB0byBkaXNwYXRjaCBhZnRlciBhIHN1Y2Nlc3NmdWwgY2FsbCBvZiB0aGUgdGFzay5cbiAgICAgICAgKiBAcGFyYW0gYXJncyBUaGUgcGFyYW1ldGVycyBvZiB0aGUgdGFzay5cbiAgICAgICAgKi9cbiAgICAgICAgcGVyZm9ybTogPFRBcmdzIGV4dGVuZHMgdW5rbm93biBbXSwgVFJldHVybj4odGFzazogKC4uLmFyZ3M6IFRBcmdzKSA9PiBUUmV0dXJuLCBvZlN1Y2Nlc3M6IChyZXN1bHQ6IFRSZXR1cm4pID0+IFRNZXNzYWdlLCAuLi5hcmdzOiBUQXJncykgPT4gQ21kPFRNZXNzYWdlPixcbiAgICAgICAgLyoqXG4gICAgICAgICogQ3JlYXRlcyBhIGNvbW1hbmQgb3V0IG9mIGEgc2ltcGxlIGZ1bmN0aW9uIGFuZCBpZ25vcmVzIHRoZSBzdWNjZXNzIGNhc2UuXG4gICAgICAgICogQHBhcmFtIHRhc2sgVGhlIGZ1bmN0aW9uIHRvIGNhbGwuXG4gICAgICAgICogQHBhcmFtIG9mRXJyb3IgQ3JlYXRlcyB0aGUgbWVzc2FnZSB0byBkaXNwYXRjaCB3aGVuIGFuIGVycm9yIG9jY3VycmVkLlxuICAgICAgICAqIEBwYXJhbSBhcmdzIFRoZSBwYXJhbWV0ZXJzIG9mIHRoZSB0YXNrLlxuICAgICAgICAqL1xuICAgICAgICBhdHRlbXB0OiA8VEFyZ3MgZXh0ZW5kcyB1bmtub3duIFtdLCBUUmV0dXJuPih0YXNrOiAoLi4uYXJnczogVEFyZ3MpID0+IFRSZXR1cm4sIG9mRXJyb3I6IChlcnJvcjogRXJyb3IpID0+IFRNZXNzYWdlLCAuLi5hcmdzOiBUQXJncykgPT4gQ21kPFRNZXNzYWdlPixcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIFByb3ZpZGVzIGZ1bmN0aW9uYWxpdGllcyB0byBjcmVhdGUgY29tbWFuZHMgZnJvbSBhc3luYyBmdW5jdGlvbnMuXG4gICAgICovXG4gICAgb2ZQcm9taXNlOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAqIENyZWF0ZXMgYSBjb21tYW5kIG91dCBvZiBhbiBhc3luYyBmdW5jdGlvbiBhbmQgbWFwcyB0aGUgcmVzdWx0LlxuICAgICAgICAqIEBwYXJhbSB0YXNrIFRoZSBhc3luYyBmdW5jdGlvbiB0byBjYWxsLlxuICAgICAgICAqIEBwYXJhbSBvZlN1Y2Nlc3MgQ3JlYXRlcyB0aGUgbWVzc2FnZSB0byBkaXNwYXRjaCB3aGVuIHRoZSBwcm9taXNlIGlzIHJlc29sdmVkLlxuICAgICAgICAqIEBwYXJhbSBvZkVycm9yIENyZWF0ZXMgdGhlIG1lc3NhZ2UgdG8gZGlzcGF0Y2ggd2hlbiB0aGUgcHJvbWlzZSBpcyByZWplY3RlZC5cbiAgICAgICAgKiBAcGFyYW0gYXJncyBUaGUgcGFyYW1ldGVycyBvZiB0aGUgdGFzay5cbiAgICAgICAgKi9cbiAgICAgICAgZWl0aGVyOiA8VEFyZ3MgZXh0ZW5kcyB1bmtub3duIFtdLCBUUmV0dXJuPih0YXNrOiAoLi4uYXJnczogVEFyZ3MpID0+IFByb21pc2U8VFJldHVybj4sIG9mU3VjY2VzczogKHJlc3VsdDogVFJldHVybikgPT4gVE1lc3NhZ2UsIG9mRXJyb3I6IChlcnJvcjogRXJyb3IpID0+IFRNZXNzYWdlLCAuLi5hcmdzOiBUQXJncykgPT4gQ21kPFRNZXNzYWdlPixcbiAgICAgICAgLyoqXG4gICAgICAgICogQ3JlYXRlcyBhIGNvbW1hbmQgb3V0IG9mIGFuIGFzeW5jIGZ1bmN0aW9uIGFuZCBpZ25vcmVzIHRoZSBlcnJvciBjYXNlLlxuICAgICAgICAqIEBwYXJhbSB0YXNrIFRoZSBhc3luYyBmdW5jdGlvbiB0byBjYWxsLlxuICAgICAgICAqIEBwYXJhbSBvZlN1Y2Nlc3MgQ3JlYXRlcyB0aGUgbWVzc2FnZSB0byBkaXNwYXRjaCB3aGVuIHRoZSBwcm9taXNlIGlzIHJlc29sdmVkLlxuICAgICAgICAqIEBwYXJhbSBhcmdzIFRoZSBwYXJhbWV0ZXJzIG9mIHRoZSB0YXNrLlxuICAgICAgICAqL1xuICAgICAgICBwZXJmb3JtOiA8VEFyZ3MgZXh0ZW5kcyB1bmtub3duIFtdLCBUUmV0dXJuPih0YXNrOiAoLi4uYXJnczogVEFyZ3MpID0+IFByb21pc2U8VFJldHVybj4sIG9mU3VjY2VzczogKHJlc3VsdDogVFJldHVybikgPT4gVE1lc3NhZ2UsIC4uLmFyZ3M6IFRBcmdzKSA9PiBDbWQ8VE1lc3NhZ2U+LFxuICAgICAgICAvKipcbiAgICAgICAgKiBDcmVhdGVzIGEgY29tbWFuZCBvdXQgb2YgYW4gYXN5bmMgZnVuY3Rpb24gYW5kIGlnbm9yZXMgdGhlIHN1Y2Nlc3MgY2FzZS5cbiAgICAgICAgKiBAcGFyYW0gdGFzayBUaGUgYXN5bmMgZnVuY3Rpb24gdG8gY2FsbC5cbiAgICAgICAgKiBAcGFyYW0gb2ZFcnJvciBDcmVhdGVzIHRoZSBtZXNzYWdlIHRvIGRpc3BhdGNoIHdoZW4gdGhlIHByb21pc2UgaXMgcmVqZWN0ZWQuXG4gICAgICAgICogQHBhcmFtIGFyZ3MgVGhlIHBhcmFtZXRlcnMgb2YgdGhlIHRhc2suXG4gICAgICAgICovXG4gICAgICAgIGF0dGVtcHQ6IDxUQXJncyBleHRlbmRzIHVua25vd24gW10sIFRSZXR1cm4+KHRhc2s6ICguLi5hcmdzOiBUQXJncykgPT4gUHJvbWlzZTxUUmV0dXJuPiwgb2ZFcnJvcjogKGVycm9yOiBFcnJvcikgPT4gVE1lc3NhZ2UsIC4uLmFyZ3M6IFRBcmdzKSA9PiBDbWQ8VE1lc3NhZ2U+LFxuICAgIH0sXG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIHR5cGVkIGluc3RhbmNlIG9mIHRoZSBDb21tYW5kIGNsYXNzLlxuICogQHRlbXBsYXRlIFRNZXNzYWdlIFRoZSB0eXBlIG9mIHRoZSBNc2cgZGlzY3JpbWluYXRlZCB1bmlvbi5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlQ21kPFRNZXNzYWdlPiAoKTogQ29tbWFuZDxUTWVzc2FnZT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIG5vbmU6IFtdLFxuICAgICAgICBvZk1zZyAobXNnOiBUTWVzc2FnZSk6IENtZDxUTWVzc2FnZT4ge1xuICAgICAgICAgICAgcmV0dXJuIFtkaXNwYXRjaCA9PiBkaXNwYXRjaChtc2cpXTtcbiAgICAgICAgfSxcbiAgICAgICAgYmF0Y2ggKC4uLmNvbW1hbmRzOiBDbWQ8VE1lc3NhZ2U+IFtdKTogQ21kPFRNZXNzYWdlPiB7XG4gICAgICAgICAgICByZXR1cm4gY29tbWFuZHMuZmxhdCgpO1xuICAgICAgICB9LFxuICAgICAgICBvZlN1YiAoc3ViOiBTdWI8VE1lc3NhZ2U+KTogQ21kPFRNZXNzYWdlPiB7XG4gICAgICAgICAgICByZXR1cm4gW3N1Yl07XG4gICAgICAgIH0sXG4gICAgICAgIG9mRnVuYzoge1xuICAgICAgICAgICAgZWl0aGVyPFRBcmdzIGV4dGVuZHMgdW5rbm93biBbXSwgVFJldHVybj4odGFzazogKC4uLmFyZ3M6IFRBcmdzKSA9PiBUUmV0dXJuLCBvZlN1Y2Nlc3M6IChyZXN1bHQ6IFRSZXR1cm4pID0+IFRNZXNzYWdlLCBvZkVycm9yOiAoZXJyb3I6IEVycm9yKSA9PiBUTWVzc2FnZSwgLi4uYXJnczogVEFyZ3MpOiBDbWQ8VE1lc3NhZ2U+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBiaW5kID0gKGRpc3BhdGNoOiBEaXNwYXRjaDxUTWVzc2FnZT4pOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRhc2soLi4uYXJncyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoKG9mU3VjY2VzcyhyZXN1bHQpKTtcbiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZXg6IHVua25vd24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoKG9mRXJyb3IoZXggYXMgRXJyb3IpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gW2JpbmRdO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHBlcmZvcm08VEFyZ3MgZXh0ZW5kcyB1bmtub3duIFtdLCBUUmV0dXJuPih0YXNrOiAoLi4uYXJnczogVEFyZ3MpID0+IFRSZXR1cm4sIG9mU3VjY2VzczogKHJlc3VsdDogVFJldHVybikgPT4gVE1lc3NhZ2UsIC4uLmFyZ3M6IFRBcmdzKTogQ21kPFRNZXNzYWdlPiB7XG4gICAgICAgICAgICAgICAgY29uc3QgYmluZCA9IChkaXNwYXRjaDogRGlzcGF0Y2g8VE1lc3NhZ2U+LCBmYWxsYmFjaz86IEZhbGxiYWNrSGFuZGxlcik6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gdGFzayguLi5hcmdzKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2gob2ZTdWNjZXNzKHJlc3VsdCkpO1xuICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChleDogdW5rbm93bikge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsbGJhY2soZXggYXMgRXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBbYmluZF07XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYXR0ZW1wdDxUQXJncyBleHRlbmRzIHVua25vd24gW10sIFRSZXR1cm4+KHRhc2s6ICguLi5hcmdzOiBUQXJncykgPT4gVFJldHVybiwgb2ZFcnJvcjogKGVycm9yOiBFcnJvcikgPT4gVE1lc3NhZ2UsIC4uLmFyZ3M6IFRBcmdzKTogQ21kPFRNZXNzYWdlPiB7XG4gICAgICAgICAgICAgICAgY29uc3QgYmluZCA9IChkaXNwYXRjaDogRGlzcGF0Y2g8VE1lc3NhZ2U+LCBmYWxsYmFjaz86IEZhbGxiYWNrSGFuZGxlcik6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGFzayguLi5hcmdzKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsbGJhY2soKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZXg6IHVua25vd24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoKG9mRXJyb3IoZXggYXMgRXJyb3IpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gW2JpbmRdO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgb2ZQcm9taXNlOiB7XG4gICAgICAgICAgICBlaXRoZXI8VEFyZ3MgZXh0ZW5kcyB1bmtub3duIFtdLCBUUmV0dXJuPih0YXNrOiAoLi4uYXJnczogVEFyZ3MpID0+IFByb21pc2U8VFJldHVybj4sIG9mU3VjY2VzczogKHJlc3VsdDogVFJldHVybikgPT4gVE1lc3NhZ2UsIG9mRXJyb3I6IChlcnJvcjogRXJyb3IpID0+IFRNZXNzYWdlLCAuLi5hcmdzOiBUQXJncyk6IENtZDxUTWVzc2FnZT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJpbmQgPSAoZGlzcGF0Y2g6IERpc3BhdGNoPFRNZXNzYWdlPik6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0YXNrKC4uLmFyZ3MpLnRoZW4ocmVzdWx0ID0+IGRpc3BhdGNoKG9mU3VjY2VzcyhyZXN1bHQpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5jYXRjaCgoZXg6IEVycm9yKSA9PiBkaXNwYXRjaChvZkVycm9yKGV4KSkpO1xuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gW2JpbmRdO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHBlcmZvcm08VEFyZ3MgZXh0ZW5kcyB1bmtub3duIFtdLCBUUmV0dXJuPih0YXNrOiAoLi4uYXJnczogVEFyZ3MpID0+IFByb21pc2U8VFJldHVybj4sIG9mU3VjY2VzczogKHJlc3VsdDogVFJldHVybikgPT4gVE1lc3NhZ2UsIC4uLmFyZ3M6IFRBcmdzKTogQ21kPFRNZXNzYWdlPiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGVmYXVsdEZhbGxiYWNrSGFuZGxlciA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gYmxhbmtcbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgY29uc3QgYmluZCA9IChkaXNwYXRjaDogRGlzcGF0Y2g8VE1lc3NhZ2U+LCBmYWxsYmFjazogRmFsbGJhY2tIYW5kbGVyID0gZGVmYXVsdEZhbGxiYWNrSGFuZGxlcik6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0YXNrKC4uLmFyZ3MpLnRoZW4ocmVzdWx0ID0+IGRpc3BhdGNoKG9mU3VjY2VzcyhyZXN1bHQpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5jYXRjaChmYWxsYmFjayk7XG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBbYmluZF07XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYXR0ZW1wdDxUQXJncyBleHRlbmRzIHVua25vd24gW10sIFRSZXR1cm4+KHRhc2s6ICguLi5hcmdzOiBUQXJncykgPT4gUHJvbWlzZTxUUmV0dXJuPiwgb2ZFcnJvcjogKGVycm9yOiBFcnJvcikgPT4gVE1lc3NhZ2UsIC4uLmFyZ3M6IFRBcmdzKTogQ21kPFRNZXNzYWdlPiB7XG4gICAgICAgICAgICAgICAgY29uc3QgYmluZCA9IChkaXNwYXRjaDogRGlzcGF0Y2g8VE1lc3NhZ2U+LCBmYWxsYmFjaz86IEZhbGxiYWNrSGFuZGxlcik6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0YXNrKC4uLmFyZ3MpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsbGJhY2soKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5jYXRjaCgoZXg6IEVycm9yKSA9PiBkaXNwYXRjaChvZkVycm9yKGV4KSkpO1xuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gW2JpbmRdO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICB9O1xufVxuXG5leHBvcnQgdHlwZSB7XG4gICAgRGlzcGF0Y2gsXG4gICAgQ21kLFxufTtcblxuZXhwb3J0IHtcbiAgICBjcmVhdGVDbWQsXG59OyJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBO0FBQ0E7QUFDQTs7QUFNQTtBQUNBO0FBQ0E7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
@@ -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 elmish pattern.
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 TMsg The type of the messages.
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, TMsg extends Message, TProps> extends React.Component<TProps> {
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, TMsg>, name: string);
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 {TMsg} msg The message to dispatch.
51
+ * @param {TMessage} msg The message to dispatch.
52
52
  * @memberof ElmComponent
53
53
  */
54
- readonly dispatch: (msg: TMsg) => void;
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 {TMsg} msg The message to process.
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, TMsg>;
64
+ abstract update: UpdateFunction<TProps, TModel, TMessage>;
65
65
  }
66
66
  export { ElmComponent, };
@@ -7,12 +7,12 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.ElmComponent = void 0;
9
9
 
10
+ var _react = _interopRequireDefault(require("react"));
11
+
10
12
  var _Init = require("./Init");
11
13
 
12
14
  var _fakeOptions = require("./Testing/fakeOptions");
13
15
 
14
- var _react = _interopRequireDefault(require("react"));
15
-
16
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
17
17
 
18
18
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
@@ -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 elmish pattern.
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 TMsg The type of the messages.
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) {
@@ -226,7 +226,7 @@ var ElmComponent = /*#__PURE__*/function (_React$Component) {
226
226
  }
227
227
  /**
228
228
  * Dispatches a message.
229
- * @param {TMsg} msg The message to dispatch.
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,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFbG1Db21wb25lbnQiLCJwcm9wcyIsImluaXQiLCJuYW1lIiwibXNnIiwibW9kZWxIYXNDaGFuZ2VkIiwibW9kZWwiLCJjdXJyZW50TW9kZWwiLCJPYmplY3QiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwibGVuZ3RoIiwicmVlbnRlcmVkIiwiYnVmZmVyIiwicHVzaCIsIm5leHRNc2ciLCJtb2RpZmllZCIsIlNlcnZpY2VzIiwibG9nZ2VyIiwiaW5mbyIsImNvbXBvbmVudE5hbWUiLCJkZWJ1ZyIsImRpc3BhdGNoTWlkZGxld2FyZSIsInVwZGF0ZSIsImNtZCIsImV4ZWNDbWQiLCJleCIsImVycm9yIiwic2hpZnQiLCJtb3VudGVkIiwiZm9yY2VVcGRhdGUiLCJmYWtlT3B0aW9ucyIsImdldEZha2VPcHRpb25zT25jZSIsImRpc3BhdGNoIiwiaW5pdENtZCIsImZvckVhY2giLCJjYWxsIiwiUmVhY3QiLCJDb21wb25lbnQiXSwic291cmNlcyI6WyIuLi9zcmMvRWxtQ29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluaXRGdW5jdGlvbiwgTnVsbGFibGUsIFVwZGF0ZUZ1bmN0aW9uIH0gZnJvbSBcIi4vVHlwZXNcIjtcbmltcG9ydCB7IE1lc3NhZ2UsIFNlcnZpY2VzIH0gZnJvbSBcIi4vSW5pdFwiO1xuaW1wb3J0IHsgQ21kIH0gZnJvbSBcIi4vQ21kXCI7XG5pbXBvcnQgeyBnZXRGYWtlT3B0aW9uc09uY2UgfSBmcm9tIFwiLi9UZXN0aW5nL2Zha2VPcHRpb25zXCI7XG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5cbi8qKlxuICogQWJzdHJhY3QgY2xhc3MgZm9yIGEgcmVhY3QgY2xhc3MgY29tcG9uZW50IHVzaW5nIHRoZSBlbG1pc2ggcGF0dGVybi5cbiAqIEBleHBvcnRcbiAqIEBhYnN0cmFjdFxuICogQGNsYXNzIEVsbUNvbXBvbmVudFxuICogQGV4dGVuZHMge0NvbXBvbmVudDxUUHJvcHMsIFRNb2RlbD59XG4gKiBAdGVtcGxhdGUgVE1vZGVsIFRoZSB0eXBlIG9mIHRoZSBtb2RlbC5cbiAqIEB0ZW1wbGF0ZSBUTXNnIFRoZSB0eXBlIG9mIHRoZSBtZXNzYWdlcy5cbiAqIEB0ZW1wbGF0ZSBUUHJvcHMgVGhlIHR5cGUgb2YgdGhlIHByb3BzLlxuICovXG5hYnN0cmFjdCBjbGFzcyBFbG1Db21wb25lbnQ8VE1vZGVsLCBUTXNnIGV4dGVuZHMgTWVzc2FnZSwgVFByb3BzPiBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxUUHJvcHM+IHtcbiAgICBwcml2YXRlIGluaXRDbWQ6IE51bGxhYmxlPENtZDxUTXNnPj4gfCB1bmRlZmluZWQ7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjb21wb25lbnROYW1lOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBidWZmZXI6IFRNc2cgW10gPSBbXTtcbiAgICBwcml2YXRlIHJlZW50ZXJlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgbW91bnRlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgY3VycmVudE1vZGVsOiBUTW9kZWw7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIEVsbUNvbXBvbmVudC5cbiAgICAgKiBAcGFyYW0ge1RQcm9wc30gcHJvcHMgVGhlIHByb3BzIGZvciB0aGUgY29tcG9uZW50LlxuICAgICAqIEBwYXJhbSB7KCkgPT4gVE1vZGVsfSBpbml0IFRoZSBpbml0aWFsaXplciBmdW5jdGlvbi5cbiAgICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgY29tcG9uZW50LlxuICAgICAqIEBtZW1iZXJvZiBFbG1Db21wb25lbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgY29uc3RydWN0b3IgKHByb3BzOiBUUHJvcHMsIGluaXQ6IEluaXRGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1zZz4sIG5hbWU6IHN0cmluZykge1xuICAgICAgICBzdXBlcihwcm9wcyk7XG5cbiAgICAgICAgY29uc3QgZmFrZU9wdGlvbnMgPSBnZXRGYWtlT3B0aW9uc09uY2UoKTtcblxuICAgICAgICBpZiAoZmFrZU9wdGlvbnM/LmRpc3BhdGNoKSB7XG4gICAgICAgICAgICB0aGlzLmRpc3BhdGNoID0gZmFrZU9wdGlvbnMuZGlzcGF0Y2g7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBbbW9kZWwsIGNtZF0gPSBmYWtlT3B0aW9ucz8ubW9kZWwgPyBbZmFrZU9wdGlvbnMubW9kZWwgYXMgVE1vZGVsXSA6IGluaXQodGhpcy5wcm9wcyk7XG5cbiAgICAgICAgdGhpcy5jb21wb25lbnROYW1lID0gbmFtZTtcbiAgICAgICAgdGhpcy5jdXJyZW50TW9kZWwgPSBtb2RlbDtcbiAgICAgICAgdGhpcy5pbml0Q21kID0gY21kO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIElzIGNhbGxlZCB3aGVuIHRoZSBjb21wb25lbnQgaXMgbG9hZGVkLlxuICAgICAqIFdoZW4gaW1wbGVtZW50aW5nIHRoaXMgbWV0aG9kLCB0aGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBoYXMgdG8gYmUgY2FsbGVkLlxuICAgICAqIEBtZW1iZXJvZiBFbG1Db21wb25lbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgY29tcG9uZW50RGlkTW91bnQgKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1vdW50ZWQgPSB0cnVlO1xuXG4gICAgICAgIGlmICh0aGlzLmluaXRDbWQpIHtcbiAgICAgICAgICAgIHRoaXMuZXhlY0NtZCh0aGlzLmluaXRDbWQpO1xuICAgICAgICAgICAgdGhpcy5pbml0Q21kID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIElzIGNhbGxlZCBiZWZvcmUgdW5sb2FkaW5nIHRoZSBjb21wb25lbnQuXG4gICAgICogV2hlbiBpbXBsZW1lbnRpbmcgdGhpcyBtZXRob2QsIHRoZSBiYXNlIGltcGxlbWVudGF0aW9uIGhhcyB0byBiZSBjYWxsZWQuXG4gICAgICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBjb21wb25lbnRXaWxsVW5tb3VudCAoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubW91bnRlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgZXhlY0NtZCAoY21kOiBDbWQ8VE1zZz4pOiB2b2lkIHtcbiAgICAgICAgY21kLmZvckVhY2goY2FsbCA9PiB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNhbGwodGhpcy5kaXNwYXRjaCk7XG4gICAgICAgICAgICB9IGNhdGNoIChleDogdW5rbm93bikge1xuICAgICAgICAgICAgICAgIFNlcnZpY2VzLmxvZ2dlcj8uZXJyb3IoZXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IG1vZGVsLlxuICAgICAqIEByZWFkb25seVxuICAgICAqIEB0eXBlIHtSZWFkb25seTxUTW9kZWw+fVxuICAgICAqIEBtZW1iZXJvZiBFbG1Db21wb25lbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IG1vZGVsICgpOiBSZWFkb25seTxUTW9kZWw+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudE1vZGVsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERpc3BhdGNoZXMgYSBtZXNzYWdlLlxuICAgICAqIEBwYXJhbSB7VE1zZ30gbXNnIFRoZSBtZXNzYWdlIHRvIGRpc3BhdGNoLlxuICAgICAqIEBtZW1iZXJvZiBFbG1Db21wb25lbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgZGlzcGF0Y2ggPSAobXNnOiBUTXNnKTogdm9pZCA9PiB7XG4gICAgICAgIGNvbnN0IG1vZGVsSGFzQ2hhbmdlZCA9IChtb2RlbDogUGFydGlhbDxUTW9kZWw+KTogYm9vbGVhbiA9PiBtb2RlbCAhPT0gdGhpcy5jdXJyZW50TW9kZWwgJiYgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMobW9kZWwpLmxlbmd0aCA+IDA7XG5cbiAgICAgICAgaWYgKHRoaXMucmVlbnRlcmVkKSB7XG4gICAgICAgICAgICB0aGlzLmJ1ZmZlci5wdXNoKG1zZyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJlZW50ZXJlZCA9IHRydWU7XG5cbiAgICAgICAgICAgIGxldCBuZXh0TXNnOiBUTXNnIHwgdW5kZWZpbmVkID0gbXNnO1xuICAgICAgICAgICAgbGV0IG1vZGlmaWVkID0gZmFsc2U7XG5cbiAgICAgICAgICAgIHdoaWxlIChuZXh0TXNnKSB7XG4gICAgICAgICAgICAgICAgU2VydmljZXMubG9nZ2VyPy5pbmZvKFwiRWxtXCIsIFwibWVzc2FnZSBmcm9tXCIsIHRoaXMuY29tcG9uZW50TmFtZSwgbmV4dE1zZy5uYW1lKTtcbiAgICAgICAgICAgICAgICBTZXJ2aWNlcy5sb2dnZXI/LmRlYnVnKFwiRWxtXCIsIFwibWVzc2FnZSBmcm9tXCIsIHRoaXMuY29tcG9uZW50TmFtZSwgbmV4dE1zZyk7XG5cbiAgICAgICAgICAgICAgICBpZiAoU2VydmljZXMuZGlzcGF0Y2hNaWRkbGV3YXJlKSB7XG4gICAgICAgICAgICAgICAgICAgIFNlcnZpY2VzLmRpc3BhdGNoTWlkZGxld2FyZShuZXh0TXNnKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBbbW9kZWwsIGNtZF0gPSB0aGlzLnVwZGF0ZSh0aGlzLmN1cnJlbnRNb2RlbCwgbmV4dE1zZywgdGhpcy5wcm9wcyk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKG1vZGVsSGFzQ2hhbmdlZChtb2RlbCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudE1vZGVsID0geyAuLi50aGlzLmN1cnJlbnRNb2RlbCwgLi4ubW9kZWwgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChjbWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZXhlY0NtZChjbWQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXg6IHVua25vd24pIHtcbiAgICAgICAgICAgICAgICAgICAgU2VydmljZXMubG9nZ2VyPy5lcnJvcihleCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgbmV4dE1zZyA9IHRoaXMuYnVmZmVyLnNoaWZ0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnJlZW50ZXJlZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5tb3VudGVkICYmIG1vZGlmaWVkKSB7XG4gICAgICAgICAgICAgICAgU2VydmljZXMubG9nZ2VyPy5kZWJ1ZyhcIkVsbVwiLCBcInVwZGF0ZSBtb2RlbCBmb3JcIiwgdGhpcy5jb21wb25lbnROYW1lLCB0aGlzLmN1cnJlbnRNb2RlbCk7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JjZVVwZGF0ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEZ1bmN0aW9uIHRvIG1vZGlmeSB0aGUgbW9kZWwgYmFzZWQgb24gYSBtZXNzYWdlLlxuICAgICAqIEBwYXJhbSB7VE1vZGVsfSBtb2RlbCBUaGUgY3VycmVudCBtb2RlbC5cbiAgICAgKiBAcGFyYW0ge1RNc2d9IG1zZyBUaGUgbWVzc2FnZSB0byBwcm9jZXNzLlxuICAgICAqIEBwYXJhbSB7VFByb3BzfSBwcm9wcyBUaGUgcHJvcHMgb2YgdGhlIGNvbXBvbmVudC5cbiAgICAgKiBAcmV0dXJucyBUaGUgbmV3IG1vZGVsIChjYW4gYWxzbyBiZSBhbiBlbXB0eSBvYmplY3Qge30pIGFuZCBhbiBvcHRpb25hbCBuZXcgbWVzc2FnZSB0byBkaXNwYXRjaC5cbiAgICAgKiBAYWJzdHJhY3RcbiAgICAgKiBAbWVtYmVyb2YgRWxtQ29tcG9uZW50XG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IHVwZGF0ZTogVXBkYXRlRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNc2c+O1xufVxuXG5leHBvcnQge1xuICAgIEVsbUNvbXBvbmVudCxcbn07Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFDQTs7QUFFQTs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7SUFDZUEsWTs7Ozs7RUFRWDtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNJLHNCQUFvQkMsS0FBcEIsRUFBbUNDLElBQW5DLEVBQTZFQyxJQUE3RSxFQUEyRjtJQUFBOztJQUFBOztJQUN2RiwwQkFBTUYsS0FBTjs7SUFEdUY7O0lBQUE7O0lBQUEseURBWnhELEVBWXdEOztJQUFBLDREQVh2RSxLQVd1RTs7SUFBQSwwREFWekUsS0FVeUU7O0lBQUE7O0lBQUEsMkRBZ0VoRSxVQUFDRyxHQUFELEVBQXFCO01BQzVDLElBQU1DLGVBQWUsR0FBRyxTQUFsQkEsZUFBa0IsQ0FBQ0MsS0FBRDtRQUFBLE9BQXFDQSxLQUFLLEtBQUssTUFBS0MsWUFBZixJQUErQkMsTUFBTSxDQUFDQyxtQkFBUCxDQUEyQkgsS0FBM0IsRUFBa0NJLE1BQWxDLEdBQTJDLENBQS9HO01BQUEsQ0FBeEI7O01BRUEsSUFBSSxNQUFLQyxTQUFULEVBQW9CO1FBQ2hCLE1BQUtDLE1BQUwsQ0FBWUMsSUFBWixDQUFpQlQsR0FBakI7TUFDSCxDQUZELE1BRU87UUFDSCxNQUFLTyxTQUFMLEdBQWlCLElBQWpCO1FBRUEsSUFBSUcsT0FBeUIsR0FBR1YsR0FBaEM7UUFDQSxJQUFJVyxRQUFRLEdBQUcsS0FBZjs7UUFFQSxPQUFPRCxPQUFQLEVBQWdCO1VBQUE7O1VBQ1osb0JBQUFFLGNBQUEsQ0FBU0MsTUFBVCxzRUFBaUJDLElBQWpCLENBQXNCLEtBQXRCLEVBQTZCLGNBQTdCLEVBQTZDLE1BQUtDLGFB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
239
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFbG1Db21wb25lbnQiLCJwcm9wcyIsImluaXQiLCJuYW1lIiwibXNnIiwibW9kZWxIYXNDaGFuZ2VkIiwibW9kZWwiLCJjdXJyZW50TW9kZWwiLCJPYmplY3QiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwibGVuZ3RoIiwicmVlbnRlcmVkIiwiYnVmZmVyIiwicHVzaCIsIm5leHRNc2ciLCJtb2RpZmllZCIsIlNlcnZpY2VzIiwibG9nZ2VyIiwiaW5mbyIsImNvbXBvbmVudE5hbWUiLCJkZWJ1ZyIsImRpc3BhdGNoTWlkZGxld2FyZSIsInVwZGF0ZSIsImNtZCIsImV4ZWNDbWQiLCJleCIsImVycm9yIiwic2hpZnQiLCJtb3VudGVkIiwiZm9yY2VVcGRhdGUiLCJmYWtlT3B0aW9ucyIsImdldEZha2VPcHRpb25zT25jZSIsImRpc3BhdGNoIiwiaW5pdENtZCIsImZvckVhY2giLCJjYWxsIiwiUmVhY3QiLCJDb21wb25lbnQiXSwic291cmNlcyI6WyIuLi9zcmMvRWxtQ29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IENtZCB9IGZyb20gXCIuL0NtZFwiO1xuaW1wb3J0IHsgTWVzc2FnZSwgU2VydmljZXMgfSBmcm9tIFwiLi9Jbml0XCI7XG5pbXBvcnQgeyBnZXRGYWtlT3B0aW9uc09uY2UgfSBmcm9tIFwiLi9UZXN0aW5nL2Zha2VPcHRpb25zXCI7XG5pbXBvcnQgeyBJbml0RnVuY3Rpb24sIE51bGxhYmxlLCBVcGRhdGVGdW5jdGlvbiB9IGZyb20gXCIuL1R5cGVzXCI7XG5cbi8qKlxuICogQWJzdHJhY3QgY2xhc3MgZm9yIGEgcmVhY3QgY2xhc3MgY29tcG9uZW50IHVzaW5nIHRoZSBFbG1pc2ggcGF0dGVybi5cbiAqIEBleHBvcnRcbiAqIEBhYnN0cmFjdFxuICogQGNsYXNzIEVsbUNvbXBvbmVudFxuICogQGV4dGVuZHMge0NvbXBvbmVudDxUUHJvcHMsIFRNb2RlbD59XG4gKiBAdGVtcGxhdGUgVE1vZGVsIFRoZSB0eXBlIG9mIHRoZSBtb2RlbC5cbiAqIEB0ZW1wbGF0ZSBUTWVzc2FnZSBUaGUgdHlwZSBvZiB0aGUgbWVzc2FnZXMuXG4gKiBAdGVtcGxhdGUgVFByb3BzIFRoZSB0eXBlIG9mIHRoZSBwcm9wcy5cbiAqL1xuYWJzdHJhY3QgY2xhc3MgRWxtQ29tcG9uZW50PFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlLCBUUHJvcHM+IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PFRQcm9wcz4ge1xuICAgIHByaXZhdGUgaW5pdENtZDogTnVsbGFibGU8Q21kPFRNZXNzYWdlPj4gfCB1bmRlZmluZWQ7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjb21wb25lbnROYW1lOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBidWZmZXI6IFRNZXNzYWdlIFtdID0gW107XG4gICAgcHJpdmF0ZSByZWVudGVyZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIG1vdW50ZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIGN1cnJlbnRNb2RlbDogVE1vZGVsO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBFbG1Db21wb25lbnQuXG4gICAgICogQHBhcmFtIHtUUHJvcHN9IHByb3BzIFRoZSBwcm9wcyBmb3IgdGhlIGNvbXBvbmVudC5cbiAgICAgKiBAcGFyYW0geygpID0+IFRNb2RlbH0gaW5pdCBUaGUgaW5pdGlhbGl6ZXIgZnVuY3Rpb24uXG4gICAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICAgKiBAbWVtYmVyb2YgRWxtQ29tcG9uZW50XG4gICAgICovXG4gICAgcHVibGljIGNvbnN0cnVjdG9yIChwcm9wczogVFByb3BzLCBpbml0OiBJbml0RnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiwgbmFtZTogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyKHByb3BzKTtcblxuICAgICAgICBjb25zdCBmYWtlT3B0aW9ucyA9IGdldEZha2VPcHRpb25zT25jZSgpO1xuXG4gICAgICAgIGlmIChmYWtlT3B0aW9ucz8uZGlzcGF0Y2gpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2ggPSBmYWtlT3B0aW9ucy5kaXNwYXRjaDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IFttb2RlbCwgY21kXSA9IGZha2VPcHRpb25zPy5tb2RlbCA/IFtmYWtlT3B0aW9ucy5tb2RlbCBhcyBUTW9kZWxdIDogaW5pdCh0aGlzLnByb3BzKTtcblxuICAgICAgICB0aGlzLmNvbXBvbmVudE5hbWUgPSBuYW1lO1xuICAgICAgICB0aGlzLmN1cnJlbnRNb2RlbCA9IG1vZGVsO1xuICAgICAgICB0aGlzLmluaXRDbWQgPSBjbWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSXMgY2FsbGVkIHdoZW4gdGhlIGNvbXBvbmVudCBpcyBsb2FkZWQuXG4gICAgICogV2hlbiBpbXBsZW1lbnRpbmcgdGhpcyBtZXRob2QsIHRoZSBiYXNlIGltcGxlbWVudGF0aW9uIGhhcyB0byBiZSBjYWxsZWQuXG4gICAgICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBjb21wb25lbnREaWRNb3VudCAoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubW91bnRlZCA9IHRydWU7XG5cbiAgICAgICAgaWYgKHRoaXMuaW5pdENtZCkge1xuICAgICAgICAgICAgdGhpcy5leGVjQ21kKHRoaXMuaW5pdENtZCk7XG4gICAgICAgICAgICB0aGlzLmluaXRDbWQgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSXMgY2FsbGVkIGJlZm9yZSB1bmxvYWRpbmcgdGhlIGNvbXBvbmVudC5cbiAgICAgKiBXaGVuIGltcGxlbWVudGluZyB0aGlzIG1ldGhvZCwgdGhlIGJhc2UgaW1wbGVtZW50YXRpb24gaGFzIHRvIGJlIGNhbGxlZC5cbiAgICAgKiBAbWVtYmVyb2YgRWxtQ29tcG9uZW50XG4gICAgICovXG4gICAgcHVibGljIGNvbXBvbmVudFdpbGxVbm1vdW50ICgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb3VudGVkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBleGVjQ21kIChjbWQ6IENtZDxUTWVzc2FnZT4pOiB2b2lkIHtcbiAgICAgICAgY21kLmZvckVhY2goY2FsbCA9PiB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNhbGwodGhpcy5kaXNwYXRjaCk7XG4gICAgICAgICAgICB9IGNhdGNoIChleDogdW5rbm93bikge1xuICAgICAgICAgICAgICAgIFNlcnZpY2VzLmxvZ2dlcj8uZXJyb3IoZXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IG1vZGVsLlxuICAgICAqIEByZWFkb25seVxuICAgICAqIEB0eXBlIHtSZWFkb25seTxUTW9kZWw+fVxuICAgICAqIEBtZW1iZXJvZiBFbG1Db21wb25lbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IG1vZGVsICgpOiBSZWFkb25seTxUTW9kZWw+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudE1vZGVsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERpc3BhdGNoZXMgYSBtZXNzYWdlLlxuICAgICAqIEBwYXJhbSB7VE1lc3NhZ2V9IG1zZyBUaGUgbWVzc2FnZSB0byBkaXNwYXRjaC5cbiAgICAgKiBAbWVtYmVyb2YgRWxtQ29tcG9uZW50XG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGRpc3BhdGNoID0gKG1zZzogVE1lc3NhZ2UpOiB2b2lkID0+IHtcbiAgICAgICAgY29uc3QgbW9kZWxIYXNDaGFuZ2VkID0gKG1vZGVsOiBQYXJ0aWFsPFRNb2RlbD4pOiBib29sZWFuID0+IG1vZGVsICE9PSB0aGlzLmN1cnJlbnRNb2RlbCAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhtb2RlbCkubGVuZ3RoID4gMDtcblxuICAgICAgICBpZiAodGhpcy5yZWVudGVyZWQpIHtcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyLnB1c2gobXNnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucmVlbnRlcmVkID0gdHJ1ZTtcblxuICAgICAgICAgICAgbGV0IG5leHRNc2c6IFRNZXNzYWdlIHwgdW5kZWZpbmVkID0gbXNnO1xuICAgICAgICAgICAgbGV0IG1vZGlmaWVkID0gZmFsc2U7XG5cbiAgICAgICAgICAgIHdoaWxlIChuZXh0TXNnKSB7XG4gICAgICAgICAgICAgICAgU2VydmljZXMubG9nZ2VyPy5pbmZvKFwiRWxtXCIsIFwibWVzc2FnZSBmcm9tXCIsIHRoaXMuY29tcG9uZW50TmFtZSwgbmV4dE1zZy5uYW1lKTtcbiAgICAgICAgICAgICAgICBTZXJ2aWNlcy5sb2dnZXI/LmRlYnVnKFwiRWxtXCIsIFwibWVzc2FnZSBmcm9tXCIsIHRoaXMuY29tcG9uZW50TmFtZSwgbmV4dE1zZyk7XG5cbiAgICAgICAgICAgICAgICBpZiAoU2VydmljZXMuZGlzcGF0Y2hNaWRkbGV3YXJlKSB7XG4gICAgICAgICAgICAgICAgICAgIFNlcnZpY2VzLmRpc3BhdGNoTWlkZGxld2FyZShuZXh0TXNnKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBbbW9kZWwsIGNtZF0gPSB0aGlzLnVwZGF0ZSh0aGlzLmN1cnJlbnRNb2RlbCwgbmV4dE1zZywgdGhpcy5wcm9wcyk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKG1vZGVsSGFzQ2hhbmdlZChtb2RlbCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudE1vZGVsID0geyAuLi50aGlzLmN1cnJlbnRNb2RlbCwgLi4ubW9kZWwgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChjbWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZXhlY0NtZChjbWQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXg6IHVua25vd24pIHtcbiAgICAgICAgICAgICAgICAgICAgU2VydmljZXMubG9nZ2VyPy5lcnJvcihleCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgbmV4dE1zZyA9IHRoaXMuYnVmZmVyLnNoaWZ0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnJlZW50ZXJlZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5tb3VudGVkICYmIG1vZGlmaWVkKSB7XG4gICAgICAgICAgICAgICAgU2VydmljZXMubG9nZ2VyPy5kZWJ1ZyhcIkVsbVwiLCBcInVwZGF0ZSBtb2RlbCBmb3JcIiwgdGhpcy5jb21wb25lbnROYW1lLCB0aGlzLmN1cnJlbnRNb2RlbCk7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JjZVVwZGF0ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEZ1bmN0aW9uIHRvIG1vZGlmeSB0aGUgbW9kZWwgYmFzZWQgb24gYSBtZXNzYWdlLlxuICAgICAqIEBwYXJhbSB7VE1vZGVsfSBtb2RlbCBUaGUgY3VycmVudCBtb2RlbC5cbiAgICAgKiBAcGFyYW0ge1RNZXNzYWdlfSBtc2cgVGhlIG1lc3NhZ2UgdG8gcHJvY2Vzcy5cbiAgICAgKiBAcGFyYW0ge1RQcm9wc30gcHJvcHMgVGhlIHByb3BzIG9mIHRoZSBjb21wb25lbnQuXG4gICAgICogQHJldHVybnMgVGhlIG5ldyBtb2RlbCAoY2FuIGFsc28gYmUgYW4gZW1wdHkgb2JqZWN0IHt9KSBhbmQgYW4gb3B0aW9uYWwgbmV3IG1lc3NhZ2UgdG8gZGlzcGF0Y2guXG4gICAgICogQGFic3RyYWN0XG4gICAgICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCB1cGRhdGU6IFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT47XG59XG5cbmV4cG9ydCB7XG4gICAgRWxtQ29tcG9uZW50LFxufTsiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUVBOztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtJQUNlQSxZOzs7OztFQVFYO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0ksc0JBQW9CQyxLQUFwQixFQUFtQ0MsSUFBbkMsRUFBaUZDLElBQWpGLEVBQStGO0lBQUE7O0lBQUE7O0lBQzNGLDBCQUFNRixLQUFOOztJQUQyRjs7SUFBQTs7SUFBQSx5REFaeEQsRUFZd0Q7O0lBQUEsNERBWDNFLEtBVzJFOztJQUFBLDBEQVY3RSxLQVU2RTs7SUFBQTs7SUFBQSwyREFnRXBFLFVBQUNHLEdBQUQsRUFBeUI7TUFDaEQsSUFBTUMsZUFBZSxHQUFHLFNBQWxCQSxlQUFrQixDQUFDQyxLQUFEO1FBQUEsT0FBcUNBLEtBQUssS0FBSyxNQUFLQyxZQUFmLElBQStCQyxNQUFNLENBQUNDLG1CQUFQLENBQTJCSCxLQUEzQixFQUFrQ0ksTUFBbEMsR0FBMkMsQ0FBL0c7TUFBQSxDQUF4Qjs7TUFFQSxJQUFJLE1BQUtDLFNBQVQsRUFBb0I7UUFDaEIsTUFBS0MsTUFBTCxDQUFZQyxJQUFaLENBQWlCVCxHQUFqQjtNQUNILENBRkQsTUFFTztRQUNILE1BQUtPLFNBQUwsR0FBaUIsSUFBakI7UUFFQSxJQUFJRyxPQUE2QixHQUFHVixHQUFwQztRQUNBLElBQUlXLFFBQVEsR0FBRyxLQUFmOztRQUVBLE9BQU9ELE9BQVAsRUFBZ0I7VUFBQTs7VUFDWixvQkFBQUUsY0FBQSxDQUFTQyxNQUFULHNFQUFpQkMs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
@@ -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, TMsg>(error: Error): UpdateReturnType<TModel, TMsg>;
31
+ declare function handleError<TModel, TMessage>(error: Error): UpdateReturnType<TModel, TMessage>;
32
32
  export type { ErrorMessage };
33
33
  export { errorMsg, errorHandler, handleError, };
@@ -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+IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTWVzc2FnZT4gfSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgZXJyb3IgKHsgZXJyb3IgfSkge1xuICAgICAgICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKGVycm9yKTtcbiAgICAgICAgfSxcbiAgICB9O1xufVxuXG4vKipcbiAqIEhhbmRsZXMgYW4gZXJyb3IuXG4gKiBMb2dzIHRoZSBlcnJvciBpZiBhIExvZ2dlciB3YXMgc3BlY2lmaWVkLlxuICogQ2FsbHMgdGhlIGVycm9yIGhhbmRsaW5nIG1pZGRsZXdhcmUgaWYgc3BlY2lmaWVkLlxuICogQHBhcmFtIHtFcnJvcn0gZXJyb3IgVGhlIGVycm9yLlxuICovXG5mdW5jdGlvbiBoYW5kbGVFcnJvcjxUTW9kZWwsIFRNc2c+IChlcnJvcjogRXJyb3IpOiBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgVE1zZz4ge1xuICAgIGlmIChTZXJ2aWNlcy5lcnJvck1pZGRsZXdhcmUpIHtcbiAgICAgICAgU2VydmljZXMuZXJyb3JNaWRkbGV3YXJlKGVycm9yKTtcbiAgICB9XG4gICAgU2VydmljZXMubG9nZ2VyPy5lcnJvcihlcnJvcik7XG5cbiAgICByZXR1cm4gW3t9XTtcbn1cblxuZXhwb3J0IHR5cGUgeyBFcnJvck1lc3NhZ2UgfTtcblxuZXhwb3J0IHtcbiAgICBlcnJvck1zZyxcbiAgICBlcnJvckhhbmRsZXIsXG4gICAgaGFuZGxlRXJyb3IsXG59OyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBWUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFNQSxRQUFRLEdBQUc7RUFDYkMsS0FBSyxFQUFFLGVBQUNBLE1BQUQ7SUFBQSxPQUFpQztNQUFFQyxJQUFJLEVBQUUsT0FBUjtNQUFpQkQsS0FBSyxFQUFMQTtJQUFqQixDQUFqQztFQUFBO0FBRE0sQ0FBakI7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FBQ0EsU0FBU0UsWUFBVCxHQUFpSDtFQUM3RyxPQUFPO0lBQ0hGLEtBREcsdUJBQ2U7TUFBQSxJQUFUQSxLQUFTLFFBQVRBLEtBQVM7TUFDZCxPQUFPRyxXQUFXLENBQUNILEtBQUQsQ0FBbEI7SUFDSDtFQUhFLENBQVA7QUFLSDtBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0EsU0FBU0csV0FBVCxDQUFvQ0gsS0FBcEMsRUFBa0Y7RUFBQTs7RUFDOUUsSUFBSUksY0FBQSxDQUFTQyxlQUFiLEVBQThCO0lBQzFCRCxjQUFBLENBQVNDLGVBQVQsQ0FBeUJMLEtBQXpCO0VBQ0g7O0VBQ0Qsb0JBQUFJLGNBQUEsQ0FBU0UsTUFBVCxzRUFBaUJOLEtBQWpCLENBQXVCQSxLQUF2QjtFQUVBLE9BQU8sQ0FBQyxFQUFELENBQVA7QUFDSCJ9
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+IHZvaWQ7XG5cbmludGVyZmFjZSBFbG1PcHRpb25zIHtcbiAgICBsb2dnZXI/OiBMb2dnZXIsXG4gICAgZXJyb3JNaWRkbGV3YXJlPzogRXJyb3JNaWRkbGV3YXJlRnVuYyxcbiAgICBkaXNwYXRjaE1pZGRsZXdhcmU/OiBEaXNwYXRjaE1pZGRsZXdhcmVGdW5jLFxufVxuXG5jb25zdCBTZXJ2aWNlczogRWxtT3B0aW9ucyA9IHtcbiAgICBsb2dnZXI6IHVuZGVmaW5lZCxcbiAgICBlcnJvck1pZGRsZXdhcmU6IHVuZGVmaW5lZCxcbiAgICBkaXNwYXRjaE1pZGRsZXdhcmU6IHVuZGVmaW5lZCxcbn07XG5cbmZ1bmN0aW9uIGluaXQgKG9wdGlvbnM6IEVsbU9wdGlvbnMpOiB2b2lkIHtcbiAgICBTZXJ2aWNlcy5sb2dnZXIgPSBvcHRpb25zLmxvZ2dlcjtcbiAgICBTZXJ2aWNlcy5lcnJvck1pZGRsZXdhcmUgPSBvcHRpb25zLmVycm9yTWlkZGxld2FyZTtcbiAgICBTZXJ2aWNlcy5kaXNwYXRjaE1pZGRsZXdhcmUgPSBvcHRpb25zLmRpc3BhdGNoTWlkZGxld2FyZTtcbn1cblxuZXhwb3J0IHR5cGUge1xuICAgIExvZ2dlcixcbiAgICBNZXNzYWdlLFxuICAgIEVycm9yTWlkZGxld2FyZUZ1bmMsXG4gICAgRGlzcGF0Y2hNaWRkbGV3YXJlRnVuYyxcbiAgICBFbG1PcHRpb25zLFxufTtcblxuZXhwb3J0IHtcbiAgICBTZXJ2aWNlcyxcbiAgICBpbml0LFxufTsiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFtQkEsSUFBTUEsUUFBb0IsR0FBRztFQUN6QkMsTUFBTSxFQUFFQyxTQURpQjtFQUV6QkMsZUFBZSxFQUFFRCxTQUZRO0VBR3pCRSxrQkFBa0IsRUFBRUY7QUFISyxDQUE3Qjs7O0FBTUEsU0FBU0csSUFBVCxDQUFlQyxPQUFmLEVBQTBDO0VBQ3RDTixRQUFRLENBQUNDLE1BQVQsR0FBa0JLLE9BQU8sQ0FBQ0wsTUFBMUI7RUFDQUQsUUFBUSxDQUFDRyxlQUFULEdBQTJCRyxPQUFPLENBQUNILGVBQW5DO0VBQ0FILFFBQVEsQ0FBQ0ksa0JBQVQsR0FBOEJFLE9BQU8sQ0FBQ0Ysa0JBQXRDO0FBQ0gifQ==
26
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTZXJ2aWNlcyIsImxvZ2dlciIsInVuZGVmaW5lZCIsImVycm9yTWlkZGxld2FyZSIsImRpc3BhdGNoTWlkZGxld2FyZSIsImluaXQiLCJvcHRpb25zIl0sInNvdXJjZXMiOlsiLi4vc3JjL0luaXQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW50ZXJmYWNlIExvZ2dlciB7XG4gICAgZGVidWc6ICguLi5hcmdzOiB1bmtub3duIFtdKSA9PiB2b2lkLFxuICAgIGluZm86ICguLi5hcmdzOiB1bmtub3duIFtdKSA9PiB2b2lkLFxuICAgIGVycm9yOiAoLi4uYXJnczogdW5rbm93biBbXSkgPT4gdm9pZCxcbn1cblxuaW50ZXJmYWNlIE1lc3NhZ2Uge1xuICAgIG5hbWU6IHN0cmluZyB8IHN5bWJvbCxcbn1cblxudHlwZSBFcnJvck1pZGRsZXdhcmVGdW5jID0gKGVycm9yOiBFcnJvcikgPT4gdm9pZDtcbnR5cGUgRGlzcGF0Y2hNaWRkbGV3YXJlRnVuYyA9IChtc2c6IE1lc3NhZ2UpID0+IHZvaWQ7XG5cbmludGVyZmFjZSBFbG1PcHRpb25zIHtcbiAgICAvKipcbiAgICAgKiBUaGUgbG9nZ2VyIHRvIHVzZSBmb3IgbG9nZ2luZyBjYWxsZWQgbWVzc2FnZXMgYW5kIHVwZGF0ZWQgbW9kZWxzLlxuICAgICAqIEB0eXBlIHtMb2dnZXJ9XG4gICAgICovXG4gICAgbG9nZ2VyPzogTG9nZ2VyLFxuXG4gICAgLyoqXG4gICAgICogTWlkZGxld2FyZSB0byBjYWxsIHdoZW4gZXJyb3IgbWVzc2FnZXMgYXJlIGhhbmRsZWQgYnkgdGhlIGBoYW5kbGVFcnJvcmAgZnVuY3Rpb24uXG4gICAgICogQHR5cGUge0Vycm9yTWlkZGxld2FyZUZ1bmN9XG4gICAgICovXG4gICAgZXJyb3JNaWRkbGV3YXJlPzogRXJyb3JNaWRkbGV3YXJlRnVuYyxcblxuICAgIC8qKlxuICAgICAqIE1pZGRsZXdhcmUgdG8gY2FsbCBmb3IgZXZlcnkgcHJvY2Vzc2VkIG1lc3NhZ2UuXG4gICAgICogQHR5cGUge0Rpc3BhdGNoTWlkZGxld2FyZUZ1bmN9XG4gICAgICovXG4gICAgZGlzcGF0Y2hNaWRkbGV3YXJlPzogRGlzcGF0Y2hNaWRkbGV3YXJlRnVuYyxcbn1cblxuY29uc3QgU2VydmljZXM6IEVsbU9wdGlvbnMgPSB7XG4gICAgbG9nZ2VyOiB1bmRlZmluZWQsXG4gICAgZXJyb3JNaWRkbGV3YXJlOiB1bmRlZmluZWQsXG4gICAgZGlzcGF0Y2hNaWRkbGV3YXJlOiB1bmRlZmluZWQsXG59O1xuXG4vKipcbiAqIFRoaXMgaW5pdGlhbGl6ZXMgdGhlIEVsbWlzaCBtb2R1bGUuXG4gKiBZb3Ugb25seSBuZWVkIHRvIGNhbGwgdGhpcyBmdW5jdGlvbiBpZiB5b3Ugd2FudCB0byBzZXQgc29tZSBvZiB0aGUgb3B0aW9ucy5cbiAqIEBwYXJhbSB7RWxtT3B0aW9uc30gb3B0aW9uc1xuICovXG5mdW5jdGlvbiBpbml0IChvcHRpb25zOiBFbG1PcHRpb25zKTogdm9pZCB7XG4gICAgU2VydmljZXMubG9nZ2VyID0gb3B0aW9ucy5sb2dnZXI7XG4gICAgU2VydmljZXMuZXJyb3JNaWRkbGV3YXJlID0gb3B0aW9ucy5lcnJvck1pZGRsZXdhcmU7XG4gICAgU2VydmljZXMuZGlzcGF0Y2hNaWRkbGV3YXJlID0gb3B0aW9ucy5kaXNwYXRjaE1pZGRsZXdhcmU7XG59XG5cbmV4cG9ydCB0eXBlIHtcbiAgICBMb2dnZXIsXG4gICAgTWVzc2FnZSxcbiAgICBFcnJvck1pZGRsZXdhcmVGdW5jLFxuICAgIERpc3BhdGNoTWlkZGxld2FyZUZ1bmMsXG4gICAgRWxtT3B0aW9ucyxcbn07XG5cbmV4cG9ydCB7XG4gICAgU2VydmljZXMsXG4gICAgaW5pdCxcbn07Il0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBaUNBLElBQU1BLFFBQW9CLEdBQUc7RUFDekJDLE1BQU0sRUFBRUMsU0FEaUI7RUFFekJDLGVBQWUsRUFBRUQsU0FGUTtFQUd6QkUsa0JBQWtCLEVBQUVGO0FBSEssQ0FBN0I7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FBQ0EsU0FBU0csSUFBVCxDQUFlQyxPQUFmLEVBQTBDO0VBQ3RDTixRQUFRLENBQUNDLE1BQVQsR0FBa0JLLE9BQU8sQ0FBQ0wsTUFBMUI7RUFDQUQsUUFBUSxDQUFDRyxlQUFULEdBQTJCRyxPQUFPLENBQUNILGVBQW5DO0VBQ0FILFFBQVEsQ0FBQ0ksa0JBQVQsR0FBOEJFLE9BQU8sQ0FBQ0Ysa0JBQXRDO0FBQ0gifQ==
@@ -1,7 +1,21 @@
1
- import { MessageBase, Nullable } from "../Types";
2
1
  import { Dispatch } from "../Cmd";
2
+ import { MessageBase, Nullable } from "../Types";
3
+ /**
4
+ * Options for the `renderWithModel` function.
5
+ * @interface RenderWithModelOptions
6
+ * @template TModel The type of the model.
7
+ * @template TMessage The type of the messages discriminated union.
8
+ */
3
9
  interface RenderWithModelOptions<TModel, TMessage extends MessageBase> {
10
+ /**
11
+ * The model to use when rendering the component.
12
+ * @type {TModel}
13
+ */
4
14
  model: TModel;
15
+ /**
16
+ * A fake dispatch function to use when processing messages.
17
+ * @type {Dispatch<TMessage>}
18
+ */
5
19
  dispatch?: Dispatch<TMessage>;
6
20
  }
7
21
  declare function setFakeOptions(options: Nullable<RenderWithModelOptions<unknown, MessageBase>>): void;
@@ -5,6 +5,13 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.getFakeOptionsOnce = getFakeOptionsOnce;
7
7
  exports.setFakeOptions = setFakeOptions;
8
+
9
+ /**
10
+ * Options for the `renderWithModel` function.
11
+ * @interface RenderWithModelOptions
12
+ * @template TModel The type of the model.
13
+ * @template TMessage The type of the messages discriminated union.
14
+ */
8
15
  var currentFakeOptions;
9
16
 
10
17
  function setFakeOptions(options) {
@@ -16,4 +23,4 @@ function getFakeOptionsOnce() {
16
23
  currentFakeOptions = null;
17
24
  return temp;
18
25
  }
19
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjdXJyZW50RmFrZU9wdGlvbnMiLCJzZXRGYWtlT3B0aW9ucyIsIm9wdGlvbnMiLCJnZXRGYWtlT3B0aW9uc09uY2UiLCJ0ZW1wIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL1Rlc3RpbmcvZmFrZU9wdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWVzc2FnZUJhc2UsIE51bGxhYmxlIH0gZnJvbSBcIi4uL1R5cGVzXCI7XG5pbXBvcnQgeyBEaXNwYXRjaCB9IGZyb20gXCIuLi9DbWRcIjtcblxuaW50ZXJmYWNlIFJlbmRlcldpdGhNb2RlbE9wdGlvbnM8VE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2VCYXNlPiB7XG4gICAgbW9kZWw6IFRNb2RlbCxcbiAgICBkaXNwYXRjaD86IERpc3BhdGNoPFRNZXNzYWdlPixcbn1cblxubGV0IGN1cnJlbnRGYWtlT3B0aW9uczogTnVsbGFibGU8UmVuZGVyV2l0aE1vZGVsT3B0aW9uczx1bmtub3duLCBNZXNzYWdlQmFzZT4+O1xuXG5mdW5jdGlvbiBzZXRGYWtlT3B0aW9ucyAob3B0aW9uczogTnVsbGFibGU8UmVuZGVyV2l0aE1vZGVsT3B0aW9uczx1bmtub3duLCBNZXNzYWdlQmFzZT4+KTogdm9pZCB7XG4gICAgY3VycmVudEZha2VPcHRpb25zID0gb3B0aW9ucztcbn1cblxuZnVuY3Rpb24gZ2V0RmFrZU9wdGlvbnNPbmNlPFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlQmFzZT4gKCk6IE51bGxhYmxlPFJlbmRlcldpdGhNb2RlbE9wdGlvbnM8VE1vZGVsLCBUTWVzc2FnZT4+IHtcbiAgICBjb25zdCB0ZW1wID0gY3VycmVudEZha2VPcHRpb25zO1xuXG4gICAgY3VycmVudEZha2VPcHRpb25zID0gbnVsbDtcblxuICAgIHJldHVybiB0ZW1wIGFzIFJlbmRlcldpdGhNb2RlbE9wdGlvbnM8VE1vZGVsLCBUTWVzc2FnZT47XG59XG5cbmV4cG9ydCB0eXBlIHtcbiAgICBSZW5kZXJXaXRoTW9kZWxPcHRpb25zLFxufTtcblxuZXhwb3J0IHtcbiAgICBzZXRGYWtlT3B0aW9ucyxcbiAgICBnZXRGYWtlT3B0aW9uc09uY2UsXG59OyJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQVFBLElBQUlBLGtCQUFKOztBQUVBLFNBQVNDLGNBQVQsQ0FBeUJDLE9BQXpCLEVBQWdHO0VBQzVGRixrQkFBa0IsR0FBR0UsT0FBckI7QUFDSDs7QUFFRCxTQUFTQyxrQkFBVCxHQUF5SDtFQUNySCxJQUFNQyxJQUFJLEdBQUdKLGtCQUFiO0VBRUFBLGtCQUFrQixHQUFHLElBQXJCO0VBRUEsT0FBT0ksSUFBUDtBQUNIIn0=
26
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjdXJyZW50RmFrZU9wdGlvbnMiLCJzZXRGYWtlT3B0aW9ucyIsIm9wdGlvbnMiLCJnZXRGYWtlT3B0aW9uc09uY2UiLCJ0ZW1wIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL1Rlc3RpbmcvZmFrZU9wdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlzcGF0Y2ggfSBmcm9tIFwiLi4vQ21kXCI7XG5pbXBvcnQgeyBNZXNzYWdlQmFzZSwgTnVsbGFibGUgfSBmcm9tIFwiLi4vVHlwZXNcIjtcblxuLyoqXG4gKiBPcHRpb25zIGZvciB0aGUgYHJlbmRlcldpdGhNb2RlbGAgZnVuY3Rpb24uXG4gKiBAaW50ZXJmYWNlIFJlbmRlcldpdGhNb2RlbE9wdGlvbnNcbiAqIEB0ZW1wbGF0ZSBUTW9kZWwgVGhlIHR5cGUgb2YgdGhlIG1vZGVsLlxuICogQHRlbXBsYXRlIFRNZXNzYWdlIFRoZSB0eXBlIG9mIHRoZSBtZXNzYWdlcyBkaXNjcmltaW5hdGVkIHVuaW9uLlxuICovXG5pbnRlcmZhY2UgUmVuZGVyV2l0aE1vZGVsT3B0aW9uczxUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZUJhc2U+IHtcbiAgICAvKipcbiAgICAgKiBUaGUgbW9kZWwgdG8gdXNlIHdoZW4gcmVuZGVyaW5nIHRoZSBjb21wb25lbnQuXG4gICAgICogQHR5cGUge1RNb2RlbH1cbiAgICAgKi9cbiAgICBtb2RlbDogVE1vZGVsLFxuXG4gICAgLyoqXG4gICAgICogQSBmYWtlIGRpc3BhdGNoIGZ1bmN0aW9uIHRvIHVzZSB3aGVuIHByb2Nlc3NpbmcgbWVzc2FnZXMuXG4gICAgICogQHR5cGUge0Rpc3BhdGNoPFRNZXNzYWdlPn1cbiAgICAgKi9cbiAgICBkaXNwYXRjaD86IERpc3BhdGNoPFRNZXNzYWdlPixcbn1cblxubGV0IGN1cnJlbnRGYWtlT3B0aW9uczogTnVsbGFibGU8UmVuZGVyV2l0aE1vZGVsT3B0aW9uczx1bmtub3duLCBNZXNzYWdlQmFzZT4+O1xuXG5mdW5jdGlvbiBzZXRGYWtlT3B0aW9ucyAob3B0aW9uczogTnVsbGFibGU8UmVuZGVyV2l0aE1vZGVsT3B0aW9uczx1bmtub3duLCBNZXNzYWdlQmFzZT4+KTogdm9pZCB7XG4gICAgY3VycmVudEZha2VPcHRpb25zID0gb3B0aW9ucztcbn1cblxuZnVuY3Rpb24gZ2V0RmFrZU9wdGlvbnNPbmNlPFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlQmFzZT4gKCk6IE51bGxhYmxlPFJlbmRlcldpdGhNb2RlbE9wdGlvbnM8VE1vZGVsLCBUTWVzc2FnZT4+IHtcbiAgICBjb25zdCB0ZW1wID0gY3VycmVudEZha2VPcHRpb25zO1xuXG4gICAgY3VycmVudEZha2VPcHRpb25zID0gbnVsbDtcblxuICAgIHJldHVybiB0ZW1wIGFzIFJlbmRlcldpdGhNb2RlbE9wdGlvbnM8VE1vZGVsLCBUTWVzc2FnZT47XG59XG5cbmV4cG9ydCB0eXBlIHtcbiAgICBSZW5kZXJXaXRoTW9kZWxPcHRpb25zLFxufTtcblxuZXhwb3J0IHtcbiAgICBzZXRGYWtlT3B0aW9ucyxcbiAgICBnZXRGYWtlT3B0aW9uc09uY2UsXG59OyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFlQSxJQUFJQSxrQkFBSjs7QUFFQSxTQUFTQyxjQUFULENBQXlCQyxPQUF6QixFQUFnRztFQUM1RkYsa0JBQWtCLEdBQUdFLE9BQXJCO0FBQ0g7O0FBRUQsU0FBU0Msa0JBQVQsR0FBeUg7RUFDckgsSUFBTUMsSUFBSSxHQUFHSixrQkFBYjtFQUVBQSxrQkFBa0IsR0FBRyxJQUFyQjtFQUVBLE9BQU9JLElBQVA7QUFDSCJ9
@@ -1,18 +1,18 @@
1
+ import { Cmd } from "../Cmd";
1
2
  import { MessageBase, Nullable, UpdateMap, UpdateReturnType } from "../Types";
2
3
  import { RenderWithModelOptions } from "./fakeOptions";
3
- import { Cmd } from "../Cmd";
4
4
  /**
5
5
  * Extracts the messages out of a command.
6
6
  * @param cmd The command to process.
7
7
  * @returns The array of messages.
8
8
  */
9
- declare function getOfMsgParams<TMsg>(cmd?: Cmd<TMsg>): TMsg[];
9
+ declare function getOfMsgParams<TMessage>(cmd?: Cmd<TMessage>): TMessage[];
10
10
  /**
11
11
  * Executes all commands and resolves the messages.
12
12
  * @param cmd The command to process.
13
13
  * @returns The array of processed messages.
14
14
  */
15
- declare function execCmd<TMsg>(cmd?: Cmd<TMsg>): Promise<Nullable<TMsg>[]>;
15
+ declare function execCmd<TMessage>(cmd?: Cmd<TMessage>): Promise<Nullable<TMessage>[]>;
16
16
  /**
17
17
  * Creates an update function out of an UpdateMap.
18
18
  * @param {UpdateMap<TProps, TModel, TMessage>} updateMap The UpdateMap.
@@ -32,6 +32,15 @@ declare type UpdateArgsFactory<TProps, TModel, TMessage extends MessageBase> = (
32
32
  * const [msg, model, props] = createUpdateArgs(Msg.myMessage(), { ... }, , { ... });
33
33
  */
34
34
  declare function createUpdateArgsFactory<TProps, TModel, TMessage extends MessageBase>(initModel: () => TModel, initProps: () => TProps): UpdateArgsFactory<TProps, TModel, TMessage>;
35
+ /**
36
+ * Renders a component with a provided model.
37
+ * @template TModel The type of the model.
38
+ * @template TMessage The type of the message discriminated union.
39
+ * @template TResult The return type of the render function.
40
+ * @param {() => TResult} render A function to render the component. Use the `render` function of the used testing library.
41
+ * @param {(TModel | RenderWithModelOptions<TModel, TMessage>)} options The model or an options object.
42
+ * @returns {TResult} The returned value of the `render` function.
43
+ */
35
44
  declare function renderWithModel<TModel, TMessage extends MessageBase, TResult>(render: () => TResult, options: TModel | RenderWithModelOptions<TModel, TMessage>): TResult;
36
45
  export type { UpdateArgsFactory, RenderWithModelOptions, };
37
46
  export { getOfMsgParams, execCmd, getUpdateFn, createUpdateArgsFactory, renderWithModel, };
@@ -11,10 +11,10 @@ exports.getOfMsgParams = getOfMsgParams;
11
11
  exports.getUpdateFn = getUpdateFn;
12
12
  exports.renderWithModel = renderWithModel;
13
13
 
14
- var _fakeOptions = require("./fakeOptions");
15
-
16
14
  var _useElmish = require("../useElmish");
17
15
 
16
+ var _fakeOptions = require("./fakeOptions");
17
+
18
18
  function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return generator._invoke = function (innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; }(innerFn, self, context), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; this._invoke = function (method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); }; } function maybeInvokeDelegate(delegate, context) { var method = delegate.iterator[context.method]; if (undefined === method) { if (context.delegate = null, "throw" === context.method) { if (delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method)) return ContinueSentinel; context.method = "throw", context.arg = new TypeError("The iterator does not provide a 'throw' method"); } return ContinueSentinel; } var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) { if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; } return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, define(Gp, "constructor", GeneratorFunctionPrototype), define(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (object) { var keys = []; for (var key in object) { keys.push(key); } return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) { "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); } }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
19
19
 
20
20
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
@@ -147,6 +147,16 @@ function createUpdateArgsFactory(initModel, initProps) {
147
147
  return [msg, _objectSpread(_objectSpread({}, initModel()), modelTemplate), _objectSpread(_objectSpread({}, initProps()), propsTemplate)];
148
148
  };
149
149
  }
150
+ /**
151
+ * Renders a component with a provided model.
152
+ * @template TModel The type of the model.
153
+ * @template TMessage The type of the message discriminated union.
154
+ * @template TResult The return type of the render function.
155
+ * @param {() => TResult} render A function to render the component. Use the `render` function of the used testing library.
156
+ * @param {(TModel | RenderWithModelOptions<TModel, TMessage>)} options The model or an options object.
157
+ * @returns {TResult} The returned value of the `render` function.
158
+ */
159
+
150
160
 
151
161
  function renderWithModel(render, options) {
152
162
  if ("model" in options && "dispatch" in options) {
@@ -161,4 +171,4 @@ function renderWithModel(render, options) {
161
171
  (0, _fakeOptions.setFakeOptions)(null);
162
172
  return result;
163
173
  }
164
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRPZk1zZ1BhcmFtcyIsImNtZCIsIm1zZ05hbWVzIiwiZGlzcGF0Y2giLCJtc2ciLCJwdXNoIiwibWFwIiwiY3VycmVudENtZCIsImV4ZWNDbWQiLCJjYWxsZXJzIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJlcnJvciIsImFsbCIsInJlc3VsdHMiLCJnZXRVcGRhdGVGbiIsInVwZGF0ZU1hcCIsIm1vZGVsIiwicHJvcHMiLCJjYWxsVXBkYXRlTWFwIiwiY3JlYXRlVXBkYXRlQXJnc0ZhY3RvcnkiLCJpbml0TW9kZWwiLCJpbml0UHJvcHMiLCJtb2RlbFRlbXBsYXRlIiwicHJvcHNUZW1wbGF0ZSIsInJlbmRlcldpdGhNb2RlbCIsInJlbmRlciIsIm9wdGlvbnMiLCJzZXRGYWtlT3B0aW9ucyIsInJlc3VsdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9UZXN0aW5nL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1lc3NhZ2VCYXNlLCBOdWxsYWJsZSwgVXBkYXRlTWFwLCBVcGRhdGVSZXR1cm5UeXBlIH0gZnJvbSBcIi4uL1R5cGVzXCI7XG5pbXBvcnQgeyBSZW5kZXJXaXRoTW9kZWxPcHRpb25zLCBzZXRGYWtlT3B0aW9ucyB9IGZyb20gXCIuL2Zha2VPcHRpb25zXCI7XG5pbXBvcnQgeyBjYWxsVXBkYXRlTWFwIH0gZnJvbSBcIi4uL3VzZUVsbWlzaFwiO1xuaW1wb3J0IHsgQ21kIH0gZnJvbSBcIi4uL0NtZFwiO1xuXG4vKipcbiAqIEV4dHJhY3RzIHRoZSBtZXNzYWdlcyBvdXQgb2YgYSBjb21tYW5kLlxuICogQHBhcmFtIGNtZCBUaGUgY29tbWFuZCB0byBwcm9jZXNzLlxuICogQHJldHVybnMgVGhlIGFycmF5IG9mIG1lc3NhZ2VzLlxuICovXG5mdW5jdGlvbiBnZXRPZk1zZ1BhcmFtczxUTXNnPiAoY21kPzogQ21kPFRNc2c+KTogVE1zZyBbXSB7XG4gICAgY29uc3QgbXNnTmFtZXM6IFRNc2cgW10gPSBbXTtcblxuICAgIGNvbnN0IGRpc3BhdGNoID0gKG1zZzogVE1zZyk6IHZvaWQgPT4ge1xuICAgICAgICBtc2dOYW1lcy5wdXNoKG1zZyk7XG4gICAgfTtcblxuICAgIGNtZD8ubWFwKGN1cnJlbnRDbWQgPT4gY3VycmVudENtZChkaXNwYXRjaCkpO1xuXG4gICAgcmV0dXJuIG1zZ05hbWVzO1xufVxuXG4vKipcbiAqIEV4ZWN1dGVzIGFsbCBjb21tYW5kcyBhbmQgcmVzb2x2ZXMgdGhlIG1lc3NhZ2VzLlxuICogQHBhcmFtIGNtZCBUaGUgY29tbWFuZCB0byBwcm9jZXNzLlxuICogQHJldHVybnMgVGhlIGFycmF5IG9mIHByb2Nlc3NlZCBtZXNzYWdlcy5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gZXhlY0NtZDxUTXNnPiAoY21kPzogQ21kPFRNc2c+KTogUHJvbWlzZTxOdWxsYWJsZTxUTXNnPiBbXT4ge1xuICAgIGlmICghY21kKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjb25zdCBjYWxsZXJzID0gY21kLm1hcChhc3luYyBjdXJyZW50Q21kID0+IG5ldyBQcm9taXNlPE51bGxhYmxlPFRNc2c+PigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGNvbnN0IGRpc3BhdGNoID0gKG1zZzogVE1zZyk6IHZvaWQgPT4gcmVzb2x2ZShtc2cpO1xuXG4gICAgICAgIGN1cnJlbnRDbWQoZGlzcGF0Y2gsIGVycm9yID0+IHtcbiAgICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0pKTtcblxuICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbChjYWxsZXJzKTtcblxuICAgIHJldHVybiByZXN1bHRzO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYW4gdXBkYXRlIGZ1bmN0aW9uIG91dCBvZiBhbiBVcGRhdGVNYXAuXG4gKiBAcGFyYW0ge1VwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+fSB1cGRhdGVNYXAgVGhlIFVwZGF0ZU1hcC5cbiAqIEByZXR1cm5zIHsobXNnOiBUTWVzc2FnZSwgbW9kZWw6IFRNb2RlbCwgcHJvcHM6IFRQcm9wcykgPT4gVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPn0gVGhlIGNyZWF0ZWQgdXBkYXRlIGZ1bmN0aW9uIHdoaWNoIGNhbiBiZSB1c2VkIGluIHRlc3RzLlxuICovXG5mdW5jdGlvbiBnZXRVcGRhdGVGbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlQmFzZT4gKHVwZGF0ZU1hcDogVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4pOiAobXNnOiBUTWVzc2FnZSwgbW9kZWw6IFRNb2RlbCwgcHJvcHM6IFRQcm9wcykgPT4gVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPiB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChtc2c6IFRNZXNzYWdlLCBtb2RlbDogVE1vZGVsLCBwcm9wczogVFByb3BzKTogVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPiB7XG4gICAgICAgIHJldHVybiBjYWxsVXBkYXRlTWFwKHVwZGF0ZU1hcCwgbXNnLCBtb2RlbCwgcHJvcHMpO1xuICAgIH07XG59XG5cbnR5cGUgVXBkYXRlQXJnc0ZhY3Rvcnk8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZUJhc2U+ID0gKG1zZzogVE1lc3NhZ2UsIG1vZGVsVGVtcGxhdGU/OiBQYXJ0aWFsPFRNb2RlbD4sIHByb3BzVGVtcGxhdGU/OiBQYXJ0aWFsPFRQcm9wcz4pID0+IFtUTWVzc2FnZSwgVE1vZGVsLCBUUHJvcHNdO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBmYWN0b3J5IGZ1bmN0aW9uIHRvIGNyZWF0ZSBhIG1lc3NhZ2UsIGEgbW9kZWwsIGFuZCBwcm9wcyB3aGljaCBjYW4gYmUgcGFzc2VkIHRvIGFuIHVwZGF0ZSBmdW5jdGlvbiBpbiB0ZXN0cy5cbiAqIEBwYXJhbSB7KCkgPT4gVE1vZGVsfSBpbml0TW9kZWwgQSBmdW5jdGlvbiB0byBjcmVhdGUgYW4gaW5pdGlhbCBtb2RlbC5cbiAqIEBwYXJhbSB7KCkgPT4gVFByb3BzfSBpbml0UHJvcHMgQSBmdW5jdGlvbiB0byBjcmVhdGUgaW5pdGlhbCBwcm9wcy5cbiAqIEByZXR1cm5zIHtVcGRhdGVBcmdzRmFjdG9yeTxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+fSBBIGZ1bmN0aW9uIHRvIGNyZWF0ZSBhIG1lc3NhZ2UsIGEgbW9kZWwsIGFuZCBwcm9wcy5cbiAqIEBleGFtcGxlXG4gKiAvLyBvbmUgdGltZVxuICogY29uc3QgY3JlYXRlVXBkYXRlQXJncyA9IGNyZWF0ZVVwZGF0ZUFyZ3NGYWN0b3J5KCgpID0+ICh7IC4uLiB9KSwgKCkgPT4gKHsgLi4uIH0pKTtcbiAqIC8vIGluIHRlc3RzXG4gKiBjb25zdCBbbXNnLCBtb2RlbCwgcHJvcHNdID0gY3JlYXRlVXBkYXRlQXJncyhNc2cubXlNZXNzYWdlKCksIHsgLi4uIH0sICwgeyAuLi4gfSk7XG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZVVwZGF0ZUFyZ3NGYWN0b3J5IDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlQmFzZT4gKGluaXRNb2RlbDogKCkgPT4gVE1vZGVsLCBpbml0UHJvcHM6ICgpID0+IFRQcm9wcyk6IFVwZGF0ZUFyZ3NGYWN0b3J5PFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4ge1xuICAgIHJldHVybiBmdW5jdGlvbiAobXNnOiBUTWVzc2FnZSwgbW9kZWxUZW1wbGF0ZT86IFBhcnRpYWw8VE1vZGVsPiwgcHJvcHNUZW1wbGF0ZT86IFBhcnRpYWw8VFByb3BzPik6IFtUTWVzc2FnZSwgVE1vZGVsLCBUUHJvcHNdIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIG1zZyxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAuLi5pbml0TW9kZWwoKSxcbiAgICAgICAgICAgICAgICAuLi5tb2RlbFRlbXBsYXRlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAuLi5pbml0UHJvcHMoKSxcbiAgICAgICAgICAgICAgICAuLi5wcm9wc1RlbXBsYXRlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICB9O1xufVxuXG5mdW5jdGlvbiByZW5kZXJXaXRoTW9kZWw8VE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2VCYXNlLCBUUmVzdWx0PiAocmVuZGVyOiAoKSA9PiBUUmVzdWx0LCBvcHRpb25zOiBUTW9kZWwgfCBSZW5kZXJXaXRoTW9kZWxPcHRpb25zPFRNb2RlbCwgVE1lc3NhZ2U+KTogVFJlc3VsdCB7XG4gICAgaWYgKFwibW9kZWxcIiBpbiBvcHRpb25zICYmIFwiZGlzcGF0Y2hcIiBpbiBvcHRpb25zKSB7XG4gICAgICAgIHNldEZha2VPcHRpb25zKG9wdGlvbnMgYXMgUmVuZGVyV2l0aE1vZGVsT3B0aW9uczx1bmtub3duLCBNZXNzYWdlQmFzZT4pO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHNldEZha2VPcHRpb25zKHtcbiAgICAgICAgICAgIG1vZGVsOiBvcHRpb25zLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSByZW5kZXIoKTtcblxuICAgIHNldEZha2VPcHRpb25zKG51bGwpO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IHR5cGUge1xuICAgIFVwZGF0ZUFyZ3NGYWN0b3J5LFxuICAgIFJlbmRlcldpdGhNb2RlbE9wdGlvbnMsXG59O1xuXG5leHBvcnQge1xuICAgIGdldE9mTXNnUGFyYW1zLFxuICAgIGV4ZWNDbWQsXG4gICAgZ2V0VXBkYXRlRm4sXG4gICAgY3JlYXRlVXBkYXRlQXJnc0ZhY3RvcnksXG4gICAgcmVuZGVyV2l0aE1vZGVsLFxufTsiXSwibWFw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
174
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRPZk1zZ1BhcmFtcyIsImNtZCIsIm1zZ05hbWVzIiwiZGlzcGF0Y2giLCJtc2ciLCJwdXNoIiwibWFwIiwiY3VycmVudENtZCIsImV4ZWNDbWQiLCJjYWxsZXJzIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJlcnJvciIsImFsbCIsInJlc3VsdHMiLCJnZXRVcGRhdGVGbiIsInVwZGF0ZU1hcCIsIm1vZGVsIiwicHJvcHMiLCJjYWxsVXBkYXRlTWFwIiwiY3JlYXRlVXBkYXRlQXJnc0ZhY3RvcnkiLCJpbml0TW9kZWwiLCJpbml0UHJvcHMiLCJtb2RlbFRlbXBsYXRlIiwicHJvcHNUZW1wbGF0ZSIsInJlbmRlcldpdGhNb2RlbCIsInJlbmRlciIsIm9wdGlvbnMiLCJzZXRGYWtlT3B0aW9ucyIsInJlc3VsdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9UZXN0aW5nL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENtZCB9IGZyb20gXCIuLi9DbWRcIjtcbmltcG9ydCB7IE1lc3NhZ2VCYXNlLCBOdWxsYWJsZSwgVXBkYXRlTWFwLCBVcGRhdGVSZXR1cm5UeXBlIH0gZnJvbSBcIi4uL1R5cGVzXCI7XG5pbXBvcnQgeyBjYWxsVXBkYXRlTWFwIH0gZnJvbSBcIi4uL3VzZUVsbWlzaFwiO1xuaW1wb3J0IHsgUmVuZGVyV2l0aE1vZGVsT3B0aW9ucywgc2V0RmFrZU9wdGlvbnMgfSBmcm9tIFwiLi9mYWtlT3B0aW9uc1wiO1xuXG4vKipcbiAqIEV4dHJhY3RzIHRoZSBtZXNzYWdlcyBvdXQgb2YgYSBjb21tYW5kLlxuICogQHBhcmFtIGNtZCBUaGUgY29tbWFuZCB0byBwcm9jZXNzLlxuICogQHJldHVybnMgVGhlIGFycmF5IG9mIG1lc3NhZ2VzLlxuICovXG5mdW5jdGlvbiBnZXRPZk1zZ1BhcmFtczxUTWVzc2FnZT4gKGNtZD86IENtZDxUTWVzc2FnZT4pOiBUTWVzc2FnZSBbXSB7XG4gICAgY29uc3QgbXNnTmFtZXM6IFRNZXNzYWdlIFtdID0gW107XG5cbiAgICBjb25zdCBkaXNwYXRjaCA9IChtc2c6IFRNZXNzYWdlKTogdm9pZCA9PiB7XG4gICAgICAgIG1zZ05hbWVzLnB1c2gobXNnKTtcbiAgICB9O1xuXG4gICAgY21kPy5tYXAoY3VycmVudENtZCA9PiBjdXJyZW50Q21kKGRpc3BhdGNoKSk7XG5cbiAgICByZXR1cm4gbXNnTmFtZXM7XG59XG5cbi8qKlxuICogRXhlY3V0ZXMgYWxsIGNvbW1hbmRzIGFuZCByZXNvbHZlcyB0aGUgbWVzc2FnZXMuXG4gKiBAcGFyYW0gY21kIFRoZSBjb21tYW5kIHRvIHByb2Nlc3MuXG4gKiBAcmV0dXJucyBUaGUgYXJyYXkgb2YgcHJvY2Vzc2VkIG1lc3NhZ2VzLlxuICovXG5hc3luYyBmdW5jdGlvbiBleGVjQ21kPFRNZXNzYWdlPiAoY21kPzogQ21kPFRNZXNzYWdlPik6IFByb21pc2U8TnVsbGFibGU8VE1lc3NhZ2U+IFtdPiB7XG4gICAgaWYgKCFjbWQpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IGNhbGxlcnMgPSBjbWQubWFwKGFzeW5jIGN1cnJlbnRDbWQgPT4gbmV3IFByb21pc2U8TnVsbGFibGU8VE1lc3NhZ2U+PigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGNvbnN0IGRpc3BhdGNoID0gKG1zZzogVE1lc3NhZ2UpOiB2b2lkID0+IHJlc29sdmUobXNnKTtcblxuICAgICAgICBjdXJyZW50Q21kKGRpc3BhdGNoLCBlcnJvciA9PiB7XG4gICAgICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXNvbHZlKG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KSk7XG5cbiAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwoY2FsbGVycyk7XG5cbiAgICByZXR1cm4gcmVzdWx0cztcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGFuIHVwZGF0ZSBmdW5jdGlvbiBvdXQgb2YgYW4gVXBkYXRlTWFwLlxuICogQHBhcmFtIHtVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPn0gdXBkYXRlTWFwIFRoZSBVcGRhdGVNYXAuXG4gKiBAcmV0dXJucyB7KG1zZzogVE1lc3NhZ2UsIG1vZGVsOiBUTW9kZWwsIHByb3BzOiBUUHJvcHMpID0+IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTWVzc2FnZT59IFRoZSBjcmVhdGVkIHVwZGF0ZSBmdW5jdGlvbiB3aGljaCBjYW4gYmUgdXNlZCBpbiB0ZXN0cy5cbiAqL1xuZnVuY3Rpb24gZ2V0VXBkYXRlRm48VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZUJhc2U+ICh1cGRhdGVNYXA6IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+KTogKG1zZzogVE1lc3NhZ2UsIG1vZGVsOiBUTW9kZWwsIHByb3BzOiBUUHJvcHMpID0+IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTWVzc2FnZT4ge1xuICAgIHJldHVybiBmdW5jdGlvbiAobXNnOiBUTWVzc2FnZSwgbW9kZWw6IFRNb2RlbCwgcHJvcHM6IFRQcm9wcyk6IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTWVzc2FnZT4ge1xuICAgICAgICByZXR1cm4gY2FsbFVwZGF0ZU1hcCh1cGRhdGVNYXAsIG1zZywgbW9kZWwsIHByb3BzKTtcbiAgICB9O1xufVxuXG50eXBlIFVwZGF0ZUFyZ3NGYWN0b3J5PFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2VCYXNlPiA9IChtc2c6IFRNZXNzYWdlLCBtb2RlbFRlbXBsYXRlPzogUGFydGlhbDxUTW9kZWw+LCBwcm9wc1RlbXBsYXRlPzogUGFydGlhbDxUUHJvcHM+KSA9PiBbVE1lc3NhZ2UsIFRNb2RlbCwgVFByb3BzXTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgZmFjdG9yeSBmdW5jdGlvbiB0byBjcmVhdGUgYSBtZXNzYWdlLCBhIG1vZGVsLCBhbmQgcHJvcHMgd2hpY2ggY2FuIGJlIHBhc3NlZCB0byBhbiB1cGRhdGUgZnVuY3Rpb24gaW4gdGVzdHMuXG4gKiBAcGFyYW0geygpID0+IFRNb2RlbH0gaW5pdE1vZGVsIEEgZnVuY3Rpb24gdG8gY3JlYXRlIGFuIGluaXRpYWwgbW9kZWwuXG4gKiBAcGFyYW0geygpID0+IFRQcm9wc30gaW5pdFByb3BzIEEgZnVuY3Rpb24gdG8gY3JlYXRlIGluaXRpYWwgcHJvcHMuXG4gKiBAcmV0dXJucyB7VXBkYXRlQXJnc0ZhY3Rvcnk8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPn0gQSBmdW5jdGlvbiB0byBjcmVhdGUgYSBtZXNzYWdlLCBhIG1vZGVsLCBhbmQgcHJvcHMuXG4gKiBAZXhhbXBsZVxuICogLy8gb25lIHRpbWVcbiAqIGNvbnN0IGNyZWF0ZVVwZGF0ZUFyZ3MgPSBjcmVhdGVVcGRhdGVBcmdzRmFjdG9yeSgoKSA9PiAoeyAuLi4gfSksICgpID0+ICh7IC4uLiB9KSk7XG4gKiAvLyBpbiB0ZXN0c1xuICogY29uc3QgW21zZywgbW9kZWwsIHByb3BzXSA9IGNyZWF0ZVVwZGF0ZUFyZ3MoTXNnLm15TWVzc2FnZSgpLCB7IC4uLiB9LCAsIHsgLi4uIH0pO1xuICovXG5mdW5jdGlvbiBjcmVhdGVVcGRhdGVBcmdzRmFjdG9yeTxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlQmFzZT4gKGluaXRNb2RlbDogKCkgPT4gVE1vZGVsLCBpbml0UHJvcHM6ICgpID0+IFRQcm9wcyk6IFVwZGF0ZUFyZ3NGYWN0b3J5PFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4ge1xuICAgIHJldHVybiBmdW5jdGlvbiAobXNnOiBUTWVzc2FnZSwgbW9kZWxUZW1wbGF0ZT86IFBhcnRpYWw8VE1vZGVsPiwgcHJvcHNUZW1wbGF0ZT86IFBhcnRpYWw8VFByb3BzPik6IFtUTWVzc2FnZSwgVE1vZGVsLCBUUHJvcHNdIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIG1zZyxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAuLi5pbml0TW9kZWwoKSxcbiAgICAgICAgICAgICAgICAuLi5tb2RlbFRlbXBsYXRlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAuLi5pbml0UHJvcHMoKSxcbiAgICAgICAgICAgICAgICAuLi5wcm9wc1RlbXBsYXRlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICB9O1xufVxuXG4vKipcbiAqIFJlbmRlcnMgYSBjb21wb25lbnQgd2l0aCBhIHByb3ZpZGVkIG1vZGVsLlxuICogQHRlbXBsYXRlIFRNb2RlbCBUaGUgdHlwZSBvZiB0aGUgbW9kZWwuXG4gKiBAdGVtcGxhdGUgVE1lc3NhZ2UgVGhlIHR5cGUgb2YgdGhlIG1lc3NhZ2UgZGlzY3JpbWluYXRlZCB1bmlvbi5cbiAqIEB0ZW1wbGF0ZSBUUmVzdWx0IFRoZSByZXR1cm4gdHlwZSBvZiB0aGUgcmVuZGVyIGZ1bmN0aW9uLlxuICogQHBhcmFtIHsoKSA9PiBUUmVzdWx0fSByZW5kZXIgQSBmdW5jdGlvbiB0byByZW5kZXIgdGhlIGNvbXBvbmVudC4gVXNlIHRoZSBgcmVuZGVyYCBmdW5jdGlvbiBvZiB0aGUgdXNlZCB0ZXN0aW5nIGxpYnJhcnkuXG4gKiBAcGFyYW0geyhUTW9kZWwgfCBSZW5kZXJXaXRoTW9kZWxPcHRpb25zPFRNb2RlbCwgVE1lc3NhZ2U+KX0gb3B0aW9ucyBUaGUgbW9kZWwgb3IgYW4gb3B0aW9ucyBvYmplY3QuXG4gKiBAcmV0dXJucyB7VFJlc3VsdH0gVGhlIHJldHVybmVkIHZhbHVlIG9mIHRoZSBgcmVuZGVyYCBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gcmVuZGVyV2l0aE1vZGVsPFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlQmFzZSwgVFJlc3VsdD4gKHJlbmRlcjogKCkgPT4gVFJlc3VsdCwgb3B0aW9uczogVE1vZGVsIHwgUmVuZGVyV2l0aE1vZGVsT3B0aW9uczxUTW9kZWwsIFRNZXNzYWdlPik6IFRSZXN1bHQge1xuICAgIGlmIChcIm1vZGVsXCIgaW4gb3B0aW9ucyAmJiBcImRpc3BhdGNoXCIgaW4gb3B0aW9ucykge1xuICAgICAgICBzZXRGYWtlT3B0aW9ucyhvcHRpb25zIGFzIFJlbmRlcldpdGhNb2RlbE9wdGlvbnM8dW5rbm93biwgTWVzc2FnZUJhc2U+KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBzZXRGYWtlT3B0aW9ucyh7XG4gICAgICAgICAgICBtb2RlbDogb3B0aW9ucyxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gcmVuZGVyKCk7XG5cbiAgICBzZXRGYWtlT3B0aW9ucyhudWxsKTtcblxuICAgIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCB0eXBlIHtcbiAgICBVcGRhdGVBcmdzRmFjdG9yeSxcbiAgICBSZW5kZXJXaXRoTW9kZWxPcHRpb25zLFxufTtcblxuZXhwb3J0IHtcbiAgICBnZXRPZk1zZ1BhcmFtcyxcbiAgICBleGVjQ21kLFxuICAgIGdldFVwZGF0ZUZuLFxuICAgIGNyZWF0ZVVwZGF0ZUFyZ3NGYWN0b3J5LFxuICAgIHJlbmRlcldpdGhNb2RlbCxcbn07Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBRUE7O0FBQ0E7OytDQUZBLG9KOzs7Ozs7Ozs7Ozs7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsY0FBVCxDQUFtQ0MsR0FBbkMsRUFBcUU7RUFDakUsSUFBTUMsUUFBcUIsR0FBRyxFQUE5Qjs7RUFFQSxJQUFNQyxRQUFRLEdBQUcsU0FBWEEsUUFBVyxDQUFDQyxHQUFELEVBQXlCO0lBQ3RDRixRQUFRLENBQUNHLElBQVQsQ0FBY0QsR0FBZDtFQUNILENBRkQ7O0VBSUFILEdBQUcsU0FBSCxJQUFBQSxHQUFHLFdBQUgsWUFBQUEsR0FBRyxDQUFFSyxHQUFMLENBQVMsVUFBQUMsVUFBVTtJQUFBLE9BQUlBLFVBQVUsQ0FBQ0osUUFB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
package/dist/Types.d.ts CHANGED
@@ -9,18 +9,21 @@ interface MessageBase {
9
9
  interface MsgSource<T extends string> {
10
10
  source: T;
11
11
  }
12
+ /**
13
+ * The return type of the `init` function.
14
+ */
12
15
  declare type InitResult<TModel, TMessage> = [TModel, Cmd<TMessage>?];
13
16
  declare type InitFunction<TProps, TModel, TMessage> = (props: TProps) => InitResult<TModel, TMessage>;
14
17
  /**
15
- * Type for the return value of the update function.
18
+ * Type for the return value of the `update` function.
16
19
  */
17
- declare type UpdateReturnType<TModel, TMsg> = [Partial<TModel>, Cmd<TMsg>?];
18
- declare type UpdateFunction<TProps, TModel, TMsg> = (model: TModel, msg: TMsg, props: TProps) => UpdateReturnType<TModel, TMsg>;
20
+ declare type UpdateReturnType<TModel, TMessage> = [Partial<TModel>, Cmd<TMessage>?];
21
+ declare type UpdateFunction<TProps, TModel, TMessage> = (model: TModel, msg: TMessage, props: TProps) => UpdateReturnType<TModel, TMessage>;
19
22
  /**
20
23
  * Type for mapping messages to functions.
21
24
  * Use this type to create your update logic for the useElmish hook.
22
25
  */
23
- declare type UpdateMap<TProps, TModel, TMsg extends MessageBase> = {
24
- [M in TMsg as M["name"]]: (msg: M, model: TModel, props: TProps) => UpdateReturnType<TModel, TMsg>;
26
+ declare type UpdateMap<TProps, TModel, TMessage extends MessageBase> = {
27
+ [M in TMessage as M["name"]]: (msg: M, model: TModel, props: TProps) => UpdateReturnType<TModel, TMessage>;
25
28
  };
26
29
  export type { Nullable, MessageBase, MsgSource, InitResult, InitFunction, UpdateReturnType, UpdateFunction, UpdateMap, };
package/dist/Types.js CHANGED
@@ -3,4 +3,4 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL1R5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENtZCB9IGZyb20gXCIuL0NtZFwiO1xuXG50eXBlIE51bGxhYmxlPFQ+ID0gVCB8IG51bGw7XG5cbmludGVyZmFjZSBNZXNzYWdlQmFzZSB7XG4gICAgbmFtZTogc3RyaW5nIHwgc3ltYm9sLFxufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBNc2dTb3VyY2UgdHlwZS5cbiAqL1xuaW50ZXJmYWNlIE1zZ1NvdXJjZTxUIGV4dGVuZHMgc3RyaW5nPiB7XG4gICAgc291cmNlOiBULFxufVxuXG50eXBlIEluaXRSZXN1bHQ8VE1vZGVsLCBUTWVzc2FnZT4gPSBbVE1vZGVsLCBDbWQ8VE1lc3NhZ2U+P107XG5cbnR5cGUgSW5pdEZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gPSAocHJvcHM6IFRQcm9wcykgPT4gSW5pdFJlc3VsdDxUTW9kZWwsIFRNZXNzYWdlPjtcblxuLyoqXG4gKiBUeXBlIGZvciB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSB1cGRhdGUgZnVuY3Rpb24uXG4gKi9cbnR5cGUgVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNc2c+ID0gW1BhcnRpYWw8VE1vZGVsPiwgQ21kPFRNc2c+P107XG5cbnR5cGUgVXBkYXRlRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNc2c+ID0gKG1vZGVsOiBUTW9kZWwsIG1zZzogVE1zZywgcHJvcHM6IFRQcm9wcykgPT4gVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNc2c+O1xuXG4vKipcbiAqIFR5cGUgZm9yIG1hcHBpbmcgbWVzc2FnZXMgdG8gZnVuY3Rpb25zLlxuICogVXNlIHRoaXMgdHlwZSB0byBjcmVhdGUgeW91ciB1cGRhdGUgbG9naWMgZm9yIHRoZSB1c2VFbG1pc2ggaG9vay5cbiAqL1xudHlwZSBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNc2cgZXh0ZW5kcyBNZXNzYWdlQmFzZT4gPSB7XG4gICAgW00gaW4gVE1zZyBhcyBNW1wibmFtZVwiXV06IChtc2c6IE0sIG1vZGVsOiBUTW9kZWwsIHByb3BzOiBUUHJvcHMpID0+IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTXNnPjtcbn07XG5cbmV4cG9ydCB0eXBlIHtcbiAgICBOdWxsYWJsZSxcbiAgICBNZXNzYWdlQmFzZSxcbiAgICBNc2dTb3VyY2UsXG4gICAgSW5pdFJlc3VsdCxcbiAgICBJbml0RnVuY3Rpb24sXG4gICAgVXBkYXRlUmV0dXJuVHlwZSxcbiAgICBVcGRhdGVGdW5jdGlvbixcbiAgICBVcGRhdGVNYXAsXG59OyJdLCJtYXBwaW5ncyI6IiJ9
6
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL1R5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENtZCB9IGZyb20gXCIuL0NtZFwiO1xuXG50eXBlIE51bGxhYmxlPFQ+ID0gVCB8IG51bGw7XG5cbmludGVyZmFjZSBNZXNzYWdlQmFzZSB7XG4gICAgbmFtZTogc3RyaW5nIHwgc3ltYm9sLFxufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBNc2dTb3VyY2UgdHlwZS5cbiAqL1xuaW50ZXJmYWNlIE1zZ1NvdXJjZTxUIGV4dGVuZHMgc3RyaW5nPiB7XG4gICAgc291cmNlOiBULFxufVxuXG4vKipcbiAqIFRoZSByZXR1cm4gdHlwZSBvZiB0aGUgYGluaXRgIGZ1bmN0aW9uLlxuICovXG50eXBlIEluaXRSZXN1bHQ8VE1vZGVsLCBUTWVzc2FnZT4gPSBbVE1vZGVsLCBDbWQ8VE1lc3NhZ2U+P107XG5cbnR5cGUgSW5pdEZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gPSAocHJvcHM6IFRQcm9wcykgPT4gSW5pdFJlc3VsdDxUTW9kZWwsIFRNZXNzYWdlPjtcblxuLyoqXG4gKiBUeXBlIGZvciB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBgdXBkYXRlYCBmdW5jdGlvbi5cbiAqL1xudHlwZSBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgVE1lc3NhZ2U+ID0gW1BhcnRpYWw8VE1vZGVsPiwgQ21kPFRNZXNzYWdlPj9dO1xuXG50eXBlIFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gPSAobW9kZWw6IFRNb2RlbCwgbXNnOiBUTWVzc2FnZSwgcHJvcHM6IFRQcm9wcykgPT4gVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPjtcblxuLyoqXG4gKiBUeXBlIGZvciBtYXBwaW5nIG1lc3NhZ2VzIHRvIGZ1bmN0aW9ucy5cbiAqIFVzZSB0aGlzIHR5cGUgdG8gY3JlYXRlIHlvdXIgdXBkYXRlIGxvZ2ljIGZvciB0aGUgdXNlRWxtaXNoIGhvb2suXG4gKi9cbnR5cGUgVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2VCYXNlPiA9IHtcbiAgICBbTSBpbiBUTWVzc2FnZSBhcyBNW1wibmFtZVwiXV06IChtc2c6IE0sIG1vZGVsOiBUTW9kZWwsIHByb3BzOiBUUHJvcHMpID0+IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTWVzc2FnZT47XG59O1xuXG5leHBvcnQgdHlwZSB7XG4gICAgTnVsbGFibGUsXG4gICAgTWVzc2FnZUJhc2UsXG4gICAgTXNnU291cmNlLFxuICAgIEluaXRSZXN1bHQsXG4gICAgSW5pdEZ1bmN0aW9uLFxuICAgIFVwZGF0ZVJldHVyblR5cGUsXG4gICAgVXBkYXRlRnVuY3Rpb24sXG4gICAgVXBkYXRlTWFwLFxufTsiXSwibWFwcGluZ3MiOiIifQ==
package/dist/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { Cmd, createCmd, Dispatch } from "./Cmd";
2
+ import { ElmComponent } from "./ElmComponent";
2
3
  import { errorHandler, ErrorMessage, errorMsg, handleError } from "./ErrorHandling";
3
4
  import { init, Logger, Message } from "./Init";
4
5
  import { InitResult, MsgSource, UpdateMap, UpdateReturnType } from "./Types";
5
6
  import { SubscriptionResult, useElmish } from "./useElmish";
6
- import { ElmComponent } from "./ElmComponent";
7
7
  export type { Logger, Message, Cmd, Dispatch, InitResult, UpdateReturnType, SubscriptionResult, MsgSource, UpdateMap, ErrorMessage, };
8
8
  export { init, createCmd, ElmComponent, errorMsg, errorHandler, handleError, useElmish, };
package/dist/index.js CHANGED
@@ -48,11 +48,11 @@ Object.defineProperty(exports, "useElmish", {
48
48
 
49
49
  var _Cmd = require("./Cmd");
50
50
 
51
+ var _ElmComponent = require("./ElmComponent");
52
+
51
53
  var _ErrorHandling = require("./ErrorHandling");
52
54
 
53
55
  var _Init = require("./Init");
54
56
 
55
57
  var _useElmish = require("./useElmish");
56
-
57
- var _ElmComponent = require("./ElmComponent");
58
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENtZCwgY3JlYXRlQ21kLCBEaXNwYXRjaCB9IGZyb20gXCIuL0NtZFwiO1xuaW1wb3J0IHsgZXJyb3JIYW5kbGVyLCBFcnJvck1lc3NhZ2UsIGVycm9yTXNnLCBoYW5kbGVFcnJvciB9IGZyb20gXCIuL0Vycm9ySGFuZGxpbmdcIjtcbmltcG9ydCB7IGluaXQsIExvZ2dlciwgTWVzc2FnZSB9IGZyb20gXCIuL0luaXRcIjtcbmltcG9ydCB7IEluaXRSZXN1bHQsIE1zZ1NvdXJjZSwgVXBkYXRlTWFwLCBVcGRhdGVSZXR1cm5UeXBlIH0gZnJvbSBcIi4vVHlwZXNcIjtcbmltcG9ydCB7IFN1YnNjcmlwdGlvblJlc3VsdCwgdXNlRWxtaXNoIH0gZnJvbSBcIi4vdXNlRWxtaXNoXCI7XG5pbXBvcnQgeyBFbG1Db21wb25lbnQgfSBmcm9tIFwiLi9FbG1Db21wb25lbnRcIjtcblxuZXhwb3J0IHR5cGUge1xuICAgIExvZ2dlcixcbiAgICBNZXNzYWdlLFxuICAgIENtZCxcbiAgICBEaXNwYXRjaCxcbiAgICBJbml0UmVzdWx0LFxuICAgIFVwZGF0ZVJldHVyblR5cGUsXG4gICAgU3Vic2NyaXB0aW9uUmVzdWx0LFxuICAgIE1zZ1NvdXJjZSxcbiAgICBVcGRhdGVNYXAsXG4gICAgRXJyb3JNZXNzYWdlLFxufTtcblxuZXhwb3J0IHtcbiAgICBpbml0LFxuICAgIGNyZWF0ZUNtZCxcbiAgICBFbG1Db21wb25lbnQsXG4gICAgZXJyb3JNc2csXG4gICAgZXJyb3JIYW5kbGVyLFxuICAgIGhhbmRsZUVycm9yLFxuICAgIHVzZUVsbWlzaCxcbn07Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQSJ9
58
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENtZCwgY3JlYXRlQ21kLCBEaXNwYXRjaCB9IGZyb20gXCIuL0NtZFwiO1xuaW1wb3J0IHsgRWxtQ29tcG9uZW50IH0gZnJvbSBcIi4vRWxtQ29tcG9uZW50XCI7XG5pbXBvcnQgeyBlcnJvckhhbmRsZXIsIEVycm9yTWVzc2FnZSwgZXJyb3JNc2csIGhhbmRsZUVycm9yIH0gZnJvbSBcIi4vRXJyb3JIYW5kbGluZ1wiO1xuaW1wb3J0IHsgaW5pdCwgTG9nZ2VyLCBNZXNzYWdlIH0gZnJvbSBcIi4vSW5pdFwiO1xuaW1wb3J0IHsgSW5pdFJlc3VsdCwgTXNnU291cmNlLCBVcGRhdGVNYXAsIFVwZGF0ZVJldHVyblR5cGUgfSBmcm9tIFwiLi9UeXBlc1wiO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uUmVzdWx0LCB1c2VFbG1pc2ggfSBmcm9tIFwiLi91c2VFbG1pc2hcIjtcblxuZXhwb3J0IHR5cGUge1xuICAgIExvZ2dlcixcbiAgICBNZXNzYWdlLFxuICAgIENtZCxcbiAgICBEaXNwYXRjaCxcbiAgICBJbml0UmVzdWx0LFxuICAgIFVwZGF0ZVJldHVyblR5cGUsXG4gICAgU3Vic2NyaXB0aW9uUmVzdWx0LFxuICAgIE1zZ1NvdXJjZSxcbiAgICBVcGRhdGVNYXAsXG4gICAgRXJyb3JNZXNzYWdlLFxufTtcblxuZXhwb3J0IHtcbiAgICBpbml0LFxuICAgIGNyZWF0ZUNtZCxcbiAgICBFbG1Db21wb25lbnQsXG4gICAgZXJyb3JNc2csXG4gICAgZXJyb3JIYW5kbGVyLFxuICAgIGhhbmRsZUVycm9yLFxuICAgIHVzZUVsbWlzaCxcbn07Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQSJ9
@@ -1,12 +1,43 @@
1
1
  import { Cmd, Dispatch } from "./Cmd";
2
2
  import { InitFunction, MessageBase, UpdateFunction, UpdateMap, UpdateReturnType } from "./Types";
3
+ /**
4
+ * The return type of the `subscription` function.
5
+ * @template TMessage The type of the messages discriminated union.
6
+ */
3
7
  declare type SubscriptionResult<TMessage> = [Cmd<TMessage>, (() => void)?];
4
8
  declare type Subscription<TProps, TModel, TMessage> = (model: TModel, props: TProps) => SubscriptionResult<TMessage>;
9
+ /**
10
+ * Options for the `useElmish` hook.
11
+ * @interface UseElmishOptions
12
+ * @template TProps The type of the props.
13
+ * @template TModel The type of the model.
14
+ * @template TMessage The type of the messages discriminated union.
15
+ */
5
16
  interface UseElmishOptions<TProps, TModel, TMessage extends MessageBase> {
17
+ /**
18
+ * The name of the component. This is used for logging only.
19
+ * @type {string}
20
+ */
6
21
  name: string;
22
+ /**
23
+ * The props passed to the component.
24
+ * @type {TProps}
25
+ */
7
26
  props: TProps;
27
+ /**
28
+ * The function to initialize the components model. This function is only called once.
29
+ * @type {InitFunction<TProps, TModel, TMessage>}
30
+ */
8
31
  init: InitFunction<TProps, TModel, TMessage>;
32
+ /**
33
+ * The `update` function or update map object.
34
+ * @type {(UpdateFunction<TProps, TModel, TMessage> | UpdateMap<TProps, TModel, TMessage>)}
35
+ */
9
36
  update: UpdateFunction<TProps, TModel, TMessage> | UpdateMap<TProps, TModel, TMessage>;
37
+ /**
38
+ * The optional `subscription` function. This function is only called once.
39
+ * @type {(UpdateFunction<TProps, TModel, TMessage> | UpdateMap<TProps, TModel, TMessage>)}
40
+ */
10
41
  subscription?: Subscription<TProps, TModel, TMessage>;
11
42
  }
12
43
  /**
package/dist/useElmish.js CHANGED
@@ -9,10 +9,10 @@ exports.useElmish = useElmish;
9
9
 
10
10
  var _react = require("react");
11
11
 
12
- var _fakeOptions = require("./Testing/fakeOptions");
13
-
14
12
  var _Init = require("./Init");
15
13
 
14
+ var _fakeOptions = require("./Testing/fakeOptions");
15
+
16
16
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
17
17
 
18
18
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
@@ -183,4 +183,4 @@ function callUpdateMap(updateMap, msg, model, props) {
183
183
  var updateFn = updateMap[msg.name];
184
184
  return updateFn(msg, model, props);
185
185
  }
186
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFbG1pc2giLCJuYW1lIiwicHJvcHMiLCJpbml0IiwidXBkYXRlIiwic3Vic2NyaXB0aW9uIiwicmVlbnRlcmVkIiwiYnVmZmVyIiwiY3VycmVudE1vZGVsIiwidXNlU3RhdGUiLCJtb2RlbCIsInNldE1vZGVsIiwiaW5pdGlhbGl6ZWRNb2RlbCIsInByb3BzUmVmIiwidXNlUmVmIiwiY3VycmVudCIsImV4ZWNDbWQiLCJ1c2VDYWxsYmFjayIsImNtZCIsImZvckVhY2giLCJjYWxsIiwiZGlzcGF0Y2giLCJleCIsIlNlcnZpY2VzIiwibG9nZ2VyIiwiZXJyb3IiLCJmYWtlT3B0aW9ucyIsImdldEZha2VPcHRpb25zT25jZSIsIm1zZyIsIm1vZGVsSGFzQ2hhbmdlZCIsInVwZGF0ZWRNb2RlbCIsIk9iamVjdCIsImdldE93blByb3BlcnR5TmFtZXMiLCJsZW5ndGgiLCJwdXNoIiwibmV4dE1zZyIsIm1vZGlmaWVkIiwiaW5mbyIsImRlYnVnIiwiZGlzcGF0Y2hNaWRkbGV3YXJlIiwiY2FsbFVwZGF0ZSIsIm5ld01vZGVsIiwic2hpZnQiLCJwcmV2TW9kZWwiLCJpbml0TW9kZWwiLCJpbml0Q21kIiwidXNlRWZmZWN0Iiwic3ViQ21kIiwiZGVzdHJ1Y3RvciIsImNhbGxVcGRhdGVNYXAiLCJ1cGRhdGVNYXAiLCJ1cGRhdGVGbiJdLCJzb3VyY2VzIjpbIi4uL3NyYy91c2VFbG1pc2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzICovXG5pbXBvcnQgeyBDbWQsIERpc3BhdGNoIH0gZnJvbSBcIi4vQ21kXCI7XG5pbXBvcnQgeyBJbml0RnVuY3Rpb24sIE1lc3NhZ2VCYXNlLCBOdWxsYWJsZSwgVXBkYXRlRnVuY3Rpb24sIFVwZGF0ZU1hcCwgVXBkYXRlUmV0dXJuVHlwZSB9IGZyb20gXCIuL1R5cGVzXCI7XG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBnZXRGYWtlT3B0aW9uc09uY2UgfSBmcm9tIFwiLi9UZXN0aW5nL2Zha2VPcHRpb25zXCI7XG5pbXBvcnQgeyBTZXJ2aWNlcyB9IGZyb20gXCIuL0luaXRcIjtcblxudHlwZSBTdWJzY3JpcHRpb25SZXN1bHQ8VE1lc3NhZ2U+ID0gW0NtZDxUTWVzc2FnZT4sICgoKSA9PiB2b2lkKT9dO1xudHlwZSBTdWJzY3JpcHRpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiA9IChtb2RlbDogVE1vZGVsLCBwcm9wczogVFByb3BzKSA9PiBTdWJzY3JpcHRpb25SZXN1bHQ8VE1lc3NhZ2U+O1xuXG5pbnRlcmZhY2UgVXNlRWxtaXNoT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlQmFzZT4ge1xuICAgIG5hbWU6IHN0cmluZyxcbiAgICBwcm9wczogVFByb3BzLFxuICAgIGluaXQ6IEluaXRGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuICAgIHVwZGF0ZTogVXBkYXRlRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiB8IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuICAgIHN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxufVxuXG4vKipcbiAqIEhvb2sgdG8gdXNlIHRoZSBFbG0gYXJjaGl0ZWN0dXJlIHBhdHRlcm4gaW4gYSBmdW5jdGlvbiBjb21wb25lbnQuXG4gKiBAcGFyYW0ge1VzZUVsbWlzaE9wdGlvbnN9IG9wdGlvbnMgVGhlIG9wdGlvbnMgcGFzc2VkIHRoZSB0aGUgaG9vay5cbiAqIEByZXR1cm5zIEEgdHVwbGUgY29udGFpbmluZyB0aGUgY3VycmVudCBtb2RlbCBhbmQgdGhlIGRpc3BhdGNoZXIuXG4gKiBAZXhhbXBsZVxuICogY29uc3QgW21vZGVsLCBkaXNwYXRjaF0gPSB1c2VFbG1pc2goeyBwcm9wcywgaW5pdCwgdXBkYXRlLCBuYW1lOiBcIk15Q29tcG9uZW50XCIgfSk7XG4gKi9cbmZ1bmN0aW9uIHVzZUVsbWlzaDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlQmFzZT4gKHsgbmFtZSwgcHJvcHMsIGluaXQsIHVwZGF0ZSwgc3Vic2NyaXB0aW9uIH06IFVzZUVsbWlzaE9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPik6IFtUTW9kZWwsIERpc3BhdGNoPFRNZXNzYWdlPl0ge1xuICAgIGxldCByZWVudGVyZWQgPSBmYWxzZTtcbiAgICBjb25zdCBidWZmZXI6IFRNZXNzYWdlIFtdID0gW107XG4gICAgbGV0IGN1cnJlbnRNb2RlbDogUGFydGlhbDxUTW9kZWw+ID0ge307XG5cbiAgICBjb25zdCBbbW9kZWwsIHNldE1vZGVsXSA9IHVzZVN0YXRlPE51bGxhYmxlPFRNb2RlbD4+KG51bGwpO1xuICAgIGxldCBpbml0aWFsaXplZE1vZGVsID0gbW9kZWw7XG5cbiAgICBjb25zdCBwcm9wc1JlZiA9IHVzZVJlZihwcm9wcyk7XG5cbiAgICBpZiAocHJvcHNSZWYuY3VycmVudCAhPT0gcHJvcHMpIHtcbiAgICAgICAgcHJvcHNSZWYuY3VycmVudCA9IHByb3BzO1xuICAgIH1cblxuICAgIGNvbnN0IGV4ZWNDbWQgPSB1c2VDYWxsYmFjaygoY21kOiBDbWQ8VE1lc3NhZ2U+KTogdm9pZCA9PiB7XG4gICAgICAgIGNtZC5mb3JFYWNoKGNhbGwgPT4ge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjYWxsKGRpc3BhdGNoKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGV4OiB1bmtub3duKSB7XG4gICAgICAgICAgICAgICAgU2VydmljZXMubG9nZ2VyPy5lcnJvcihleCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0sIFtdKTtcblxuICAgIGNvbnN0IGZha2VPcHRpb25zID0gZ2V0RmFrZU9wdGlvbnNPbmNlKCk7XG4gICAgY29uc3QgZGlzcGF0Y2ggPSB1c2VDYWxsYmFjayhmYWtlT3B0aW9ucz8uZGlzcGF0Y2ggPz8gKChtc2c6IFRNZXNzYWdlKTogdm9pZCA9PiB7XG4gICAgICAgIGlmICghaW5pdGlhbGl6ZWRNb2RlbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbW9kZWxIYXNDaGFuZ2VkID0gKHVwZGF0ZWRNb2RlbDogUGFydGlhbDxUTW9kZWw+KTogYm9vbGVhbiA9PiB1cGRhdGVkTW9kZWwgIT09IGluaXRpYWxpemVkTW9kZWwgJiYgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModXBkYXRlZE1vZGVsKS5sZW5ndGggPiAwO1xuXG4gICAgICAgIGlmIChyZWVudGVyZWQpIHtcbiAgICAgICAgICAgIGJ1ZmZlci5wdXNoKG1zZyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZWVudGVyZWQgPSB0cnVlO1xuXG4gICAgICAgICAgICBsZXQgbmV4dE1zZzogVE1lc3NhZ2UgfCB1bmRlZmluZWQgPSBtc2c7XG4gICAgICAgICAgICBsZXQgbW9kaWZpZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgd2hpbGUgKG5leHRNc2cpIHtcbiAgICAgICAgICAgICAgICBTZXJ2aWNlcy5sb2dnZXI/LmluZm8oXCJFbG1cIiwgXCJtZXNzYWdlIGZyb21cIiwgbmFtZSwgbmV4dE1zZy5uYW1lKTtcbiAgICAgICAgICAgICAgICBTZXJ2aWNlcy5sb2dnZXI/LmRlYnVnKFwiRWxtXCIsIFwibWVzc2FnZSBmcm9tXCIsIG5hbWUsIG5leHRNc2cpO1xuXG4gICAgICAgICAgICAgICAgaWYgKFNlcnZpY2VzLmRpc3BhdGNoTWlkZGxld2FyZSkge1xuICAgICAgICAgICAgICAgICAgICBTZXJ2aWNlcy5kaXNwYXRjaE1pZGRsZXdhcmUobmV4dE1zZyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgW25ld01vZGVsLCBjbWRdID0gY2FsbFVwZGF0ZSh1cGRhdGUsIG5leHRNc2csIHsgLi4uaW5pdGlhbGl6ZWRNb2RlbCwgLi4uY3VycmVudE1vZGVsIH0sIHByb3BzUmVmLmN1cnJlbnQpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChtb2RlbEhhc0NoYW5nZWQobmV3TW9kZWwpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50TW9kZWwgPSB7IC4uLmN1cnJlbnRNb2RlbCwgLi4ubmV3TW9kZWwgfTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGNtZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXhlY0NtZChjbWQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXg6IHVua25vd24pIHtcbiAgICAgICAgICAgICAgICAgICAgU2VydmljZXMubG9nZ2VyPy5lcnJvcihleCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgbmV4dE1zZyA9IGJ1ZmZlci5zaGlmdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVlbnRlcmVkID0gZmFsc2U7XG5cbiAgICAgICAgICAgIGlmIChtb2RpZmllZCkge1xuICAgICAgICAgICAgICAgIHNldE1vZGVsKHByZXZNb2RlbCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWRNb2RlbCA9IHsgLi4ucHJldk1vZGVsIGFzIFRNb2RlbCwgLi4uY3VycmVudE1vZGVsIH07XG5cbiAgICAgICAgICAgICAgICAgICAgU2VydmljZXMubG9nZ2VyPy5kZWJ1ZyhcIkVsbVwiLCBcInVwZGF0ZSBtb2RlbCBmb3JcIiwgbmFtZSwgdXBkYXRlZE1vZGVsKTtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdXBkYXRlZE1vZGVsO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSksIFtdKTtcblxuICAgIGlmICghaW5pdGlhbGl6ZWRNb2RlbCkge1xuICAgICAgICBjb25zdCBbaW5pdE1vZGVsLCBpbml0Q21kXSA9IGZha2VPcHRpb25zPy5tb2RlbCA/IFtmYWtlT3B0aW9ucy5tb2RlbCBhcyBUTW9kZWxdIDogaW5pdChwcm9wcyk7XG5cbiAgICAgICAgaW5pdGlhbGl6ZWRNb2RlbCA9IGluaXRNb2RlbDtcbiAgICAgICAgc2V0TW9kZWwoaW5pdGlhbGl6ZWRNb2RlbCk7XG5cbiAgICAgICAgaWYgKGluaXRDbWQpIHtcbiAgICAgICAgICAgIGV4ZWNDbWQoaW5pdENtZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoc3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICBjb25zdCBbc3ViQ21kLCBkZXN0cnVjdG9yXSA9IHN1YnNjcmlwdGlvbihpbml0aWFsaXplZE1vZGVsIGFzIFRNb2RlbCwgcHJvcHMpO1xuXG4gICAgICAgICAgICBleGVjQ21kKHN1YkNtZCk7XG5cbiAgICAgICAgICAgIGlmIChkZXN0cnVjdG9yKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRlc3RydWN0b3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LCBbXSk7XG5cbiAgICByZXR1cm4gW2luaXRpYWxpemVkTW9kZWwsIGRpc3BhdGNoXTtcbn1cblxuZnVuY3Rpb24gY2FsbFVwZGF0ZTxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlQmFzZT4gKHVwZGF0ZTogVXBkYXRlRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiB8IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LCBtc2c6IFRNZXNzYWdlLCBtb2RlbDogVE1vZGVsLCBwcm9wczogVFByb3BzKTogVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPiB7XG4gICAgaWYgKHR5cGVvZiB1cGRhdGUgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICByZXR1cm4gdXBkYXRlKG1vZGVsLCBtc2csIHByb3BzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY2FsbFVwZGF0ZU1hcCh1cGRhdGUsIG1zZywgbW9kZWwsIHByb3BzKTtcbn1cblxuZnVuY3Rpb24gY2FsbFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlQmFzZT4gKHVwZGF0ZU1hcDogVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sIG1zZzogVE1lc3NhZ2UsIG1vZGVsOiBUTW9kZWwsIHByb3BzOiBUUHJvcHMpOiBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgVE1lc3NhZ2U+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciAtLSBXZSBrbm93IHRoYXQgbXNnIGZpdHNcbiAgICBjb25zdCB1cGRhdGVGbiA9IHVwZGF0ZU1hcFttc2cubmFtZSBhcyBUTWVzc2FnZVtcIm5hbWVcIl1dIGFzIChtc2c6IFRNZXNzYWdlLCBtb2RlbDogVE1vZGVsLCBwcm9wczogVFByb3BzKSA9PiBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgVE1zZz47XG5cbiAgICByZXR1cm4gdXBkYXRlRm4obXNnLCBtb2RlbCwgcHJvcHMpO1xufVxuXG5leHBvcnQgdHlwZSB7XG4gICAgU3Vic2NyaXB0aW9uUmVzdWx0LFxufTtcblxuZXhwb3J0IHtcbiAgICB1c2VFbG1pc2gsXG4gICAgY2FsbFVwZGF0ZSxcbiAgICBjYWxsVXBkYXRlTWFwLFxufTsiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUdBOztBQUNBOztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWFBO0FBQ0E7QUFDQTtBQUNBO0FB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
186
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFbG1pc2giLCJuYW1lIiwicHJvcHMiLCJpbml0IiwidXBkYXRlIiwic3Vic2NyaXB0aW9uIiwicmVlbnRlcmVkIiwiYnVmZmVyIiwiY3VycmVudE1vZGVsIiwidXNlU3RhdGUiLCJtb2RlbCIsInNldE1vZGVsIiwiaW5pdGlhbGl6ZWRNb2RlbCIsInByb3BzUmVmIiwidXNlUmVmIiwiY3VycmVudCIsImV4ZWNDbWQiLCJ1c2VDYWxsYmFjayIsImNtZCIsImZvckVhY2giLCJjYWxsIiwiZGlzcGF0Y2giLCJleCIsIlNlcnZpY2VzIiwibG9nZ2VyIiwiZXJyb3IiLCJmYWtlT3B0aW9ucyIsImdldEZha2VPcHRpb25zT25jZSIsIm1zZyIsIm1vZGVsSGFzQ2hhbmdlZCIsInVwZGF0ZWRNb2RlbCIsIk9iamVjdCIsImdldE93blByb3BlcnR5TmFtZXMiLCJsZW5ndGgiLCJwdXNoIiwibmV4dE1zZyIsIm1vZGlmaWVkIiwiaW5mbyIsImRlYnVnIiwiZGlzcGF0Y2hNaWRkbGV3YXJlIiwiY2FsbFVwZGF0ZSIsIm5ld01vZGVsIiwic2hpZnQiLCJwcmV2TW9kZWwiLCJpbml0TW9kZWwiLCJpbml0Q21kIiwidXNlRWZmZWN0Iiwic3ViQ21kIiwiZGVzdHJ1Y3RvciIsImNhbGxVcGRhdGVNYXAiLCJ1cGRhdGVNYXAiLCJ1cGRhdGVGbiJdLCJzb3VyY2VzIjpbIi4uL3NyYy91c2VFbG1pc2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzICovXG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBDbWQsIERpc3BhdGNoIH0gZnJvbSBcIi4vQ21kXCI7XG5pbXBvcnQgeyBTZXJ2aWNlcyB9IGZyb20gXCIuL0luaXRcIjtcbmltcG9ydCB7IGdldEZha2VPcHRpb25zT25jZSB9IGZyb20gXCIuL1Rlc3RpbmcvZmFrZU9wdGlvbnNcIjtcbmltcG9ydCB7IEluaXRGdW5jdGlvbiwgTWVzc2FnZUJhc2UsIE51bGxhYmxlLCBVcGRhdGVGdW5jdGlvbiwgVXBkYXRlTWFwLCBVcGRhdGVSZXR1cm5UeXBlIH0gZnJvbSBcIi4vVHlwZXNcIjtcblxuLyoqXG4gKiBUaGUgcmV0dXJuIHR5cGUgb2YgdGhlIGBzdWJzY3JpcHRpb25gIGZ1bmN0aW9uLlxuICogQHRlbXBsYXRlIFRNZXNzYWdlIFRoZSB0eXBlIG9mIHRoZSBtZXNzYWdlcyBkaXNjcmltaW5hdGVkIHVuaW9uLlxuICovXG50eXBlIFN1YnNjcmlwdGlvblJlc3VsdDxUTWVzc2FnZT4gPSBbQ21kPFRNZXNzYWdlPiwgKCgpID0+IHZvaWQpP107XG50eXBlIFN1YnNjcmlwdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+ID0gKG1vZGVsOiBUTW9kZWwsIHByb3BzOiBUUHJvcHMpID0+IFN1YnNjcmlwdGlvblJlc3VsdDxUTWVzc2FnZT47XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgdGhlIGB1c2VFbG1pc2hgIGhvb2suXG4gKiBAaW50ZXJmYWNlIFVzZUVsbWlzaE9wdGlvbnNcbiAqIEB0ZW1wbGF0ZSBUUHJvcHMgVGhlIHR5cGUgb2YgdGhlIHByb3BzLlxuICogQHRlbXBsYXRlIFRNb2RlbCBUaGUgdHlwZSBvZiB0aGUgbW9kZWwuXG4gKiBAdGVtcGxhdGUgVE1lc3NhZ2UgVGhlIHR5cGUgb2YgdGhlIG1lc3NhZ2VzIGRpc2NyaW1pbmF0ZWQgdW5pb24uXG4gKi9cbmludGVyZmFjZSBVc2VFbG1pc2hPcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2VCYXNlPiB7XG4gICAgLyoqXG4gICAgICogVGhlIG5hbWUgb2YgdGhlIGNvbXBvbmVudC4gVGhpcyBpcyB1c2VkIGZvciBsb2dnaW5nIG9ubHkuXG4gICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgKi9cbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogVGhlIHByb3BzIHBhc3NlZCB0byB0aGUgY29tcG9uZW50LlxuICAgICAqIEB0eXBlIHtUUHJvcHN9XG4gICAgICovXG4gICAgcHJvcHM6IFRQcm9wcyxcbiAgICAvKipcbiAgICAgKiBUaGUgZnVuY3Rpb24gdG8gaW5pdGlhbGl6ZSB0aGUgY29tcG9uZW50cyBtb2RlbC4gVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGNhbGxlZCBvbmNlLlxuICAgICAqIEB0eXBlIHtJbml0RnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPn1cbiAgICAgKi9cbiAgICBpbml0OiBJbml0RnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPixcbiAgICAvKipcbiAgICAgKiBUaGUgYHVwZGF0ZWAgZnVuY3Rpb24gb3IgdXBkYXRlIG1hcCBvYmplY3QuXG4gICAgICogQHR5cGUgeyhVcGRhdGVGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+IHwgVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4pfVxuICAgICAqL1xuICAgIHVwZGF0ZTogVXBkYXRlRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiB8IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuICAgIC8qKlxuICAgICAqIFRoZSBvcHRpb25hbCBgc3Vic2NyaXB0aW9uYCBmdW5jdGlvbi4gVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGNhbGxlZCBvbmNlLlxuICAgICAqIEB0eXBlIHsoVXBkYXRlRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiB8IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+KX1cbiAgICAgKi9cbiAgICBzdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPixcbn1cblxuLyoqXG4gKiBIb29rIHRvIHVzZSB0aGUgRWxtIGFyY2hpdGVjdHVyZSBwYXR0ZXJuIGluIGEgZnVuY3Rpb24gY29tcG9uZW50LlxuICogQHBhcmFtIHtVc2VFbG1pc2hPcHRpb25zfSBvcHRpb25zIFRoZSBvcHRpb25zIHBhc3NlZCB0aGUgdGhlIGhvb2suXG4gKiBAcmV0dXJucyBBIHR1cGxlIGNvbnRhaW5pbmcgdGhlIGN1cnJlbnQgbW9kZWwgYW5kIHRoZSBkaXNwYXRjaGVyLlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IFttb2RlbCwgZGlzcGF0Y2hdID0gdXNlRWxtaXNoKHsgcHJvcHMsIGluaXQsIHVwZGF0ZSwgbmFtZTogXCJNeUNvbXBvbmVudFwiIH0pO1xuICovXG5mdW5jdGlvbiB1c2VFbG1pc2g8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZUJhc2U+ICh7IG5hbWUsIHByb3BzLCBpbml0LCB1cGRhdGUsIHN1YnNjcmlwdGlvbiB9OiBVc2VFbG1pc2hPcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4pOiBbVE1vZGVsLCBEaXNwYXRjaDxUTWVzc2FnZT5dIHtcbiAgICBsZXQgcmVlbnRlcmVkID0gZmFsc2U7XG4gICAgY29uc3QgYnVmZmVyOiBUTWVzc2FnZSBbXSA9IFtdO1xuICAgIGxldCBjdXJyZW50TW9kZWw6IFBhcnRpYWw8VE1vZGVsPiA9IHt9O1xuXG4gICAgY29uc3QgW21vZGVsLCBzZXRNb2RlbF0gPSB1c2VTdGF0ZTxOdWxsYWJsZTxUTW9kZWw+PihudWxsKTtcbiAgICBsZXQgaW5pdGlhbGl6ZWRNb2RlbCA9IG1vZGVsO1xuXG4gICAgY29uc3QgcHJvcHNSZWYgPSB1c2VSZWYocHJvcHMpO1xuXG4gICAgaWYgKHByb3BzUmVmLmN1cnJlbnQgIT09IHByb3BzKSB7XG4gICAgICAgIHByb3BzUmVmLmN1cnJlbnQgPSBwcm9wcztcbiAgICB9XG5cbiAgICBjb25zdCBleGVjQ21kID0gdXNlQ2FsbGJhY2soKGNtZDogQ21kPFRNZXNzYWdlPik6IHZvaWQgPT4ge1xuICAgICAgICBjbWQuZm9yRWFjaChjYWxsID0+IHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY2FsbChkaXNwYXRjaCk7XG4gICAgICAgICAgICB9IGNhdGNoIChleDogdW5rbm93bikge1xuICAgICAgICAgICAgICAgIFNlcnZpY2VzLmxvZ2dlcj8uZXJyb3IoZXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBmYWtlT3B0aW9ucyA9IGdldEZha2VPcHRpb25zT25jZSgpO1xuICAgIGNvbnN0IGRpc3BhdGNoID0gdXNlQ2FsbGJhY2soZmFrZU9wdGlvbnM/LmRpc3BhdGNoID8/ICgobXNnOiBUTWVzc2FnZSk6IHZvaWQgPT4ge1xuICAgICAgICBpZiAoIWluaXRpYWxpemVkTW9kZWwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG1vZGVsSGFzQ2hhbmdlZCA9ICh1cGRhdGVkTW9kZWw6IFBhcnRpYWw8VE1vZGVsPik6IGJvb2xlYW4gPT4gdXBkYXRlZE1vZGVsICE9PSBpbml0aWFsaXplZE1vZGVsICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHVwZGF0ZWRNb2RlbCkubGVuZ3RoID4gMDtcblxuICAgICAgICBpZiAocmVlbnRlcmVkKSB7XG4gICAgICAgICAgICBidWZmZXIucHVzaChtc2cpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVlbnRlcmVkID0gdHJ1ZTtcblxuICAgICAgICAgICAgbGV0IG5leHRNc2c6IFRNZXNzYWdlIHwgdW5kZWZpbmVkID0gbXNnO1xuICAgICAgICAgICAgbGV0IG1vZGlmaWVkID0gZmFsc2U7XG5cbiAgICAgICAgICAgIHdoaWxlIChuZXh0TXNnKSB7XG4gICAgICAgICAgICAgICAgU2VydmljZXMubG9nZ2VyPy5pbmZvKFwiRWxtXCIsIFwibWVzc2FnZSBmcm9tXCIsIG5hbWUsIG5leHRNc2cubmFtZSk7XG4gICAgICAgICAgICAgICAgU2VydmljZXMubG9nZ2VyPy5kZWJ1ZyhcIkVsbVwiLCBcIm1lc3NhZ2UgZnJvbVwiLCBuYW1lLCBuZXh0TXNnKTtcblxuICAgICAgICAgICAgICAgIGlmIChTZXJ2aWNlcy5kaXNwYXRjaE1pZGRsZXdhcmUpIHtcbiAgICAgICAgICAgICAgICAgICAgU2VydmljZXMuZGlzcGF0Y2hNaWRkbGV3YXJlKG5leHRNc2cpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IFtuZXdNb2RlbCwgY21kXSA9IGNhbGxVcGRhdGUodXBkYXRlLCBuZXh0TXNnLCB7IC4uLmluaXRpYWxpemVkTW9kZWwsIC4uLmN1cnJlbnRNb2RlbCB9LCBwcm9wc1JlZi5jdXJyZW50KTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAobW9kZWxIYXNDaGFuZ2VkKG5ld01vZGVsKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudE1vZGVsID0geyAuLi5jdXJyZW50TW9kZWwsIC4uLm5ld01vZGVsIH07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChjbWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4ZWNDbWQoY21kKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGV4OiB1bmtub3duKSB7XG4gICAgICAgICAgICAgICAgICAgIFNlcnZpY2VzLmxvZ2dlcj8uZXJyb3IoZXgpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIG5leHRNc2cgPSBidWZmZXIuc2hpZnQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlZW50ZXJlZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICBpZiAobW9kaWZpZWQpIHtcbiAgICAgICAgICAgICAgICBzZXRNb2RlbChwcmV2TW9kZWwgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVkTW9kZWwgPSB7IC4uLnByZXZNb2RlbCBhcyBUTW9kZWwsIC4uLmN1cnJlbnRNb2RlbCB9O1xuXG4gICAgICAgICAgICAgICAgICAgIFNlcnZpY2VzLmxvZ2dlcj8uZGVidWcoXCJFbG1cIiwgXCJ1cGRhdGUgbW9kZWwgZm9yXCIsIG5hbWUsIHVwZGF0ZWRNb2RlbCk7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVwZGF0ZWRNb2RlbDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pLCBbXSk7XG5cbiAgICBpZiAoIWluaXRpYWxpemVkTW9kZWwpIHtcbiAgICAgICAgY29uc3QgW2luaXRNb2RlbCwgaW5pdENtZF0gPSBmYWtlT3B0aW9ucz8ubW9kZWwgPyBbZmFrZU9wdGlvbnMubW9kZWwgYXMgVE1vZGVsXSA6IGluaXQocHJvcHMpO1xuXG4gICAgICAgIGluaXRpYWxpemVkTW9kZWwgPSBpbml0TW9kZWw7XG4gICAgICAgIHNldE1vZGVsKGluaXRpYWxpemVkTW9kZWwpO1xuXG4gICAgICAgIGlmIChpbml0Q21kKSB7XG4gICAgICAgICAgICBleGVjQ21kKGluaXRDbWQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKHN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgY29uc3QgW3N1YkNtZCwgZGVzdHJ1Y3Rvcl0gPSBzdWJzY3JpcHRpb24oaW5pdGlhbGl6ZWRNb2RlbCBhcyBUTW9kZWwsIHByb3BzKTtcblxuICAgICAgICAgICAgZXhlY0NtZChzdWJDbWQpO1xuXG4gICAgICAgICAgICBpZiAoZGVzdHJ1Y3Rvcikge1xuICAgICAgICAgICAgICAgIHJldHVybiBkZXN0cnVjdG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSwgW10pO1xuXG4gICAgcmV0dXJuIFtpbml0aWFsaXplZE1vZGVsLCBkaXNwYXRjaF07XG59XG5cbmZ1bmN0aW9uIGNhbGxVcGRhdGU8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZUJhc2U+ICh1cGRhdGU6IFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiwgbXNnOiBUTWVzc2FnZSwgbW9kZWw6IFRNb2RlbCwgcHJvcHM6IFRQcm9wcyk6IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTWVzc2FnZT4ge1xuICAgIGlmICh0eXBlb2YgdXBkYXRlID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZShtb2RlbCwgbXNnLCBwcm9wcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNhbGxVcGRhdGVNYXAodXBkYXRlLCBtc2csIG1vZGVsLCBwcm9wcyk7XG59XG5cbmZ1bmN0aW9uIGNhbGxVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZUJhc2U+ICh1cGRhdGVNYXA6IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LCBtc2c6IFRNZXNzYWdlLCBtb2RlbDogVE1vZGVsLCBwcm9wczogVFByb3BzKTogVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgLS0gV2Uga25vdyB0aGF0IG1zZyBmaXRzXG4gICAgY29uc3QgdXBkYXRlRm4gPSB1cGRhdGVNYXBbbXNnLm5hbWUgYXMgVE1lc3NhZ2VbXCJuYW1lXCJdXSBhcyAobXNnOiBUTWVzc2FnZSwgbW9kZWw6IFRNb2RlbCwgcHJvcHM6IFRQcm9wcykgPT4gVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNc2c+O1xuXG4gICAgcmV0dXJuIHVwZGF0ZUZuKG1zZywgbW9kZWwsIHByb3BzKTtcbn1cblxuZXhwb3J0IHR5cGUge1xuICAgIFN1YnNjcmlwdGlvblJlc3VsdCxcbn07XG5cbmV4cG9ydCB7XG4gICAgdXNlRWxtaXNoLFxuICAgIGNhbGxVcGRhdGUsXG4gICAgY2FsbFVwZGF0ZU1hcCxcbn07Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFDQTs7QUFFQTs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE2Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxTQUFULE9BQXlMO0VBQUE7O0VBQUEsSUFBckhDLElBQXFILFFBQXJIQSxJQUFxSDtFQUFBLElBQS9HQyxLQUErRyxRQUEvR0EsS0FBK0c7RUFBQSxJQUF4R0MsSUFBd0csUUFBeEdBLElBQXdHO0VBQUEsSUFBbEdDLE1BQWtHLFFBQWxHQSxNQUFrRztFQUFBLElBQTFGQyxZQUEwRixRQUExRkEsWUFBMEY7RUFDckwsSUFBSUMsU0FBUyxHQUFHLEtBQWhCO0VBQ0EsSUFBTUMsTUFBbUIsR0FBRyxFQUE1QjtFQUNBLElBQUlDLFlBQTZCLEdBQUcsRUFBcEM7O0VBRUEsZ0JBQTBCLElBQUFDLGVBQUEsRUFBMkIsSUFBM0IsQ0FBMUI7RUFBQTtFQUFBLElBQU9DLEtBQVA7RUFBQSxJQUFjQyxRQUFkOztFQUNBLElBQUlDLGdCQUFnQixHQUFHRixLQUF2QjtFQUVBLElBQU1HLFFBQVEsR0FBRyxJQUFBQyxhQUFBLEVBQU9aLEtBQVAsQ0FBakI7O0VBRUEsSUFBSVcsUUFBUSxDQUFDRSxPQUFULEtBQXFCYixLQUF6QixFQUFnQztJQUM1QlcsUUFBUSxDQUFDRSxPQUFULEdBQW1CYixLQUFuQjtFQUNIOztFQUVELElBQU1jLE9BQU8sR0FBRyxJQUFBQyxrQkFBQSxFQUFZLFVBQUNDLEdBQUQsRUFBOEI7SUFDdERBLEdBQUcsQ0FBQ0MsT0FBSixDQUFZLFVBQUFDLElBQUksRUFBSTtNQUNoQixJQUFJO1FBQ0FBLElBQUksQ0FBQ0MsUUFBRCxDQUFKO01BQ0gsQ0FGRCxDQUVFLE9BQU9DLEVBQVAsRUFBb0I7UUFBQTs7UUFDbEIsb0JB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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-elmish",
3
- "version": "4.2.0",
3
+ "version": "4.2.1",
4
4
  "description": "Elmish for React using Typescript",
5
5
  "author": "atheck",
6
6
  "license": "MIT",
@@ -10,7 +10,7 @@
10
10
  "build:js": "babel src --out-dir dist --extensions \".ts,.tsx\" --source-maps inline",
11
11
  "test": "jest --coverage",
12
12
  "test:watch": "jest --watch --coverage",
13
- "lint": "npx eslint --ext .ts,.tsx ./src",
13
+ "lint": "npx eslint \"{src,tests}/**/*.ts[x]\"",
14
14
  "update": "npx npm-check-updates -i",
15
15
  "semantic-release": "semantic-release"
16
16
  },
@@ -25,14 +25,14 @@
25
25
  "@babel/preset-react": "7.18.6",
26
26
  "@babel/preset-typescript": "7.18.6",
27
27
  "@testing-library/react": "13.3.0",
28
- "@types/jest": "28.1.6",
29
- "@types/react": "18.0.16",
30
- "eslint": "8.21.0",
31
- "eslint-config-heck": "1.20.0",
28
+ "@types/jest": "28.1.7",
29
+ "@types/react": "18.0.17",
30
+ "eslint": "8.22.0",
31
+ "eslint-config-heck": "1.22.1",
32
32
  "jest": "28.1.3",
33
33
  "jest-environment-jsdom": "28.1.3",
34
34
  "semantic-release": "19.0.3",
35
- "ts-jest": "28.0.7",
35
+ "ts-jest": "28.0.8",
36
36
  "typescript": "4.7.4"
37
37
  },
38
38
  "homepage": "https://github.com/atheck/react-elmish",