react-elmish 7.0.2 → 7.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +28 -0
- package/dist/Common.js +4 -4
- package/dist/ElmComponent.d.ts +1 -1
- package/dist/ElmComponent.js +30 -30
- package/dist/ErrorHandling.js +2 -2
- package/dist/Testing/createModelAndProps.d.ts +3 -0
- package/dist/Testing/createModelAndProps.js +26 -0
- package/dist/Testing/createUpdateArgsFactory.d.ts +2 -1
- package/dist/Testing/createUpdateArgsFactory.js +5 -5
- package/dist/Testing/execCmd.d.ts +3 -1
- package/dist/Testing/execCmd.js +38 -3
- package/dist/Testing/getCreateUpdateArgs.d.ts +14 -2
- package/dist/Testing/getCreateUpdateArgs.js +26 -17
- package/dist/Testing/getUpdateFn.js +9 -8
- package/dist/Testing/index.d.ts +6 -5
- package/dist/Testing/index.js +14 -1
- package/dist/Testing/initAndExecCmd.js +3 -3
- package/dist/Testing/renderWithModel.d.ts +1 -1
- package/dist/Testing/renderWithModel.js +5 -5
- package/dist/Testing/runSubscription.d.ts +5 -0
- package/dist/Testing/runSubscription.js +22 -0
- package/dist/Types.d.ts +1 -4
- package/dist/Types.js +1 -1
- package/dist/cmd.js +1 -1
- package/dist/{Testing/fakeOptions.d.ts → fakeOptions.d.ts} +1 -1
- package/dist/fakeOptions.js +31 -0
- package/dist/useElmish.d.ts +1 -1
- package/dist/useElmish.js +46 -41
- package/package.json +14 -14
- package/dist/Testing/fakeOptions.js +0 -31
package/dist/useElmish.js
CHANGED
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
function _typeof(
|
|
3
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.callUpdate = callUpdate;
|
|
8
8
|
exports.callUpdateMap = callUpdateMap;
|
|
9
9
|
exports.useElmish = useElmish;
|
|
10
|
+
var _react = require("react");
|
|
10
11
|
var _Common = require("./Common");
|
|
11
12
|
var _Init = require("./Init");
|
|
12
|
-
var _fakeOptions = require("./
|
|
13
|
-
var _react = require("react");
|
|
13
|
+
var _fakeOptions = require("./fakeOptions");
|
|
14
14
|
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
15
15
|
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
16
16
|
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
17
|
-
function
|
|
18
|
-
function
|
|
17
|
+
function _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest(); }
|
|
18
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
19
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
20
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
19
21
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
20
22
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
21
23
|
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
22
|
-
function _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest(); }
|
|
23
|
-
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
24
24
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
25
25
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
26
26
|
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); }
|
|
27
27
|
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; }
|
|
28
|
-
function _iterableToArrayLimit(
|
|
28
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
29
29
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } /* eslint-disable react-hooks/exhaustive-deps */
|
|
30
30
|
/**
|
|
31
31
|
* The return type of the `subscription` function.
|
|
@@ -54,7 +54,7 @@ function useElmish(_ref) {
|
|
|
54
54
|
init = _ref.init,
|
|
55
55
|
update = _ref.update,
|
|
56
56
|
subscription = _ref.subscription;
|
|
57
|
-
var
|
|
57
|
+
var running = false;
|
|
58
58
|
var buffer = [];
|
|
59
59
|
var currentModel = {};
|
|
60
60
|
var _useState = (0, _react.useState)(null),
|
|
@@ -75,37 +75,25 @@ function useElmish(_ref) {
|
|
|
75
75
|
}
|
|
76
76
|
var fakeOptions = (0, _fakeOptions.getFakeOptionsOnce)();
|
|
77
77
|
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
|
-
if (
|
|
78
|
+
if (running) {
|
|
79
|
+
buffer.push(msg);
|
|
79
80
|
return;
|
|
80
81
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
}
|
|
97
|
-
_Common.execCmd.apply(void 0, [dispatch].concat(_toConsumableArray(commands)));
|
|
98
|
-
nextMsg = buffer.shift();
|
|
99
|
-
}
|
|
100
|
-
reentered = false;
|
|
101
|
-
if (isMountedRef.current && modified) {
|
|
102
|
-
setModel(function (prevModel) {
|
|
103
|
-
var _Services$logger;
|
|
104
|
-
var updatedModel = _objectSpread(_objectSpread({}, prevModel), currentModel);
|
|
105
|
-
(_Services$logger = _Init.Services.logger) === null || _Services$logger === void 0 ? void 0 : _Services$logger.debug("Update model for", name, updatedModel);
|
|
106
|
-
return updatedModel;
|
|
107
|
-
});
|
|
108
|
-
}
|
|
82
|
+
running = true;
|
|
83
|
+
var nextMsg = msg;
|
|
84
|
+
var modified = false;
|
|
85
|
+
do {
|
|
86
|
+
modified = handleMessage(nextMsg);
|
|
87
|
+
nextMsg = buffer.shift();
|
|
88
|
+
} while (nextMsg);
|
|
89
|
+
running = false;
|
|
90
|
+
if (isMountedRef.current && modified) {
|
|
91
|
+
setModel(function (prevModel) {
|
|
92
|
+
var _Services$logger;
|
|
93
|
+
var updatedModel = _objectSpread(_objectSpread({}, prevModel), currentModel);
|
|
94
|
+
(_Services$logger = _Init.Services.logger) === null || _Services$logger === void 0 || _Services$logger.debug("Update model for", name, updatedModel);
|
|
95
|
+
return updatedModel;
|
|
96
|
+
});
|
|
109
97
|
}
|
|
110
98
|
}, []);
|
|
111
99
|
if (!initializedModel) {
|
|
@@ -116,11 +104,11 @@ function useElmish(_ref) {
|
|
|
116
104
|
initCommands = _ref3.slice(1);
|
|
117
105
|
initializedModel = initModel;
|
|
118
106
|
setModel(initializedModel);
|
|
119
|
-
(_Services$logger2 = _Init.Services.logger) === null || _Services$logger2 === void 0
|
|
107
|
+
(_Services$logger2 = _Init.Services.logger) === null || _Services$logger2 === void 0 || _Services$logger2.debug("Initial model for", name, initializedModel);
|
|
120
108
|
_Common.execCmd.apply(void 0, [dispatch].concat(_toConsumableArray(initCommands)));
|
|
121
109
|
}
|
|
122
110
|
|
|
123
|
-
//
|
|
111
|
+
// biome-ignore lint/nursery/useExhaustiveDependencies: We want to run this effect only once
|
|
124
112
|
(0, _react.useEffect)(function () {
|
|
125
113
|
if (subscription) {
|
|
126
114
|
var _subscription = subscription(initializedModel, props),
|
|
@@ -132,6 +120,23 @@ function useElmish(_ref) {
|
|
|
132
120
|
}
|
|
133
121
|
}, []);
|
|
134
122
|
return [initializedModel, dispatch];
|
|
123
|
+
function handleMessage(nextMsg) {
|
|
124
|
+
if (!initializedModel) {
|
|
125
|
+
return false;
|
|
126
|
+
}
|
|
127
|
+
var modified = false;
|
|
128
|
+
(0, _Common.logMessage)(name, nextMsg);
|
|
129
|
+
var _callUpdate = callUpdate(update, nextMsg, _objectSpread(_objectSpread({}, initializedModel), currentModel), propsRef.current),
|
|
130
|
+
_callUpdate2 = _toArray(_callUpdate),
|
|
131
|
+
newModel = _callUpdate2[0],
|
|
132
|
+
commands = _callUpdate2.slice(1);
|
|
133
|
+
if ((0, _Common.modelHasChanged)(currentModel, newModel)) {
|
|
134
|
+
currentModel = _objectSpread(_objectSpread({}, currentModel), newModel);
|
|
135
|
+
modified = true;
|
|
136
|
+
}
|
|
137
|
+
_Common.execCmd.apply(void 0, [dispatch].concat(_toConsumableArray(commands)));
|
|
138
|
+
return modified;
|
|
139
|
+
}
|
|
135
140
|
}
|
|
136
141
|
function callUpdate(update, msg, model, props) {
|
|
137
142
|
if (typeof update === "function") {
|
|
@@ -143,4 +148,4 @@ function callUpdateMap(updateMap, msg, model, props) {
|
|
|
143
148
|
var msgName = msg.name;
|
|
144
149
|
return updateMap[msgName](msg, model, props);
|
|
145
150
|
}
|
|
146
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfQ29tbW9uIiwicmVxdWlyZSIsIl9Jbml0IiwiX2Zha2VPcHRpb25zIiwiX3JlYWN0IiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiYXJyIiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIlR5cGVFcnJvciIsIkFycmF5IiwiaXNBcnJheSIsIl9hcnJheUxpa2VUb0FycmF5Iiwib3duS2V5cyIsIm9iamVjdCIsImVudW1lcmFibGVPbmx5Iiwia2V5cyIsIk9iamVjdCIsImdldE93blByb3BlcnR5U3ltYm9scyIsInN5bWJvbHMiLCJmaWx0ZXIiLCJzeW0iLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsInRhcmdldCIsImkiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJzb3VyY2UiLCJmb3JFYWNoIiwia2V5IiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIm9iaiIsInZhbHVlIiwiX3RvUHJvcGVydHlLZXkiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImFyZyIsIl90b1ByaW1pdGl2ZSIsIl90eXBlb2YiLCJTdHJpbmciLCJpbnB1dCIsImhpbnQiLCJwcmltIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJ1bmRlZmluZWQiLCJyZXMiLCJjYWxsIiwiTnVtYmVyIiwiX3RvQXJyYXkiLCJfYXJyYXlXaXRoSG9sZXMiLCJfbm9uSXRlcmFibGVSZXN0IiwiaXRlciIsIml0ZXJhdG9yIiwiZnJvbSIsIl9zbGljZWRUb0FycmF5IiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwibyIsIm1pbkxlbiIsIm4iLCJwcm90b3R5cGUiLCJ0b1N0cmluZyIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwidGVzdCIsImxlbiIsImFycjIiLCJfaSIsIl9zIiwiX2UiLCJfeCIsIl9yIiwiX2FyciIsIl9uIiwiX2QiLCJuZXh0IiwiZG9uZSIsImVyciIsInVzZUVsbWlzaCIsIl9yZWYiLCJfZmFrZU9wdGlvbnMkZGlzcGF0Y2giLCJwcm9wcyIsImluaXQiLCJ1cGRhdGUiLCJzdWJzY3JpcHRpb24iLCJyZWVudGVyZWQiLCJidWZmZXIiLCJjdXJyZW50TW9kZWwiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJtb2RlbCIsInNldE1vZGVsIiwicHJvcHNSZWYiLCJ1c2VSZWYiLCJpc01vdW50ZWRSZWYiLCJ1c2VFZmZlY3QiLCJjdXJyZW50IiwiaW5pdGlhbGl6ZWRNb2RlbCIsImZha2VPcHRpb25zIiwiZ2V0RmFrZU9wdGlvbnNPbmNlIiwiZGlzcGF0Y2giLCJ1c2VDYWxsYmFjayIsIm1zZyIsIm5leHRNc2ciLCJtb2RpZmllZCIsImxvZ01lc3NhZ2UiLCJfY2FsbFVwZGF0ZSIsImNhbGxVcGRhdGUiLCJfY2FsbFVwZGF0ZTIiLCJuZXdNb2RlbCIsImNvbW1hbmRzIiwibW9kZWxIYXNDaGFuZ2VkIiwiZXhlY0NtZCIsImNvbmNhdCIsInNoaWZ0IiwicHJldk1vZGVsIiwiX1NlcnZpY2VzJGxvZ2dlciIsInVwZGF0ZWRNb2RlbCIsIlNlcnZpY2VzIiwibG9nZ2VyIiwiZGVidWciLCJfU2VydmljZXMkbG9nZ2VyMiIsIl9yZWYyIiwiX3JlZjMiLCJpbml0TW9kZWwiLCJpbml0Q29tbWFuZHMiLCJfc3Vic2NyaXB0aW9uIiwiX3N1YnNjcmlwdGlvbjIiLCJzdWJDbWQiLCJkZXN0cnVjdG9yIiwiY2FsbFVwZGF0ZU1hcCIsInVwZGF0ZU1hcCIsIm1zZ05hbWUiXSwic291cmNlcyI6WyIuLi9zcmMvdXNlRWxtaXNoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4ZWNDbWQsIGxvZ01lc3NhZ2UsIG1vZGVsSGFzQ2hhbmdlZCB9IGZyb20gXCIuL0NvbW1vblwiO1xuaW1wb3J0IHsgU2VydmljZXMgfSBmcm9tIFwiLi9Jbml0XCI7XG5pbXBvcnQgeyBnZXRGYWtlT3B0aW9uc09uY2UgfSBmcm9tIFwiLi9UZXN0aW5nL2Zha2VPcHRpb25zXCI7XG5pbXBvcnQgeyBDbWQsIERpc3BhdGNoLCBJbml0RnVuY3Rpb24sIE1lc3NhZ2UsIE51bGxhYmxlLCBVcGRhdGVGdW5jdGlvbiwgVXBkYXRlTWFwLCBVcGRhdGVSZXR1cm5UeXBlIH0gZnJvbSBcIi4vVHlwZXNcIjtcbi8qIGVzbGludC1kaXNhYmxlIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwcyAqL1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuXG4vKipcbiAqIFRoZSByZXR1cm4gdHlwZSBvZiB0aGUgYHN1YnNjcmlwdGlvbmAgZnVuY3Rpb24uXG4gKiBAdGVtcGxhdGUgVE1lc3NhZ2UgVGhlIHR5cGUgb2YgdGhlIG1lc3NhZ2VzIGRpc2NyaW1pbmF0ZWQgdW5pb24uXG4gKi9cbnR5cGUgU3Vic2NyaXB0aW9uUmVzdWx0PFRNZXNzYWdlPiA9IFtDbWQ8VE1lc3NhZ2U+LCAoKCkgPT4gdm9pZCk/XTtcbnR5cGUgU3Vic2NyaXB0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gPSAobW9kZWw6IFRNb2RlbCwgcHJvcHM6IFRQcm9wcykgPT4gU3Vic2NyaXB0aW9uUmVzdWx0PFRNZXNzYWdlPjtcblxuLyoqXG4gKiBPcHRpb25zIGZvciB0aGUgYHVzZUVsbWlzaGAgaG9vay5cbiAqIEBpbnRlcmZhY2UgVXNlRWxtaXNoT3B0aW9uc1xuICogQHRlbXBsYXRlIFRQcm9wcyBUaGUgdHlwZSBvZiB0aGUgcHJvcHMuXG4gKiBAdGVtcGxhdGUgVE1vZGVsIFRoZSB0eXBlIG9mIHRoZSBtb2RlbC5cbiAqIEB0ZW1wbGF0ZSBUTWVzc2FnZSBUaGUgdHlwZSBvZiB0aGUgbWVzc2FnZXMgZGlzY3JpbWluYXRlZCB1bmlvbi5cbiAqL1xuaW50ZXJmYWNlIFVzZUVsbWlzaE9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4ge1xuXHQvKipcblx0ICogVGhlIG5hbWUgb2YgdGhlIGNvbXBvbmVudC4gVGhpcyBpcyB1c2VkIGZvciBsb2dnaW5nIG9ubHkuXG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqL1xuXHRuYW1lOiBzdHJpbmc7XG5cdC8qKlxuXHQgKiBUaGUgcHJvcHMgcGFzc2VkIHRvIHRoZSBjb21wb25lbnQuXG5cdCAqIEB0eXBlIHtUUHJvcHN9XG5cdCAqL1xuXHRwcm9wczogVFByb3BzO1xuXHQvKipcblx0ICogVGhlIGZ1bmN0aW9uIHRvIGluaXRpYWxpemUgdGhlIGNvbXBvbmVudHMgbW9kZWwuIFRoaXMgZnVuY3Rpb24gaXMgb25seSBjYWxsZWQgb25jZS5cblx0ICogQHR5cGUge0luaXRGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+fVxuXHQgKi9cblx0aW5pdDogSW5pdEZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT47XG5cdC8qKlxuXHQgKiBUaGUgYHVwZGF0ZWAgZnVuY3Rpb24gb3IgdXBkYXRlIG1hcCBvYmplY3QuXG5cdCAqIEB0eXBlIHsoVXBkYXRlRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiB8IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+KX1cblx0ICovXG5cdHVwZGF0ZTogVXBkYXRlRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiB8IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+O1xuXHQvKipcblx0ICogVGhlIG9wdGlvbmFsIGBzdWJzY3JpcHRpb25gIGZ1bmN0aW9uLiBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgY2FsbGVkIG9uY2UuXG5cdCAqIEB0eXBlIHsoVXBkYXRlRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiB8IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+KX1cblx0ICovXG5cdHN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+O1xufVxuXG4vKipcbiAqIEhvb2sgdG8gdXNlIHRoZSBFbG0gYXJjaGl0ZWN0dXJlIHBhdHRlcm4gaW4gYSBmdW5jdGlvbiBjb21wb25lbnQuXG4gKiBAcGFyYW0ge1VzZUVsbWlzaE9wdGlvbnN9IG9wdGlvbnMgVGhlIG9wdGlvbnMgcGFzc2VkIHRoZSB0aGUgaG9vay5cbiAqIEByZXR1cm5zIEEgdHVwbGUgY29udGFpbmluZyB0aGUgY3VycmVudCBtb2RlbCBhbmQgdGhlIGRpc3BhdGNoZXIuXG4gKiBAZXhhbXBsZVxuICogY29uc3QgW21vZGVsLCBkaXNwYXRjaF0gPSB1c2VFbG1pc2goeyBwcm9wcywgaW5pdCwgdXBkYXRlLCBuYW1lOiBcIk15Q29tcG9uZW50XCIgfSk7XG4gKi9cbmZ1bmN0aW9uIHVzZUVsbWlzaDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPih7XG5cdG5hbWUsXG5cdHByb3BzLFxuXHRpbml0LFxuXHR1cGRhdGUsXG5cdHN1YnNjcmlwdGlvbixcbn06IFVzZUVsbWlzaE9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPik6IFtUTW9kZWwsIERpc3BhdGNoPFRNZXNzYWdlPl0ge1xuXHRsZXQgcmVlbnRlcmVkID0gZmFsc2U7XG5cdGNvbnN0IGJ1ZmZlcjogVE1lc3NhZ2VbXSA9IFtdO1xuXHRsZXQgY3VycmVudE1vZGVsOiBQYXJ0aWFsPFRNb2RlbD4gPSB7fTtcblxuXHRjb25zdCBbbW9kZWwsIHNldE1vZGVsXSA9IHVzZVN0YXRlPE51bGxhYmxlPFRNb2RlbD4+KG51bGwpO1xuXHRjb25zdCBwcm9wc1JlZiA9IHVzZVJlZihwcm9wcyk7XG5cdGNvbnN0IGlzTW91bnRlZFJlZiA9IHVzZVJlZih0cnVlKTtcblxuXHR1c2VFZmZlY3QoKCkgPT4ge1xuXHRcdGlzTW91bnRlZFJlZi5jdXJyZW50ID0gdHJ1ZTtcblxuXHRcdHJldHVybiAoKSA9PiB7XG5cdFx0XHRpc01vdW50ZWRSZWYuY3VycmVudCA9IGZhbHNlO1xuXHRcdH07XG5cdH0sIFtdKTtcblxuXHRsZXQgaW5pdGlhbGl6ZWRNb2RlbCA9IG1vZGVsO1xuXG5cdGlmIChwcm9wc1JlZi5jdXJyZW50ICE9PSBwcm9wcykge1xuXHRcdHByb3BzUmVmLmN1cnJlbnQgPSBwcm9wcztcblx0fVxuXG5cdGNvbnN0IGZha2VPcHRpb25zID0gZ2V0RmFrZU9wdGlvbnNPbmNlKCk7XG5cdGNvbnN0IGRpc3BhdGNoID0gdXNlQ2FsbGJhY2soXG5cdFx0ZmFrZU9wdGlvbnM/LmRpc3BhdGNoID8/XG5cdFx0XHQoKG1zZzogVE1lc3NhZ2UpOiB2b2lkID0+IHtcblx0XHRcdFx0aWYgKCFpbml0aWFsaXplZE1vZGVsKSB7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKHJlZW50ZXJlZCkge1xuXHRcdFx0XHRcdGJ1ZmZlci5wdXNoKG1zZyk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0cmVlbnRlcmVkID0gdHJ1ZTtcblxuXHRcdFx0XHRcdGxldCBuZXh0TXNnOiBUTWVzc2FnZSB8IHVuZGVmaW5lZCA9IG1zZztcblx0XHRcdFx0XHRsZXQgbW9kaWZpZWQgPSBmYWxzZTtcblxuXHRcdFx0XHRcdHdoaWxlIChuZXh0TXNnKSB7XG5cdFx0XHRcdFx0XHRsb2dNZXNzYWdlKG5hbWUsIG5leHRNc2cpO1xuXG5cdFx0XHRcdFx0XHRjb25zdCBbbmV3TW9kZWwsIC4uLmNvbW1hbmRzXSA9IGNhbGxVcGRhdGUoXG5cdFx0XHRcdFx0XHRcdHVwZGF0ZSxcblx0XHRcdFx0XHRcdFx0bmV4dE1zZyxcblx0XHRcdFx0XHRcdFx0eyAuLi5pbml0aWFsaXplZE1vZGVsLCAuLi5jdXJyZW50TW9kZWwgfSxcblx0XHRcdFx0XHRcdFx0cHJvcHNSZWYuY3VycmVudCxcblx0XHRcdFx0XHRcdCk7XG5cblx0XHRcdFx0XHRcdGlmIChtb2RlbEhhc0NoYW5nZWQoY3VycmVudE1vZGVsLCBuZXdNb2RlbCkpIHtcblx0XHRcdFx0XHRcdFx0Y3VycmVudE1vZGVsID0geyAuLi5jdXJyZW50TW9kZWwsIC4uLm5ld01vZGVsIH07XG5cblx0XHRcdFx0XHRcdFx0bW9kaWZpZWQgPSB0cnVlO1xuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRleGVjQ21kKGRpc3BhdGNoLCAuLi5jb21tYW5kcyk7XG5cblx0XHRcdFx0XHRcdG5leHRNc2cgPSBidWZmZXIuc2hpZnQoKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0cmVlbnRlcmVkID0gZmFsc2U7XG5cblx0XHRcdFx0XHRpZiAoaXNNb3VudGVkUmVmLmN1cnJlbnQgJiYgbW9kaWZpZWQpIHtcblx0XHRcdFx0XHRcdHNldE1vZGVsKChwcmV2TW9kZWwpID0+IHtcblx0XHRcdFx0XHRcdFx0Y29uc3QgdXBkYXRlZE1vZGVsID0ge1xuXHRcdFx0XHRcdFx0XHRcdC4uLihwcmV2TW9kZWwgYXMgVE1vZGVsKSxcblx0XHRcdFx0XHRcdFx0XHQuLi5jdXJyZW50TW9kZWwsXG5cdFx0XHRcdFx0XHRcdH07XG5cblx0XHRcdFx0XHRcdFx0U2VydmljZXMubG9nZ2VyPy5kZWJ1ZyhcIlVwZGF0ZSBtb2RlbCBmb3JcIiwgbmFtZSwgdXBkYXRlZE1vZGVsKTtcblxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gdXBkYXRlZE1vZGVsO1xuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9KSxcblx0XHRbXSxcblx0KTtcblxuXHRpZiAoIWluaXRpYWxpemVkTW9kZWwpIHtcblx0XHRjb25zdCBbaW5pdE1vZGVsLCAuLi5pbml0Q29tbWFuZHNdID0gZmFrZU9wdGlvbnM/Lm1vZGVsID8gW2Zha2VPcHRpb25zLm1vZGVsIGFzIFRNb2RlbF0gOiBpbml0KHByb3BzKTtcblxuXHRcdGluaXRpYWxpemVkTW9kZWwgPSBpbml0TW9kZWw7XG5cdFx0c2V0TW9kZWwoaW5pdGlhbGl6ZWRNb2RlbCk7XG5cblx0XHRTZXJ2aWNlcy5sb2dnZXI/LmRlYnVnKFwiSW5pdGlhbCBtb2RlbCBmb3JcIiwgbmFtZSwgaW5pdGlhbGl6ZWRNb2RlbCk7XG5cblx0XHRleGVjQ21kKGRpc3BhdGNoLCAuLi5pbml0Q29tbWFuZHMpO1xuXHR9XG5cblx0Ly8gcm9tZS1pZ25vcmUgbGludC9udXJzZXJ5L3VzZUV4aGF1c3RpdmVEZXBlbmRlbmNpZXM6IFdlIHdhbnQgdG8gcnVuIHRoaXMgZWZmZWN0IG9ubHkgb25jZVxuXHR1c2VFZmZlY3QoKCkgPT4ge1xuXHRcdGlmIChzdWJzY3JpcHRpb24pIHtcblx0XHRcdGNvbnN0IFtzdWJDbWQsIGRlc3RydWN0b3JdID0gc3Vic2NyaXB0aW9uKGluaXRpYWxpemVkTW9kZWwgYXMgVE1vZGVsLCBwcm9wcyk7XG5cblx0XHRcdGV4ZWNDbWQoZGlzcGF0Y2gsIHN1YkNtZCk7XG5cblx0XHRcdHJldHVybiBkZXN0cnVjdG9yO1xuXHRcdH1cblx0fSwgW10pO1xuXG5cdHJldHVybiBbaW5pdGlhbGl6ZWRNb2RlbCwgZGlzcGF0Y2hdO1xufVxuXG5mdW5jdGlvbiBjYWxsVXBkYXRlPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+KFxuXHR1cGRhdGU6IFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPixcblx0bXNnOiBUTWVzc2FnZSxcblx0bW9kZWw6IFRNb2RlbCxcblx0cHJvcHM6IFRQcm9wcyxcbik6IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTWVzc2FnZT4ge1xuXHRpZiAodHlwZW9mIHVwZGF0ZSA9PT0gXCJmdW5jdGlvblwiKSB7XG5cdFx0cmV0dXJuIHVwZGF0ZShtb2RlbCwgbXNnLCBwcm9wcyk7XG5cdH1cblxuXHRyZXR1cm4gY2FsbFVwZGF0ZU1hcCh1cGRhdGUsIG1zZywgbW9kZWwsIHByb3BzKTtcbn1cblxuZnVuY3Rpb24gY2FsbFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPihcblx0dXBkYXRlTWFwOiBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPixcblx0bXNnOiBUTWVzc2FnZSxcblx0bW9kZWw6IFRNb2RlbCxcblx0cHJvcHM6IFRQcm9wcyxcbik6IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTWVzc2FnZT4ge1xuXHRjb25zdCBtc2dOYW1lOiBUTWVzc2FnZVtcIm5hbWVcIl0gPSBtc2cubmFtZTtcblxuXHRyZXR1cm4gdXBkYXRlTWFwW21zZ05hbWVdKG1zZywgbW9kZWwsIHByb3BzKTtcbn1cblxuZXhwb3J0IHR5cGUgeyBTdWJzY3JpcHRpb25SZXN1bHQsIFVzZUVsbWlzaE9wdGlvbnMgfTtcblxuZXhwb3J0IHsgY2FsbFVwZGF0ZSwgY2FsbFVwZGF0ZU1hcCwgdXNlRWxtaXNoIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLEtBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFlBQUEsR0FBQUYsT0FBQTtBQUdBLElBQUFHLE1BQUEsR0FBQUgsT0FBQTtBQUFpRSxTQUFBSSxtQkFBQUMsR0FBQSxXQUFBQyxrQkFBQSxDQUFBRCxHQUFBLEtBQUFFLGdCQUFBLENBQUFGLEdBQUEsS0FBQUcsMkJBQUEsQ0FBQUgsR0FBQSxLQUFBSSxrQkFBQTtBQUFBLFNBQUFBLG1CQUFBLGNBQUFDLFNBQUE7QUFBQSxTQUFBSixtQkFBQUQsR0FBQSxRQUFBTSxLQUFBLENBQUFDLE9BQUEsQ0FBQVAsR0FBQSxVQUFBUSxpQkFBQSxDQUFBUixHQUFBO0FBQUEsU0FBQVMsUUFBQUMsTUFBQSxFQUFBQyxjQUFBLFFBQUFDLElBQUEsR0FBQUMsTUFBQSxDQUFBRCxJQUFBLENBQUFGLE1BQUEsT0FBQUcsTUFBQSxDQUFBQyxxQkFBQSxRQUFBQyxPQUFBLEdBQUFGLE1BQUEsQ0FBQUMscUJBQUEsQ0FBQUosTUFBQSxH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
|
|
151
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX0NvbW1vbiIsIl9Jbml0IiwiX2Zha2VPcHRpb25zIiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiYXJyIiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIlR5cGVFcnJvciIsIkFycmF5IiwiaXNBcnJheSIsIl9hcnJheUxpa2VUb0FycmF5IiwiX3RvQXJyYXkiLCJfYXJyYXlXaXRoSG9sZXMiLCJfbm9uSXRlcmFibGVSZXN0IiwiaXRlciIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiZnJvbSIsIm93bktleXMiLCJlIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJvYmoiLCJrZXkiLCJ2YWx1ZSIsIl90b1Byb3BlcnR5S2V5IiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJhcmciLCJfdG9QcmltaXRpdmUiLCJfdHlwZW9mIiwiU3RyaW5nIiwiaW5wdXQiLCJoaW50IiwicHJpbSIsInRvUHJpbWl0aXZlIiwidW5kZWZpbmVkIiwicmVzIiwiY2FsbCIsIk51bWJlciIsIl9zbGljZWRUb0FycmF5IiwiaSIsIl9pdGVyYWJsZVRvQXJyYXlMaW1pdCIsIm1pbkxlbiIsIm4iLCJwcm90b3R5cGUiLCJ0b1N0cmluZyIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwidGVzdCIsImxlbiIsImFycjIiLCJsIiwidSIsImEiLCJmIiwibmV4dCIsImRvbmUiLCJ1c2VFbG1pc2giLCJfcmVmIiwiX2Zha2VPcHRpb25zJGRpc3BhdGNoIiwicHJvcHMiLCJpbml0IiwidXBkYXRlIiwic3Vic2NyaXB0aW9uIiwicnVubmluZyIsImJ1ZmZlciIsImN1cnJlbnRNb2RlbCIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIm1vZGVsIiwic2V0TW9kZWwiLCJwcm9wc1JlZiIsInVzZVJlZiIsImlzTW91bnRlZFJlZiIsInVzZUVmZmVjdCIsImN1cnJlbnQiLCJpbml0aWFsaXplZE1vZGVsIiwiZmFrZU9wdGlvbnMiLCJnZXRGYWtlT3B0aW9uc09uY2UiLCJkaXNwYXRjaCIsInVzZUNhbGxiYWNrIiwibXNnIiwibmV4dE1zZyIsIm1vZGlmaWVkIiwiaGFuZGxlTWVzc2FnZSIsInNoaWZ0IiwicHJldk1vZGVsIiwiX1NlcnZpY2VzJGxvZ2dlciIsInVwZGF0ZWRNb2RlbCIsIlNlcnZpY2VzIiwibG9nZ2VyIiwiZGVidWciLCJfU2VydmljZXMkbG9nZ2VyMiIsIl9yZWYyIiwiX3JlZjMiLCJpbml0TW9kZWwiLCJpbml0Q29tbWFuZHMiLCJleGVjQ21kIiwiY29uY2F0IiwiX3N1YnNjcmlwdGlvbiIsIl9zdWJzY3JpcHRpb24yIiwic3ViQ21kIiwiZGVzdHJ1Y3RvciIsImxvZ01lc3NhZ2UiLCJfY2FsbFVwZGF0ZSIsImNhbGxVcGRhdGUiLCJfY2FsbFVwZGF0ZTIiLCJuZXdNb2RlbCIsImNvbW1hbmRzIiwibW9kZWxIYXNDaGFuZ2VkIiwiY2FsbFVwZGF0ZU1hcCIsInVwZGF0ZU1hcCIsIm1zZ05hbWUiXSwic291cmNlcyI6WyIuLi9zcmMvdXNlRWxtaXNoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwcyAqL1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgZXhlY0NtZCwgbG9nTWVzc2FnZSwgbW9kZWxIYXNDaGFuZ2VkIH0gZnJvbSBcIi4vQ29tbW9uXCI7XG5pbXBvcnQgeyBTZXJ2aWNlcyB9IGZyb20gXCIuL0luaXRcIjtcbmltcG9ydCB7IENtZCwgRGlzcGF0Y2gsIEluaXRGdW5jdGlvbiwgTWVzc2FnZSwgTnVsbGFibGUsIFVwZGF0ZUZ1bmN0aW9uLCBVcGRhdGVNYXAsIFVwZGF0ZVJldHVyblR5cGUgfSBmcm9tIFwiLi9UeXBlc1wiO1xuaW1wb3J0IHsgZ2V0RmFrZU9wdGlvbnNPbmNlIH0gZnJvbSBcIi4vZmFrZU9wdGlvbnNcIjtcblxuLyoqXG4gKiBUaGUgcmV0dXJuIHR5cGUgb2YgdGhlIGBzdWJzY3JpcHRpb25gIGZ1bmN0aW9uLlxuICogQHRlbXBsYXRlIFRNZXNzYWdlIFRoZSB0eXBlIG9mIHRoZSBtZXNzYWdlcyBkaXNjcmltaW5hdGVkIHVuaW9uLlxuICovXG50eXBlIFN1YnNjcmlwdGlvblJlc3VsdDxUTWVzc2FnZT4gPSBbQ21kPFRNZXNzYWdlPiwgKCgpID0+IHZvaWQpP107XG50eXBlIFN1YnNjcmlwdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+ID0gKG1vZGVsOiBUTW9kZWwsIHByb3BzOiBUUHJvcHMpID0+IFN1YnNjcmlwdGlvblJlc3VsdDxUTWVzc2FnZT47XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgdGhlIGB1c2VFbG1pc2hgIGhvb2suXG4gKiBAaW50ZXJmYWNlIFVzZUVsbWlzaE9wdGlvbnNcbiAqIEB0ZW1wbGF0ZSBUUHJvcHMgVGhlIHR5cGUgb2YgdGhlIHByb3BzLlxuICogQHRlbXBsYXRlIFRNb2RlbCBUaGUgdHlwZSBvZiB0aGUgbW9kZWwuXG4gKiBAdGVtcGxhdGUgVE1lc3NhZ2UgVGhlIHR5cGUgb2YgdGhlIG1lc3NhZ2VzIGRpc2NyaW1pbmF0ZWQgdW5pb24uXG4gKi9cbmludGVyZmFjZSBVc2VFbG1pc2hPcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+IHtcblx0LyoqXG5cdCAqIFRoZSBuYW1lIG9mIHRoZSBjb21wb25lbnQuIFRoaXMgaXMgdXNlZCBmb3IgbG9nZ2luZyBvbmx5LlxuXHQgKiBAdHlwZSB7c3RyaW5nfVxuXHQgKi9cblx0bmFtZTogc3RyaW5nO1xuXHQvKipcblx0ICogVGhlIHByb3BzIHBhc3NlZCB0byB0aGUgY29tcG9uZW50LlxuXHQgKiBAdHlwZSB7VFByb3BzfVxuXHQgKi9cblx0cHJvcHM6IFRQcm9wcztcblx0LyoqXG5cdCAqIFRoZSBmdW5jdGlvbiB0byBpbml0aWFsaXplIHRoZSBjb21wb25lbnRzIG1vZGVsLiBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgY2FsbGVkIG9uY2UuXG5cdCAqIEB0eXBlIHtJbml0RnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPn1cblx0ICovXG5cdGluaXQ6IEluaXRGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+O1xuXHQvKipcblx0ICogVGhlIGB1cGRhdGVgIGZ1bmN0aW9uIG9yIHVwZGF0ZSBtYXAgb2JqZWN0LlxuXHQgKiBAdHlwZSB7KFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPil9XG5cdCAqL1xuXHR1cGRhdGU6IFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPjtcblx0LyoqXG5cdCAqIFRoZSBvcHRpb25hbCBgc3Vic2NyaXB0aW9uYCBmdW5jdGlvbi4gVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGNhbGxlZCBvbmNlLlxuXHQgKiBAdHlwZSB7KFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPil9XG5cdCAqL1xuXHRzdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPjtcbn1cblxuLyoqXG4gKiBIb29rIHRvIHVzZSB0aGUgRWxtIGFyY2hpdGVjdHVyZSBwYXR0ZXJuIGluIGEgZnVuY3Rpb24gY29tcG9uZW50LlxuICogQHBhcmFtIHtVc2VFbG1pc2hPcHRpb25zfSBvcHRpb25zIFRoZSBvcHRpb25zIHBhc3NlZCB0aGUgdGhlIGhvb2suXG4gKiBAcmV0dXJucyBBIHR1cGxlIGNvbnRhaW5pbmcgdGhlIGN1cnJlbnQgbW9kZWwgYW5kIHRoZSBkaXNwYXRjaGVyLlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IFttb2RlbCwgZGlzcGF0Y2hdID0gdXNlRWxtaXNoKHsgcHJvcHMsIGluaXQsIHVwZGF0ZSwgbmFtZTogXCJNeUNvbXBvbmVudFwiIH0pO1xuICovXG5mdW5jdGlvbiB1c2VFbG1pc2g8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4oe1xuXHRuYW1lLFxuXHRwcm9wcyxcblx0aW5pdCxcblx0dXBkYXRlLFxuXHRzdWJzY3JpcHRpb24sXG59OiBVc2VFbG1pc2hPcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4pOiBbVE1vZGVsLCBEaXNwYXRjaDxUTWVzc2FnZT5dIHtcblx0bGV0IHJ1bm5pbmcgPSBmYWxzZTtcblx0Y29uc3QgYnVmZmVyOiBUTWVzc2FnZVtdID0gW107XG5cdGxldCBjdXJyZW50TW9kZWw6IFBhcnRpYWw8VE1vZGVsPiA9IHt9O1xuXG5cdGNvbnN0IFttb2RlbCwgc2V0TW9kZWxdID0gdXNlU3RhdGU8TnVsbGFibGU8VE1vZGVsPj4obnVsbCk7XG5cdGNvbnN0IHByb3BzUmVmID0gdXNlUmVmKHByb3BzKTtcblx0Y29uc3QgaXNNb3VudGVkUmVmID0gdXNlUmVmKHRydWUpO1xuXG5cdHVzZUVmZmVjdCgoKSA9PiB7XG5cdFx0aXNNb3VudGVkUmVmLmN1cnJlbnQgPSB0cnVlO1xuXG5cdFx0cmV0dXJuICgpID0+IHtcblx0XHRcdGlzTW91bnRlZFJlZi5jdXJyZW50ID0gZmFsc2U7XG5cdFx0fTtcblx0fSwgW10pO1xuXG5cdGxldCBpbml0aWFsaXplZE1vZGVsID0gbW9kZWw7XG5cblx0aWYgKHByb3BzUmVmLmN1cnJlbnQgIT09IHByb3BzKSB7XG5cdFx0cHJvcHNSZWYuY3VycmVudCA9IHByb3BzO1xuXHR9XG5cblx0Y29uc3QgZmFrZU9wdGlvbnMgPSBnZXRGYWtlT3B0aW9uc09uY2UoKTtcblx0Y29uc3QgZGlzcGF0Y2ggPSB1c2VDYWxsYmFjayhcblx0XHRmYWtlT3B0aW9ucz8uZGlzcGF0Y2ggPz9cblx0XHRcdCgobXNnOiBUTWVzc2FnZSk6IHZvaWQgPT4ge1xuXHRcdFx0XHRpZiAocnVubmluZykge1xuXHRcdFx0XHRcdGJ1ZmZlci5wdXNoKG1zZyk7XG5cblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRydW5uaW5nID0gdHJ1ZTtcblxuXHRcdFx0XHRsZXQgbmV4dE1zZzogVE1lc3NhZ2UgfCB1bmRlZmluZWQgPSBtc2c7XG5cdFx0XHRcdGxldCBtb2RpZmllZCA9IGZhbHNlO1xuXG5cdFx0XHRcdGRvIHtcblx0XHRcdFx0XHRtb2RpZmllZCA9IGhhbmRsZU1lc3NhZ2UobmV4dE1zZyk7XG5cblx0XHRcdFx0XHRuZXh0TXNnID0gYnVmZmVyLnNoaWZ0KCk7XG5cdFx0XHRcdH0gd2hpbGUgKG5leHRNc2cpO1xuXG5cdFx0XHRcdHJ1bm5pbmcgPSBmYWxzZTtcblxuXHRcdFx0XHRpZiAoaXNNb3VudGVkUmVmLmN1cnJlbnQgJiYgbW9kaWZpZWQpIHtcblx0XHRcdFx0XHRzZXRNb2RlbCgocHJldk1vZGVsKSA9PiB7XG5cdFx0XHRcdFx0XHRjb25zdCB1cGRhdGVkTW9kZWwgPSB7IC4uLihwcmV2TW9kZWwgYXMgVE1vZGVsKSwgLi4uY3VycmVudE1vZGVsIH07XG5cblx0XHRcdFx0XHRcdFNlcnZpY2VzLmxvZ2dlcj8uZGVidWcoXCJVcGRhdGUgbW9kZWwgZm9yXCIsIG5hbWUsIHVwZGF0ZWRNb2RlbCk7XG5cblx0XHRcdFx0XHRcdHJldHVybiB1cGRhdGVkTW9kZWw7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdH0pLFxuXHRcdFtdLFxuXHQpO1xuXG5cdGlmICghaW5pdGlhbGl6ZWRNb2RlbCkge1xuXHRcdGNvbnN0IFtpbml0TW9kZWwsIC4uLmluaXRDb21tYW5kc10gPSBmYWtlT3B0aW9ucz8ubW9kZWwgPyBbZmFrZU9wdGlvbnMubW9kZWwgYXMgVE1vZGVsXSA6IGluaXQocHJvcHMpO1xuXG5cdFx0aW5pdGlhbGl6ZWRNb2RlbCA9IGluaXRNb2RlbDtcblx0XHRzZXRNb2RlbChpbml0aWFsaXplZE1vZGVsKTtcblxuXHRcdFNlcnZpY2VzLmxvZ2dlcj8uZGVidWcoXCJJbml0aWFsIG1vZGVsIGZvclwiLCBuYW1lLCBpbml0aWFsaXplZE1vZGVsKTtcblxuXHRcdGV4ZWNDbWQoZGlzcGF0Y2gsIC4uLmluaXRDb21tYW5kcyk7XG5cdH1cblxuXHQvLyBiaW9tZS1pZ25vcmUgbGludC9udXJzZXJ5L3VzZUV4aGF1c3RpdmVEZXBlbmRlbmNpZXM6IFdlIHdhbnQgdG8gcnVuIHRoaXMgZWZmZWN0IG9ubHkgb25jZVxuXHR1c2VFZmZlY3QoKCkgPT4ge1xuXHRcdGlmIChzdWJzY3JpcHRpb24pIHtcblx0XHRcdGNvbnN0IFtzdWJDbWQsIGRlc3RydWN0b3JdID0gc3Vic2NyaXB0aW9uKGluaXRpYWxpemVkTW9kZWwgYXMgVE1vZGVsLCBwcm9wcyk7XG5cblx0XHRcdGV4ZWNDbWQoZGlzcGF0Y2gsIHN1YkNtZCk7XG5cblx0XHRcdHJldHVybiBkZXN0cnVjdG9yO1xuXHRcdH1cblx0fSwgW10pO1xuXG5cdHJldHVybiBbaW5pdGlhbGl6ZWRNb2RlbCwgZGlzcGF0Y2hdO1xuXG5cdGZ1bmN0aW9uIGhhbmRsZU1lc3NhZ2UobmV4dE1zZzogVE1lc3NhZ2UpOiBib29sZWFuIHtcblx0XHRpZiAoIWluaXRpYWxpemVkTW9kZWwpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHRsZXQgbW9kaWZpZWQgPSBmYWxzZTtcblxuXHRcdGxvZ01lc3NhZ2UobmFtZSwgbmV4dE1zZyk7XG5cblx0XHRjb25zdCBbbmV3TW9kZWwsIC4uLmNvbW1hbmRzXSA9IGNhbGxVcGRhdGUodXBkYXRlLCBuZXh0TXNnLCB7IC4uLmluaXRpYWxpemVkTW9kZWwsIC4uLmN1cnJlbnRNb2RlbCB9LCBwcm9wc1JlZi5jdXJyZW50KTtcblxuXHRcdGlmIChtb2RlbEhhc0NoYW5nZWQoY3VycmVudE1vZGVsLCBuZXdNb2RlbCkpIHtcblx0XHRcdGN1cnJlbnRNb2RlbCA9IHsgLi4uY3VycmVudE1vZGVsLCAuLi5uZXdNb2RlbCB9O1xuXG5cdFx0XHRtb2RpZmllZCA9IHRydWU7XG5cdFx0fVxuXG5cdFx0ZXhlY0NtZChkaXNwYXRjaCwgLi4uY29tbWFuZHMpO1xuXG5cdFx0cmV0dXJuIG1vZGlmaWVkO1xuXHR9XG59XG5cbmZ1bmN0aW9uIGNhbGxVcGRhdGU8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4oXG5cdHVwZGF0ZTogVXBkYXRlRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiB8IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuXHRtc2c6IFRNZXNzYWdlLFxuXHRtb2RlbDogVE1vZGVsLFxuXHRwcm9wczogVFByb3BzLFxuKTogVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPiB7XG5cdGlmICh0eXBlb2YgdXBkYXRlID09PSBcImZ1bmN0aW9uXCIpIHtcblx0XHRyZXR1cm4gdXBkYXRlKG1vZGVsLCBtc2csIHByb3BzKTtcblx0fVxuXG5cdHJldHVybiBjYWxsVXBkYXRlTWFwKHVwZGF0ZSwgbXNnLCBtb2RlbCwgcHJvcHMpO1xufVxuXG5mdW5jdGlvbiBjYWxsVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+KFxuXHR1cGRhdGVNYXA6IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuXHRtc2c6IFRNZXNzYWdlLFxuXHRtb2RlbDogVE1vZGVsLFxuXHRwcm9wczogVFByb3BzLFxuKTogVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPiB7XG5cdGNvbnN0IG1zZ05hbWU6IFRNZXNzYWdlW1wibmFtZVwiXSA9IG1zZy5uYW1lO1xuXG5cdHJldHVybiB1cGRhdGVNYXBbbXNnTmFtZV0obXNnLCBtb2RlbCwgcHJvcHMpO1xufVxuXG5leHBvcnQgdHlwZSB7IFN1YnNjcmlwdGlvbiwgU3Vic2NyaXB0aW9uUmVzdWx0LCBVc2VFbG1pc2hPcHRpb25zIH07XG5cbmV4cG9ydCB7IGNhbGxVcGRhdGUsIGNhbGxVcGRhdGVNYXAsIHVzZUVsbWlzaCB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFDQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxLQUFBLEdBQUFGLE9BQUE7QUFFQSxJQUFBRyxZQUFBLEdBQUFILE9BQUE7QUFBbUQsU0FBQUksbUJBQUFDLEdBQUEsV0FBQUMsa0JBQUEsQ0FBQUQsR0FBQSxLQUFBRSxnQkFBQSxDQUFBRixHQUFBLEtBQUFHLDJCQUFBLENBQUFILEdBQUEsS0FBQUksa0JBQUE7QUFBQSxTQUFBQSxtQkFBQSxjQUFBQyxTQUFBO0FBQUEsU0FBQUosbUJBQUFELEdBQUEsUUFBQU0sS0FBQSxDQUFBQyxPQUFBLENBQUFQLEdBQUEsVUFBQVEsaUJBQUEsQ0FBQVIsR0FBQTtBQUFBLFNBQUFTLFNBQUFULEdBQUEsV0FBQVUsZUFBQSxDQUFBVixHQUFBLEtBQUFFLGdCQUFBLENBQUFGLEdBQUEsS0FBQUcsMkJBQUEsQ0FBQUgsR0FBQSxLQUFBVyxnQkFBQTtBQUFBLFNBQUFULGlCQUFBVSxJQUFBLGVBQUFDLE1BQUEsb0JBQUFELElBQUEsQ0FBQUMsTUFBQSxDQUFBQyxRQUFBLGFBQUFGLElBQUEsK0JBQUFOLEtBQUEsQ0FBQVMsSUFBQSxDQUFBSCxJQUFBO0FBQUEsU0FBQUksUUFBQUMsQ0FBQSxFQUFBQyxDQUFBLFFBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFKLENBQUEsT0FBQUcsTUFBQSxDQUFBRSxxQkFBQSxRQUFBQyxDQUFBLEdBQUFILE1BQUEsQ0FBQUUscUJBQUEsQ0FBQUwsQ0FBQSxHQUFBQyxDQUFBLEtBQUFLLENBQUEsR0FBQUEsQ0FBQSxDQUFBQyxNQUFBLFdBQUFOLENBQUEsV0FBQUUsTUFBQSxDQUFBSyx3QkFBQSxDQUFBUixDQUFBLEVBQUFDLENBQUEsRUFBQVEsVUFBQSxPQUFBUCxDQUFBLENBQUFRLElBQUEsQ0FBQUMsS0FBQSxDQUFBVCxDQUFBLEVBQUFJLENBQUEsWUFBQUosQ0FBQTtBQUFBLFNBQUFVLGNBQUFaLENBQUEsYUFBQUMsQ0FBQSxNQUFBQSxDQUFBLEdBQUFZLFNBQUEsQ0FBQUMsTUFBQSxFQUFBYixDQUFBLFVBQUFDLENBQUEsV0FBQVcsU0FBQSxDQUFBWixDQUFBLElBQUFZLFNBQUEsQ0FBQVosQ0FBQSxRQUFBQSxDQUFBLE9BQUFGLE9BQUEsQ0FBQUksTUFBQSxDQUFBRCxDQUFBLE9BQUFhLE9BQUEsV0FBQWQsQ0FBQSxJQUFBZSxlQUFBLENBQUFoQixDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxDQUFBRCxDQUFBLFNBQUFFLE1BQUEsQ0FBQWMseUJBQUEsR0FBQWQsTUFBQSxDQUFBZSxnQkFBQSxDQUFBbEIsQ0FBQSxFQUFBRyxNQUFBLENBQUFjLHlCQUFBLENBQUFmLENBQUEsS0FBQUgsT0FBQSxDQUFBSSxNQUFBLENBQUFELENBQUEsR0FBQWEsT0FBQSxXQUFBZCxDQUFBLElBQUFFLE1BQUEsQ0FBQWdCLGNBQUEsQ0FBQW5CLENBQUEsRUFBQUMsQ0FBQSxFQUFBRSxNQUFBLENBQUFLLHdCQUFBLENBQUFOLENBQUEsRUFBQUQsQ0FBQSxpQkFBQUQsQ0FBQTtBQUFBLFNBQUFnQixnQkFBQUksR0FBQSxFQUFBQyxHQUFBLEVBQUFDLEtBQUEsSUFBQUQsR0FBQSxHQUFBRSxjQUFBLENBQUFGLEdBQUEsT0FBQUEsR0FBQSxJQUFBRCxHQUFBLElBQUFqQixNQUFBLENBQUFnQixjQUFBLENBQUFDLEdBQUEsRUFBQUMsR0FBQSxJQUFBQyxLQUFBLEVBQUFBLEtBQUEsRUFBQWIsVUFBQSxRQUFBZSxZQUFBLFFBQUFDLFFBQUEsb0JBQUFMLEdBQUEsQ0FBQUMsR0FBQSxJQUFBQyxLQUFBLFdBQUFGLEdBQUE7QUFBQSxTQUFBRyxlQUFBRyxHQUFBLFFBQUFMLEdBQUEsR0FBQU0sWUFBQSxDQUFBRCxHQUFBLG9CQUFBRSxPQUFBLENBQUFQLEdBQUEsaUJBQUFBLEdBQUEsR0FBQVEsTUFBQSxDQUFBUixHQUFBO0FBQUEsU0FBQU0sYUFBQUcsS0FBQSxFQUFBQyxJQUFBLFFBQUFILE9BQUEsQ0FBQUUsS0FBQSxrQkFBQUEsS0FBQSxrQkFBQUEsS0FBQSxNQUFBRSxJQUFBLEdBQUFGLEtBQUEsQ0FBQWxDLE1BQUEsQ0FBQXFDLFdBQUEsT0FBQUQsSUFBQSxLQUFBRSxTQUFBLFFBQUFDLEdBQUEsR0FBQUgsSUFBQSxDQUFBSSxJQUFBLENBQUFOLEtBQUEsRUFBQUMsSUFBQSxvQkFBQUgsT0FBQSxDQUFBTyxHQUFBLHVCQUFBQSxHQUFBLFlBQUEvQyxTQUFBLDREQUFBMkMsSUFBQSxnQkFBQUYsTUFBQSxHQUFBUSxNQUFBLEVBQUFQLEtBQUE7QUFBQSxTQUFBUSxlQUFBdkQsR0FBQSxFQUFBd0QsQ0FBQSxXQUFBOUMsZUFBQSxDQUFBVixHQUFBLEtBQUF5RCxxQkFBQSxDQUFBekQsR0FBQSxFQUFBd0QsQ0FBQSxLQUFBckQsMkJBQUEsQ0FBQUgsR0FBQSxFQUFBd0QsQ0FBQSxLQUFBN0MsZ0JBQUE7QUFBQSxTQUFBQSxpQkFBQSxjQUFBTixTQUFBO0FBQUEsU0FBQUYsNEJBQUFvQixDQUFBLEVBQUFtQyxNQUFBLFNBQUFuQyxDQUFBLHFCQUFBQSxDQUFBLHNCQUFBZixpQkFBQSxDQUFBZSxDQUFBLEVBQUFtQyxNQUFBLE9BQUFDLENBQUEsR0FBQXZDLE1BQUEsQ0FBQXdDLFNBQUEsQ0FBQUMsUUFBQSxDQUFBUixJQUFBLENBQUE5QixDQUFBLEVBQUF1QyxLQUFBLGFBQUFILENBQUEsaUJBQUFwQyxDQUFBLENBQUF3QyxXQUFBLEVBQUFKLENBQUEsR0FBQXBDLENBQUEsQ0FBQXdDLFdBQUEsQ0FBQUMsSUFBQSxNQUFBTCxDQUFBLGNBQUFBLENBQUEsbUJBQUFyRCxLQUFBLENBQUFTLElBQUEsQ0FBQVEsQ0FBQSxPQUFBb0MsQ0FBQSwrREFBQU0sSUFBQSxDQUFBTixDQUFBLFVBQUFuRCxpQkFBQSxDQUFBZSxDQUFBLEVBQUFtQyxNQUFBO0FBQUEsU0FBQWxELGtCQUFBUixHQUFBLEVBQUFrRSxHQUFBLFFBQUFBLEdBQUEsWUFBQUEsR0FBQSxHQUFBbEUsR0FBQSxDQUFBK0IsTUFBQSxFQUFBbUMsR0FBQSxHQUFBbEUsR0FBQSxDQUFBK0IsTUFBQSxXQUFBeUIsQ0FBQSxNQUFBVyxJQUFBLE9BQUE3RCxLQUFBLENBQUE0RCxHQUFBLEdBQUFWLENBQUEsR0FBQVUsR0FBQSxFQUFBVixDQUFBLElBQUFXLElBQUEsQ0FBQVgsQ0FBQSxJQUFBeEQsR0FBQSxDQUFBd0QsQ0FBQSxVQUFBVyxJQUFBO0FBQUEsU0FBQVYsc0JBQUF2QyxDQUFBLEVBQUFrRCxDQUFBLFFBQUFqRCxDQUFBLFdBQUFELENBQUEsZ0NBQUFMLE1BQUEsSUFBQUssQ0FBQSxDQUFBTCxNQUFBLENBQUFDLFFBQUEsS0FBQUksQ0FBQSw0QkFBQUMsQ0FBQSxRQUFBRixDQUFBLEVBQUEwQyxDQUFBLEVBQUFILENBQUEsRUFBQWEsQ0FBQSxFQUFBQyxDQUFBLE9BQUFDLENBQUEsT0FBQWhELENBQUEsaUJBQUFpQyxDQUFBLElBQUFyQyxDQUFBLEdBQUFBLENBQUEsQ0FBQWtDLElBQUEsQ0FBQW5DLENBQUEsR0FBQXNELElBQUEsUUFBQUosQ0FBQSxRQUFBaEQsTUFBQSxDQUFBRCxDQUFBLE1BQUFBLENBQUEsVUFBQW9ELENBQUEsdUJBQUFBLENBQUEsSUFBQXRELENBQUEsR0FBQXVDLENBQUEsQ0FBQUgsSUFBQSxDQUFBbEMsQ0FBQSxHQUFBc0QsSUFBQSxNQUFBSCxDQUFBLENBQUEzQyxJQUFBLENBQUFWLENBQUEsQ0FBQXNCLEtBQUEsR0FBQStCLENBQUEsQ0FBQXZDLE1BQUEsS0FBQXFDLENBQUEsR0FBQUcsQ0FBQSxpQkFBQXJELENBQUEsSUFBQUssQ0FBQSxPQUFBb0MsQ0FBQSxHQUFBekMsQ0FBQSx5QkFBQXFELENBQUEsWUFBQXBELENBQUEsZUFBQWtELENBQUEsR0FBQWxELENBQUEsY0FBQUMsTUFBQSxDQUFBaUQsQ0FBQSxNQUFBQSxDQUFBLDJCQUFBOUMsQ0FBQSxRQUFBb0MsQ0FBQSxhQUFBVyxDQUFBO0FBQUEsU0FBQTVELGdCQUFBVixHQUFBLFFBQUFNLEtBQUEsQ0FBQUMsT0FBQSxDQUFBUCxHQUFBLFVBQUFBLEdBQUEsSUFMbkQ7QUFPQTtBQUNBO0FBQ0E7QUFDQTs7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUE2QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTMEUsU0FBU0EsQ0FBQUMsSUFBQSxFQU0yRDtFQUFBLElBQUFDLHFCQUFBO0VBQUEsSUFMNUVaLElBQUksR0FBQVcsSUFBQSxDQUFKWCxJQUFJO0lBQ0phLEtBQUssR0FBQUYsSUFBQSxDQUFMRSxLQUFLO0lBQ0xDLElBQUksR0FBQUgsSUFBQSxDQUFKRyxJQUFJO0lBQ0pDLE1BQU0sR0FBQUosSUFBQSxDQUFOSSxNQUFNO0lBQ05DLFlBQVksR0FBQUwsSUFBQSxDQUFaSyxZQUFZO0VBRVosSUFBSUMsT0FBTyxHQUFHLEtBQUs7RUFDbkIsSUFBTUMsTUFBa0IsR0FBRyxFQUFFO0VBQzdCLElBQUlDLFlBQTZCLEdBQUcsQ0FBQyxDQUFDO0VBRXRDLElBQUFDLFNBQUEsR0FBMEIsSUFBQUMsZUFBUSxFQUFtQixJQUFJLENBQUM7SUFBQUMsVUFBQSxHQUFBL0IsY0FBQSxDQUFBNkIsU0FBQTtJQUFuREcsS0FBSyxHQUFBRCxVQUFBO0lBQUVFLFFBQVEsR0FBQUYsVUFBQTtFQUN0QixJQUFNRyxRQUFRLEdBQUcsSUFBQUMsYUFBTSxFQUFDYixLQUFLLENBQUM7RUFDOUIsSUFBTWMsWUFBWSxHQUFHLElBQUFELGFBQU0sRUFBQyxJQUFJLENBQUM7RUFFakMsSUFBQUUsZ0JBQVMsRUFBQyxZQUFNO0lBQ2ZELFlBQVksQ0FBQ0UsT0FBTyxHQUFHLElBQUk7SUFFM0IsT0FBTyxZQUFNO01BQ1pGLFlBQVksQ0FBQ0UsT0FBTyxHQUFHLEtBQUs7SUFDN0IsQ0FBQztFQUNGLENBQUMsRUFBRSxFQUFFLENBQUM7RUFFTixJQUFJQyxnQkFBZ0IsR0FBR1AsS0FBSztFQUU1QixJQUFJRSxRQUFRLENBQUNJLE9BQU8sS0FBS2hCLEtBQUssRUFBRTtJQUMvQlksUUFBUSxDQUFDSSxPQUFPLEdBQUdoQixLQUFLO0VBQ3pCO0VBRUEsSUFBTWtCLFdBQVcsR0FBRyxJQUFBQywrQkFBa0IsRUFBQyxDQUFDO0VBQ3hDLElBQU1DLFFBQVEsR0FBRyxJQUFBQyxrQkFBVyxHQUFBdEIscUJBQUEsR0FDM0JtQixXQUFXLGFBQVhBLFdBQVcsdUJBQVhBLFdBQVcsQ0FBRUUsUUFBUSxjQUFBckIscUJBQUEsY0FBQUEscUJBQUEsR0FDbkIsVUFBQ3VCLEdBQWEsRUFBVztJQUN6QixJQUFJbEIsT0FBTyxFQUFFO01BQ1pDLE1BQU0sQ0FBQ3ZELElBQUksQ0FBQ3dFLEdBQUcsQ0FBQztNQUVoQjtJQUNEO0lBRUFsQixPQUFPLEdBQUcsSUFBSTtJQUVkLElBQUltQixPQUE2QixHQUFHRCxHQUFHO0lBQ3ZDLElBQUlFLFFBQVEsR0FBRyxLQUFLO0lBRXBCLEdBQUc7TUFDRkEsUUFBUSxHQUFHQyxhQUFhLENBQUNGLE9BQU8sQ0FBQztNQUVqQ0EsT0FBTyxHQUFHbEIsTUFBTSxDQUFDcUIsS0FBSyxDQUFDLENBQUM7SUFDekIsQ0FBQyxRQUFRSCxPQUFPO0lBRWhCbkIsT0FBTyxHQUFHLEtBQUs7SUFFZixJQUFJVSxZQUFZLENBQUNFLE9BQU8sSUFBSVEsUUFBUSxFQUFFO01BQ3JDYixRQUFRLENBQUMsVUFBQ2dCLFNBQVMsRUFBSztRQUFBLElBQUFDLGdCQUFBO1FBQ3ZCLElBQU1DLFlBQVksR0FBQTdFLGFBQUEsQ0FBQUEsYUFBQSxLQUFTMkUsU0FBUyxHQUFnQnJCLFlBQVksQ0FBRTtRQUVsRSxDQUFBc0IsZ0JBQUEsR0FBQUUsY0FBUSxDQUFDQyxNQUFNLGNBQUFILGdCQUFBLGVBQWZBLGdCQUFBLENBQWlCSSxLQUFLLENBQUMsa0JBQWtCLEVBQUU3QyxJQUFJLEVBQUUwQyxZQUFZLENBQUM7UUFFOUQsT0FBT0EsWUFBWTtNQUNwQixDQUFDLENBQUM7SUFDSDtFQUNELENBQUMsRUFDRixFQUNELENBQUM7RUFFRCxJQUFJLENBQUNaLGdCQUFnQixFQUFFO0lBQUEsSUFBQWdCLGlCQUFBO0lBQ3RCLElBQUFDLEtBQUEsR0FBcUNoQixXQUFXLGFBQVhBLFdBQVcsZUFBWEEsV0FBVyxDQUFFUixLQUFLLEdBQUcsQ0FBQ1EsV0FBVyxDQUFDUixLQUFLLENBQVcsR0FBR1QsSUFBSSxDQUFDRCxLQUFLLENBQUM7TUFBQW1DLEtBQUEsR0FBQXZHLFFBQUEsQ0FBQXNHLEtBQUE7TUFBOUZFLFNBQVMsR0FBQUQsS0FBQTtNQUFLRSxZQUFZLEdBQUFGLEtBQUEsQ0FBQWxELEtBQUE7SUFFakNnQyxnQkFBZ0IsR0FBR21CLFNBQVM7SUFDNUJ6QixRQUFRLENBQUNNLGdCQUFnQixDQUFDO0lBRTFCLENBQUFnQixpQkFBQSxHQUFBSCxjQUFRLENBQUNDLE1BQU0sY0FBQUUsaUJBQUEsZUFBZkEsaUJBQUEsQ0FBaUJELEtBQUssQ0FBQyxtQkFBbUIsRUFBRTdDLElBQUksRUFBRThCLGdCQUFnQixDQUFDO0lBRW5FcUIsZUFBTyxDQUFBdkYsS0FBQSxVQUFDcUUsUUFBUSxFQUFBbUIsTUFBQSxDQUFBckgsa0JBQUEsQ0FBS21ILFlBQVksR0FBQztFQUNuQzs7RUFFQTtFQUNBLElBQUF0QixnQkFBUyxFQUFDLFlBQU07SUFDZixJQUFJWixZQUFZLEVBQUU7TUFDakIsSUFBQXFDLGFBQUEsR0FBNkJyQyxZQUFZLENBQUNjLGdCQUFnQixFQUFZakIsS0FBSyxDQUFDO1FBQUF5QyxjQUFBLEdBQUEvRCxjQUFBLENBQUE4RCxhQUFBO1FBQXJFRSxNQUFNLEdBQUFELGNBQUE7UUFBRUUsVUFBVSxHQUFBRixjQUFBO01BRXpCLElBQUFILGVBQU8sRUFBQ2xCLFFBQVEsRUFBRXNCLE1BQU0sQ0FBQztNQUV6QixPQUFPQyxVQUFVO0lBQ2xCO0VBQ0QsQ0FBQyxFQUFFLEVBQUUsQ0FBQztFQUVOLE9BQU8sQ0FBQzFCLGdCQUFnQixFQUFFRyxRQUFRLENBQUM7RUFFbkMsU0FBU0ssYUFBYUEsQ0FBQ0YsT0FBaUIsRUFBVztJQUNsRCxJQUFJLENBQUNOLGdCQUFnQixFQUFFO01BQ3RCLE9BQU8sS0FBSztJQUNiO0lBRUEsSUFBSU8sUUFBUSxHQUFHLEtBQUs7SUFFcEIsSUFBQW9CLGtCQUFVLEVBQUN6RCxJQUFJLEVBQUVvQyxPQUFPLENBQUM7SUFFekIsSUFBQXNCLFdBQUEsR0FBZ0NDLFVBQVUsQ0FBQzVDLE1BQU0sRUFBRXFCLE9BQU8sRUFBQXZFLGFBQUEsQ0FBQUEsYUFBQSxLQUFPaUUsZ0JBQWdCLEdBQUtYLFlBQVksR0FBSU0sUUFBUSxDQUFDSSxPQUFPLENBQUM7TUFBQStCLFlBQUEsR0FBQW5ILFFBQUEsQ0FBQWlILFdBQUE7TUFBaEhHLFFBQVEsR0FBQUQsWUFBQTtNQUFLRSxRQUFRLEdBQUFGLFlBQUEsQ0FBQTlELEtBQUE7SUFFNUIsSUFBSSxJQUFBaUUsdUJBQWUsRUFBQzVDLFlBQVksRUFBRTBDLFFBQVEsQ0FBQyxFQUFFO01BQzVDMUMsWUFBWSxHQUFBdEQsYUFBQSxDQUFBQSxhQUFBLEtBQVFzRCxZQUFZLEdBQUswQyxRQUFRLENBQUU7TUFFL0N4QixRQUFRLEdBQUcsSUFBSTtJQUNoQjtJQUVBYyxlQUFPLENBQUF2RixLQUFBLFVBQUNxRSxRQUFRLEVBQUFtQixNQUFBLENBQUFySCxrQkFBQSxDQUFLK0gsUUFBUSxHQUFDO0lBRTlCLE9BQU96QixRQUFRO0VBQ2hCO0FBQ0Q7QUFFQSxTQUFTc0IsVUFBVUEsQ0FDbEI1QyxNQUFzRixFQUN0Rm9CLEdBQWEsRUFDYlosS0FBYSxFQUNiVixLQUFhLEVBQ3dCO0VBQ3JDLElBQUksT0FBT0UsTUFBTSxLQUFLLFVBQVUsRUFBRTtJQUNqQyxPQUFPQSxNQUFNLENBQUNRLEtBQUssRUFBRVksR0FBRyxFQUFFdEIsS0FBSyxDQUFDO0VBQ2pDO0VBRUEsT0FBT21ELGFBQWEsQ0FBQ2pELE1BQU0sRUFBRW9CLEdBQUcsRUFBRVosS0FBSyxFQUFFVixLQUFLLENBQUM7QUFDaEQ7QUFFQSxTQUFTbUQsYUFBYUEsQ0FDckJDLFNBQThDLEVBQzlDOUIsR0FBYSxFQUNiWixLQUFhLEVBQ2JWLEtBQWEsRUFDd0I7RUFDckMsSUFBTXFELE9BQXlCLEdBQUcvQixHQUFHLENBQUNuQyxJQUFJO0VBRTFDLE9BQU9pRSxTQUFTLENBQUNDLE9BQU8sQ0FBQyxDQUFDL0IsR0FBRyxFQUFFWixLQUFLLEVBQUVWLEtBQUssQ0FBQztBQUM3QyJ9
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-elmish",
|
|
3
|
-
"version": "7.0
|
|
3
|
+
"version": "7.1.0",
|
|
4
4
|
"description": "Elmish for React using Typescript",
|
|
5
5
|
"author": "atheck",
|
|
6
6
|
"license": "MIT",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"build:js": "babel src --out-dir dist --extensions \".ts,.tsx\" --ignore \"./**/*.spec.ts\",\"./**/*.spec.tsx\" --source-maps inline",
|
|
11
11
|
"test": "jest --coverage",
|
|
12
12
|
"test:watch": "jest --watch --coverage",
|
|
13
|
-
"lint": "
|
|
13
|
+
"lint": "biome lint src --max-diagnostics 200 && npx eslint \"src/**/*.ts[x]\"",
|
|
14
14
|
"update": "npx -y npm-check-updates -i --install always",
|
|
15
15
|
"semantic-release": "semantic-release"
|
|
16
16
|
},
|
|
@@ -18,23 +18,23 @@
|
|
|
18
18
|
"react": ">=16.8.0"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
|
-
"@babel/cli": "7.22.
|
|
22
|
-
"@babel/core": "7.22.
|
|
21
|
+
"@babel/cli": "7.22.15",
|
|
22
|
+
"@babel/core": "7.22.19",
|
|
23
23
|
"@babel/plugin-proposal-class-properties": "7.18.6",
|
|
24
|
-
"@babel/preset-env": "7.22.
|
|
25
|
-
"@babel/preset-react": "7.22.
|
|
26
|
-
"@babel/preset-typescript": "7.22.
|
|
24
|
+
"@babel/preset-env": "7.22.15",
|
|
25
|
+
"@babel/preset-react": "7.22.15",
|
|
26
|
+
"@babel/preset-typescript": "7.22.15",
|
|
27
|
+
"@biomejs/biome": "1.2.0",
|
|
27
28
|
"@testing-library/react": "14.0.0",
|
|
28
29
|
"@types/jest": "29.5.4",
|
|
29
30
|
"@types/react": "18.2.21",
|
|
30
|
-
"eslint": "8.
|
|
31
|
-
"eslint-config-heck": "1.
|
|
32
|
-
"jest": "29.
|
|
33
|
-
"jest-environment-jsdom": "29.
|
|
34
|
-
"
|
|
35
|
-
"semantic-release": "21.1.0",
|
|
31
|
+
"eslint": "8.49.0",
|
|
32
|
+
"eslint-config-heck": "1.49.0",
|
|
33
|
+
"jest": "29.7.0",
|
|
34
|
+
"jest-environment-jsdom": "29.7.0",
|
|
35
|
+
"semantic-release": "21.1.1",
|
|
36
36
|
"ts-jest": "29.1.1",
|
|
37
|
-
"typescript": "5.
|
|
37
|
+
"typescript": "5.2.2"
|
|
38
38
|
},
|
|
39
39
|
"homepage": "https://github.com/atheck/react-elmish",
|
|
40
40
|
"repository": {
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.getFakeOptionsOnce = getFakeOptionsOnce;
|
|
7
|
-
exports.setFakeOptions = setFakeOptions;
|
|
8
|
-
/**
|
|
9
|
-
* Options for the `renderWithModel` function.
|
|
10
|
-
* @interface RenderWithModelOptions
|
|
11
|
-
* @template TModel The type of the model.
|
|
12
|
-
* @template TMessage The type of the messages discriminated union.
|
|
13
|
-
*/
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Options for the `renderWithModel` function.
|
|
17
|
-
* @interface RenderWithModelOptions
|
|
18
|
-
* @template TModel The type of the model.
|
|
19
|
-
* @template TMessage The type of the messages discriminated union.
|
|
20
|
-
*/
|
|
21
|
-
|
|
22
|
-
var currentFakeOptions;
|
|
23
|
-
function setFakeOptions(options) {
|
|
24
|
-
currentFakeOptions = options;
|
|
25
|
-
}
|
|
26
|
-
function getFakeOptionsOnce() {
|
|
27
|
-
var temp = currentFakeOptions;
|
|
28
|
-
currentFakeOptions = null;
|
|
29
|
-
return temp;
|
|
30
|
-
}
|
|
31
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjdXJyZW50RmFrZU9wdGlvbnMiLCJzZXRGYWtlT3B0aW9ucyIsIm9wdGlvbnMiLCJnZXRGYWtlT3B0aW9uc09uY2UiLCJ0ZW1wIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL1Rlc3RpbmcvZmFrZU9wdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlzcGF0Y2gsIE1lc3NhZ2UsIE51bGxhYmxlIH0gZnJvbSBcIi4uL1R5cGVzXCI7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgdGhlIGByZW5kZXJXaXRoTW9kZWxgIGZ1bmN0aW9uLlxuICogQGludGVyZmFjZSBSZW5kZXJXaXRoTW9kZWxPcHRpb25zXG4gKiBAdGVtcGxhdGUgVE1vZGVsIFRoZSB0eXBlIG9mIHRoZSBtb2RlbC5cbiAqIEB0ZW1wbGF0ZSBUTWVzc2FnZSBUaGUgdHlwZSBvZiB0aGUgbWVzc2FnZXMgZGlzY3JpbWluYXRlZCB1bmlvbi5cbiAqL1xuaW50ZXJmYWNlIFJlbmRlcldpdGhNb2RlbE9wdGlvbnM8VE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPiB7XG5cdC8qKlxuXHQgKiBBIGZha2UgZGlzcGF0Y2ggZnVuY3Rpb24gdG8gdXNlIHdoZW4gcHJvY2Vzc2luZyBtZXNzYWdlcy5cblx0ICogQHR5cGUge0Rpc3BhdGNoPFRNZXNzYWdlPn1cblx0ICovXG5cdGRpc3BhdGNoPzogRGlzcGF0Y2g8VE1lc3NhZ2U+O1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHRoZSBgcmVuZGVyV2l0aE1vZGVsYCBmdW5jdGlvbi5cbiAqIEBpbnRlcmZhY2UgUmVuZGVyV2l0aE1vZGVsT3B0aW9uc1xuICogQHRlbXBsYXRlIFRNb2RlbCBUaGUgdHlwZSBvZiB0aGUgbW9kZWwuXG4gKiBAdGVtcGxhdGUgVE1lc3NhZ2UgVGhlIHR5cGUgb2YgdGhlIG1lc3NhZ2VzIGRpc2NyaW1pbmF0ZWQgdW5pb24uXG4gKi9cbmludGVyZmFjZSBSZW5kZXJXaXRoTW9kZWxDb25maWc8VE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+XG5cdGV4dGVuZHMgUmVuZGVyV2l0aE1vZGVsT3B0aW9uczxUTWVzc2FnZT4ge1xuXHQvKipcblx0ICogVGhlIG1vZGVsIHRvIHVzZSB3aGVuIHJlbmRlcmluZyB0aGUgY29tcG9uZW50LlxuXHQgKiBAdHlwZSB7VE1vZGVsfVxuXHQgKi9cblx0bW9kZWw6IFRNb2RlbDtcbn1cblxubGV0IGN1cnJlbnRGYWtlT3B0aW9uczogTnVsbGFibGU8UmVuZGVyV2l0aE1vZGVsQ29uZmlnPHVua25vd24sIE1lc3NhZ2U+PjtcblxuZnVuY3Rpb24gc2V0RmFrZU9wdGlvbnM8VE1vZGVsIGV4dGVuZHMgb2JqZWN0LCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+KFxuXHRvcHRpb25zOiBOdWxsYWJsZTxSZW5kZXJXaXRoTW9kZWxDb25maWc8VE1vZGVsLCBUTWVzc2FnZT4+LFxuKTogdm9pZCB7XG5cdGN1cnJlbnRGYWtlT3B0aW9ucyA9IG9wdGlvbnMgYXMgUmVuZGVyV2l0aE1vZGVsQ29uZmlnPHVua25vd24sIE1lc3NhZ2U+O1xufVxuXG5mdW5jdGlvbiBnZXRGYWtlT3B0aW9uc09uY2U8VE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+KCk6IE51bGxhYmxlPFxuXHRSZW5kZXJXaXRoTW9kZWxDb25maWc8VE1vZGVsLCBUTWVzc2FnZT5cbj4ge1xuXHRjb25zdCB0ZW1wID0gY3VycmVudEZha2VPcHRpb25zO1xuXG5cdGN1cnJlbnRGYWtlT3B0aW9ucyA9IG51bGw7XG5cblx0cmV0dXJuIHRlbXAgYXMgUmVuZGVyV2l0aE1vZGVsQ29uZmlnPFRNb2RlbCwgVE1lc3NhZ2U+O1xufVxuXG5leHBvcnQgdHlwZSB7IFJlbmRlcldpdGhNb2RlbE9wdGlvbnMgfTtcblxuZXhwb3J0IHsgZ2V0RmFrZU9wdGlvbnNPbmNlLCBzZXRGYWtlT3B0aW9ucyB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQVNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFVQSxJQUFJQSxrQkFBcUU7QUFFekUsU0FBU0MsY0FBY0EsQ0FDdEJDLE9BQTBELEVBQ25EO0VBQ1BGLGtCQUFrQixHQUFHRSxPQUFrRDtBQUN4RTtBQUVBLFNBQVNDLGtCQUFrQkEsQ0FBQSxFQUV6QjtFQUNELElBQU1DLElBQUksR0FBR0osa0JBQWtCO0VBRS9CQSxrQkFBa0IsR0FBRyxJQUFJO0VBRXpCLE9BQU9JLElBQUk7QUFDWiJ9
|