react-elmish 10.2.0 → 10.3.0-beta.2
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 +32 -1
- package/dist/Common.d.ts +10 -2
- package/dist/Common.js +142 -1
- package/dist/ElmComponent.js +3 -2
- package/dist/immutable/ElmComponent.js +2 -1
- package/dist/immutable/createCallBase.js +1 -1
- package/dist/immutable/index.d.ts +3 -3
- package/dist/immutable/index.js +1 -1
- package/dist/immutable/testing/execSubscription.js +1 -1
- package/dist/immutable/testing/getConsecutiveUpdate.d.ts +5 -0
- package/dist/immutable/testing/getConsecutiveUpdate.js +96 -0
- package/dist/immutable/testing/getConsecutiveUpdate.spec.d.ts +1 -0
- package/dist/immutable/testing/getUpdateFn.js +2 -2
- package/dist/immutable/testing/index.d.ts +1 -0
- package/dist/immutable/testing/index.js +8 -1
- package/dist/immutable/useElmish.d.ts +1 -1
- package/dist/immutable/useElmish.js +24 -111
- package/dist/index.d.ts +3 -3
- package/dist/index.js +1 -1
- package/dist/mergeSubscriptions.js +1 -1
- package/dist/testing/execCmd.js +2 -2
- package/dist/testing/execSubscription.js +1 -1
- package/dist/testing/getConsecutiveUpdate.d.ts +3 -0
- package/dist/testing/getConsecutiveUpdate.js +96 -0
- package/dist/testing/getConsecutiveUpdate.spec.d.ts +1 -0
- package/dist/testing/getUpdateFn.js +2 -2
- package/dist/testing/index.d.ts +1 -0
- package/dist/testing/index.js +8 -1
- package/dist/testing/initAndExecCmd.js +2 -2
- package/dist/testing/renderWithModel.d.ts +1 -1
- package/dist/testing/renderWithModel.js +1 -1
- package/dist/useElmish.d.ts +1 -1
- package/dist/useElmish.js +29 -117
- package/package.json +13 -13
package/dist/useElmish.js
CHANGED
|
@@ -13,9 +13,6 @@ var _createCallBase = require("./createCallBase");
|
|
|
13
13
|
var _createDefer3 = require("./createDefer");
|
|
14
14
|
var _fakeOptions = require("./fakeOptions");
|
|
15
15
|
var _Init = require("./Init");
|
|
16
|
-
var _reduxDevTools = require("./reduxDevTools");
|
|
17
|
-
var _Types = require("./Types");
|
|
18
|
-
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
19
16
|
function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
|
|
20
17
|
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."); }
|
|
21
18
|
function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
|
|
@@ -31,7 +28,7 @@ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructur
|
|
|
31
28
|
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
32
29
|
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
33
30
|
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; } }
|
|
34
|
-
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
31
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
35
32
|
/**
|
|
36
33
|
* Options for the `useElmish` hook.
|
|
37
34
|
* @interface UseElmishOptions
|
|
@@ -48,142 +45,57 @@ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; } /* eslint-disabl
|
|
|
48
45
|
* const [model, dispatch] = useElmish({ props, init, update, name: "MyComponent" });
|
|
49
46
|
*/
|
|
50
47
|
function useElmish(_ref) {
|
|
51
|
-
var _fakeOptions$dispatch;
|
|
52
48
|
var name = _ref.name,
|
|
53
49
|
props = _ref.props,
|
|
54
50
|
reInitOn = _ref.reInitOn,
|
|
55
51
|
init = _ref.init,
|
|
56
52
|
update = _ref.update,
|
|
57
53
|
subscription = _ref.subscription;
|
|
58
|
-
var running = false;
|
|
59
|
-
var buffer = [];
|
|
60
|
-
var currentModel = {};
|
|
61
|
-
var firstCallRef = (0, _react.useRef)(true);
|
|
62
54
|
var _useState = (0, _react.useState)(null),
|
|
63
55
|
_useState2 = _slicedToArray(_useState, 2),
|
|
64
56
|
model = _useState2[0],
|
|
65
57
|
setModel = _useState2[1];
|
|
66
58
|
var propsRef = (0, _react.useRef)(props);
|
|
67
|
-
var
|
|
68
|
-
var
|
|
69
|
-
|
|
70
|
-
var reduxUnsubscribe;
|
|
71
|
-
if (_Init.Services.enableDevTools === true && (0, _reduxDevTools.isReduxDevToolsEnabled)(window)) {
|
|
72
|
-
// eslint-disable-next-line no-underscore-dangle
|
|
73
|
-
devTools.current = window.__REDUX_DEVTOOLS_EXTENSION__.connect({
|
|
74
|
-
name: name,
|
|
75
|
-
serialize: {
|
|
76
|
-
options: true
|
|
77
|
-
}
|
|
78
|
-
});
|
|
79
|
-
reduxUnsubscribe = devTools.current.subscribe(function (message) {
|
|
80
|
-
if (message.type === "DISPATCH" && message.payload.type === "JUMP_TO_ACTION") {
|
|
81
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
|
|
82
|
-
setModel(JSON.parse(message.state));
|
|
83
|
-
}
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
isMountedRef.current = true;
|
|
87
|
-
return function () {
|
|
88
|
-
var _reduxUnsubscribe;
|
|
89
|
-
isMountedRef.current = false;
|
|
90
|
-
(_reduxUnsubscribe = reduxUnsubscribe) === null || _reduxUnsubscribe === void 0 || _reduxUnsubscribe();
|
|
91
|
-
};
|
|
92
|
-
}, [name]);
|
|
93
|
-
var initializedModel = model;
|
|
59
|
+
var devToolsRef = (0, _Common.useRedux)(name, setModel);
|
|
60
|
+
var isMountedRef = (0, _Common.useIsMounted)();
|
|
61
|
+
var currentModel = model;
|
|
94
62
|
if (propsRef.current !== props) {
|
|
95
63
|
propsRef.current = props;
|
|
96
64
|
}
|
|
97
65
|
var fakeOptions = (0, _fakeOptions.getFakeOptionsOnce)();
|
|
98
|
-
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) {
|
|
99
|
-
if (running) {
|
|
100
|
-
buffer.push(msg);
|
|
101
|
-
return;
|
|
102
|
-
}
|
|
103
|
-
running = true;
|
|
104
|
-
var nextMsg = msg;
|
|
105
|
-
var modified = false;
|
|
106
|
-
do {
|
|
107
|
-
if (handleMessage(nextMsg)) {
|
|
108
|
-
modified = true;
|
|
109
|
-
}
|
|
110
|
-
if (devTools.current) {
|
|
111
|
-
devTools.current.send(nextMsg.name, _objectSpread(_objectSpread({}, initializedModel), currentModel));
|
|
112
|
-
}
|
|
113
|
-
nextMsg = buffer.shift();
|
|
114
|
-
} while (nextMsg);
|
|
115
|
-
running = false;
|
|
116
|
-
if (isMountedRef.current && modified) {
|
|
117
|
-
setModel(function (prevModel) {
|
|
118
|
-
var _Services$logger;
|
|
119
|
-
var updatedModel = _objectSpread(_objectSpread({}, prevModel), currentModel);
|
|
120
|
-
(_Services$logger = _Init.Services.logger) === null || _Services$logger === void 0 || _Services$logger.debug("Update model for", name, updatedModel);
|
|
121
66
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
}
|
|
126
|
-
}, []);
|
|
127
|
-
if (!initializedModel) {
|
|
128
|
-
var _devTools$current, _Services$logger2;
|
|
129
|
-
var _ref2 = fakeOptions !== null && fakeOptions !== void 0 && fakeOptions.model ? [fakeOptions.model] : init(props),
|
|
130
|
-
_ref3 = _toArray(_ref2),
|
|
131
|
-
initModel = _ref3[0],
|
|
132
|
-
initCommands = _ref3.slice(1);
|
|
133
|
-
initializedModel = initModel;
|
|
134
|
-
setModel(initializedModel);
|
|
135
|
-
(_devTools$current = devTools.current) === null || _devTools$current === void 0 || _devTools$current.init(initializedModel);
|
|
136
|
-
(_Services$logger2 = _Init.Services.logger) === null || _Services$logger2 === void 0 || _Services$logger2.debug("Initial model for", name, initializedModel);
|
|
137
|
-
_Common.execCmd.apply(void 0, [dispatch].concat(_toConsumableArray(initCommands)));
|
|
138
|
-
}
|
|
139
|
-
(0, _react.useEffect)(function () {
|
|
140
|
-
if (firstCallRef.current) {
|
|
141
|
-
firstCallRef.current = false;
|
|
67
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
68
|
+
var dispatch = (0, _react.useCallback)((0, _Common.getDispatch)(handleMessage, function () {
|
|
69
|
+
if (!isMountedRef.current) {
|
|
142
70
|
return;
|
|
143
71
|
}
|
|
144
|
-
setModel(
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
}
|
|
164
|
-
} catch (err) {
|
|
165
|
-
_iterator.e(err);
|
|
166
|
-
} finally {
|
|
167
|
-
_iterator.f();
|
|
168
|
-
}
|
|
169
|
-
};
|
|
170
|
-
}
|
|
171
|
-
var _subscriptionResult = _slicedToArray(subscriptionResult, 2),
|
|
172
|
-
subCmd = _subscriptionResult[0],
|
|
173
|
-
destructor = _subscriptionResult[1];
|
|
174
|
-
(0, _Common.execCmd)(dispatch, subCmd);
|
|
175
|
-
return destructor;
|
|
176
|
-
}
|
|
177
|
-
// biome-ignore lint/correctness/useExhaustiveDependencies: We only want to reinitialize when the reInitOn dependencies change
|
|
178
|
-
}, reInitOn !== null && reInitOn !== void 0 ? reInitOn : []);
|
|
72
|
+
setModel(function (prevModel) {
|
|
73
|
+
var _Services$logger;
|
|
74
|
+
var updatedModel = _objectSpread(_objectSpread({}, prevModel), currentModel);
|
|
75
|
+
(_Services$logger = _Init.Services.logger) === null || _Services$logger === void 0 || _Services$logger.debug("Update model for", name, updatedModel);
|
|
76
|
+
|
|
77
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- We always have a full model here
|
|
78
|
+
return updatedModel;
|
|
79
|
+
});
|
|
80
|
+
}, function (msg) {
|
|
81
|
+
var _devToolsRef$current;
|
|
82
|
+
(_devToolsRef$current = devToolsRef.current) === null || _devToolsRef$current === void 0 || _devToolsRef$current.send(msg.name, _objectSpread({}, currentModel));
|
|
83
|
+
}, fakeOptions === null || fakeOptions === void 0 ? void 0 : fakeOptions.dispatch), []);
|
|
84
|
+
var initializedModel = currentModel;
|
|
85
|
+
initializedModel !== null && initializedModel !== void 0 ? initializedModel : initializedModel = (0, _Common.runInit)(name, init, props, function (initModel) {
|
|
86
|
+
currentModel = initModel;
|
|
87
|
+
setModel(currentModel);
|
|
88
|
+
}, dispatch, devToolsRef.current, fakeOptions === null || fakeOptions === void 0 ? void 0 : fakeOptions.model);
|
|
89
|
+
(0, _Common.useReInit)(setModel, reInitOn);
|
|
90
|
+
(0, _Common.useSubscription)(subscription, initializedModel, props, dispatch, reInitOn);
|
|
179
91
|
return [initializedModel, dispatch];
|
|
180
92
|
function handleMessage(nextMsg) {
|
|
181
|
-
if (!
|
|
93
|
+
if (!currentModel) {
|
|
182
94
|
return false;
|
|
183
95
|
}
|
|
184
96
|
var modified = false;
|
|
185
97
|
(0, _Common.logMessage)(name, nextMsg);
|
|
186
|
-
var updatedModel = _objectSpread(
|
|
98
|
+
var updatedModel = _objectSpread({}, currentModel);
|
|
187
99
|
var _createDefer = (0, _createDefer3.createDefer)(),
|
|
188
100
|
_createDefer2 = _slicedToArray(_createDefer, 2),
|
|
189
101
|
defer = _createDefer2[0],
|
|
@@ -220,4 +132,4 @@ function callUpdateMap(updateMap, msg, model, props, options) {
|
|
|
220
132
|
var msgName = msg.name;
|
|
221
133
|
return updateMap[msgName](msg, model, props, options);
|
|
222
134
|
}
|
|
223
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX0NvbW1vbiIsIl9jcmVhdGVDYWxsQmFzZSIsIl9jcmVhdGVEZWZlcjMiLCJfZmFrZU9wdGlvbnMiLCJfSW5pdCIsIl9yZWR1eERldlRvb2xzIiwiX1R5cGVzIiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJyIiwiZSIsInQiLCJTeW1ib2wiLCJpdGVyYXRvciIsIkFycmF5IiwiaXNBcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsImxlbmd0aCIsIl9uIiwiRiIsInMiLCJuIiwiZG9uZSIsInZhbHVlIiwiZiIsIlR5cGVFcnJvciIsIm8iLCJhIiwidSIsImNhbGwiLCJuZXh0IiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIl9hcnJheUxpa2VUb0FycmF5IiwiX3RvQXJyYXkiLCJfYXJyYXlXaXRoSG9sZXMiLCJfbm9uSXRlcmFibGVSZXN0IiwiZnJvbSIsIm93bktleXMiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIl90b1Byb3BlcnR5S2V5IiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJpIiwiX3RvUHJpbWl0aXZlIiwiX3R5cGVvZiIsInRvUHJpbWl0aXZlIiwiU3RyaW5nIiwiTnVtYmVyIiwiX3NsaWNlZFRvQXJyYXkiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJ0b1N0cmluZyIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwidGVzdCIsImwiLCJ1c2VFbG1pc2giLCJfcmVmIiwiX2Zha2VPcHRpb25zJGRpc3BhdGNoIiwicHJvcHMiLCJyZUluaXRPbiIsImluaXQiLCJ1cGRhdGUiLCJzdWJzY3JpcHRpb24iLCJydW5uaW5nIiwiYnVmZmVyIiwiY3VycmVudE1vZGVsIiwiZmlyc3RDYWxsUmVmIiwidXNlUmVmIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwibW9kZWwiLCJzZXRNb2RlbCIsInByb3BzUmVmIiwiaXNNb3VudGVkUmVmIiwiZGV2VG9vbHMiLCJ1c2VFZmZlY3QiLCJyZWR1eFVuc3Vic2NyaWJlIiwiU2VydmljZXMiLCJlbmFibGVEZXZUb29scyIsImlzUmVkdXhEZXZUb29sc0VuYWJsZWQiLCJ3aW5kb3ciLCJjdXJyZW50IiwiX19SRURVWF9ERVZUT09MU19FWFRFTlNJT05fXyIsImNvbm5lY3QiLCJzZXJpYWxpemUiLCJvcHRpb25zIiwic3Vic2NyaWJlIiwibWVzc2FnZSIsInR5cGUiLCJwYXlsb2FkIiwiSlNPTiIsInBhcnNlIiwic3RhdGUiLCJfcmVkdXhVbnN1YnNjcmliZSIsImluaXRpYWxpemVkTW9kZWwiLCJmYWtlT3B0aW9ucyIsImdldEZha2VPcHRpb25zT25jZSIsImRpc3BhdGNoIiwidXNlQ2FsbGJhY2siLCJtc2ciLCJuZXh0TXNnIiwibW9kaWZpZWQiLCJoYW5kbGVNZXNzYWdlIiwic2VuZCIsInNoaWZ0IiwicHJldk1vZGVsIiwiX1NlcnZpY2VzJGxvZ2dlciIsInVwZGF0ZWRNb2RlbCIsImxvZ2dlciIsImRlYnVnIiwiX2RldlRvb2xzJGN1cnJlbnQiLCJfU2VydmljZXMkbG9nZ2VyMiIsIl9yZWYyIiwiX3JlZjMiLCJpbml0TW9kZWwiLCJpbml0Q29tbWFuZHMiLCJleGVjQ21kIiwiY29uY2F0Iiwic3Vic2NyaXB0aW9uUmVzdWx0Iiwic3Vic2NyaXB0aW9uSXNGdW5jdGlvbkFycmF5IiwiZGVzdHJ1Y3RvcnMiLCJtYXAiLCJzdWIiLCJkZXN0cnVjdG9yIiwidW5kZWZpbmVkIiwiY29tYmluZWREZXN0cnVjdG9yIiwiX2l0ZXJhdG9yIiwiX3N0ZXAiLCJlcnIiLCJfc3Vic2NyaXB0aW9uUmVzdWx0Iiwic3ViQ21kIiwibG9nTWVzc2FnZSIsIl9jcmVhdGVEZWZlciIsImNyZWF0ZURlZmVyIiwiX2NyZWF0ZURlZmVyMiIsImRlZmVyIiwiZ2V0RGVmZXJyZWQiLCJjYWxsQmFzZSIsImNyZWF0ZUNhbGxCYXNlIiwiX2NhbGxVcGRhdGUiLCJjYWxsVXBkYXRlIiwiX2NhbGxVcGRhdGUyIiwibmV3TW9kZWwiLCJjb21tYW5kcyIsIl9nZXREZWZlcnJlZCIsIl9nZXREZWZlcnJlZDIiLCJkZWZlcnJlZE1vZGVsIiwiZGVmZXJyZWRDb21tYW5kcyIsIm1vZGVsSGFzQ2hhbmdlZCIsImNhbGxVcGRhdGVNYXAiLCJ1cGRhdGVNYXAiLCJtc2dOYW1lIl0sInNvdXJjZXMiOlsiLi4vc3JjL3VzZUVsbWlzaC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHMgKi9cbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGV4ZWNDbWQsIGxvZ01lc3NhZ2UsIG1vZGVsSGFzQ2hhbmdlZCB9IGZyb20gXCIuL0NvbW1vblwiO1xuaW1wb3J0IHsgY3JlYXRlQ2FsbEJhc2UgfSBmcm9tIFwiLi9jcmVhdGVDYWxsQmFzZVwiO1xuaW1wb3J0IHsgY3JlYXRlRGVmZXIgfSBmcm9tIFwiLi9jcmVhdGVEZWZlclwiO1xuaW1wb3J0IHsgZ2V0RmFrZU9wdGlvbnNPbmNlIH0gZnJvbSBcIi4vZmFrZU9wdGlvbnNcIjtcbmltcG9ydCB7IFNlcnZpY2VzIH0gZnJvbSBcIi4vSW5pdFwiO1xuaW1wb3J0IHsgaXNSZWR1eERldlRvb2xzRW5hYmxlZCwgdHlwZSBSZWR1eERldlRvb2xzIH0gZnJvbSBcIi4vcmVkdXhEZXZUb29sc1wiO1xuaW1wb3J0IHtcblx0dHlwZSBEaXNwYXRjaCxcblx0dHlwZSBJbml0RnVuY3Rpb24sXG5cdHR5cGUgTWVzc2FnZSxcblx0dHlwZSBOdWxsYWJsZSxcblx0dHlwZSBTdWJzY3JpcHRpb24sXG5cdHN1YnNjcmlwdGlvbklzRnVuY3Rpb25BcnJheSxcblx0dHlwZSBVcGRhdGVGdW5jdGlvbixcblx0dHlwZSBVcGRhdGVGdW5jdGlvbk9wdGlvbnMsXG5cdHR5cGUgVXBkYXRlTWFwLFxuXHR0eXBlIFVwZGF0ZVJldHVyblR5cGUsXG59IGZyb20gXCIuL1R5cGVzXCI7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgdGhlIGB1c2VFbG1pc2hgIGhvb2suXG4gKiBAaW50ZXJmYWNlIFVzZUVsbWlzaE9wdGlvbnNcbiAqIEB0ZW1wbGF0ZSBUUHJvcHMgVGhlIHR5cGUgb2YgdGhlIHByb3BzLlxuICogQHRlbXBsYXRlIFRNb2RlbCBUaGUgdHlwZSBvZiB0aGUgbW9kZWwuXG4gKiBAdGVtcGxhdGUgVE1lc3NhZ2UgVGhlIHR5cGUgb2YgdGhlIG1lc3NhZ2VzIGRpc2NyaW1pbmF0ZWQgdW5pb24uXG4gKi9cbmludGVyZmFjZSBVc2VFbG1pc2hPcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+IHtcblx0LyoqXG5cdCAqIFRoZSBuYW1lIG9mIHRoZSBjb21wb25lbnQuIFRoaXMgaXMgdXNlZCBmb3IgbG9nZ2luZyBvbmx5LlxuXHQgKiBAdHlwZSB7c3RyaW5nfVxuXHQgKi9cblx0bmFtZTogc3RyaW5nO1xuXHQvKipcblx0ICogVGhlIHByb3BzIHBhc3NlZCB0byB0aGUgY29tcG9uZW50LlxuXHQgKiBAdHlwZSB7VFByb3BzfVxuXHQgKi9cblx0cHJvcHM6IFRQcm9wcztcblx0LyoqXG5cdCAqIEFycmF5IG9mIHZhbHVlcyB0aGF0IHRyaWdnZXIgYSByZS1pbml0aWFsaXphdGlvbiBvZiB0aGUgY29tcG9uZW50LlxuXHQgKi9cblx0cmVJbml0T24/OiB1bmtub3duW107XG5cdC8qKlxuXHQgKiBUaGUgZnVuY3Rpb24gdG8gaW5pdGlhbGl6ZSB0aGUgY29tcG9uZW50cyBtb2RlbC4gVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGNhbGxlZCBvbmNlLlxuXHQgKiBAdHlwZSB7SW5pdEZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT59XG5cdCAqL1xuXHRpbml0OiBJbml0RnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPjtcblx0LyoqXG5cdCAqIFRoZSBgdXBkYXRlYCBmdW5jdGlvbiBvciB1cGRhdGUgbWFwIG9iamVjdC5cblx0ICogQHR5cGUgeyhVcGRhdGVGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+IHwgVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4pfVxuXHQgKi9cblx0dXBkYXRlOiBVcGRhdGVGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+IHwgVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT47XG5cdC8qKlxuXHQgKiBUaGUgb3B0aW9uYWwgYHN1YnNjcmlwdGlvbmAgZnVuY3Rpb24uIFRoaXMgZnVuY3Rpb24gaXMgb25seSBjYWxsZWQgb25jZS5cblx0ICogQHR5cGUgeyhVcGRhdGVGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+IHwgVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4pfVxuXHQgKi9cblx0c3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT47XG59XG5cbi8qKlxuICogSG9vayB0byB1c2UgdGhlIEVsbSBhcmNoaXRlY3R1cmUgcGF0dGVybiBpbiBhIGZ1bmN0aW9uIGNvbXBvbmVudC5cbiAqIEBwYXJhbSB7VXNlRWxtaXNoT3B0aW9uc30gb3B0aW9ucyBUaGUgb3B0aW9ucyBwYXNzZWQgdGhlIHRoZSBob29rLlxuICogQHJldHVybnMgQSB0dXBsZSBjb250YWluaW5nIHRoZSBjdXJyZW50IG1vZGVsIGFuZCB0aGUgZGlzcGF0Y2hlci5cbiAqIEBleGFtcGxlXG4gKiBjb25zdCBbbW9kZWwsIGRpc3BhdGNoXSA9IHVzZUVsbWlzaCh7IHByb3BzLCBpbml0LCB1cGRhdGUsIG5hbWU6IFwiTXlDb21wb25lbnRcIiB9KTtcbiAqL1xuZnVuY3Rpb24gdXNlRWxtaXNoPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+KHtcblx0bmFtZSxcblx0cHJvcHMsXG5cdHJlSW5pdE9uLFxuXHRpbml0LFxuXHR1cGRhdGUsXG5cdHN1YnNjcmlwdGlvbixcbn06IFVzZUVsbWlzaE9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPik6IFtUTW9kZWwsIERpc3BhdGNoPFRNZXNzYWdlPl0ge1xuXHRsZXQgcnVubmluZyA9IGZhbHNlO1xuXHRjb25zdCBidWZmZXI6IFRNZXNzYWdlW10gPSBbXTtcblx0bGV0IGN1cnJlbnRNb2RlbDogUGFydGlhbDxUTW9kZWw+ID0ge307XG5cblx0Y29uc3QgZmlyc3RDYWxsUmVmID0gdXNlUmVmKHRydWUpO1xuXHRjb25zdCBbbW9kZWwsIHNldE1vZGVsXSA9IHVzZVN0YXRlPE51bGxhYmxlPFRNb2RlbD4+KG51bGwpO1xuXHRjb25zdCBwcm9wc1JlZiA9IHVzZVJlZihwcm9wcyk7XG5cdGNvbnN0IGlzTW91bnRlZFJlZiA9IHVzZVJlZih0cnVlKTtcblxuXHRjb25zdCBkZXZUb29scyA9IHVzZVJlZjxSZWR1eERldlRvb2xzIHwgbnVsbD4obnVsbCk7XG5cblx0dXNlRWZmZWN0KCgpID0+IHtcblx0XHRsZXQgcmVkdXhVbnN1YnNjcmliZTogKCgpID0+IHZvaWQpIHwgdW5kZWZpbmVkO1xuXG5cdFx0aWYgKFNlcnZpY2VzLmVuYWJsZURldlRvb2xzID09PSB0cnVlICYmIGlzUmVkdXhEZXZUb29sc0VuYWJsZWQod2luZG93KSkge1xuXHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVyc2NvcmUtZGFuZ2xlXG5cdFx0XHRkZXZUb29scy5jdXJyZW50ID0gd2luZG93Ll9fUkVEVVhfREVWVE9PTFNfRVhURU5TSU9OX18uY29ubmVjdCh7IG5hbWUsIHNlcmlhbGl6ZTogeyBvcHRpb25zOiB0cnVlIH0gfSk7XG5cblx0XHRcdHJlZHV4VW5zdWJzY3JpYmUgPSBkZXZUb29scy5jdXJyZW50LnN1YnNjcmliZSgobWVzc2FnZSkgPT4ge1xuXHRcdFx0XHRpZiAobWVzc2FnZS50eXBlID09PSBcIkRJU1BBVENIXCIgJiYgbWVzc2FnZS5wYXlsb2FkLnR5cGUgPT09IFwiSlVNUF9UT19BQ1RJT05cIikge1xuXHRcdFx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLXR5cGUtYXNzZXJ0aW9uXG5cdFx0XHRcdFx0c2V0TW9kZWwoSlNPTi5wYXJzZShtZXNzYWdlLnN0YXRlKSBhcyBUTW9kZWwpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHRpc01vdW50ZWRSZWYuY3VycmVudCA9IHRydWU7XG5cblx0XHRyZXR1cm4gKCkgPT4ge1xuXHRcdFx0aXNNb3VudGVkUmVmLmN1cnJlbnQgPSBmYWxzZTtcblxuXHRcdFx0cmVkdXhVbnN1YnNjcmliZT8uKCk7XG5cdFx0fTtcblx0fSwgW25hbWVdKTtcblxuXHRsZXQgaW5pdGlhbGl6ZWRNb2RlbCA9IG1vZGVsO1xuXG5cdGlmIChwcm9wc1JlZi5jdXJyZW50ICE9PSBwcm9wcykge1xuXHRcdHByb3BzUmVmLmN1cnJlbnQgPSBwcm9wcztcblx0fVxuXG5cdGNvbnN0IGZha2VPcHRpb25zID0gZ2V0RmFrZU9wdGlvbnNPbmNlPFRNb2RlbCwgVE1lc3NhZ2U+KCk7XG5cdGNvbnN0IGRpc3BhdGNoID0gdXNlQ2FsbGJhY2soXG5cdFx0ZmFrZU9wdGlvbnM/LmRpc3BhdGNoID8/XG5cdFx0XHQoKG1zZzogVE1lc3NhZ2UpOiB2b2lkID0+IHtcblx0XHRcdFx0aWYgKHJ1bm5pbmcpIHtcblx0XHRcdFx0XHRidWZmZXIucHVzaChtc2cpO1xuXG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cnVubmluZyA9IHRydWU7XG5cblx0XHRcdFx0bGV0IG5leHRNc2c6IFRNZXNzYWdlIHwgdW5kZWZpbmVkID0gbXNnO1xuXHRcdFx0XHRsZXQgbW9kaWZpZWQgPSBmYWxzZTtcblxuXHRcdFx0XHRkbyB7XG5cdFx0XHRcdFx0aWYgKGhhbmRsZU1lc3NhZ2UobmV4dE1zZykpIHtcblx0XHRcdFx0XHRcdG1vZGlmaWVkID0gdHJ1ZTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRpZiAoZGV2VG9vbHMuY3VycmVudCkge1xuXHRcdFx0XHRcdFx0ZGV2VG9vbHMuY3VycmVudC5zZW5kKG5leHRNc2cubmFtZSwgeyAuLi5pbml0aWFsaXplZE1vZGVsLCAuLi5jdXJyZW50TW9kZWwgfSk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0bmV4dE1zZyA9IGJ1ZmZlci5zaGlmdCgpO1xuXHRcdFx0XHR9IHdoaWxlIChuZXh0TXNnKTtcblxuXHRcdFx0XHRydW5uaW5nID0gZmFsc2U7XG5cblx0XHRcdFx0aWYgKGlzTW91bnRlZFJlZi5jdXJyZW50ICYmIG1vZGlmaWVkKSB7XG5cdFx0XHRcdFx0c2V0TW9kZWwoKHByZXZNb2RlbCkgPT4ge1xuXHRcdFx0XHRcdFx0Y29uc3QgdXBkYXRlZE1vZGVsID0geyAuLi5wcmV2TW9kZWwsIC4uLmN1cnJlbnRNb2RlbCB9O1xuXG5cdFx0XHRcdFx0XHRTZXJ2aWNlcy5sb2dnZXI/LmRlYnVnKFwiVXBkYXRlIG1vZGVsIGZvclwiLCBuYW1lLCB1cGRhdGVkTW9kZWwpO1xuXG5cdFx0XHRcdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS10eXBlLWFzc2VydGlvbiAtLSBXZSBhbHdheXMgaGF2ZSBhIGZ1bGwgbW9kZWwgaGVyZVxuXHRcdFx0XHRcdFx0cmV0dXJuIHVwZGF0ZWRNb2RlbCBhcyBUTW9kZWw7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdH0pLFxuXHRcdFtdLFxuXHQpO1xuXG5cdGlmICghaW5pdGlhbGl6ZWRNb2RlbCkge1xuXHRcdGNvbnN0IFtpbml0TW9kZWwsIC4uLmluaXRDb21tYW5kc10gPSBmYWtlT3B0aW9ucz8ubW9kZWwgPyBbZmFrZU9wdGlvbnMubW9kZWxdIDogaW5pdChwcm9wcyk7XG5cblx0XHRpbml0aWFsaXplZE1vZGVsID0gaW5pdE1vZGVsO1xuXHRcdHNldE1vZGVsKGluaXRpYWxpemVkTW9kZWwpO1xuXG5cdFx0ZGV2VG9vbHMuY3VycmVudD8uaW5pdChpbml0aWFsaXplZE1vZGVsKTtcblxuXHRcdFNlcnZpY2VzLmxvZ2dlcj8uZGVidWcoXCJJbml0aWFsIG1vZGVsIGZvclwiLCBuYW1lLCBpbml0aWFsaXplZE1vZGVsKTtcblxuXHRcdGV4ZWNDbWQoZGlzcGF0Y2gsIC4uLmluaXRDb21tYW5kcyk7XG5cdH1cblxuXHR1c2VFZmZlY3QoKCkgPT4ge1xuXHRcdGlmIChmaXJzdENhbGxSZWYuY3VycmVudCkge1xuXHRcdFx0Zmlyc3RDYWxsUmVmLmN1cnJlbnQgPSBmYWxzZTtcblxuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdHNldE1vZGVsKG51bGwpO1xuXHRcdC8vIGJpb21lLWlnbm9yZSBsaW50L2NvcnJlY3RuZXNzL3VzZUV4aGF1c3RpdmVEZXBlbmRlbmNpZXM6IFdlIG9ubHkgd2FudCB0byByZWluaXRpYWxpemUgd2hlbiB0aGUgcmVJbml0T24gZGVwZW5kZW5jaWVzIGNoYW5nZVxuXHR9LCByZUluaXRPbiA/PyBbXSk7XG5cblx0dXNlRWZmZWN0KCgpID0+IHtcblx0XHRpZiAoc3Vic2NyaXB0aW9uKSB7XG5cdFx0XHRjb25zdCBzdWJzY3JpcHRpb25SZXN1bHQgPSBzdWJzY3JpcHRpb24oaW5pdGlhbGl6ZWRNb2RlbCwgcHJvcHMpO1xuXG5cdFx0XHRpZiAoc3Vic2NyaXB0aW9uSXNGdW5jdGlvbkFycmF5KHN1YnNjcmlwdGlvblJlc3VsdCkpIHtcblx0XHRcdFx0Y29uc3QgZGVzdHJ1Y3RvcnMgPSBzdWJzY3JpcHRpb25SZXN1bHQubWFwKChzdWIpID0+IHN1YihkaXNwYXRjaCkpLmZpbHRlcigoZGVzdHJ1Y3RvcikgPT4gZGVzdHJ1Y3RvciAhPT0gdW5kZWZpbmVkKTtcblxuXHRcdFx0XHRyZXR1cm4gZnVuY3Rpb24gY29tYmluZWREZXN0cnVjdG9yKCkge1xuXHRcdFx0XHRcdGZvciAoY29uc3QgZGVzdHJ1Y3RvciBvZiBkZXN0cnVjdG9ycykge1xuXHRcdFx0XHRcdFx0ZGVzdHJ1Y3RvcigpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fTtcblx0XHRcdH1cblxuXHRcdFx0Y29uc3QgW3N1YkNtZCwgZGVzdHJ1Y3Rvcl0gPSBzdWJzY3JpcHRpb25SZXN1bHQ7XG5cblx0XHRcdGV4ZWNDbWQoZGlzcGF0Y2gsIHN1YkNtZCk7XG5cblx0XHRcdHJldHVybiBkZXN0cnVjdG9yO1xuXHRcdH1cblx0XHQvLyBiaW9tZS1pZ25vcmUgbGludC9jb3JyZWN0bmVzcy91c2VFeGhhdXN0aXZlRGVwZW5kZW5jaWVzOiBXZSBvbmx5IHdhbnQgdG8gcmVpbml0aWFsaXplIHdoZW4gdGhlIHJlSW5pdE9uIGRlcGVuZGVuY2llcyBjaGFuZ2Vcblx0fSwgcmVJbml0T24gPz8gW10pO1xuXG5cdHJldHVybiBbaW5pdGlhbGl6ZWRNb2RlbCwgZGlzcGF0Y2hdO1xuXG5cdGZ1bmN0aW9uIGhhbmRsZU1lc3NhZ2UobmV4dE1zZzogVE1lc3NhZ2UpOiBib29sZWFuIHtcblx0XHRpZiAoIWluaXRpYWxpemVkTW9kZWwpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHRsZXQgbW9kaWZpZWQgPSBmYWxzZTtcblxuXHRcdGxvZ01lc3NhZ2UobmFtZSwgbmV4dE1zZyk7XG5cblx0XHRjb25zdCB1cGRhdGVkTW9kZWwgPSB7IC4uLmluaXRpYWxpemVkTW9kZWwsIC4uLmN1cnJlbnRNb2RlbCB9O1xuXG5cdFx0Y29uc3QgW2RlZmVyLCBnZXREZWZlcnJlZF0gPSBjcmVhdGVEZWZlcjxUTW9kZWwsIFRNZXNzYWdlPigpO1xuXHRcdGNvbnN0IGNhbGxCYXNlID0gY3JlYXRlQ2FsbEJhc2UobmV4dE1zZywgdXBkYXRlZE1vZGVsLCBwcm9wc1JlZi5jdXJyZW50LCB7IGRlZmVyIH0pO1xuXG5cdFx0Y29uc3QgW25ld01vZGVsLCAuLi5jb21tYW5kc10gPSBjYWxsVXBkYXRlKHVwZGF0ZSwgbmV4dE1zZywgdXBkYXRlZE1vZGVsLCBwcm9wc1JlZi5jdXJyZW50LCB7IGRlZmVyLCBjYWxsQmFzZSB9KTtcblxuXHRcdGNvbnN0IFtkZWZlcnJlZE1vZGVsLCBkZWZlcnJlZENvbW1hbmRzXSA9IGdldERlZmVycmVkKCk7XG5cblx0XHRpZiAobW9kZWxIYXNDaGFuZ2VkKGN1cnJlbnRNb2RlbCwgeyAuLi5kZWZlcnJlZE1vZGVsLCAuLi5uZXdNb2RlbCB9KSkge1xuXHRcdFx0Y3VycmVudE1vZGVsID0geyAuLi5jdXJyZW50TW9kZWwsIC4uLmRlZmVycmVkTW9kZWwsIC4uLm5ld01vZGVsIH07XG5cblx0XHRcdG1vZGlmaWVkID0gdHJ1ZTtcblx0XHR9XG5cblx0XHRleGVjQ21kKGRpc3BhdGNoLCAuLi5jb21tYW5kcywgLi4uZGVmZXJyZWRDb21tYW5kcyk7XG5cblx0XHRyZXR1cm4gbW9kaWZpZWQ7XG5cdH1cbn1cblxuZnVuY3Rpb24gY2FsbFVwZGF0ZTxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPihcblx0dXBkYXRlOiBVcGRhdGVGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+IHwgVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG5cdG1zZzogVE1lc3NhZ2UsXG5cdG1vZGVsOiBUTW9kZWwsXG5cdHByb3BzOiBUUHJvcHMsXG5cdG9wdGlvbnM6IFVwZGF0ZUZ1bmN0aW9uT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuKTogVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPiB7XG5cdGlmICh0eXBlb2YgdXBkYXRlID09PSBcImZ1bmN0aW9uXCIpIHtcblx0XHRyZXR1cm4gdXBkYXRlKG1vZGVsLCBtc2csIHByb3BzLCBvcHRpb25zKTtcblx0fVxuXG5cdHJldHVybiBjYWxsVXBkYXRlTWFwKHVwZGF0ZSwgbXNnLCBtb2RlbCwgcHJvcHMsIG9wdGlvbnMpO1xufVxuXG5mdW5jdGlvbiBjYWxsVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+KFxuXHR1cGRhdGVNYXA6IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuXHRtc2c6IFRNZXNzYWdlLFxuXHRtb2RlbDogVE1vZGVsLFxuXHRwcm9wczogVFByb3BzLFxuXHRvcHRpb25zOiBVcGRhdGVGdW5jdGlvbk9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPixcbik6IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTWVzc2FnZT4ge1xuXHRjb25zdCBtc2dOYW1lOiBUTWVzc2FnZVtcIm5hbWVcIl0gPSBtc2cubmFtZTtcblxuXHRyZXR1cm4gdXBkYXRlTWFwW21zZ05hbWVdKG1zZywgbW9kZWwsIHByb3BzLCBvcHRpb25zKTtcbn1cblxuZXhwb3J0IHR5cGUgeyBVc2VFbG1pc2hPcHRpb25zIH07XG5cbmV4cG9ydCB7IGNhbGxVcGRhdGUsIGNhbGxVcGRhdGVNYXAsIHVzZUVsbWlzaCB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFDQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxlQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxhQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxZQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxLQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxjQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxNQUFBLEdBQUFQLE9BQUE7QUFXaUIsU0FBQVEsMkJBQUFDLENBQUEsRUFBQUMsQ0FBQSxR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
|
|
135
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX0NvbW1vbiIsIl9jcmVhdGVDYWxsQmFzZSIsIl9jcmVhdGVEZWZlcjMiLCJfZmFrZU9wdGlvbnMiLCJfSW5pdCIsIl90b0NvbnN1bWFibGVBcnJheSIsInIiLCJfYXJyYXlXaXRob3V0SG9sZXMiLCJfaXRlcmFibGVUb0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlU3ByZWFkIiwiVHlwZUVycm9yIiwiQXJyYXkiLCJpc0FycmF5IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJfdG9BcnJheSIsIl9hcnJheVdpdGhIb2xlcyIsIl9ub25JdGVyYWJsZVJlc3QiLCJTeW1ib2wiLCJpdGVyYXRvciIsImZyb20iLCJvd25LZXlzIiwiZSIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfdG9Qcm9wZXJ0eUtleSIsInZhbHVlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJpIiwiX3RvUHJpbWl0aXZlIiwiX3R5cGVvZiIsInRvUHJpbWl0aXZlIiwiY2FsbCIsIlN0cmluZyIsIk51bWJlciIsIl9zbGljZWRUb0FycmF5IiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwiYSIsInRvU3RyaW5nIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJ0ZXN0IiwibiIsImwiLCJ1IiwiZiIsIm5leHQiLCJkb25lIiwidXNlRWxtaXNoIiwiX3JlZiIsInByb3BzIiwicmVJbml0T24iLCJpbml0IiwidXBkYXRlIiwic3Vic2NyaXB0aW9uIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwibW9kZWwiLCJzZXRNb2RlbCIsInByb3BzUmVmIiwidXNlUmVmIiwiZGV2VG9vbHNSZWYiLCJ1c2VSZWR1eCIsImlzTW91bnRlZFJlZiIsInVzZUlzTW91bnRlZCIsImN1cnJlbnRNb2RlbCIsImN1cnJlbnQiLCJmYWtlT3B0aW9ucyIsImdldEZha2VPcHRpb25zT25jZSIsImRpc3BhdGNoIiwidXNlQ2FsbGJhY2siLCJnZXREaXNwYXRjaCIsImhhbmRsZU1lc3NhZ2UiLCJwcmV2TW9kZWwiLCJfU2VydmljZXMkbG9nZ2VyIiwidXBkYXRlZE1vZGVsIiwiU2VydmljZXMiLCJsb2dnZXIiLCJkZWJ1ZyIsIm1zZyIsIl9kZXZUb29sc1JlZiRjdXJyZW50Iiwic2VuZCIsImluaXRpYWxpemVkTW9kZWwiLCJydW5Jbml0IiwiaW5pdE1vZGVsIiwidXNlUmVJbml0IiwidXNlU3Vic2NyaXB0aW9uIiwibmV4dE1zZyIsIm1vZGlmaWVkIiwibG9nTWVzc2FnZSIsIl9jcmVhdGVEZWZlciIsImNyZWF0ZURlZmVyIiwiX2NyZWF0ZURlZmVyMiIsImRlZmVyIiwiZ2V0RGVmZXJyZWQiLCJjYWxsQmFzZSIsImNyZWF0ZUNhbGxCYXNlIiwiX2NhbGxVcGRhdGUiLCJjYWxsVXBkYXRlIiwiX2NhbGxVcGRhdGUyIiwibmV3TW9kZWwiLCJjb21tYW5kcyIsIl9nZXREZWZlcnJlZCIsIl9nZXREZWZlcnJlZDIiLCJkZWZlcnJlZE1vZGVsIiwiZGVmZXJyZWRDb21tYW5kcyIsIm1vZGVsSGFzQ2hhbmdlZCIsImV4ZWNDbWQiLCJjb25jYXQiLCJvcHRpb25zIiwiY2FsbFVwZGF0ZU1hcCIsInVwZGF0ZU1hcCIsIm1zZ05hbWUiXSwic291cmNlcyI6WyIuLi9zcmMvdXNlRWxtaXNoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQge1xuXHRleGVjQ21kLFxuXHRnZXREaXNwYXRjaCxcblx0bG9nTWVzc2FnZSxcblx0bW9kZWxIYXNDaGFuZ2VkLFxuXHRydW5Jbml0LFxuXHR1c2VJc01vdW50ZWQsXG5cdHVzZVJlZHV4LFxuXHR1c2VSZUluaXQsXG5cdHVzZVN1YnNjcmlwdGlvbixcbn0gZnJvbSBcIi4vQ29tbW9uXCI7XG5pbXBvcnQgeyBjcmVhdGVDYWxsQmFzZSB9IGZyb20gXCIuL2NyZWF0ZUNhbGxCYXNlXCI7XG5pbXBvcnQgeyBjcmVhdGVEZWZlciB9IGZyb20gXCIuL2NyZWF0ZURlZmVyXCI7XG5pbXBvcnQgeyBnZXRGYWtlT3B0aW9uc09uY2UgfSBmcm9tIFwiLi9mYWtlT3B0aW9uc1wiO1xuaW1wb3J0IHsgU2VydmljZXMgfSBmcm9tIFwiLi9Jbml0XCI7XG5pbXBvcnQgdHlwZSB7XG5cdERpc3BhdGNoLFxuXHRJbml0RnVuY3Rpb24sXG5cdE1lc3NhZ2UsXG5cdE51bGxhYmxlLFxuXHRTdWJzY3JpcHRpb24sXG5cdFVwZGF0ZUZ1bmN0aW9uLFxuXHRVcGRhdGVGdW5jdGlvbk9wdGlvbnMsXG5cdFVwZGF0ZU1hcCxcblx0VXBkYXRlUmV0dXJuVHlwZSxcbn0gZnJvbSBcIi4vVHlwZXNcIjtcblxuLyoqXG4gKiBPcHRpb25zIGZvciB0aGUgYHVzZUVsbWlzaGAgaG9vay5cbiAqIEBpbnRlcmZhY2UgVXNlRWxtaXNoT3B0aW9uc1xuICogQHRlbXBsYXRlIFRQcm9wcyBUaGUgdHlwZSBvZiB0aGUgcHJvcHMuXG4gKiBAdGVtcGxhdGUgVE1vZGVsIFRoZSB0eXBlIG9mIHRoZSBtb2RlbC5cbiAqIEB0ZW1wbGF0ZSBUTWVzc2FnZSBUaGUgdHlwZSBvZiB0aGUgbWVzc2FnZXMgZGlzY3JpbWluYXRlZCB1bmlvbi5cbiAqL1xuaW50ZXJmYWNlIFVzZUVsbWlzaE9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4ge1xuXHQvKipcblx0ICogVGhlIG5hbWUgb2YgdGhlIGNvbXBvbmVudC4gVGhpcyBpcyB1c2VkIGZvciBsb2dnaW5nIG9ubHkuXG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqL1xuXHRuYW1lOiBzdHJpbmc7XG5cdC8qKlxuXHQgKiBUaGUgcHJvcHMgcGFzc2VkIHRvIHRoZSBjb21wb25lbnQuXG5cdCAqIEB0eXBlIHtUUHJvcHN9XG5cdCAqL1xuXHRwcm9wczogVFByb3BzO1xuXHQvKipcblx0ICogQXJyYXkgb2YgdmFsdWVzIHRoYXQgdHJpZ2dlciBhIHJlLWluaXRpYWxpemF0aW9uIG9mIHRoZSBjb21wb25lbnQuXG5cdCAqL1xuXHRyZUluaXRPbj86IHVua25vd25bXTtcblx0LyoqXG5cdCAqIFRoZSBmdW5jdGlvbiB0byBpbml0aWFsaXplIHRoZSBjb21wb25lbnRzIG1vZGVsLiBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgY2FsbGVkIG9uY2UuXG5cdCAqIEB0eXBlIHtJbml0RnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPn1cblx0ICovXG5cdGluaXQ6IEluaXRGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+O1xuXHQvKipcblx0ICogVGhlIGB1cGRhdGVgIGZ1bmN0aW9uIG9yIHVwZGF0ZSBtYXAgb2JqZWN0LlxuXHQgKiBAdHlwZSB7KFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPil9XG5cdCAqL1xuXHR1cGRhdGU6IFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPjtcblx0LyoqXG5cdCAqIFRoZSBvcHRpb25hbCBgc3Vic2NyaXB0aW9uYCBmdW5jdGlvbi4gVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGNhbGxlZCBvbmNlLlxuXHQgKiBAdHlwZSB7KFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPil9XG5cdCAqL1xuXHRzdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPjtcbn1cblxuLyoqXG4gKiBIb29rIHRvIHVzZSB0aGUgRWxtIGFyY2hpdGVjdHVyZSBwYXR0ZXJuIGluIGEgZnVuY3Rpb24gY29tcG9uZW50LlxuICogQHBhcmFtIHtVc2VFbG1pc2hPcHRpb25zfSBvcHRpb25zIFRoZSBvcHRpb25zIHBhc3NlZCB0aGUgdGhlIGhvb2suXG4gKiBAcmV0dXJucyBBIHR1cGxlIGNvbnRhaW5pbmcgdGhlIGN1cnJlbnQgbW9kZWwgYW5kIHRoZSBkaXNwYXRjaGVyLlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IFttb2RlbCwgZGlzcGF0Y2hdID0gdXNlRWxtaXNoKHsgcHJvcHMsIGluaXQsIHVwZGF0ZSwgbmFtZTogXCJNeUNvbXBvbmVudFwiIH0pO1xuICovXG5mdW5jdGlvbiB1c2VFbG1pc2g8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4oe1xuXHRuYW1lLFxuXHRwcm9wcyxcblx0cmVJbml0T24sXG5cdGluaXQsXG5cdHVwZGF0ZSxcblx0c3Vic2NyaXB0aW9uLFxufTogVXNlRWxtaXNoT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+KTogW1RNb2RlbCwgRGlzcGF0Y2g8VE1lc3NhZ2U+XSB7XG5cdGNvbnN0IFttb2RlbCwgc2V0TW9kZWxdID0gdXNlU3RhdGU8TnVsbGFibGU8VE1vZGVsPj4obnVsbCk7XG5cdGNvbnN0IHByb3BzUmVmID0gdXNlUmVmKHByb3BzKTtcblx0Y29uc3QgZGV2VG9vbHNSZWYgPSB1c2VSZWR1eChuYW1lLCBzZXRNb2RlbCk7XG5cdGNvbnN0IGlzTW91bnRlZFJlZiA9IHVzZUlzTW91bnRlZCgpO1xuXG5cdGxldCBjdXJyZW50TW9kZWwgPSBtb2RlbDtcblxuXHRpZiAocHJvcHNSZWYuY3VycmVudCAhPT0gcHJvcHMpIHtcblx0XHRwcm9wc1JlZi5jdXJyZW50ID0gcHJvcHM7XG5cdH1cblxuXHRjb25zdCBmYWtlT3B0aW9ucyA9IGdldEZha2VPcHRpb25zT25jZTxUTW9kZWwsIFRNZXNzYWdlPigpO1xuXG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcblx0Y29uc3QgZGlzcGF0Y2ggPSB1c2VDYWxsYmFjayhcblx0XHRnZXREaXNwYXRjaChcblx0XHRcdGhhbmRsZU1lc3NhZ2UsXG5cdFx0XHQoKSA9PiB7XG5cdFx0XHRcdGlmICghaXNNb3VudGVkUmVmLmN1cnJlbnQpIHtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRzZXRNb2RlbCgocHJldk1vZGVsKSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgdXBkYXRlZE1vZGVsID0geyAuLi5wcmV2TW9kZWwsIC4uLmN1cnJlbnRNb2RlbCB9O1xuXG5cdFx0XHRcdFx0U2VydmljZXMubG9nZ2VyPy5kZWJ1ZyhcIlVwZGF0ZSBtb2RlbCBmb3JcIiwgbmFtZSwgdXBkYXRlZE1vZGVsKTtcblxuXHRcdFx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLXR5cGUtYXNzZXJ0aW9uIC0tIFdlIGFsd2F5cyBoYXZlIGEgZnVsbCBtb2RlbCBoZXJlXG5cdFx0XHRcdFx0cmV0dXJuIHVwZGF0ZWRNb2RlbCBhcyBUTW9kZWw7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSxcblx0XHRcdChtc2cpID0+IHtcblx0XHRcdFx0ZGV2VG9vbHNSZWYuY3VycmVudD8uc2VuZChtc2cubmFtZSwgeyAuLi5jdXJyZW50TW9kZWwgfSk7XG5cdFx0XHR9LFxuXHRcdFx0ZmFrZU9wdGlvbnM/LmRpc3BhdGNoLFxuXHRcdCksXG5cdFx0W10sXG5cdCk7XG5cblx0bGV0IGluaXRpYWxpemVkTW9kZWwgPSBjdXJyZW50TW9kZWw7XG5cblx0aW5pdGlhbGl6ZWRNb2RlbCA/Pz0gcnVuSW5pdChcblx0XHRuYW1lLFxuXHRcdGluaXQsXG5cdFx0cHJvcHMsXG5cdFx0KGluaXRNb2RlbCkgPT4ge1xuXHRcdFx0Y3VycmVudE1vZGVsID0gaW5pdE1vZGVsO1xuXHRcdFx0c2V0TW9kZWwoY3VycmVudE1vZGVsKTtcblx0XHR9LFxuXHRcdGRpc3BhdGNoLFxuXHRcdGRldlRvb2xzUmVmLmN1cnJlbnQsXG5cdFx0ZmFrZU9wdGlvbnM/Lm1vZGVsLFxuXHQpO1xuXG5cdHVzZVJlSW5pdChzZXRNb2RlbCwgcmVJbml0T24pO1xuXHR1c2VTdWJzY3JpcHRpb24oc3Vic2NyaXB0aW9uLCBpbml0aWFsaXplZE1vZGVsLCBwcm9wcywgZGlzcGF0Y2gsIHJlSW5pdE9uKTtcblxuXHRyZXR1cm4gW2luaXRpYWxpemVkTW9kZWwsIGRpc3BhdGNoXTtcblxuXHRmdW5jdGlvbiBoYW5kbGVNZXNzYWdlKG5leHRNc2c6IFRNZXNzYWdlKTogYm9vbGVhbiB7XG5cdFx0aWYgKCFjdXJyZW50TW9kZWwpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHRsZXQgbW9kaWZpZWQgPSBmYWxzZTtcblxuXHRcdGxvZ01lc3NhZ2UobmFtZSwgbmV4dE1zZyk7XG5cblx0XHRjb25zdCB1cGRhdGVkTW9kZWwgPSB7IC4uLmN1cnJlbnRNb2RlbCB9IGFzIFRNb2RlbDtcblxuXHRcdGNvbnN0IFtkZWZlciwgZ2V0RGVmZXJyZWRdID0gY3JlYXRlRGVmZXI8VE1vZGVsLCBUTWVzc2FnZT4oKTtcblx0XHRjb25zdCBjYWxsQmFzZSA9IGNyZWF0ZUNhbGxCYXNlKG5leHRNc2csIHVwZGF0ZWRNb2RlbCwgcHJvcHNSZWYuY3VycmVudCwgeyBkZWZlciB9KTtcblxuXHRcdGNvbnN0IFtuZXdNb2RlbCwgLi4uY29tbWFuZHNdID0gY2FsbFVwZGF0ZSh1cGRhdGUsIG5leHRNc2csIHVwZGF0ZWRNb2RlbCwgcHJvcHNSZWYuY3VycmVudCwgeyBkZWZlciwgY2FsbEJhc2UgfSk7XG5cblx0XHRjb25zdCBbZGVmZXJyZWRNb2RlbCwgZGVmZXJyZWRDb21tYW5kc10gPSBnZXREZWZlcnJlZCgpO1xuXG5cdFx0aWYgKG1vZGVsSGFzQ2hhbmdlZChjdXJyZW50TW9kZWwsIHsgLi4uZGVmZXJyZWRNb2RlbCwgLi4ubmV3TW9kZWwgfSkpIHtcblx0XHRcdGN1cnJlbnRNb2RlbCA9IHsgLi4uY3VycmVudE1vZGVsLCAuLi5kZWZlcnJlZE1vZGVsLCAuLi5uZXdNb2RlbCB9O1xuXG5cdFx0XHRtb2RpZmllZCA9IHRydWU7XG5cdFx0fVxuXG5cdFx0ZXhlY0NtZChkaXNwYXRjaCwgLi4uY29tbWFuZHMsIC4uLmRlZmVycmVkQ29tbWFuZHMpO1xuXG5cdFx0cmV0dXJuIG1vZGlmaWVkO1xuXHR9XG59XG5cbmZ1bmN0aW9uIGNhbGxVcGRhdGU8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4oXG5cdHVwZGF0ZTogVXBkYXRlRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiB8IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuXHRtc2c6IFRNZXNzYWdlLFxuXHRtb2RlbDogVE1vZGVsLFxuXHRwcm9wczogVFByb3BzLFxuXHRvcHRpb25zOiBVcGRhdGVGdW5jdGlvbk9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPixcbik6IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTWVzc2FnZT4ge1xuXHRpZiAodHlwZW9mIHVwZGF0ZSA9PT0gXCJmdW5jdGlvblwiKSB7XG5cdFx0cmV0dXJuIHVwZGF0ZShtb2RlbCwgbXNnLCBwcm9wcywgb3B0aW9ucyk7XG5cdH1cblxuXHRyZXR1cm4gY2FsbFVwZGF0ZU1hcCh1cGRhdGUsIG1zZywgbW9kZWwsIHByb3BzLCBvcHRpb25zKTtcbn1cblxuZnVuY3Rpb24gY2FsbFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPihcblx0dXBkYXRlTWFwOiBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPixcblx0bXNnOiBUTWVzc2FnZSxcblx0bW9kZWw6IFRNb2RlbCxcblx0cHJvcHM6IFRQcm9wcyxcblx0b3B0aW9uczogVXBkYXRlRnVuY3Rpb25PcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG4pOiBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgVE1lc3NhZ2U+IHtcblx0Y29uc3QgbXNnTmFtZTogVE1lc3NhZ2VbXCJuYW1lXCJdID0gbXNnLm5hbWU7XG5cblx0cmV0dXJuIHVwZGF0ZU1hcFttc2dOYW1lXShtc2csIG1vZGVsLCBwcm9wcywgb3B0aW9ucyk7XG59XG5cbmV4cG9ydCB0eXBlIHsgVXNlRWxtaXNoT3B0aW9ucyB9O1xuXG5leHBvcnQgeyBjYWxsVXBkYXRlLCBjYWxsVXBkYXRlTWFwLCB1c2VFbG1pc2ggfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRCxPQUFBO0FBV0EsSUFBQUUsZUFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsYUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksWUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssS0FBQSxHQUFBTCxPQUFBO0FBQWtDLFNBQUFNLG1CQUFBQyxDQUFBLFdBQUFDLGtCQUFBLENBQUFELENBQUEsS0FBQUUsZ0JBQUEsQ0FBQUYsQ0FBQSxLQUFBRywyQkFBQSxDQUFBSCxDQUFBLEtBQUFJLGtCQUFBO0FBQUEsU0FBQUEsbUJBQUEsY0FBQUMsU0FBQTtBQUFBLFNBQUFKLG1CQUFBRCxDQUFBLFFBQUFNLEtBQUEsQ0FBQUMsT0FBQSxDQUFBUCxDQUFBLFVBQUFRLGlCQUFBLENBQUFSLENBQUE7QUFBQSxTQUFBUyxTQUFBVCxDQUFBLFdBQUFVLGVBQUEsQ0FBQVYsQ0FBQSxLQUFBRSxnQkFBQSxDQUFBRixDQUFBLEtBQUFHLDJCQUFBLENBQUFILENBQUEsS0FBQVcsZ0JBQUE7QUFBQSxTQUFBVCxpQkFBQUYsQ0FBQSw4QkFBQVksTUFBQSxZQUFBWixD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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-elmish",
|
|
3
|
-
"version": "10.
|
|
3
|
+
"version": "10.3.0-beta.2",
|
|
4
4
|
"description": "Elmish for React using Typescript",
|
|
5
5
|
"author": "atheck",
|
|
6
6
|
"license": "MIT",
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"test": "jest --coverage",
|
|
12
12
|
"test:watch": "jest --watch --coverage",
|
|
13
13
|
"lint": "biome lint src --max-diagnostics 200 && npx eslint src",
|
|
14
|
-
"update": "npx -y npm-check-updates -i --install never && npx -y npm-check-updates -i --target minor --install never && npx -y npm-check-updates -i --target patch --install never && npm update",
|
|
14
|
+
"update": "npx -y npm-check-updates -i --install never && npx -y npm-check-updates -i --target minor --install never && npx -y npm-check-updates -i --target patch --install never && npm update && npm audit signatures",
|
|
15
15
|
"semantic-release": "semantic-release"
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
@@ -27,20 +27,20 @@
|
|
|
27
27
|
"@babel/preset-env": "7.28.0",
|
|
28
28
|
"@babel/preset-react": "7.27.1",
|
|
29
29
|
"@babel/preset-typescript": "7.27.1",
|
|
30
|
-
"@biomejs/biome": "2.1.
|
|
31
|
-
"@testing-library/dom": "10.4.
|
|
30
|
+
"@biomejs/biome": "2.1.4",
|
|
31
|
+
"@testing-library/dom": "10.4.1",
|
|
32
32
|
"@testing-library/react": "16.3.0",
|
|
33
33
|
"@types/jest": "30.0.0",
|
|
34
|
-
"@types/react": "19.1.
|
|
35
|
-
"@types/react-dom": "19.1.
|
|
36
|
-
"eslint": "9.
|
|
37
|
-
"eslint-config-heck": "7.
|
|
38
|
-
"jest": "30.0.
|
|
39
|
-
"jest-environment-jsdom": "30.0.
|
|
40
|
-
"semantic-release": "24.2.
|
|
41
|
-
"ts-jest": "29.4.
|
|
34
|
+
"@types/react": "19.1.10",
|
|
35
|
+
"@types/react-dom": "19.1.7",
|
|
36
|
+
"eslint": "9.33.0",
|
|
37
|
+
"eslint-config-heck": "7.3.3",
|
|
38
|
+
"jest": "30.0.5",
|
|
39
|
+
"jest-environment-jsdom": "30.0.5",
|
|
40
|
+
"semantic-release": "24.2.7",
|
|
41
|
+
"ts-jest": "29.4.1",
|
|
42
42
|
"tslib": "2.8.1",
|
|
43
|
-
"typescript": "5.
|
|
43
|
+
"typescript": "5.9.2"
|
|
44
44
|
},
|
|
45
45
|
"homepage": "https://github.com/atheck/react-elmish",
|
|
46
46
|
"repository": {
|