react-elmish 4.2.1 → 5.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -468,7 +468,7 @@ function subscription (model: Model): SubscriptionResult<Message> {
468
468
  }
469
469
 
470
470
  const destructor = () => {
471
- clearInterval(timer1);
471
+ clearInterval(timer);
472
472
  }
473
473
 
474
474
  return [cmd.ofSub(sub), destructor];
@@ -551,7 +551,7 @@ You can handle errors easily with the following pattern.
551
551
  };
552
552
  ```
553
553
 
554
- Your can also use the `errorHandler` helper function:
554
+ You can also use the `errorHandler` helper function:
555
555
 
556
556
  ```ts
557
557
  const updateMap = {
@@ -857,9 +857,7 @@ To inform the parent component about some action, let's say to close a dialog fo
857
857
  ```ts Dialog.ts
858
858
  ...
859
859
  case "close":
860
- props.onClose();
861
-
862
- return [{}];
860
+ return [{}, cmd.ofFunc.attempt(props.onClose, Msg.error)];
863
861
  ...
864
862
  ```
865
863
 
package/dist/Cmd.d.ts CHANGED
@@ -27,7 +27,7 @@ interface Command<TMessage> {
27
27
  * Aggregates multiple commands.
28
28
  * @param {Cmd<TMessage> []} commands Array of commands.
29
29
  */
30
- batch: (...commands: Cmd<TMessage>[]) => Cmd<TMessage>;
30
+ batch: (...commands: (Cmd<TMessage> | undefined | null)[]) => Cmd<TMessage>;
31
31
  /**
32
32
  * Command to call the subscriber.
33
33
  * @param {Sub<TMessage>} sub The subscriber function.
package/dist/Cmd.js CHANGED
@@ -35,7 +35,7 @@ function createCmd() {
35
35
  commands[_key] = arguments[_key];
36
36
  }
37
37
 
38
- return commands.flat();
38
+ return commands.filter(Boolean).flat();
39
39
  },
40
40
  ofSub: function ofSub(sub) {
41
41
  return [sub];
@@ -150,4 +150,4 @@ function createCmd() {
150
150
  }
151
151
  };
152
152
  }
153
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,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+LCBmYWxsYmFjaz86IEZhbGxiYWNrSGFuZGxlcik6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0YXNrKC4uLmFyZ3MpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsbGJhY2soKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5jYXRjaCgoZXg6IEVycm9yKSA9PiBkaXNwYXRjaChvZkVycm9yKGV4KSkpO1xuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gW2JpbmRdO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICB9O1xufVxuXG5leHBvcnQgdHlwZSB7XG4gICAgRGlzcGF0Y2gsXG4gICAgQ21kLFxufTtcblxuZXhwb3J0IHtcbiAgICBjcmVhdGVDbWQsXG59OyJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBO0FBQ0E7QUFDQTs7QUFNQTtBQUNBO0FBQ0E7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7O0FBOEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsU0FBVCxHQUFtRDtFQUMvQyxPQUFPO0lBQ0hDLElBQUksRUFBRSxFQURIO0lBRUhDLEtBRkcsaUJBRUlDLEdBRkosRUFFa0M7TUFDakMsT0FBTyxDQUFDLFVBQUFDLFFBQVE7UUFBQSxPQUFJQSxRQUFRLENBQUNELEdBQUQsQ0FBWjtNQUFBLENBQVQsQ0FBUDtJQUNILENBSkU7SUFLSEUsS0FMRyxtQkFLa0Q7TUFBQSxrQ0FBM0NDLFFBQTJDO1FBQTNDQSxRQUEyQztNQUFBOztNQUNqRCxPQUFPQSxRQUFRLENBQUNDLElBQVQsRUFBUDtJQUNILENBUEU7SUFRSEMsS0FSRyxpQkFRSUMsR0FSSixFQVF1QztNQUN0QyxPQUFPLENBQUNBLEdBQUQsQ0FBUDtJQUNILENBVkU7SUFXSEMsTUFBTSxFQUFFO01BQ0pDLE1BREksa0JBQ3NDQyxJQUR0QyxFQUN5RUMsU0FEekUsRUFDbUhDLE9BRG5ILEVBQ3VMO1FBQUEsbUNBQTVCQyxJQUE0QjtVQUE1QkEsSUFBNEI7UUFBQTs7UUFDdkwsSUFBTUMsSUFBSSxHQUFHLFNBQVBBLElBQU8sQ0FBQ1osUUFBRCxFQUF3QztVQUNqRCxJQUFJO1lBQ0EsSUFBTWEsT0FBTSxHQUFHTCxJQUFJLE1BQUosU0FBUUcsSUFBUixDQUFmOztZQUVBWCxRQUFRLENBQUNTLFNBQVMsQ0FBQ0ksT0FBRCxDQUFWLENBQVI7VUFDSCxDQUpELENBSUUsT0FBT0MsRUFBUCxFQUFvQjtZQUNsQmQsUUFBUSxDQUFDVSxPQUFPLENBQUNJLEVBQUQsQ0FBUixDQUFSO1VBQ0g7UUFDSixDQVJEOztRQVVBLE9BQU8sQ0FBQ0YsSUFBRCxDQUFQO01BQ0gsQ0FiRztNQWNKRyxPQWRJLG1CQWN1Q1AsSUFkdkMsRUFjMEVDLFNBZDFFLEVBY21KO1FBQUEsbUNBQTVCRSxJQUE0QjtVQUE1QkEsSUFBNEI7UUFBQTs7UUFDbkosSUFBTUMsSUFBSSxHQUFHLFNBQVBBLElBQU8sQ0FBQ1osUUFBRCxFQUErQmdCLFFBQS9CLEVBQW9FO1VBQzdFLElBQUk7WUFDQSxJQUFNSCxRQUFNLEdBQUdMLElBQUksTUFBSixTQUFRRyxJQUFSLENBQWY7O1lBRUFYLFFBQVEsQ0FBQ1MsU0FBUyxDQUFDSSxRQUFELENBQVYsQ0FBUjtVQUNILENBSkQsQ0FJRSxPQUFPQyxFQUFQLEVBQW9CO1lBQ2xCLElBQUlFLFFBQUosRUFBYztjQUNWQSxRQUFRLENBQUNGLEVBQUQsQ0FBUjtZQUNIO1VBQ0o7UUFDSixDQVZEOztRQVlBLE9BQU8sQ0FBQ0YsSUFBRCxDQUFQO01BQ0gsQ0E1Qkc7TUE2QkpLLE9BN0JJLG1CQTZCdUNULElBN0J2QyxFQTZCMEVFLE9BN0IxRSxFQTZCOEk7UUFBQSxtQ0FBNUJDLElBQTRCO1VBQTVCQSxJQUE0QjtRQUFBOztRQUM5SSxJQUFNQyxJQUFJLEdBQUcsU0FBUEEsSUFBTyxDQUFDWixRQUFELEVBQStCZ0IsUUFBL0IsRUFBb0U7VUFDN0UsSUFBSTtZQUNBUixJQUFJLE1BQUosU0FBUUcsSUFBUjs7WUFFQSxJQUFJSyxRQUFKLEVBQWM7Y0FDVkEsUUFBUTtZQUNYO1VBQ0osQ0FORCxDQU1FLE9BQU9GLEVBQVAsRUFBb0I7WUFDbEJkLFFBQVEsQ0FBQ1UsT0FBTyxDQUFDSSxFQUFELENBQVIsQ0FBUjtVQUNIO1FBQ0osQ0FWRDs7UUFZQSxPQUFPLENBQUNGLElBQUQsQ0FBUDtNQUNIO0lBM0NHLENBWEw7SUF3REhNLFNBQVMsRUFBRTtNQUNQWCxNQURPLGtCQUNtQ0MsSUFEbkMsRUFDK0VDLFNBRC9FLEVBQ3lIQyxPQUR6SCxFQUM2TDtRQUFBLG1DQUE1QkMsSUFBNEI7VUFBNUJBLElBQTRCO1FBQUE7O1FBQ2hNLElBQU1DLElBQUksR0FBRyxTQUFQQSxJQUFPLENBQUNaLFFBQUQsRUFBd0M7VUFDakRRLElBQUksTUFBSixTQUFRRyxJQUFSLEVBQWNRLElBQWQsQ0FBbUIsVUFBQU4sTUFBTTtZQUFBLE9BQUliLFFBQVEsQ0FBQ1MsU0FBUyxDQUFDSSxNQUFELENBQVYsQ0FBWjtVQUFBLENBQXpCLFdBQ1csVUFBQ0MsRUFBRDtZQUFBLE9BQWVkLFFBQVEsQ0FBQ1UsT0FBTyxDQUFDSSxFQUFELENBQVIsQ0FBdkI7VUFBQSxDQURYO1FBRUgsQ0FIRDs7UUFLQSxPQUFPLENBQUNGLElBQUQsQ0FBUDtNQUNILENBUk07TUFTUEcsT0FUTyxtQkFTb0NQLElBVHBDLEVBU2dGQyxTQVRoRixFQVN5SjtRQUFBLG1DQUE1QkUsSUFBNEI7VUFBNUJBLElBQTRCO1FBQUE7O1FBQzVKLElBQU1TLHNCQUFzQixHQUFHLFNBQXpCQSxzQkFBeUIsR0FBWSxDQUN2QztRQUNILENBRkQ7O1FBSUEsSUFBTVIsSUFBSSxHQUFHLFNBQVBBLElBQU8sQ0FBQ1osUUFBRCxFQUE0RjtVQUFBLElBQTdEZ0IsUUFBNkQsdUVBQWpDSSxzQkFBaUM7VUFDckdaLElBQUksTUFBSixTQUFRRyxJQUFSLEVBQWNRLElBQWQsQ0FBbUIsVUFBQU4sTUFBTTtZQUFBLE9BQUliLFFBQVEsQ0FBQ1MsU0FBUyxDQUFDSSxNQUFELENBQVYsQ0FBWjtVQUFBLENBQXpCLFdBQ1dHLFFBRFg7UUFFSCxDQUhEOztRQUtBLE9BQU8sQ0FBQ0osSUFBRCxDQUFQO01BQ0gsQ0FwQk07TUFxQlBLLE9BckJPLG1CQXFCb0NULElBckJwQyxFQXFCZ0ZFLE9BckJoRixFQXFCb0o7UUFBQSxtQ0FBNUJDLElBQTRCO1VBQTVCQSxJQUE0QjtRQUFBOztRQUN2SixJQUFNQyxJQUFJLEdBQUcsU0FBUEEsSUFBTyxDQUFDWixRQUFELEVBQStCZ0IsUUFBL0IsRUFBb0U7VUFDN0VSLElBQUksTUFBSixTQUFRRyxJQUFSLEVBQWNRLElBQWQsQ0FBbUIsWUFBTTtZQUNyQixJQUFJSCxRQUFKLEVBQWM7Y0FDVkEsUUFBUTtZQUNYO1VBQ0osQ0FKRCxXQUtXLFVBQUNGLEVBQUQ7WUFBQSxPQUFlZCxRQUFRLENBQUNVLE9BQU8sQ0FBQ0ksRUFBRCxDQUFSLENBQXZCO1VBQUEsQ0FMWDtRQU1ILENBUEQ7O1FBU0EsT0FBTyxDQUFDRixJQUFELENBQVA7TUFDSDtJQWhDTTtFQXhEUixDQUFQO0FBMkZIIn0=
153
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjcmVhdGVDbWQiLCJub25lIiwib2ZNc2ciLCJtc2ciLCJkaXNwYXRjaCIsImJhdGNoIiwiY29tbWFuZHMiLCJmaWx0ZXIiLCJCb29sZWFuIiwiZmxhdCIsIm9mU3ViIiwic3ViIiwib2ZGdW5jIiwiZWl0aGVyIiwidGFzayIsIm9mU3VjY2VzcyIsIm9mRXJyb3IiLCJhcmdzIiwiYmluZCIsInJlc3VsdCIsImV4IiwicGVyZm9ybSIsImZhbGxiYWNrIiwiYXR0ZW1wdCIsIm9mUHJvbWlzZSIsInRoZW4iLCJkZWZhdWx0RmFsbGJhY2tIYW5kbGVyIl0sInNvdXJjZXMiOlsiLi4vc3JjL0NtZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFR5cGUgb2YgdGhlIGRpc3BhdGNoIGZ1bmN0aW9uLlxuICovXG50eXBlIERpc3BhdGNoPFRNZXNzYWdlPiA9IChtc2c6IFRNZXNzYWdlKSA9PiB2b2lkO1xuXG50eXBlIEZhbGxiYWNrSGFuZGxlciA9IChlcnJvcj86IEVycm9yKSA9PiB2b2lkO1xudHlwZSBTdWI8VE1zZz4gPSAoZGlzcGF0Y2g6IERpc3BhdGNoPFRNc2c+LCBmYWxsYmFjaz86IEZhbGxiYWNrSGFuZGxlcikgPT4gdm9pZDtcblxuLyoqXG4gKiBUeXBlIG9mIGEgY29tbWFuZC5cbiAqL1xudHlwZSBDbWQ8VE1lc3NhZ2U+ID0gU3ViPFRNZXNzYWdlPiBbXTtcblxuLyoqXG4gKiBDb250YWlucyBmdW5jdGlvbnMgdG8gY3JlYXRlIGNvbW1hbmRzLlxuICogQHRlbXBsYXRlIFRNZXNzYWdlIFR5cGUgb2YgdGhlIE1lc3NhZ2UgZGlzY3JpbWluYXRlZCB1bmlvbi5cbiAqL1xuaW50ZXJmYWNlIENvbW1hbmQ8VE1lc3NhZ2U+IHtcbiAgICAvKipcbiAgICAgKiBSZXByZXNlbnRzIGFuIGVtcHR5IGNvbW1hbmQuXG4gICAgICogQGRlcHJlY2F0ZWQgRG8gcmV0dXJuIG5vdGhpbmcgKGB1bmRlZmluZWRgKSBpbnN0ZWFkLlxuICAgICAqL1xuICAgIG5vbmU6IFtdLFxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBjb21tYW5kIG91dCBvZiBhIHNwZWNpZmljIG1lc3NhZ2UuXG4gICAgICogQHBhcmFtIHtUTWVzc2FnZX0gbXNnIFRoZSBzcGVjaWZpYyBtZXNzYWdlLlxuICAgICAqL1xuICAgIG9mTXNnOiAobXNnOiBUTWVzc2FnZSkgPT4gQ21kPFRNZXNzYWdlPixcbiAgICAvKipcbiAgICAgKiBBZ2dyZWdhdGVzIG11bHRpcGxlIGNvbW1hbmRzLlxuICAgICAqIEBwYXJhbSB7Q21kPFRNZXNzYWdlPiBbXX0gY29tbWFuZHMgQXJyYXkgb2YgY29tbWFuZHMuXG4gICAgICovXG4gICAgYmF0Y2g6ICguLi5jb21tYW5kczogKENtZDxUTWVzc2FnZT4gfCB1bmRlZmluZWQgfCBudWxsKSBbXSkgPT4gQ21kPFRNZXNzYWdlPixcbiAgICAvKipcbiAgICAgKiBDb21tYW5kIHRvIGNhbGwgdGhlIHN1YnNjcmliZXIuXG4gICAgICogQHBhcmFtIHtTdWI8VE1lc3NhZ2U+fSBzdWIgVGhlIHN1YnNjcmliZXIgZnVuY3Rpb24uXG4gICAgICovXG4gICAgb2ZTdWI6IChzdWI6IFN1YjxUTWVzc2FnZT4pID0+IENtZDxUTWVzc2FnZT4sXG4gICAgLyoqXG4gICAgICogUHJvdmlkZXMgZnVuY3Rpb25hbGl0aWVzIHRvIGNyZWF0ZSBjb21tYW5kcyBmcm9tIHNpbXBsZSBmdW5jdGlvbnMuXG4gICAgICovXG4gICAgb2ZGdW5jOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAqIENyZWF0ZXMgYSBjb21tYW5kIG91dCBvZiBhIHNpbXBsZSBmdW5jdGlvbiBhbmQgbWFwcyB0aGUgcmVzdWx0LlxuICAgICAgICAqIEBwYXJhbSB0YXNrIFRoZSBmdW5jdGlvbiB0byBjYWxsLlxuICAgICAgICAqIEBwYXJhbSBvZlN1Y2Nlc3MgQ3JlYXRlcyB0aGUgbWVzc2FnZSB0byBkaXNwYXRjaCBhZnRlciBhIHN1Y2Nlc3NmdWwgY2FsbCBvZiB0aGUgdGFzay5cbiAgICAgICAgKiBAcGFyYW0gb2ZFcnJvciBDcmVhdGVzIHRoZSBtZXNzYWdlIHRvIGRpc3BhdGNoIHdoZW4gYW4gZXJyb3Igb2NjdXJyZWQuXG4gICAgICAgICogQHBhcmFtIGFyZ3MgVGhlIHBhcmFtZXRlcnMgb2YgdGhlIHRhc2suXG4gICAgICAgICovXG4gICAgICAgIGVpdGhlcjogPFRBcmdzIGV4dGVuZHMgdW5rbm93biBbXSwgVFJldHVybj4odGFzazogKC4uLmFyZ3M6IFRBcmdzKSA9PiBUUmV0dXJuLCBvZlN1Y2Nlc3M6IChyZXN1bHQ6IFRSZXR1cm4pID0+IFRNZXNzYWdlLCBvZkVycm9yOiAoZXJyb3I6IEVycm9yKSA9PiBUTWVzc2FnZSwgLi4uYXJnczogVEFyZ3MpID0+IENtZDxUTWVzc2FnZT4sXG4gICAgICAgIC8qKlxuICAgICAgICAqIENyZWF0ZXMgYSBjb21tYW5kIG91dCBvZiBhIHNpbXBsZSBmdW5jdGlvbiBhbmQgaWdub3JlcyB0aGUgZXJyb3IgY2FzZS5cbiAgICAgICAgKiBAcGFyYW0gdGFzayBUaGUgZnVuY3Rpb24gdG8gY2FsbC5cbiAgICAgICAgKiBAcGFyYW0gb2ZTdWNjZXNzIENyZWF0ZXMgdGhlIG1lc3NhZ2UgdG8gZGlzcGF0Y2ggYWZ0ZXIgYSBzdWNjZXNzZnVsIGNhbGwgb2YgdGhlIHRhc2suXG4gICAgICAgICogQHBhcmFtIGFyZ3MgVGhlIHBhcmFtZXRlcnMgb2YgdGhlIHRhc2suXG4gICAgICAgICovXG4gICAgICAgIHBlcmZvcm06IDxUQXJncyBleHRlbmRzIHVua25vd24gW10sIFRSZXR1cm4+KHRhc2s6ICguLi5hcmdzOiBUQXJncykgPT4gVFJldHVybiwgb2ZTdWNjZXNzOiAocmVzdWx0OiBUUmV0dXJuKSA9PiBUTWVzc2FnZSwgLi4uYXJnczogVEFyZ3MpID0+IENtZDxUTWVzc2FnZT4sXG4gICAgICAgIC8qKlxuICAgICAgICAqIENyZWF0ZXMgYSBjb21tYW5kIG91dCBvZiBhIHNpbXBsZSBmdW5jdGlvbiBhbmQgaWdub3JlcyB0aGUgc3VjY2VzcyBjYXNlLlxuICAgICAgICAqIEBwYXJhbSB0YXNrIFRoZSBmdW5jdGlvbiB0byBjYWxsLlxuICAgICAgICAqIEBwYXJhbSBvZkVycm9yIENyZWF0ZXMgdGhlIG1lc3NhZ2UgdG8gZGlzcGF0Y2ggd2hlbiBhbiBlcnJvciBvY2N1cnJlZC5cbiAgICAgICAgKiBAcGFyYW0gYXJncyBUaGUgcGFyYW1ldGVycyBvZiB0aGUgdGFzay5cbiAgICAgICAgKi9cbiAgICAgICAgYXR0ZW1wdDogPFRBcmdzIGV4dGVuZHMgdW5rbm93biBbXSwgVFJldHVybj4odGFzazogKC4uLmFyZ3M6IFRBcmdzKSA9PiBUUmV0dXJuLCBvZkVycm9yOiAoZXJyb3I6IEVycm9yKSA9PiBUTWVzc2FnZSwgLi4uYXJnczogVEFyZ3MpID0+IENtZDxUTWVzc2FnZT4sXG4gICAgfSxcbiAgICAvKipcbiAgICAgKiBQcm92aWRlcyBmdW5jdGlvbmFsaXRpZXMgdG8gY3JlYXRlIGNvbW1hbmRzIGZyb20gYXN5bmMgZnVuY3Rpb25zLlxuICAgICAqL1xuICAgIG9mUHJvbWlzZToge1xuICAgICAgICAvKipcbiAgICAgICAgKiBDcmVhdGVzIGEgY29tbWFuZCBvdXQgb2YgYW4gYXN5bmMgZnVuY3Rpb24gYW5kIG1hcHMgdGhlIHJlc3VsdC5cbiAgICAgICAgKiBAcGFyYW0gdGFzayBUaGUgYXN5bmMgZnVuY3Rpb24gdG8gY2FsbC5cbiAgICAgICAgKiBAcGFyYW0gb2ZTdWNjZXNzIENyZWF0ZXMgdGhlIG1lc3NhZ2UgdG8gZGlzcGF0Y2ggd2hlbiB0aGUgcHJvbWlzZSBpcyByZXNvbHZlZC5cbiAgICAgICAgKiBAcGFyYW0gb2ZFcnJvciBDcmVhdGVzIHRoZSBtZXNzYWdlIHRvIGRpc3BhdGNoIHdoZW4gdGhlIHByb21pc2UgaXMgcmVqZWN0ZWQuXG4gICAgICAgICogQHBhcmFtIGFyZ3MgVGhlIHBhcmFtZXRlcnMgb2YgdGhlIHRhc2suXG4gICAgICAgICovXG4gICAgICAgIGVpdGhlcjogPFRBcmdzIGV4dGVuZHMgdW5rbm93biBbXSwgVFJldHVybj4odGFzazogKC4uLmFyZ3M6IFRBcmdzKSA9PiBQcm9taXNlPFRSZXR1cm4+LCBvZlN1Y2Nlc3M6IChyZXN1bHQ6IFRSZXR1cm4pID0+IFRNZXNzYWdlLCBvZkVycm9yOiAoZXJyb3I6IEVycm9yKSA9PiBUTWVzc2FnZSwgLi4uYXJnczogVEFyZ3MpID0+IENtZDxUTWVzc2FnZT4sXG4gICAgICAgIC8qKlxuICAgICAgICAqIENyZWF0ZXMgYSBjb21tYW5kIG91dCBvZiBhbiBhc3luYyBmdW5jdGlvbiBhbmQgaWdub3JlcyB0aGUgZXJyb3IgY2FzZS5cbiAgICAgICAgKiBAcGFyYW0gdGFzayBUaGUgYXN5bmMgZnVuY3Rpb24gdG8gY2FsbC5cbiAgICAgICAgKiBAcGFyYW0gb2ZTdWNjZXNzIENyZWF0ZXMgdGhlIG1lc3NhZ2UgdG8gZGlzcGF0Y2ggd2hlbiB0aGUgcHJvbWlzZSBpcyByZXNvbHZlZC5cbiAgICAgICAgKiBAcGFyYW0gYXJncyBUaGUgcGFyYW1ldGVycyBvZiB0aGUgdGFzay5cbiAgICAgICAgKi9cbiAgICAgICAgcGVyZm9ybTogPFRBcmdzIGV4dGVuZHMgdW5rbm93biBbXSwgVFJldHVybj4odGFzazogKC4uLmFyZ3M6IFRBcmdzKSA9PiBQcm9taXNlPFRSZXR1cm4+LCBvZlN1Y2Nlc3M6IChyZXN1bHQ6IFRSZXR1cm4pID0+IFRNZXNzYWdlLCAuLi5hcmdzOiBUQXJncykgPT4gQ21kPFRNZXNzYWdlPixcbiAgICAgICAgLyoqXG4gICAgICAgICogQ3JlYXRlcyBhIGNvbW1hbmQgb3V0IG9mIGFuIGFzeW5jIGZ1bmN0aW9uIGFuZCBpZ25vcmVzIHRoZSBzdWNjZXNzIGNhc2UuXG4gICAgICAgICogQHBhcmFtIHRhc2sgVGhlIGFzeW5jIGZ1bmN0aW9uIHRvIGNhbGwuXG4gICAgICAgICogQHBhcmFtIG9mRXJyb3IgQ3JlYXRlcyB0aGUgbWVzc2FnZSB0byBkaXNwYXRjaCB3aGVuIHRoZSBwcm9taXNlIGlzIHJlamVjdGVkLlxuICAgICAgICAqIEBwYXJhbSBhcmdzIFRoZSBwYXJhbWV0ZXJzIG9mIHRoZSB0YXNrLlxuICAgICAgICAqL1xuICAgICAgICBhdHRlbXB0OiA8VEFyZ3MgZXh0ZW5kcyB1bmtub3duIFtdLCBUUmV0dXJuPih0YXNrOiAoLi4uYXJnczogVEFyZ3MpID0+IFByb21pc2U8VFJldHVybj4sIG9mRXJyb3I6IChlcnJvcjogRXJyb3IpID0+IFRNZXNzYWdlLCAuLi5hcmdzOiBUQXJncykgPT4gQ21kPFRNZXNzYWdlPixcbiAgICB9LFxufVxuXG4vKipcbiAqIENyZWF0ZXMgYSB0eXBlZCBpbnN0YW5jZSBvZiB0aGUgQ29tbWFuZCBjbGFzcy5cbiAqIEB0ZW1wbGF0ZSBUTWVzc2FnZSBUaGUgdHlwZSBvZiB0aGUgTXNnIGRpc2NyaW1pbmF0ZWQgdW5pb24uXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUNtZDxUTWVzc2FnZT4gKCk6IENvbW1hbmQ8VE1lc3NhZ2U+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICBub25lOiBbXSxcbiAgICAgICAgb2ZNc2cgKG1zZzogVE1lc3NhZ2UpOiBDbWQ8VE1lc3NhZ2U+IHtcbiAgICAgICAgICAgIHJldHVybiBbZGlzcGF0Y2ggPT4gZGlzcGF0Y2gobXNnKV07XG4gICAgICAgIH0sXG4gICAgICAgIGJhdGNoICguLi5jb21tYW5kczogKENtZDxUTWVzc2FnZT4gfCB1bmRlZmluZWQgfCBudWxsKSBbXSk6IENtZDxUTWVzc2FnZT4ge1xuICAgICAgICAgICAgcmV0dXJuIChjb21tYW5kcy5maWx0ZXIoQm9vbGVhbikgYXMgQ21kPFRNZXNzYWdlPiBbXSkuZmxhdCgpO1xuICAgICAgICB9LFxuICAgICAgICBvZlN1YiAoc3ViOiBTdWI8VE1lc3NhZ2U+KTogQ21kPFRNZXNzYWdlPiB7XG4gICAgICAgICAgICByZXR1cm4gW3N1Yl07XG4gICAgICAgIH0sXG4gICAgICAgIG9mRnVuYzoge1xuICAgICAgICAgICAgZWl0aGVyPFRBcmdzIGV4dGVuZHMgdW5rbm93biBbXSwgVFJldHVybj4odGFzazogKC4uLmFyZ3M6IFRBcmdzKSA9PiBUUmV0dXJuLCBvZlN1Y2Nlc3M6IChyZXN1bHQ6IFRSZXR1cm4pID0+IFRNZXNzYWdlLCBvZkVycm9yOiAoZXJyb3I6IEVycm9yKSA9PiBUTWVzc2FnZSwgLi4uYXJnczogVEFyZ3MpOiBDbWQ8VE1lc3NhZ2U+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBiaW5kID0gKGRpc3BhdGNoOiBEaXNwYXRjaDxUTWVzc2FnZT4pOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRhc2soLi4uYXJncyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoKG9mU3VjY2VzcyhyZXN1bHQpKTtcbiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZXg6IHVua25vd24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoKG9mRXJyb3IoZXggYXMgRXJyb3IpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gW2JpbmRdO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHBlcmZvcm08VEFyZ3MgZXh0ZW5kcyB1bmtub3duIFtdLCBUUmV0dXJuPih0YXNrOiAoLi4uYXJnczogVEFyZ3MpID0+IFRSZXR1cm4sIG9mU3VjY2VzczogKHJlc3VsdDogVFJldHVybikgPT4gVE1lc3NhZ2UsIC4uLmFyZ3M6IFRBcmdzKTogQ21kPFRNZXNzYWdlPiB7XG4gICAgICAgICAgICAgICAgY29uc3QgYmluZCA9IChkaXNwYXRjaDogRGlzcGF0Y2g8VE1lc3NhZ2U+LCBmYWxsYmFjaz86IEZhbGxiYWNrSGFuZGxlcik6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gdGFzayguLi5hcmdzKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2gob2ZTdWNjZXNzKHJlc3VsdCkpO1xuICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChleDogdW5rbm93bikge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsbGJhY2soZXggYXMgRXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBbYmluZF07XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYXR0ZW1wdDxUQXJncyBleHRlbmRzIHVua25vd24gW10sIFRSZXR1cm4+KHRhc2s6ICguLi5hcmdzOiBUQXJncykgPT4gVFJldHVybiwgb2ZFcnJvcjogKGVycm9yOiBFcnJvcikgPT4gVE1lc3NhZ2UsIC4uLmFyZ3M6IFRBcmdzKTogQ21kPFRNZXNzYWdlPiB7XG4gICAgICAgICAgICAgICAgY29uc3QgYmluZCA9IChkaXNwYXRjaDogRGlzcGF0Y2g8VE1lc3NhZ2U+LCBmYWxsYmFjaz86IEZhbGxiYWNrSGFuZGxlcik6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGFzayguLi5hcmdzKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsbGJhY2soKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZXg6IHVua25vd24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoKG9mRXJyb3IoZXggYXMgRXJyb3IpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gW2JpbmRdO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgb2ZQcm9taXNlOiB7XG4gICAgICAgICAgICBlaXRoZXI8VEFyZ3MgZXh0ZW5kcyB1bmtub3duIFtdLCBUUmV0dXJuPih0YXNrOiAoLi4uYXJnczogVEFyZ3MpID0+IFByb21pc2U8VFJldHVybj4sIG9mU3VjY2VzczogKHJlc3VsdDogVFJldHVybikgPT4gVE1lc3NhZ2UsIG9mRXJyb3I6IChlcnJvcjogRXJyb3IpID0+IFRNZXNzYWdlLCAuLi5hcmdzOiBUQXJncyk6IENtZDxUTWVzc2FnZT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJpbmQgPSAoZGlzcGF0Y2g6IERpc3BhdGNoPFRNZXNzYWdlPik6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0YXNrKC4uLmFyZ3MpLnRoZW4ocmVzdWx0ID0+IGRpc3BhdGNoKG9mU3VjY2VzcyhyZXN1bHQpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5jYXRjaCgoZXg6IEVycm9yKSA9PiBkaXNwYXRjaChvZkVycm9yKGV4KSkpO1xuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gW2JpbmRdO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHBlcmZvcm08VEFyZ3MgZXh0ZW5kcyB1bmtub3duIFtdLCBUUmV0dXJuPih0YXNrOiAoLi4uYXJnczogVEFyZ3MpID0+IFByb21pc2U8VFJldHVybj4sIG9mU3VjY2VzczogKHJlc3VsdDogVFJldHVybikgPT4gVE1lc3NhZ2UsIC4uLmFyZ3M6IFRBcmdzKTogQ21kPFRNZXNzYWdlPiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGVmYXVsdEZhbGxiYWNrSGFuZGxlciA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gYmxhbmtcbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgY29uc3QgYmluZCA9IChkaXNwYXRjaDogRGlzcGF0Y2g8VE1lc3NhZ2U+LCBmYWxsYmFjazogRmFsbGJhY2tIYW5kbGVyID0gZGVmYXVsdEZhbGxiYWNrSGFuZGxlcik6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0YXNrKC4uLmFyZ3MpLnRoZW4ocmVzdWx0ID0+IGRpc3BhdGNoKG9mU3VjY2VzcyhyZXN1bHQpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5jYXRjaChmYWxsYmFjayk7XG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBbYmluZF07XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYXR0ZW1wdDxUQXJncyBleHRlbmRzIHVua25vd24gW10sIFRSZXR1cm4+KHRhc2s6ICguLi5hcmdzOiBUQXJncykgPT4gUHJvbWlzZTxUUmV0dXJuPiwgb2ZFcnJvcjogKGVycm9yOiBFcnJvcikgPT4gVE1lc3NhZ2UsIC4uLmFyZ3M6IFRBcmdzKTogQ21kPFRNZXNzYWdlPiB7XG4gICAgICAgICAgICAgICAgY29uc3QgYmluZCA9IChkaXNwYXRjaDogRGlzcGF0Y2g8VE1lc3NhZ2U+LCBmYWxsYmFjaz86IEZhbGxiYWNrSGFuZGxlcik6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0YXNrKC4uLmFyZ3MpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsbGJhY2soKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5jYXRjaCgoZXg6IEVycm9yKSA9PiBkaXNwYXRjaChvZkVycm9yKGV4KSkpO1xuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gW2JpbmRdO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICB9O1xufVxuXG5leHBvcnQgdHlwZSB7XG4gICAgRGlzcGF0Y2gs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
@@ -0,0 +1,6 @@
1
+ import { Cmd, Dispatch } from "./Cmd";
2
+ import { MessageBase } from "./Types";
3
+ declare function logMessage<TMessage extends MessageBase>(name: string, msg: TMessage): void;
4
+ declare function modelHasChanged<TModel>(currentModel: TModel, model: Partial<TModel>): boolean;
5
+ declare function execCmd<TMessage>(cmd: Cmd<TMessage>, dispatch: Dispatch<TMessage>): void;
6
+ export { logMessage, modelHasChanged, execCmd, };
package/dist/Common.js ADDED
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.execCmd = execCmd;
7
+ exports.logMessage = logMessage;
8
+ exports.modelHasChanged = modelHasChanged;
9
+
10
+ var _Init = require("./Init");
11
+
12
+ function logMessage(name, msg) {
13
+ var _Services$logger, _Services$logger2, _Services$dispatchMid;
14
+
15
+ (_Services$logger = _Init.Services.logger) === null || _Services$logger === void 0 ? void 0 : _Services$logger.info("Elm", "message from", name, msg.name);
16
+ (_Services$logger2 = _Init.Services.logger) === null || _Services$logger2 === void 0 ? void 0 : _Services$logger2.debug("Elm", "message from", name, msg);
17
+ (_Services$dispatchMid = _Init.Services.dispatchMiddleware) === null || _Services$dispatchMid === void 0 ? void 0 : _Services$dispatchMid.call(_Init.Services, msg);
18
+ }
19
+
20
+ function modelHasChanged(currentModel, model) {
21
+ return !Object.is(model, currentModel) && Object.getOwnPropertyNames(model).length > 0;
22
+ }
23
+
24
+ function execCmd(cmd, dispatch) {
25
+ cmd.forEach(function (call) {
26
+ return call(dispatch);
27
+ });
28
+ }
29
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJsb2dNZXNzYWdlIiwibmFtZSIsIm1zZyIsIlNlcnZpY2VzIiwibG9nZ2VyIiwiaW5mbyIsImRlYnVnIiwiZGlzcGF0Y2hNaWRkbGV3YXJlIiwibW9kZWxIYXNDaGFuZ2VkIiwiY3VycmVudE1vZGVsIiwibW9kZWwiLCJPYmplY3QiLCJpcyIsImdldE93blByb3BlcnR5TmFtZXMiLCJsZW5ndGgiLCJleGVjQ21kIiwiY21kIiwiZGlzcGF0Y2giLCJmb3JFYWNoIiwiY2FsbCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9Db21tb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ21kLCBEaXNwYXRjaCB9IGZyb20gXCIuL0NtZFwiO1xuaW1wb3J0IHsgU2VydmljZXMgfSBmcm9tIFwiLi9Jbml0XCI7XG5pbXBvcnQgeyBNZXNzYWdlQmFzZSB9IGZyb20gXCIuL1R5cGVzXCI7XG5cbmZ1bmN0aW9uIGxvZ01lc3NhZ2U8VE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlQmFzZT4gKG5hbWU6IHN0cmluZywgbXNnOiBUTWVzc2FnZSk6IHZvaWQge1xuICAgIFNlcnZpY2VzLmxvZ2dlcj8uaW5mbyhcIkVsbVwiLCBcIm1lc3NhZ2UgZnJvbVwiLCBuYW1lLCBtc2cubmFtZSk7XG4gICAgU2VydmljZXMubG9nZ2VyPy5kZWJ1ZyhcIkVsbVwiLCBcIm1lc3NhZ2UgZnJvbVwiLCBuYW1lLCBtc2cpO1xuXG4gICAgU2VydmljZXMuZGlzcGF0Y2hNaWRkbGV3YXJlPy4obXNnKTtcbn1cblxuZnVuY3Rpb24gbW9kZWxIYXNDaGFuZ2VkPFRNb2RlbD4gKGN1cnJlbnRNb2RlbDogVE1vZGVsLCBtb2RlbDogUGFydGlhbDxUTW9kZWw+KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICFPYmplY3QuaXMobW9kZWwsIGN1cnJlbnRNb2RlbCkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMobW9kZWwpLmxlbmd0aCA+IDA7XG59XG5cbmZ1bmN0aW9uIGV4ZWNDbWQ8VE1lc3NhZ2U+IChjbWQ6IENtZDxUTWVzc2FnZT4sIGRpc3BhdGNoOiBEaXNwYXRjaDxUTWVzc2FnZT4pOiB2b2lkIHtcbiAgICBjbWQuZm9yRWFjaChjYWxsID0+IGNhbGwoZGlzcGF0Y2gpKTtcbn1cblxuZXhwb3J0IHtcbiAgICBsb2dNZXNzYWdlLFxuICAgIG1vZGVsSGFzQ2hhbmdlZCxcbiAgICBleGVjQ21kLFxufTsiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUNBOztBQUdBLFNBQVNBLFVBQVQsQ0FBbURDLElBQW5ELEVBQWlFQyxHQUFqRSxFQUFzRjtFQUFBOztFQUNsRixvQkFBQUMsY0FBQSxDQUFTQyxNQUFULHNFQUFpQkMsSUFBakIsQ0FBc0IsS0FBdEIsRUFBNkIsY0FBN0IsRUFBNkNKLElBQTdDLEVBQW1EQyxHQUFHLENBQUNELElBQXZEO0VBQ0EscUJBQUFFLGNBQUEsQ0FBU0MsTUFBVCx3RUFBaUJFLEtBQWpCLENBQXVCLEtBQXZCLEVBQThCLGNBQTlCLEVBQThDTCxJQUE5QyxFQUFvREMsR0FBcEQ7RUFFQSx5QkFBQUMsY0FBQSxDQUFTSSxrQkFBVCxxRkFBQUosY0FBQSxFQUE4QkQsR0FBOUI7QUFDSDs7QUFFRCxTQUFTTSxlQUFULENBQWtDQyxZQUFsQyxFQUF3REMsS0FBeEQsRUFBeUY7RUFDckYsT0FBTyxDQUFDQyxNQUFNLENBQUNDLEVBQVAsQ0FBVUYsS0FBVixFQUFpQkQsWUFBakIsQ0FBRCxJQUFtQ0UsTUFBTSxDQUFDRSxtQkFBUCxDQUEyQkgsS0FBM0IsRUFBa0NJLE1BQWxDLEdBQTJDLENBQXJGO0FBQ0g7O0FBRUQsU0FBU0MsT0FBVCxDQUE0QkMsR0FBNUIsRUFBZ0RDLFFBQWhELEVBQW9GO0VBQ2hGRCxHQUFHLENBQUNFLE9BQUosQ0FBWSxVQUFBQyxJQUFJO0lBQUEsT0FBSUEsSUFBSSxDQUFDRixRQUFELENBQVI7RUFBQSxDQUFoQjtBQUNIIn0=
@@ -38,7 +38,6 @@ declare abstract class ElmComponent<TModel, TMessage extends Message, TProps> ex
38
38
  * @memberof ElmComponent
39
39
  */
40
40
  componentWillUnmount(): void;
41
- private execCmd;
42
41
  /**
43
42
  * Returns the current model.
44
43
  * @readonly
@@ -9,6 +9,8 @@ exports.ElmComponent = void 0;
9
9
 
10
10
  var _react = _interopRequireDefault(require("react"));
11
11
 
12
+ var _Common = require("./Common");
13
+
12
14
  var _Init = require("./Init");
13
15
 
14
16
  var _fakeOptions = require("./Testing/fakeOptions");
@@ -95,10 +97,6 @@ var ElmComponent = /*#__PURE__*/function (_React$Component) {
95
97
  _defineProperty(_assertThisInitialized(_this), "currentModel", void 0);
96
98
 
97
99
  _defineProperty(_assertThisInitialized(_this), "dispatch", function (msg) {
98
- var modelHasChanged = function modelHasChanged(model) {
99
- return model !== _this.currentModel && Object.getOwnPropertyNames(model).length > 0;
100
- };
101
-
102
100
  if (_this.reentered) {
103
101
  _this.buffer.push(msg);
104
102
  } else {
@@ -107,33 +105,20 @@ var ElmComponent = /*#__PURE__*/function (_React$Component) {
107
105
  var modified = false;
108
106
 
109
107
  while (nextMsg) {
110
- var _Services$logger, _Services$logger2;
108
+ (0, _Common.logMessage)(_this.componentName, nextMsg);
111
109
 
112
- (_Services$logger = _Init.Services.logger) === null || _Services$logger === void 0 ? void 0 : _Services$logger.info("Elm", "message from", _this.componentName, nextMsg.name);
113
- (_Services$logger2 = _Init.Services.logger) === null || _Services$logger2 === void 0 ? void 0 : _Services$logger2.debug("Elm", "message from", _this.componentName, nextMsg);
110
+ var _this$update = _this.update(_this.currentModel, nextMsg, _this.props),
111
+ _this$update2 = _slicedToArray(_this$update, 2),
112
+ model = _this$update2[0],
113
+ cmd = _this$update2[1];
114
114
 
115
- if (_Init.Services.dispatchMiddleware) {
116
- _Init.Services.dispatchMiddleware(nextMsg);
115
+ if ((0, _Common.modelHasChanged)(_this.currentModel, model)) {
116
+ _this.currentModel = _objectSpread(_objectSpread({}, _this.currentModel), model);
117
+ modified = true;
117
118
  }
118
119
 
119
- try {
120
- var _this$update = _this.update(_this.currentModel, nextMsg, _this.props),
121
- _this$update2 = _slicedToArray(_this$update, 2),
122
- model = _this$update2[0],
123
- cmd = _this$update2[1];
124
-
125
- if (modelHasChanged(model)) {
126
- _this.currentModel = _objectSpread(_objectSpread({}, _this.currentModel), model);
127
- modified = true;
128
- }
129
-
130
- if (cmd) {
131
- _this.execCmd(cmd);
132
- }
133
- } catch (ex) {
134
- var _Services$logger3;
135
-
136
- (_Services$logger3 = _Init.Services.logger) === null || _Services$logger3 === void 0 ? void 0 : _Services$logger3.error(ex);
120
+ if (cmd) {
121
+ (0, _Common.execCmd)(cmd, _this.dispatch);
137
122
  }
138
123
 
139
124
  nextMsg = _this.buffer.shift();
@@ -142,9 +127,9 @@ var ElmComponent = /*#__PURE__*/function (_React$Component) {
142
127
  _this.reentered = false;
143
128
 
144
129
  if (_this.mounted && modified) {
145
- var _Services$logger4;
130
+ var _Services$logger;
146
131
 
147
- (_Services$logger4 = _Init.Services.logger) === null || _Services$logger4 === void 0 ? void 0 : _Services$logger4.debug("Elm", "update model for", _this.componentName, _this.currentModel);
132
+ (_Services$logger = _Init.Services.logger) === null || _Services$logger === void 0 ? void 0 : _Services$logger.debug("Elm", "update model for", _this.componentName, _this.currentModel);
148
133
 
149
134
  _this.forceUpdate();
150
135
  }
@@ -182,7 +167,7 @@ var ElmComponent = /*#__PURE__*/function (_React$Component) {
182
167
  this.mounted = true;
183
168
 
184
169
  if (this.initCmd) {
185
- this.execCmd(this.initCmd);
170
+ (0, _Common.execCmd)(this.initCmd, this.dispatch);
186
171
  this.initCmd = null;
187
172
  }
188
173
  }
@@ -197,21 +182,6 @@ var ElmComponent = /*#__PURE__*/function (_React$Component) {
197
182
  value: function componentWillUnmount() {
198
183
  this.mounted = false;
199
184
  }
200
- }, {
201
- key: "execCmd",
202
- value: function execCmd(cmd) {
203
- var _this2 = this;
204
-
205
- cmd.forEach(function (call) {
206
- try {
207
- call(_this2.dispatch);
208
- } catch (ex) {
209
- var _Services$logger5;
210
-
211
- (_Services$logger5 = _Init.Services.logger) === null || _Services$logger5 === void 0 ? void 0 : _Services$logger5.error(ex);
212
- }
213
- });
214
- }
215
185
  /**
216
186
  * Returns the current model.
217
187
  * @readonly
@@ -236,4 +206,4 @@ var ElmComponent = /*#__PURE__*/function (_React$Component) {
236
206
  }(_react["default"].Component);
237
207
 
238
208
  exports.ElmComponent = ElmComponent;
239
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFbG1Db21wb25lbnQiLCJwcm9wcyIsImluaXQiLCJuYW1lIiwibXNnIiwibW9kZWxIYXNDaGFuZ2VkIiwibW9kZWwiLCJjdXJyZW50TW9kZWwiLCJPYmplY3QiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwibGVuZ3RoIiwicmVlbnRlcmVkIiwiYnVmZmVyIiwicHVzaCIsIm5leHRNc2ciLCJtb2RpZmllZCIsIlNlcnZpY2VzIiwibG9nZ2VyIiwiaW5mbyIsImNvbXBvbmVudE5hbWUiLCJkZWJ1ZyIsImRpc3BhdGNoTWlkZGxld2FyZSIsInVwZGF0ZSIsImNtZCIsImV4ZWNDbWQiLCJleCIsImVycm9yIiwic2hpZnQiLCJtb3VudGVkIiwiZm9yY2VVcGRhdGUiLCJmYWtlT3B0aW9ucyIsImdldEZha2VPcHRpb25zT25jZSIsImRpc3BhdGNoIiwiaW5pdENtZCIsImZvckVhY2giLCJjYWxsIiwiUmVhY3QiLCJDb21wb25lbnQiXSwic291cmNlcyI6WyIuLi9zcmMvRWxtQ29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IENtZCB9IGZyb20gXCIuL0NtZFwiO1xuaW1wb3J0IHsgTWVzc2FnZSwgU2VydmljZXMgfSBmcm9tIFwiLi9Jbml0XCI7XG5pbXBvcnQgeyBnZXRGYWtlT3B0aW9uc09uY2UgfSBmcm9tIFwiLi9UZXN0aW5nL2Zha2VPcHRpb25zXCI7XG5pbXBvcnQgeyBJbml0RnVuY3Rpb24sIE51bGxhYmxlLCBVcGRhdGVGdW5jdGlvbiB9IGZyb20gXCIuL1R5cGVzXCI7XG5cbi8qKlxuICogQWJzdHJhY3QgY2xhc3MgZm9yIGEgcmVhY3QgY2xhc3MgY29tcG9uZW50IHVzaW5nIHRoZSBFbG1pc2ggcGF0dGVybi5cbiAqIEBleHBvcnRcbiAqIEBhYnN0cmFjdFxuICogQGNsYXNzIEVsbUNvbXBvbmVudFxuICogQGV4dGVuZHMge0NvbXBvbmVudDxUUHJvcHMsIFRNb2RlbD59XG4gKiBAdGVtcGxhdGUgVE1vZGVsIFRoZSB0eXBlIG9mIHRoZSBtb2RlbC5cbiAqIEB0ZW1wbGF0ZSBUTWVzc2FnZSBUaGUgdHlwZSBvZiB0aGUgbWVzc2FnZXMuXG4gKiBAdGVtcGxhdGUgVFByb3BzIFRoZSB0eXBlIG9mIHRoZSBwcm9wcy5cbiAqL1xuYWJzdHJhY3QgY2xhc3MgRWxtQ29tcG9uZW50PFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlLCBUUHJvcHM+IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PFRQcm9wcz4ge1xuICAgIHByaXZhdGUgaW5pdENtZDogTnVsbGFibGU8Q21kPFRNZXNzYWdlPj4gfCB1bmRlZmluZWQ7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjb21wb25lbnROYW1lOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBidWZmZXI6IFRNZXNzYWdlIFtdID0gW107XG4gICAgcHJpdmF0ZSByZWVudGVyZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIG1vdW50ZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIGN1cnJlbnRNb2RlbDogVE1vZGVsO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBFbG1Db21wb25lbnQuXG4gICAgICogQHBhcmFtIHtUUHJvcHN9IHByb3BzIFRoZSBwcm9wcyBmb3IgdGhlIGNvbXBvbmVudC5cbiAgICAgKiBAcGFyYW0geygpID0+IFRNb2RlbH0gaW5pdCBUaGUgaW5pdGlhbGl6ZXIgZnVuY3Rpb24uXG4gICAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICAgKiBAbWVtYmVyb2YgRWxtQ29tcG9uZW50XG4gICAgICovXG4gICAgcHVibGljIGNvbnN0cnVjdG9yIChwcm9wczogVFByb3BzLCBpbml0OiBJbml0RnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiwgbmFtZTogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyKHByb3BzKTtcblxuICAgICAgICBjb25zdCBmYWtlT3B0aW9ucyA9IGdldEZha2VPcHRpb25zT25jZSgpO1xuXG4gICAgICAgIGlmIChmYWtlT3B0aW9ucz8uZGlzcGF0Y2gpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2ggPSBmYWtlT3B0aW9ucy5kaXNwYXRjaDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IFttb2RlbCwgY21kXSA9IGZha2VPcHRpb25zPy5tb2RlbCA/IFtmYWtlT3B0aW9ucy5tb2RlbCBhcyBUTW9kZWxdIDogaW5pdCh0aGlzLnByb3BzKTtcblxuICAgICAgICB0aGlzLmNvbXBvbmVudE5hbWUgPSBuYW1lO1xuICAgICAgICB0aGlzLmN1cnJlbnRNb2RlbCA9IG1vZGVsO1xuICAgICAgICB0aGlzLmluaXRDbWQgPSBjbWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSXMgY2FsbGVkIHdoZW4gdGhlIGNvbXBvbmVudCBpcyBsb2FkZWQuXG4gICAgICogV2hlbiBpbXBsZW1lbnRpbmcgdGhpcyBtZXRob2QsIHRoZSBiYXNlIGltcGxlbWVudGF0aW9uIGhhcyB0byBiZSBjYWxsZWQuXG4gICAgICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBjb21wb25lbnREaWRNb3VudCAoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubW91bnRlZCA9IHRydWU7XG5cbiAgICAgICAgaWYgKHRoaXMuaW5pdENtZCkge1xuICAgICAgICAgICAgdGhpcy5leGVjQ21kKHRoaXMuaW5pdENtZCk7XG4gICAgICAgICAgICB0aGlzLmluaXRDbWQgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSXMgY2FsbGVkIGJlZm9yZSB1bmxvYWRpbmcgdGhlIGNvbXBvbmVudC5cbiAgICAgKiBXaGVuIGltcGxlbWVudGluZyB0aGlzIG1ldGhvZCwgdGhlIGJhc2UgaW1wbGVtZW50YXRpb24gaGFzIHRvIGJlIGNhbGxlZC5cbiAgICAgKiBAbWVtYmVyb2YgRWxtQ29tcG9uZW50XG4gICAgICovXG4gICAgcHVibGljIGNvbXBvbmVudFdpbGxVbm1vdW50ICgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb3VudGVkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBleGVjQ21kIChjbWQ6IENtZDxUTWVzc2FnZT4pOiB2b2lkIHtcbiAgICAgICAgY21kLmZvckVhY2goY2FsbCA9PiB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNhbGwodGhpcy5kaXNwYXRjaCk7XG4gICAgICAgICAgICB9IGNhdGNoIChleDogdW5rbm93bikge1xuICAgICAgICAgICAgICAgIFNlcnZpY2VzLmxvZ2dlcj8uZXJyb3IoZXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IG1vZGVsLlxuICAgICAqIEByZWFkb25seVxuICAgICAqIEB0eXBlIHtSZWFkb25seTxUTW9kZWw+fVxuICAgICAqIEBtZW1iZXJvZiBFbG1Db21wb25lbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IG1vZGVsICgpOiBSZWFkb25seTxUTW9kZWw+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudE1vZGVsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERpc3BhdGNoZXMgYSBtZXNzYWdlLlxuICAgICAqIEBwYXJhbSB7VE1lc3NhZ2V9IG1zZyBUaGUgbWVzc2FnZSB0byBkaXNwYXRjaC5cbiAgICAgKiBAbWVtYmVyb2YgRWxtQ29tcG9uZW50XG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGRpc3BhdGNoID0gKG1zZzogVE1lc3NhZ2UpOiB2b2lkID0+IHtcbiAgICAgICAgY29uc3QgbW9kZWxIYXNDaGFuZ2VkID0gKG1vZGVsOiBQYXJ0aWFsPFRNb2RlbD4pOiBib29sZWFuID0+IG1vZGVsICE9PSB0aGlzLmN1cnJlbnRNb2RlbCAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhtb2RlbCkubGVuZ3RoID4gMDtcblxuICAgICAgICBpZiAodGhpcy5yZWVudGVyZWQpIHtcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyLnB1c2gobXNnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucmVlbnRlcmVkID0gdHJ1ZTtcblxuICAgICAgICAgICAgbGV0IG5leHRNc2c6IFRNZXNzYWdlIHwgdW5kZWZpbmVkID0gbXNnO1xuICAgICAgICAgICAgbGV0IG1vZGlmaWVkID0gZmFsc2U7XG5cbiAgICAgICAgICAgIHdoaWxlIChuZXh0TXNnKSB7XG4gICAgICAgICAgICAgICAgU2VydmljZXMubG9nZ2VyPy5pbmZvKFwiRWxtXCIsIFwibWVzc2FnZSBmcm9tXCIsIHRoaXMuY29tcG9uZW50TmFtZSwgbmV4dE1zZy5uYW1lKTtcbiAgICAgICAgICAgICAgICBTZXJ2aWNlcy5sb2dnZXI/LmRlYnVnKFwiRWxtXCIsIFwibWVzc2FnZSBmcm9tXCIsIHRoaXMuY29tcG9uZW50TmFtZSwgbmV4dE1zZyk7XG5cbiAgICAgICAgICAgICAgICBpZiAoU2VydmljZXMuZGlzcGF0Y2hNaWRkbGV3YXJlKSB7XG4gICAgICAgICAgICAgICAgICAgIFNlcnZpY2VzLmRpc3BhdGNoTWlkZGxld2FyZShuZXh0TXNnKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBbbW9kZWwsIGNtZF0gPSB0aGlzLnVwZGF0ZSh0aGlzLmN1cnJlbnRNb2RlbCwgbmV4dE1zZywgdGhpcy5wcm9wcyk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKG1vZGVsSGFzQ2hhbmdlZChtb2RlbCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudE1vZGVsID0geyAuLi50aGlzLmN1cnJlbnRNb2RlbCwgLi4ubW9kZWwgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChjbWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZXhlY0NtZChjbWQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXg6IHVua25vd24pIHtcbiAgICAgICAgICAgICAgICAgICAgU2VydmljZXMubG9nZ2VyPy5lcnJvcihleCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgbmV4dE1zZyA9IHRoaXMuYnVmZmVyLnNoaWZ0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnJlZW50ZXJlZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5tb3VudGVkICYmIG1vZGlmaWVkKSB7XG4gICAgICAgICAgICAgICAgU2VydmljZXMubG9nZ2VyPy5kZWJ1ZyhcIkVsbVwiLCBcInVwZGF0ZSBtb2RlbCBmb3JcIiwgdGhpcy5jb21wb25lbnROYW1lLCB0aGlzLmN1cnJlbnRNb2RlbCk7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JjZVVwZGF0ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEZ1bmN0aW9uIHRvIG1vZGlmeSB0aGUgbW9kZWwgYmFzZWQgb24gYSBtZXNzYWdlLlxuICAgICAqIEBwYXJhbSB7VE1vZGVsfSBtb2RlbCBUaGUgY3VycmVudCBtb2RlbC5cbiAgICAgKiBAcGFyYW0ge1RNZXNzYWdlfSBtc2cgVGhlIG1lc3NhZ2UgdG8gcHJvY2Vzcy5cbiAgICAgKiBAcGFyYW0ge1RQcm9wc30gcHJvcHMgVGhlIHByb3BzIG9mIHRoZSBjb21wb25lbnQuXG4gICAgICogQHJldHVybnMgVGhlIG5ldyBtb2RlbCAoY2FuIGFsc28gYmUgYW4gZW1wdHkgb2JqZWN0IHt9KSBhbmQgYW4gb3B0aW9uYWwgbmV3IG1lc3NhZ2UgdG8gZGlzcGF0Y2guXG4gICAgICogQGFic3RyYWN0XG4gICAgICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCB1cGRhdGU6IFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT47XG59XG5cbmV4cG9ydCB7XG4gICAgRWxtQ29tcG9uZW50LFxufTsiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUVBOztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtJQUNlQSxZOzs7OztFQVFYO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0ksc0JBQW9CQyxLQUFwQixFQUFtQ0MsSUFBbkMsRUFBaUZDLElBQWpGLEVBQStGO0lBQUE7O0lBQUE7O0lBQzNGLDBCQUFNRixLQUFOOztJQUQyRjs7SUFBQTs7SUFBQSx5REFaeEQsRUFZd0Q7O0lBQUEsNERBWDNFLEtBVzJFOztJQUFBLDBEQVY3RSxLQVU2RTs7SUFBQTs7SUFBQSwyREFnRXBFLFVBQUNHLEdBQUQsRUFBeUI7TUFDaEQsSUFBTUMsZUFBZSxHQUFHLFNBQWxCQSxlQUFrQixDQUFDQyxLQUFEO1FBQUEsT0FBcUNBLEtBQUssS0FBSyxNQUFLQyxZQUFmLElBQStCQyxNQUFNLENBQUNDLG1CQUFQLENBQTJCSCxLQUEzQixFQUFrQ0ksTUFBbEMsR0FBMkMsQ0FBL0c7TUFBQSxDQUF4Qjs7TUFFQSxJQUFJLE1BQUtDLFNBQVQsRUFBb0I7UUFDaEIsTUFBS0MsTUFBTCxDQUFZQyxJQUFaLENBQWlCVCxHQUFqQjtNQUNILENBRkQsTUFFTztRQUNILE1BQUtPLFNBQUwsR0FBaUIsSUFBakI7UUFFQSxJQUFJRyxPQUE2QixHQUFHVixHQUFwQztRQUNBLElBQUlXLFFBQVEsR0FBRyxLQUFmOztRQUVBLE9BQU9ELE9BQVAsRUFBZ0I7VUFBQTs7VUFDWixvQkFBQUUsY0FBQSxDQUFTQyxNQUFULHNFQUFpQkMs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
209
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFbG1Db21wb25lbnQiLCJwcm9wcyIsImluaXQiLCJuYW1lIiwibXNnIiwicmVlbnRlcmVkIiwiYnVmZmVyIiwicHVzaCIsIm5leHRNc2ciLCJtb2RpZmllZCIsImxvZ01lc3NhZ2UiLCJjb21wb25lbnROYW1lIiwidXBkYXRlIiwiY3VycmVudE1vZGVsIiwibW9kZWwiLCJjbWQiLCJtb2RlbEhhc0NoYW5nZWQiLCJleGVjQ21kIiwiZGlzcGF0Y2giLCJzaGlmdCIsIm1vdW50ZWQiLCJTZXJ2aWNlcyIsImxvZ2dlciIsImRlYnVnIiwiZm9yY2VVcGRhdGUiLCJmYWtlT3B0aW9ucyIsImdldEZha2VPcHRpb25zT25jZSIsImluaXRDbWQiLCJSZWFjdCIsIkNvbXBvbmVudCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9FbG1Db21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgQ21kIH0gZnJvbSBcIi4vQ21kXCI7XG5pbXBvcnQgeyBleGVjQ21kLCBsb2dNZXNzYWdlLCBtb2RlbEhhc0NoYW5nZWQgfSBmcm9tIFwiLi9Db21tb25cIjtcbmltcG9ydCB7IE1lc3NhZ2UsIFNlcnZpY2VzIH0gZnJvbSBcIi4vSW5pdFwiO1xuaW1wb3J0IHsgZ2V0RmFrZU9wdGlvbnNPbmNlIH0gZnJvbSBcIi4vVGVzdGluZy9mYWtlT3B0aW9uc1wiO1xuaW1wb3J0IHsgSW5pdEZ1bmN0aW9uLCBOdWxsYWJsZSwgVXBkYXRlRnVuY3Rpb24gfSBmcm9tIFwiLi9UeXBlc1wiO1xuXG4vKipcbiAqIEFic3RyYWN0IGNsYXNzIGZvciBhIHJlYWN0IGNsYXNzIGNvbXBvbmVudCB1c2luZyB0aGUgRWxtaXNoIHBhdHRlcm4uXG4gKiBAZXhwb3J0XG4gKiBAYWJzdHJhY3RcbiAqIEBjbGFzcyBFbG1Db21wb25lbnRcbiAqIEBleHRlbmRzIHtDb21wb25lbnQ8VFByb3BzLCBUTW9kZWw+fVxuICogQHRlbXBsYXRlIFRNb2RlbCBUaGUgdHlwZSBvZiB0aGUgbW9kZWwuXG4gKiBAdGVtcGxhdGUgVE1lc3NhZ2UgVGhlIHR5cGUgb2YgdGhlIG1lc3NhZ2VzLlxuICogQHRlbXBsYXRlIFRQcm9wcyBUaGUgdHlwZSBvZiB0aGUgcHJvcHMuXG4gKi9cbmFic3RyYWN0IGNsYXNzIEVsbUNvbXBvbmVudDxUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZSwgVFByb3BzPiBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxUUHJvcHM+IHtcbiAgICBwcml2YXRlIGluaXRDbWQ6IE51bGxhYmxlPENtZDxUTWVzc2FnZT4+IHwgdW5kZWZpbmVkO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY29tcG9uZW50TmFtZTogc3RyaW5nO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgYnVmZmVyOiBUTWVzc2FnZSBbXSA9IFtdO1xuICAgIHByaXZhdGUgcmVlbnRlcmVkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBtb3VudGVkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBjdXJyZW50TW9kZWw6IFRNb2RlbDtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgRWxtQ29tcG9uZW50LlxuICAgICAqIEBwYXJhbSB7VFByb3BzfSBwcm9wcyBUaGUgcHJvcHMgZm9yIHRoZSBjb21wb25lbnQuXG4gICAgICogQHBhcmFtIHsoKSA9PiBUTW9kZWx9IGluaXQgVGhlIGluaXRpYWxpemVyIGZ1bmN0aW9uLlxuICAgICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBjb21wb25lbnQuXG4gICAgICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvciAocHJvcHM6IFRQcm9wcywgaW5pdDogSW5pdEZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sIG5hbWU6IHN0cmluZykge1xuICAgICAgICBzdXBlcihwcm9wcyk7XG5cbiAgICAgICAgY29uc3QgZmFrZU9wdGlvbnMgPSBnZXRGYWtlT3B0aW9uc09uY2UoKTtcblxuICAgICAgICBpZiAoZmFrZU9wdGlvbnM/LmRpc3BhdGNoKSB7XG4gICAgICAgICAgICB0aGlzLmRpc3BhdGNoID0gZmFrZU9wdGlvbnMuZGlzcGF0Y2g7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBbbW9kZWwsIGNtZF0gPSBmYWtlT3B0aW9ucz8ubW9kZWwgPyBbZmFrZU9wdGlvbnMubW9kZWwgYXMgVE1vZGVsXSA6IGluaXQodGhpcy5wcm9wcyk7XG5cbiAgICAgICAgdGhpcy5jb21wb25lbnROYW1lID0gbmFtZTtcbiAgICAgICAgdGhpcy5jdXJyZW50TW9kZWwgPSBtb2RlbDtcbiAgICAgICAgdGhpcy5pbml0Q21kID0gY21kO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIElzIGNhbGxlZCB3aGVuIHRoZSBjb21wb25lbnQgaXMgbG9hZGVkLlxuICAgICAqIFdoZW4gaW1wbGVtZW50aW5nIHRoaXMgbWV0aG9kLCB0aGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBoYXMgdG8gYmUgY2FsbGVkLlxuICAgICAqIEBtZW1iZXJvZiBFbG1Db21wb25lbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgY29tcG9uZW50RGlkTW91bnQgKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1vdW50ZWQgPSB0cnVlO1xuXG4gICAgICAgIGlmICh0aGlzLmluaXRDbWQpIHtcbiAgICAgICAgICAgIGV4ZWNDbWQodGhpcy5pbml0Q21kLCB0aGlzLmRpc3BhdGNoKTtcbiAgICAgICAgICAgIHRoaXMuaW5pdENtZCA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJcyBjYWxsZWQgYmVmb3JlIHVubG9hZGluZyB0aGUgY29tcG9uZW50LlxuICAgICAqIFdoZW4gaW1wbGVtZW50aW5nIHRoaXMgbWV0aG9kLCB0aGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBoYXMgdG8gYmUgY2FsbGVkLlxuICAgICAqIEBtZW1iZXJvZiBFbG1Db21wb25lbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgY29tcG9uZW50V2lsbFVubW91bnQgKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1vdW50ZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IG1vZGVsLlxuICAgICAqIEByZWFkb25seVxuICAgICAqIEB0eXBlIHtSZWFkb25seTxUTW9kZWw+fVxuICAgICAqIEBtZW1iZXJvZiBFbG1Db21wb25lbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IG1vZGVsICgpOiBSZWFkb25seTxUTW9kZWw+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudE1vZGVsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERpc3BhdGNoZXMgYSBtZXNzYWdlLlxuICAgICAqIEBwYXJhbSB7VE1lc3NhZ2V9IG1zZyBUaGUgbWVzc2FnZSB0byBkaXNwYXRjaC5cbiAgICAgKiBAbWVtYmVyb2YgRWxtQ29tcG9uZW50XG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGRpc3BhdGNoID0gKG1zZzogVE1lc3NhZ2UpOiB2b2lkID0+IHtcbiAgICAgICAgaWYgKHRoaXMucmVlbnRlcmVkKSB7XG4gICAgICAgICAgICB0aGlzLmJ1ZmZlci5wdXNoKG1zZyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJlZW50ZXJlZCA9IHRydWU7XG5cbiAgICAgICAgICAgIGxldCBuZXh0TXNnOiBUTWVzc2FnZSB8IHVuZGVmaW5lZCA9IG1zZztcbiAgICAgICAgICAgIGxldCBtb2RpZmllZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICB3aGlsZSAobmV4dE1zZykge1xuICAgICAgICAgICAgICAgIGxvZ01lc3NhZ2UodGhpcy5jb21wb25lbnROYW1lLCBuZXh0TXNnKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IFttb2RlbCwgY21kXSA9IHRoaXMudXBkYXRlKHRoaXMuY3VycmVudE1vZGVsLCBuZXh0TXNnLCB0aGlzLnByb3BzKTtcblxuICAgICAgICAgICAgICAgIGlmIChtb2RlbEhhc0NoYW5nZWQodGhpcy5jdXJyZW50TW9kZWwsIG1vZGVsKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRNb2RlbCA9IHsgLi4udGhpcy5jdXJyZW50TW9kZWwsIC4uLm1vZGVsIH07XG4gICAgICAgICAgICAgICAgICAgIG1vZGlmaWVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoY21kKSB7XG4gICAgICAgICAgICAgICAgICAgIGV4ZWNDbWQoY21kLCB0aGlzLmRpc3BhdGNoKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBuZXh0TXNnID0gdGhpcy5idWZmZXIuc2hpZnQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMucmVlbnRlcmVkID0gZmFsc2U7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLm1vdW50ZWQgJiYgbW9kaWZpZWQpIHtcbiAgICAgICAgICAgICAgICBTZXJ2aWNlcy5sb2dnZXI/LmRlYnVnKFwiRWxtXCIsIFwidXBkYXRlIG1vZGVsIGZvclwiLCB0aGlzLmNvbXBvbmVudE5hbWUsIHRoaXMuY3VycmVudE1vZGVsKTtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcmNlVXBkYXRlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogRnVuY3Rpb24gdG8gbW9kaWZ5IHRoZSBtb2RlbCBiYXNlZCBvbiBhIG1lc3NhZ2UuXG4gICAgICogQHBhcmFtIHtUTW9kZWx9IG1vZGVsIFRoZSBjdXJyZW50IG1vZGVsLlxuICAgICAqIEBwYXJhbSB7VE1lc3NhZ2V9IG1zZyBUaGUgbWVzc2FnZSB0byBwcm9jZXNzLlxuICAgICAqIEBwYXJhbSB7VFByb3BzfSBwcm9wcyBUaGUgcHJvcHMgb2YgdGhlIGNvbXBvbmVudC5cbiAgICAgKiBAcmV0dXJucyBUaGUgbmV3IG1vZGVsIChjYW4gYWxzbyBiZSBhbiBlbXB0eSBvYmplY3Qge30pIGFuZCBhbiBvcHRpb25hbCBuZXcgbWVzc2FnZSB0byBkaXNwYXRjaC5cbiAgICAgKiBAYWJzdHJhY3RcbiAgICAgKiBAbWVtYmVyb2YgRWxtQ29tcG9uZW50XG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IHVwZGF0ZTogVXBkYXRlRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPjtcbn1cblxuZXhwb3J0IHtcbiAgICBFbG1Db21wb25lbnQsXG59OyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBRUE7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0lBQ2VBLFk7Ozs7O0VBUVg7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDSSxzQkFBb0JDLEtBQXBCLEVBQW1DQyxJQUFuQyxFQUFpRkMsSUFBakYsRUFBK0Y7SUFBQTs7SUFBQTs7SUFDM0YsMEJBQU1GLEtBQU47O0lBRDJGOztJQUFBOztJQUFBLHlEQVp4RCxFQVl3RDs7SUFBQSw0REFYM0UsS0FXMkU7O0lBQUEsMERBVjdFLEtBVTZFOztJQUFBOztJQUFBLDJEQXNEcEUsVUFBQ0csR0FBRCxFQUF5QjtNQUNoRCxJQUFJLE1BQUtDLFNBQVQsRUFBb0I7UUFDaEIsTUFBS0MsTUFBTCxDQUFZQyxJQUFaLENBQWlCSCxHQUFqQjtNQUNILENBRkQsTUFFTztRQUNILE1BQUtDLFNBQUwsR0FBaUIsSUFBakI7UUFFQSxJQUFJRyxPQUE2QixHQUFHSixHQUFwQztRQUNBLElBQUlLLFFBQVEsR0FBRyxLQUFmOztRQUVBLE9BQU9ELE9BQVAsRUFBZ0I7VUFDWixJQUFBRSxrQkFBQSxFQUFXLE1BQUtDLGFBQWhCLEVBQStCSCxPQUEvQjs7VUFFQSxtQkFBcUIsTUFBS0ksTUFBTCxDQUFZLE1BQUtDLFlBQWpCLEVBQStCTCxPQUEvQixFQUF3QyxNQUFLUCxLQUE3QyxDQUFyQjtVQUFBO1VBQUEsSUFBT2EsS0FBUDtVQUFBLElBQWNDLEdBQWQ7O1VBRUEsSUFBSSxJQUFBQyx1QkFBQSxFQUFnQixNQUFLSCxZQUFyQixFQUFtQ0MsS0FBbkMsQ0FBSixFQUErQztZQUMzQyxNQUFLRCxZQUFMLG1DQUF5QixNQUFLQSxZQUE5QixHQUErQ0MsS0FBL0M7WUFDQUwsUUFBUSxHQUFHLElBQVg7VUFDSDs7VUFFRCxJQUFJTSxHQUFKLEVBQVM7WUFDTCxJQUFBRSxlQUFBLEVBQVFGLEdBQVIsRUFBYSxNQUFLRyxRQUFsQjtVQUNIOztVQUVEVixPQUFPLEdBQUcsTUFBS0YsTUFBTCxDQUFZYSxLQUFaLEVBQVY7UUFDSDs7UUFDRCxNQUFLZCxTQUFMLEdBQWlCLEtBQWpCOztRQUVBLElBQUksTUFBS2UsT0FBTCxJQUFnQlgsUUFBcEIsRUFBOEI7VUFBQTs7VUFDMUIsb0JBQUFZLGNBQUEsQ0FBU0MsTUFBVCxzRUFBaUJDLEtBQWpCLENBQXVCLEtBQXZCLEVBQThCLGtCQUE5QixFQUFrRCxNQUFLWixhQUF2RCxFQUFzRSxNQUFLRSxZQUEzRTs7VUFDQSxNQUFLVyxXQUFMO1FBQ0g7TUFDSjtJQUNKLENBdEY4Rjs7SUFBQTs7SUFHM0YsSUFBTUMsV0FBVyxHQUFHLElBQUFDLCtCQUFBLEdBQXBCOztJQUVBLElBQUlELFdBQUosYUFBSUEsV0FBSixlQUFJQSxXQUFXLENBQUVQLFFBQWpCLEVBQTJCO01BQ3ZCLE1BQUtBLFFBQUwsR0FBZ0JPLFdBQVcsQ0FBQ1AsUUFBNUI7SUFDSDs7SUFFRCxXQUFxQk8sV0FBVyxTQUFYLElBQUFBLFdBQVcsV0FBWCxJQUFBQSxXQUFXLENBQUVYLEtBQWIsR0FBcUIsQ0FBQ1csV0FBVyxDQUFDWCxLQUFiLENBQXJCLEdBQXFEWixJQUFJLENBQUMsTUFBS0QsS0FBTixDQUE5RTtJQUFBO0lBQUEsSUFBT2EsTUFBUDtJQUFBLElBQWNDLElBQWQ7O0lBRUEsTUFBS0osYUFBTCxHQUFxQlIsSUFBckI7SUFDQSxNQUFLVSxZQUFMLEdBQW9CQyxNQUFwQjtJQUNBLE1BQUthLE9BQUwsR0FBZVosSUFBZjtJQWIyRjtFQWM5RjtFQUVEO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7Ozs7O1dBQ0ksNkJBQWtDO01BQzlCLEtBQUtLLE9BQUwsR0FBZSxJQUFmOztNQUVBLElBQUksS0FBS08sT0FBVCxFQUFrQjtRQUNkLElBQUFWLGVBQUEsRUFBUSxLQUFLVSxPQUFiLEVBQXNCLEtBQUtULFFBQTNCO1FBQ0EsS0FBS1MsT0FBTCxHQUFlLElBQWY7TUFDSDtJQUNKO0lBRUQ7QUFDSjtBQUNBO0FBQ0E7QUFDQTs7OztXQUNJLGdDQUFxQztNQUNqQyxLQUFLUCxPQUFMLEdBQWUsS0FBZjtJQUNIO0lBRUQ7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O1NBQ0ksZUFBc0M7TUFDbEMsT0FBTyxLQUFLUCxZQUFaO0lBQ0g7SUFFRDtBQUNKO0FBQ0E7QUFDQTtBQUNBOzs7OztFQXBFOEVlLGlCQUFBLENBQU1DLFMifQ==
@@ -0,0 +1,16 @@
1
+ import { MessageBase } from "../Types";
2
+ declare type UpdateArgsFactory<TProps, TModel, TMessage extends MessageBase> = (msg: TMessage, modelTemplate?: Partial<TModel>, propsTemplate?: Partial<TProps>) => [TMessage, TModel, TProps];
3
+ /**
4
+ * Creates a factory function to create a message, a model, and props which can be passed to an update function in tests.
5
+ * @param {() => TModel} initModel A function to create an initial model.
6
+ * @param {() => TProps} initProps A function to create initial props.
7
+ * @returns {UpdateArgsFactory<TProps, TModel, TMessage>} A function to create a message, a model, and props.
8
+ * @example
9
+ * // one time
10
+ * const createUpdateArgs = createUpdateArgsFactory(() => ({ ... }), () => ({ ... }));
11
+ * // in tests
12
+ * const [msg, model, props] = createUpdateArgs(Msg.myMessage(), { ... }, , { ... });
13
+ */
14
+ declare function createUpdateArgsFactory<TProps, TModel, TMessage extends MessageBase>(initModel: () => TModel, initProps: () => TProps): UpdateArgsFactory<TProps, TModel, TMessage>;
15
+ export type { UpdateArgsFactory, };
16
+ export { createUpdateArgsFactory, };
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createUpdateArgsFactory = createUpdateArgsFactory;
7
+
8
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
9
+
10
+ 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; }
11
+
12
+ 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; }
13
+
14
+ /**
15
+ * Creates a factory function to create a message, a model, and props which can be passed to an update function in tests.
16
+ * @param {() => TModel} initModel A function to create an initial model.
17
+ * @param {() => TProps} initProps A function to create initial props.
18
+ * @returns {UpdateArgsFactory<TProps, TModel, TMessage>} A function to create a message, a model, and props.
19
+ * @example
20
+ * // one time
21
+ * const createUpdateArgs = createUpdateArgsFactory(() => ({ ... }), () => ({ ... }));
22
+ * // in tests
23
+ * const [msg, model, props] = createUpdateArgs(Msg.myMessage(), { ... }, , { ... });
24
+ */
25
+ function createUpdateArgsFactory(initModel, initProps) {
26
+ return function (msg, modelTemplate, propsTemplate) {
27
+ return [msg, _objectSpread(_objectSpread({}, initModel()), modelTemplate), _objectSpread(_objectSpread({}, initProps()), propsTemplate)];
28
+ };
29
+ }
30
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjcmVhdGVVcGRhdGVBcmdzRmFjdG9yeSIsImluaXRNb2RlbCIsImluaXRQcm9wcyIsIm1zZyIsIm1vZGVsVGVtcGxhdGUiLCJwcm9wc1RlbXBsYXRlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL1Rlc3RpbmcvY3JlYXRlVXBkYXRlQXJnc0ZhY3RvcnkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWVzc2FnZUJhc2UgfSBmcm9tIFwiLi4vVHlwZXNcIjtcblxudHlwZSBVcGRhdGVBcmdzRmFjdG9yeTxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlQmFzZT4gPSAobXNnOiBUTWVzc2FnZSwgbW9kZWxUZW1wbGF0ZT86IFBhcnRpYWw8VE1vZGVsPiwgcHJvcHNUZW1wbGF0ZT86IFBhcnRpYWw8VFByb3BzPikgPT4gW1RNZXNzYWdlLCBUTW9kZWwsIFRQcm9wc107XG5cbi8qKlxuICogQ3JlYXRlcyBhIGZhY3RvcnkgZnVuY3Rpb24gdG8gY3JlYXRlIGEgbWVzc2FnZSwgYSBtb2RlbCwgYW5kIHByb3BzIHdoaWNoIGNhbiBiZSBwYXNzZWQgdG8gYW4gdXBkYXRlIGZ1bmN0aW9uIGluIHRlc3RzLlxuICogQHBhcmFtIHsoKSA9PiBUTW9kZWx9IGluaXRNb2RlbCBBIGZ1bmN0aW9uIHRvIGNyZWF0ZSBhbiBpbml0aWFsIG1vZGVsLlxuICogQHBhcmFtIHsoKSA9PiBUUHJvcHN9IGluaXRQcm9wcyBBIGZ1bmN0aW9uIHRvIGNyZWF0ZSBpbml0aWFsIHByb3BzLlxuICogQHJldHVybnMge1VwZGF0ZUFyZ3NGYWN0b3J5PFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT59IEEgZnVuY3Rpb24gdG8gY3JlYXRlIGEgbWVzc2FnZSwgYSBtb2RlbCwgYW5kIHByb3BzLlxuICogQGV4YW1wbGVcbiAqIC8vIG9uZSB0aW1lXG4gKiBjb25zdCBjcmVhdGVVcGRhdGVBcmdzID0gY3JlYXRlVXBkYXRlQXJnc0ZhY3RvcnkoKCkgPT4gKHsgLi4uIH0pLCAoKSA9PiAoeyAuLi4gfSkpO1xuICogLy8gaW4gdGVzdHNcbiAqIGNvbnN0IFttc2csIG1vZGVsLCBwcm9wc10gPSBjcmVhdGVVcGRhdGVBcmdzKE1zZy5teU1lc3NhZ2UoKSwgeyAuLi4gfSwgLCB7IC4uLiB9KTtcbiAqL1xuZnVuY3Rpb24gY3JlYXRlVXBkYXRlQXJnc0ZhY3Rvcnk8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZUJhc2U+IChpbml0TW9kZWw6ICgpID0+IFRNb2RlbCwgaW5pdFByb3BzOiAoKSA9PiBUUHJvcHMpOiBVcGRhdGVBcmdzRmFjdG9yeTxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+IHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKG1zZzogVE1lc3NhZ2UsIG1vZGVsVGVtcGxhdGU/OiBQYXJ0aWFsPFRNb2RlbD4sIHByb3BzVGVtcGxhdGU/OiBQYXJ0aWFsPFRQcm9wcz4pOiBbVE1lc3NhZ2UsIFRNb2RlbCwgVFByb3BzXSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBtc2csXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgLi4uaW5pdE1vZGVsKCksXG4gICAgICAgICAgICAgICAgLi4ubW9kZWxUZW1wbGF0ZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgLi4uaW5pdFByb3BzKCksXG4gICAgICAgICAgICAgICAgLi4ucHJvcHNUZW1wbGF0ZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgfTtcbn1cblxuZXhwb3J0IHR5cGUge1xuICAgIFVwZGF0ZUFyZ3NGYWN0b3J5LFxufTtcblxuZXhwb3J0IHtcbiAgICBjcmVhdGVVcGRhdGVBcmdzRmFjdG9yeSxcbn07Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLHVCQUFULENBQWdGQyxTQUFoRixFQUF5R0MsU0FBekcsRUFBK0s7RUFDM0ssT0FBTyxVQUFVQyxHQUFWLEVBQXlCQyxhQUF6QixFQUEwREMsYUFBMUQsRUFBdUg7SUFDMUgsT0FBTyxDQUNIRixHQURHLGtDQUdJRixTQUFTLEVBSGIsR0FJSUcsYUFKSixtQ0FPSUYsU0FBUyxFQVBiLEdBUUlHLGFBUkosRUFBUDtFQVdILENBWkQ7QUFhSCJ9
@@ -0,0 +1,9 @@
1
+ import { Cmd } from "../Cmd";
2
+ import { Nullable } from "../Types";
3
+ /**
4
+ * Executes all commands and resolves the messages.
5
+ * @param cmd The command to process.
6
+ * @returns The array of processed messages.
7
+ */
8
+ declare function execCmd<TMessage>(cmd?: Cmd<TMessage>): Promise<Nullable<TMessage>[]>;
9
+ export { execCmd, };
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.execCmd = execCmd;
7
+
8
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
9
+
10
+ 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; }
11
+
12
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
13
+
14
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
15
+
16
+ /**
17
+ * Executes all commands and resolves the messages.
18
+ * @param cmd The command to process.
19
+ * @returns The array of processed messages.
20
+ */
21
+ function execCmd(_x) {
22
+ return _execCmd.apply(this, arguments);
23
+ }
24
+
25
+ function _execCmd() {
26
+ _execCmd = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(cmd) {
27
+ var callers, results;
28
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
29
+ while (1) {
30
+ switch (_context2.prev = _context2.next) {
31
+ case 0:
32
+ if (cmd) {
33
+ _context2.next = 2;
34
+ break;
35
+ }
36
+
37
+ return _context2.abrupt("return", []);
38
+
39
+ case 2:
40
+ callers = cmd.map( /*#__PURE__*/function () {
41
+ var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(currentCmd) {
42
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
43
+ while (1) {
44
+ switch (_context.prev = _context.next) {
45
+ case 0:
46
+ return _context.abrupt("return", new Promise(function (resolve, reject) {
47
+ var dispatch = function dispatch(msg) {
48
+ return resolve(msg);
49
+ };
50
+
51
+ currentCmd(dispatch, function (error) {
52
+ if (error) {
53
+ reject(error);
54
+ } else {
55
+ resolve(null);
56
+ }
57
+ });
58
+ }));
59
+
60
+ case 1:
61
+ case "end":
62
+ return _context.stop();
63
+ }
64
+ }
65
+ }, _callee);
66
+ }));
67
+
68
+ return function (_x2) {
69
+ return _ref.apply(this, arguments);
70
+ };
71
+ }());
72
+ _context2.next = 5;
73
+ return Promise.all(callers);
74
+
75
+ case 5:
76
+ results = _context2.sent;
77
+ return _context2.abrupt("return", results);
78
+
79
+ case 7:
80
+ case "end":
81
+ return _context2.stop();
82
+ }
83
+ }
84
+ }, _callee2);
85
+ }));
86
+ return _execCmd.apply(this, arguments);
87
+ }
88
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJleGVjQ21kIiwiY21kIiwiY2FsbGVycyIsIm1hcCIsImN1cnJlbnRDbWQiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsImRpc3BhdGNoIiwibXNnIiwiZXJyb3IiLCJhbGwiLCJyZXN1bHRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL1Rlc3RpbmcvZXhlY0NtZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDbWQgfSBmcm9tIFwiLi4vQ21kXCI7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gXCIuLi9UeXBlc1wiO1xuXG4vKipcbiAqIEV4ZWN1dGVzIGFsbCBjb21tYW5kcyBhbmQgcmVzb2x2ZXMgdGhlIG1lc3NhZ2VzLlxuICogQHBhcmFtIGNtZCBUaGUgY29tbWFuZCB0byBwcm9jZXNzLlxuICogQHJldHVybnMgVGhlIGFycmF5IG9mIHByb2Nlc3NlZCBtZXNzYWdlcy5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gZXhlY0NtZDxUTWVzc2FnZT4gKGNtZD86IENtZDxUTWVzc2FnZT4pOiBQcm9taXNlPE51bGxhYmxlPFRNZXNzYWdlPiBbXT4ge1xuICAgIGlmICghY21kKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjb25zdCBjYWxsZXJzID0gY21kLm1hcChhc3luYyBjdXJyZW50Q21kID0+IG5ldyBQcm9taXNlPE51bGxhYmxlPFRNZXNzYWdlPj4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBjb25zdCBkaXNwYXRjaCA9IChtc2c6IFRNZXNzYWdlKTogdm9pZCA9PiByZXNvbHZlKG1zZyk7XG5cbiAgICAgICAgY3VycmVudENtZChkaXNwYXRjaCwgZXJyb3IgPT4ge1xuICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSkpO1xuXG4gICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsKGNhbGxlcnMpO1xuXG4gICAgcmV0dXJuIHJlc3VsdHM7XG59XG5cbmV4cG9ydCB7XG4gICAgZXhlY0NtZCxcbn07Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7K0NBQ0Esb0o7Ozs7OztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7U0FDZUEsTzs7Ozs7d0VBQWYsa0JBQWtDQyxHQUFsQztJQUFBO0lBQUE7TUFBQTtRQUFBO1VBQUE7WUFBQSxJQUNTQSxHQURUO2NBQUE7Y0FBQTtZQUFBOztZQUFBLGtDQUVlLEVBRmY7O1VBQUE7WUFLVUMsT0FMVixHQUtvQkQsR0FBRyxDQUFDRSxHQUFKO2NBQUEsc0VBQVEsaUJBQU1DLFVBQU47Z0JBQUE7a0JBQUE7b0JBQUE7c0JBQUE7d0JBQUEsaUNBQW9CLElBQUlDLE9BQUosQ0FBZ0MsVUFBQ0MsT0FBRCxFQUFVQyxNQUFWLEVBQXFCOzBCQUM3RixJQUFNQyxRQUFRLEdBQUcsU0FBWEEsUUFBVyxDQUFDQyxHQUFEOzRCQUFBLE9BQXlCSCxPQUFPLENBQUNHLEdBQUQsQ0FBaEM7MEJBQUEsQ0FBakI7OzBCQUVBTCxVQUFVLENBQUNJLFFBQUQsRUFBVyxVQUFBRSxLQUFLLEVBQUk7NEJBQzFCLElBQUlBLEtBQUosRUFBVzs4QkFDUEgsTUFBTSxDQUFDRyxLQUFELENBQU47NEJBQ0gsQ0FGRCxNQUVPOzhCQUNISixPQUFPLENBQUMsSUFBRCxDQUFQOzRCQUNIOzBCQUNKLENBTlMsQ0FBVjt3QkFPSCxDQVYyQyxDQUFwQjs7c0JBQUE7c0JBQUE7d0JBQUE7b0JBQUE7a0JBQUE7Z0JBQUE7Y0FBQSxDQUFSOztjQUFBO2dCQUFBO2NBQUE7WUFBQSxJQUxwQjtZQUFBO1lBQUEsT0FpQjBCRCxPQUFPLENBQUNNLEdBQVIsQ0FBWVQsT0FBWixDQWpCMUI7O1VBQUE7WUFpQlVVLE9BakJWO1lBQUEsa0NBbUJXQSxPQW5CWDs7VUFBQTtVQUFBO1lBQUE7UUFBQTtNQUFBO0lBQUE7RUFBQSxDIn0=
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,8 @@
1
+ import { Cmd } from "../Cmd";
2
+ /**
3
+ * Extracts the messages out of a command.
4
+ * @param cmd The command to process.
5
+ * @returns The array of messages.
6
+ */
7
+ declare function getOfMsgParams<TMessage>(cmd?: Cmd<TMessage>): TMessage[];
8
+ export { getOfMsgParams, };
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getOfMsgParams = getOfMsgParams;
7
+
8
+ /**
9
+ * Extracts the messages out of a command.
10
+ * @param cmd The command to process.
11
+ * @returns The array of messages.
12
+ */
13
+ function getOfMsgParams(cmd) {
14
+ var msgNames = [];
15
+
16
+ var dispatch = function dispatch(msg) {
17
+ msgNames.push(msg);
18
+ };
19
+
20
+ cmd === null || cmd === void 0 ? void 0 : cmd.map(function (currentCmd) {
21
+ return currentCmd(dispatch);
22
+ });
23
+ return msgNames;
24
+ }
25
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRPZk1zZ1BhcmFtcyIsImNtZCIsIm1zZ05hbWVzIiwiZGlzcGF0Y2giLCJtc2ciLCJwdXNoIiwibWFwIiwiY3VycmVudENtZCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9UZXN0aW5nL2dldE9mTXNnUGFyYW1zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENtZCB9IGZyb20gXCIuLi9DbWRcIjtcblxuLyoqXG4gKiBFeHRyYWN0cyB0aGUgbWVzc2FnZXMgb3V0IG9mIGEgY29tbWFuZC5cbiAqIEBwYXJhbSBjbWQgVGhlIGNvbW1hbmQgdG8gcHJvY2Vzcy5cbiAqIEByZXR1cm5zIFRoZSBhcnJheSBvZiBtZXNzYWdlcy5cbiAqL1xuZnVuY3Rpb24gZ2V0T2ZNc2dQYXJhbXM8VE1lc3NhZ2U+IChjbWQ/OiBDbWQ8VE1lc3NhZ2U+KTogVE1lc3NhZ2UgW10ge1xuICAgIGNvbnN0IG1zZ05hbWVzOiBUTWVzc2FnZSBbXSA9IFtdO1xuXG4gICAgY29uc3QgZGlzcGF0Y2ggPSAobXNnOiBUTWVzc2FnZSk6IHZvaWQgPT4ge1xuICAgICAgICBtc2dOYW1lcy5wdXNoKG1zZyk7XG4gICAgfTtcblxuICAgIGNtZD8ubWFwKGN1cnJlbnRDbWQgPT4gY3VycmVudENtZChkaXNwYXRjaCkpO1xuXG4gICAgcmV0dXJuIG1zZ05hbWVzO1xufVxuXG5leHBvcnQge1xuICAgIGdldE9mTXNnUGFyYW1zLFxufTsiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsY0FBVCxDQUFtQ0MsR0FBbkMsRUFBcUU7RUFDakUsSUFBTUMsUUFBcUIsR0FBRyxFQUE5Qjs7RUFFQSxJQUFNQyxRQUFRLEdBQUcsU0FBWEEsUUFBVyxDQUFDQyxHQUFELEVBQXlCO0lBQ3RDRixRQUFRLENBQUNHLElBQVQsQ0FBY0QsR0FBZDtFQUNILENBRkQ7O0VBSUFILEdBQUcsU0FBSCxJQUFBQSxHQUFHLFdBQUgsWUFBQUEsR0FBRyxDQUFFSyxHQUFMLENBQVMsVUFBQUMsVUFBVTtJQUFBLE9BQUlBLFVBQVUsQ0FBQ0osUUFBRCxDQUFkO0VBQUEsQ0FBbkI7RUFFQSxPQUFPRCxRQUFQO0FBQ0gifQ==
@@ -0,0 +1,8 @@
1
+ import { MessageBase, UpdateMap, UpdateReturnType } from "../Types";
2
+ /**
3
+ * Creates an update function out of an UpdateMap.
4
+ * @param {UpdateMap<TProps, TModel, TMessage>} updateMap The UpdateMap.
5
+ * @returns {(msg: TMessage, model: TModel, props: TProps) => UpdateReturnType<TModel, TMessage>} The created update function which can be used in tests.
6
+ */
7
+ declare function getUpdateFn<TProps, TModel, TMessage extends MessageBase>(updateMap: UpdateMap<TProps, TModel, TMessage>): (msg: TMessage, model: TModel, props: TProps) => UpdateReturnType<TModel, TMessage>;
8
+ export { getUpdateFn, };
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getUpdateFn = getUpdateFn;
7
+
8
+ var _useElmish = require("../useElmish");
9
+
10
+ /**
11
+ * Creates an update function out of an UpdateMap.
12
+ * @param {UpdateMap<TProps, TModel, TMessage>} updateMap The UpdateMap.
13
+ * @returns {(msg: TMessage, model: TModel, props: TProps) => UpdateReturnType<TModel, TMessage>} The created update function which can be used in tests.
14
+ */
15
+ function getUpdateFn(updateMap) {
16
+ return function (msg, model, props) {
17
+ return (0, _useElmish.callUpdateMap)(updateMap, msg, model, props);
18
+ };
19
+ }
20
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRVcGRhdGVGbiIsInVwZGF0ZU1hcCIsIm1zZyIsIm1vZGVsIiwicHJvcHMiLCJjYWxsVXBkYXRlTWFwIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL1Rlc3RpbmcvZ2V0VXBkYXRlRm4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWVzc2FnZUJhc2UsIFVwZGF0ZU1hcCwgVXBkYXRlUmV0dXJuVHlwZSB9IGZyb20gXCIuLi9UeXBlc1wiO1xuaW1wb3J0IHsgY2FsbFVwZGF0ZU1hcCB9IGZyb20gXCIuLi91c2VFbG1pc2hcIjtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIHVwZGF0ZSBmdW5jdGlvbiBvdXQgb2YgYW4gVXBkYXRlTWFwLlxuICogQHBhcmFtIHtVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPn0gdXBkYXRlTWFwIFRoZSBVcGRhdGVNYXAuXG4gKiBAcmV0dXJucyB7KG1zZzogVE1lc3NhZ2UsIG1vZGVsOiBUTW9kZWwsIHByb3BzOiBUUHJvcHMpID0+IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTWVzc2FnZT59IFRoZSBjcmVhdGVkIHVwZGF0ZSBmdW5jdGlvbiB3aGljaCBjYW4gYmUgdXNlZCBpbiB0ZXN0cy5cbiAqL1xuZnVuY3Rpb24gZ2V0VXBkYXRlRm48VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZUJhc2U+ICh1cGRhdGVNYXA6IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+KTogKG1zZzogVE1lc3NhZ2UsIG1vZGVsOiBUTW9kZWwsIHByb3BzOiBUUHJvcHMpID0+IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTWVzc2FnZT4ge1xuICAgIHJldHVybiBmdW5jdGlvbiAobXNnOiBUTWVzc2FnZSwgbW9kZWw6IFRNb2RlbCwgcHJvcHM6IFRQcm9wcyk6IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTWVzc2FnZT4ge1xuICAgICAgICByZXR1cm4gY2FsbFVwZGF0ZU1hcCh1cGRhdGVNYXAsIG1zZywgbW9kZWwsIHByb3BzKTtcbiAgICB9O1xufVxuXG5leHBvcnQge1xuICAgIGdldFVwZGF0ZUZuLFxufTsiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsV0FBVCxDQUFvRUMsU0FBcEUsRUFBeU07RUFDck0sT0FBTyxVQUFVQyxHQUFWLEVBQXlCQyxLQUF6QixFQUF3Q0MsS0FBeEMsRUFBMkY7SUFDOUYsT0FBTyxJQUFBQyx3QkFBQSxFQUFjSixTQUFkLEVBQXlCQyxHQUF6QixFQUE4QkMsS0FBOUIsRUFBcUNDLEtBQXJDLENBQVA7RUFDSCxDQUZEO0FBR0gifQ==
@@ -1,46 +1,8 @@
1
- import { Cmd } from "../Cmd";
2
- import { MessageBase, Nullable, UpdateMap, UpdateReturnType } from "../Types";
1
+ import { createUpdateArgsFactory, UpdateArgsFactory } from "./createUpdateArgsFactory";
2
+ import { execCmd } from "./execCmd";
3
3
  import { RenderWithModelOptions } from "./fakeOptions";
4
- /**
5
- * Extracts the messages out of a command.
6
- * @param cmd The command to process.
7
- * @returns The array of messages.
8
- */
9
- declare function getOfMsgParams<TMessage>(cmd?: Cmd<TMessage>): TMessage[];
10
- /**
11
- * Executes all commands and resolves the messages.
12
- * @param cmd The command to process.
13
- * @returns The array of processed messages.
14
- */
15
- declare function execCmd<TMessage>(cmd?: Cmd<TMessage>): Promise<Nullable<TMessage>[]>;
16
- /**
17
- * Creates an update function out of an UpdateMap.
18
- * @param {UpdateMap<TProps, TModel, TMessage>} updateMap The UpdateMap.
19
- * @returns {(msg: TMessage, model: TModel, props: TProps) => UpdateReturnType<TModel, TMessage>} The created update function which can be used in tests.
20
- */
21
- declare function getUpdateFn<TProps, TModel, TMessage extends MessageBase>(updateMap: UpdateMap<TProps, TModel, TMessage>): (msg: TMessage, model: TModel, props: TProps) => UpdateReturnType<TModel, TMessage>;
22
- declare type UpdateArgsFactory<TProps, TModel, TMessage extends MessageBase> = (msg: TMessage, modelTemplate?: Partial<TModel>, propsTemplate?: Partial<TProps>) => [TMessage, TModel, TProps];
23
- /**
24
- * Creates a factory function to create a message, a model, and props which can be passed to an update function in tests.
25
- * @param {() => TModel} initModel A function to create an initial model.
26
- * @param {() => TProps} initProps A function to create initial props.
27
- * @returns {UpdateArgsFactory<TProps, TModel, TMessage>} A function to create a message, a model, and props.
28
- * @example
29
- * // one time
30
- * const createUpdateArgs = createUpdateArgsFactory(() => ({ ... }), () => ({ ... }));
31
- * // in tests
32
- * const [msg, model, props] = createUpdateArgs(Msg.myMessage(), { ... }, , { ... });
33
- */
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
- */
44
- declare function renderWithModel<TModel, TMessage extends MessageBase, TResult>(render: () => TResult, options: TModel | RenderWithModelOptions<TModel, TMessage>): TResult;
4
+ import { getOfMsgParams } from "./getOfMsgParams";
5
+ import { getUpdateFn } from "./getUpdateFn";
6
+ import { renderWithModel } from "./renderWithModel";
45
7
  export type { UpdateArgsFactory, RenderWithModelOptions, };
46
8
  export { getOfMsgParams, execCmd, getUpdateFn, createUpdateArgsFactory, renderWithModel, };
@@ -1,174 +1,46 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
-
5
3
  Object.defineProperty(exports, "__esModule", {
6
4
  value: true
7
5
  });
8
- exports.createUpdateArgsFactory = createUpdateArgsFactory;
9
- exports.execCmd = execCmd;
10
- exports.getOfMsgParams = getOfMsgParams;
11
- exports.getUpdateFn = getUpdateFn;
12
- exports.renderWithModel = renderWithModel;
13
-
14
- var _useElmish = require("../useElmish");
15
-
16
- var _fakeOptions = require("./fakeOptions");
17
-
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
-
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; }
21
-
22
- 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; }
23
-
24
- 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; }
25
-
26
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
27
-
28
- function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
29
-
30
- /**
31
- * Extracts the messages out of a command.
32
- * @param cmd The command to process.
33
- * @returns The array of messages.
34
- */
35
- function getOfMsgParams(cmd) {
36
- var msgNames = [];
37
-
38
- var dispatch = function dispatch(msg) {
39
- msgNames.push(msg);
40
- };
41
-
42
- cmd === null || cmd === void 0 ? void 0 : cmd.map(function (currentCmd) {
43
- return currentCmd(dispatch);
44
- });
45
- return msgNames;
46
- }
47
- /**
48
- * Executes all commands and resolves the messages.
49
- * @param cmd The command to process.
50
- * @returns The array of processed messages.
51
- */
52
-
53
-
54
- function execCmd(_x) {
55
- return _execCmd.apply(this, arguments);
56
- }
57
- /**
58
- * Creates an update function out of an UpdateMap.
59
- * @param {UpdateMap<TProps, TModel, TMessage>} updateMap The UpdateMap.
60
- * @returns {(msg: TMessage, model: TModel, props: TProps) => UpdateReturnType<TModel, TMessage>} The created update function which can be used in tests.
61
- */
62
-
63
-
64
- function _execCmd() {
65
- _execCmd = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(cmd) {
66
- var callers, results;
67
- return _regeneratorRuntime().wrap(function _callee2$(_context2) {
68
- while (1) {
69
- switch (_context2.prev = _context2.next) {
70
- case 0:
71
- if (cmd) {
72
- _context2.next = 2;
73
- break;
74
- }
75
-
76
- return _context2.abrupt("return", []);
77
-
78
- case 2:
79
- callers = cmd.map( /*#__PURE__*/function () {
80
- var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(currentCmd) {
81
- return _regeneratorRuntime().wrap(function _callee$(_context) {
82
- while (1) {
83
- switch (_context.prev = _context.next) {
84
- case 0:
85
- return _context.abrupt("return", new Promise(function (resolve, reject) {
86
- var dispatch = function dispatch(msg) {
87
- return resolve(msg);
88
- };
89
-
90
- currentCmd(dispatch, function (error) {
91
- if (error) {
92
- reject(error);
93
- } else {
94
- resolve(null);
95
- }
96
- });
97
- }));
98
-
99
- case 1:
100
- case "end":
101
- return _context.stop();
102
- }
103
- }
104
- }, _callee);
105
- }));
106
-
107
- return function (_x2) {
108
- return _ref.apply(this, arguments);
109
- };
110
- }());
111
- _context2.next = 5;
112
- return Promise.all(callers);
113
-
114
- case 5:
115
- results = _context2.sent;
116
- return _context2.abrupt("return", results);
117
-
118
- case 7:
119
- case "end":
120
- return _context2.stop();
121
- }
122
- }
123
- }, _callee2);
124
- }));
125
- return _execCmd.apply(this, arguments);
126
- }
6
+ Object.defineProperty(exports, "createUpdateArgsFactory", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _createUpdateArgsFactory.createUpdateArgsFactory;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "execCmd", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _execCmd.execCmd;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "getOfMsgParams", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _getOfMsgParams.getOfMsgParams;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "getUpdateFn", {
25
+ enumerable: true,
26
+ get: function get() {
27
+ return _getUpdateFn.getUpdateFn;
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "renderWithModel", {
31
+ enumerable: true,
32
+ get: function get() {
33
+ return _renderWithModel.renderWithModel;
34
+ }
35
+ });
127
36
 
128
- function getUpdateFn(updateMap) {
129
- return function (msg, model, props) {
130
- return (0, _useElmish.callUpdateMap)(updateMap, msg, model, props);
131
- };
132
- }
37
+ var _createUpdateArgsFactory = require("./createUpdateArgsFactory");
133
38
 
134
- /**
135
- * Creates a factory function to create a message, a model, and props which can be passed to an update function in tests.
136
- * @param {() => TModel} initModel A function to create an initial model.
137
- * @param {() => TProps} initProps A function to create initial props.
138
- * @returns {UpdateArgsFactory<TProps, TModel, TMessage>} A function to create a message, a model, and props.
139
- * @example
140
- * // one time
141
- * const createUpdateArgs = createUpdateArgsFactory(() => ({ ... }), () => ({ ... }));
142
- * // in tests
143
- * const [msg, model, props] = createUpdateArgs(Msg.myMessage(), { ... }, , { ... });
144
- */
145
- function createUpdateArgsFactory(initModel, initProps) {
146
- return function (msg, modelTemplate, propsTemplate) {
147
- return [msg, _objectSpread(_objectSpread({}, initModel()), modelTemplate), _objectSpread(_objectSpread({}, initProps()), propsTemplate)];
148
- };
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
- */
39
+ var _execCmd = require("./execCmd");
159
40
 
41
+ var _getOfMsgParams = require("./getOfMsgParams");
160
42
 
161
- function renderWithModel(render, options) {
162
- if ("model" in options && "dispatch" in options) {
163
- (0, _fakeOptions.setFakeOptions)(options);
164
- } else {
165
- (0, _fakeOptions.setFakeOptions)({
166
- model: options
167
- });
168
- }
43
+ var _getUpdateFn = require("./getUpdateFn");
169
44
 
170
- var result = render();
171
- (0, _fakeOptions.setFakeOptions)(null);
172
- return result;
173
- }
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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
45
+ var _renderWithModel = require("./renderWithModel");
46
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL1Rlc3RpbmcvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlVXBkYXRlQXJnc0ZhY3RvcnksIFVwZGF0ZUFyZ3NGYWN0b3J5IH0gZnJvbSBcIi4vY3JlYXRlVXBkYXRlQXJnc0ZhY3RvcnlcIjtcbmltcG9ydCB7IGV4ZWNDbWQgfSBmcm9tIFwiLi9leGVjQ21kXCI7XG5pbXBvcnQgeyBSZW5kZXJXaXRoTW9kZWxPcHRpb25zIH0gZnJvbSBcIi4vZmFrZU9wdGlvbnNcIjtcbmltcG9ydCB7IGdldE9mTXNnUGFyYW1zIH0gZnJvbSBcIi4vZ2V0T2ZNc2dQYXJhbXNcIjtcbmltcG9ydCB7IGdldFVwZGF0ZUZuIH0gZnJvbSBcIi4vZ2V0VXBkYXRlRm5cIjtcbmltcG9ydCB7IHJlbmRlcldpdGhNb2RlbCB9IGZyb20gXCIuL3JlbmRlcldpdGhNb2RlbFwiO1xuXG5leHBvcnQgdHlwZSB7XG4gICAgVXBkYXRlQXJnc0ZhY3RvcnksXG4gICAgUmVuZGVyV2l0aE1vZGVsT3B0aW9ucyxcbn07XG5cbmV4cG9ydCB7XG4gICAgZ2V0T2ZNc2dQYXJhbXMsXG4gICAgZXhlY0NtZCxcbiAgICBnZXRVcGRhdGVGbixcbiAgICBjcmVhdGVVcGRhdGVBcmdzRmFjdG9yeSxcbiAgICByZW5kZXJXaXRoTW9kZWwsXG59OyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0EifQ==
@@ -0,0 +1,13 @@
1
+ import { MessageBase } from "../Types";
2
+ import { RenderWithModelOptions } from "./fakeOptions";
3
+ /**
4
+ * Renders a component with a provided model.
5
+ * @template TModel The type of the model.
6
+ * @template TMessage The type of the message discriminated union.
7
+ * @template TResult The return type of the render function.
8
+ * @param {() => TResult} render A function to render the component. Use the `render` function of the used testing library.
9
+ * @param {(TModel | RenderWithModelOptions<TModel, TMessage>)} options The model or an options object.
10
+ * @returns {TResult} The returned value of the `render` function.
11
+ */
12
+ declare function renderWithModel<TModel, TMessage extends MessageBase, TResult>(render: () => TResult, options: TModel | RenderWithModelOptions<TModel, TMessage>): TResult;
13
+ export { renderWithModel, };
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.renderWithModel = renderWithModel;
7
+
8
+ var _fakeOptions = require("./fakeOptions");
9
+
10
+ /**
11
+ * Renders a component with a provided model.
12
+ * @template TModel The type of the model.
13
+ * @template TMessage The type of the message discriminated union.
14
+ * @template TResult The return type of the render function.
15
+ * @param {() => TResult} render A function to render the component. Use the `render` function of the used testing library.
16
+ * @param {(TModel | RenderWithModelOptions<TModel, TMessage>)} options The model or an options object.
17
+ * @returns {TResult} The returned value of the `render` function.
18
+ */
19
+ function renderWithModel(render, options) {
20
+ if ("model" in options && "dispatch" in options) {
21
+ (0, _fakeOptions.setFakeOptions)(options);
22
+ } else {
23
+ (0, _fakeOptions.setFakeOptions)({
24
+ model: options
25
+ });
26
+ }
27
+
28
+ var result = render();
29
+ (0, _fakeOptions.setFakeOptions)(null);
30
+ return result;
31
+ }
32
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZW5kZXJXaXRoTW9kZWwiLCJyZW5kZXIiLCJvcHRpb25zIiwic2V0RmFrZU9wdGlvbnMiLCJtb2RlbCIsInJlc3VsdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9UZXN0aW5nL3JlbmRlcldpdGhNb2RlbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNZXNzYWdlQmFzZSB9IGZyb20gXCIuLi9UeXBlc1wiO1xuaW1wb3J0IHsgUmVuZGVyV2l0aE1vZGVsT3B0aW9ucywgc2V0RmFrZU9wdGlvbnMgfSBmcm9tIFwiLi9mYWtlT3B0aW9uc1wiO1xuXG4vKipcbiAqIFJlbmRlcnMgYSBjb21wb25lbnQgd2l0aCBhIHByb3ZpZGVkIG1vZGVsLlxuICogQHRlbXBsYXRlIFRNb2RlbCBUaGUgdHlwZSBvZiB0aGUgbW9kZWwuXG4gKiBAdGVtcGxhdGUgVE1lc3NhZ2UgVGhlIHR5cGUgb2YgdGhlIG1lc3NhZ2UgZGlzY3JpbWluYXRlZCB1bmlvbi5cbiAqIEB0ZW1wbGF0ZSBUUmVzdWx0IFRoZSByZXR1cm4gdHlwZSBvZiB0aGUgcmVuZGVyIGZ1bmN0aW9uLlxuICogQHBhcmFtIHsoKSA9PiBUUmVzdWx0fSByZW5kZXIgQSBmdW5jdGlvbiB0byByZW5kZXIgdGhlIGNvbXBvbmVudC4gVXNlIHRoZSBgcmVuZGVyYCBmdW5jdGlvbiBvZiB0aGUgdXNlZCB0ZXN0aW5nIGxpYnJhcnkuXG4gKiBAcGFyYW0geyhUTW9kZWwgfCBSZW5kZXJXaXRoTW9kZWxPcHRpb25zPFRNb2RlbCwgVE1lc3NhZ2U+KX0gb3B0aW9ucyBUaGUgbW9kZWwgb3IgYW4gb3B0aW9ucyBvYmplY3QuXG4gKiBAcmV0dXJucyB7VFJlc3VsdH0gVGhlIHJldHVybmVkIHZhbHVlIG9mIHRoZSBgcmVuZGVyYCBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gcmVuZGVyV2l0aE1vZGVsPFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlQmFzZSwgVFJlc3VsdD4gKHJlbmRlcjogKCkgPT4gVFJlc3VsdCwgb3B0aW9uczogVE1vZGVsIHwgUmVuZGVyV2l0aE1vZGVsT3B0aW9uczxUTW9kZWwsIFRNZXNzYWdlPik6IFRSZXN1bHQge1xuICAgIGlmIChcIm1vZGVsXCIgaW4gb3B0aW9ucyAmJiBcImRpc3BhdGNoXCIgaW4gb3B0aW9ucykge1xuICAgICAgICBzZXRGYWtlT3B0aW9ucyhvcHRpb25zIGFzIFJlbmRlcldpdGhNb2RlbE9wdGlvbnM8dW5rbm93biwgTWVzc2FnZUJhc2U+KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBzZXRGYWtlT3B0aW9ucyh7XG4gICAgICAgICAgICBtb2RlbDogb3B0aW9ucyxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gcmVuZGVyKCk7XG5cbiAgICBzZXRGYWtlT3B0aW9ucyhudWxsKTtcblxuICAgIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCB7XG4gICAgcmVuZGVyV2l0aE1vZGVsLFxufTsiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxlQUFULENBQXlFQyxNQUF6RSxFQUFnR0MsT0FBaEcsRUFBcUs7RUFDakssSUFBSSxXQUFXQSxPQUFYLElBQXNCLGNBQWNBLE9BQXhDLEVBQWlEO0lBQzdDLElBQUFDLDJCQUFBLEVBQWVELE9BQWY7RUFDSCxDQUZELE1BRU87SUFDSCxJQUFBQywyQkFBQSxFQUFlO01BQ1hDLEtBQUssRUFBRUY7SUFESSxDQUFmO0VBR0g7O0VBRUQsSUFBTUcsTUFBTSxHQUFHSixNQUFNLEVBQXJCO0VBRUEsSUFBQUUsMkJBQUEsRUFBZSxJQUFmO0VBRUEsT0FBT0UsTUFBUDtBQUNIIn0=
@@ -0,0 +1 @@
1
+ export {};
package/dist/useElmish.js CHANGED
@@ -9,6 +9,8 @@ exports.useElmish = useElmish;
9
9
 
10
10
  var _react = require("react");
11
11
 
12
+ var _Common = require("./Common");
13
+
12
14
  var _Init = require("./Init");
13
15
 
14
16
  var _fakeOptions = require("./Testing/fakeOptions");
@@ -55,34 +57,25 @@ function useElmish(_ref) {
55
57
  model = _useState2[0],
56
58
  setModel = _useState2[1];
57
59
 
58
- var initializedModel = model;
59
60
  var propsRef = (0, _react.useRef)(props);
61
+ var isMountedRef = (0, _react.useRef)(true);
62
+ (0, _react.useEffect)(function () {
63
+ return function () {
64
+ isMountedRef.current = false;
65
+ };
66
+ }, []);
67
+ var initializedModel = model;
60
68
 
61
69
  if (propsRef.current !== props) {
62
70
  propsRef.current = props;
63
71
  }
64
72
 
65
- var execCmd = (0, _react.useCallback)(function (cmd) {
66
- cmd.forEach(function (call) {
67
- try {
68
- call(dispatch);
69
- } catch (ex) {
70
- var _Services$logger;
71
-
72
- (_Services$logger = _Init.Services.logger) === null || _Services$logger === void 0 ? void 0 : _Services$logger.error(ex);
73
- }
74
- });
75
- }, []);
76
73
  var fakeOptions = (0, _fakeOptions.getFakeOptionsOnce)();
77
74
  var dispatch = (0, _react.useCallback)((_fakeOptions$dispatch = fakeOptions === null || fakeOptions === void 0 ? void 0 : fakeOptions.dispatch) !== null && _fakeOptions$dispatch !== void 0 ? _fakeOptions$dispatch : function (msg) {
78
75
  if (!initializedModel) {
79
76
  return;
80
77
  }
81
78
 
82
- var modelHasChanged = function modelHasChanged(updatedModel) {
83
- return updatedModel !== initializedModel && Object.getOwnPropertyNames(updatedModel).length > 0;
84
- };
85
-
86
79
  if (reentered) {
87
80
  buffer.push(msg);
88
81
  } else {
@@ -91,33 +84,20 @@ function useElmish(_ref) {
91
84
  var modified = false;
92
85
 
93
86
  while (nextMsg) {
94
- var _Services$logger2, _Services$logger3;
87
+ (0, _Common.logMessage)(name, nextMsg);
95
88
 
96
- (_Services$logger2 = _Init.Services.logger) === null || _Services$logger2 === void 0 ? void 0 : _Services$logger2.info("Elm", "message from", name, nextMsg.name);
97
- (_Services$logger3 = _Init.Services.logger) === null || _Services$logger3 === void 0 ? void 0 : _Services$logger3.debug("Elm", "message from", name, nextMsg);
89
+ var _callUpdate = callUpdate(update, nextMsg, _objectSpread(_objectSpread({}, initializedModel), currentModel), propsRef.current),
90
+ _callUpdate2 = _slicedToArray(_callUpdate, 2),
91
+ newModel = _callUpdate2[0],
92
+ cmd = _callUpdate2[1];
98
93
 
99
- if (_Init.Services.dispatchMiddleware) {
100
- _Init.Services.dispatchMiddleware(nextMsg);
94
+ if ((0, _Common.modelHasChanged)(currentModel, newModel)) {
95
+ currentModel = _objectSpread(_objectSpread({}, currentModel), newModel);
96
+ modified = true;
101
97
  }
102
98
 
103
- try {
104
- var _callUpdate = callUpdate(update, nextMsg, _objectSpread(_objectSpread({}, initializedModel), currentModel), propsRef.current),
105
- _callUpdate2 = _slicedToArray(_callUpdate, 2),
106
- newModel = _callUpdate2[0],
107
- cmd = _callUpdate2[1];
108
-
109
- if (modelHasChanged(newModel)) {
110
- currentModel = _objectSpread(_objectSpread({}, currentModel), newModel);
111
- modified = true;
112
- }
113
-
114
- if (cmd) {
115
- execCmd(cmd);
116
- }
117
- } catch (ex) {
118
- var _Services$logger4;
119
-
120
- (_Services$logger4 = _Init.Services.logger) === null || _Services$logger4 === void 0 ? void 0 : _Services$logger4.error(ex);
99
+ if (cmd) {
100
+ (0, _Common.execCmd)(cmd, dispatch);
121
101
  }
122
102
 
123
103
  nextMsg = buffer.shift();
@@ -125,13 +105,13 @@ function useElmish(_ref) {
125
105
 
126
106
  reentered = false;
127
107
 
128
- if (modified) {
108
+ if (isMountedRef.current && modified) {
129
109
  setModel(function (prevModel) {
130
- var _Services$logger5;
110
+ var _Services$logger;
131
111
 
132
112
  var updatedModel = _objectSpread(_objectSpread({}, prevModel), currentModel);
133
113
 
134
- (_Services$logger5 = _Init.Services.logger) === null || _Services$logger5 === void 0 ? void 0 : _Services$logger5.debug("Elm", "update model for", name, updatedModel);
114
+ (_Services$logger = _Init.Services.logger) === null || _Services$logger === void 0 ? void 0 : _Services$logger.debug("Elm", "update model for", name, updatedModel);
135
115
  return updatedModel;
136
116
  });
137
117
  }
@@ -148,7 +128,7 @@ function useElmish(_ref) {
148
128
  setModel(initializedModel);
149
129
 
150
130
  if (initCmd) {
151
- execCmd(initCmd);
131
+ (0, _Common.execCmd)(initCmd, dispatch);
152
132
  }
153
133
  }
154
134
 
@@ -159,7 +139,7 @@ function useElmish(_ref) {
159
139
  subCmd = _subscription2[0],
160
140
  destructor = _subscription2[1];
161
141
 
162
- execCmd(subCmd);
142
+ (0, _Common.execCmd)(subCmd, dispatch);
163
143
 
164
144
  if (destructor) {
165
145
  return destructor;
@@ -183,4 +163,4 @@ function callUpdateMap(updateMap, msg, model, props) {
183
163
  var updateFn = updateMap[msg.name];
184
164
  return updateFn(msg, model, props);
185
165
  }
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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
166
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFbG1pc2giLCJuYW1lIiwicHJvcHMiLCJpbml0IiwidXBkYXRlIiwic3Vic2NyaXB0aW9uIiwicmVlbnRlcmVkIiwiYnVmZmVyIiwiY3VycmVudE1vZGVsIiwidXNlU3RhdGUiLCJtb2RlbCIsInNldE1vZGVsIiwicHJvcHNSZWYiLCJ1c2VSZWYiLCJpc01vdW50ZWRSZWYiLCJ1c2VFZmZlY3QiLCJjdXJyZW50IiwiaW5pdGlhbGl6ZWRNb2RlbCIsImZha2VPcHRpb25zIiwiZ2V0RmFrZU9wdGlvbnNPbmNlIiwiZGlzcGF0Y2giLCJ1c2VDYWxsYmFjayIsIm1zZyIsInB1c2giLCJuZXh0TXNnIiwibW9kaWZpZWQiLCJsb2dNZXNzYWdlIiwiY2FsbFVwZGF0ZSIsIm5ld01vZGVsIiwiY21kIiwibW9kZWxIYXNDaGFuZ2VkIiwiZXhlY0NtZCIsInNoaWZ0IiwicHJldk1vZGVsIiwidXBkYXRlZE1vZGVsIiwiU2VydmljZXMiLCJsb2dnZXIiLCJkZWJ1ZyIsImluaXRNb2RlbCIsImluaXRDbWQiLCJzdWJDbWQiLCJkZXN0cnVjdG9yIiwiY2FsbFVwZGF0ZU1hcCIsInVwZGF0ZU1hcCIsInVwZGF0ZUZuIl0sInNvdXJjZXMiOlsiLi4vc3JjL3VzZUVsbWlzaC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHMgKi9cbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IENtZCwgRGlzcGF0Y2ggfSBmcm9tIFwiLi9DbWRcIjtcbmltcG9ydCB7IGV4ZWNDbWQsIGxvZ01lc3NhZ2UsIG1vZGVsSGFzQ2hhbmdlZCB9IGZyb20gXCIuL0NvbW1vblwiO1xuaW1wb3J0IHsgU2VydmljZXMgfSBmcm9tIFwiLi9Jbml0XCI7XG5pbXBvcnQgeyBnZXRGYWtlT3B0aW9uc09uY2UgfSBmcm9tIFwiLi9UZXN0aW5nL2Zha2VPcHRpb25zXCI7XG5pbXBvcnQgeyBJbml0RnVuY3Rpb24sIE1lc3NhZ2VCYXNlLCBOdWxsYWJsZSwgVXBkYXRlRnVuY3Rpb24sIFVwZGF0ZU1hcCwgVXBkYXRlUmV0dXJuVHlwZSB9IGZyb20gXCIuL1R5cGVzXCI7XG5cbi8qKlxuICogVGhlIHJldHVybiB0eXBlIG9mIHRoZSBgc3Vic2NyaXB0aW9uYCBmdW5jdGlvbi5cbiAqIEB0ZW1wbGF0ZSBUTWVzc2FnZSBUaGUgdHlwZSBvZiB0aGUgbWVzc2FnZXMgZGlzY3JpbWluYXRlZCB1bmlvbi5cbiAqL1xudHlwZSBTdWJzY3JpcHRpb25SZXN1bHQ8VE1lc3NhZ2U+ID0gW0NtZDxUTWVzc2FnZT4sICgoKSA9PiB2b2lkKT9dO1xudHlwZSBTdWJzY3JpcHRpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiA9IChtb2RlbDogVE1vZGVsLCBwcm9wczogVFByb3BzKSA9PiBTdWJzY3JpcHRpb25SZXN1bHQ8VE1lc3NhZ2U+O1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHRoZSBgdXNlRWxtaXNoYCBob29rLlxuICogQGludGVyZmFjZSBVc2VFbG1pc2hPcHRpb25zXG4gKiBAdGVtcGxhdGUgVFByb3BzIFRoZSB0eXBlIG9mIHRoZSBwcm9wcy5cbiAqIEB0ZW1wbGF0ZSBUTW9kZWwgVGhlIHR5cGUgb2YgdGhlIG1vZGVsLlxuICogQHRlbXBsYXRlIFRNZXNzYWdlIFRoZSB0eXBlIG9mIHRoZSBtZXNzYWdlcyBkaXNjcmltaW5hdGVkIHVuaW9uLlxuICovXG5pbnRlcmZhY2UgVXNlRWxtaXNoT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlQmFzZT4ge1xuICAgIC8qKlxuICAgICAqIFRoZSBuYW1lIG9mIHRoZSBjb21wb25lbnQuIFRoaXMgaXMgdXNlZCBmb3IgbG9nZ2luZyBvbmx5LlxuICAgICAqIEB0eXBlIHtzdHJpbmd9XG4gICAgICovXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIC8qKlxuICAgICAqIFRoZSBwcm9wcyBwYXNzZWQgdG8gdGhlIGNvbXBvbmVudC5cbiAgICAgKiBAdHlwZSB7VFByb3BzfVxuICAgICAqL1xuICAgIHByb3BzOiBUUHJvcHMsXG4gICAgLyoqXG4gICAgICogVGhlIGZ1bmN0aW9uIHRvIGluaXRpYWxpemUgdGhlIGNvbXBvbmVudHMgbW9kZWwuIFRoaXMgZnVuY3Rpb24gaXMgb25seSBjYWxsZWQgb25jZS5cbiAgICAgKiBAdHlwZSB7SW5pdEZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT59XG4gICAgICovXG4gICAgaW5pdDogSW5pdEZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG4gICAgLyoqXG4gICAgICogVGhlIGB1cGRhdGVgIGZ1bmN0aW9uIG9yIHVwZGF0ZSBtYXAgb2JqZWN0LlxuICAgICAqIEB0eXBlIHsoVXBkYXRlRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiB8IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+KX1cbiAgICAgKi9cbiAgICB1cGRhdGU6IFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPixcbiAgICAvKipcbiAgICAgKiBUaGUgb3B0aW9uYWwgYHN1YnNjcmlwdGlvbmAgZnVuY3Rpb24uIFRoaXMgZnVuY3Rpb24gaXMgb25seSBjYWxsZWQgb25jZS5cbiAgICAgKiBAdHlwZSB7KFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPil9XG4gICAgICovXG4gICAgc3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG59XG5cbi8qKlxuICogSG9vayB0byB1c2UgdGhlIEVsbSBhcmNoaXRlY3R1cmUgcGF0dGVybiBpbiBhIGZ1bmN0aW9uIGNvbXBvbmVudC5cbiAqIEBwYXJhbSB7VXNlRWxtaXNoT3B0aW9uc30gb3B0aW9ucyBUaGUgb3B0aW9ucyBwYXNzZWQgdGhlIHRoZSBob29rLlxuICogQHJldHVybnMgQSB0dXBsZSBjb250YWluaW5nIHRoZSBjdXJyZW50IG1vZGVsIGFuZCB0aGUgZGlzcGF0Y2hlci5cbiAqIEBleGFtcGxlXG4gKiBjb25zdCBbbW9kZWwsIGRpc3BhdGNoXSA9IHVzZUVsbWlzaCh7IHByb3BzLCBpbml0LCB1cGRhdGUsIG5hbWU6IFwiTXlDb21wb25lbnRcIiB9KTtcbiAqL1xuZnVuY3Rpb24gdXNlRWxtaXNoPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2VCYXNlPiAoeyBuYW1lLCBwcm9wcywgaW5pdCwgdXBkYXRlLCBzdWJzY3JpcHRpb24gfTogVXNlRWxtaXNoT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+KTogW1RNb2RlbCwgRGlzcGF0Y2g8VE1lc3NhZ2U+XSB7XG4gICAgbGV0IHJlZW50ZXJlZCA9IGZhbHNlO1xuICAgIGNvbnN0IGJ1ZmZlcjogVE1lc3NhZ2UgW10gPSBbXTtcbiAgICBsZXQgY3VycmVudE1vZGVsOiBQYXJ0aWFsPFRNb2RlbD4gPSB7fTtcblxuICAgIGNvbnN0IFttb2RlbCwgc2V0TW9kZWxdID0gdXNlU3RhdGU8TnVsbGFibGU8VE1vZGVsPj4obnVsbCk7XG4gICAgY29uc3QgcHJvcHNSZWYgPSB1c2VSZWYocHJvcHMpO1xuICAgIGNvbnN0IGlzTW91bnRlZFJlZiA9IHVzZVJlZih0cnVlKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiAoKSA9PiB7XG4gICAgICAgIGlzTW91bnRlZFJlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgfSwgW10pO1xuXG4gICAgbGV0IGluaXRpYWxpemVkTW9kZWwgPSBtb2RlbDtcblxuICAgIGlmIChwcm9wc1JlZi5jdXJyZW50ICE9PSBwcm9wcykge1xuICAgICAgICBwcm9wc1JlZi5jdXJyZW50ID0gcHJvcHM7XG4gICAgfVxuXG4gICAgY29uc3QgZmFrZU9wdGlvbnMgPSBnZXRGYWtlT3B0aW9uc09uY2UoKTtcbiAgICBjb25zdCBkaXNwYXRjaCA9IHVzZUNhbGxiYWNrKGZha2VPcHRpb25zPy5kaXNwYXRjaCA/PyAoKG1zZzogVE1lc3NhZ2UpOiB2b2lkID0+IHtcbiAgICAgICAgaWYgKCFpbml0aWFsaXplZE1vZGVsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVlbnRlcmVkKSB7XG4gICAgICAgICAgICBidWZmZXIucHVzaChtc2cpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVlbnRlcmVkID0gdHJ1ZTtcblxuICAgICAgICAgICAgbGV0IG5leHRNc2c6IFRNZXNzYWdlIHwgdW5kZWZpbmVkID0gbXNnO1xuICAgICAgICAgICAgbGV0IG1vZGlmaWVkID0gZmFsc2U7XG5cbiAgICAgICAgICAgIHdoaWxlIChuZXh0TXNnKSB7XG4gICAgICAgICAgICAgICAgbG9nTWVzc2FnZShuYW1lLCBuZXh0TXNnKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IFtuZXdNb2RlbCwgY21kXSA9IGNhbGxVcGRhdGUodXBkYXRlLCBuZXh0TXNnLCB7IC4uLmluaXRpYWxpemVkTW9kZWwsIC4uLmN1cnJlbnRNb2RlbCB9LCBwcm9wc1JlZi5jdXJyZW50KTtcblxuICAgICAgICAgICAgICAgIGlmIChtb2RlbEhhc0NoYW5nZWQoY3VycmVudE1vZGVsLCBuZXdNb2RlbCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudE1vZGVsID0geyAuLi5jdXJyZW50TW9kZWwsIC4uLm5ld01vZGVsIH07XG5cbiAgICAgICAgICAgICAgICAgICAgbW9kaWZpZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChjbWQpIHtcbiAgICAgICAgICAgICAgICAgICAgZXhlY0NtZChjbWQsIGRpc3BhdGNoKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBuZXh0TXNnID0gYnVmZmVyLnNoaWZ0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZWVudGVyZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgaWYgKGlzTW91bnRlZFJlZi5jdXJyZW50ICYmIG1vZGlmaWVkKSB7XG4gICAgICAgICAgICAgICAgc2V0TW9kZWwocHJldk1vZGVsID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdXBkYXRlZE1vZGVsID0geyAuLi5wcmV2TW9kZWwgYXMgVE1vZGVsLCAuLi5jdXJyZW50TW9kZWwgfTtcblxuICAgICAgICAgICAgICAgICAgICBTZXJ2aWNlcy5sb2dnZXI/LmRlYnVnKFwiRWxtXCIsIFwidXBkYXRlIG1vZGVsIGZvclwiLCBuYW1lLCB1cGRhdGVkTW9kZWwpO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB1cGRhdGVkTW9kZWw7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KSwgW10pO1xuXG4gICAgaWYgKCFpbml0aWFsaXplZE1vZGVsKSB7XG4gICAgICAgIGNvbnN0IFtpbml0TW9kZWwsIGluaXRDbWRdID0gZmFrZU9wdGlvbnM/Lm1vZGVsID8gW2Zha2VPcHRpb25zLm1vZGVsIGFzIFRNb2RlbF0gOiBpbml0KHByb3BzKTtcblxuICAgICAgICBpbml0aWFsaXplZE1vZGVsID0gaW5pdE1vZGVsO1xuICAgICAgICBzZXRNb2RlbChpbml0aWFsaXplZE1vZGVsKTtcblxuICAgICAgICBpZiAoaW5pdENtZCkge1xuICAgICAgICAgICAgZXhlY0NtZChpbml0Q21kLCBkaXNwYXRjaCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoc3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICBjb25zdCBbc3ViQ21kLCBkZXN0cnVjdG9yXSA9IHN1YnNjcmlwdGlvbihpbml0aWFsaXplZE1vZGVsIGFzIFRNb2RlbCwgcHJvcHMpO1xuXG4gICAgICAgICAgICBleGVjQ21kKHN1YkNtZCwgZGlzcGF0Y2gpO1xuXG4gICAgICAgICAgICBpZiAoZGVzdHJ1Y3Rvcikge1xuICAgICAgICAgICAgICAgIHJldHVybiBkZXN0cnVjdG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSwgW10pO1xuXG4gICAgcmV0dXJuIFtpbml0aWFsaXplZE1vZGVsLCBkaXNwYXRjaF07XG59XG5cbmZ1bmN0aW9uIGNhbGxVcGRhdGU8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZUJhc2U+ICh1cGRhdGU6IFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiwgbXNnOiBUTWVzc2FnZSwgbW9kZWw6IFRNb2RlbCwgcHJvcHM6IFRQcm9wcyk6IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTWVzc2FnZT4ge1xuICAgIGlmICh0eXBlb2YgdXBkYXRlID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZShtb2RlbCwgbXNnLCBwcm9wcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNhbGxVcGRhdGVNYXAodXBkYXRlLCBtc2csIG1vZGVsLCBwcm9wcyk7XG59XG5cbmZ1bmN0aW9uIGNhbGxVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZUJhc2U+ICh1cGRhdGVNYXA6IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LCBtc2c6IFRNZXNzYWdlLCBtb2RlbDogVE1vZGVsLCBwcm9wczogVFByb3BzKTogVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgLS0gV2Uga25vdyB0aGF0IG1zZyBmaXRzXG4gICAgY29uc3QgdXBkYXRlRm4gPSB1cGRhdGVNYXBbbXNnLm5hbWUgYXMgVE1lc3NhZ2VbXCJuYW1lXCJdXSBhcyAobXNnOiBUTWVzc2FnZSwgbW9kZWw6IFRNb2RlbCwgcHJvcHM6IFRQcm9wcykgPT4gVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNc2c+O1xuXG4gICAgcmV0dXJuIHVwZGF0ZUZuKG1zZywgbW9kZWwsIHByb3BzKTtcbn1cblxuZXhwb3J0IHR5cGUge1xuICAgIFN1YnNjcmlwdGlvblJlc3VsdCxcbn07XG5cbmV4cG9ydCB7XG4gICAgdXNlRWxtaXNoLFxuICAgIGNhbGxVcGRhdGUsXG4gICAgY2FsbFVwZGF0ZU1hcCxcbn07Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE2Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxTQUFULE9BQXlMO0VBQUE7O0VBQUEsSUFBckhDLElBQXFILFFBQXJIQSxJQUFxSDtFQUFBLElBQS9HQyxLQUErRyxRQUEvR0EsS0FBK0c7RUFBQSxJQUF4R0MsSUFBd0csUUFBeEdBLElBQXdHO0VBQUEsSUFBbEdDLE1BQWtHLFFBQWxHQSxNQUFrRztFQUFBLElBQTFGQyxZQUEwRixRQUExRkEsWUFBMEY7RUFDckwsSUFBSUMsU0FBUyxHQUFHLEtBQWhCO0VBQ0EsSUFBTUMsTUFBbUIsR0FBRyxFQUE1QjtFQUNBLElBQUlDLFlBQTZCLEdBQUcsRUFBcEM7O0VBRUEsZ0JBQTBCLElBQUFDLGVBQUEsRUFBMkIsSUFBM0IsQ0FBMUI7RUFBQTtFQUFBLElBQU9DLEtBQVA7RUFBQSxJQUFjQyxRQUFkOztFQUNBLElBQU1DLFFBQVEsR0FBRyxJQUFBQyxhQUFBLEVBQU9YLEtBQVAsQ0FBakI7RUFDQSxJQUFNWSxZQUFZLEdBQUcsSUFBQUQsYUFBQSxFQUFPLElBQVAsQ0FBckI7RUFFQSxJQUFBRSxnQkFBQSxFQUFVO0lB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
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "react-elmish",
3
- "version": "4.2.1",
3
+ "version": "5.0.0-beta.1",
4
4
  "description": "Elmish for React using Typescript",
5
5
  "author": "atheck",
6
6
  "license": "MIT",
7
7
  "scripts": {
8
8
  "build": "npm run build:types && npm run build:js",
9
9
  "build:types": "tsc --emitDeclarationOnly --project ./src",
10
- "build:js": "babel src --out-dir dist --extensions \".ts,.tsx\" --source-maps inline",
10
+ "build:js": "babel src --out-dir dist --extensions \".ts,.tsx\" --ignore \"./**/*.spec.ts\",\"./**/*.spec.tsx\" --source-maps inline",
11
11
  "test": "jest --coverage",
12
12
  "test:watch": "jest --watch --coverage",
13
13
  "lint": "npx eslint \"{src,tests}/**/*.ts[x]\"",
@@ -19,21 +19,21 @@
19
19
  },
20
20
  "devDependencies": {
21
21
  "@babel/cli": "7.18.10",
22
- "@babel/core": "7.18.10",
22
+ "@babel/core": "7.18.13",
23
23
  "@babel/plugin-proposal-class-properties": "7.18.6",
24
24
  "@babel/preset-env": "7.18.10",
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.7",
28
+ "@types/jest": "28.1.8",
29
29
  "@types/react": "18.0.17",
30
30
  "eslint": "8.22.0",
31
- "eslint-config-heck": "1.22.1",
31
+ "eslint-config-heck": "1.22.3",
32
32
  "jest": "28.1.3",
33
33
  "jest-environment-jsdom": "28.1.3",
34
- "semantic-release": "19.0.3",
34
+ "semantic-release": "19.0.5",
35
35
  "ts-jest": "28.0.8",
36
- "typescript": "4.7.4"
36
+ "typescript": "4.8.2"
37
37
  },
38
38
  "homepage": "https://github.com/atheck/react-elmish",
39
39
  "repository": {