react-elmish 5.0.1 → 5.1.1-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/dist/index.js CHANGED
@@ -45,14 +45,9 @@ Object.defineProperty(exports, "useElmish", {
45
45
  return _useElmish.useElmish;
46
46
  }
47
47
  });
48
-
49
48
  var _Cmd = require("./Cmd");
50
-
51
49
  var _ElmComponent = require("./ElmComponent");
52
-
53
50
  var _ErrorHandling = require("./ErrorHandling");
54
-
55
51
  var _Init = require("./Init");
56
-
57
52
  var _useElmish = require("./useElmish");
58
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENtZCwgY3JlYXRlQ21kLCBEaXNwYXRjaCB9IGZyb20gXCIuL0NtZFwiO1xuaW1wb3J0IHsgRWxtQ29tcG9uZW50IH0gZnJvbSBcIi4vRWxtQ29tcG9uZW50XCI7XG5pbXBvcnQgeyBlcnJvckhhbmRsZXIsIEVycm9yTWVzc2FnZSwgZXJyb3JNc2csIGhhbmRsZUVycm9yIH0gZnJvbSBcIi4vRXJyb3JIYW5kbGluZ1wiO1xuaW1wb3J0IHsgaW5pdCwgTG9nZ2VyLCBNZXNzYWdlIH0gZnJvbSBcIi4vSW5pdFwiO1xuaW1wb3J0IHsgSW5pdFJlc3VsdCwgTXNnU291cmNlLCBVcGRhdGVNYXAsIFVwZGF0ZVJldHVyblR5cGUgfSBmcm9tIFwiLi9UeXBlc1wiO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uUmVzdWx0LCB1c2VFbG1pc2ggfSBmcm9tIFwiLi91c2VFbG1pc2hcIjtcblxuZXhwb3J0IHR5cGUge1xuICAgIExvZ2dlcixcbiAgICBNZXNzYWdlLFxuICAgIENtZCxcbiAgICBEaXNwYXRjaCxcbiAgICBJbml0UmVzdWx0LFxuICAgIFVwZGF0ZVJldHVyblR5cGUsXG4gICAgU3Vic2NyaXB0aW9uUmVzdWx0LFxuICAgIE1zZ1NvdXJjZSxcbiAgICBVcGRhdGVNYXAsXG4gICAgRXJyb3JNZXNzYWdlLFxufTtcblxuZXhwb3J0IHtcbiAgICBpbml0LFxuICAgIGNyZWF0ZUNtZCxcbiAgICBFbG1Db21wb25lbnQsXG4gICAgZXJyb3JNc2csXG4gICAgZXJyb3JIYW5kbGVyLFxuICAgIGhhbmRsZUVycm9yLFxuICAgIHVzZUVsbWlzaCxcbn07Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQSJ9
53
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENtZCwgY3JlYXRlQ21kLCBEaXNwYXRjaCB9IGZyb20gXCIuL0NtZFwiO1xuaW1wb3J0IHsgRWxtQ29tcG9uZW50IH0gZnJvbSBcIi4vRWxtQ29tcG9uZW50XCI7XG5pbXBvcnQgeyBlcnJvckhhbmRsZXIsIEVycm9yTWVzc2FnZSwgZXJyb3JNc2csIGhhbmRsZUVycm9yIH0gZnJvbSBcIi4vRXJyb3JIYW5kbGluZ1wiO1xuaW1wb3J0IHsgaW5pdCwgTG9nZ2VyLCBNZXNzYWdlIH0gZnJvbSBcIi4vSW5pdFwiO1xuaW1wb3J0IHsgSW5pdFJlc3VsdCwgTXNnU291cmNlLCBVcGRhdGVNYXAsIFVwZGF0ZVJldHVyblR5cGUgfSBmcm9tIFwiLi9UeXBlc1wiO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uUmVzdWx0LCB1c2VFbG1pc2ggfSBmcm9tIFwiLi91c2VFbG1pc2hcIjtcblxuZXhwb3J0IHR5cGUge1xuICAgIExvZ2dlcixcbiAgICBNZXNzYWdlLFxuICAgIENtZCxcbiAgICBEaXNwYXRjaCxcbiAgICBJbml0UmVzdWx0LFxuICAgIFVwZGF0ZVJldHVyblR5cGUsXG4gICAgU3Vic2NyaXB0aW9uUmVzdWx0LFxuICAgIE1zZ1NvdXJjZSxcbiAgICBVcGRhdGVNYXAsXG4gICAgRXJyb3JNZXNzYWdlLFxufTtcblxuZXhwb3J0IHtcbiAgICBpbml0LFxuICAgIGNyZWF0ZUNtZCxcbiAgICBFbG1Db21wb25lbnQsXG4gICAgZXJyb3JNc2csXG4gICAgZXJyb3JIYW5kbGVyLFxuICAgIGhhbmRsZUVycm9yLFxuICAgIHVzZUVsbWlzaCxcbn07Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBRUEifQ==
package/dist/useElmish.js CHANGED
@@ -6,33 +6,19 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.callUpdate = callUpdate;
7
7
  exports.callUpdateMap = callUpdateMap;
8
8
  exports.useElmish = useElmish;
9
-
10
9
  var _react = require("react");
11
-
12
10
  var _Common = require("./Common");
13
-
14
11
  var _Init = require("./Init");
15
-
16
12
  var _fakeOptions = require("./Testing/fakeOptions");
17
-
18
13
  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; }
19
-
20
14
  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; }
21
-
22
15
  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; }
23
-
24
16
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
25
-
26
17
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
27
-
28
18
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
29
-
30
19
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
31
-
32
20
  function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
33
-
34
21
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
35
-
36
22
  /**
37
23
  * Hook to use the Elm architecture pattern in a function component.
38
24
  * @param {UseElmishOptions} options The options passed the the hook.
@@ -42,21 +28,18 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
42
28
  */
43
29
  function useElmish(_ref) {
44
30
  var _fakeOptions$dispatch;
45
-
46
31
  var name = _ref.name,
47
- props = _ref.props,
48
- init = _ref.init,
49
- update = _ref.update,
50
- subscription = _ref.subscription;
32
+ props = _ref.props,
33
+ init = _ref.init,
34
+ update = _ref.update,
35
+ subscription = _ref.subscription;
51
36
  var reentered = false;
52
37
  var buffer = [];
53
38
  var currentModel = {};
54
-
55
39
  var _useState = (0, _react.useState)(null),
56
- _useState2 = _slicedToArray(_useState, 2),
57
- model = _useState2[0],
58
- setModel = _useState2[1];
59
-
40
+ _useState2 = _slicedToArray(_useState, 2),
41
+ model = _useState2[0],
42
+ setModel = _useState2[1];
60
43
  var propsRef = (0, _react.useRef)(props);
61
44
  var isMountedRef = (0, _react.useRef)(true);
62
45
  (0, _react.useEffect)(function () {
@@ -66,82 +49,66 @@ function useElmish(_ref) {
66
49
  };
67
50
  }, []);
68
51
  var initializedModel = model;
69
-
70
52
  if (propsRef.current !== props) {
71
53
  propsRef.current = props;
72
54
  }
73
-
74
55
  var fakeOptions = (0, _fakeOptions.getFakeOptionsOnce)();
75
56
  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) {
76
57
  if (!initializedModel) {
77
58
  return;
78
59
  }
79
-
80
60
  if (reentered) {
81
61
  buffer.push(msg);
82
62
  } else {
83
63
  reentered = true;
84
64
  var nextMsg = msg;
85
65
  var modified = false;
86
-
87
66
  while (nextMsg) {
88
67
  (0, _Common.logMessage)(name, nextMsg);
89
-
90
68
  var _callUpdate = callUpdate(update, nextMsg, _objectSpread(_objectSpread({}, initializedModel), currentModel), propsRef.current),
91
- _callUpdate2 = _slicedToArray(_callUpdate, 2),
92
- newModel = _callUpdate2[0],
93
- cmd = _callUpdate2[1];
94
-
69
+ _callUpdate2 = _slicedToArray(_callUpdate, 2),
70
+ newModel = _callUpdate2[0],
71
+ cmd = _callUpdate2[1];
95
72
  if ((0, _Common.modelHasChanged)(currentModel, newModel)) {
96
73
  currentModel = _objectSpread(_objectSpread({}, currentModel), newModel);
97
74
  modified = true;
98
75
  }
99
-
100
76
  if (cmd) {
101
77
  (0, _Common.execCmd)(cmd, dispatch);
102
78
  }
103
-
104
79
  nextMsg = buffer.shift();
105
80
  }
106
-
107
81
  reentered = false;
108
-
109
82
  if (isMountedRef.current && modified) {
110
83
  setModel(function (prevModel) {
111
84
  var _Services$logger;
112
-
113
85
  var updatedModel = _objectSpread(_objectSpread({}, prevModel), currentModel);
114
-
115
86
  (_Services$logger = _Init.Services.logger) === null || _Services$logger === void 0 ? void 0 : _Services$logger.debug("Elm", "update model for", name, updatedModel);
116
87
  return updatedModel;
117
88
  });
118
89
  }
119
90
  }
120
91
  }, []);
121
-
122
92
  if (!initializedModel) {
93
+ var _Services$logger2;
123
94
  var _ref2 = fakeOptions !== null && fakeOptions !== void 0 && fakeOptions.model ? [fakeOptions.model] : init(props),
124
- _ref3 = _slicedToArray(_ref2, 2),
125
- initModel = _ref3[0],
126
- initCmd = _ref3[1];
127
-
95
+ _ref3 = _slicedToArray(_ref2, 2),
96
+ initModel = _ref3[0],
97
+ initCmd = _ref3[1];
128
98
  initializedModel = initModel;
129
99
  setModel(initializedModel);
130
-
100
+ (_Services$logger2 = _Init.Services.logger) === null || _Services$logger2 === void 0 ? void 0 : _Services$logger2.debug("Elm", "initial model for", name, initializedModel);
131
101
  if (initCmd) {
132
102
  (0, _Common.execCmd)(initCmd, dispatch);
133
103
  }
134
104
  }
135
-
136
105
  (0, _react.useEffect)(function () {
137
106
  if (subscription) {
138
107
  var _subscription = subscription(initializedModel, props),
139
- _subscription2 = _slicedToArray(_subscription, 2),
140
- subCmd = _subscription2[0],
141
- destructor = _subscription2[1];
142
-
108
+ _subscription2 = _slicedToArray(_subscription, 2),
109
+ subCmd = _subscription2[0],
110
+ destructor = _subscription2[1];
143
111
  (0, _Common.execCmd)(subCmd, dispatch);
144
-
145
112
  if (destructor) {
146
113
  return destructor;
147
114
  }
@@ -149,19 +116,16 @@ function useElmish(_ref) {
149
116
  }, []);
150
117
  return [initializedModel, dispatch];
151
118
  }
152
-
153
119
  function callUpdate(update, msg, model, props) {
154
120
  if (typeof update === "function") {
155
121
  return update(model, msg, props);
156
122
  }
157
-
158
123
  return callUpdateMap(update, msg, model, props);
159
124
  }
160
-
161
125
  function callUpdateMap(updateMap, msg, model, props) {
162
126
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
163
127
  // @ts-expect-error -- We know that msg fits
164
128
  var updateFn = updateMap[msg.name];
165
129
  return updateFn(msg, model, props);
166
130
  }
167
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFbG1pc2giLCJuYW1lIiwicHJvcHMiLCJpbml0IiwidXBkYXRlIiwic3Vic2NyaXB0aW9uIiwicmVlbnRlcmVkIiwiYnVmZmVyIiwiY3VycmVudE1vZGVsIiwidXNlU3RhdGUiLCJtb2RlbCIsInNldE1vZGVsIiwicHJvcHNSZWYiLCJ1c2VSZWYiLCJpc01vdW50ZWRSZWYiLCJ1c2VFZmZlY3QiLCJjdXJyZW50IiwiaW5pdGlhbGl6ZWRNb2RlbCIsImZha2VPcHRpb25zIiwiZ2V0RmFrZU9wdGlvbnNPbmNlIiwiZGlzcGF0Y2giLCJ1c2VDYWxsYmFjayIsIm1zZyIsInB1c2giLCJuZXh0TXNnIiwibW9kaWZpZWQiLCJsb2dNZXNzYWdlIiwiY2FsbFVwZGF0ZSIsIm5ld01vZGVsIiwiY21kIiwibW9kZWxIYXNDaGFuZ2VkIiwiZXhlY0NtZCIsInNoaWZ0IiwicHJldk1vZGVsIiwidXBkYXRlZE1vZGVsIiwiU2VydmljZXMiLCJsb2dnZXIiLCJkZWJ1ZyIsImluaXRNb2RlbCIsImluaXRDbWQiLCJzdWJDbWQiLCJkZXN0cnVjdG9yIiwiY2FsbFVwZGF0ZU1hcCIsInVwZGF0ZU1hcCIsInVwZGF0ZUZuIl0sInNvdXJjZXMiOlsiLi4vc3JjL3VzZUVsbWlzaC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHMgKi9cbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IENtZCwgRGlzcGF0Y2ggfSBmcm9tIFwiLi9DbWRcIjtcbmltcG9ydCB7IGV4ZWNDbWQsIGxvZ01lc3NhZ2UsIG1vZGVsSGFzQ2hhbmdlZCB9IGZyb20gXCIuL0NvbW1vblwiO1xuaW1wb3J0IHsgU2VydmljZXMgfSBmcm9tIFwiLi9Jbml0XCI7XG5pbXBvcnQgeyBnZXRGYWtlT3B0aW9uc09uY2UgfSBmcm9tIFwiLi9UZXN0aW5nL2Zha2VPcHRpb25zXCI7XG5pbXBvcnQgeyBJbml0RnVuY3Rpb24sIE1lc3NhZ2VCYXNlLCBOdWxsYWJsZSwgVXBkYXRlRnVuY3Rpb24sIFVwZGF0ZU1hcCwgVXBkYXRlUmV0dXJuVHlwZSB9IGZyb20gXCIuL1R5cGVzXCI7XG5cbi8qKlxuICogVGhlIHJldHVybiB0eXBlIG9mIHRoZSBgc3Vic2NyaXB0aW9uYCBmdW5jdGlvbi5cbiAqIEB0ZW1wbGF0ZSBUTWVzc2FnZSBUaGUgdHlwZSBvZiB0aGUgbWVzc2FnZXMgZGlzY3JpbWluYXRlZCB1bmlvbi5cbiAqL1xudHlwZSBTdWJzY3JpcHRpb25SZXN1bHQ8VE1lc3NhZ2U+ID0gW0NtZDxUTWVzc2FnZT4sICgoKSA9PiB2b2lkKT9dO1xudHlwZSBTdWJzY3JpcHRpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiA9IChtb2RlbDogVE1vZGVsLCBwcm9wczogVFByb3BzKSA9PiBTdWJzY3JpcHRpb25SZXN1bHQ8VE1lc3NhZ2U+O1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHRoZSBgdXNlRWxtaXNoYCBob29rLlxuICogQGludGVyZmFjZSBVc2VFbG1pc2hPcHRpb25zXG4gKiBAdGVtcGxhdGUgVFByb3BzIFRoZSB0eXBlIG9mIHRoZSBwcm9wcy5cbiAqIEB0ZW1wbGF0ZSBUTW9kZWwgVGhlIHR5cGUgb2YgdGhlIG1vZGVsLlxuICogQHRlbXBsYXRlIFRNZXNzYWdlIFRoZSB0eXBlIG9mIHRoZSBtZXNzYWdlcyBkaXNjcmltaW5hdGVkIHVuaW9uLlxuICovXG5pbnRlcmZhY2UgVXNlRWxtaXNoT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlQmFzZT4ge1xuICAgIC8qKlxuICAgICAqIFRoZSBuYW1lIG9mIHRoZSBjb21wb25lbnQuIFRoaXMgaXMgdXNlZCBmb3IgbG9nZ2luZyBvbmx5LlxuICAgICAqIEB0eXBlIHtzdHJpbmd9XG4gICAgICovXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIC8qKlxuICAgICAqIFRoZSBwcm9wcyBwYXNzZWQgdG8gdGhlIGNvbXBvbmVudC5cbiAgICAgKiBAdHlwZSB7VFByb3BzfVxuICAgICAqL1xuICAgIHByb3BzOiBUUHJvcHMsXG4gICAgLyoqXG4gICAgICogVGhlIGZ1bmN0aW9uIHRvIGluaXRpYWxpemUgdGhlIGNvbXBvbmVudHMgbW9kZWwuIFRoaXMgZnVuY3Rpb24gaXMgb25seSBjYWxsZWQgb25jZS5cbiAgICAgKiBAdHlwZSB7SW5pdEZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT59XG4gICAgICovXG4gICAgaW5pdDogSW5pdEZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG4gICAgLyoqXG4gICAgICogVGhlIGB1cGRhdGVgIGZ1bmN0aW9uIG9yIHVwZGF0ZSBtYXAgb2JqZWN0LlxuICAgICAqIEB0eXBlIHsoVXBkYXRlRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiB8IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+KX1cbiAgICAgKi9cbiAgICB1cGRhdGU6IFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPixcbiAgICAvKipcbiAgICAgKiBUaGUgb3B0aW9uYWwgYHN1YnNjcmlwdGlvbmAgZnVuY3Rpb24uIFRoaXMgZnVuY3Rpb24gaXMgb25seSBjYWxsZWQgb25jZS5cbiAgICAgKiBAdHlwZSB7KFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPil9XG4gICAgICovXG4gICAgc3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG59XG5cbi8qKlxuICogSG9vayB0byB1c2UgdGhlIEVsbSBhcmNoaXRlY3R1cmUgcGF0dGVybiBpbiBhIGZ1bmN0aW9uIGNvbXBvbmVudC5cbiAqIEBwYXJhbSB7VXNlRWxtaXNoT3B0aW9uc30gb3B0aW9ucyBUaGUgb3B0aW9ucyBwYXNzZWQgdGhlIHRoZSBob29rLlxuICogQHJldHVybnMgQSB0dXBsZSBjb250YWluaW5nIHRoZSBjdXJyZW50IG1vZGVsIGFuZCB0aGUgZGlzcGF0Y2hlci5cbiAqIEBleGFtcGxlXG4gKiBjb25zdCBbbW9kZWwsIGRpc3BhdGNoXSA9IHVzZUVsbWlzaCh7IHByb3BzLCBpbml0LCB1cGRhdGUsIG5hbWU6IFwiTXlDb21wb25lbnRcIiB9KTtcbiAqL1xuZnVuY3Rpb24gdXNlRWxtaXNoPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2VCYXNlPiAoeyBuYW1lLCBwcm9wcywgaW5pdCwgdXBkYXRlLCBzdWJzY3JpcHRpb24gfTogVXNlRWxtaXNoT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+KTogW1RNb2RlbCwgRGlzcGF0Y2g8VE1lc3NhZ2U+XSB7XG4gICAgbGV0IHJlZW50ZXJlZCA9IGZhbHNlO1xuICAgIGNvbnN0IGJ1ZmZlcjogVE1lc3NhZ2UgW10gPSBbXTtcbiAgICBsZXQgY3VycmVudE1vZGVsOiBQYXJ0aWFsPFRNb2RlbD4gPSB7fTtcblxuICAgIGNvbnN0IFttb2RlbCwgc2V0TW9kZWxdID0gdXNlU3RhdGU8TnVsbGFibGU8VE1vZGVsPj4obnVsbCk7XG4gICAgY29uc3QgcHJvcHNSZWYgPSB1c2VSZWYocHJvcHMpO1xuICAgIGNvbnN0IGlzTW91bnRlZFJlZiA9IHVzZVJlZih0cnVlKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlzTW91bnRlZFJlZi5jdXJyZW50ID0gdHJ1ZTtcblxuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgaXNNb3VudGVkUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgfTtcbiAgICB9LCBbXSk7XG5cbiAgICBsZXQgaW5pdGlhbGl6ZWRNb2RlbCA9IG1vZGVsO1xuXG4gICAgaWYgKHByb3BzUmVmLmN1cnJlbnQgIT09IHByb3BzKSB7XG4gICAgICAgIHByb3BzUmVmLmN1cnJlbnQgPSBwcm9wcztcbiAgICB9XG5cbiAgICBjb25zdCBmYWtlT3B0aW9ucyA9IGdldEZha2VPcHRpb25zT25jZSgpO1xuICAgIGNvbnN0IGRpc3BhdGNoID0gdXNlQ2FsbGJhY2soZmFrZU9wdGlvbnM/LmRpc3BhdGNoID8/ICgobXNnOiBUTWVzc2FnZSk6IHZvaWQgPT4ge1xuICAgICAgICBpZiAoIWluaXRpYWxpemVkTW9kZWwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChyZWVudGVyZWQpIHtcbiAgICAgICAgICAgIGJ1ZmZlci5wdXNoKG1zZyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZWVudGVyZWQgPSB0cnVlO1xuXG4gICAgICAgICAgICBsZXQgbmV4dE1zZzogVE1lc3NhZ2UgfCB1bmRlZmluZWQgPSBtc2c7XG4gICAgICAgICAgICBsZXQgbW9kaWZpZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgd2hpbGUgKG5leHRNc2cpIHtcbiAgICAgICAgICAgICAgICBsb2dNZXNzYWdlKG5hbWUsIG5leHRNc2cpO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgW25ld01vZGVsLCBjbWRdID0gY2FsbFVwZGF0ZSh1cGRhdGUsIG5leHRNc2csIHsgLi4uaW5pdGlhbGl6ZWRNb2RlbCwgLi4uY3VycmVudE1vZGVsIH0sIHByb3BzUmVmLmN1cnJlbnQpO1xuXG4gICAgICAgICAgICAgICAgaWYgKG1vZGVsSGFzQ2hhbmdlZChjdXJyZW50TW9kZWwsIG5ld01vZGVsKSkge1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50TW9kZWwgPSB7IC4uLmN1cnJlbnRNb2RlbCwgLi4ubmV3TW9kZWwgfTtcblxuICAgICAgICAgICAgICAgICAgICBtb2RpZmllZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKGNtZCkge1xuICAgICAgICAgICAgICAgICAgICBleGVjQ21kKGNtZCwgZGlzcGF0Y2gpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIG5leHRNc2cgPSBidWZmZXIuc2hpZnQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlZW50ZXJlZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICBpZiAoaXNNb3VudGVkUmVmLmN1cnJlbnQgJiYgbW9kaWZpZWQpIHtcbiAgICAgICAgICAgICAgICBzZXRNb2RlbChwcmV2TW9kZWwgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVkTW9kZWwgPSB7IC4uLnByZXZNb2RlbCBhcyBUTW9kZWwsIC4uLmN1cnJlbnRNb2RlbCB9O1xuXG4gICAgICAgICAgICAgICAgICAgIFNlcnZpY2VzLmxvZ2dlcj8uZGVidWcoXCJFbG1cIiwgXCJ1cGRhdGUgbW9kZWwgZm9yXCIsIG5hbWUsIHVwZGF0ZWRNb2RlbCk7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVwZGF0ZWRNb2RlbDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pLCBbXSk7XG5cbiAgICBpZiAoIWluaXRpYWxpemVkTW9kZWwpIHtcbiAgICAgICAgY29uc3QgW2luaXRNb2RlbCwgaW5pdENtZF0gPSBmYWtlT3B0aW9ucz8ubW9kZWwgPyBbZmFrZU9wdGlvbnMubW9kZWwgYXMgVE1vZGVsXSA6IGluaXQocHJvcHMpO1xuXG4gICAgICAgIGluaXRpYWxpemVkTW9kZWwgPSBpbml0TW9kZWw7XG4gICAgICAgIHNldE1vZGVsKGluaXRpYWxpemVkTW9kZWwpO1xuXG4gICAgICAgIGlmIChpbml0Q21kKSB7XG4gICAgICAgICAgICBleGVjQ21kKGluaXRDbWQsIGRpc3BhdGNoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChzdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIGNvbnN0IFtzdWJDbWQsIGRlc3RydWN0b3JdID0gc3Vic2NyaXB0aW9uKGluaXRpYWxpemVkTW9kZWwgYXMgVE1vZGVsLCBwcm9wcyk7XG5cbiAgICAgICAgICAgIGV4ZWNDbWQoc3ViQ21kLCBkaXNwYXRjaCk7XG5cbiAgICAgICAgICAgIGlmIChkZXN0cnVjdG9yKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRlc3RydWN0b3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LCBbXSk7XG5cbiAgICByZXR1cm4gW2luaXRpYWxpemVkTW9kZWwsIGRpc3BhdGNoXTtcbn1cblxuZnVuY3Rpb24gY2FsbFVwZGF0ZTxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlQmFzZT4gKHVwZGF0ZTogVXBkYXRlRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiB8IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LCBtc2c6IFRNZXNzYWdlLCBtb2RlbDogVE1vZGVsLCBwcm9wczogVFByb3BzKTogVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPiB7XG4gICAgaWYgKHR5cGVvZiB1cGRhdGUgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICByZXR1cm4gdXBkYXRlKG1vZGVsLCBtc2csIHByb3BzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY2FsbFVwZGF0ZU1hcCh1cGRhdGUsIG1zZywgbW9kZWwsIHByb3BzKTtcbn1cblxuZnVuY3Rpb24gY2FsbFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlQmFzZT4gKHVwZGF0ZU1hcDogVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sIG1zZzogVE1lc3NhZ2UsIG1vZGVsOiBUTW9kZWwsIHByb3BzOiBUUHJvcHMpOiBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgVE1lc3NhZ2U+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciAtLSBXZSBrbm93IHRoYXQgbXNnIGZpdHNcbiAgICBjb25zdCB1cGRhdGVGbiA9IHVwZGF0ZU1hcFttc2cubmFtZSBhcyBUTWVzc2FnZVtcIm5hbWVcIl1dIGFzIChtc2c6IFRNZXNzYWdlLCBtb2RlbDogVE1vZGVsLCBwcm9wczogVFByb3BzKSA9PiBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgVE1zZz47XG5cbiAgICByZXR1cm4gdXBkYXRlRm4obXNnLCBtb2RlbCwgcHJvcHMpO1xufVxuXG5leHBvcnQgdHlwZSB7XG4gICAgU3Vic2NyaXB0aW9uUmVzdWx0LFxufTtcblxuZXhwb3J0IHtcbiAgICB1c2VFbG1pc2gsXG4gICAgY2FsbFVwZGF0ZSxcbiAgICBjYWxsVXBkYXRlTWFwLFxufTsiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUNBOztBQUVBOztBQUNBOztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTZDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLFNBQVQsT0FBeUw7RUFBQTs7RUFBQSxJQUFySEMsSUFBcUgsUUFBckhBLElBQXFIO0VBQUEsSUFBL0dDLEtBQStHLFFBQS9HQSxLQUErRztFQUFBLElBQXhHQyxJQUF3RyxRQUF4R0EsSUFBd0c7RUFBQSxJQUFsR0MsTUFBa0csUUFBbEdBLE1BQWtHO0VBQUEsSUFBMUZDLFlBQTBGLFFBQTFGQSxZQUEwRjtFQUNyTCxJQUFJQyxTQUFTLEdBQUcsS0FBaEI7RUFDQSxJQUFNQyxNQUFtQixHQUFHLEVBQTVCO0VBQ0EsSUFBSUMsWUFBNkIsR0FBRyxFQUFwQzs7RUFFQSxnQkFBMEIsSUFBQUMsZUFBQSxFQUEyQixJQUEzQixDQUExQjtFQUFBO0VBQUEsSUFBT0MsS0FBUDtFQUFBLElBQWNDLFFBQWQ7O0VBQ0EsSUFBTUMsUUFBUSxHQUFHLElBQUFDLGFBQUEsRUFBT1gsS0FBUCxDQUFq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
131
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFbG1pc2giLCJuYW1lIiwicHJvcHMiLCJpbml0IiwidXBkYXRlIiwic3Vic2NyaXB0aW9uIiwicmVlbnRlcmVkIiwiYnVmZmVyIiwiY3VycmVudE1vZGVsIiwidXNlU3RhdGUiLCJtb2RlbCIsInNldE1vZGVsIiwicHJvcHNSZWYiLCJ1c2VSZWYiLCJpc01vdW50ZWRSZWYiLCJ1c2VFZmZlY3QiLCJjdXJyZW50IiwiaW5pdGlhbGl6ZWRNb2RlbCIsImZha2VPcHRpb25zIiwiZ2V0RmFrZU9wdGlvbnNPbmNlIiwiZGlzcGF0Y2giLCJ1c2VDYWxsYmFjayIsIm1zZyIsInB1c2giLCJuZXh0TXNnIiwibW9kaWZpZWQiLCJsb2dNZXNzYWdlIiwiY2FsbFVwZGF0ZSIsIm5ld01vZGVsIiwiY21kIiwibW9kZWxIYXNDaGFuZ2VkIiwiZXhlY0NtZCIsInNoaWZ0IiwicHJldk1vZGVsIiwidXBkYXRlZE1vZGVsIiwiU2VydmljZXMiLCJsb2dnZXIiLCJkZWJ1ZyIsImluaXRNb2RlbCIsImluaXRDbWQiLCJzdWJDbWQiLCJkZXN0cnVjdG9yIiwiY2FsbFVwZGF0ZU1hcCIsInVwZGF0ZU1hcCIsInVwZGF0ZUZuIl0sInNvdXJjZXMiOlsiLi4vc3JjL3VzZUVsbWlzaC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHMgKi9cbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IENtZCwgRGlzcGF0Y2ggfSBmcm9tIFwiLi9DbWRcIjtcbmltcG9ydCB7IGV4ZWNDbWQsIGxvZ01lc3NhZ2UsIG1vZGVsSGFzQ2hhbmdlZCB9IGZyb20gXCIuL0NvbW1vblwiO1xuaW1wb3J0IHsgU2VydmljZXMgfSBmcm9tIFwiLi9Jbml0XCI7XG5pbXBvcnQgeyBnZXRGYWtlT3B0aW9uc09uY2UgfSBmcm9tIFwiLi9UZXN0aW5nL2Zha2VPcHRpb25zXCI7XG5pbXBvcnQgeyBJbml0RnVuY3Rpb24sIE1lc3NhZ2VCYXNlLCBOdWxsYWJsZSwgVXBkYXRlRnVuY3Rpb24sIFVwZGF0ZU1hcCwgVXBkYXRlUmV0dXJuVHlwZSB9IGZyb20gXCIuL1R5cGVzXCI7XG5cbi8qKlxuICogVGhlIHJldHVybiB0eXBlIG9mIHRoZSBgc3Vic2NyaXB0aW9uYCBmdW5jdGlvbi5cbiAqIEB0ZW1wbGF0ZSBUTWVzc2FnZSBUaGUgdHlwZSBvZiB0aGUgbWVzc2FnZXMgZGlzY3JpbWluYXRlZCB1bmlvbi5cbiAqL1xudHlwZSBTdWJzY3JpcHRpb25SZXN1bHQ8VE1lc3NhZ2U+ID0gW0NtZDxUTWVzc2FnZT4sICgoKSA9PiB2b2lkKT9dO1xudHlwZSBTdWJzY3JpcHRpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiA9IChtb2RlbDogVE1vZGVsLCBwcm9wczogVFByb3BzKSA9PiBTdWJzY3JpcHRpb25SZXN1bHQ8VE1lc3NhZ2U+O1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHRoZSBgdXNlRWxtaXNoYCBob29rLlxuICogQGludGVyZmFjZSBVc2VFbG1pc2hPcHRpb25zXG4gKiBAdGVtcGxhdGUgVFByb3BzIFRoZSB0eXBlIG9mIHRoZSBwcm9wcy5cbiAqIEB0ZW1wbGF0ZSBUTW9kZWwgVGhlIHR5cGUgb2YgdGhlIG1vZGVsLlxuICogQHRlbXBsYXRlIFRNZXNzYWdlIFRoZSB0eXBlIG9mIHRoZSBtZXNzYWdlcyBkaXNjcmltaW5hdGVkIHVuaW9uLlxuICovXG5pbnRlcmZhY2UgVXNlRWxtaXNoT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlQmFzZT4ge1xuICAgIC8qKlxuICAgICAqIFRoZSBuYW1lIG9mIHRoZSBjb21wb25lbnQuIFRoaXMgaXMgdXNlZCBmb3IgbG9nZ2luZyBvbmx5LlxuICAgICAqIEB0eXBlIHtzdHJpbmd9XG4gICAgICovXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIC8qKlxuICAgICAqIFRoZSBwcm9wcyBwYXNzZWQgdG8gdGhlIGNvbXBvbmVudC5cbiAgICAgKiBAdHlwZSB7VFByb3BzfVxuICAgICAqL1xuICAgIHByb3BzOiBUUHJvcHMsXG4gICAgLyoqXG4gICAgICogVGhlIGZ1bmN0aW9uIHRvIGluaXRpYWxpemUgdGhlIGNvbXBvbmVudHMgbW9kZWwuIFRoaXMgZnVuY3Rpb24gaXMgb25seSBjYWxsZWQgb25jZS5cbiAgICAgKiBAdHlwZSB7SW5pdEZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT59XG4gICAgICovXG4gICAgaW5pdDogSW5pdEZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG4gICAgLyoqXG4gICAgICogVGhlIGB1cGRhdGVgIGZ1bmN0aW9uIG9yIHVwZGF0ZSBtYXAgb2JqZWN0LlxuICAgICAqIEB0eXBlIHsoVXBkYXRlRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiB8IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+KX1cbiAgICAgKi9cbiAgICB1cGRhdGU6IFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPixcbiAgICAvKipcbiAgICAgKiBUaGUgb3B0aW9uYWwgYHN1YnNjcmlwdGlvbmAgZnVuY3Rpb24uIFRoaXMgZnVuY3Rpb24gaXMgb25seSBjYWxsZWQgb25jZS5cbiAgICAgKiBAdHlwZSB7KFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPil9XG4gICAgICovXG4gICAgc3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG59XG5cbi8qKlxuICogSG9vayB0byB1c2UgdGhlIEVsbSBhcmNoaXRlY3R1cmUgcGF0dGVybiBpbiBhIGZ1bmN0aW9uIGNvbXBvbmVudC5cbiAqIEBwYXJhbSB7VXNlRWxtaXNoT3B0aW9uc30gb3B0aW9ucyBUaGUgb3B0aW9ucyBwYXNzZWQgdGhlIHRoZSBob29rLlxuICogQHJldHVybnMgQSB0dXBsZSBjb250YWluaW5nIHRoZSBjdXJyZW50IG1vZGVsIGFuZCB0aGUgZGlzcGF0Y2hlci5cbiAqIEBleGFtcGxlXG4gKiBjb25zdCBbbW9kZWwsIGRpc3BhdGNoXSA9IHVzZUVsbWlzaCh7IHByb3BzLCBpbml0LCB1cGRhdGUsIG5hbWU6IFwiTXlDb21wb25lbnRcIiB9KTtcbiAqL1xuZnVuY3Rpb24gdXNlRWxtaXNoPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2VCYXNlPiAoeyBuYW1lLCBwcm9wcywgaW5pdCwgdXBkYXRlLCBzdWJzY3JpcHRpb24gfTogVXNlRWxtaXNoT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+KTogW1RNb2RlbCwgRGlzcGF0Y2g8VE1lc3NhZ2U+XSB7XG4gICAgbGV0IHJlZW50ZXJlZCA9IGZhbHNlO1xuICAgIGNvbnN0IGJ1ZmZlcjogVE1lc3NhZ2UgW10gPSBbXTtcbiAgICBsZXQgY3VycmVudE1vZGVsOiBQYXJ0aWFsPFRNb2RlbD4gPSB7fTtcblxuICAgIGNvbnN0IFttb2RlbCwgc2V0TW9kZWxdID0gdXNlU3RhdGU8TnVsbGFibGU8VE1vZGVsPj4obnVsbCk7XG4gICAgY29uc3QgcHJvcHNSZWYgPSB1c2VSZWYocHJvcHMpO1xuICAgIGNvbnN0IGlzTW91bnRlZFJlZiA9IHVzZVJlZih0cnVlKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlzTW91bnRlZFJlZi5jdXJyZW50ID0gdHJ1ZTtcblxuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgaXNNb3VudGVkUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgfTtcbiAgICB9LCBbXSk7XG5cbiAgICBsZXQgaW5pdGlhbGl6ZWRNb2RlbCA9IG1vZGVsO1xuXG4gICAgaWYgKHByb3BzUmVmLmN1cnJlbnQgIT09IHByb3BzKSB7XG4gICAgICAgIHByb3BzUmVmLmN1cnJlbnQgPSBwcm9wcztcbiAgICB9XG5cbiAgICBjb25zdCBmYWtlT3B0aW9ucyA9IGdldEZha2VPcHRpb25zT25jZSgpO1xuICAgIGNvbnN0IGRpc3BhdGNoID0gdXNlQ2FsbGJhY2soZmFrZU9wdGlvbnM/LmRpc3BhdGNoID8/ICgobXNnOiBUTWVzc2FnZSk6IHZvaWQgPT4ge1xuICAgICAgICBpZiAoIWluaXRpYWxpemVkTW9kZWwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChyZWVudGVyZWQpIHtcbiAgICAgICAgICAgIGJ1ZmZlci5wdXNoKG1zZyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZWVudGVyZWQgPSB0cnVlO1xuXG4gICAgICAgICAgICBsZXQgbmV4dE1zZzogVE1lc3NhZ2UgfCB1bmRlZmluZWQgPSBtc2c7XG4gICAgICAgICAgICBsZXQgbW9kaWZpZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgd2hpbGUgKG5leHRNc2cpIHtcbiAgICAgICAgICAgICAgICBsb2dNZXNzYWdlKG5hbWUsIG5leHRNc2cpO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgW25ld01vZGVsLCBjbWRdID0gY2FsbFVwZGF0ZSh1cGRhdGUsIG5leHRNc2csIHsgLi4uaW5pdGlhbGl6ZWRNb2RlbCwgLi4uY3VycmVudE1vZGVsIH0sIHByb3BzUmVmLmN1cnJlbnQpO1xuXG4gICAgICAgICAgICAgICAgaWYgKG1vZGVsSGFzQ2hhbmdlZChjdXJyZW50TW9kZWwsIG5ld01vZGVsKSkge1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50TW9kZWwgPSB7IC4uLmN1cnJlbnRNb2RlbCwgLi4ubmV3TW9kZWwgfTtcblxuICAgICAgICAgICAgICAgICAgICBtb2RpZmllZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKGNtZCkge1xuICAgICAgICAgICAgICAgICAgICBleGVjQ21kKGNtZCwgZGlzcGF0Y2gpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIG5leHRNc2cgPSBidWZmZXIuc2hpZnQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlZW50ZXJlZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICBpZiAoaXNNb3VudGVkUmVmLmN1cnJlbnQgJiYgbW9kaWZpZWQpIHtcbiAgICAgICAgICAgICAgICBzZXRNb2RlbChwcmV2TW9kZWwgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVkTW9kZWwgPSB7IC4uLnByZXZNb2RlbCBhcyBUTW9kZWwsIC4uLmN1cnJlbnRNb2RlbCB9O1xuXG4gICAgICAgICAgICAgICAgICAgIFNlcnZpY2VzLmxvZ2dlcj8uZGVidWcoXCJFbG1cIiwgXCJ1cGRhdGUgbW9kZWwgZm9yXCIsIG5hbWUsIHVwZGF0ZWRNb2RlbCk7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVwZGF0ZWRNb2RlbDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pLCBbXSk7XG5cbiAgICBpZiAoIWluaXRpYWxpemVkTW9kZWwpIHtcbiAgICAgICAgY29uc3QgW2luaXRNb2RlbCwgaW5pdENtZF0gPSBmYWtlT3B0aW9ucz8ubW9kZWwgPyBbZmFrZU9wdGlvbnMubW9kZWwgYXMgVE1vZGVsXSA6IGluaXQocHJvcHMpO1xuXG4gICAgICAgIGluaXRpYWxpemVkTW9kZWwgPSBpbml0TW9kZWw7XG4gICAgICAgIHNldE1vZGVsKGluaXRpYWxpemVkTW9kZWwpO1xuXG4gICAgICAgIFNlcnZpY2VzLmxvZ2dlcj8uZGVidWcoXCJFbG1cIiwgXCJpbml0aWFsIG1vZGVsIGZvclwiLCBuYW1lLCBpbml0aWFsaXplZE1vZGVsKTtcblxuICAgICAgICBpZiAoaW5pdENtZCkge1xuICAgICAgICAgICAgZXhlY0NtZChpbml0Q21kLCBkaXNwYXRjaCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoc3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICBjb25zdCBbc3ViQ21kLCBkZXN0cnVjdG9yXSA9IHN1YnNjcmlwdGlvbihpbml0aWFsaXplZE1vZGVsIGFzIFRNb2RlbCwgcHJvcHMpO1xuXG4gICAgICAgICAgICBleGVjQ21kKHN1YkNtZCwgZGlzcGF0Y2gpO1xuXG4gICAgICAgICAgICBpZiAoZGVzdHJ1Y3Rvcikge1xuICAgICAgICAgICAgICAgIHJldHVybiBkZXN0cnVjdG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSwgW10pO1xuXG4gICAgcmV0dXJuIFtpbml0aWFsaXplZE1vZGVsLCBkaXNwYXRjaF07XG59XG5cbmZ1bmN0aW9uIGNhbGxVcGRhdGU8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZUJhc2U+ICh1cGRhdGU6IFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiwgbXNnOiBUTWVzc2FnZSwgbW9kZWw6IFRNb2RlbCwgcHJvcHM6IFRQcm9wcyk6IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTWVzc2FnZT4ge1xuICAgIGlmICh0eXBlb2YgdXBkYXRlID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZShtb2RlbCwgbXNnLCBwcm9wcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNhbGxVcGRhdGVNYXAodXBkYXRlLCBtc2csIG1vZGVsLCBwcm9wcyk7XG59XG5cbmZ1bmN0aW9uIGNhbGxVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZUJhc2U+ICh1cGRhdGVNYXA6IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LCBtc2c6IFRNZXNzYWdlLCBtb2RlbDogVE1vZGVsLCBwcm9wczogVFByb3BzKTogVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgLS0gV2Uga25vdyB0aGF0IG1zZyBmaXRzXG4gICAgY29uc3QgdXBkYXRlRm4gPSB1cGRhdGVNYXBbbXNnLm5hbWUgYXMgVE1lc3NhZ2VbXCJuYW1lXCJdXSBhcyAobXNnOiBUTWVzc2FnZSwgbW9kZWw6IFRNb2RlbCwgcHJvcHM6IFRQcm9wcykgPT4gVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNc2c+O1xuXG4gICAgcmV0dXJuIHVwZGF0ZUZuKG1zZywgbW9kZWwsIHByb3BzKTtcbn1cblxuZXhwb3J0IHR5cGUge1xuICAgIFN1YnNjcmlwdGlvblJlc3VsdCxcbn07XG5cbmV4cG9ydCB7XG4gICAgdXNlRWxtaXNoLFxuICAgIGNhbGxVcGRhdGUsXG4gICAgY2FsbFVwZGF0ZU1hcCxcbn07Il0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQTJEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQTZDM0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxTQUFTLE9BQXVLO0VBQUE7RUFBQSxJQUFySEMsSUFBSSxRQUFKQSxJQUFJO0lBQUVDLEtBQUssUUFBTEEsS0FBSztJQUFFQyxJQUFJLFFBQUpBLElBQUk7SUFBRUMsTUFBTSxRQUFOQSxNQUFNO0lBQUVDLFlBQVksUUFBWkEsWUFBWTtFQUN2RyxJQUFJQyxTQUFTLEdBQUcsS0FBSztFQUNyQixJQUFNQyxNQUFtQixHQUFHLEVBQUU7RUFDOUIsSUFBSUMsWUFBNkIsR0FBRyxDQUFDLENBQUM7RUFFdEMsZ0JBQTBCLElBQUFDLGVBQVEsRUFBbUIsSUFBSSxDQUFDO0lBQUE7SUFB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
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ // eslint-disable-next-line no-console
4
+ console.warn("react-elmish: Symbols for message names are deprecated now and will be removed in the next major version. Please convert all message names into strings.");
package/package.json CHANGED
@@ -1,10 +1,11 @@
1
1
  {
2
2
  "name": "react-elmish",
3
- "version": "5.0.1",
3
+ "version": "5.1.1-beta.1",
4
4
  "description": "Elmish for React using Typescript",
5
5
  "author": "atheck",
6
6
  "license": "MIT",
7
7
  "scripts": {
8
+ "install": "node installScript.js",
8
9
  "build": "npm run build:types && npm run build:js",
9
10
  "build:types": "tsc --emitDeclarationOnly --project ./src",
10
11
  "build:js": "babel src --out-dir dist --extensions \".ts,.tsx\" --ignore \"./**/*.spec.ts\",\"./**/*.spec.tsx\" --source-maps inline",
@@ -18,22 +19,22 @@
18
19
  "react": ">=16.8.0"
19
20
  },
20
21
  "devDependencies": {
21
- "@babel/cli": "7.18.10",
22
- "@babel/core": "7.19.0",
22
+ "@babel/cli": "7.19.3",
23
+ "@babel/core": "7.19.3",
23
24
  "@babel/plugin-proposal-class-properties": "7.18.6",
24
- "@babel/preset-env": "7.19.0",
25
+ "@babel/preset-env": "7.19.4",
25
26
  "@babel/preset-react": "7.18.6",
26
27
  "@babel/preset-typescript": "7.18.6",
27
28
  "@testing-library/react": "13.4.0",
28
- "@types/jest": "28.1.8",
29
- "@types/react": "18.0.18",
30
- "eslint": "8.23.0",
31
- "eslint-config-heck": "1.23.0",
32
- "jest": "28.1.3",
33
- "jest-environment-jsdom": "28.1.3",
29
+ "@types/jest": "29.1.2",
30
+ "@types/react": "18.0.21",
31
+ "eslint": "8.25.0",
32
+ "eslint-config-heck": "1.24.0",
33
+ "jest": "29.1.2",
34
+ "jest-environment-jsdom": "29.1.2",
34
35
  "semantic-release": "19.0.5",
35
- "ts-jest": "28.0.8",
36
- "typescript": "4.8.2"
36
+ "ts-jest": "29.0.3",
37
+ "typescript": "4.8.4"
37
38
  },
38
39
  "homepage": "https://github.com/atheck/react-elmish",
39
40
  "repository": {