@stanlemon/webdev 0.1.45 → 0.1.46
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/.babelrc.json +0 -4
- package/dist/index.html +1 -1
- package/dist/main.7079c69ff92ecf2c5641.js +28 -0
- package/dist/vendors.0a67934fca487f9c9ec7.js +22 -22
- package/jest.config.js +1 -0
- package/package.json +1 -2
- package/tsconfig.json +15 -14
- package/dist/main.1e94a6301b64644f9ec2.js +0 -28
package/.babelrc.json
CHANGED
package/dist/index.html
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="utf-8">
|
|
5
5
|
<title>Webpack App</title>
|
|
6
|
-
<meta name="viewport" content="width=device-width, initial-scale=1"><script defer src="/runtime.517b8971955bd92adc2e.js"></script><script defer src="/react.02ba2699f9d8f6252a54.js"></script><script defer src="/vendors.0a67934fca487f9c9ec7.js"></script><script defer src="/main.
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1"><script defer src="/runtime.517b8971955bd92adc2e.js"></script><script defer src="/react.02ba2699f9d8f6252a54.js"></script><script defer src="/vendors.0a67934fca487f9c9ec7.js"></script><script defer src="/main.7079c69ff92ecf2c5641.js"></script></head>
|
|
7
7
|
<body>
|
|
8
8
|
</body>
|
|
9
9
|
</html>
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* ATTENTION: An "eval-source-map" devtool has been used.
|
|
4
|
+
* This devtool is neither made for production nor for readable output files.
|
|
5
|
+
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
|
|
6
|
+
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
|
|
7
|
+
* or disable the default devtool with "devtool: false".
|
|
8
|
+
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
|
|
9
|
+
*/
|
|
10
|
+
(self["webpackChunk_stanlemon_webdev"] = self["webpackChunk_stanlemon_webdev"] || []).push([["main"],{
|
|
11
|
+
|
|
12
|
+
/***/ 6738:
|
|
13
|
+
/*!**************************!*\
|
|
14
|
+
!*** ./webpack.test.tsx ***!
|
|
15
|
+
\**************************/
|
|
16
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
17
|
+
|
|
18
|
+
eval("var _home_runner_work_javascript_javascript_node_modules_react_refresh_runtime_js__WEBPACK_IMPORTED_MODULE_0___namespace_cache;\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _home_runner_work_javascript_javascript_node_modules_react_refresh_runtime_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../node_modules/react-refresh/runtime.js */ 9139);\n/* harmony import */ var react_dom_client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom/client */ 7029);\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ 2322);\n/* provided dependency */ var __react_refresh_utils__ = __webpack_require__(/*! ../../node_modules/@pmmmwh/react-refresh-webpack-plugin/lib/runtime/RefreshUtils.js */ 5506);\n\n__webpack_require__.$Refresh$.runtime = /*#__PURE__*/ (_home_runner_work_javascript_javascript_node_modules_react_refresh_runtime_js__WEBPACK_IMPORTED_MODULE_0___namespace_cache || (_home_runner_work_javascript_javascript_node_modules_react_refresh_runtime_js__WEBPACK_IMPORTED_MODULE_0___namespace_cache = __webpack_require__.t(_home_runner_work_javascript_javascript_node_modules_react_refresh_runtime_js__WEBPACK_IMPORTED_MODULE_0__, 2)));\n\n\n\n\n\nfunction App({\n name\n}) {\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"div\", {\n children: [\"Hello \", name, \"!\"]\n });\n}\n\n_c = App;\nconst root = (0,react_dom_client__WEBPACK_IMPORTED_MODULE_1__.createRoot)(document.body.appendChild(document.createElement(\"div\")));\nroot.render( /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(App, {\n name: \"world\"\n}));\n\nvar _c;\n\n__webpack_require__.$Refresh$.register(_c, \"App\");\n\nconst $ReactRefreshModuleId$ = __webpack_require__.$Refresh$.moduleId;\nconst $ReactRefreshCurrentExports$ = __react_refresh_utils__.getModuleExports(\n\t$ReactRefreshModuleId$\n);\n\nfunction $ReactRefreshModuleRuntime$(exports) {\n\tif (false) {}\n}\n\nif (typeof Promise !== 'undefined' && $ReactRefreshCurrentExports$ instanceof Promise) {\n\t$ReactRefreshCurrentExports$.then($ReactRefreshModuleRuntime$);\n} else {\n\t$ReactRefreshModuleRuntime$($ReactRefreshCurrentExports$);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjczOC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7OztBQU1BLFNBQVNDLEdBQVQsQ0FBYTtFQUFFQztBQUFGLENBQWIsRUFBOEI7RUFDNUIsb0JBQU87SUFBQSxxQkFBWUEsSUFBWjtFQUFBLEVBQVA7QUFDRDs7S0FGUUQ7QUFJVCxNQUFNRSxJQUFJLEdBQUdILDREQUFVLENBQ3JCSSxRQUFRLENBQUNDLElBQVQsQ0FBY0MsV0FBZCxDQUEwQkYsUUFBUSxDQUFDRyxhQUFULENBQXVCLEtBQXZCLENBQTFCLENBRHFCLENBQXZCO0FBR0FKLElBQUksQ0FBQ0ssTUFBTCxlQUFZLHVEQUFDLEdBQUQ7RUFBSyxJQUFJLEVBQUM7QUFBVixFQUFaIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQHN0YW5sZW1vbi93ZWJkZXYvLi93ZWJwYWNrLnRlc3QudHN4PzgzYmMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlUm9vdCB9IGZyb20gXCJyZWFjdC1kb20vY2xpZW50XCI7XG5cbnR5cGUgUHJvcHMgPSB7XG4gIG5hbWU6IHN0cmluZztcbn07XG5cbmZ1bmN0aW9uIEFwcCh7IG5hbWUgfTogUHJvcHMpIHtcbiAgcmV0dXJuIDxkaXY+SGVsbG8ge25hbWV9ITwvZGl2Pjtcbn1cblxuY29uc3Qgcm9vdCA9IGNyZWF0ZVJvb3QoXG4gIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKSlcbik7XG5yb290LnJlbmRlcig8QXBwIG5hbWU9XCJ3b3JsZFwiIC8+KTtcbiJdLCJuYW1lcyI6WyJjcmVhdGVSb290IiwiQXBwIiwibmFtZSIsInJvb3QiLCJkb2N1bWVudCIsImJvZHkiLCJhcHBlbmRDaGlsZCIsImNyZWF0ZUVsZW1lbnQiLCJyZW5kZXIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///6738\n");
|
|
19
|
+
|
|
20
|
+
/***/ })
|
|
21
|
+
|
|
22
|
+
},
|
|
23
|
+
/******/ __webpack_require__ => { // webpackRuntimeModules
|
|
24
|
+
/******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
|
|
25
|
+
/******/ __webpack_require__.O(0, ["react-node_modules_react-dom_client_js-node_modules_react-refresh_runtime_js-node_modules_rea-832849","vendors"], () => (__webpack_exec__(794), __webpack_exec__(6101), __webpack_exec__(6738)));
|
|
26
|
+
/******/ var __webpack_exports__ = __webpack_require__.O();
|
|
27
|
+
/******/ }
|
|
28
|
+
]);
|
|
@@ -1275,7 +1275,7 @@ eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPAC
|
|
|
1275
1275
|
\*************************************************************************************************************/
|
|
1276
1276
|
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
|
|
1277
1277
|
|
|
1278
|
-
eval("var __resourceQuery = \"?sockProtocol=http\";\n/* provided dependency */ var __react_refresh_error_overlay__ = __webpack_require__(/*! ../../node_modules/@pmmmwh/react-refresh-webpack-plugin/overlay/index.js */ 4549);\n/* provided dependency */ var __react_refresh_socket__ = __webpack_require__(/*! ../../node_modules/@pmmmwh/react-refresh-webpack-plugin/sockets/WDSSocket.js */ 8483);\n/* global __react_refresh_error_overlay__, __react_refresh_socket__, __resourceQuery */\n\nconst events = __webpack_require__(/*! ./utils/errorEventHandlers.js */ 6811);\nconst formatWebpackErrors = __webpack_require__(/*! ./utils/formatWebpackErrors.js */ 2475);\nconst runWithPatchedUrl = __webpack_require__(/*! ./utils/patchUrl.js */ 3097);\nconst runWithRetry = __webpack_require__(/*! ./utils/retry.js */ 1165);\n\n// Setup error states\nlet isHotReload = false;\nlet hasRuntimeErrors = false;\n\n/**\n * Try dismissing the compile error overlay.\n * This will also reset runtime error records (if any),\n * because we have new source to evaluate.\n * @returns {void}\n */\nfunction tryDismissErrorOverlay() {\n __react_refresh_error_overlay__.clearCompileError();\n __react_refresh_error_overlay__.clearRuntimeErrors(!hasRuntimeErrors);\n hasRuntimeErrors = false;\n}\n\n/**\n * A function called after a compile success signal is received from Webpack.\n * @returns {void}\n */\nfunction handleCompileSuccess() {\n isHotReload = true;\n\n if (isHotReload) {\n tryDismissErrorOverlay();\n }\n}\n\n/**\n * A function called after a compile errored signal is received from Webpack.\n * @param {string[]} errors\n * @returns {void}\n */\nfunction handleCompileErrors(errors) {\n isHotReload = true;\n\n const formattedErrors = formatWebpackErrors(errors);\n\n // Only show the first error\n __react_refresh_error_overlay__.showCompileError(formattedErrors[0]);\n}\n\n/**\n * Handles compilation messages from Webpack.\n * Integrates with a compile error overlay.\n * @param {*} message A Webpack HMR message sent via WebSockets.\n * @returns {void}\n */\nfunction compileMessageHandler(message) {\n switch (message.type) {\n case 'ok':\n case 'still-ok':\n case 'warnings': {\n // TODO: Implement handling for warnings\n handleCompileSuccess();\n break;\n }\n case 'errors': {\n handleCompileErrors(message.data);\n break;\n }\n default: {\n // Do nothing.\n }\n }\n}\n\nif (true) {\n if (typeof window !== 'undefined') {\n runWithPatchedUrl(function setupOverlay() {\n // Only register if no other overlay have been registered\n if (!window.__reactRefreshOverlayInjected && __react_refresh_socket__) {\n // Registers handlers for compile errors with retry -\n // This is to prevent mismatching injection order causing errors to be thrown\n runWithRetry(function initSocket() {\n __react_refresh_socket__.init(compileMessageHandler, __resourceQuery);\n }, 3);\n // Registers handlers for runtime errors\n events.handleError(function handleError(error) {\n hasRuntimeErrors = true;\n __react_refresh_error_overlay__.handleRuntimeError(error);\n });\n events.handleUnhandledRejection(function handleUnhandledPromiseRejection(error) {\n hasRuntimeErrors = true;\n __react_refresh_error_overlay__.handleRuntimeError(error);\n });\n\n // Mark overlay as injected to prevent double-injection\n window.__reactRefreshOverlayInjected = true;\n }\n });\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjEwMS5qcyIsIm1hcHBpbmdzIjoiOzs7QUFBQTs7QUFFQSxlQUFlLG1CQUFPLENBQUMseUNBQStCO0FBQ3RELDRCQUE0QixtQkFBTyxDQUFDLDBDQUFnQztBQUNwRSwwQkFBMEIsbUJBQU8sQ0FBQywrQkFBcUI7QUFDdkQscUJBQXFCLG1CQUFPLENBQUMsNEJBQWtCOztBQUUvQztBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBLEVBQUUsK0JBQStCO0FBQ2pDLEVBQUUsK0JBQStCO0FBQ2pDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFdBQVcsVUFBVTtBQUNyQixhQUFhO0FBQ2I7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0EsRUFBRSwrQkFBK0I7QUFDakM7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxHQUFHO0FBQ2QsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLElBQUksSUFBcUM7QUFDekM7QUFDQTtBQUNBO0FBQ0EsbURBQW1ELHdCQUF3QjtBQUMzRTtBQUNBO0FBQ0E7QUFDQSxVQUFVLHdCQUF3Qiw2QkFBNkIsZUFBZTtBQUM5RSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsVUFBVSwrQkFBK0I7QUFDekMsU0FBUztBQUNUO0FBQ0E7QUFDQSxVQUFVLCtCQUErQjtBQUN6QyxTQUFTOztBQUVUO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQHN0YW5sZW1vbi93ZWJkZXYvLi4vLi4vbm9kZV9tb2R1bGVzL0BwbW1td2gvcmVhY3QtcmVmcmVzaC13ZWJwYWNrLXBsdWdpbi9jbGllbnQvRXJyb3JPdmVybGF5RW50cnkuanM/
|
|
1278
|
+
eval("var __resourceQuery = \"?sockProtocol=http\";\n/* provided dependency */ var __react_refresh_error_overlay__ = __webpack_require__(/*! ../../node_modules/@pmmmwh/react-refresh-webpack-plugin/overlay/index.js */ 4549);\n/* provided dependency */ var __react_refresh_socket__ = __webpack_require__(/*! ../../node_modules/@pmmmwh/react-refresh-webpack-plugin/sockets/WDSSocket.js */ 8483);\n/* global __react_refresh_error_overlay__, __react_refresh_socket__, __resourceQuery */\n\nconst events = __webpack_require__(/*! ./utils/errorEventHandlers.js */ 6811);\nconst formatWebpackErrors = __webpack_require__(/*! ./utils/formatWebpackErrors.js */ 2475);\nconst runWithPatchedUrl = __webpack_require__(/*! ./utils/patchUrl.js */ 3097);\nconst runWithRetry = __webpack_require__(/*! ./utils/retry.js */ 1165);\n\n// Setup error states\nlet isHotReload = false;\nlet hasRuntimeErrors = false;\n\n/**\n * Try dismissing the compile error overlay.\n * This will also reset runtime error records (if any),\n * because we have new source to evaluate.\n * @returns {void}\n */\nfunction tryDismissErrorOverlay() {\n __react_refresh_error_overlay__.clearCompileError();\n __react_refresh_error_overlay__.clearRuntimeErrors(!hasRuntimeErrors);\n hasRuntimeErrors = false;\n}\n\n/**\n * A function called after a compile success signal is received from Webpack.\n * @returns {void}\n */\nfunction handleCompileSuccess() {\n isHotReload = true;\n\n if (isHotReload) {\n tryDismissErrorOverlay();\n }\n}\n\n/**\n * A function called after a compile errored signal is received from Webpack.\n * @param {string[]} errors\n * @returns {void}\n */\nfunction handleCompileErrors(errors) {\n isHotReload = true;\n\n const formattedErrors = formatWebpackErrors(errors);\n\n // Only show the first error\n __react_refresh_error_overlay__.showCompileError(formattedErrors[0]);\n}\n\n/**\n * Handles compilation messages from Webpack.\n * Integrates with a compile error overlay.\n * @param {*} message A Webpack HMR message sent via WebSockets.\n * @returns {void}\n */\nfunction compileMessageHandler(message) {\n switch (message.type) {\n case 'ok':\n case 'still-ok':\n case 'warnings': {\n // TODO: Implement handling for warnings\n handleCompileSuccess();\n break;\n }\n case 'errors': {\n handleCompileErrors(message.data);\n break;\n }\n default: {\n // Do nothing.\n }\n }\n}\n\nif (true) {\n if (typeof window !== 'undefined') {\n runWithPatchedUrl(function setupOverlay() {\n // Only register if no other overlay have been registered\n if (!window.__reactRefreshOverlayInjected && __react_refresh_socket__) {\n // Registers handlers for compile errors with retry -\n // This is to prevent mismatching injection order causing errors to be thrown\n runWithRetry(function initSocket() {\n __react_refresh_socket__.init(compileMessageHandler, __resourceQuery);\n }, 3);\n // Registers handlers for runtime errors\n events.handleError(function handleError(error) {\n hasRuntimeErrors = true;\n __react_refresh_error_overlay__.handleRuntimeError(error);\n });\n events.handleUnhandledRejection(function handleUnhandledPromiseRejection(error) {\n hasRuntimeErrors = true;\n __react_refresh_error_overlay__.handleRuntimeError(error);\n });\n\n // Mark overlay as injected to prevent double-injection\n window.__reactRefreshOverlayInjected = true;\n }\n });\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjEwMS5qcyIsIm1hcHBpbmdzIjoiOzs7QUFBQTs7QUFFQSxlQUFlLG1CQUFPLENBQUMseUNBQStCO0FBQ3RELDRCQUE0QixtQkFBTyxDQUFDLDBDQUFnQztBQUNwRSwwQkFBMEIsbUJBQU8sQ0FBQywrQkFBcUI7QUFDdkQscUJBQXFCLG1CQUFPLENBQUMsNEJBQWtCOztBQUUvQztBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBLEVBQUUsK0JBQStCO0FBQ2pDLEVBQUUsK0JBQStCO0FBQ2pDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFdBQVcsVUFBVTtBQUNyQixhQUFhO0FBQ2I7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0EsRUFBRSwrQkFBK0I7QUFDakM7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxHQUFHO0FBQ2QsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLElBQUksSUFBcUM7QUFDekM7QUFDQTtBQUNBO0FBQ0EsbURBQW1ELHdCQUF3QjtBQUMzRTtBQUNBO0FBQ0E7QUFDQSxVQUFVLHdCQUF3Qiw2QkFBNkIsZUFBZTtBQUM5RSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsVUFBVSwrQkFBK0I7QUFDekMsU0FBUztBQUNUO0FBQ0E7QUFDQSxVQUFVLCtCQUErQjtBQUN6QyxTQUFTOztBQUVUO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQHN0YW5sZW1vbi93ZWJkZXYvLi4vLi4vbm9kZV9tb2R1bGVzL0BwbW1td2gvcmVhY3QtcmVmcmVzaC13ZWJwYWNrLXBsdWdpbi9jbGllbnQvRXJyb3JPdmVybGF5RW50cnkuanM/MjBkNCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBnbG9iYWwgX19yZWFjdF9yZWZyZXNoX2Vycm9yX292ZXJsYXlfXywgX19yZWFjdF9yZWZyZXNoX3NvY2tldF9fLCBfX3Jlc291cmNlUXVlcnkgKi9cblxuY29uc3QgZXZlbnRzID0gcmVxdWlyZSgnLi91dGlscy9lcnJvckV2ZW50SGFuZGxlcnMuanMnKTtcbmNvbnN0IGZvcm1hdFdlYnBhY2tFcnJvcnMgPSByZXF1aXJlKCcuL3V0aWxzL2Zvcm1hdFdlYnBhY2tFcnJvcnMuanMnKTtcbmNvbnN0IHJ1bldpdGhQYXRjaGVkVXJsID0gcmVxdWlyZSgnLi91dGlscy9wYXRjaFVybC5qcycpO1xuY29uc3QgcnVuV2l0aFJldHJ5ID0gcmVxdWlyZSgnLi91dGlscy9yZXRyeS5qcycpO1xuXG4vLyBTZXR1cCBlcnJvciBzdGF0ZXNcbmxldCBpc0hvdFJlbG9hZCA9IGZhbHNlO1xubGV0IGhhc1J1bnRpbWVFcnJvcnMgPSBmYWxzZTtcblxuLyoqXG4gKiBUcnkgZGlzbWlzc2luZyB0aGUgY29tcGlsZSBlcnJvciBvdmVybGF5LlxuICogVGhpcyB3aWxsIGFsc28gcmVzZXQgcnVudGltZSBlcnJvciByZWNvcmRzIChpZiBhbnkpLFxuICogYmVjYXVzZSB3ZSBoYXZlIG5ldyBzb3VyY2UgdG8gZXZhbHVhdGUuXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZnVuY3Rpb24gdHJ5RGlzbWlzc0Vycm9yT3ZlcmxheSgpIHtcbiAgX19yZWFjdF9yZWZyZXNoX2Vycm9yX292ZXJsYXlfXy5jbGVhckNvbXBpbGVFcnJvcigpO1xuICBfX3JlYWN0X3JlZnJlc2hfZXJyb3Jfb3ZlcmxheV9fLmNsZWFyUnVudGltZUVycm9ycyghaGFzUnVudGltZUVycm9ycyk7XG4gIGhhc1J1bnRpbWVFcnJvcnMgPSBmYWxzZTtcbn1cblxuLyoqXG4gKiBBIGZ1bmN0aW9uIGNhbGxlZCBhZnRlciBhIGNvbXBpbGUgc3VjY2VzcyBzaWduYWwgaXMgcmVjZWl2ZWQgZnJvbSBXZWJwYWNrLlxuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmZ1bmN0aW9uIGhhbmRsZUNvbXBpbGVTdWNjZXNzKCkge1xuICBpc0hvdFJlbG9hZCA9IHRydWU7XG5cbiAgaWYgKGlzSG90UmVsb2FkKSB7XG4gICAgdHJ5RGlzbWlzc0Vycm9yT3ZlcmxheSgpO1xuICB9XG59XG5cbi8qKlxuICogQSBmdW5jdGlvbiBjYWxsZWQgYWZ0ZXIgYSBjb21waWxlIGVycm9yZWQgc2lnbmFsIGlzIHJlY2VpdmVkIGZyb20gV2VicGFjay5cbiAqIEBwYXJhbSB7c3RyaW5nW119IGVycm9yc1xuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmZ1bmN0aW9uIGhhbmRsZUNvbXBpbGVFcnJvcnMoZXJyb3JzKSB7XG4gIGlzSG90UmVsb2FkID0gdHJ1ZTtcblxuICBjb25zdCBmb3JtYXR0ZWRFcnJvcnMgPSBmb3JtYXRXZWJwYWNrRXJyb3JzKGVycm9ycyk7XG5cbiAgLy8gT25seSBzaG93IHRoZSBmaXJzdCBlcnJvclxuICBfX3JlYWN0X3JlZnJlc2hfZXJyb3Jfb3ZlcmxheV9fLnNob3dDb21waWxlRXJyb3IoZm9ybWF0dGVkRXJyb3JzWzBdKTtcbn1cblxuLyoqXG4gKiBIYW5kbGVzIGNvbXBpbGF0aW9uIG1lc3NhZ2VzIGZyb20gV2VicGFjay5cbiAqIEludGVncmF0ZXMgd2l0aCBhIGNvbXBpbGUgZXJyb3Igb3ZlcmxheS5cbiAqIEBwYXJhbSB7Kn0gbWVzc2FnZSBBIFdlYnBhY2sgSE1SIG1lc3NhZ2Ugc2VudCB2aWEgV2ViU29ja2V0cy5cbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5mdW5jdGlvbiBjb21waWxlTWVzc2FnZUhhbmRsZXIobWVzc2FnZSkge1xuICBzd2l0Y2ggKG1lc3NhZ2UudHlwZSkge1xuICAgIGNhc2UgJ29rJzpcbiAgICBjYXNlICdzdGlsbC1vayc6XG4gICAgY2FzZSAnd2FybmluZ3MnOiB7XG4gICAgICAvLyBUT0RPOiBJbXBsZW1lbnQgaGFuZGxpbmcgZm9yIHdhcm5pbmdzXG4gICAgICBoYW5kbGVDb21waWxlU3VjY2VzcygpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGNhc2UgJ2Vycm9ycyc6IHtcbiAgICAgIGhhbmRsZUNvbXBpbGVFcnJvcnMobWVzc2FnZS5kYXRhKTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBkZWZhdWx0OiB7XG4gICAgICAvLyBEbyBub3RoaW5nLlxuICAgIH1cbiAgfVxufVxuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBydW5XaXRoUGF0Y2hlZFVybChmdW5jdGlvbiBzZXR1cE92ZXJsYXkoKSB7XG4gICAgICAvLyBPbmx5IHJlZ2lzdGVyIGlmIG5vIG90aGVyIG92ZXJsYXkgaGF2ZSBiZWVuIHJlZ2lzdGVyZWRcbiAgICAgIGlmICghd2luZG93Ll9fcmVhY3RSZWZyZXNoT3ZlcmxheUluamVjdGVkICYmIF9fcmVhY3RfcmVmcmVzaF9zb2NrZXRfXykge1xuICAgICAgICAvLyBSZWdpc3RlcnMgaGFuZGxlcnMgZm9yIGNvbXBpbGUgZXJyb3JzIHdpdGggcmV0cnkgLVxuICAgICAgICAvLyBUaGlzIGlzIHRvIHByZXZlbnQgbWlzbWF0Y2hpbmcgaW5qZWN0aW9uIG9yZGVyIGNhdXNpbmcgZXJyb3JzIHRvIGJlIHRocm93blxuICAgICAgICBydW5XaXRoUmV0cnkoZnVuY3Rpb24gaW5pdFNvY2tldCgpIHtcbiAgICAgICAgICBfX3JlYWN0X3JlZnJlc2hfc29ja2V0X18uaW5pdChjb21waWxlTWVzc2FnZUhhbmRsZXIsIF9fcmVzb3VyY2VRdWVyeSk7XG4gICAgICAgIH0sIDMpO1xuICAgICAgICAvLyBSZWdpc3RlcnMgaGFuZGxlcnMgZm9yIHJ1bnRpbWUgZXJyb3JzXG4gICAgICAgIGV2ZW50cy5oYW5kbGVFcnJvcihmdW5jdGlvbiBoYW5kbGVFcnJvcihlcnJvcikge1xuICAgICAgICAgIGhhc1J1bnRpbWVFcnJvcnMgPSB0cnVlO1xuICAgICAgICAgIF9fcmVhY3RfcmVmcmVzaF9lcnJvcl9vdmVybGF5X18uaGFuZGxlUnVudGltZUVycm9yKGVycm9yKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGV2ZW50cy5oYW5kbGVVbmhhbmRsZWRSZWplY3Rpb24oZnVuY3Rpb24gaGFuZGxlVW5oYW5kbGVkUHJvbWlzZVJlamVjdGlvbihlcnJvcikge1xuICAgICAgICAgIGhhc1J1bnRpbWVFcnJvcnMgPSB0cnVlO1xuICAgICAgICAgIF9fcmVhY3RfcmVmcmVzaF9lcnJvcl9vdmVybGF5X18uaGFuZGxlUnVudGltZUVycm9yKGVycm9yKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gTWFyayBvdmVybGF5IGFzIGluamVjdGVkIHRvIHByZXZlbnQgZG91YmxlLWluamVjdGlvblxuICAgICAgICB3aW5kb3cuX19yZWFjdFJlZnJlc2hPdmVybGF5SW5qZWN0ZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///6101\n");
|
|
1279
1279
|
|
|
1280
1280
|
/***/ }),
|
|
1281
1281
|
|
|
@@ -1285,7 +1285,7 @@ eval("var __resourceQuery = \"?sockProtocol=http\";\n/* provided dependency */ v
|
|
|
1285
1285
|
\*******************************************************************************************/
|
|
1286
1286
|
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
|
|
1287
1287
|
|
|
1288
|
-
eval("/* global __react_refresh_library__ */\n\nconst safeThis = __webpack_require__(/*! core-js-pure/features/global-this */ 6516);\nconst RefreshRuntime = __webpack_require__(/*! react-refresh/runtime */ 9139);\n\nif (true) {\n if (typeof safeThis !== 'undefined') {\n var $RefreshInjected$ = '__reactRefreshInjected';\n // Namespace the injected flag (if necessary) for monorepo compatibility\n if (false) {}\n\n // Only inject the runtime if it hasn't been injected\n if (!safeThis[$RefreshInjected$]) {\n // Inject refresh runtime into global scope\n RefreshRuntime.injectIntoGlobalHook(safeThis);\n\n // Mark the runtime as injected to prevent double-injection\n safeThis[$RefreshInjected$] = true;\n }\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
1288
|
+
eval("/* global __react_refresh_library__ */\n\nconst safeThis = __webpack_require__(/*! core-js-pure/features/global-this */ 6516);\nconst RefreshRuntime = __webpack_require__(/*! react-refresh/runtime */ 9139);\n\nif (true) {\n if (typeof safeThis !== 'undefined') {\n var $RefreshInjected$ = '__reactRefreshInjected';\n // Namespace the injected flag (if necessary) for monorepo compatibility\n if (false) {}\n\n // Only inject the runtime if it hasn't been injected\n if (!safeThis[$RefreshInjected$]) {\n // Inject refresh runtime into global scope\n RefreshRuntime.injectIntoGlobalHook(safeThis);\n\n // Mark the runtime as injected to prevent double-injection\n safeThis[$RefreshInjected$] = true;\n }\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzk0LmpzIiwibWFwcGluZ3MiOiJBQUFBOztBQUVBLGlCQUFpQixtQkFBTyxDQUFDLDZDQUFtQztBQUM1RCx1QkFBdUIsbUJBQU8sQ0FBQyxpQ0FBdUI7O0FBRXRELElBQUksSUFBcUM7QUFDekM7QUFDQTtBQUNBO0FBQ0EsUUFBUSxLQUE2RSxFQUFFLEVBRWxGOztBQUVMO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ac3RhbmxlbW9uL3dlYmRldi8uLi8uLi9ub2RlX21vZHVsZXMvQHBtbW13aC9yZWFjdC1yZWZyZXNoLXdlYnBhY2stcGx1Z2luL2NsaWVudC9SZWFjdFJlZnJlc2hFbnRyeS5qcz85NjgzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGdsb2JhbCBfX3JlYWN0X3JlZnJlc2hfbGlicmFyeV9fICovXG5cbmNvbnN0IHNhZmVUaGlzID0gcmVxdWlyZSgnY29yZS1qcy1wdXJlL2ZlYXR1cmVzL2dsb2JhbC10aGlzJyk7XG5jb25zdCBSZWZyZXNoUnVudGltZSA9IHJlcXVpcmUoJ3JlYWN0LXJlZnJlc2gvcnVudGltZScpO1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICBpZiAodHlwZW9mIHNhZmVUaGlzICE9PSAndW5kZWZpbmVkJykge1xuICAgIHZhciAkUmVmcmVzaEluamVjdGVkJCA9ICdfX3JlYWN0UmVmcmVzaEluamVjdGVkJztcbiAgICAvLyBOYW1lc3BhY2UgdGhlIGluamVjdGVkIGZsYWcgKGlmIG5lY2Vzc2FyeSkgZm9yIG1vbm9yZXBvIGNvbXBhdGliaWxpdHlcbiAgICBpZiAodHlwZW9mIF9fcmVhY3RfcmVmcmVzaF9saWJyYXJ5X18gIT09ICd1bmRlZmluZWQnICYmIF9fcmVhY3RfcmVmcmVzaF9saWJyYXJ5X18pIHtcbiAgICAgICRSZWZyZXNoSW5qZWN0ZWQkICs9ICdfJyArIF9fcmVhY3RfcmVmcmVzaF9saWJyYXJ5X187XG4gICAgfVxuXG4gICAgLy8gT25seSBpbmplY3QgdGhlIHJ1bnRpbWUgaWYgaXQgaGFzbid0IGJlZW4gaW5qZWN0ZWRcbiAgICBpZiAoIXNhZmVUaGlzWyRSZWZyZXNoSW5qZWN0ZWQkXSkge1xuICAgICAgLy8gSW5qZWN0IHJlZnJlc2ggcnVudGltZSBpbnRvIGdsb2JhbCBzY29wZVxuICAgICAgUmVmcmVzaFJ1bnRpbWUuaW5qZWN0SW50b0dsb2JhbEhvb2soc2FmZVRoaXMpO1xuXG4gICAgICAvLyBNYXJrIHRoZSBydW50aW1lIGFzIGluamVjdGVkIHRvIHByZXZlbnQgZG91YmxlLWluamVjdGlvblxuICAgICAgc2FmZVRoaXNbJFJlZnJlc2hJbmplY3RlZCRdID0gdHJ1ZTtcbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///794\n");
|
|
1289
1289
|
|
|
1290
1290
|
/***/ }),
|
|
1291
1291
|
|
|
@@ -1295,7 +1295,7 @@ eval("/* global __react_refresh_library__ */\n\nconst safeThis = __webpack_requi
|
|
|
1295
1295
|
\**************************************************************************************************/
|
|
1296
1296
|
/***/ ((module) => {
|
|
1297
1297
|
|
|
1298
|
-
eval("/**\n * @callback EventCallback\n * @param {string | Error | null} context\n * @returns {void}\n */\n/**\n * @callback EventHandler\n * @param {Event} event\n * @returns {void}\n */\n\n/**\n * A function that creates an event handler for the `error` event.\n * @param {EventCallback} callback A function called to handle the error context.\n * @returns {EventHandler} A handler for the `error` event.\n */\nfunction createErrorHandler(callback) {\n return function errorHandler(event) {\n if (!event || !event.error) {\n return callback(null);\n }\n if (event.error instanceof Error) {\n return callback(event.error);\n }\n // A non-error was thrown, we don't have a trace. :(\n // Look in your browser's devtools for more information\n return callback(new Error(event.error));\n };\n}\n\n/**\n * A function that creates an event handler for the `unhandledrejection` event.\n * @param {EventCallback} callback A function called to handle the error context.\n * @returns {EventHandler} A handler for the `unhandledrejection` event.\n */\nfunction createRejectionHandler(callback) {\n return function rejectionHandler(event) {\n if (!event || !event.reason) {\n return callback(new Error('Unknown'));\n }\n if (event.reason instanceof Error) {\n return callback(event.reason);\n }\n // A non-error was rejected, we don't have a trace :(\n // Look in your browser's devtools for more information\n return callback(new Error(event.reason));\n };\n}\n\n/**\n * Creates a handler that registers an EventListener on window for a valid type\n * and calls a callback when the event fires.\n * @param {string} eventType A valid DOM event type.\n * @param {function(EventCallback): EventHandler} createHandler A function that creates an event handler.\n * @returns {register} A function that registers the EventListener given a callback.\n */\nfunction createWindowEventHandler(eventType, createHandler) {\n /**\n * @type {EventHandler | null} A cached event handler function.\n */\n let eventHandler = null;\n\n /**\n * Unregisters an EventListener if it has been registered.\n * @returns {void}\n */\n function unregister() {\n if (eventHandler === null) {\n return;\n }\n window.removeEventListener(eventType, eventHandler);\n eventHandler = null;\n }\n\n /**\n * Registers an EventListener if it hasn't been registered.\n * @param {EventCallback} callback A function called after the event handler to handle its context.\n * @returns {unregister | void} A function to unregister the registered EventListener if registration is performed.\n */\n function register(callback) {\n if (eventHandler !== null) {\n return;\n }\n eventHandler = createHandler(callback);\n window.addEventListener(eventType, eventHandler);\n\n return unregister;\n }\n\n return register;\n}\n\nconst handleError = createWindowEventHandler('error', createErrorHandler);\nconst handleUnhandledRejection = createWindowEventHandler(\n 'unhandledrejection',\n createRejectionHandler\n);\n\nmodule.exports = {\n handleError: handleError,\n handleUnhandledRejection: handleUnhandledRejection,\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
1298
|
+
eval("/**\n * @callback EventCallback\n * @param {string | Error | null} context\n * @returns {void}\n */\n/**\n * @callback EventHandler\n * @param {Event} event\n * @returns {void}\n */\n\n/**\n * A function that creates an event handler for the `error` event.\n * @param {EventCallback} callback A function called to handle the error context.\n * @returns {EventHandler} A handler for the `error` event.\n */\nfunction createErrorHandler(callback) {\n return function errorHandler(event) {\n if (!event || !event.error) {\n return callback(null);\n }\n if (event.error instanceof Error) {\n return callback(event.error);\n }\n // A non-error was thrown, we don't have a trace. :(\n // Look in your browser's devtools for more information\n return callback(new Error(event.error));\n };\n}\n\n/**\n * A function that creates an event handler for the `unhandledrejection` event.\n * @param {EventCallback} callback A function called to handle the error context.\n * @returns {EventHandler} A handler for the `unhandledrejection` event.\n */\nfunction createRejectionHandler(callback) {\n return function rejectionHandler(event) {\n if (!event || !event.reason) {\n return callback(new Error('Unknown'));\n }\n if (event.reason instanceof Error) {\n return callback(event.reason);\n }\n // A non-error was rejected, we don't have a trace :(\n // Look in your browser's devtools for more information\n return callback(new Error(event.reason));\n };\n}\n\n/**\n * Creates a handler that registers an EventListener on window for a valid type\n * and calls a callback when the event fires.\n * @param {string} eventType A valid DOM event type.\n * @param {function(EventCallback): EventHandler} createHandler A function that creates an event handler.\n * @returns {register} A function that registers the EventListener given a callback.\n */\nfunction createWindowEventHandler(eventType, createHandler) {\n /**\n * @type {EventHandler | null} A cached event handler function.\n */\n let eventHandler = null;\n\n /**\n * Unregisters an EventListener if it has been registered.\n * @returns {void}\n */\n function unregister() {\n if (eventHandler === null) {\n return;\n }\n window.removeEventListener(eventType, eventHandler);\n eventHandler = null;\n }\n\n /**\n * Registers an EventListener if it hasn't been registered.\n * @param {EventCallback} callback A function called after the event handler to handle its context.\n * @returns {unregister | void} A function to unregister the registered EventListener if registration is performed.\n */\n function register(callback) {\n if (eventHandler !== null) {\n return;\n }\n eventHandler = createHandler(callback);\n window.addEventListener(eventType, eventHandler);\n\n return unregister;\n }\n\n return register;\n}\n\nconst handleError = createWindowEventHandler('error', createErrorHandler);\nconst handleUnhandledRejection = createWindowEventHandler(\n 'unhandledrejection',\n createRejectionHandler\n);\n\nmodule.exports = {\n handleError: handleError,\n handleUnhandledRejection: handleUnhandledRejection,\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjgxMS5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0EsV0FBVyx1QkFBdUI7QUFDbEMsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixhQUFhO0FBQ2I7O0FBRUE7QUFDQTtBQUNBLFdBQVcsZUFBZTtBQUMxQixhQUFhLGNBQWM7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsV0FBVyxlQUFlO0FBQzFCLGFBQWEsY0FBYztBQUMzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixXQUFXLHVDQUF1QztBQUNsRCxhQUFhLFVBQVU7QUFDdkI7QUFDQTtBQUNBO0FBQ0EsWUFBWSxxQkFBcUI7QUFDakM7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsZUFBZTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGFBQWEsZUFBZTtBQUM1QixlQUFlLG1CQUFtQjtBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL0BzdGFubGVtb24vd2ViZGV2Ly4uLy4uL25vZGVfbW9kdWxlcy9AcG1tbXdoL3JlYWN0LXJlZnJlc2gtd2VicGFjay1wbHVnaW4vY2xpZW50L3V0aWxzL2Vycm9yRXZlbnRIYW5kbGVycy5qcz8yYWMxIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGNhbGxiYWNrIEV2ZW50Q2FsbGJhY2tcbiAqIEBwYXJhbSB7c3RyaW5nIHwgRXJyb3IgfCBudWxsfSBjb250ZXh0XG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuLyoqXG4gKiBAY2FsbGJhY2sgRXZlbnRIYW5kbGVyXG4gKiBAcGFyYW0ge0V2ZW50fSBldmVudFxuICogQHJldHVybnMge3ZvaWR9XG4gKi9cblxuLyoqXG4gKiBBIGZ1bmN0aW9uIHRoYXQgY3JlYXRlcyBhbiBldmVudCBoYW5kbGVyIGZvciB0aGUgYGVycm9yYCBldmVudC5cbiAqIEBwYXJhbSB7RXZlbnRDYWxsYmFja30gY2FsbGJhY2sgQSBmdW5jdGlvbiBjYWxsZWQgdG8gaGFuZGxlIHRoZSBlcnJvciBjb250ZXh0LlxuICogQHJldHVybnMge0V2ZW50SGFuZGxlcn0gQSBoYW5kbGVyIGZvciB0aGUgYGVycm9yYCBldmVudC5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlRXJyb3JIYW5kbGVyKGNhbGxiYWNrKSB7XG4gIHJldHVybiBmdW5jdGlvbiBlcnJvckhhbmRsZXIoZXZlbnQpIHtcbiAgICBpZiAoIWV2ZW50IHx8ICFldmVudC5lcnJvcikge1xuICAgICAgcmV0dXJuIGNhbGxiYWNrKG51bGwpO1xuICAgIH1cbiAgICBpZiAoZXZlbnQuZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgcmV0dXJuIGNhbGxiYWNrKGV2ZW50LmVycm9yKTtcbiAgICB9XG4gICAgLy8gQSBub24tZXJyb3Igd2FzIHRocm93biwgd2UgZG9uJ3QgaGF2ZSBhIHRyYWNlLiA6KFxuICAgIC8vIExvb2sgaW4geW91ciBicm93c2VyJ3MgZGV2dG9vbHMgZm9yIG1vcmUgaW5mb3JtYXRpb25cbiAgICByZXR1cm4gY2FsbGJhY2sobmV3IEVycm9yKGV2ZW50LmVycm9yKSk7XG4gIH07XG59XG5cbi8qKlxuICogQSBmdW5jdGlvbiB0aGF0IGNyZWF0ZXMgYW4gZXZlbnQgaGFuZGxlciBmb3IgdGhlIGB1bmhhbmRsZWRyZWplY3Rpb25gIGV2ZW50LlxuICogQHBhcmFtIHtFdmVudENhbGxiYWNrfSBjYWxsYmFjayBBIGZ1bmN0aW9uIGNhbGxlZCB0byBoYW5kbGUgdGhlIGVycm9yIGNvbnRleHQuXG4gKiBAcmV0dXJucyB7RXZlbnRIYW5kbGVyfSBBIGhhbmRsZXIgZm9yIHRoZSBgdW5oYW5kbGVkcmVqZWN0aW9uYCBldmVudC5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlUmVqZWN0aW9uSGFuZGxlcihjYWxsYmFjaykge1xuICByZXR1cm4gZnVuY3Rpb24gcmVqZWN0aW9uSGFuZGxlcihldmVudCkge1xuICAgIGlmICghZXZlbnQgfHwgIWV2ZW50LnJlYXNvbikge1xuICAgICAgcmV0dXJuIGNhbGxiYWNrKG5ldyBFcnJvcignVW5rbm93bicpKTtcbiAgICB9XG4gICAgaWYgKGV2ZW50LnJlYXNvbiBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICByZXR1cm4gY2FsbGJhY2soZXZlbnQucmVhc29uKTtcbiAgICB9XG4gICAgLy8gQSBub24tZXJyb3Igd2FzIHJlamVjdGVkLCB3ZSBkb24ndCBoYXZlIGEgdHJhY2UgOihcbiAgICAvLyBMb29rIGluIHlvdXIgYnJvd3NlcidzIGRldnRvb2xzIGZvciBtb3JlIGluZm9ybWF0aW9uXG4gICAgcmV0dXJuIGNhbGxiYWNrKG5ldyBFcnJvcihldmVudC5yZWFzb24pKTtcbiAgfTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgaGFuZGxlciB0aGF0IHJlZ2lzdGVycyBhbiBFdmVudExpc3RlbmVyIG9uIHdpbmRvdyBmb3IgYSB2YWxpZCB0eXBlXG4gKiBhbmQgY2FsbHMgYSBjYWxsYmFjayB3aGVuIHRoZSBldmVudCBmaXJlcy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBldmVudFR5cGUgQSB2YWxpZCBET00gZXZlbnQgdHlwZS5cbiAqIEBwYXJhbSB7ZnVuY3Rpb24oRXZlbnRDYWxsYmFjayk6IEV2ZW50SGFuZGxlcn0gY3JlYXRlSGFuZGxlciBBIGZ1bmN0aW9uIHRoYXQgY3JlYXRlcyBhbiBldmVudCBoYW5kbGVyLlxuICogQHJldHVybnMge3JlZ2lzdGVyfSBBIGZ1bmN0aW9uIHRoYXQgcmVnaXN0ZXJzIHRoZSBFdmVudExpc3RlbmVyIGdpdmVuIGEgY2FsbGJhY2suXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZVdpbmRvd0V2ZW50SGFuZGxlcihldmVudFR5cGUsIGNyZWF0ZUhhbmRsZXIpIHtcbiAgLyoqXG4gICAqIEB0eXBlIHtFdmVudEhhbmRsZXIgfCBudWxsfSBBIGNhY2hlZCBldmVudCBoYW5kbGVyIGZ1bmN0aW9uLlxuICAgKi9cbiAgbGV0IGV2ZW50SGFuZGxlciA9IG51bGw7XG5cbiAgLyoqXG4gICAqIFVucmVnaXN0ZXJzIGFuIEV2ZW50TGlzdGVuZXIgaWYgaXQgaGFzIGJlZW4gcmVnaXN0ZXJlZC5cbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqL1xuICBmdW5jdGlvbiB1bnJlZ2lzdGVyKCkge1xuICAgIGlmIChldmVudEhhbmRsZXIgPT09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBldmVudEhhbmRsZXIpO1xuICAgIGV2ZW50SGFuZGxlciA9IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGFuIEV2ZW50TGlzdGVuZXIgaWYgaXQgaGFzbid0IGJlZW4gcmVnaXN0ZXJlZC5cbiAgICogQHBhcmFtIHtFdmVudENhbGxiYWNrfSBjYWxsYmFjayBBIGZ1bmN0aW9uIGNhbGxlZCBhZnRlciB0aGUgZXZlbnQgaGFuZGxlciB0byBoYW5kbGUgaXRzIGNvbnRleHQuXG4gICAqIEByZXR1cm5zIHt1bnJlZ2lzdGVyIHwgdm9pZH0gQSBmdW5jdGlvbiB0byB1bnJlZ2lzdGVyIHRoZSByZWdpc3RlcmVkIEV2ZW50TGlzdGVuZXIgaWYgcmVnaXN0cmF0aW9uIGlzIHBlcmZvcm1lZC5cbiAgICovXG4gIGZ1bmN0aW9uIHJlZ2lzdGVyKGNhbGxiYWNrKSB7XG4gICAgaWYgKGV2ZW50SGFuZGxlciAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBldmVudEhhbmRsZXIgPSBjcmVhdGVIYW5kbGVyKGNhbGxiYWNrKTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGV2ZW50SGFuZGxlcik7XG5cbiAgICByZXR1cm4gdW5yZWdpc3RlcjtcbiAgfVxuXG4gIHJldHVybiByZWdpc3Rlcjtcbn1cblxuY29uc3QgaGFuZGxlRXJyb3IgPSBjcmVhdGVXaW5kb3dFdmVudEhhbmRsZXIoJ2Vycm9yJywgY3JlYXRlRXJyb3JIYW5kbGVyKTtcbmNvbnN0IGhhbmRsZVVuaGFuZGxlZFJlamVjdGlvbiA9IGNyZWF0ZVdpbmRvd0V2ZW50SGFuZGxlcihcbiAgJ3VuaGFuZGxlZHJlamVjdGlvbicsXG4gIGNyZWF0ZVJlamVjdGlvbkhhbmRsZXJcbik7XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBoYW5kbGVFcnJvcjogaGFuZGxlRXJyb3IsXG4gIGhhbmRsZVVuaGFuZGxlZFJlamVjdGlvbjogaGFuZGxlVW5oYW5kbGVkUmVqZWN0aW9uLFxufTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///6811\n");
|
|
1299
1299
|
|
|
1300
1300
|
/***/ }),
|
|
1301
1301
|
|
|
@@ -1305,7 +1305,7 @@ eval("/**\n * @callback EventCallback\n * @param {string | Error | null} context
|
|
|
1305
1305
|
\***************************************************************************************************/
|
|
1306
1306
|
/***/ ((module) => {
|
|
1307
1307
|
|
|
1308
|
-
eval("/**\n * @typedef {Object} WebpackErrorObj\n * @property {string} moduleIdentifier\n * @property {string} moduleName\n * @property {string} message\n */\n\nconst friendlySyntaxErrorLabel = 'Syntax error:';\n\n/**\n * Checks if the error message is for a syntax error.\n * @param {string} message The raw Webpack error message.\n * @returns {boolean} Whether the error message is for a syntax error.\n */\nfunction isLikelyASyntaxError(message) {\n return message.indexOf(friendlySyntaxErrorLabel) !== -1;\n}\n\n/**\n * Cleans up Webpack error messages.\n *\n * This implementation is based on the one from [create-react-app](https://github.com/facebook/create-react-app/blob/edc671eeea6b7d26ac3f1eb2050e50f75cf9ad5d/packages/react-dev-utils/formatWebpackMessages.js).\n * @param {string} message The raw Webpack error message.\n * @returns {string} The formatted Webpack error message.\n */\nfunction formatMessage(message) {\n let lines = message.split('\\n');\n\n // Strip Webpack-added headers off errors/warnings\n // https://github.com/webpack/webpack/blob/master/lib/ModuleError.js\n lines = lines.filter(function (line) {\n return !/Module [A-z ]+\\(from/.test(line);\n });\n\n // Remove leading newline\n if (lines.length > 2 && lines[1].trim() === '') {\n lines.splice(1, 1);\n }\n\n // Remove duplicated newlines\n lines = lines.filter(function (line, index, arr) {\n return index === 0 || line.trim() !== '' || line.trim() !== arr[index - 1].trim();\n });\n\n // Clean up the file name\n lines[0] = lines[0].replace(/^(.*) \\d+:\\d+-\\d+$/, '$1');\n\n // Cleans up verbose \"module not found\" messages for files and packages.\n if (lines[1] && lines[1].indexOf('Module not found: ') === 0) {\n lines = [\n lines[0],\n lines[1]\n .replace('Error: ', '')\n .replace('Module not found: Cannot find file:', 'Cannot find file:'),\n ];\n }\n\n message = lines.join('\\n');\n\n // Clean up syntax errors\n message = message.replace('SyntaxError:', friendlySyntaxErrorLabel);\n\n // Internal stacks are generally useless, so we strip them -\n // except the stacks containing `webpack:`,\n // because they're normally from user code generated by webpack.\n message = message.replace(/^\\s*at\\s((?!webpack:).)*:\\d+:\\d+[\\s)]*(\\n|$)/gm, ''); // at ... ...:x:y\n message = message.replace(/^\\s*at\\s((?!webpack:).)*<anonymous>[\\s)]*(\\n|$)/gm, ''); // at ... <anonymous>\n message = message.replace(/^\\s*at\\s<anonymous>(\\n|$)/gm, ''); // at <anonymous>\n\n return message.trim();\n}\n\n/**\n * Formats Webpack error messages into a more readable format.\n * @param {Array<string | WebpackErrorObj>} errors An array of Webpack error messages.\n * @returns {string[]} The formatted Webpack error messages.\n */\nfunction formatWebpackErrors(errors) {\n let formattedErrors = errors.map(function (errorObjOrMessage) {\n // Webpack 5 compilation errors are in the form of descriptor objects,\n // so we have to join pieces to get the format we want.\n if (typeof errorObjOrMessage === 'object') {\n return formatMessage([errorObjOrMessage.moduleName, errorObjOrMessage.message].join('\\n'));\n }\n // Webpack 4 compilation errors are strings\n return formatMessage(errorObjOrMessage);\n });\n\n if (formattedErrors.some(isLikelyASyntaxError)) {\n // If there are any syntax errors, show just them.\n formattedErrors = formattedErrors.filter(isLikelyASyntaxError);\n }\n return formattedErrors;\n}\n\nmodule.exports = formatWebpackErrors;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
1308
|
+
eval("/**\n * @typedef {Object} WebpackErrorObj\n * @property {string} moduleIdentifier\n * @property {string} moduleName\n * @property {string} message\n */\n\nconst friendlySyntaxErrorLabel = 'Syntax error:';\n\n/**\n * Checks if the error message is for a syntax error.\n * @param {string} message The raw Webpack error message.\n * @returns {boolean} Whether the error message is for a syntax error.\n */\nfunction isLikelyASyntaxError(message) {\n return message.indexOf(friendlySyntaxErrorLabel) !== -1;\n}\n\n/**\n * Cleans up Webpack error messages.\n *\n * This implementation is based on the one from [create-react-app](https://github.com/facebook/create-react-app/blob/edc671eeea6b7d26ac3f1eb2050e50f75cf9ad5d/packages/react-dev-utils/formatWebpackMessages.js).\n * @param {string} message The raw Webpack error message.\n * @returns {string} The formatted Webpack error message.\n */\nfunction formatMessage(message) {\n let lines = message.split('\\n');\n\n // Strip Webpack-added headers off errors/warnings\n // https://github.com/webpack/webpack/blob/master/lib/ModuleError.js\n lines = lines.filter(function (line) {\n return !/Module [A-z ]+\\(from/.test(line);\n });\n\n // Remove leading newline\n if (lines.length > 2 && lines[1].trim() === '') {\n lines.splice(1, 1);\n }\n\n // Remove duplicated newlines\n lines = lines.filter(function (line, index, arr) {\n return index === 0 || line.trim() !== '' || line.trim() !== arr[index - 1].trim();\n });\n\n // Clean up the file name\n lines[0] = lines[0].replace(/^(.*) \\d+:\\d+-\\d+$/, '$1');\n\n // Cleans up verbose \"module not found\" messages for files and packages.\n if (lines[1] && lines[1].indexOf('Module not found: ') === 0) {\n lines = [\n lines[0],\n lines[1]\n .replace('Error: ', '')\n .replace('Module not found: Cannot find file:', 'Cannot find file:'),\n ];\n }\n\n message = lines.join('\\n');\n\n // Clean up syntax errors\n message = message.replace('SyntaxError:', friendlySyntaxErrorLabel);\n\n // Internal stacks are generally useless, so we strip them -\n // except the stacks containing `webpack:`,\n // because they're normally from user code generated by webpack.\n message = message.replace(/^\\s*at\\s((?!webpack:).)*:\\d+:\\d+[\\s)]*(\\n|$)/gm, ''); // at ... ...:x:y\n message = message.replace(/^\\s*at\\s((?!webpack:).)*<anonymous>[\\s)]*(\\n|$)/gm, ''); // at ... <anonymous>\n message = message.replace(/^\\s*at\\s<anonymous>(\\n|$)/gm, ''); // at <anonymous>\n\n return message.trim();\n}\n\n/**\n * Formats Webpack error messages into a more readable format.\n * @param {Array<string | WebpackErrorObj>} errors An array of Webpack error messages.\n * @returns {string[]} The formatted Webpack error messages.\n */\nfunction formatWebpackErrors(errors) {\n let formattedErrors = errors.map(function (errorObjOrMessage) {\n // Webpack 5 compilation errors are in the form of descriptor objects,\n // so we have to join pieces to get the format we want.\n if (typeof errorObjOrMessage === 'object') {\n return formatMessage([errorObjOrMessage.moduleName, errorObjOrMessage.message].join('\\n'));\n }\n // Webpack 4 compilation errors are strings\n return formatMessage(errorObjOrMessage);\n });\n\n if (formattedErrors.some(isLikelyASyntaxError)) {\n // If there are any syntax errors, show just them.\n formattedErrors = formattedErrors.filter(isLikelyASyntaxError);\n }\n return formattedErrors;\n}\n\nmodule.exports = formatWebpackErrors;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjQ3NS5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBLGFBQWEsUUFBUTtBQUNyQixjQUFjLFFBQVE7QUFDdEIsY0FBYyxRQUFRO0FBQ3RCLGNBQWMsUUFBUTtBQUN0Qjs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsbUZBQW1GO0FBQ25GLHNGQUFzRjtBQUN0RixnRUFBZ0U7O0FBRWhFO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFdBQVcsaUNBQWlDO0FBQzVDLGFBQWEsVUFBVTtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQHN0YW5sZW1vbi93ZWJkZXYvLi4vLi4vbm9kZV9tb2R1bGVzL0BwbW1td2gvcmVhY3QtcmVmcmVzaC13ZWJwYWNrLXBsdWdpbi9jbGllbnQvdXRpbHMvZm9ybWF0V2VicGFja0Vycm9ycy5qcz8yOWQzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gV2VicGFja0Vycm9yT2JqXG4gKiBAcHJvcGVydHkge3N0cmluZ30gbW9kdWxlSWRlbnRpZmllclxuICogQHByb3BlcnR5IHtzdHJpbmd9IG1vZHVsZU5hbWVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBtZXNzYWdlXG4gKi9cblxuY29uc3QgZnJpZW5kbHlTeW50YXhFcnJvckxhYmVsID0gJ1N5bnRheCBlcnJvcjonO1xuXG4vKipcbiAqIENoZWNrcyBpZiB0aGUgZXJyb3IgbWVzc2FnZSBpcyBmb3IgYSBzeW50YXggZXJyb3IuXG4gKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZSBUaGUgcmF3IFdlYnBhY2sgZXJyb3IgbWVzc2FnZS5cbiAqIEByZXR1cm5zIHtib29sZWFufSBXaGV0aGVyIHRoZSBlcnJvciBtZXNzYWdlIGlzIGZvciBhIHN5bnRheCBlcnJvci5cbiAqL1xuZnVuY3Rpb24gaXNMaWtlbHlBU3ludGF4RXJyb3IobWVzc2FnZSkge1xuICByZXR1cm4gbWVzc2FnZS5pbmRleE9mKGZyaWVuZGx5U3ludGF4RXJyb3JMYWJlbCkgIT09IC0xO1xufVxuXG4vKipcbiAqIENsZWFucyB1cCBXZWJwYWNrIGVycm9yIG1lc3NhZ2VzLlxuICpcbiAqIFRoaXMgaW1wbGVtZW50YXRpb24gaXMgYmFzZWQgb24gdGhlIG9uZSBmcm9tIFtjcmVhdGUtcmVhY3QtYXBwXShodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svY3JlYXRlLXJlYWN0LWFwcC9ibG9iL2VkYzY3MWVlZWE2YjdkMjZhYzNmMWViMjA1MGU1MGY3NWNmOWFkNWQvcGFja2FnZXMvcmVhY3QtZGV2LXV0aWxzL2Zvcm1hdFdlYnBhY2tNZXNzYWdlcy5qcykuXG4gKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZSBUaGUgcmF3IFdlYnBhY2sgZXJyb3IgbWVzc2FnZS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBmb3JtYXR0ZWQgV2VicGFjayBlcnJvciBtZXNzYWdlLlxuICovXG5mdW5jdGlvbiBmb3JtYXRNZXNzYWdlKG1lc3NhZ2UpIHtcbiAgbGV0IGxpbmVzID0gbWVzc2FnZS5zcGxpdCgnXFxuJyk7XG5cbiAgLy8gU3RyaXAgV2VicGFjay1hZGRlZCBoZWFkZXJzIG9mZiBlcnJvcnMvd2FybmluZ3NcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3dlYnBhY2svd2VicGFjay9ibG9iL21hc3Rlci9saWIvTW9kdWxlRXJyb3IuanNcbiAgbGluZXMgPSBsaW5lcy5maWx0ZXIoZnVuY3Rpb24gKGxpbmUpIHtcbiAgICByZXR1cm4gIS9Nb2R1bGUgW0EteiBdK1xcKGZyb20vLnRlc3QobGluZSk7XG4gIH0pO1xuXG4gIC8vIFJlbW92ZSBsZWFkaW5nIG5ld2xpbmVcbiAgaWYgKGxpbmVzLmxlbmd0aCA+IDIgJiYgbGluZXNbMV0udHJpbSgpID09PSAnJykge1xuICAgIGxpbmVzLnNwbGljZSgxLCAxKTtcbiAgfVxuXG4gIC8vIFJlbW92ZSBkdXBsaWNhdGVkIG5ld2xpbmVzXG4gIGxpbmVzID0gbGluZXMuZmlsdGVyKGZ1bmN0aW9uIChsaW5lLCBpbmRleCwgYXJyKSB7XG4gICAgcmV0dXJuIGluZGV4ID09PSAwIHx8IGxpbmUudHJpbSgpICE9PSAnJyB8fCBsaW5lLnRyaW0oKSAhPT0gYXJyW2luZGV4IC0gMV0udHJpbSgpO1xuICB9KTtcblxuICAvLyBDbGVhbiB1cCB0aGUgZmlsZSBuYW1lXG4gIGxpbmVzWzBdID0gbGluZXNbMF0ucmVwbGFjZSgvXiguKikgXFxkKzpcXGQrLVxcZCskLywgJyQxJyk7XG5cbiAgLy8gQ2xlYW5zIHVwIHZlcmJvc2UgXCJtb2R1bGUgbm90IGZvdW5kXCIgbWVzc2FnZXMgZm9yIGZpbGVzIGFuZCBwYWNrYWdlcy5cbiAgaWYgKGxpbmVzWzFdICYmIGxpbmVzWzFdLmluZGV4T2YoJ01vZHVsZSBub3QgZm91bmQ6ICcpID09PSAwKSB7XG4gICAgbGluZXMgPSBbXG4gICAgICBsaW5lc1swXSxcbiAgICAgIGxpbmVzWzFdXG4gICAgICAgIC5yZXBsYWNlKCdFcnJvcjogJywgJycpXG4gICAgICAgIC5yZXBsYWNlKCdNb2R1bGUgbm90IGZvdW5kOiBDYW5ub3QgZmluZCBmaWxlOicsICdDYW5ub3QgZmluZCBmaWxlOicpLFxuICAgIF07XG4gIH1cblxuICBtZXNzYWdlID0gbGluZXMuam9pbignXFxuJyk7XG5cbiAgLy8gQ2xlYW4gdXAgc3ludGF4IGVycm9yc1xuICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKCdTeW50YXhFcnJvcjonLCBmcmllbmRseVN5bnRheEVycm9yTGFiZWwpO1xuXG4gIC8vIEludGVybmFsIHN0YWNrcyBhcmUgZ2VuZXJhbGx5IHVzZWxlc3MsIHNvIHdlIHN0cmlwIHRoZW0gLVxuICAvLyBleGNlcHQgdGhlIHN0YWNrcyBjb250YWluaW5nIGB3ZWJwYWNrOmAsXG4gIC8vIGJlY2F1c2UgdGhleSdyZSBub3JtYWxseSBmcm9tIHVzZXIgY29kZSBnZW5lcmF0ZWQgYnkgd2VicGFjay5cbiAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZSgvXlxccyphdFxccygoPyF3ZWJwYWNrOikuKSo6XFxkKzpcXGQrW1xccyldKihcXG58JCkvZ20sICcnKTsgLy8gYXQgLi4uIC4uLjp4OnlcbiAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZSgvXlxccyphdFxccygoPyF3ZWJwYWNrOikuKSo8YW5vbnltb3VzPltcXHMpXSooXFxufCQpL2dtLCAnJyk7IC8vIGF0IC4uLiA8YW5vbnltb3VzPlxuICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKC9eXFxzKmF0XFxzPGFub255bW91cz4oXFxufCQpL2dtLCAnJyk7IC8vIGF0IDxhbm9ueW1vdXM+XG5cbiAgcmV0dXJuIG1lc3NhZ2UudHJpbSgpO1xufVxuXG4vKipcbiAqIEZvcm1hdHMgV2VicGFjayBlcnJvciBtZXNzYWdlcyBpbnRvIGEgbW9yZSByZWFkYWJsZSBmb3JtYXQuXG4gKiBAcGFyYW0ge0FycmF5PHN0cmluZyB8IFdlYnBhY2tFcnJvck9iaj59IGVycm9ycyBBbiBhcnJheSBvZiBXZWJwYWNrIGVycm9yIG1lc3NhZ2VzLlxuICogQHJldHVybnMge3N0cmluZ1tdfSBUaGUgZm9ybWF0dGVkIFdlYnBhY2sgZXJyb3IgbWVzc2FnZXMuXG4gKi9cbmZ1bmN0aW9uIGZvcm1hdFdlYnBhY2tFcnJvcnMoZXJyb3JzKSB7XG4gIGxldCBmb3JtYXR0ZWRFcnJvcnMgPSBlcnJvcnMubWFwKGZ1bmN0aW9uIChlcnJvck9iak9yTWVzc2FnZSkge1xuICAgIC8vIFdlYnBhY2sgNSBjb21waWxhdGlvbiBlcnJvcnMgYXJlIGluIHRoZSBmb3JtIG9mIGRlc2NyaXB0b3Igb2JqZWN0cyxcbiAgICAvLyBzbyB3ZSBoYXZlIHRvIGpvaW4gcGllY2VzIHRvIGdldCB0aGUgZm9ybWF0IHdlIHdhbnQuXG4gICAgaWYgKHR5cGVvZiBlcnJvck9iak9yTWVzc2FnZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHJldHVybiBmb3JtYXRNZXNzYWdlKFtlcnJvck9iak9yTWVzc2FnZS5tb2R1bGVOYW1lLCBlcnJvck9iak9yTWVzc2FnZS5tZXNzYWdlXS5qb2luKCdcXG4nKSk7XG4gICAgfVxuICAgIC8vIFdlYnBhY2sgNCBjb21waWxhdGlvbiBlcnJvcnMgYXJlIHN0cmluZ3NcbiAgICByZXR1cm4gZm9ybWF0TWVzc2FnZShlcnJvck9iak9yTWVzc2FnZSk7XG4gIH0pO1xuXG4gIGlmIChmb3JtYXR0ZWRFcnJvcnMuc29tZShpc0xpa2VseUFTeW50YXhFcnJvcikpIHtcbiAgICAvLyBJZiB0aGVyZSBhcmUgYW55IHN5bnRheCBlcnJvcnMsIHNob3cganVzdCB0aGVtLlxuICAgIGZvcm1hdHRlZEVycm9ycyA9IGZvcm1hdHRlZEVycm9ycy5maWx0ZXIoaXNMaWtlbHlBU3ludGF4RXJyb3IpO1xuICB9XG4gIHJldHVybiBmb3JtYXR0ZWRFcnJvcnM7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZm9ybWF0V2VicGFja0Vycm9ycztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///2475\n");
|
|
1309
1309
|
|
|
1310
1310
|
/***/ }),
|
|
1311
1311
|
|
|
@@ -1315,7 +1315,7 @@ eval("/**\n * @typedef {Object} WebpackErrorObj\n * @property {string} moduleIde
|
|
|
1315
1315
|
\****************************************************************************************/
|
|
1316
1316
|
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
|
1317
1317
|
|
|
1318
|
-
eval("/* global __react_refresh_polyfill_url__ */\n\n/**\n * @typedef {Object} UrlAPIs\n * @property {typeof URL} URL\n * @property {typeof URLSearchParams} URLSearchParams\n */\n\n/**\n * Runs a callback with patched the DOM URL APIs.\n * @param {function(UrlAPIs): void} callback The code to run with patched URL globals.\n * @returns {void}\n */\nfunction runWithPatchedUrl(callback) {\n var __originalURL;\n var __originalURLSearchParams;\n\n // Polyfill the DOM URL and URLSearchParams constructors\n if ( false || !window.URL) {\n __originalURL = window.URL;\n window.URL = __webpack_require__(/*! core-js-pure/web/url */ 5668);\n }\n if ( false || !window.URLSearchParams) {\n __originalURLSearchParams = window.URLSearchParams;\n window.URLSearchParams = __webpack_require__(/*! core-js-pure/web/url-search-params */ 2004);\n }\n\n // Pass in URL APIs in case they are needed\n callback({ URL: window.URL, URLSearchParams: window.URLSearchParams });\n\n // Restore polyfill-ed APIs to their original state\n if (__originalURL) {\n window.URL = __originalURL;\n }\n if (__originalURLSearchParams) {\n window.URLSearchParams = __originalURLSearchParams;\n }\n}\n\nmodule.exports = runWithPatchedUrl;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
1318
|
+
eval("/* global __react_refresh_polyfill_url__ */\n\n/**\n * @typedef {Object} UrlAPIs\n * @property {typeof URL} URL\n * @property {typeof URLSearchParams} URLSearchParams\n */\n\n/**\n * Runs a callback with patched the DOM URL APIs.\n * @param {function(UrlAPIs): void} callback The code to run with patched URL globals.\n * @returns {void}\n */\nfunction runWithPatchedUrl(callback) {\n var __originalURL;\n var __originalURLSearchParams;\n\n // Polyfill the DOM URL and URLSearchParams constructors\n if ( false || !window.URL) {\n __originalURL = window.URL;\n window.URL = __webpack_require__(/*! core-js-pure/web/url */ 5668);\n }\n if ( false || !window.URLSearchParams) {\n __originalURLSearchParams = window.URLSearchParams;\n window.URLSearchParams = __webpack_require__(/*! core-js-pure/web/url-search-params */ 2004);\n }\n\n // Pass in URL APIs in case they are needed\n callback({ URL: window.URL, URLSearchParams: window.URLSearchParams });\n\n // Restore polyfill-ed APIs to their original state\n if (__originalURL) {\n window.URL = __originalURL;\n }\n if (__originalURLSearchParams) {\n window.URLSearchParams = __originalURLSearchParams;\n }\n}\n\nmodule.exports = runWithPatchedUrl;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzA5Ny5qcyIsIm1hcHBpbmdzIjoiQUFBQTs7QUFFQTtBQUNBLGFBQWEsUUFBUTtBQUNyQixjQUFjLFlBQVk7QUFDMUIsY0FBYyx3QkFBd0I7QUFDdEM7O0FBRUE7QUFDQTtBQUNBLFdBQVcseUJBQXlCO0FBQ3BDLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLE1BQU0sTUFBOEI7QUFDcEM7QUFDQSxpQkFBaUIsbUJBQU8sQ0FBQyxnQ0FBc0I7QUFDL0M7QUFDQSxNQUFNLE1BQThCO0FBQ3BDO0FBQ0EsNkJBQTZCLG1CQUFPLENBQUMsOENBQW9DO0FBQ3pFOztBQUVBO0FBQ0EsYUFBYSwwREFBMEQ7O0FBRXZFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ac3RhbmxlbW9uL3dlYmRldi8uLi8uLi9ub2RlX21vZHVsZXMvQHBtbW13aC9yZWFjdC1yZWZyZXNoLXdlYnBhY2stcGx1Z2luL2NsaWVudC91dGlscy9wYXRjaFVybC5qcz8wZjczIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGdsb2JhbCBfX3JlYWN0X3JlZnJlc2hfcG9seWZpbGxfdXJsX18gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBVcmxBUElzXG4gKiBAcHJvcGVydHkge3R5cGVvZiBVUkx9IFVSTFxuICogQHByb3BlcnR5IHt0eXBlb2YgVVJMU2VhcmNoUGFyYW1zfSBVUkxTZWFyY2hQYXJhbXNcbiAqL1xuXG4vKipcbiAqIFJ1bnMgYSBjYWxsYmFjayB3aXRoIHBhdGNoZWQgdGhlIERPTSBVUkwgQVBJcy5cbiAqIEBwYXJhbSB7ZnVuY3Rpb24oVXJsQVBJcyk6IHZvaWR9IGNhbGxiYWNrIFRoZSBjb2RlIHRvIHJ1biB3aXRoIHBhdGNoZWQgVVJMIGdsb2JhbHMuXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZnVuY3Rpb24gcnVuV2l0aFBhdGNoZWRVcmwoY2FsbGJhY2spIHtcbiAgdmFyIF9fb3JpZ2luYWxVUkw7XG4gIHZhciBfX29yaWdpbmFsVVJMU2VhcmNoUGFyYW1zO1xuXG4gIC8vIFBvbHlmaWxsIHRoZSBET00gVVJMIGFuZCBVUkxTZWFyY2hQYXJhbXMgY29uc3RydWN0b3JzXG4gIGlmIChfX3JlYWN0X3JlZnJlc2hfcG9seWZpbGxfdXJsX18gfHwgIXdpbmRvdy5VUkwpIHtcbiAgICBfX29yaWdpbmFsVVJMID0gd2luZG93LlVSTDtcbiAgICB3aW5kb3cuVVJMID0gcmVxdWlyZSgnY29yZS1qcy1wdXJlL3dlYi91cmwnKTtcbiAgfVxuICBpZiAoX19yZWFjdF9yZWZyZXNoX3BvbHlmaWxsX3VybF9fIHx8ICF3aW5kb3cuVVJMU2VhcmNoUGFyYW1zKSB7XG4gICAgX19vcmlnaW5hbFVSTFNlYXJjaFBhcmFtcyA9IHdpbmRvdy5VUkxTZWFyY2hQYXJhbXM7XG4gICAgd2luZG93LlVSTFNlYXJjaFBhcmFtcyA9IHJlcXVpcmUoJ2NvcmUtanMtcHVyZS93ZWIvdXJsLXNlYXJjaC1wYXJhbXMnKTtcbiAgfVxuXG4gIC8vIFBhc3MgaW4gVVJMIEFQSXMgaW4gY2FzZSB0aGV5IGFyZSBuZWVkZWRcbiAgY2FsbGJhY2soeyBVUkw6IHdpbmRvdy5VUkwsIFVSTFNlYXJjaFBhcmFtczogd2luZG93LlVSTFNlYXJjaFBhcmFtcyB9KTtcblxuICAvLyBSZXN0b3JlIHBvbHlmaWxsLWVkIEFQSXMgdG8gdGhlaXIgb3JpZ2luYWwgc3RhdGVcbiAgaWYgKF9fb3JpZ2luYWxVUkwpIHtcbiAgICB3aW5kb3cuVVJMID0gX19vcmlnaW5hbFVSTDtcbiAgfVxuICBpZiAoX19vcmlnaW5hbFVSTFNlYXJjaFBhcmFtcykge1xuICAgIHdpbmRvdy5VUkxTZWFyY2hQYXJhbXMgPSBfX29yaWdpbmFsVVJMU2VhcmNoUGFyYW1zO1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gcnVuV2l0aFBhdGNoZWRVcmw7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///3097\n");
|
|
1319
1319
|
|
|
1320
1320
|
/***/ }),
|
|
1321
1321
|
|
|
@@ -1325,7 +1325,7 @@ eval("/* global __react_refresh_polyfill_url__ */\n\n/**\n * @typedef {Object} U
|
|
|
1325
1325
|
\*************************************************************************************/
|
|
1326
1326
|
/***/ ((module) => {
|
|
1327
1327
|
|
|
1328
|
-
eval("function runWithRetry(callback, maxRetries) {\n function executeWithRetryAndTimeout(currentCount) {\n try {\n if (currentCount > maxRetries - 1) {\n console.warn('[React Refresh] Failed to set up the socket connection.');\n return;\n }\n\n callback();\n } catch (err) {\n setTimeout(function () {\n executeWithRetryAndTimeout(currentCount + 1);\n }, Math.pow(10, currentCount));\n }\n }\n\n executeWithRetryAndTimeout(0);\n}\n\nmodule.exports = runWithRetry;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
1328
|
+
eval("function runWithRetry(callback, maxRetries) {\n function executeWithRetryAndTimeout(currentCount) {\n try {\n if (currentCount > maxRetries - 1) {\n console.warn('[React Refresh] Failed to set up the socket connection.');\n return;\n }\n\n callback();\n } catch (err) {\n setTimeout(function () {\n executeWithRetryAndTimeout(currentCount + 1);\n }, Math.pow(10, currentCount));\n }\n }\n\n executeWithRetryAndTimeout(0);\n}\n\nmodule.exports = runWithRetry;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTE2NS5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsid2VicGFjazovL0BzdGFubGVtb24vd2ViZGV2Ly4uLy4uL25vZGVfbW9kdWxlcy9AcG1tbXdoL3JlYWN0LXJlZnJlc2gtd2VicGFjay1wbHVnaW4vY2xpZW50L3V0aWxzL3JldHJ5LmpzP2FlMWYiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gcnVuV2l0aFJldHJ5KGNhbGxiYWNrLCBtYXhSZXRyaWVzKSB7XG4gIGZ1bmN0aW9uIGV4ZWN1dGVXaXRoUmV0cnlBbmRUaW1lb3V0KGN1cnJlbnRDb3VudCkge1xuICAgIHRyeSB7XG4gICAgICBpZiAoY3VycmVudENvdW50ID4gbWF4UmV0cmllcyAtIDEpIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdbUmVhY3QgUmVmcmVzaF0gRmFpbGVkIHRvIHNldCB1cCB0aGUgc29ja2V0IGNvbm5lY3Rpb24uJyk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY2FsbGJhY2soKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICBleGVjdXRlV2l0aFJldHJ5QW5kVGltZW91dChjdXJyZW50Q291bnQgKyAxKTtcbiAgICAgIH0sIE1hdGgucG93KDEwLCBjdXJyZW50Q291bnQpKTtcbiAgICB9XG4gIH1cblxuICBleGVjdXRlV2l0aFJldHJ5QW5kVGltZW91dCgwKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBydW5XaXRoUmV0cnk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///1165\n");
|
|
1329
1329
|
|
|
1330
1330
|
/***/ }),
|
|
1331
1331
|
|
|
@@ -1335,7 +1335,7 @@ eval("function runWithRetry(callback, maxRetries) {\n function executeWithRetry
|
|
|
1335
1335
|
\*******************************************************************************************************/
|
|
1336
1336
|
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
|
1337
1337
|
|
|
1338
|
-
eval("const ansiHTML = __webpack_require__(/*! ansi-html-community */ 7807);\nconst entities = __webpack_require__(/*! html-entities */ 9392);\nconst theme = __webpack_require__(/*! ../theme.js */ 822);\nconst utils = __webpack_require__(/*! ../utils.js */ 4725);\n\nansiHTML.setColors(theme);\n\n/**\n * @typedef {Object} CompileErrorTraceProps\n * @property {string} errorMessage\n */\n\n/**\n * A formatter that turns Webpack compile error messages into highlighted HTML source traces.\n * @param {Document} document\n * @param {HTMLElement} root\n * @param {CompileErrorTraceProps} props\n * @returns {void}\n */\nfunction CompileErrorTrace(document, root, props) {\n const errorParts = props.errorMessage.split('\\n');\n if (errorParts.length) {\n if (errorParts[0]) {\n errorParts[0] = utils.formatFilename(errorParts[0]);\n }\n\n const errorMessage = errorParts.splice(1, 1)[0];\n if (errorMessage) {\n // Strip filename from the error message\n errorParts.unshift(errorMessage.replace(/^(.*:)\\s.*:(\\s.*)$/, '$1$2'));\n }\n }\n\n const stackContainer = document.createElement('pre');\n stackContainer.innerHTML = entities.decode(\n ansiHTML(entities.encode(errorParts.join('\\n'), { level: 'html5', mode: 'nonAscii' })),\n { level: 'html5' }\n );\n stackContainer.style.fontFamily = [\n '\"Operator Mono SSm\"',\n '\"Operator Mono\"',\n '\"Fira Code Retina\"',\n '\"Fira Code\"',\n '\"FiraCode-Retina\"',\n '\"Andale Mono\"',\n '\"Lucida Console\"',\n 'Menlo',\n 'Consolas',\n 'Monaco',\n 'monospace',\n ].join(', ');\n stackContainer.style.margin = '0';\n stackContainer.style.whiteSpace = 'pre-wrap';\n\n root.appendChild(stackContainer);\n}\n\nmodule.exports = CompileErrorTrace;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
1338
|
+
eval("const ansiHTML = __webpack_require__(/*! ansi-html-community */ 7807);\nconst entities = __webpack_require__(/*! html-entities */ 9392);\nconst theme = __webpack_require__(/*! ../theme.js */ 822);\nconst utils = __webpack_require__(/*! ../utils.js */ 4725);\n\nansiHTML.setColors(theme);\n\n/**\n * @typedef {Object} CompileErrorTraceProps\n * @property {string} errorMessage\n */\n\n/**\n * A formatter that turns Webpack compile error messages into highlighted HTML source traces.\n * @param {Document} document\n * @param {HTMLElement} root\n * @param {CompileErrorTraceProps} props\n * @returns {void}\n */\nfunction CompileErrorTrace(document, root, props) {\n const errorParts = props.errorMessage.split('\\n');\n if (errorParts.length) {\n if (errorParts[0]) {\n errorParts[0] = utils.formatFilename(errorParts[0]);\n }\n\n const errorMessage = errorParts.splice(1, 1)[0];\n if (errorMessage) {\n // Strip filename from the error message\n errorParts.unshift(errorMessage.replace(/^(.*:)\\s.*:(\\s.*)$/, '$1$2'));\n }\n }\n\n const stackContainer = document.createElement('pre');\n stackContainer.innerHTML = entities.decode(\n ansiHTML(entities.encode(errorParts.join('\\n'), { level: 'html5', mode: 'nonAscii' })),\n { level: 'html5' }\n );\n stackContainer.style.fontFamily = [\n '\"Operator Mono SSm\"',\n '\"Operator Mono\"',\n '\"Fira Code Retina\"',\n '\"Fira Code\"',\n '\"FiraCode-Retina\"',\n '\"Andale Mono\"',\n '\"Lucida Console\"',\n 'Menlo',\n 'Consolas',\n 'Monaco',\n 'monospace',\n ].join(', ');\n stackContainer.style.margin = '0';\n stackContainer.style.whiteSpace = 'pre-wrap';\n\n root.appendChild(stackContainer);\n}\n\nmodule.exports = CompileErrorTrace;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTA3OS5qcyIsIm1hcHBpbmdzIjoiQUFBQSxpQkFBaUIsbUJBQU8sQ0FBQywrQkFBcUI7QUFDOUMsaUJBQWlCLG1CQUFPLENBQUMseUJBQWU7QUFDeEMsY0FBYyxtQkFBTyxDQUFDLHNCQUFhO0FBQ25DLGNBQWMsbUJBQU8sQ0FBQyx1QkFBYTs7QUFFbkM7O0FBRUE7QUFDQSxhQUFhLFFBQVE7QUFDckIsY0FBYyxRQUFRO0FBQ3RCOztBQUVBO0FBQ0E7QUFDQSxXQUFXLFVBQVU7QUFDckIsV0FBVyxhQUFhO0FBQ3hCLFdBQVcsd0JBQXdCO0FBQ25DLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHNEQUFzRCxrQ0FBa0M7QUFDeEYsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ac3RhbmxlbW9uL3dlYmRldi8uLi8uLi9ub2RlX21vZHVsZXMvQHBtbW13aC9yZWFjdC1yZWZyZXNoLXdlYnBhY2stcGx1Z2luL292ZXJsYXkvY29tcG9uZW50cy9Db21waWxlRXJyb3JUcmFjZS5qcz9jZmUxIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGFuc2lIVE1MID0gcmVxdWlyZSgnYW5zaS1odG1sLWNvbW11bml0eScpO1xuY29uc3QgZW50aXRpZXMgPSByZXF1aXJlKCdodG1sLWVudGl0aWVzJyk7XG5jb25zdCB0aGVtZSA9IHJlcXVpcmUoJy4uL3RoZW1lLmpzJyk7XG5jb25zdCB1dGlscyA9IHJlcXVpcmUoJy4uL3V0aWxzLmpzJyk7XG5cbmFuc2lIVE1MLnNldENvbG9ycyh0aGVtZSk7XG5cbi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gQ29tcGlsZUVycm9yVHJhY2VQcm9wc1xuICogQHByb3BlcnR5IHtzdHJpbmd9IGVycm9yTWVzc2FnZVxuICovXG5cbi8qKlxuICogQSBmb3JtYXR0ZXIgdGhhdCB0dXJucyBXZWJwYWNrIGNvbXBpbGUgZXJyb3IgbWVzc2FnZXMgaW50byBoaWdobGlnaHRlZCBIVE1MIHNvdXJjZSB0cmFjZXMuXG4gKiBAcGFyYW0ge0RvY3VtZW50fSBkb2N1bWVudFxuICogQHBhcmFtIHtIVE1MRWxlbWVudH0gcm9vdFxuICogQHBhcmFtIHtDb21waWxlRXJyb3JUcmFjZVByb3BzfSBwcm9wc1xuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmZ1bmN0aW9uIENvbXBpbGVFcnJvclRyYWNlKGRvY3VtZW50LCByb290LCBwcm9wcykge1xuICBjb25zdCBlcnJvclBhcnRzID0gcHJvcHMuZXJyb3JNZXNzYWdlLnNwbGl0KCdcXG4nKTtcbiAgaWYgKGVycm9yUGFydHMubGVuZ3RoKSB7XG4gICAgaWYgKGVycm9yUGFydHNbMF0pIHtcbiAgICAgIGVycm9yUGFydHNbMF0gPSB1dGlscy5mb3JtYXRGaWxlbmFtZShlcnJvclBhcnRzWzBdKTtcbiAgICB9XG5cbiAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBlcnJvclBhcnRzLnNwbGljZSgxLCAxKVswXTtcbiAgICBpZiAoZXJyb3JNZXNzYWdlKSB7XG4gICAgICAvLyBTdHJpcCBmaWxlbmFtZSBmcm9tIHRoZSBlcnJvciBtZXNzYWdlXG4gICAgICBlcnJvclBhcnRzLnVuc2hpZnQoZXJyb3JNZXNzYWdlLnJlcGxhY2UoL14oLio6KVxccy4qOihcXHMuKikkLywgJyQxJDInKSk7XG4gICAgfVxuICB9XG5cbiAgY29uc3Qgc3RhY2tDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwcmUnKTtcbiAgc3RhY2tDb250YWluZXIuaW5uZXJIVE1MID0gZW50aXRpZXMuZGVjb2RlKFxuICAgIGFuc2lIVE1MKGVudGl0aWVzLmVuY29kZShlcnJvclBhcnRzLmpvaW4oJ1xcbicpLCB7IGxldmVsOiAnaHRtbDUnLCBtb2RlOiAnbm9uQXNjaWknIH0pKSxcbiAgICB7IGxldmVsOiAnaHRtbDUnIH1cbiAgKTtcbiAgc3RhY2tDb250YWluZXIuc3R5bGUuZm9udEZhbWlseSA9IFtcbiAgICAnXCJPcGVyYXRvciBNb25vIFNTbVwiJyxcbiAgICAnXCJPcGVyYXRvciBNb25vXCInLFxuICAgICdcIkZpcmEgQ29kZSBSZXRpbmFcIicsXG4gICAgJ1wiRmlyYSBDb2RlXCInLFxuICAgICdcIkZpcmFDb2RlLVJldGluYVwiJyxcbiAgICAnXCJBbmRhbGUgTW9ub1wiJyxcbiAgICAnXCJMdWNpZGEgQ29uc29sZVwiJyxcbiAgICAnTWVubG8nLFxuICAgICdDb25zb2xhcycsXG4gICAgJ01vbmFjbycsXG4gICAgJ21vbm9zcGFjZScsXG4gIF0uam9pbignLCAnKTtcbiAgc3RhY2tDb250YWluZXIuc3R5bGUubWFyZ2luID0gJzAnO1xuICBzdGFja0NvbnRhaW5lci5zdHlsZS53aGl0ZVNwYWNlID0gJ3ByZS13cmFwJztcblxuICByb290LmFwcGVuZENoaWxkKHN0YWNrQ29udGFpbmVyKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBDb21waWxlRXJyb3JUcmFjZTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///5079\n");
|
|
1339
1339
|
|
|
1340
1340
|
/***/ }),
|
|
1341
1341
|
|
|
@@ -1345,7 +1345,7 @@ eval("const ansiHTML = __webpack_require__(/*! ansi-html-community */ 7807);\nco
|
|
|
1345
1345
|
\************************************************************************************************/
|
|
1346
1346
|
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
|
1347
1347
|
|
|
1348
|
-
eval("const Spacer = __webpack_require__(/*! ./Spacer.js */ 3665);\nconst theme = __webpack_require__(/*! ../theme.js */ 822);\n\n/**\n * @typedef {Object} PageHeaderProps\n * @property {string} [message]\n * @property {string} title\n * @property {string} [topOffset]\n */\n\n/**\n * The header of the overlay.\n * @param {Document} document\n * @param {HTMLElement} root\n * @param {PageHeaderProps} props\n * @returns {void}\n */\nfunction PageHeader(document, root, props) {\n const pageHeaderContainer = document.createElement('div');\n pageHeaderContainer.style.background = '#' + theme.dimgrey;\n pageHeaderContainer.style.boxShadow = '0 1px 4px rgba(0, 0, 0, 0.3)';\n pageHeaderContainer.style.color = '#' + theme.white;\n pageHeaderContainer.style.left = '0';\n pageHeaderContainer.style.right = '0';\n pageHeaderContainer.style.padding = '1rem 1.5rem';\n pageHeaderContainer.style.paddingLeft = 'max(1.5rem, env(safe-area-inset-left))';\n pageHeaderContainer.style.paddingRight = 'max(1.5rem, env(safe-area-inset-right))';\n pageHeaderContainer.style.position = 'fixed';\n pageHeaderContainer.style.top = props.topOffset || '0';\n\n const title = document.createElement('h3');\n title.innerText = props.title;\n title.style.color = '#' + theme.red;\n title.style.fontSize = '1.125rem';\n title.style.lineHeight = '1.3';\n title.style.margin = '0';\n pageHeaderContainer.appendChild(title);\n\n if (props.message) {\n title.style.margin = '0 0 0.5rem';\n\n const message = document.createElement('span');\n message.innerText = props.message;\n message.style.color = '#' + theme.white;\n message.style.wordBreak = 'break-word';\n pageHeaderContainer.appendChild(message);\n }\n\n root.appendChild(pageHeaderContainer);\n\n // This has to run after appending elements to root\n // because we need to actual mounted height.\n Spacer(document, root, {\n space: pageHeaderContainer.offsetHeight.toString(10),\n });\n}\n\nmodule.exports = PageHeader;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
1348
|
+
eval("const Spacer = __webpack_require__(/*! ./Spacer.js */ 3665);\nconst theme = __webpack_require__(/*! ../theme.js */ 822);\n\n/**\n * @typedef {Object} PageHeaderProps\n * @property {string} [message]\n * @property {string} title\n * @property {string} [topOffset]\n */\n\n/**\n * The header of the overlay.\n * @param {Document} document\n * @param {HTMLElement} root\n * @param {PageHeaderProps} props\n * @returns {void}\n */\nfunction PageHeader(document, root, props) {\n const pageHeaderContainer = document.createElement('div');\n pageHeaderContainer.style.background = '#' + theme.dimgrey;\n pageHeaderContainer.style.boxShadow = '0 1px 4px rgba(0, 0, 0, 0.3)';\n pageHeaderContainer.style.color = '#' + theme.white;\n pageHeaderContainer.style.left = '0';\n pageHeaderContainer.style.right = '0';\n pageHeaderContainer.style.padding = '1rem 1.5rem';\n pageHeaderContainer.style.paddingLeft = 'max(1.5rem, env(safe-area-inset-left))';\n pageHeaderContainer.style.paddingRight = 'max(1.5rem, env(safe-area-inset-right))';\n pageHeaderContainer.style.position = 'fixed';\n pageHeaderContainer.style.top = props.topOffset || '0';\n\n const title = document.createElement('h3');\n title.innerText = props.title;\n title.style.color = '#' + theme.red;\n title.style.fontSize = '1.125rem';\n title.style.lineHeight = '1.3';\n title.style.margin = '0';\n pageHeaderContainer.appendChild(title);\n\n if (props.message) {\n title.style.margin = '0 0 0.5rem';\n\n const message = document.createElement('span');\n message.innerText = props.message;\n message.style.color = '#' + theme.white;\n message.style.wordBreak = 'break-word';\n pageHeaderContainer.appendChild(message);\n }\n\n root.appendChild(pageHeaderContainer);\n\n // This has to run after appending elements to root\n // because we need to actual mounted height.\n Spacer(document, root, {\n space: pageHeaderContainer.offsetHeight.toString(10),\n });\n}\n\nmodule.exports = PageHeader;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODM4Ny5qcyIsIm1hcHBpbmdzIjoiQUFBQSxlQUFlLG1CQUFPLENBQUMsdUJBQWE7QUFDcEMsY0FBYyxtQkFBTyxDQUFDLHNCQUFhOztBQUVuQztBQUNBLGFBQWEsUUFBUTtBQUNyQixjQUFjLFFBQVE7QUFDdEIsY0FBYyxRQUFRO0FBQ3RCLGNBQWMsUUFBUTtBQUN0Qjs7QUFFQTtBQUNBO0FBQ0EsV0FBVyxVQUFVO0FBQ3JCLFdBQVcsYUFBYTtBQUN4QixXQUFXLGlCQUFpQjtBQUM1QixhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7O0FBRUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ac3RhbmxlbW9uL3dlYmRldi8uLi8uLi9ub2RlX21vZHVsZXMvQHBtbW13aC9yZWFjdC1yZWZyZXNoLXdlYnBhY2stcGx1Z2luL292ZXJsYXkvY29tcG9uZW50cy9QYWdlSGVhZGVyLmpzPzFlZmMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgU3BhY2VyID0gcmVxdWlyZSgnLi9TcGFjZXIuanMnKTtcbmNvbnN0IHRoZW1lID0gcmVxdWlyZSgnLi4vdGhlbWUuanMnKTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBQYWdlSGVhZGVyUHJvcHNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbbWVzc2FnZV1cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSB0aXRsZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFt0b3BPZmZzZXRdXG4gKi9cblxuLyoqXG4gKiBUaGUgaGVhZGVyIG9mIHRoZSBvdmVybGF5LlxuICogQHBhcmFtIHtEb2N1bWVudH0gZG9jdW1lbnRcbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IHJvb3RcbiAqIEBwYXJhbSB7UGFnZUhlYWRlclByb3BzfSBwcm9wc1xuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmZ1bmN0aW9uIFBhZ2VIZWFkZXIoZG9jdW1lbnQsIHJvb3QsIHByb3BzKSB7XG4gIGNvbnN0IHBhZ2VIZWFkZXJDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgcGFnZUhlYWRlckNvbnRhaW5lci5zdHlsZS5iYWNrZ3JvdW5kID0gJyMnICsgdGhlbWUuZGltZ3JleTtcbiAgcGFnZUhlYWRlckNvbnRhaW5lci5zdHlsZS5ib3hTaGFkb3cgPSAnMCAxcHggNHB4IHJnYmEoMCwgMCwgMCwgMC4zKSc7XG4gIHBhZ2VIZWFkZXJDb250YWluZXIuc3R5bGUuY29sb3IgPSAnIycgKyB0aGVtZS53aGl0ZTtcbiAgcGFnZUhlYWRlckNvbnRhaW5lci5zdHlsZS5sZWZ0ID0gJzAnO1xuICBwYWdlSGVhZGVyQ29udGFpbmVyLnN0eWxlLnJpZ2h0ID0gJzAnO1xuICBwYWdlSGVhZGVyQ29udGFpbmVyLnN0eWxlLnBhZGRpbmcgPSAnMXJlbSAxLjVyZW0nO1xuICBwYWdlSGVhZGVyQ29udGFpbmVyLnN0eWxlLnBhZGRpbmdMZWZ0ID0gJ21heCgxLjVyZW0sIGVudihzYWZlLWFyZWEtaW5zZXQtbGVmdCkpJztcbiAgcGFnZUhlYWRlckNvbnRhaW5lci5zdHlsZS5wYWRkaW5nUmlnaHQgPSAnbWF4KDEuNXJlbSwgZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCkpJztcbiAgcGFnZUhlYWRlckNvbnRhaW5lci5zdHlsZS5wb3NpdGlvbiA9ICdmaXhlZCc7XG4gIHBhZ2VIZWFkZXJDb250YWluZXIuc3R5bGUudG9wID0gcHJvcHMudG9wT2Zmc2V0IHx8ICcwJztcblxuICBjb25zdCB0aXRsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2gzJyk7XG4gIHRpdGxlLmlubmVyVGV4dCA9IHByb3BzLnRpdGxlO1xuICB0aXRsZS5zdHlsZS5jb2xvciA9ICcjJyArIHRoZW1lLnJlZDtcbiAgdGl0bGUuc3R5bGUuZm9udFNpemUgPSAnMS4xMjVyZW0nO1xuICB0aXRsZS5zdHlsZS5saW5lSGVpZ2h0ID0gJzEuMyc7XG4gIHRpdGxlLnN0eWxlLm1hcmdpbiA9ICcwJztcbiAgcGFnZUhlYWRlckNvbnRhaW5lci5hcHBlbmRDaGlsZCh0aXRsZSk7XG5cbiAgaWYgKHByb3BzLm1lc3NhZ2UpIHtcbiAgICB0aXRsZS5zdHlsZS5tYXJnaW4gPSAnMCAwIDAuNXJlbSc7XG5cbiAgICBjb25zdCBtZXNzYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgIG1lc3NhZ2UuaW5uZXJUZXh0ID0gcHJvcHMubWVzc2FnZTtcbiAgICBtZXNzYWdlLnN0eWxlLmNvbG9yID0gJyMnICsgdGhlbWUud2hpdGU7XG4gICAgbWVzc2FnZS5zdHlsZS53b3JkQnJlYWsgPSAnYnJlYWstd29yZCc7XG4gICAgcGFnZUhlYWRlckNvbnRhaW5lci5hcHBlbmRDaGlsZChtZXNzYWdlKTtcbiAgfVxuXG4gIHJvb3QuYXBwZW5kQ2hpbGQocGFnZUhlYWRlckNvbnRhaW5lcik7XG5cbiAgLy8gVGhpcyBoYXMgdG8gcnVuIGFmdGVyIGFwcGVuZGluZyBlbGVtZW50cyB0byByb290XG4gIC8vIGJlY2F1c2Ugd2UgbmVlZCB0byBhY3R1YWwgbW91bnRlZCBoZWlnaHQuXG4gIFNwYWNlcihkb2N1bWVudCwgcm9vdCwge1xuICAgIHNwYWNlOiBwYWdlSGVhZGVyQ29udGFpbmVyLm9mZnNldEhlaWdodC50b1N0cmluZygxMCksXG4gIH0pO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IFBhZ2VIZWFkZXI7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///8387\n");
|
|
1349
1349
|
|
|
1350
1350
|
/***/ }),
|
|
1351
1351
|
|
|
@@ -1355,7 +1355,7 @@ eval("const Spacer = __webpack_require__(/*! ./Spacer.js */ 3665);\nconst theme
|
|
|
1355
1355
|
\********************************************************************************************************/
|
|
1356
1356
|
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
|
1357
1357
|
|
|
1358
|
-
eval("const Spacer = __webpack_require__(/*! ./Spacer.js */ 3665);\nconst theme = __webpack_require__(/*! ../theme.js */ 822);\n\n/**\n * @typedef {Object} RuntimeErrorFooterProps\n * @property {string} [initialFocus]\n * @property {boolean} multiple\n * @property {function(MouseEvent): void} onClickCloseButton\n * @property {function(MouseEvent): void} onClickNextButton\n * @property {function(MouseEvent): void} onClickPrevButton\n */\n\n/**\n * A fixed footer that handles pagination of runtime errors.\n * @param {Document} document\n * @param {HTMLElement} root\n * @param {RuntimeErrorFooterProps} props\n * @returns {void}\n */\nfunction RuntimeErrorFooter(document, root, props) {\n const footer = document.createElement('div');\n footer.style.backgroundColor = '#' + theme.dimgrey;\n footer.style.bottom = '0';\n footer.style.boxShadow = '0 -1px 4px rgba(0, 0, 0, 0.3)';\n footer.style.height = '2.5rem';\n footer.style.left = '0';\n footer.style.right = '0';\n footer.style.lineHeight = '2.5rem';\n footer.style.paddingBottom = '0';\n footer.style.paddingBottom = 'env(safe-area-inset-bottom)';\n footer.style.position = 'fixed';\n footer.style.textAlign = 'center';\n footer.style.zIndex = '2';\n\n const BUTTON_CONFIGS = {\n prev: {\n id: 'prev',\n label: '◀ Prev',\n onClick: props.onClickPrevButton,\n },\n close: {\n id: 'close',\n label: '× Close',\n onClick: props.onClickCloseButton,\n },\n next: {\n id: 'next',\n label: 'Next ▶',\n onClick: props.onClickNextButton,\n },\n };\n\n let buttons = [BUTTON_CONFIGS.close];\n if (props.multiple) {\n buttons = [BUTTON_CONFIGS.prev, BUTTON_CONFIGS.close, BUTTON_CONFIGS.next];\n }\n\n /** @type {HTMLButtonElement | undefined} */\n let initialFocusButton;\n for (let i = 0; i < buttons.length; i += 1) {\n const buttonConfig = buttons[i];\n\n const button = document.createElement('button');\n button.id = buttonConfig.id;\n button.innerHTML = buttonConfig.label;\n button.tabIndex = 1;\n button.style.backgroundColor = '#' + theme.dimgrey;\n button.style.border = 'none';\n button.style.color = '#' + theme.white;\n button.style.cursor = 'pointer';\n button.style.fontSize = 'inherit';\n button.style.height = '100%';\n button.style.padding = '0.5rem 0.75rem';\n button.style.width = (100 / buttons.length).toString(10) + '%';\n button.addEventListener('click', buttonConfig.onClick);\n\n if (buttonConfig.id === props.initialFocus) {\n initialFocusButton = button;\n }\n\n footer.appendChild(button);\n }\n\n root.appendChild(footer);\n\n Spacer(document, root, { space: '2.5rem' });\n\n if (initialFocusButton) {\n initialFocusButton.focus();\n }\n}\n\nmodule.exports = RuntimeErrorFooter;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjU2MC5qcyIsIm1hcHBpbmdzIjoiQUFBQSxlQUFlLG1CQUFPLENBQUMsdUJBQWE7QUFDcEMsY0FBYyxtQkFBTyxDQUFDLHNCQUFhOztBQUVuQztBQUNBLGFBQWEsUUFBUTtBQUNyQixjQUFjLFFBQVE7QUFDdEIsY0FBYyxTQUFTO0FBQ3ZCLGNBQWMsNEJBQTRCO0FBQzFDLGNBQWMsNEJBQTRCO0FBQzFDLGNBQWMsNEJBQTRCO0FBQzFDOztBQUVBO0FBQ0E7QUFDQSxXQUFXLFVBQVU7QUFDckIsV0FBVyxhQUFhO0FBQ3hCLFdBQVcseUJBQXlCO0FBQ3BDLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLHdCQUF3QjtBQUN4QjtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxhQUFhLCtCQUErQjtBQUM1QztBQUNBLGtCQUFrQixvQkFBb0I7QUFDdEM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUEsMkJBQTJCLGlCQUFpQjs7QUFFNUM7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ac3RhbmxlbW9uL3dlYmRldi8uLi8uLi9ub2RlX21vZHVsZXMvQHBtbW13aC9yZWFjdC1yZWZyZXNoLXdlYnBhY2stcGx1Z2luL292ZXJsYXkvY29tcG9uZW50cy9SdW50aW1lRXJyb3JGb290ZXIuanM/
|
|
1358
|
+
eval("const Spacer = __webpack_require__(/*! ./Spacer.js */ 3665);\nconst theme = __webpack_require__(/*! ../theme.js */ 822);\n\n/**\n * @typedef {Object} RuntimeErrorFooterProps\n * @property {string} [initialFocus]\n * @property {boolean} multiple\n * @property {function(MouseEvent): void} onClickCloseButton\n * @property {function(MouseEvent): void} onClickNextButton\n * @property {function(MouseEvent): void} onClickPrevButton\n */\n\n/**\n * A fixed footer that handles pagination of runtime errors.\n * @param {Document} document\n * @param {HTMLElement} root\n * @param {RuntimeErrorFooterProps} props\n * @returns {void}\n */\nfunction RuntimeErrorFooter(document, root, props) {\n const footer = document.createElement('div');\n footer.style.backgroundColor = '#' + theme.dimgrey;\n footer.style.bottom = '0';\n footer.style.boxShadow = '0 -1px 4px rgba(0, 0, 0, 0.3)';\n footer.style.height = '2.5rem';\n footer.style.left = '0';\n footer.style.right = '0';\n footer.style.lineHeight = '2.5rem';\n footer.style.paddingBottom = '0';\n footer.style.paddingBottom = 'env(safe-area-inset-bottom)';\n footer.style.position = 'fixed';\n footer.style.textAlign = 'center';\n footer.style.zIndex = '2';\n\n const BUTTON_CONFIGS = {\n prev: {\n id: 'prev',\n label: '◀ Prev',\n onClick: props.onClickPrevButton,\n },\n close: {\n id: 'close',\n label: '× Close',\n onClick: props.onClickCloseButton,\n },\n next: {\n id: 'next',\n label: 'Next ▶',\n onClick: props.onClickNextButton,\n },\n };\n\n let buttons = [BUTTON_CONFIGS.close];\n if (props.multiple) {\n buttons = [BUTTON_CONFIGS.prev, BUTTON_CONFIGS.close, BUTTON_CONFIGS.next];\n }\n\n /** @type {HTMLButtonElement | undefined} */\n let initialFocusButton;\n for (let i = 0; i < buttons.length; i += 1) {\n const buttonConfig = buttons[i];\n\n const button = document.createElement('button');\n button.id = buttonConfig.id;\n button.innerHTML = buttonConfig.label;\n button.tabIndex = 1;\n button.style.backgroundColor = '#' + theme.dimgrey;\n button.style.border = 'none';\n button.style.color = '#' + theme.white;\n button.style.cursor = 'pointer';\n button.style.fontSize = 'inherit';\n button.style.height = '100%';\n button.style.padding = '0.5rem 0.75rem';\n button.style.width = (100 / buttons.length).toString(10) + '%';\n button.addEventListener('click', buttonConfig.onClick);\n\n if (buttonConfig.id === props.initialFocus) {\n initialFocusButton = button;\n }\n\n footer.appendChild(button);\n }\n\n root.appendChild(footer);\n\n Spacer(document, root, { space: '2.5rem' });\n\n if (initialFocusButton) {\n initialFocusButton.focus();\n }\n}\n\nmodule.exports = RuntimeErrorFooter;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjU2MC5qcyIsIm1hcHBpbmdzIjoiQUFBQSxlQUFlLG1CQUFPLENBQUMsdUJBQWE7QUFDcEMsY0FBYyxtQkFBTyxDQUFDLHNCQUFhOztBQUVuQztBQUNBLGFBQWEsUUFBUTtBQUNyQixjQUFjLFFBQVE7QUFDdEIsY0FBYyxTQUFTO0FBQ3ZCLGNBQWMsNEJBQTRCO0FBQzFDLGNBQWMsNEJBQTRCO0FBQzFDLGNBQWMsNEJBQTRCO0FBQzFDOztBQUVBO0FBQ0E7QUFDQSxXQUFXLFVBQVU7QUFDckIsV0FBVyxhQUFhO0FBQ3hCLFdBQVcseUJBQXlCO0FBQ3BDLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLHdCQUF3QjtBQUN4QjtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxhQUFhLCtCQUErQjtBQUM1QztBQUNBLGtCQUFrQixvQkFBb0I7QUFDdEM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUEsMkJBQTJCLGlCQUFpQjs7QUFFNUM7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ac3RhbmxlbW9uL3dlYmRldi8uLi8uLi9ub2RlX21vZHVsZXMvQHBtbW13aC9yZWFjdC1yZWZyZXNoLXdlYnBhY2stcGx1Z2luL292ZXJsYXkvY29tcG9uZW50cy9SdW50aW1lRXJyb3JGb290ZXIuanM/Njg0OSJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBTcGFjZXIgPSByZXF1aXJlKCcuL1NwYWNlci5qcycpO1xuY29uc3QgdGhlbWUgPSByZXF1aXJlKCcuLi90aGVtZS5qcycpO1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IFJ1bnRpbWVFcnJvckZvb3RlclByb3BzXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW2luaXRpYWxGb2N1c11cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gbXVsdGlwbGVcbiAqIEBwcm9wZXJ0eSB7ZnVuY3Rpb24oTW91c2VFdmVudCk6IHZvaWR9IG9uQ2xpY2tDbG9zZUJ1dHRvblxuICogQHByb3BlcnR5IHtmdW5jdGlvbihNb3VzZUV2ZW50KTogdm9pZH0gb25DbGlja05leHRCdXR0b25cbiAqIEBwcm9wZXJ0eSB7ZnVuY3Rpb24oTW91c2VFdmVudCk6IHZvaWR9IG9uQ2xpY2tQcmV2QnV0dG9uXG4gKi9cblxuLyoqXG4gKiBBIGZpeGVkIGZvb3RlciB0aGF0IGhhbmRsZXMgcGFnaW5hdGlvbiBvZiBydW50aW1lIGVycm9ycy5cbiAqIEBwYXJhbSB7RG9jdW1lbnR9IGRvY3VtZW50XG4gKiBAcGFyYW0ge0hUTUxFbGVtZW50fSByb290XG4gKiBAcGFyYW0ge1J1bnRpbWVFcnJvckZvb3RlclByb3BzfSBwcm9wc1xuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmZ1bmN0aW9uIFJ1bnRpbWVFcnJvckZvb3Rlcihkb2N1bWVudCwgcm9vdCwgcHJvcHMpIHtcbiAgY29uc3QgZm9vdGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gIGZvb3Rlci5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAnIycgKyB0aGVtZS5kaW1ncmV5O1xuICBmb290ZXIuc3R5bGUuYm90dG9tID0gJzAnO1xuICBmb290ZXIuc3R5bGUuYm94U2hhZG93ID0gJzAgLTFweCA0cHggcmdiYSgwLCAwLCAwLCAwLjMpJztcbiAgZm9vdGVyLnN0eWxlLmhlaWdodCA9ICcyLjVyZW0nO1xuICBmb290ZXIuc3R5bGUubGVmdCA9ICcwJztcbiAgZm9vdGVyLnN0eWxlLnJpZ2h0ID0gJzAnO1xuICBmb290ZXIuc3R5bGUubGluZUhlaWdodCA9ICcyLjVyZW0nO1xuICBmb290ZXIuc3R5bGUucGFkZGluZ0JvdHRvbSA9ICcwJztcbiAgZm9vdGVyLnN0eWxlLnBhZGRpbmdCb3R0b20gPSAnZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pJztcbiAgZm9vdGVyLnN0eWxlLnBvc2l0aW9uID0gJ2ZpeGVkJztcbiAgZm9vdGVyLnN0eWxlLnRleHRBbGlnbiA9ICdjZW50ZXInO1xuICBmb290ZXIuc3R5bGUuekluZGV4ID0gJzInO1xuXG4gIGNvbnN0IEJVVFRPTl9DT05GSUdTID0ge1xuICAgIHByZXY6IHtcbiAgICAgIGlkOiAncHJldicsXG4gICAgICBsYWJlbDogJ+KXgCZlbnNwO1ByZXYnLFxuICAgICAgb25DbGljazogcHJvcHMub25DbGlja1ByZXZCdXR0b24sXG4gICAgfSxcbiAgICBjbG9zZToge1xuICAgICAgaWQ6ICdjbG9zZScsXG4gICAgICBsYWJlbDogJ8OXJmVuc3A7Q2xvc2UnLFxuICAgICAgb25DbGljazogcHJvcHMub25DbGlja0Nsb3NlQnV0dG9uLFxuICAgIH0sXG4gICAgbmV4dDoge1xuICAgICAgaWQ6ICduZXh0JyxcbiAgICAgIGxhYmVsOiAnTmV4dCZlbnNwO+KWticsXG4gICAgICBvbkNsaWNrOiBwcm9wcy5vbkNsaWNrTmV4dEJ1dHRvbixcbiAgICB9LFxuICB9O1xuXG4gIGxldCBidXR0b25zID0gW0JVVFRPTl9DT05GSUdTLmNsb3NlXTtcbiAgaWYgKHByb3BzLm11bHRpcGxlKSB7XG4gICAgYnV0dG9ucyA9IFtCVVRUT05fQ09ORklHUy5wcmV2LCBCVVRUT05fQ09ORklHUy5jbG9zZSwgQlVUVE9OX0NPTkZJR1MubmV4dF07XG4gIH1cblxuICAvKiogQHR5cGUge0hUTUxCdXR0b25FbGVtZW50IHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgaW5pdGlhbEZvY3VzQnV0dG9uO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGJ1dHRvbnMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICBjb25zdCBidXR0b25Db25maWcgPSBidXR0b25zW2ldO1xuXG4gICAgY29uc3QgYnV0dG9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7XG4gICAgYnV0dG9uLmlkID0gYnV0dG9uQ29uZmlnLmlkO1xuICAgIGJ1dHRvbi5pbm5lckhUTUwgPSBidXR0b25Db25maWcubGFiZWw7XG4gICAgYnV0dG9uLnRhYkluZGV4ID0gMTtcbiAgICBidXR0b24uc3R5bGUuYmFja2dyb3VuZENvbG9yID0gJyMnICsgdGhlbWUuZGltZ3JleTtcbiAgICBidXR0b24uc3R5bGUuYm9yZGVyID0gJ25vbmUnO1xuICAgIGJ1dHRvbi5zdHlsZS5jb2xvciA9ICcjJyArIHRoZW1lLndoaXRlO1xuICAgIGJ1dHRvbi5zdHlsZS5jdXJzb3IgPSAncG9pbnRlcic7XG4gICAgYnV0dG9uLnN0eWxlLmZvbnRTaXplID0gJ2luaGVyaXQnO1xuICAgIGJ1dHRvbi5zdHlsZS5oZWlnaHQgPSAnMTAwJSc7XG4gICAgYnV0dG9uLnN0eWxlLnBhZGRpbmcgPSAnMC41cmVtIDAuNzVyZW0nO1xuICAgIGJ1dHRvbi5zdHlsZS53aWR0aCA9ICgxMDAgLyBidXR0b25zLmxlbmd0aCkudG9TdHJpbmcoMTApICsgJyUnO1xuICAgIGJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGJ1dHRvbkNvbmZpZy5vbkNsaWNrKTtcblxuICAgIGlmIChidXR0b25Db25maWcuaWQgPT09IHByb3BzLmluaXRpYWxGb2N1cykge1xuICAgICAgaW5pdGlhbEZvY3VzQnV0dG9uID0gYnV0dG9uO1xuICAgIH1cblxuICAgIGZvb3Rlci5hcHBlbmRDaGlsZChidXR0b24pO1xuICB9XG5cbiAgcm9vdC5hcHBlbmRDaGlsZChmb290ZXIpO1xuXG4gIFNwYWNlcihkb2N1bWVudCwgcm9vdCwgeyBzcGFjZTogJzIuNXJlbScgfSk7XG5cbiAgaWYgKGluaXRpYWxGb2N1c0J1dHRvbikge1xuICAgIGluaXRpYWxGb2N1c0J1dHRvbi5mb2N1cygpO1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gUnVudGltZUVycm9yRm9vdGVyO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///6560\n");
|
|
1359
1359
|
|
|
1360
1360
|
/***/ }),
|
|
1361
1361
|
|
|
@@ -1365,7 +1365,7 @@ eval("const Spacer = __webpack_require__(/*! ./Spacer.js */ 3665);\nconst theme
|
|
|
1365
1365
|
\********************************************************************************************************/
|
|
1366
1366
|
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
|
1367
1367
|
|
|
1368
|
-
eval("const Spacer = __webpack_require__(/*! ./Spacer.js */ 3665);\nconst theme = __webpack_require__(/*! ../theme.js */ 822);\n\n/**\n * @typedef {Object} RuntimeErrorHeaderProps\n * @property {number} currentErrorIndex\n * @property {number} totalErrors\n */\n\n/**\n * A fixed header that shows the total runtime error count.\n * @param {Document} document\n * @param {HTMLElement} root\n * @param {RuntimeErrorHeaderProps} props\n * @returns {void}\n */\nfunction RuntimeErrorHeader(document, root, props) {\n const header = document.createElement('div');\n header.innerText = 'Error ' + (props.currentErrorIndex + 1) + ' of ' + props.totalErrors;\n header.style.backgroundColor = '#' + theme.red;\n header.style.color = '#' + theme.white;\n header.style.fontWeight = '500';\n header.style.height = '2.5rem';\n header.style.left = '0';\n header.style.lineHeight = '2.5rem';\n header.style.position = 'fixed';\n header.style.textAlign = 'center';\n header.style.top = '0';\n header.style.width = '100vw';\n header.style.zIndex = '2';\n\n root.appendChild(header);\n\n Spacer(document, root, { space: '2.5rem' });\n}\n\nmodule.exports = RuntimeErrorHeader;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
1368
|
+
eval("const Spacer = __webpack_require__(/*! ./Spacer.js */ 3665);\nconst theme = __webpack_require__(/*! ../theme.js */ 822);\n\n/**\n * @typedef {Object} RuntimeErrorHeaderProps\n * @property {number} currentErrorIndex\n * @property {number} totalErrors\n */\n\n/**\n * A fixed header that shows the total runtime error count.\n * @param {Document} document\n * @param {HTMLElement} root\n * @param {RuntimeErrorHeaderProps} props\n * @returns {void}\n */\nfunction RuntimeErrorHeader(document, root, props) {\n const header = document.createElement('div');\n header.innerText = 'Error ' + (props.currentErrorIndex + 1) + ' of ' + props.totalErrors;\n header.style.backgroundColor = '#' + theme.red;\n header.style.color = '#' + theme.white;\n header.style.fontWeight = '500';\n header.style.height = '2.5rem';\n header.style.left = '0';\n header.style.lineHeight = '2.5rem';\n header.style.position = 'fixed';\n header.style.textAlign = 'center';\n header.style.top = '0';\n header.style.width = '100vw';\n header.style.zIndex = '2';\n\n root.appendChild(header);\n\n Spacer(document, root, { space: '2.5rem' });\n}\n\nmodule.exports = RuntimeErrorHeader;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjQ4MC5qcyIsIm1hcHBpbmdzIjoiQUFBQSxlQUFlLG1CQUFPLENBQUMsdUJBQWE7QUFDcEMsY0FBYyxtQkFBTyxDQUFDLHNCQUFhOztBQUVuQztBQUNBLGFBQWEsUUFBUTtBQUNyQixjQUFjLFFBQVE7QUFDdEIsY0FBYyxRQUFRO0FBQ3RCOztBQUVBO0FBQ0E7QUFDQSxXQUFXLFVBQVU7QUFDckIsV0FBVyxhQUFhO0FBQ3hCLFdBQVcseUJBQXlCO0FBQ3BDLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUEsMkJBQTJCLGlCQUFpQjtBQUM1Qzs7QUFFQSIsInNvdXJjZXMiOlsid2VicGFjazovL0BzdGFubGVtb24vd2ViZGV2Ly4uLy4uL25vZGVfbW9kdWxlcy9AcG1tbXdoL3JlYWN0LXJlZnJlc2gtd2VicGFjay1wbHVnaW4vb3ZlcmxheS9jb21wb25lbnRzL1J1bnRpbWVFcnJvckhlYWRlci5qcz8wY2ZiIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IFNwYWNlciA9IHJlcXVpcmUoJy4vU3BhY2VyLmpzJyk7XG5jb25zdCB0aGVtZSA9IHJlcXVpcmUoJy4uL3RoZW1lLmpzJyk7XG5cbi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gUnVudGltZUVycm9ySGVhZGVyUHJvcHNcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBjdXJyZW50RXJyb3JJbmRleFxuICogQHByb3BlcnR5IHtudW1iZXJ9IHRvdGFsRXJyb3JzXG4gKi9cblxuLyoqXG4gKiBBIGZpeGVkIGhlYWRlciB0aGF0IHNob3dzIHRoZSB0b3RhbCBydW50aW1lIGVycm9yIGNvdW50LlxuICogQHBhcmFtIHtEb2N1bWVudH0gZG9jdW1lbnRcbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IHJvb3RcbiAqIEBwYXJhbSB7UnVudGltZUVycm9ySGVhZGVyUHJvcHN9IHByb3BzXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZnVuY3Rpb24gUnVudGltZUVycm9ySGVhZGVyKGRvY3VtZW50LCByb290LCBwcm9wcykge1xuICBjb25zdCBoZWFkZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgaGVhZGVyLmlubmVyVGV4dCA9ICdFcnJvciAnICsgKHByb3BzLmN1cnJlbnRFcnJvckluZGV4ICsgMSkgKyAnIG9mICcgKyBwcm9wcy50b3RhbEVycm9ycztcbiAgaGVhZGVyLnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICcjJyArIHRoZW1lLnJlZDtcbiAgaGVhZGVyLnN0eWxlLmNvbG9yID0gJyMnICsgdGhlbWUud2hpdGU7XG4gIGhlYWRlci5zdHlsZS5mb250V2VpZ2h0ID0gJzUwMCc7XG4gIGhlYWRlci5zdHlsZS5oZWlnaHQgPSAnMi41cmVtJztcbiAgaGVhZGVyLnN0eWxlLmxlZnQgPSAnMCc7XG4gIGhlYWRlci5zdHlsZS5saW5lSGVpZ2h0ID0gJzIuNXJlbSc7XG4gIGhlYWRlci5zdHlsZS5wb3NpdGlvbiA9ICdmaXhlZCc7XG4gIGhlYWRlci5zdHlsZS50ZXh0QWxpZ24gPSAnY2VudGVyJztcbiAgaGVhZGVyLnN0eWxlLnRvcCA9ICcwJztcbiAgaGVhZGVyLnN0eWxlLndpZHRoID0gJzEwMHZ3JztcbiAgaGVhZGVyLnN0eWxlLnpJbmRleCA9ICcyJztcblxuICByb290LmFwcGVuZENoaWxkKGhlYWRlcik7XG5cbiAgU3BhY2VyKGRvY3VtZW50LCByb290LCB7IHNwYWNlOiAnMi41cmVtJyB9KTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBSdW50aW1lRXJyb3JIZWFkZXI7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///6480\n");
|
|
1369
1369
|
|
|
1370
1370
|
/***/ }),
|
|
1371
1371
|
|
|
@@ -1375,7 +1375,7 @@ eval("const Spacer = __webpack_require__(/*! ./Spacer.js */ 3665);\nconst theme
|
|
|
1375
1375
|
\*******************************************************************************************************/
|
|
1376
1376
|
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
|
1377
1377
|
|
|
1378
|
-
eval("const ErrorStackParser = __webpack_require__(/*! error-stack-parser */ 8816);\nconst theme = __webpack_require__(/*! ../theme.js */ 822);\nconst utils = __webpack_require__(/*! ../utils.js */ 4725);\n\n/**\n * @typedef {Object} RuntimeErrorStackProps\n * @property {Error} error\n */\n\n/**\n * A formatter that turns runtime error stacks into highlighted HTML stacks.\n * @param {Document} document\n * @param {HTMLElement} root\n * @param {RuntimeErrorStackProps} props\n * @returns {void}\n */\nfunction RuntimeErrorStack(document, root, props) {\n const stackTitle = document.createElement('h4');\n stackTitle.innerText = 'Call Stack';\n stackTitle.style.color = '#' + theme.white;\n stackTitle.style.fontSize = '1.0625rem';\n stackTitle.style.fontWeight = '500';\n stackTitle.style.lineHeight = '1.3';\n stackTitle.style.margin = '0 0 0.5rem';\n\n const stackContainer = document.createElement('div');\n stackContainer.style.fontSize = '0.8125rem';\n stackContainer.style.lineHeight = '1.3';\n stackContainer.style.whiteSpace = 'pre-wrap';\n\n let errorStacks;\n try {\n errorStacks = ErrorStackParser.parse(props.error);\n } catch (e) {\n errorStacks = [];\n stackContainer.innerHTML = 'No stack trace is available for this error!';\n }\n\n for (let i = 0; i < Math.min(errorStacks.length, 10); i += 1) {\n const currentStack = errorStacks[i];\n\n const functionName = document.createElement('code');\n functionName.innerHTML = ' ' + currentStack.functionName || 0;\n functionName.style.color = '#' + theme.yellow;\n functionName.style.fontFamily = [\n '\"Operator Mono SSm\"',\n '\"Operator Mono\"',\n '\"Fira Code Retina\"',\n '\"Fira Code\"',\n '\"FiraCode-Retina\"',\n '\"Andale Mono\"',\n '\"Lucida Console\"',\n 'Menlo',\n 'Consolas',\n 'Monaco',\n 'monospace',\n ].join(', ');\n\n const fileName = document.createElement('div');\n fileName.innerHTML =\n '  ' +\n utils.formatFilename(currentStack.fileName) +\n ':' +\n currentStack.lineNumber +\n ':' +\n currentStack.columnNumber;\n fileName.style.color = '#' + theme.white;\n fileName.style.fontSize = '0.6875rem';\n fileName.style.marginBottom = '0.25rem';\n\n stackContainer.appendChild(functionName);\n stackContainer.appendChild(fileName);\n }\n\n root.appendChild(stackTitle);\n root.appendChild(stackContainer);\n}\n\nmodule.exports = RuntimeErrorStack;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
1378
|
+
eval("const ErrorStackParser = __webpack_require__(/*! error-stack-parser */ 8816);\nconst theme = __webpack_require__(/*! ../theme.js */ 822);\nconst utils = __webpack_require__(/*! ../utils.js */ 4725);\n\n/**\n * @typedef {Object} RuntimeErrorStackProps\n * @property {Error} error\n */\n\n/**\n * A formatter that turns runtime error stacks into highlighted HTML stacks.\n * @param {Document} document\n * @param {HTMLElement} root\n * @param {RuntimeErrorStackProps} props\n * @returns {void}\n */\nfunction RuntimeErrorStack(document, root, props) {\n const stackTitle = document.createElement('h4');\n stackTitle.innerText = 'Call Stack';\n stackTitle.style.color = '#' + theme.white;\n stackTitle.style.fontSize = '1.0625rem';\n stackTitle.style.fontWeight = '500';\n stackTitle.style.lineHeight = '1.3';\n stackTitle.style.margin = '0 0 0.5rem';\n\n const stackContainer = document.createElement('div');\n stackContainer.style.fontSize = '0.8125rem';\n stackContainer.style.lineHeight = '1.3';\n stackContainer.style.whiteSpace = 'pre-wrap';\n\n let errorStacks;\n try {\n errorStacks = ErrorStackParser.parse(props.error);\n } catch (e) {\n errorStacks = [];\n stackContainer.innerHTML = 'No stack trace is available for this error!';\n }\n\n for (let i = 0; i < Math.min(errorStacks.length, 10); i += 1) {\n const currentStack = errorStacks[i];\n\n const functionName = document.createElement('code');\n functionName.innerHTML = ' ' + currentStack.functionName || 0;\n functionName.style.color = '#' + theme.yellow;\n functionName.style.fontFamily = [\n '\"Operator Mono SSm\"',\n '\"Operator Mono\"',\n '\"Fira Code Retina\"',\n '\"Fira Code\"',\n '\"FiraCode-Retina\"',\n '\"Andale Mono\"',\n '\"Lucida Console\"',\n 'Menlo',\n 'Consolas',\n 'Monaco',\n 'monospace',\n ].join(', ');\n\n const fileName = document.createElement('div');\n fileName.innerHTML =\n '  ' +\n utils.formatFilename(currentStack.fileName) +\n ':' +\n currentStack.lineNumber +\n ':' +\n currentStack.columnNumber;\n fileName.style.color = '#' + theme.white;\n fileName.style.fontSize = '0.6875rem';\n fileName.style.marginBottom = '0.25rem';\n\n stackContainer.appendChild(functionName);\n stackContainer.appendChild(fileName);\n }\n\n root.appendChild(stackTitle);\n root.appendChild(stackContainer);\n}\n\nmodule.exports = RuntimeErrorStack;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTI0LmpzIiwibWFwcGluZ3MiOiJBQUFBLHlCQUF5QixtQkFBTyxDQUFDLDhCQUFvQjtBQUNyRCxjQUFjLG1CQUFPLENBQUMsc0JBQWE7QUFDbkMsY0FBYyxtQkFBTyxDQUFDLHVCQUFhOztBQUVuQztBQUNBLGFBQWEsUUFBUTtBQUNyQixjQUFjLE9BQU87QUFDckI7O0FBRUE7QUFDQTtBQUNBLFdBQVcsVUFBVTtBQUNyQixXQUFXLGFBQWE7QUFDeEIsV0FBVyx3QkFBd0I7QUFDbkMsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBLGtCQUFrQixzQ0FBc0M7QUFDeEQ7O0FBRUE7QUFDQSxvQ0FBb0MsaUNBQWlDLENBQXNCO0FBQzNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGFBQWEsTUFBTTtBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ac3RhbmxlbW9uL3dlYmRldi8uLi8uLi9ub2RlX21vZHVsZXMvQHBtbW13aC9yZWFjdC1yZWZyZXNoLXdlYnBhY2stcGx1Z2luL292ZXJsYXkvY29tcG9uZW50cy9SdW50aW1lRXJyb3JTdGFjay5qcz82MWUwIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IEVycm9yU3RhY2tQYXJzZXIgPSByZXF1aXJlKCdlcnJvci1zdGFjay1wYXJzZXInKTtcbmNvbnN0IHRoZW1lID0gcmVxdWlyZSgnLi4vdGhlbWUuanMnKTtcbmNvbnN0IHV0aWxzID0gcmVxdWlyZSgnLi4vdXRpbHMuanMnKTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBSdW50aW1lRXJyb3JTdGFja1Byb3BzXG4gKiBAcHJvcGVydHkge0Vycm9yfSBlcnJvclxuICovXG5cbi8qKlxuICogQSBmb3JtYXR0ZXIgdGhhdCB0dXJucyBydW50aW1lIGVycm9yIHN0YWNrcyBpbnRvIGhpZ2hsaWdodGVkIEhUTUwgc3RhY2tzLlxuICogQHBhcmFtIHtEb2N1bWVudH0gZG9jdW1lbnRcbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IHJvb3RcbiAqIEBwYXJhbSB7UnVudGltZUVycm9yU3RhY2tQcm9wc30gcHJvcHNcbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5mdW5jdGlvbiBSdW50aW1lRXJyb3JTdGFjayhkb2N1bWVudCwgcm9vdCwgcHJvcHMpIHtcbiAgY29uc3Qgc3RhY2tUaXRsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2g0Jyk7XG4gIHN0YWNrVGl0bGUuaW5uZXJUZXh0ID0gJ0NhbGwgU3RhY2snO1xuICBzdGFja1RpdGxlLnN0eWxlLmNvbG9yID0gJyMnICsgdGhlbWUud2hpdGU7XG4gIHN0YWNrVGl0bGUuc3R5bGUuZm9udFNpemUgPSAnMS4wNjI1cmVtJztcbiAgc3RhY2tUaXRsZS5zdHlsZS5mb250V2VpZ2h0ID0gJzUwMCc7XG4gIHN0YWNrVGl0bGUuc3R5bGUubGluZUhlaWdodCA9ICcxLjMnO1xuICBzdGFja1RpdGxlLnN0eWxlLm1hcmdpbiA9ICcwIDAgMC41cmVtJztcblxuICBjb25zdCBzdGFja0NvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICBzdGFja0NvbnRhaW5lci5zdHlsZS5mb250U2l6ZSA9ICcwLjgxMjVyZW0nO1xuICBzdGFja0NvbnRhaW5lci5zdHlsZS5saW5lSGVpZ2h0ID0gJzEuMyc7XG4gIHN0YWNrQ29udGFpbmVyLnN0eWxlLndoaXRlU3BhY2UgPSAncHJlLXdyYXAnO1xuXG4gIGxldCBlcnJvclN0YWNrcztcbiAgdHJ5IHtcbiAgICBlcnJvclN0YWNrcyA9IEVycm9yU3RhY2tQYXJzZXIucGFyc2UocHJvcHMuZXJyb3IpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgZXJyb3JTdGFja3MgPSBbXTtcbiAgICBzdGFja0NvbnRhaW5lci5pbm5lckhUTUwgPSAnTm8gc3RhY2sgdHJhY2UgaXMgYXZhaWxhYmxlIGZvciB0aGlzIGVycm9yISc7XG4gIH1cblxuICBmb3IgKGxldCBpID0gMDsgaSA8IE1hdGgubWluKGVycm9yU3RhY2tzLmxlbmd0aCwgMTApOyBpICs9IDEpIHtcbiAgICBjb25zdCBjdXJyZW50U3RhY2sgPSBlcnJvclN0YWNrc1tpXTtcblxuICAgIGNvbnN0IGZ1bmN0aW9uTmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NvZGUnKTtcbiAgICBmdW5jdGlvbk5hbWUuaW5uZXJIVE1MID0gJyZlbXNwOycgKyBjdXJyZW50U3RhY2suZnVuY3Rpb25OYW1lIHx8ICcoYW5vbnltb3VzIGZ1bmN0aW9uKSc7XG4gICAgZnVuY3Rpb25OYW1lLnN0eWxlLmNvbG9yID0gJyMnICsgdGhlbWUueWVsbG93O1xuICAgIGZ1bmN0aW9uTmFtZS5zdHlsZS5mb250RmFtaWx5ID0gW1xuICAgICAgJ1wiT3BlcmF0b3IgTW9ubyBTU21cIicsXG4gICAgICAnXCJPcGVyYXRvciBNb25vXCInLFxuICAgICAgJ1wiRmlyYSBDb2RlIFJldGluYVwiJyxcbiAgICAgICdcIkZpcmEgQ29kZVwiJyxcbiAgICAgICdcIkZpcmFDb2RlLVJldGluYVwiJyxcbiAgICAgICdcIkFuZGFsZSBNb25vXCInLFxuICAgICAgJ1wiTHVjaWRhIENvbnNvbGVcIicsXG4gICAgICAnTWVubG8nLFxuICAgICAgJ0NvbnNvbGFzJyxcbiAgICAgICdNb25hY28nLFxuICAgICAgJ21vbm9zcGFjZScsXG4gICAgXS5qb2luKCcsICcpO1xuXG4gICAgY29uc3QgZmlsZU5hbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICBmaWxlTmFtZS5pbm5lckhUTUwgPVxuICAgICAgJyZlbXNwOyZlbXNwOycgK1xuICAgICAgdXRpbHMuZm9ybWF0RmlsZW5hbWUoY3VycmVudFN0YWNrLmZpbGVOYW1lKSArXG4gICAgICAnOicgK1xuICAgICAgY3VycmVudFN0YWNrLmxpbmVOdW1iZXIgK1xuICAgICAgJzonICtcbiAgICAgIGN1cnJlbnRTdGFjay5jb2x1bW5OdW1iZXI7XG4gICAgZmlsZU5hbWUuc3R5bGUuY29sb3IgPSAnIycgKyB0aGVtZS53aGl0ZTtcbiAgICBmaWxlTmFtZS5zdHlsZS5mb250U2l6ZSA9ICcwLjY4NzVyZW0nO1xuICAgIGZpbGVOYW1lLnN0eWxlLm1hcmdpbkJvdHRvbSA9ICcwLjI1cmVtJztcblxuICAgIHN0YWNrQ29udGFpbmVyLmFwcGVuZENoaWxkKGZ1bmN0aW9uTmFtZSk7XG4gICAgc3RhY2tDb250YWluZXIuYXBwZW5kQ2hpbGQoZmlsZU5hbWUpO1xuICB9XG5cbiAgcm9vdC5hcHBlbmRDaGlsZChzdGFja1RpdGxlKTtcbiAgcm9vdC5hcHBlbmRDaGlsZChzdGFja0NvbnRhaW5lcik7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gUnVudGltZUVycm9yU3RhY2s7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///124\n");
|
|
1379
1379
|
|
|
1380
1380
|
/***/ }),
|
|
1381
1381
|
|
|
@@ -1385,7 +1385,7 @@ eval("const ErrorStackParser = __webpack_require__(/*! error-stack-parser */ 881
|
|
|
1385
1385
|
\********************************************************************************************/
|
|
1386
1386
|
/***/ ((module) => {
|
|
1387
1387
|
|
|
1388
|
-
eval("/**\n * @typedef {Object} SpacerProps\n * @property {string} space\n */\n\n/**\n * An empty element to add spacing manually.\n * @param {Document} document\n * @param {HTMLElement} root\n * @param {SpacerProps} props\n * @returns {void}\n */\nfunction Spacer(document, root, props) {\n const spacer = document.createElement('div');\n spacer.style.paddingBottom = props.space;\n root.appendChild(spacer);\n}\n\nmodule.exports = Spacer;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzY2NS5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBLGFBQWEsUUFBUTtBQUNyQixjQUFjLFFBQVE7QUFDdEI7O0FBRUE7QUFDQTtBQUNBLFdBQVcsVUFBVTtBQUNyQixXQUFXLGFBQWE7QUFDeEIsV0FBVyxhQUFhO0FBQ3hCLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ac3RhbmxlbW9uL3dlYmRldi8uLi8uLi9ub2RlX21vZHVsZXMvQHBtbW13aC9yZWFjdC1yZWZyZXNoLXdlYnBhY2stcGx1Z2luL292ZXJsYXkvY29tcG9uZW50cy9TcGFjZXIuanM/
|
|
1388
|
+
eval("/**\n * @typedef {Object} SpacerProps\n * @property {string} space\n */\n\n/**\n * An empty element to add spacing manually.\n * @param {Document} document\n * @param {HTMLElement} root\n * @param {SpacerProps} props\n * @returns {void}\n */\nfunction Spacer(document, root, props) {\n const spacer = document.createElement('div');\n spacer.style.paddingBottom = props.space;\n root.appendChild(spacer);\n}\n\nmodule.exports = Spacer;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzY2NS5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBLGFBQWEsUUFBUTtBQUNyQixjQUFjLFFBQVE7QUFDdEI7O0FBRUE7QUFDQTtBQUNBLFdBQVcsVUFBVTtBQUNyQixXQUFXLGFBQWE7QUFDeEIsV0FBVyxhQUFhO0FBQ3hCLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ac3RhbmxlbW9uL3dlYmRldi8uLi8uLi9ub2RlX21vZHVsZXMvQHBtbW13aC9yZWFjdC1yZWZyZXNoLXdlYnBhY2stcGx1Z2luL292ZXJsYXkvY29tcG9uZW50cy9TcGFjZXIuanM/MmZlMCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IFNwYWNlclByb3BzXG4gKiBAcHJvcGVydHkge3N0cmluZ30gc3BhY2VcbiAqL1xuXG4vKipcbiAqIEFuIGVtcHR5IGVsZW1lbnQgdG8gYWRkIHNwYWNpbmcgbWFudWFsbHkuXG4gKiBAcGFyYW0ge0RvY3VtZW50fSBkb2N1bWVudFxuICogQHBhcmFtIHtIVE1MRWxlbWVudH0gcm9vdFxuICogQHBhcmFtIHtTcGFjZXJQcm9wc30gcHJvcHNcbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5mdW5jdGlvbiBTcGFjZXIoZG9jdW1lbnQsIHJvb3QsIHByb3BzKSB7XG4gIGNvbnN0IHNwYWNlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICBzcGFjZXIuc3R5bGUucGFkZGluZ0JvdHRvbSA9IHByb3BzLnNwYWNlO1xuICByb290LmFwcGVuZENoaWxkKHNwYWNlcik7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gU3BhY2VyO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///3665\n");
|
|
1389
1389
|
|
|
1390
1390
|
/***/ }),
|
|
1391
1391
|
|
|
@@ -1395,7 +1395,7 @@ eval("/**\n * @typedef {Object} SpacerProps\n * @property {string} space\n */\n\
|
|
|
1395
1395
|
\***********************************************************************************************************/
|
|
1396
1396
|
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
|
1397
1397
|
|
|
1398
|
-
eval("const CompileErrorTrace = __webpack_require__(/*! ../components/CompileErrorTrace.js */ 5079);\nconst PageHeader = __webpack_require__(/*! ../components/PageHeader.js */ 8387);\nconst Spacer = __webpack_require__(/*! ../components/Spacer.js */ 3665);\n\n/**\n * @typedef {Object} CompileErrorContainerProps\n * @property {string} errorMessage\n */\n\n/**\n * A container to render Webpack compilation error messages with source trace.\n * @param {Document} document\n * @param {HTMLElement} root\n * @param {CompileErrorContainerProps} props\n * @returns {void}\n */\nfunction CompileErrorContainer(document, root, props) {\n PageHeader(document, root, {\n title: 'Failed to compile.',\n });\n CompileErrorTrace(document, root, { errorMessage: props.errorMessage });\n Spacer(document, root, { space: '1rem' });\n}\n\nmodule.exports = CompileErrorContainer;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
1398
|
+
eval("const CompileErrorTrace = __webpack_require__(/*! ../components/CompileErrorTrace.js */ 5079);\nconst PageHeader = __webpack_require__(/*! ../components/PageHeader.js */ 8387);\nconst Spacer = __webpack_require__(/*! ../components/Spacer.js */ 3665);\n\n/**\n * @typedef {Object} CompileErrorContainerProps\n * @property {string} errorMessage\n */\n\n/**\n * A container to render Webpack compilation error messages with source trace.\n * @param {Document} document\n * @param {HTMLElement} root\n * @param {CompileErrorContainerProps} props\n * @returns {void}\n */\nfunction CompileErrorContainer(document, root, props) {\n PageHeader(document, root, {\n title: 'Failed to compile.',\n });\n CompileErrorTrace(document, root, { errorMessage: props.errorMessage });\n Spacer(document, root, { space: '1rem' });\n}\n\nmodule.exports = CompileErrorContainer;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiOTcxMS5qcyIsIm1hcHBpbmdzIjoiQUFBQSwwQkFBMEIsbUJBQU8sQ0FBQyw4Q0FBb0M7QUFDdEUsbUJBQW1CLG1CQUFPLENBQUMsdUNBQTZCO0FBQ3hELGVBQWUsbUJBQU8sQ0FBQyxtQ0FBeUI7O0FBRWhEO0FBQ0EsYUFBYSxRQUFRO0FBQ3JCLGNBQWMsUUFBUTtBQUN0Qjs7QUFFQTtBQUNBO0FBQ0EsV0FBVyxVQUFVO0FBQ3JCLFdBQVcsYUFBYTtBQUN4QixXQUFXLDRCQUE0QjtBQUN2QyxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0gsc0NBQXNDLGtDQUFrQztBQUN4RSwyQkFBMkIsZUFBZTtBQUMxQzs7QUFFQSIsInNvdXJjZXMiOlsid2VicGFjazovL0BzdGFubGVtb24vd2ViZGV2Ly4uLy4uL25vZGVfbW9kdWxlcy9AcG1tbXdoL3JlYWN0LXJlZnJlc2gtd2VicGFjay1wbHVnaW4vb3ZlcmxheS9jb250YWluZXJzL0NvbXBpbGVFcnJvckNvbnRhaW5lci5qcz9lY2VkIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IENvbXBpbGVFcnJvclRyYWNlID0gcmVxdWlyZSgnLi4vY29tcG9uZW50cy9Db21waWxlRXJyb3JUcmFjZS5qcycpO1xuY29uc3QgUGFnZUhlYWRlciA9IHJlcXVpcmUoJy4uL2NvbXBvbmVudHMvUGFnZUhlYWRlci5qcycpO1xuY29uc3QgU3BhY2VyID0gcmVxdWlyZSgnLi4vY29tcG9uZW50cy9TcGFjZXIuanMnKTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBDb21waWxlRXJyb3JDb250YWluZXJQcm9wc1xuICogQHByb3BlcnR5IHtzdHJpbmd9IGVycm9yTWVzc2FnZVxuICovXG5cbi8qKlxuICogQSBjb250YWluZXIgdG8gcmVuZGVyIFdlYnBhY2sgY29tcGlsYXRpb24gZXJyb3IgbWVzc2FnZXMgd2l0aCBzb3VyY2UgdHJhY2UuXG4gKiBAcGFyYW0ge0RvY3VtZW50fSBkb2N1bWVudFxuICogQHBhcmFtIHtIVE1MRWxlbWVudH0gcm9vdFxuICogQHBhcmFtIHtDb21waWxlRXJyb3JDb250YWluZXJQcm9wc30gcHJvcHNcbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5mdW5jdGlvbiBDb21waWxlRXJyb3JDb250YWluZXIoZG9jdW1lbnQsIHJvb3QsIHByb3BzKSB7XG4gIFBhZ2VIZWFkZXIoZG9jdW1lbnQsIHJvb3QsIHtcbiAgICB0aXRsZTogJ0ZhaWxlZCB0byBjb21waWxlLicsXG4gIH0pO1xuICBDb21waWxlRXJyb3JUcmFjZShkb2N1bWVudCwgcm9vdCwgeyBlcnJvck1lc3NhZ2U6IHByb3BzLmVycm9yTWVzc2FnZSB9KTtcbiAgU3BhY2VyKGRvY3VtZW50LCByb290LCB7IHNwYWNlOiAnMXJlbScgfSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gQ29tcGlsZUVycm9yQ29udGFpbmVyO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///9711\n");
|
|
1399
1399
|
|
|
1400
1400
|
/***/ }),
|
|
1401
1401
|
|
|
@@ -1405,7 +1405,7 @@ eval("const CompileErrorTrace = __webpack_require__(/*! ../components/CompileErr
|
|
|
1405
1405
|
\***********************************************************************************************************/
|
|
1406
1406
|
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
|
1407
1407
|
|
|
1408
|
-
eval("const PageHeader = __webpack_require__(/*! ../components/PageHeader.js */ 8387);\nconst RuntimeErrorStack = __webpack_require__(/*! ../components/RuntimeErrorStack.js */ 124);\nconst Spacer = __webpack_require__(/*! ../components/Spacer.js */ 3665);\n\n/**\n * @typedef {Object} RuntimeErrorContainerProps\n * @property {Error} currentError\n */\n\n/**\n * A container to render runtime error messages with stack trace.\n * @param {Document} document\n * @param {HTMLElement} root\n * @param {RuntimeErrorContainerProps} props\n * @returns {void}\n */\nfunction RuntimeErrorContainer(document, root, props) {\n PageHeader(document, root, {\n message: props.currentError.message,\n title: props.currentError.name,\n topOffset: '2.5rem',\n });\n RuntimeErrorStack(document, root, {\n error: props.currentError,\n });\n Spacer(document, root, { space: '1rem' });\n}\n\nmodule.exports = RuntimeErrorContainer;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
1408
|
+
eval("const PageHeader = __webpack_require__(/*! ../components/PageHeader.js */ 8387);\nconst RuntimeErrorStack = __webpack_require__(/*! ../components/RuntimeErrorStack.js */ 124);\nconst Spacer = __webpack_require__(/*! ../components/Spacer.js */ 3665);\n\n/**\n * @typedef {Object} RuntimeErrorContainerProps\n * @property {Error} currentError\n */\n\n/**\n * A container to render runtime error messages with stack trace.\n * @param {Document} document\n * @param {HTMLElement} root\n * @param {RuntimeErrorContainerProps} props\n * @returns {void}\n */\nfunction RuntimeErrorContainer(document, root, props) {\n PageHeader(document, root, {\n message: props.currentError.message,\n title: props.currentError.name,\n topOffset: '2.5rem',\n });\n RuntimeErrorStack(document, root, {\n error: props.currentError,\n });\n Spacer(document, root, { space: '1rem' });\n}\n\nmodule.exports = RuntimeErrorContainer;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzYwLmpzIiwibWFwcGluZ3MiOiJBQUFBLG1CQUFtQixtQkFBTyxDQUFDLHVDQUE2QjtBQUN4RCwwQkFBMEIsbUJBQU8sQ0FBQyw2Q0FBb0M7QUFDdEUsZUFBZSxtQkFBTyxDQUFDLG1DQUF5Qjs7QUFFaEQ7QUFDQSxhQUFhLFFBQVE7QUFDckIsY0FBYyxPQUFPO0FBQ3JCOztBQUVBO0FBQ0E7QUFDQSxXQUFXLFVBQVU7QUFDckIsV0FBVyxhQUFhO0FBQ3hCLFdBQVcsNEJBQTRCO0FBQ3ZDLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLEdBQUc7QUFDSCwyQkFBMkIsZUFBZTtBQUMxQzs7QUFFQSIsInNvdXJjZXMiOlsid2VicGFjazovL0BzdGFubGVtb24vd2ViZGV2Ly4uLy4uL25vZGVfbW9kdWxlcy9AcG1tbXdoL3JlYWN0LXJlZnJlc2gtd2VicGFjay1wbHVnaW4vb3ZlcmxheS9jb250YWluZXJzL1J1bnRpbWVFcnJvckNvbnRhaW5lci5qcz8zNzYzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IFBhZ2VIZWFkZXIgPSByZXF1aXJlKCcuLi9jb21wb25lbnRzL1BhZ2VIZWFkZXIuanMnKTtcbmNvbnN0IFJ1bnRpbWVFcnJvclN0YWNrID0gcmVxdWlyZSgnLi4vY29tcG9uZW50cy9SdW50aW1lRXJyb3JTdGFjay5qcycpO1xuY29uc3QgU3BhY2VyID0gcmVxdWlyZSgnLi4vY29tcG9uZW50cy9TcGFjZXIuanMnKTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBSdW50aW1lRXJyb3JDb250YWluZXJQcm9wc1xuICogQHByb3BlcnR5IHtFcnJvcn0gY3VycmVudEVycm9yXG4gKi9cblxuLyoqXG4gKiBBIGNvbnRhaW5lciB0byByZW5kZXIgcnVudGltZSBlcnJvciBtZXNzYWdlcyB3aXRoIHN0YWNrIHRyYWNlLlxuICogQHBhcmFtIHtEb2N1bWVudH0gZG9jdW1lbnRcbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IHJvb3RcbiAqIEBwYXJhbSB7UnVudGltZUVycm9yQ29udGFpbmVyUHJvcHN9IHByb3BzXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZnVuY3Rpb24gUnVudGltZUVycm9yQ29udGFpbmVyKGRvY3VtZW50LCByb290LCBwcm9wcykge1xuICBQYWdlSGVhZGVyKGRvY3VtZW50LCByb290LCB7XG4gICAgbWVzc2FnZTogcHJvcHMuY3VycmVudEVycm9yLm1lc3NhZ2UsXG4gICAgdGl0bGU6IHByb3BzLmN1cnJlbnRFcnJvci5uYW1lLFxuICAgIHRvcE9mZnNldDogJzIuNXJlbScsXG4gIH0pO1xuICBSdW50aW1lRXJyb3JTdGFjayhkb2N1bWVudCwgcm9vdCwge1xuICAgIGVycm9yOiBwcm9wcy5jdXJyZW50RXJyb3IsXG4gIH0pO1xuICBTcGFjZXIoZG9jdW1lbnQsIHJvb3QsIHsgc3BhY2U6ICcxcmVtJyB9KTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBSdW50aW1lRXJyb3JDb250YWluZXI7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///760\n");
|
|
1409
1409
|
|
|
1410
1410
|
/***/ }),
|
|
1411
1411
|
|
|
@@ -1415,7 +1415,7 @@ eval("const PageHeader = __webpack_require__(/*! ../components/PageHeader.js */
|
|
|
1415
1415
|
\********************************************************************************/
|
|
1416
1416
|
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
|
1417
1417
|
|
|
1418
|
-
eval("const RuntimeErrorFooter = __webpack_require__(/*! ./components/RuntimeErrorFooter.js */ 6560);\nconst RuntimeErrorHeader = __webpack_require__(/*! ./components/RuntimeErrorHeader.js */ 6480);\nconst CompileErrorContainer = __webpack_require__(/*! ./containers/CompileErrorContainer.js */ 9711);\nconst RuntimeErrorContainer = __webpack_require__(/*! ./containers/RuntimeErrorContainer.js */ 760);\nconst theme = __webpack_require__(/*! ./theme.js */ 822);\nconst utils = __webpack_require__(/*! ./utils.js */ 4725);\n\n/**\n * @callback RenderFn\n * @returns {void}\n */\n\n/* ===== Cached elements for DOM manipulations ===== */\n/**\n * The iframe that contains the overlay.\n * @type {HTMLIFrameElement}\n */\nlet iframeRoot = null;\n/**\n * The document object from the iframe root, used to create and render elements.\n * @type {Document}\n */\nlet rootDocument = null;\n/**\n * The root div elements will attach to.\n * @type {HTMLDivElement}\n */\nlet root = null;\n/**\n * A Cached function to allow deferred render.\n * @type {RenderFn | null}\n */\nlet scheduledRenderFn = null;\n\n/* ===== Overlay State ===== */\n/**\n * The latest error message from Webpack compilation.\n * @type {string}\n */\nlet currentCompileErrorMessage = '';\n/**\n * Index of the error currently shown by the overlay.\n * @type {number}\n */\nlet currentRuntimeErrorIndex = 0;\n/**\n * The latest runtime error objects.\n * @type {Error[]}\n */\nlet currentRuntimeErrors = [];\n/**\n * The render mode the overlay is currently in.\n * @type {'compileError' | 'runtimeError' | null}\n */\nlet currentMode = null;\n\n/**\n * @typedef {Object} IframeProps\n * @property {function(): void} onIframeLoad\n */\n\n/**\n * Creates the main `iframe` the overlay will attach to.\n * Accepts a callback to be ran after iframe is initialized.\n * @param {Document} document\n * @param {HTMLElement} root\n * @param {IframeProps} props\n * @returns {HTMLIFrameElement}\n */\nfunction IframeRoot(document, root, props) {\n const iframe = document.createElement('iframe');\n iframe.id = 'react-refresh-overlay';\n iframe.src = 'about:blank';\n\n iframe.style.border = 'none';\n iframe.style.height = '100%';\n iframe.style.left = '0';\n iframe.style.minHeight = '100vh';\n iframe.style.minHeight = '-webkit-fill-available';\n iframe.style.position = 'fixed';\n iframe.style.top = '0';\n iframe.style.width = '100vw';\n iframe.style.zIndex = '2147483647';\n iframe.addEventListener('load', function onLoad() {\n // Reset margin of iframe body\n iframe.contentDocument.body.style.margin = '0';\n props.onIframeLoad();\n });\n\n // We skip mounting and returns as we need to ensure\n // the load event is fired after we setup the global variable\n return iframe;\n}\n\n/**\n * Creates the main `div` element for the overlay to render.\n * @param {Document} document\n * @param {HTMLElement} root\n * @returns {HTMLDivElement}\n */\nfunction OverlayRoot(document, root) {\n const div = document.createElement('div');\n div.id = 'react-refresh-overlay-error';\n\n // Style the contents container\n div.style.backgroundColor = '#' + theme.grey;\n div.style.boxSizing = 'border-box';\n div.style.color = '#' + theme.white;\n div.style.fontFamily = [\n '-apple-system',\n 'BlinkMacSystemFont',\n '\"Segoe UI\"',\n '\"Helvetica Neue\"',\n 'Helvetica',\n 'Arial',\n 'sans-serif',\n '\"Apple Color Emoji\"',\n '\"Segoe UI Emoji\"',\n 'Segoe UI Symbol',\n ].join(', ');\n div.style.fontSize = '0.875rem';\n div.style.height = '100%';\n div.style.lineHeight = '1.3';\n div.style.overflow = 'auto';\n div.style.padding = '1rem 1.5rem 0';\n div.style.paddingTop = 'max(1rem, env(safe-area-inset-top))';\n div.style.paddingRight = 'max(1.5rem, env(safe-area-inset-right))';\n div.style.paddingBottom = 'env(safe-area-inset-bottom)';\n div.style.paddingLeft = 'max(1.5rem, env(safe-area-inset-left))';\n div.style.width = '100vw';\n\n root.appendChild(div);\n return div;\n}\n\n/**\n * Ensures the iframe root and the overlay root are both initialized before render.\n * If check fails, render will be deferred until both roots are initialized.\n * @param {RenderFn} renderFn A function that triggers a DOM render.\n * @returns {void}\n */\nfunction ensureRootExists(renderFn) {\n if (root) {\n // Overlay root is ready, we can render right away.\n renderFn();\n return;\n }\n\n // Creating an iframe may be asynchronous so we'll defer render.\n // In case of multiple calls, function from the last call will be used.\n scheduledRenderFn = renderFn;\n\n if (iframeRoot) {\n // Iframe is already ready, it will fire the load event.\n return;\n }\n\n // Create the iframe root, and, the overlay root inside it when it is ready.\n iframeRoot = IframeRoot(document, document.body, {\n onIframeLoad: function onIframeLoad() {\n rootDocument = iframeRoot.contentDocument;\n root = OverlayRoot(rootDocument, rootDocument.body);\n scheduledRenderFn();\n },\n });\n\n // We have to mount here to ensure `iframeRoot` is set when `onIframeLoad` fires.\n // This is because onIframeLoad() will be called synchronously\n // or asynchronously depending on the browser.\n document.body.appendChild(iframeRoot);\n}\n\n/**\n * Creates the main `div` element for the overlay to render.\n * @returns {void}\n */\nfunction render() {\n ensureRootExists(function () {\n const currentFocus = rootDocument.activeElement;\n let currentFocusId;\n if (currentFocus.localName === 'button' && currentFocus.id) {\n currentFocusId = currentFocus.id;\n }\n\n utils.removeAllChildren(root);\n\n if (currentCompileErrorMessage) {\n currentMode = 'compileError';\n\n CompileErrorContainer(rootDocument, root, {\n errorMessage: currentCompileErrorMessage,\n });\n } else if (currentRuntimeErrors.length) {\n currentMode = 'runtimeError';\n\n RuntimeErrorHeader(rootDocument, root, {\n currentErrorIndex: currentRuntimeErrorIndex,\n totalErrors: currentRuntimeErrors.length,\n });\n RuntimeErrorContainer(rootDocument, root, {\n currentError: currentRuntimeErrors[currentRuntimeErrorIndex],\n });\n RuntimeErrorFooter(rootDocument, root, {\n initialFocus: currentFocusId,\n multiple: currentRuntimeErrors.length > 1,\n onClickCloseButton: function onClose() {\n clearRuntimeErrors();\n },\n onClickNextButton: function onNext() {\n if (currentRuntimeErrorIndex === currentRuntimeErrors.length - 1) {\n return;\n }\n currentRuntimeErrorIndex += 1;\n ensureRootExists(render);\n },\n onClickPrevButton: function onPrev() {\n if (currentRuntimeErrorIndex === 0) {\n return;\n }\n currentRuntimeErrorIndex -= 1;\n ensureRootExists(render);\n },\n });\n }\n });\n}\n\n/**\n * Destroys the state of the overlay.\n * @returns {void}\n */\nfunction cleanup() {\n // Clean up and reset all internal state.\n document.body.removeChild(iframeRoot);\n scheduledRenderFn = null;\n root = null;\n iframeRoot = null;\n}\n\n/**\n * Clears Webpack compilation errors and dismisses the compile error overlay.\n * @returns {void}\n */\nfunction clearCompileError() {\n if (!root || currentMode !== 'compileError') {\n return;\n }\n\n currentCompileErrorMessage = '';\n currentMode = null;\n cleanup();\n}\n\n/**\n * Clears runtime error records and dismisses the runtime error overlay.\n * @param {boolean} [dismissOverlay] Whether to dismiss the overlay or not.\n * @returns {void}\n */\nfunction clearRuntimeErrors(dismissOverlay) {\n if (!root || currentMode !== 'runtimeError') {\n return;\n }\n\n currentRuntimeErrorIndex = 0;\n currentRuntimeErrors = [];\n\n if (typeof dismissOverlay === 'undefined' || dismissOverlay) {\n currentMode = null;\n cleanup();\n }\n}\n\n/**\n * Shows the compile error overlay with the specific Webpack error message.\n * @param {string} message\n * @returns {void}\n */\nfunction showCompileError(message) {\n if (!message) {\n return;\n }\n\n currentCompileErrorMessage = message;\n\n render();\n}\n\n/**\n * Shows the runtime error overlay with the specific error records.\n * @param {Error[]} errors\n * @returns {void}\n */\nfunction showRuntimeErrors(errors) {\n if (!errors || !errors.length) {\n return;\n }\n\n currentRuntimeErrors = errors;\n\n render();\n}\n\n/**\n * The debounced version of `showRuntimeErrors` to prevent frequent renders\n * due to rapid firing listeners.\n * @param {Error[]} errors\n * @returns {void}\n */\nconst debouncedShowRuntimeErrors = utils.debounce(showRuntimeErrors, 30);\n\n/**\n * Detects if an error is a Webpack compilation error.\n * @param {Error} error The error of interest.\n * @returns {boolean} If the error is a Webpack compilation error.\n */\nfunction isWebpackCompileError(error) {\n return /Module [A-z ]+\\(from/.test(error.message) || /Cannot find module/.test(error.message);\n}\n\n/**\n * Handles runtime error contexts captured with EventListeners.\n * Integrates with a runtime error overlay.\n * @param {Error} error A valid error object.\n * @returns {void}\n */\nfunction handleRuntimeError(error) {\n if (error && !isWebpackCompileError(error) && currentRuntimeErrors.indexOf(error) === -1) {\n currentRuntimeErrors = currentRuntimeErrors.concat(error);\n }\n debouncedShowRuntimeErrors(currentRuntimeErrors);\n}\n\nmodule.exports = Object.freeze({\n clearCompileError: clearCompileError,\n clearRuntimeErrors: clearRuntimeErrors,\n handleRuntimeError: handleRuntimeError,\n showCompileError: showCompileError,\n showRuntimeErrors: showRuntimeErrors,\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDU0OS5qcyIsIm1hcHBpbmdzIjoiQUFBQSwyQkFBMkIsbUJBQU8sQ0FBQyw4Q0FBb0M7QUFDdkUsMkJBQTJCLG1CQUFPLENBQUMsOENBQW9DO0FBQ3ZFLDhCQUE4QixtQkFBTyxDQUFDLGlEQUF1QztBQUM3RSw4QkFBOEIsbUJBQU8sQ0FBQyxnREFBdUM7QUFDN0UsY0FBYyxtQkFBTyxDQUFDLHFCQUFZO0FBQ2xDLGNBQWMsbUJBQU8sQ0FBQyxzQkFBWTs7QUFFbEM7QUFDQTtBQUNBLGFBQWE7QUFDYjs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTs7QUFFQTtBQUNBLGFBQWEsUUFBUTtBQUNyQixjQUFjLGtCQUFrQjtBQUNoQzs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFVBQVU7QUFDckIsV0FBVyxhQUFhO0FBQ3hCLFdBQVcsYUFBYTtBQUN4QixhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFdBQVcsVUFBVTtBQUNyQixXQUFXLGFBQWE7QUFDeEIsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsVUFBVTtBQUNyQixhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE9BQU87QUFDUCxNQUFNO0FBQ047O0FBRUE7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULE9BQU87QUFDUDtBQUNBLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxXQUFXLFNBQVM7QUFDcEIsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsV0FBVyxTQUFTO0FBQ3BCLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxTQUFTO0FBQ3BCLGFBQWE7QUFDYjtBQUNBOztBQUVBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEIsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovL0BzdGFubGVtb24vd2ViZGV2Ly4uLy4uL25vZGVfbW9kdWxlcy9AcG1tbXdoL3JlYWN0LXJlZnJlc2gtd2VicGFjay1wbHVnaW4vb3ZlcmxheS9pbmRleC5qcz85ODQ2Il0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IFJ1bnRpbWVFcnJvckZvb3RlciA9IHJlcXVpcmUoJy4vY29tcG9uZW50cy9SdW50aW1lRXJyb3JGb290ZXIuanMnKTtcbmNvbnN0IFJ1bnRpbWVFcnJvckhlYWRlciA9IHJlcXVpcmUoJy4vY29tcG9uZW50cy9SdW50aW1lRXJyb3JIZWFkZXIuanMnKTtcbmNvbnN0IENvbXBpbGVFcnJvckNvbnRhaW5lciA9IHJlcXVpcmUoJy4vY29udGFpbmVycy9Db21waWxlRXJyb3JDb250YWluZXIuanMnKTtcbmNvbnN0IFJ1bnRpbWVFcnJvckNvbnRhaW5lciA9IHJlcXVpcmUoJy4vY29udGFpbmVycy9SdW50aW1lRXJyb3JDb250YWluZXIuanMnKTtcbmNvbnN0IHRoZW1lID0gcmVxdWlyZSgnLi90aGVtZS5qcycpO1xuY29uc3QgdXRpbHMgPSByZXF1aXJlKCcuL3V0aWxzLmpzJyk7XG5cbi8qKlxuICogQGNhbGxiYWNrIFJlbmRlckZuXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuXG4vKiA9PT09PSBDYWNoZWQgZWxlbWVudHMgZm9yIERPTSBtYW5pcHVsYXRpb25zID09PT09ICovXG4vKipcbiAqIFRoZSBpZnJhbWUgdGhhdCBjb250YWlucyB0aGUgb3ZlcmxheS5cbiAqIEB0eXBlIHtIVE1MSUZyYW1lRWxlbWVudH1cbiAqL1xubGV0IGlmcmFtZVJvb3QgPSBudWxsO1xuLyoqXG4gKiBUaGUgZG9jdW1lbnQgb2JqZWN0IGZyb20gdGhlIGlmcmFtZSByb290LCB1c2VkIHRvIGNyZWF0ZSBhbmQgcmVuZGVyIGVsZW1lbnRzLlxuICogQHR5cGUge0RvY3VtZW50fVxuICovXG5sZXQgcm9vdERvY3VtZW50ID0gbnVsbDtcbi8qKlxuICogVGhlIHJvb3QgZGl2IGVsZW1lbnRzIHdpbGwgYXR0YWNoIHRvLlxuICogQHR5cGUge0hUTUxEaXZFbGVtZW50fVxuICovXG5sZXQgcm9vdCA9IG51bGw7XG4vKipcbiAqIEEgQ2FjaGVkIGZ1bmN0aW9uIHRvIGFsbG93IGRlZmVycmVkIHJlbmRlci5cbiAqIEB0eXBlIHtSZW5kZXJGbiB8IG51bGx9XG4gKi9cbmxldCBzY2hlZHVsZWRSZW5kZXJGbiA9IG51bGw7XG5cbi8qID09PT09IE92ZXJsYXkgU3RhdGUgPT09PT0gKi9cbi8qKlxuICogVGhlIGxhdGVzdCBlcnJvciBtZXNzYWdlIGZyb20gV2VicGFjayBjb21waWxhdGlvbi5cbiAqIEB0eXBlIHtzdHJpbmd9XG4gKi9cbmxldCBjdXJyZW50Q29tcGlsZUVycm9yTWVzc2FnZSA9ICcnO1xuLyoqXG4gKiBJbmRleCBvZiB0aGUgZXJyb3IgY3VycmVudGx5IHNob3duIGJ5IHRoZSBvdmVybGF5LlxuICogQHR5cGUge251bWJlcn1cbiAqL1xubGV0IGN1cnJlbnRSdW50aW1lRXJyb3JJbmRleCA9IDA7XG4vKipcbiAqIFRoZSBsYXRlc3QgcnVudGltZSBlcnJvciBvYmplY3RzLlxuICogQHR5cGUge0Vycm9yW119XG4gKi9cbmxldCBjdXJyZW50UnVudGltZUVycm9ycyA9IFtdO1xuLyoqXG4gKiBUaGUgcmVuZGVyIG1vZGUgdGhlIG92ZXJsYXkgaXMgY3VycmVudGx5IGluLlxuICogQHR5cGUgeydjb21waWxlRXJyb3InIHwgJ3J1bnRpbWVFcnJvcicgfCBudWxsfVxuICovXG5sZXQgY3VycmVudE1vZGUgPSBudWxsO1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IElmcmFtZVByb3BzXG4gKiBAcHJvcGVydHkge2Z1bmN0aW9uKCk6IHZvaWR9IG9uSWZyYW1lTG9hZFxuICovXG5cbi8qKlxuICogQ3JlYXRlcyB0aGUgbWFpbiBgaWZyYW1lYCB0aGUgb3ZlcmxheSB3aWxsIGF0dGFjaCB0by5cbiAqIEFjY2VwdHMgYSBjYWxsYmFjayB0byBiZSByYW4gYWZ0ZXIgaWZyYW1lIGlzIGluaXRpYWxpemVkLlxuICogQHBhcmFtIHtEb2N1bWVudH0gZG9jdW1lbnRcbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IHJvb3RcbiAqIEBwYXJhbSB7SWZyYW1lUHJvcHN9IHByb3BzXG4gKiBAcmV0dXJucyB7SFRNTElGcmFtZUVsZW1lbnR9XG4gKi9cbmZ1bmN0aW9uIElmcmFtZVJvb3QoZG9jdW1lbnQsIHJvb3QsIHByb3BzKSB7XG4gIGNvbnN0IGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpO1xuICBpZnJhbWUuaWQgPSAncmVhY3QtcmVmcmVzaC1vdmVybGF5JztcbiAgaWZyYW1lLnNyYyA9ICdhYm91dDpibGFuayc7XG5cbiAgaWZyYW1lLnN0eWxlLmJvcmRlciA9ICdub25lJztcbiAgaWZyYW1lLnN0eWxlLmhlaWdodCA9ICcxMDAlJztcbiAgaWZyYW1lLnN0eWxlLmxlZnQgPSAnMCc7XG4gIGlmcmFtZS5zdHlsZS5taW5IZWlnaHQgPSAnMTAwdmgnO1xuICBpZnJhbWUuc3R5bGUubWluSGVpZ2h0ID0gJy13ZWJraXQtZmlsbC1hdmFpbGFibGUnO1xuICBpZnJhbWUuc3R5bGUucG9zaXRpb24gPSAnZml4ZWQnO1xuICBpZnJhbWUuc3R5bGUudG9wID0gJzAnO1xuICBpZnJhbWUuc3R5bGUud2lkdGggPSAnMTAwdncnO1xuICBpZnJhbWUuc3R5bGUuekluZGV4ID0gJzIxNDc0ODM2NDcnO1xuICBpZnJhbWUuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uIG9uTG9hZCgpIHtcbiAgICAvLyBSZXNldCBtYXJnaW4gb2YgaWZyYW1lIGJvZHlcbiAgICBpZnJhbWUuY29udGVudERvY3VtZW50LmJvZHkuc3R5bGUubWFyZ2luID0gJzAnO1xuICAgIHByb3BzLm9uSWZyYW1lTG9hZCgpO1xuICB9KTtcblxuICAvLyBXZSBza2lwIG1vdW50aW5nIGFuZCByZXR1cm5zIGFzIHdlIG5lZWQgdG8gZW5zdXJlXG4gIC8vIHRoZSBsb2FkIGV2ZW50IGlzIGZpcmVkIGFmdGVyIHdlIHNldHVwIHRoZSBnbG9iYWwgdmFyaWFibGVcbiAgcmV0dXJuIGlmcmFtZTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIHRoZSBtYWluIGBkaXZgIGVsZW1lbnQgZm9yIHRoZSBvdmVybGF5IHRvIHJlbmRlci5cbiAqIEBwYXJhbSB7RG9jdW1lbnR9IGRvY3VtZW50XG4gKiBAcGFyYW0ge0hUTUxFbGVtZW50fSByb290XG4gKiBAcmV0dXJucyB7SFRNTERpdkVsZW1lbnR9XG4gKi9cbmZ1bmN0aW9uIE92ZXJsYXlSb290KGRvY3VtZW50LCByb290KSB7XG4gIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICBkaXYuaWQgPSAncmVhY3QtcmVmcmVzaC1vdmVybGF5LWVycm9yJztcblxuICAvLyBTdHlsZSB0aGUgY29udGVudHMgY29udGFpbmVyXG4gIGRpdi5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAnIycgKyB0aGVtZS5ncmV5O1xuICBkaXYuc3R5bGUuYm94U2l6aW5nID0gJ2JvcmRlci1ib3gnO1xuICBkaXYuc3R5bGUuY29sb3IgPSAnIycgKyB0aGVtZS53aGl0ZTtcbiAgZGl2LnN0eWxlLmZvbnRGYW1pbHkgPSBbXG4gICAgJy1hcHBsZS1zeXN0ZW0nLFxuICAgICdCbGlua01hY1N5c3RlbUZvbnQnLFxuICAgICdcIlNlZ29lIFVJXCInLFxuICAgICdcIkhlbHZldGljYSBOZXVlXCInLFxuICAgICdIZWx2ZXRpY2EnLFxuICAgICdBcmlhbCcsXG4gICAgJ3NhbnMtc2VyaWYnLFxuICAgICdcIkFwcGxlIENvbG9yIEVtb2ppXCInLFxuICAgICdcIlNlZ29lIFVJIEVtb2ppXCInLFxuICAgICdTZWdvZSBVSSBTeW1ib2wnLFxuICBdLmpvaW4oJywgJyk7XG4gIGRpdi5zdHlsZS5mb250U2l6ZSA9ICcwLjg3NXJlbSc7XG4gIGRpdi5zdHlsZS5oZWlnaHQgPSAnMTAwJSc7XG4gIGRpdi5zdHlsZS5saW5lSGVpZ2h0ID0gJzEuMyc7XG4gIGRpdi5zdHlsZS5vdmVyZmxvdyA9ICdhdXRvJztcbiAgZGl2LnN0eWxlLnBhZGRpbmcgPSAnMXJlbSAxLjVyZW0gMCc7XG4gIGRpdi5zdHlsZS5wYWRkaW5nVG9wID0gJ21heCgxcmVtLCBlbnYoc2FmZS1hcmVhLWluc2V0LXRvcCkpJztcbiAgZGl2LnN0eWxlLnBhZGRpbmdSaWdodCA9ICdtYXgoMS41cmVtLCBlbnYoc2FmZS1hcmVhLWluc2V0LXJpZ2h0KSknO1xuICBkaXYuc3R5bGUucGFkZGluZ0JvdHRvbSA9ICdlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSknO1xuICBkaXYuc3R5bGUucGFkZGluZ0xlZnQgPSAnbWF4KDEuNXJlbSwgZW52KHNhZmUtYXJlYS1pbnNldC1sZWZ0KSknO1xuICBkaXYuc3R5bGUud2lkdGggPSAnMTAwdncnO1xuXG4gIHJvb3QuYXBwZW5kQ2hpbGQoZGl2KTtcbiAgcmV0dXJuIGRpdjtcbn1cblxuLyoqXG4gKiBFbnN1cmVzIHRoZSBpZnJhbWUgcm9vdCBhbmQgdGhlIG92ZXJsYXkgcm9vdCBhcmUgYm90aCBpbml0aWFsaXplZCBiZWZvcmUgcmVuZGVyLlxuICogSWYgY2hlY2sgZmFpbHMsIHJlbmRlciB3aWxsIGJlIGRlZmVycmVkIHVudGlsIGJvdGggcm9vdHMgYXJlIGluaXRpYWxpemVkLlxuICogQHBhcmFtIHtSZW5kZXJGbn0gcmVuZGVyRm4gQSBmdW5jdGlvbiB0aGF0IHRyaWdnZXJzIGEgRE9NIHJlbmRlci5cbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5mdW5jdGlvbiBlbnN1cmVSb290RXhpc3RzKHJlbmRlckZuKSB7XG4gIGlmIChyb290KSB7XG4gICAgLy8gT3ZlcmxheSByb290IGlzIHJlYWR5LCB3ZSBjYW4gcmVuZGVyIHJpZ2h0IGF3YXkuXG4gICAgcmVuZGVyRm4oKTtcbiAgICByZXR1cm47XG4gIH1cblxuICAvLyBDcmVhdGluZyBhbiBpZnJhbWUgbWF5IGJlIGFzeW5jaHJvbm91cyBzbyB3ZSdsbCBkZWZlciByZW5kZXIuXG4gIC8vIEluIGNhc2Ugb2YgbXVsdGlwbGUgY2FsbHMsIGZ1bmN0aW9uIGZyb20gdGhlIGxhc3QgY2FsbCB3aWxsIGJlIHVzZWQuXG4gIHNjaGVkdWxlZFJlbmRlckZuID0gcmVuZGVyRm47XG5cbiAgaWYgKGlmcmFtZVJvb3QpIHtcbiAgICAvLyBJZnJhbWUgaXMgYWxyZWFkeSByZWFkeSwgaXQgd2lsbCBmaXJlIHRoZSBsb2FkIGV2ZW50LlxuICAgIHJldHVybjtcbiAgfVxuXG4gIC8vIENyZWF0ZSB0aGUgaWZyYW1lIHJvb3QsIGFuZCwgdGhlIG92ZXJsYXkgcm9vdCBpbnNpZGUgaXQgd2hlbiBpdCBpcyByZWFkeS5cbiAgaWZyYW1lUm9vdCA9IElmcmFtZVJvb3QoZG9jdW1lbnQsIGRvY3VtZW50LmJvZHksIHtcbiAgICBvbklmcmFtZUxvYWQ6IGZ1bmN0aW9uIG9uSWZyYW1lTG9hZCgpIHtcbiAgICAgIHJvb3REb2N1bWVudCA9IGlmcmFtZVJvb3QuY29udGVudERvY3VtZW50O1xuICAgICAgcm9vdCA9IE92ZXJsYXlSb290KHJvb3REb2N1bWVudCwgcm9vdERvY3VtZW50LmJvZHkpO1xuICAgICAgc2NoZWR1bGVkUmVuZGVyRm4oKTtcbiAgICB9LFxuICB9KTtcblxuICAvLyBXZSBoYXZlIHRvIG1vdW50IGhlcmUgdG8gZW5zdXJlIGBpZnJhbWVSb290YCBpcyBzZXQgd2hlbiBgb25JZnJhbWVMb2FkYCBmaXJlcy5cbiAgLy8gVGhpcyBpcyBiZWNhdXNlIG9uSWZyYW1lTG9hZCgpIHdpbGwgYmUgY2FsbGVkIHN5bmNocm9ub3VzbHlcbiAgLy8gb3IgYXN5bmNocm9ub3VzbHkgZGVwZW5kaW5nIG9uIHRoZSBicm93c2VyLlxuICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZVJvb3QpO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgdGhlIG1haW4gYGRpdmAgZWxlbWVudCBmb3IgdGhlIG92ZXJsYXkgdG8gcmVuZGVyLlxuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgZW5zdXJlUm9vdEV4aXN0cyhmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgY3VycmVudEZvY3VzID0gcm9vdERvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG4gICAgbGV0IGN1cnJlbnRGb2N1c0lkO1xuICAgIGlmIChjdXJyZW50Rm9jdXMubG9jYWxOYW1lID09PSAnYnV0dG9uJyAmJiBjdXJyZW50Rm9jdXMuaWQpIHtcbiAgICAgIGN1cnJlbnRGb2N1c0lkID0gY3VycmVudEZvY3VzLmlkO1xuICAgIH1cblxuICAgIHV0aWxzLnJlbW92ZUFsbENoaWxkcmVuKHJvb3QpO1xuXG4gICAgaWYgKGN1cnJlbnRDb21waWxlRXJyb3JNZXNzYWdlKSB7XG4gICAgICBjdXJyZW50TW9kZSA9ICdjb21waWxlRXJyb3InO1xuXG4gICAgICBDb21waWxlRXJyb3JDb250YWluZXIocm9vdERvY3VtZW50LCByb290LCB7XG4gICAgICAgIGVycm9yTWVzc2FnZTogY3VycmVudENvbXBpbGVFcnJvck1lc3NhZ2UsXG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKGN1cnJlbnRSdW50aW1lRXJyb3JzLmxlbmd0aCkge1xuICAgICAgY3VycmVudE1vZGUgPSAncnVudGltZUVycm9yJztcblxuICAgICAgUnVudGltZUVycm9ySGVhZGVyKHJvb3REb2N1bWVudCwgcm9vdCwge1xuICAgICAgICBjdXJyZW50RXJyb3JJbmRleDogY3VycmVudFJ1bnRpbWVFcnJvckluZGV4LFxuICAgICAgICB0b3RhbEVycm9yczogY3VycmVudFJ1bnRpbWVFcnJvcnMubGVuZ3RoLFxuICAgICAgfSk7XG4gICAgICBSdW50aW1lRXJyb3JDb250YWluZXIocm9vdERvY3VtZW50LCByb290LCB7XG4gICAgICAgIGN1cnJlbnRFcnJvcjogY3VycmVudFJ1bnRpbWVFcnJvcnNbY3VycmVudFJ1bnRpbWVFcnJvckluZGV4XSxcbiAgICAgIH0pO1xuICAgICAgUnVudGltZUVycm9yRm9vdGVyKHJvb3REb2N1bWVudCwgcm9vdCwge1xuICAgICAgICBpbml0aWFsRm9jdXM6IGN1cnJlbnRGb2N1c0lkLFxuICAgICAgICBtdWx0aXBsZTogY3VycmVudFJ1bnRpbWVFcnJvcnMubGVuZ3RoID4gMSxcbiAgICAgICAgb25DbGlja0Nsb3NlQnV0dG9uOiBmdW5jdGlvbiBvbkNsb3NlKCkge1xuICAgICAgICAgIGNsZWFyUnVudGltZUVycm9ycygpO1xuICAgICAgICB9LFxuICAgICAgICBvbkNsaWNrTmV4dEJ1dHRvbjogZnVuY3Rpb24gb25OZXh0KCkge1xuICAgICAgICAgIGlmIChjdXJyZW50UnVudGltZUVycm9ySW5kZXggPT09IGN1cnJlbnRSdW50aW1lRXJyb3JzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgY3VycmVudFJ1bnRpbWVFcnJvckluZGV4ICs9IDE7XG4gICAgICAgICAgZW5zdXJlUm9vdEV4aXN0cyhyZW5kZXIpO1xuICAgICAgICB9LFxuICAgICAgICBvbkNsaWNrUHJldkJ1dHRvbjogZnVuY3Rpb24gb25QcmV2KCkge1xuICAgICAgICAgIGlmIChjdXJyZW50UnVudGltZUVycm9ySW5kZXggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgY3VycmVudFJ1bnRpbWVFcnJvckluZGV4IC09IDE7XG4gICAgICAgICAgZW5zdXJlUm9vdEV4aXN0cyhyZW5kZXIpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuICB9KTtcbn1cblxuLyoqXG4gKiBEZXN0cm95cyB0aGUgc3RhdGUgb2YgdGhlIG92ZXJsYXkuXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZnVuY3Rpb24gY2xlYW51cCgpIHtcbiAgLy8gQ2xlYW4gdXAgYW5kIHJlc2V0IGFsbCBpbnRlcm5hbCBzdGF0ZS5cbiAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChpZnJhbWVSb290KTtcbiAgc2NoZWR1bGVkUmVuZGVyRm4gPSBudWxsO1xuICByb290ID0gbnVsbDtcbiAgaWZyYW1lUm9vdCA9IG51bGw7XG59XG5cbi8qKlxuICogQ2xlYXJzIFdlYnBhY2sgY29tcGlsYXRpb24gZXJyb3JzIGFuZCBkaXNtaXNzZXMgdGhlIGNvbXBpbGUgZXJyb3Igb3ZlcmxheS5cbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5mdW5jdGlvbiBjbGVhckNvbXBpbGVFcnJvcigpIHtcbiAgaWYgKCFyb290IHx8IGN1cnJlbnRNb2RlICE9PSAnY29tcGlsZUVycm9yJykge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGN1cnJlbnRDb21waWxlRXJyb3JNZXNzYWdlID0gJyc7XG4gIGN1cnJlbnRNb2RlID0gbnVsbDtcbiAgY2xlYW51cCgpO1xufVxuXG4vKipcbiAqIENsZWFycyBydW50aW1lIGVycm9yIHJlY29yZHMgYW5kIGRpc21pc3NlcyB0aGUgcnVudGltZSBlcnJvciBvdmVybGF5LlxuICogQHBhcmFtIHtib29sZWFufSBbZGlzbWlzc092ZXJsYXldIFdoZXRoZXIgdG8gZGlzbWlzcyB0aGUgb3ZlcmxheSBvciBub3QuXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZnVuY3Rpb24gY2xlYXJSdW50aW1lRXJyb3JzKGRpc21pc3NPdmVybGF5KSB7XG4gIGlmICghcm9vdCB8fCBjdXJyZW50TW9kZSAhPT0gJ3J1bnRpbWVFcnJvcicpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjdXJyZW50UnVudGltZUVycm9ySW5kZXggPSAwO1xuICBjdXJyZW50UnVudGltZUVycm9ycyA9IFtdO1xuXG4gIGlmICh0eXBlb2YgZGlzbWlzc092ZXJsYXkgPT09ICd1bmRlZmluZWQnIHx8IGRpc21pc3NPdmVybGF5KSB7XG4gICAgY3VycmVudE1vZGUgPSBudWxsO1xuICAgIGNsZWFudXAoKTtcbiAgfVxufVxuXG4vKipcbiAqIFNob3dzIHRoZSBjb21waWxlIGVycm9yIG92ZXJsYXkgd2l0aCB0aGUgc3BlY2lmaWMgV2VicGFjayBlcnJvciBtZXNzYWdlLlxuICogQHBhcmFtIHtzdHJpbmd9IG1lc3NhZ2VcbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5mdW5jdGlvbiBzaG93Q29tcGlsZUVycm9yKG1lc3NhZ2UpIHtcbiAgaWYgKCFtZXNzYWdlKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY3VycmVudENvbXBpbGVFcnJvck1lc3NhZ2UgPSBtZXNzYWdlO1xuXG4gIHJlbmRlcigpO1xufVxuXG4vKipcbiAqIFNob3dzIHRoZSBydW50aW1lIGVycm9yIG92ZXJsYXkgd2l0aCB0aGUgc3BlY2lmaWMgZXJyb3IgcmVjb3Jkcy5cbiAqIEBwYXJhbSB7RXJyb3JbXX0gZXJyb3JzXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZnVuY3Rpb24gc2hvd1J1bnRpbWVFcnJvcnMoZXJyb3JzKSB7XG4gIGlmICghZXJyb3JzIHx8ICFlcnJvcnMubGVuZ3RoKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY3VycmVudFJ1bnRpbWVFcnJvcnMgPSBlcnJvcnM7XG5cbiAgcmVuZGVyKCk7XG59XG5cbi8qKlxuICogVGhlIGRlYm91bmNlZCB2ZXJzaW9uIG9mIGBzaG93UnVudGltZUVycm9yc2AgdG8gcHJldmVudCBmcmVxdWVudCByZW5kZXJzXG4gKiBkdWUgdG8gcmFwaWQgZmlyaW5nIGxpc3RlbmVycy5cbiAqIEBwYXJhbSB7RXJyb3JbXX0gZXJyb3JzXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuY29uc3QgZGVib3VuY2VkU2hvd1J1bnRpbWVFcnJvcnMgPSB1dGlscy5kZWJvdW5jZShzaG93UnVudGltZUVycm9ycywgMzApO1xuXG4vKipcbiAqIERldGVjdHMgaWYgYW4gZXJyb3IgaXMgYSBXZWJwYWNrIGNvbXBpbGF0aW9uIGVycm9yLlxuICogQHBhcmFtIHtFcnJvcn0gZXJyb3IgVGhlIGVycm9yIG9mIGludGVyZXN0LlxuICogQHJldHVybnMge2Jvb2xlYW59IElmIHRoZSBlcnJvciBpcyBhIFdlYnBhY2sgY29tcGlsYXRpb24gZXJyb3IuXG4gKi9cbmZ1bmN0aW9uIGlzV2VicGFja0NvbXBpbGVFcnJvcihlcnJvcikge1xuICByZXR1cm4gL01vZHVsZSBbQS16IF0rXFwoZnJvbS8udGVzdChlcnJvci5tZXNzYWdlKSB8fCAvQ2Fubm90IGZpbmQgbW9kdWxlLy50ZXN0KGVycm9yLm1lc3NhZ2UpO1xufVxuXG4vKipcbiAqIEhhbmRsZXMgcnVudGltZSBlcnJvciBjb250ZXh0cyBjYXB0dXJlZCB3aXRoIEV2ZW50TGlzdGVuZXJzLlxuICogSW50ZWdyYXRlcyB3aXRoIGEgcnVudGltZSBlcnJvciBvdmVybGF5LlxuICogQHBhcmFtIHtFcnJvcn0gZXJyb3IgQSB2YWxpZCBlcnJvciBvYmplY3QuXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZnVuY3Rpb24gaGFuZGxlUnVudGltZUVycm9yKGVycm9yKSB7XG4gIGlmIChlcnJvciAmJiAhaXNXZWJwYWNrQ29tcGlsZUVycm9yKGVycm9yKSAmJiBjdXJyZW50UnVudGltZUVycm9ycy5pbmRleE9mKGVycm9yKSA9PT0gLTEpIHtcbiAgICBjdXJyZW50UnVudGltZUVycm9ycyA9IGN1cnJlbnRSdW50aW1lRXJyb3JzLmNvbmNhdChlcnJvcik7XG4gIH1cbiAgZGVib3VuY2VkU2hvd1J1bnRpbWVFcnJvcnMoY3VycmVudFJ1bnRpbWVFcnJvcnMpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IE9iamVjdC5mcmVlemUoe1xuICBjbGVhckNvbXBpbGVFcnJvcjogY2xlYXJDb21waWxlRXJyb3IsXG4gIGNsZWFyUnVudGltZUVycm9yczogY2xlYXJSdW50aW1lRXJyb3JzLFxuICBoYW5kbGVSdW50aW1lRXJyb3I6IGhhbmRsZVJ1bnRpbWVFcnJvcixcbiAgc2hvd0NvbXBpbGVFcnJvcjogc2hvd0NvbXBpbGVFcnJvcixcbiAgc2hvd1J1bnRpbWVFcnJvcnM6IHNob3dSdW50aW1lRXJyb3JzLFxufSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///4549\n");
|
|
1418
|
+
eval("const RuntimeErrorFooter = __webpack_require__(/*! ./components/RuntimeErrorFooter.js */ 6560);\nconst RuntimeErrorHeader = __webpack_require__(/*! ./components/RuntimeErrorHeader.js */ 6480);\nconst CompileErrorContainer = __webpack_require__(/*! ./containers/CompileErrorContainer.js */ 9711);\nconst RuntimeErrorContainer = __webpack_require__(/*! ./containers/RuntimeErrorContainer.js */ 760);\nconst theme = __webpack_require__(/*! ./theme.js */ 822);\nconst utils = __webpack_require__(/*! ./utils.js */ 4725);\n\n/**\n * @callback RenderFn\n * @returns {void}\n */\n\n/* ===== Cached elements for DOM manipulations ===== */\n/**\n * The iframe that contains the overlay.\n * @type {HTMLIFrameElement}\n */\nlet iframeRoot = null;\n/**\n * The document object from the iframe root, used to create and render elements.\n * @type {Document}\n */\nlet rootDocument = null;\n/**\n * The root div elements will attach to.\n * @type {HTMLDivElement}\n */\nlet root = null;\n/**\n * A Cached function to allow deferred render.\n * @type {RenderFn | null}\n */\nlet scheduledRenderFn = null;\n\n/* ===== Overlay State ===== */\n/**\n * The latest error message from Webpack compilation.\n * @type {string}\n */\nlet currentCompileErrorMessage = '';\n/**\n * Index of the error currently shown by the overlay.\n * @type {number}\n */\nlet currentRuntimeErrorIndex = 0;\n/**\n * The latest runtime error objects.\n * @type {Error[]}\n */\nlet currentRuntimeErrors = [];\n/**\n * The render mode the overlay is currently in.\n * @type {'compileError' | 'runtimeError' | null}\n */\nlet currentMode = null;\n\n/**\n * @typedef {Object} IframeProps\n * @property {function(): void} onIframeLoad\n */\n\n/**\n * Creates the main `iframe` the overlay will attach to.\n * Accepts a callback to be ran after iframe is initialized.\n * @param {Document} document\n * @param {HTMLElement} root\n * @param {IframeProps} props\n * @returns {HTMLIFrameElement}\n */\nfunction IframeRoot(document, root, props) {\n const iframe = document.createElement('iframe');\n iframe.id = 'react-refresh-overlay';\n iframe.src = 'about:blank';\n\n iframe.style.border = 'none';\n iframe.style.height = '100%';\n iframe.style.left = '0';\n iframe.style.minHeight = '100vh';\n iframe.style.minHeight = '-webkit-fill-available';\n iframe.style.position = 'fixed';\n iframe.style.top = '0';\n iframe.style.width = '100vw';\n iframe.style.zIndex = '2147483647';\n iframe.addEventListener('load', function onLoad() {\n // Reset margin of iframe body\n iframe.contentDocument.body.style.margin = '0';\n props.onIframeLoad();\n });\n\n // We skip mounting and returns as we need to ensure\n // the load event is fired after we setup the global variable\n return iframe;\n}\n\n/**\n * Creates the main `div` element for the overlay to render.\n * @param {Document} document\n * @param {HTMLElement} root\n * @returns {HTMLDivElement}\n */\nfunction OverlayRoot(document, root) {\n const div = document.createElement('div');\n div.id = 'react-refresh-overlay-error';\n\n // Style the contents container\n div.style.backgroundColor = '#' + theme.grey;\n div.style.boxSizing = 'border-box';\n div.style.color = '#' + theme.white;\n div.style.fontFamily = [\n '-apple-system',\n 'BlinkMacSystemFont',\n '\"Segoe UI\"',\n '\"Helvetica Neue\"',\n 'Helvetica',\n 'Arial',\n 'sans-serif',\n '\"Apple Color Emoji\"',\n '\"Segoe UI Emoji\"',\n 'Segoe UI Symbol',\n ].join(', ');\n div.style.fontSize = '0.875rem';\n div.style.height = '100%';\n div.style.lineHeight = '1.3';\n div.style.overflow = 'auto';\n div.style.padding = '1rem 1.5rem 0';\n div.style.paddingTop = 'max(1rem, env(safe-area-inset-top))';\n div.style.paddingRight = 'max(1.5rem, env(safe-area-inset-right))';\n div.style.paddingBottom = 'env(safe-area-inset-bottom)';\n div.style.paddingLeft = 'max(1.5rem, env(safe-area-inset-left))';\n div.style.width = '100vw';\n\n root.appendChild(div);\n return div;\n}\n\n/**\n * Ensures the iframe root and the overlay root are both initialized before render.\n * If check fails, render will be deferred until both roots are initialized.\n * @param {RenderFn} renderFn A function that triggers a DOM render.\n * @returns {void}\n */\nfunction ensureRootExists(renderFn) {\n if (root) {\n // Overlay root is ready, we can render right away.\n renderFn();\n return;\n }\n\n // Creating an iframe may be asynchronous so we'll defer render.\n // In case of multiple calls, function from the last call will be used.\n scheduledRenderFn = renderFn;\n\n if (iframeRoot) {\n // Iframe is already ready, it will fire the load event.\n return;\n }\n\n // Create the iframe root, and, the overlay root inside it when it is ready.\n iframeRoot = IframeRoot(document, document.body, {\n onIframeLoad: function onIframeLoad() {\n rootDocument = iframeRoot.contentDocument;\n root = OverlayRoot(rootDocument, rootDocument.body);\n scheduledRenderFn();\n },\n });\n\n // We have to mount here to ensure `iframeRoot` is set when `onIframeLoad` fires.\n // This is because onIframeLoad() will be called synchronously\n // or asynchronously depending on the browser.\n document.body.appendChild(iframeRoot);\n}\n\n/**\n * Creates the main `div` element for the overlay to render.\n * @returns {void}\n */\nfunction render() {\n ensureRootExists(function () {\n const currentFocus = rootDocument.activeElement;\n let currentFocusId;\n if (currentFocus.localName === 'button' && currentFocus.id) {\n currentFocusId = currentFocus.id;\n }\n\n utils.removeAllChildren(root);\n\n if (currentCompileErrorMessage) {\n currentMode = 'compileError';\n\n CompileErrorContainer(rootDocument, root, {\n errorMessage: currentCompileErrorMessage,\n });\n } else if (currentRuntimeErrors.length) {\n currentMode = 'runtimeError';\n\n RuntimeErrorHeader(rootDocument, root, {\n currentErrorIndex: currentRuntimeErrorIndex,\n totalErrors: currentRuntimeErrors.length,\n });\n RuntimeErrorContainer(rootDocument, root, {\n currentError: currentRuntimeErrors[currentRuntimeErrorIndex],\n });\n RuntimeErrorFooter(rootDocument, root, {\n initialFocus: currentFocusId,\n multiple: currentRuntimeErrors.length > 1,\n onClickCloseButton: function onClose() {\n clearRuntimeErrors();\n },\n onClickNextButton: function onNext() {\n if (currentRuntimeErrorIndex === currentRuntimeErrors.length - 1) {\n return;\n }\n currentRuntimeErrorIndex += 1;\n ensureRootExists(render);\n },\n onClickPrevButton: function onPrev() {\n if (currentRuntimeErrorIndex === 0) {\n return;\n }\n currentRuntimeErrorIndex -= 1;\n ensureRootExists(render);\n },\n });\n }\n });\n}\n\n/**\n * Destroys the state of the overlay.\n * @returns {void}\n */\nfunction cleanup() {\n // Clean up and reset all internal state.\n document.body.removeChild(iframeRoot);\n scheduledRenderFn = null;\n root = null;\n iframeRoot = null;\n}\n\n/**\n * Clears Webpack compilation errors and dismisses the compile error overlay.\n * @returns {void}\n */\nfunction clearCompileError() {\n if (!root || currentMode !== 'compileError') {\n return;\n }\n\n currentCompileErrorMessage = '';\n currentMode = null;\n cleanup();\n}\n\n/**\n * Clears runtime error records and dismisses the runtime error overlay.\n * @param {boolean} [dismissOverlay] Whether to dismiss the overlay or not.\n * @returns {void}\n */\nfunction clearRuntimeErrors(dismissOverlay) {\n if (!root || currentMode !== 'runtimeError') {\n return;\n }\n\n currentRuntimeErrorIndex = 0;\n currentRuntimeErrors = [];\n\n if (typeof dismissOverlay === 'undefined' || dismissOverlay) {\n currentMode = null;\n cleanup();\n }\n}\n\n/**\n * Shows the compile error overlay with the specific Webpack error message.\n * @param {string} message\n * @returns {void}\n */\nfunction showCompileError(message) {\n if (!message) {\n return;\n }\n\n currentCompileErrorMessage = message;\n\n render();\n}\n\n/**\n * Shows the runtime error overlay with the specific error records.\n * @param {Error[]} errors\n * @returns {void}\n */\nfunction showRuntimeErrors(errors) {\n if (!errors || !errors.length) {\n return;\n }\n\n currentRuntimeErrors = errors;\n\n render();\n}\n\n/**\n * The debounced version of `showRuntimeErrors` to prevent frequent renders\n * due to rapid firing listeners.\n * @param {Error[]} errors\n * @returns {void}\n */\nconst debouncedShowRuntimeErrors = utils.debounce(showRuntimeErrors, 30);\n\n/**\n * Detects if an error is a Webpack compilation error.\n * @param {Error} error The error of interest.\n * @returns {boolean} If the error is a Webpack compilation error.\n */\nfunction isWebpackCompileError(error) {\n return /Module [A-z ]+\\(from/.test(error.message) || /Cannot find module/.test(error.message);\n}\n\n/**\n * Handles runtime error contexts captured with EventListeners.\n * Integrates with a runtime error overlay.\n * @param {Error} error A valid error object.\n * @returns {void}\n */\nfunction handleRuntimeError(error) {\n if (error && !isWebpackCompileError(error) && currentRuntimeErrors.indexOf(error) === -1) {\n currentRuntimeErrors = currentRuntimeErrors.concat(error);\n }\n debouncedShowRuntimeErrors(currentRuntimeErrors);\n}\n\nmodule.exports = Object.freeze({\n clearCompileError: clearCompileError,\n clearRuntimeErrors: clearRuntimeErrors,\n handleRuntimeError: handleRuntimeError,\n showCompileError: showCompileError,\n showRuntimeErrors: showRuntimeErrors,\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDU0OS5qcyIsIm1hcHBpbmdzIjoiQUFBQSwyQkFBMkIsbUJBQU8sQ0FBQyw4Q0FBb0M7QUFDdkUsMkJBQTJCLG1CQUFPLENBQUMsOENBQW9DO0FBQ3ZFLDhCQUE4QixtQkFBTyxDQUFDLGlEQUF1QztBQUM3RSw4QkFBOEIsbUJBQU8sQ0FBQyxnREFBdUM7QUFDN0UsY0FBYyxtQkFBTyxDQUFDLHFCQUFZO0FBQ2xDLGNBQWMsbUJBQU8sQ0FBQyxzQkFBWTs7QUFFbEM7QUFDQTtBQUNBLGFBQWE7QUFDYjs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTs7QUFFQTtBQUNBLGFBQWEsUUFBUTtBQUNyQixjQUFjLGtCQUFrQjtBQUNoQzs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFVBQVU7QUFDckIsV0FBVyxhQUFhO0FBQ3hCLFdBQVcsYUFBYTtBQUN4QixhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFdBQVcsVUFBVTtBQUNyQixXQUFXLGFBQWE7QUFDeEIsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsVUFBVTtBQUNyQixhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE9BQU87QUFDUCxNQUFNO0FBQ047O0FBRUE7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULE9BQU87QUFDUDtBQUNBLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxXQUFXLFNBQVM7QUFDcEIsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsV0FBVyxTQUFTO0FBQ3BCLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxTQUFTO0FBQ3BCLGFBQWE7QUFDYjtBQUNBOztBQUVBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEIsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovL0BzdGFubGVtb24vd2ViZGV2Ly4uLy4uL25vZGVfbW9kdWxlcy9AcG1tbXdoL3JlYWN0LXJlZnJlc2gtd2VicGFjay1wbHVnaW4vb3ZlcmxheS9pbmRleC5qcz9hZThkIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IFJ1bnRpbWVFcnJvckZvb3RlciA9IHJlcXVpcmUoJy4vY29tcG9uZW50cy9SdW50aW1lRXJyb3JGb290ZXIuanMnKTtcbmNvbnN0IFJ1bnRpbWVFcnJvckhlYWRlciA9IHJlcXVpcmUoJy4vY29tcG9uZW50cy9SdW50aW1lRXJyb3JIZWFkZXIuanMnKTtcbmNvbnN0IENvbXBpbGVFcnJvckNvbnRhaW5lciA9IHJlcXVpcmUoJy4vY29udGFpbmVycy9Db21waWxlRXJyb3JDb250YWluZXIuanMnKTtcbmNvbnN0IFJ1bnRpbWVFcnJvckNvbnRhaW5lciA9IHJlcXVpcmUoJy4vY29udGFpbmVycy9SdW50aW1lRXJyb3JDb250YWluZXIuanMnKTtcbmNvbnN0IHRoZW1lID0gcmVxdWlyZSgnLi90aGVtZS5qcycpO1xuY29uc3QgdXRpbHMgPSByZXF1aXJlKCcuL3V0aWxzLmpzJyk7XG5cbi8qKlxuICogQGNhbGxiYWNrIFJlbmRlckZuXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuXG4vKiA9PT09PSBDYWNoZWQgZWxlbWVudHMgZm9yIERPTSBtYW5pcHVsYXRpb25zID09PT09ICovXG4vKipcbiAqIFRoZSBpZnJhbWUgdGhhdCBjb250YWlucyB0aGUgb3ZlcmxheS5cbiAqIEB0eXBlIHtIVE1MSUZyYW1lRWxlbWVudH1cbiAqL1xubGV0IGlmcmFtZVJvb3QgPSBudWxsO1xuLyoqXG4gKiBUaGUgZG9jdW1lbnQgb2JqZWN0IGZyb20gdGhlIGlmcmFtZSByb290LCB1c2VkIHRvIGNyZWF0ZSBhbmQgcmVuZGVyIGVsZW1lbnRzLlxuICogQHR5cGUge0RvY3VtZW50fVxuICovXG5sZXQgcm9vdERvY3VtZW50ID0gbnVsbDtcbi8qKlxuICogVGhlIHJvb3QgZGl2IGVsZW1lbnRzIHdpbGwgYXR0YWNoIHRvLlxuICogQHR5cGUge0hUTUxEaXZFbGVtZW50fVxuICovXG5sZXQgcm9vdCA9IG51bGw7XG4vKipcbiAqIEEgQ2FjaGVkIGZ1bmN0aW9uIHRvIGFsbG93IGRlZmVycmVkIHJlbmRlci5cbiAqIEB0eXBlIHtSZW5kZXJGbiB8IG51bGx9XG4gKi9cbmxldCBzY2hlZHVsZWRSZW5kZXJGbiA9IG51bGw7XG5cbi8qID09PT09IE92ZXJsYXkgU3RhdGUgPT09PT0gKi9cbi8qKlxuICogVGhlIGxhdGVzdCBlcnJvciBtZXNzYWdlIGZyb20gV2VicGFjayBjb21waWxhdGlvbi5cbiAqIEB0eXBlIHtzdHJpbmd9XG4gKi9cbmxldCBjdXJyZW50Q29tcGlsZUVycm9yTWVzc2FnZSA9ICcnO1xuLyoqXG4gKiBJbmRleCBvZiB0aGUgZXJyb3IgY3VycmVudGx5IHNob3duIGJ5IHRoZSBvdmVybGF5LlxuICogQHR5cGUge251bWJlcn1cbiAqL1xubGV0IGN1cnJlbnRSdW50aW1lRXJyb3JJbmRleCA9IDA7XG4vKipcbiAqIFRoZSBsYXRlc3QgcnVudGltZSBlcnJvciBvYmplY3RzLlxuICogQHR5cGUge0Vycm9yW119XG4gKi9cbmxldCBjdXJyZW50UnVudGltZUVycm9ycyA9IFtdO1xuLyoqXG4gKiBUaGUgcmVuZGVyIG1vZGUgdGhlIG92ZXJsYXkgaXMgY3VycmVudGx5IGluLlxuICogQHR5cGUgeydjb21waWxlRXJyb3InIHwgJ3J1bnRpbWVFcnJvcicgfCBudWxsfVxuICovXG5sZXQgY3VycmVudE1vZGUgPSBudWxsO1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IElmcmFtZVByb3BzXG4gKiBAcHJvcGVydHkge2Z1bmN0aW9uKCk6IHZvaWR9IG9uSWZyYW1lTG9hZFxuICovXG5cbi8qKlxuICogQ3JlYXRlcyB0aGUgbWFpbiBgaWZyYW1lYCB0aGUgb3ZlcmxheSB3aWxsIGF0dGFjaCB0by5cbiAqIEFjY2VwdHMgYSBjYWxsYmFjayB0byBiZSByYW4gYWZ0ZXIgaWZyYW1lIGlzIGluaXRpYWxpemVkLlxuICogQHBhcmFtIHtEb2N1bWVudH0gZG9jdW1lbnRcbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IHJvb3RcbiAqIEBwYXJhbSB7SWZyYW1lUHJvcHN9IHByb3BzXG4gKiBAcmV0dXJucyB7SFRNTElGcmFtZUVsZW1lbnR9XG4gKi9cbmZ1bmN0aW9uIElmcmFtZVJvb3QoZG9jdW1lbnQsIHJvb3QsIHByb3BzKSB7XG4gIGNvbnN0IGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpO1xuICBpZnJhbWUuaWQgPSAncmVhY3QtcmVmcmVzaC1vdmVybGF5JztcbiAgaWZyYW1lLnNyYyA9ICdhYm91dDpibGFuayc7XG5cbiAgaWZyYW1lLnN0eWxlLmJvcmRlciA9ICdub25lJztcbiAgaWZyYW1lLnN0eWxlLmhlaWdodCA9ICcxMDAlJztcbiAgaWZyYW1lLnN0eWxlLmxlZnQgPSAnMCc7XG4gIGlmcmFtZS5zdHlsZS5taW5IZWlnaHQgPSAnMTAwdmgnO1xuICBpZnJhbWUuc3R5bGUubWluSGVpZ2h0ID0gJy13ZWJraXQtZmlsbC1hdmFpbGFibGUnO1xuICBpZnJhbWUuc3R5bGUucG9zaXRpb24gPSAnZml4ZWQnO1xuICBpZnJhbWUuc3R5bGUudG9wID0gJzAnO1xuICBpZnJhbWUuc3R5bGUud2lkdGggPSAnMTAwdncnO1xuICBpZnJhbWUuc3R5bGUuekluZGV4ID0gJzIxNDc0ODM2NDcnO1xuICBpZnJhbWUuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uIG9uTG9hZCgpIHtcbiAgICAvLyBSZXNldCBtYXJnaW4gb2YgaWZyYW1lIGJvZHlcbiAgICBpZnJhbWUuY29udGVudERvY3VtZW50LmJvZHkuc3R5bGUubWFyZ2luID0gJzAnO1xuICAgIHByb3BzLm9uSWZyYW1lTG9hZCgpO1xuICB9KTtcblxuICAvLyBXZSBza2lwIG1vdW50aW5nIGFuZCByZXR1cm5zIGFzIHdlIG5lZWQgdG8gZW5zdXJlXG4gIC8vIHRoZSBsb2FkIGV2ZW50IGlzIGZpcmVkIGFmdGVyIHdlIHNldHVwIHRoZSBnbG9iYWwgdmFyaWFibGVcbiAgcmV0dXJuIGlmcmFtZTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIHRoZSBtYWluIGBkaXZgIGVsZW1lbnQgZm9yIHRoZSBvdmVybGF5IHRvIHJlbmRlci5cbiAqIEBwYXJhbSB7RG9jdW1lbnR9IGRvY3VtZW50XG4gKiBAcGFyYW0ge0hUTUxFbGVtZW50fSByb290XG4gKiBAcmV0dXJucyB7SFRNTERpdkVsZW1lbnR9XG4gKi9cbmZ1bmN0aW9uIE92ZXJsYXlSb290KGRvY3VtZW50LCByb290KSB7XG4gIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICBkaXYuaWQgPSAncmVhY3QtcmVmcmVzaC1vdmVybGF5LWVycm9yJztcblxuICAvLyBTdHlsZSB0aGUgY29udGVudHMgY29udGFpbmVyXG4gIGRpdi5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAnIycgKyB0aGVtZS5ncmV5O1xuICBkaXYuc3R5bGUuYm94U2l6aW5nID0gJ2JvcmRlci1ib3gnO1xuICBkaXYuc3R5bGUuY29sb3IgPSAnIycgKyB0aGVtZS53aGl0ZTtcbiAgZGl2LnN0eWxlLmZvbnRGYW1pbHkgPSBbXG4gICAgJy1hcHBsZS1zeXN0ZW0nLFxuICAgICdCbGlua01hY1N5c3RlbUZvbnQnLFxuICAgICdcIlNlZ29lIFVJXCInLFxuICAgICdcIkhlbHZldGljYSBOZXVlXCInLFxuICAgICdIZWx2ZXRpY2EnLFxuICAgICdBcmlhbCcsXG4gICAgJ3NhbnMtc2VyaWYnLFxuICAgICdcIkFwcGxlIENvbG9yIEVtb2ppXCInLFxuICAgICdcIlNlZ29lIFVJIEVtb2ppXCInLFxuICAgICdTZWdvZSBVSSBTeW1ib2wnLFxuICBdLmpvaW4oJywgJyk7XG4gIGRpdi5zdHlsZS5mb250U2l6ZSA9ICcwLjg3NXJlbSc7XG4gIGRpdi5zdHlsZS5oZWlnaHQgPSAnMTAwJSc7XG4gIGRpdi5zdHlsZS5saW5lSGVpZ2h0ID0gJzEuMyc7XG4gIGRpdi5zdHlsZS5vdmVyZmxvdyA9ICdhdXRvJztcbiAgZGl2LnN0eWxlLnBhZGRpbmcgPSAnMXJlbSAxLjVyZW0gMCc7XG4gIGRpdi5zdHlsZS5wYWRkaW5nVG9wID0gJ21heCgxcmVtLCBlbnYoc2FmZS1hcmVhLWluc2V0LXRvcCkpJztcbiAgZGl2LnN0eWxlLnBhZGRpbmdSaWdodCA9ICdtYXgoMS41cmVtLCBlbnYoc2FmZS1hcmVhLWluc2V0LXJpZ2h0KSknO1xuICBkaXYuc3R5bGUucGFkZGluZ0JvdHRvbSA9ICdlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSknO1xuICBkaXYuc3R5bGUucGFkZGluZ0xlZnQgPSAnbWF4KDEuNXJlbSwgZW52KHNhZmUtYXJlYS1pbnNldC1sZWZ0KSknO1xuICBkaXYuc3R5bGUud2lkdGggPSAnMTAwdncnO1xuXG4gIHJvb3QuYXBwZW5kQ2hpbGQoZGl2KTtcbiAgcmV0dXJuIGRpdjtcbn1cblxuLyoqXG4gKiBFbnN1cmVzIHRoZSBpZnJhbWUgcm9vdCBhbmQgdGhlIG92ZXJsYXkgcm9vdCBhcmUgYm90aCBpbml0aWFsaXplZCBiZWZvcmUgcmVuZGVyLlxuICogSWYgY2hlY2sgZmFpbHMsIHJlbmRlciB3aWxsIGJlIGRlZmVycmVkIHVudGlsIGJvdGggcm9vdHMgYXJlIGluaXRpYWxpemVkLlxuICogQHBhcmFtIHtSZW5kZXJGbn0gcmVuZGVyRm4gQSBmdW5jdGlvbiB0aGF0IHRyaWdnZXJzIGEgRE9NIHJlbmRlci5cbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5mdW5jdGlvbiBlbnN1cmVSb290RXhpc3RzKHJlbmRlckZuKSB7XG4gIGlmIChyb290KSB7XG4gICAgLy8gT3ZlcmxheSByb290IGlzIHJlYWR5LCB3ZSBjYW4gcmVuZGVyIHJpZ2h0IGF3YXkuXG4gICAgcmVuZGVyRm4oKTtcbiAgICByZXR1cm47XG4gIH1cblxuICAvLyBDcmVhdGluZyBhbiBpZnJhbWUgbWF5IGJlIGFzeW5jaHJvbm91cyBzbyB3ZSdsbCBkZWZlciByZW5kZXIuXG4gIC8vIEluIGNhc2Ugb2YgbXVsdGlwbGUgY2FsbHMsIGZ1bmN0aW9uIGZyb20gdGhlIGxhc3QgY2FsbCB3aWxsIGJlIHVzZWQuXG4gIHNjaGVkdWxlZFJlbmRlckZuID0gcmVuZGVyRm47XG5cbiAgaWYgKGlmcmFtZVJvb3QpIHtcbiAgICAvLyBJZnJhbWUgaXMgYWxyZWFkeSByZWFkeSwgaXQgd2lsbCBmaXJlIHRoZSBsb2FkIGV2ZW50LlxuICAgIHJldHVybjtcbiAgfVxuXG4gIC8vIENyZWF0ZSB0aGUgaWZyYW1lIHJvb3QsIGFuZCwgdGhlIG92ZXJsYXkgcm9vdCBpbnNpZGUgaXQgd2hlbiBpdCBpcyByZWFkeS5cbiAgaWZyYW1lUm9vdCA9IElmcmFtZVJvb3QoZG9jdW1lbnQsIGRvY3VtZW50LmJvZHksIHtcbiAgICBvbklmcmFtZUxvYWQ6IGZ1bmN0aW9uIG9uSWZyYW1lTG9hZCgpIHtcbiAgICAgIHJvb3REb2N1bWVudCA9IGlmcmFtZVJvb3QuY29udGVudERvY3VtZW50O1xuICAgICAgcm9vdCA9IE92ZXJsYXlSb290KHJvb3REb2N1bWVudCwgcm9vdERvY3VtZW50LmJvZHkpO1xuICAgICAgc2NoZWR1bGVkUmVuZGVyRm4oKTtcbiAgICB9LFxuICB9KTtcblxuICAvLyBXZSBoYXZlIHRvIG1vdW50IGhlcmUgdG8gZW5zdXJlIGBpZnJhbWVSb290YCBpcyBzZXQgd2hlbiBgb25JZnJhbWVMb2FkYCBmaXJlcy5cbiAgLy8gVGhpcyBpcyBiZWNhdXNlIG9uSWZyYW1lTG9hZCgpIHdpbGwgYmUgY2FsbGVkIHN5bmNocm9ub3VzbHlcbiAgLy8gb3IgYXN5bmNocm9ub3VzbHkgZGVwZW5kaW5nIG9uIHRoZSBicm93c2VyLlxuICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZVJvb3QpO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgdGhlIG1haW4gYGRpdmAgZWxlbWVudCBmb3IgdGhlIG92ZXJsYXkgdG8gcmVuZGVyLlxuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgZW5zdXJlUm9vdEV4aXN0cyhmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgY3VycmVudEZvY3VzID0gcm9vdERvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG4gICAgbGV0IGN1cnJlbnRGb2N1c0lkO1xuICAgIGlmIChjdXJyZW50Rm9jdXMubG9jYWxOYW1lID09PSAnYnV0dG9uJyAmJiBjdXJyZW50Rm9jdXMuaWQpIHtcbiAgICAgIGN1cnJlbnRGb2N1c0lkID0gY3VycmVudEZvY3VzLmlkO1xuICAgIH1cblxuICAgIHV0aWxzLnJlbW92ZUFsbENoaWxkcmVuKHJvb3QpO1xuXG4gICAgaWYgKGN1cnJlbnRDb21waWxlRXJyb3JNZXNzYWdlKSB7XG4gICAgICBjdXJyZW50TW9kZSA9ICdjb21waWxlRXJyb3InO1xuXG4gICAgICBDb21waWxlRXJyb3JDb250YWluZXIocm9vdERvY3VtZW50LCByb290LCB7XG4gICAgICAgIGVycm9yTWVzc2FnZTogY3VycmVudENvbXBpbGVFcnJvck1lc3NhZ2UsXG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKGN1cnJlbnRSdW50aW1lRXJyb3JzLmxlbmd0aCkge1xuICAgICAgY3VycmVudE1vZGUgPSAncnVudGltZUVycm9yJztcblxuICAgICAgUnVudGltZUVycm9ySGVhZGVyKHJvb3REb2N1bWVudCwgcm9vdCwge1xuICAgICAgICBjdXJyZW50RXJyb3JJbmRleDogY3VycmVudFJ1bnRpbWVFcnJvckluZGV4LFxuICAgICAgICB0b3RhbEVycm9yczogY3VycmVudFJ1bnRpbWVFcnJvcnMubGVuZ3RoLFxuICAgICAgfSk7XG4gICAgICBSdW50aW1lRXJyb3JDb250YWluZXIocm9vdERvY3VtZW50LCByb290LCB7XG4gICAgICAgIGN1cnJlbnRFcnJvcjogY3VycmVudFJ1bnRpbWVFcnJvcnNbY3VycmVudFJ1bnRpbWVFcnJvckluZGV4XSxcbiAgICAgIH0pO1xuICAgICAgUnVudGltZUVycm9yRm9vdGVyKHJvb3REb2N1bWVudCwgcm9vdCwge1xuICAgICAgICBpbml0aWFsRm9jdXM6IGN1cnJlbnRGb2N1c0lkLFxuICAgICAgICBtdWx0aXBsZTogY3VycmVudFJ1bnRpbWVFcnJvcnMubGVuZ3RoID4gMSxcbiAgICAgICAgb25DbGlja0Nsb3NlQnV0dG9uOiBmdW5jdGlvbiBvbkNsb3NlKCkge1xuICAgICAgICAgIGNsZWFyUnVudGltZUVycm9ycygpO1xuICAgICAgICB9LFxuICAgICAgICBvbkNsaWNrTmV4dEJ1dHRvbjogZnVuY3Rpb24gb25OZXh0KCkge1xuICAgICAgICAgIGlmIChjdXJyZW50UnVudGltZUVycm9ySW5kZXggPT09IGN1cnJlbnRSdW50aW1lRXJyb3JzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgY3VycmVudFJ1bnRpbWVFcnJvckluZGV4ICs9IDE7XG4gICAgICAgICAgZW5zdXJlUm9vdEV4aXN0cyhyZW5kZXIpO1xuICAgICAgICB9LFxuICAgICAgICBvbkNsaWNrUHJldkJ1dHRvbjogZnVuY3Rpb24gb25QcmV2KCkge1xuICAgICAgICAgIGlmIChjdXJyZW50UnVudGltZUVycm9ySW5kZXggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgY3VycmVudFJ1bnRpbWVFcnJvckluZGV4IC09IDE7XG4gICAgICAgICAgZW5zdXJlUm9vdEV4aXN0cyhyZW5kZXIpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuICB9KTtcbn1cblxuLyoqXG4gKiBEZXN0cm95cyB0aGUgc3RhdGUgb2YgdGhlIG92ZXJsYXkuXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZnVuY3Rpb24gY2xlYW51cCgpIHtcbiAgLy8gQ2xlYW4gdXAgYW5kIHJlc2V0IGFsbCBpbnRlcm5hbCBzdGF0ZS5cbiAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChpZnJhbWVSb290KTtcbiAgc2NoZWR1bGVkUmVuZGVyRm4gPSBudWxsO1xuICByb290ID0gbnVsbDtcbiAgaWZyYW1lUm9vdCA9IG51bGw7XG59XG5cbi8qKlxuICogQ2xlYXJzIFdlYnBhY2sgY29tcGlsYXRpb24gZXJyb3JzIGFuZCBkaXNtaXNzZXMgdGhlIGNvbXBpbGUgZXJyb3Igb3ZlcmxheS5cbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5mdW5jdGlvbiBjbGVhckNvbXBpbGVFcnJvcigpIHtcbiAgaWYgKCFyb290IHx8IGN1cnJlbnRNb2RlICE9PSAnY29tcGlsZUVycm9yJykge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGN1cnJlbnRDb21waWxlRXJyb3JNZXNzYWdlID0gJyc7XG4gIGN1cnJlbnRNb2RlID0gbnVsbDtcbiAgY2xlYW51cCgpO1xufVxuXG4vKipcbiAqIENsZWFycyBydW50aW1lIGVycm9yIHJlY29yZHMgYW5kIGRpc21pc3NlcyB0aGUgcnVudGltZSBlcnJvciBvdmVybGF5LlxuICogQHBhcmFtIHtib29sZWFufSBbZGlzbWlzc092ZXJsYXldIFdoZXRoZXIgdG8gZGlzbWlzcyB0aGUgb3ZlcmxheSBvciBub3QuXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZnVuY3Rpb24gY2xlYXJSdW50aW1lRXJyb3JzKGRpc21pc3NPdmVybGF5KSB7XG4gIGlmICghcm9vdCB8fCBjdXJyZW50TW9kZSAhPT0gJ3J1bnRpbWVFcnJvcicpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjdXJyZW50UnVudGltZUVycm9ySW5kZXggPSAwO1xuICBjdXJyZW50UnVudGltZUVycm9ycyA9IFtdO1xuXG4gIGlmICh0eXBlb2YgZGlzbWlzc092ZXJsYXkgPT09ICd1bmRlZmluZWQnIHx8IGRpc21pc3NPdmVybGF5KSB7XG4gICAgY3VycmVudE1vZGUgPSBudWxsO1xuICAgIGNsZWFudXAoKTtcbiAgfVxufVxuXG4vKipcbiAqIFNob3dzIHRoZSBjb21waWxlIGVycm9yIG92ZXJsYXkgd2l0aCB0aGUgc3BlY2lmaWMgV2VicGFjayBlcnJvciBtZXNzYWdlLlxuICogQHBhcmFtIHtzdHJpbmd9IG1lc3NhZ2VcbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5mdW5jdGlvbiBzaG93Q29tcGlsZUVycm9yKG1lc3NhZ2UpIHtcbiAgaWYgKCFtZXNzYWdlKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY3VycmVudENvbXBpbGVFcnJvck1lc3NhZ2UgPSBtZXNzYWdlO1xuXG4gIHJlbmRlcigpO1xufVxuXG4vKipcbiAqIFNob3dzIHRoZSBydW50aW1lIGVycm9yIG92ZXJsYXkgd2l0aCB0aGUgc3BlY2lmaWMgZXJyb3IgcmVjb3Jkcy5cbiAqIEBwYXJhbSB7RXJyb3JbXX0gZXJyb3JzXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZnVuY3Rpb24gc2hvd1J1bnRpbWVFcnJvcnMoZXJyb3JzKSB7XG4gIGlmICghZXJyb3JzIHx8ICFlcnJvcnMubGVuZ3RoKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY3VycmVudFJ1bnRpbWVFcnJvcnMgPSBlcnJvcnM7XG5cbiAgcmVuZGVyKCk7XG59XG5cbi8qKlxuICogVGhlIGRlYm91bmNlZCB2ZXJzaW9uIG9mIGBzaG93UnVudGltZUVycm9yc2AgdG8gcHJldmVudCBmcmVxdWVudCByZW5kZXJzXG4gKiBkdWUgdG8gcmFwaWQgZmlyaW5nIGxpc3RlbmVycy5cbiAqIEBwYXJhbSB7RXJyb3JbXX0gZXJyb3JzXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuY29uc3QgZGVib3VuY2VkU2hvd1J1bnRpbWVFcnJvcnMgPSB1dGlscy5kZWJvdW5jZShzaG93UnVudGltZUVycm9ycywgMzApO1xuXG4vKipcbiAqIERldGVjdHMgaWYgYW4gZXJyb3IgaXMgYSBXZWJwYWNrIGNvbXBpbGF0aW9uIGVycm9yLlxuICogQHBhcmFtIHtFcnJvcn0gZXJyb3IgVGhlIGVycm9yIG9mIGludGVyZXN0LlxuICogQHJldHVybnMge2Jvb2xlYW59IElmIHRoZSBlcnJvciBpcyBhIFdlYnBhY2sgY29tcGlsYXRpb24gZXJyb3IuXG4gKi9cbmZ1bmN0aW9uIGlzV2VicGFja0NvbXBpbGVFcnJvcihlcnJvcikge1xuICByZXR1cm4gL01vZHVsZSBbQS16IF0rXFwoZnJvbS8udGVzdChlcnJvci5tZXNzYWdlKSB8fCAvQ2Fubm90IGZpbmQgbW9kdWxlLy50ZXN0KGVycm9yLm1lc3NhZ2UpO1xufVxuXG4vKipcbiAqIEhhbmRsZXMgcnVudGltZSBlcnJvciBjb250ZXh0cyBjYXB0dXJlZCB3aXRoIEV2ZW50TGlzdGVuZXJzLlxuICogSW50ZWdyYXRlcyB3aXRoIGEgcnVudGltZSBlcnJvciBvdmVybGF5LlxuICogQHBhcmFtIHtFcnJvcn0gZXJyb3IgQSB2YWxpZCBlcnJvciBvYmplY3QuXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZnVuY3Rpb24gaGFuZGxlUnVudGltZUVycm9yKGVycm9yKSB7XG4gIGlmIChlcnJvciAmJiAhaXNXZWJwYWNrQ29tcGlsZUVycm9yKGVycm9yKSAmJiBjdXJyZW50UnVudGltZUVycm9ycy5pbmRleE9mKGVycm9yKSA9PT0gLTEpIHtcbiAgICBjdXJyZW50UnVudGltZUVycm9ycyA9IGN1cnJlbnRSdW50aW1lRXJyb3JzLmNvbmNhdChlcnJvcik7XG4gIH1cbiAgZGVib3VuY2VkU2hvd1J1bnRpbWVFcnJvcnMoY3VycmVudFJ1bnRpbWVFcnJvcnMpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IE9iamVjdC5mcmVlemUoe1xuICBjbGVhckNvbXBpbGVFcnJvcjogY2xlYXJDb21waWxlRXJyb3IsXG4gIGNsZWFyUnVudGltZUVycm9yczogY2xlYXJSdW50aW1lRXJyb3JzLFxuICBoYW5kbGVSdW50aW1lRXJyb3I6IGhhbmRsZVJ1bnRpbWVFcnJvcixcbiAgc2hvd0NvbXBpbGVFcnJvcjogc2hvd0NvbXBpbGVFcnJvcixcbiAgc2hvd1J1bnRpbWVFcnJvcnM6IHNob3dSdW50aW1lRXJyb3JzLFxufSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///4549\n");
|
|
1419
1419
|
|
|
1420
1420
|
/***/ }),
|
|
1421
1421
|
|
|
@@ -1425,7 +1425,7 @@ eval("const RuntimeErrorFooter = __webpack_require__(/*! ./components/RuntimeErr
|
|
|
1425
1425
|
\********************************************************************************/
|
|
1426
1426
|
/***/ ((module) => {
|
|
1427
1427
|
|
|
1428
|
-
eval("/**\n * @typedef {Object} Theme\n * @property {string[]} reset\n * @property {string} black\n * @property {string} red\n * @property {string} green\n * @property {string} yellow\n * @property {string} blue\n * @property {string} magenta\n * @property {string} cyan\n * @property {string} white\n * @property {string} lightgrey\n * @property {string} darkgrey\n * @property {string} grey\n * @property {string} dimgrey\n */\n\n/**\n * @type {Theme} theme\n * A collection of colors to be used by the overlay.\n * Partially adopted from Tomorrow Night Bright.\n */\nconst theme = {\n reset: ['transparent', 'transparent'],\n black: '000000',\n red: 'D34F56',\n green: 'B9C954',\n yellow: 'E6C452',\n blue: '7CA7D8',\n magenta: 'C299D6',\n cyan: '73BFB1',\n white: 'FFFFFF',\n lightgrey: 'C7C7C7',\n darkgrey: 'A9A9A9',\n grey: '474747',\n dimgrey: '343434',\n};\n\nmodule.exports = theme;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODIyLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0EsYUFBYSxRQUFRO0FBQ3JCLGNBQWMsVUFBVTtBQUN4QixjQUFjLFFBQVE7QUFDdEIsY0FBYyxRQUFRO0FBQ3RCLGNBQWMsUUFBUTtBQUN0QixjQUFjLFFBQVE7QUFDdEIsY0FBYyxRQUFRO0FBQ3RCLGNBQWMsUUFBUTtBQUN0QixjQUFjLFFBQVE7QUFDdEIsY0FBYyxRQUFRO0FBQ3RCLGNBQWMsUUFBUTtBQUN0QixjQUFjLFFBQVE7QUFDdEIsY0FBYyxRQUFRO0FBQ3RCLGNBQWMsUUFBUTtBQUN0Qjs7QUFFQTtBQUNBLFVBQVUsT0FBTztBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ac3RhbmxlbW9uL3dlYmRldi8uLi8uLi9ub2RlX21vZHVsZXMvQHBtbW13aC9yZWFjdC1yZWZyZXNoLXdlYnBhY2stcGx1Z2luL292ZXJsYXkvdGhlbWUuanM/
|
|
1428
|
+
eval("/**\n * @typedef {Object} Theme\n * @property {string[]} reset\n * @property {string} black\n * @property {string} red\n * @property {string} green\n * @property {string} yellow\n * @property {string} blue\n * @property {string} magenta\n * @property {string} cyan\n * @property {string} white\n * @property {string} lightgrey\n * @property {string} darkgrey\n * @property {string} grey\n * @property {string} dimgrey\n */\n\n/**\n * @type {Theme} theme\n * A collection of colors to be used by the overlay.\n * Partially adopted from Tomorrow Night Bright.\n */\nconst theme = {\n reset: ['transparent', 'transparent'],\n black: '000000',\n red: 'D34F56',\n green: 'B9C954',\n yellow: 'E6C452',\n blue: '7CA7D8',\n magenta: 'C299D6',\n cyan: '73BFB1',\n white: 'FFFFFF',\n lightgrey: 'C7C7C7',\n darkgrey: 'A9A9A9',\n grey: '474747',\n dimgrey: '343434',\n};\n\nmodule.exports = theme;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODIyLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0EsYUFBYSxRQUFRO0FBQ3JCLGNBQWMsVUFBVTtBQUN4QixjQUFjLFFBQVE7QUFDdEIsY0FBYyxRQUFRO0FBQ3RCLGNBQWMsUUFBUTtBQUN0QixjQUFjLFFBQVE7QUFDdEIsY0FBYyxRQUFRO0FBQ3RCLGNBQWMsUUFBUTtBQUN0QixjQUFjLFFBQVE7QUFDdEIsY0FBYyxRQUFRO0FBQ3RCLGNBQWMsUUFBUTtBQUN0QixjQUFjLFFBQVE7QUFDdEIsY0FBYyxRQUFRO0FBQ3RCLGNBQWMsUUFBUTtBQUN0Qjs7QUFFQTtBQUNBLFVBQVUsT0FBTztBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ac3RhbmxlbW9uL3dlYmRldi8uLi8uLi9ub2RlX21vZHVsZXMvQHBtbW13aC9yZWFjdC1yZWZyZXNoLXdlYnBhY2stcGx1Z2luL292ZXJsYXkvdGhlbWUuanM/MDIzNyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IFRoZW1lXG4gKiBAcHJvcGVydHkge3N0cmluZ1tdfSByZXNldFxuICogQHByb3BlcnR5IHtzdHJpbmd9IGJsYWNrXG4gKiBAcHJvcGVydHkge3N0cmluZ30gcmVkXG4gKiBAcHJvcGVydHkge3N0cmluZ30gZ3JlZW5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSB5ZWxsb3dcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBibHVlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gbWFnZW50YVxuICogQHByb3BlcnR5IHtzdHJpbmd9IGN5YW5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSB3aGl0ZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IGxpZ2h0Z3JleVxuICogQHByb3BlcnR5IHtzdHJpbmd9IGRhcmtncmV5XG4gKiBAcHJvcGVydHkge3N0cmluZ30gZ3JleVxuICogQHByb3BlcnR5IHtzdHJpbmd9IGRpbWdyZXlcbiAqL1xuXG4vKipcbiAqIEB0eXBlIHtUaGVtZX0gdGhlbWVcbiAqIEEgY29sbGVjdGlvbiBvZiBjb2xvcnMgdG8gYmUgdXNlZCBieSB0aGUgb3ZlcmxheS5cbiAqIFBhcnRpYWxseSBhZG9wdGVkIGZyb20gVG9tb3Jyb3cgTmlnaHQgQnJpZ2h0LlxuICovXG5jb25zdCB0aGVtZSA9IHtcbiAgcmVzZXQ6IFsndHJhbnNwYXJlbnQnLCAndHJhbnNwYXJlbnQnXSxcbiAgYmxhY2s6ICcwMDAwMDAnLFxuICByZWQ6ICdEMzRGNTYnLFxuICBncmVlbjogJ0I5Qzk1NCcsXG4gIHllbGxvdzogJ0U2QzQ1MicsXG4gIGJsdWU6ICc3Q0E3RDgnLFxuICBtYWdlbnRhOiAnQzI5OUQ2JyxcbiAgY3lhbjogJzczQkZCMScsXG4gIHdoaXRlOiAnRkZGRkZGJyxcbiAgbGlnaHRncmV5OiAnQzdDN0M3JyxcbiAgZGFya2dyZXk6ICdBOUE5QTknLFxuICBncmV5OiAnNDc0NzQ3JyxcbiAgZGltZ3JleTogJzM0MzQzNCcsXG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IHRoZW1lO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///822\n");
|
|
1429
1429
|
|
|
1430
1430
|
/***/ }),
|
|
1431
1431
|
|
|
@@ -1435,7 +1435,7 @@ eval("/**\n * @typedef {Object} Theme\n * @property {string[]} reset\n * @proper
|
|
|
1435
1435
|
\********************************************************************************/
|
|
1436
1436
|
/***/ ((module) => {
|
|
1437
1437
|
|
|
1438
|
-
eval("/**\n * Debounce a function to delay invoking until wait (ms) have elapsed since the last invocation.\n * @param {function(...*): *} fn The function to be debounced.\n * @param {number} wait Milliseconds to wait before invoking again.\n * @return {function(...*): void} The debounced function.\n */\nfunction debounce(fn, wait) {\n /**\n * A cached setTimeout handler.\n * @type {number | undefined}\n */\n let timer;\n\n /**\n * @returns {void}\n */\n function debounced() {\n const context = this;\n const args = arguments;\n\n clearTimeout(timer);\n timer = setTimeout(function () {\n return fn.apply(context, args);\n }, wait);\n }\n\n return debounced;\n}\n\n/**\n * Prettify a filename from error stacks into the desired format.\n * @param {string} filename The filename to be formatted.\n * @returns {string} The formatted filename.\n */\nfunction formatFilename(filename) {\n // Strip away protocol and domain for compiled files\n const htmlMatch = /^https?:\\/\\/(.*)\\/(.*)/.exec(filename);\n if (htmlMatch && htmlMatch[1] && htmlMatch[2]) {\n return htmlMatch[2];\n }\n\n // Strip everything before the first directory for source files\n const sourceMatch = /\\/.*?([^./]+[/|\\\\].*)$/.exec(filename);\n if (sourceMatch && sourceMatch[1]) {\n return sourceMatch[1].replace(/\\?$/, '');\n }\n\n // Unknown filename type, use it as is\n return filename;\n}\n\n/**\n * Remove all children of an element.\n * @param {HTMLElement} element A valid HTML element.\n * @param {number} [skip] Number of elements to skip removing.\n * @returns {void}\n */\nfunction removeAllChildren(element, skip) {\n /** @type {Node[]} */\n const childList = Array.prototype.slice.call(\n element.childNodes,\n typeof skip !== 'undefined' ? skip : 0\n );\n\n for (let i = 0; i < childList.length; i += 1) {\n element.removeChild(childList[i]);\n }\n}\n\nmodule.exports = {\n debounce: debounce,\n formatFilename: formatFilename,\n removeAllChildren: removeAllChildren,\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
1438
|
+
eval("/**\n * Debounce a function to delay invoking until wait (ms) have elapsed since the last invocation.\n * @param {function(...*): *} fn The function to be debounced.\n * @param {number} wait Milliseconds to wait before invoking again.\n * @return {function(...*): void} The debounced function.\n */\nfunction debounce(fn, wait) {\n /**\n * A cached setTimeout handler.\n * @type {number | undefined}\n */\n let timer;\n\n /**\n * @returns {void}\n */\n function debounced() {\n const context = this;\n const args = arguments;\n\n clearTimeout(timer);\n timer = setTimeout(function () {\n return fn.apply(context, args);\n }, wait);\n }\n\n return debounced;\n}\n\n/**\n * Prettify a filename from error stacks into the desired format.\n * @param {string} filename The filename to be formatted.\n * @returns {string} The formatted filename.\n */\nfunction formatFilename(filename) {\n // Strip away protocol and domain for compiled files\n const htmlMatch = /^https?:\\/\\/(.*)\\/(.*)/.exec(filename);\n if (htmlMatch && htmlMatch[1] && htmlMatch[2]) {\n return htmlMatch[2];\n }\n\n // Strip everything before the first directory for source files\n const sourceMatch = /\\/.*?([^./]+[/|\\\\].*)$/.exec(filename);\n if (sourceMatch && sourceMatch[1]) {\n return sourceMatch[1].replace(/\\?$/, '');\n }\n\n // Unknown filename type, use it as is\n return filename;\n}\n\n/**\n * Remove all children of an element.\n * @param {HTMLElement} element A valid HTML element.\n * @param {number} [skip] Number of elements to skip removing.\n * @returns {void}\n */\nfunction removeAllChildren(element, skip) {\n /** @type {Node[]} */\n const childList = Array.prototype.slice.call(\n element.childNodes,\n typeof skip !== 'undefined' ? skip : 0\n );\n\n for (let i = 0; i < childList.length; i += 1) {\n element.removeChild(childList[i]);\n }\n}\n\nmodule.exports = {\n debounce: debounce,\n formatFilename: formatFilename,\n removeAllChildren: removeAllChildren,\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDcyNS5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0EsV0FBVyxtQkFBbUI7QUFDOUIsV0FBVyxRQUFRO0FBQ25CLFlBQVksc0JBQXNCO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7O0FBRUE7QUFDQSxlQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFdBQVcsYUFBYTtBQUN4QixXQUFXLFFBQVE7QUFDbkIsYUFBYTtBQUNiO0FBQ0E7QUFDQSxhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsa0JBQWtCLHNCQUFzQjtBQUN4QztBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL0BzdGFubGVtb24vd2ViZGV2Ly4uLy4uL25vZGVfbW9kdWxlcy9AcG1tbXdoL3JlYWN0LXJlZnJlc2gtd2VicGFjay1wbHVnaW4vb3ZlcmxheS91dGlscy5qcz8xMWYxIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRGVib3VuY2UgYSBmdW5jdGlvbiB0byBkZWxheSBpbnZva2luZyB1bnRpbCB3YWl0IChtcykgaGF2ZSBlbGFwc2VkIHNpbmNlIHRoZSBsYXN0IGludm9jYXRpb24uXG4gKiBAcGFyYW0ge2Z1bmN0aW9uKC4uLiopOiAqfSBmbiBUaGUgZnVuY3Rpb24gdG8gYmUgZGVib3VuY2VkLlxuICogQHBhcmFtIHtudW1iZXJ9IHdhaXQgTWlsbGlzZWNvbmRzIHRvIHdhaXQgYmVmb3JlIGludm9raW5nIGFnYWluLlxuICogQHJldHVybiB7ZnVuY3Rpb24oLi4uKik6IHZvaWR9IFRoZSBkZWJvdW5jZWQgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGRlYm91bmNlKGZuLCB3YWl0KSB7XG4gIC8qKlxuICAgKiBBIGNhY2hlZCBzZXRUaW1lb3V0IGhhbmRsZXIuXG4gICAqIEB0eXBlIHtudW1iZXIgfCB1bmRlZmluZWR9XG4gICAqL1xuICBsZXQgdGltZXI7XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgZnVuY3Rpb24gZGVib3VuY2VkKCkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzO1xuICAgIGNvbnN0IGFyZ3MgPSBhcmd1bWVudHM7XG5cbiAgICBjbGVhclRpbWVvdXQodGltZXIpO1xuICAgIHRpbWVyID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gZm4uYXBwbHkoY29udGV4dCwgYXJncyk7XG4gICAgfSwgd2FpdCk7XG4gIH1cblxuICByZXR1cm4gZGVib3VuY2VkO1xufVxuXG4vKipcbiAqIFByZXR0aWZ5IGEgZmlsZW5hbWUgZnJvbSBlcnJvciBzdGFja3MgaW50byB0aGUgZGVzaXJlZCBmb3JtYXQuXG4gKiBAcGFyYW0ge3N0cmluZ30gZmlsZW5hbWUgVGhlIGZpbGVuYW1lIHRvIGJlIGZvcm1hdHRlZC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBmb3JtYXR0ZWQgZmlsZW5hbWUuXG4gKi9cbmZ1bmN0aW9uIGZvcm1hdEZpbGVuYW1lKGZpbGVuYW1lKSB7XG4gIC8vIFN0cmlwIGF3YXkgcHJvdG9jb2wgYW5kIGRvbWFpbiBmb3IgY29tcGlsZWQgZmlsZXNcbiAgY29uc3QgaHRtbE1hdGNoID0gL15odHRwcz86XFwvXFwvKC4qKVxcLyguKikvLmV4ZWMoZmlsZW5hbWUpO1xuICBpZiAoaHRtbE1hdGNoICYmIGh0bWxNYXRjaFsxXSAmJiBodG1sTWF0Y2hbMl0pIHtcbiAgICByZXR1cm4gaHRtbE1hdGNoWzJdO1xuICB9XG5cbiAgLy8gU3RyaXAgZXZlcnl0aGluZyBiZWZvcmUgdGhlIGZpcnN0IGRpcmVjdG9yeSBmb3Igc291cmNlIGZpbGVzXG4gIGNvbnN0IHNvdXJjZU1hdGNoID0gL1xcLy4qPyhbXi4vXStbL3xcXFxcXS4qKSQvLmV4ZWMoZmlsZW5hbWUpO1xuICBpZiAoc291cmNlTWF0Y2ggJiYgc291cmNlTWF0Y2hbMV0pIHtcbiAgICByZXR1cm4gc291cmNlTWF0Y2hbMV0ucmVwbGFjZSgvXFw/JC8sICcnKTtcbiAgfVxuXG4gIC8vIFVua25vd24gZmlsZW5hbWUgdHlwZSwgdXNlIGl0IGFzIGlzXG4gIHJldHVybiBmaWxlbmFtZTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgYWxsIGNoaWxkcmVuIG9mIGFuIGVsZW1lbnQuXG4gKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBlbGVtZW50IEEgdmFsaWQgSFRNTCBlbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXJ9IFtza2lwXSBOdW1iZXIgb2YgZWxlbWVudHMgdG8gc2tpcCByZW1vdmluZy5cbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5mdW5jdGlvbiByZW1vdmVBbGxDaGlsZHJlbihlbGVtZW50LCBza2lwKSB7XG4gIC8qKiBAdHlwZSB7Tm9kZVtdfSAqL1xuICBjb25zdCBjaGlsZExpc3QgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChcbiAgICBlbGVtZW50LmNoaWxkTm9kZXMsXG4gICAgdHlwZW9mIHNraXAgIT09ICd1bmRlZmluZWQnID8gc2tpcCA6IDBcbiAgKTtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGNoaWxkTGlzdC5sZW5ndGg7IGkgKz0gMSkge1xuICAgIGVsZW1lbnQucmVtb3ZlQ2hpbGQoY2hpbGRMaXN0W2ldKTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgZGVib3VuY2U6IGRlYm91bmNlLFxuICBmb3JtYXRGaWxlbmFtZTogZm9ybWF0RmlsZW5hbWUsXG4gIHJlbW92ZUFsbENoaWxkcmVuOiByZW1vdmVBbGxDaGlsZHJlbixcbn07XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///4725\n");
|
|
1439
1439
|
|
|
1440
1440
|
/***/ }),
|
|
1441
1441
|
|
|
@@ -1445,7 +1445,7 @@ eval("/**\n * Debounce a function to delay invoking until wait (ms) have elapsed
|
|
|
1445
1445
|
\************************************************************************************/
|
|
1446
1446
|
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
|
1447
1447
|
|
|
1448
|
-
eval("/* global __webpack_dev_server_client__ */\n\nconst getSocketUrlParts = __webpack_require__(/*! ./utils/getSocketUrlParts.js */ 3721);\nconst getUrlFromParts = __webpack_require__(/*! ./utils/getUrlFromParts */ 9444);\nconst getWDSMetadata = __webpack_require__(/*! ./utils/getWDSMetadata */ 2213);\n\n/**\n * Initializes a socket server for HMR for webpack-dev-server.\n * @param {function(*): void} messageHandler A handler to consume Webpack compilation messages.\n * @param {string} [resourceQuery] Webpack's `__resourceQuery` string.\n * @returns {void}\n */\nfunction initWDSSocket(messageHandler, resourceQuery) {\n if (typeof __webpack_dev_server_client__ !== 'undefined') {\n let SocketClient = __webpack_dev_server_client__;\n if (typeof __webpack_dev_server_client__.default !== 'undefined') {\n SocketClient = __webpack_dev_server_client__.default;\n }\n\n const wdsMeta = getWDSMetadata(SocketClient);\n const urlParts = getSocketUrlParts(resourceQuery, wdsMeta);\n\n const connection = new SocketClient(getUrlFromParts(urlParts, wdsMeta));\n\n connection.onMessage(function onSocketMessage(data) {\n const message = JSON.parse(data);\n messageHandler(message);\n });\n }\n}\n\nmodule.exports = { init: initWDSSocket };\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
1448
|
+
eval("/* global __webpack_dev_server_client__ */\n\nconst getSocketUrlParts = __webpack_require__(/*! ./utils/getSocketUrlParts.js */ 3721);\nconst getUrlFromParts = __webpack_require__(/*! ./utils/getUrlFromParts */ 9444);\nconst getWDSMetadata = __webpack_require__(/*! ./utils/getWDSMetadata */ 2213);\n\n/**\n * Initializes a socket server for HMR for webpack-dev-server.\n * @param {function(*): void} messageHandler A handler to consume Webpack compilation messages.\n * @param {string} [resourceQuery] Webpack's `__resourceQuery` string.\n * @returns {void}\n */\nfunction initWDSSocket(messageHandler, resourceQuery) {\n if (typeof __webpack_dev_server_client__ !== 'undefined') {\n let SocketClient = __webpack_dev_server_client__;\n if (typeof __webpack_dev_server_client__.default !== 'undefined') {\n SocketClient = __webpack_dev_server_client__.default;\n }\n\n const wdsMeta = getWDSMetadata(SocketClient);\n const urlParts = getSocketUrlParts(resourceQuery, wdsMeta);\n\n const connection = new SocketClient(getUrlFromParts(urlParts, wdsMeta));\n\n connection.onMessage(function onSocketMessage(data) {\n const message = JSON.parse(data);\n messageHandler(message);\n });\n }\n}\n\nmodule.exports = { init: initWDSSocket };\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODQ4My5qcyIsIm1hcHBpbmdzIjoiQUFBQTs7QUFFQSwwQkFBMEIsbUJBQU8sQ0FBQyx3Q0FBOEI7QUFDaEUsd0JBQXdCLG1CQUFPLENBQUMsbUNBQXlCO0FBQ3pELHVCQUF1QixtQkFBTyxDQUFDLGtDQUF3Qjs7QUFFdkQ7QUFDQTtBQUNBLFdBQVcsbUJBQW1CO0FBQzlCLFdBQVcsUUFBUTtBQUNuQixhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQSxtQkFBbUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ac3RhbmxlbW9uL3dlYmRldi8uLi8uLi9ub2RlX21vZHVsZXMvQHBtbW13aC9yZWFjdC1yZWZyZXNoLXdlYnBhY2stcGx1Z2luL3NvY2tldHMvV0RTU29ja2V0LmpzPzJhZDUiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZ2xvYmFsIF9fd2VicGFja19kZXZfc2VydmVyX2NsaWVudF9fICovXG5cbmNvbnN0IGdldFNvY2tldFVybFBhcnRzID0gcmVxdWlyZSgnLi91dGlscy9nZXRTb2NrZXRVcmxQYXJ0cy5qcycpO1xuY29uc3QgZ2V0VXJsRnJvbVBhcnRzID0gcmVxdWlyZSgnLi91dGlscy9nZXRVcmxGcm9tUGFydHMnKTtcbmNvbnN0IGdldFdEU01ldGFkYXRhID0gcmVxdWlyZSgnLi91dGlscy9nZXRXRFNNZXRhZGF0YScpO1xuXG4vKipcbiAqIEluaXRpYWxpemVzIGEgc29ja2V0IHNlcnZlciBmb3IgSE1SIGZvciB3ZWJwYWNrLWRldi1zZXJ2ZXIuXG4gKiBAcGFyYW0ge2Z1bmN0aW9uKCopOiB2b2lkfSBtZXNzYWdlSGFuZGxlciBBIGhhbmRsZXIgdG8gY29uc3VtZSBXZWJwYWNrIGNvbXBpbGF0aW9uIG1lc3NhZ2VzLlxuICogQHBhcmFtIHtzdHJpbmd9IFtyZXNvdXJjZVF1ZXJ5XSBXZWJwYWNrJ3MgYF9fcmVzb3VyY2VRdWVyeWAgc3RyaW5nLlxuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmZ1bmN0aW9uIGluaXRXRFNTb2NrZXQobWVzc2FnZUhhbmRsZXIsIHJlc291cmNlUXVlcnkpIHtcbiAgaWYgKHR5cGVvZiBfX3dlYnBhY2tfZGV2X3NlcnZlcl9jbGllbnRfXyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBsZXQgU29ja2V0Q2xpZW50ID0gX193ZWJwYWNrX2Rldl9zZXJ2ZXJfY2xpZW50X187XG4gICAgaWYgKHR5cGVvZiBfX3dlYnBhY2tfZGV2X3NlcnZlcl9jbGllbnRfXy5kZWZhdWx0ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgU29ja2V0Q2xpZW50ID0gX193ZWJwYWNrX2Rldl9zZXJ2ZXJfY2xpZW50X18uZGVmYXVsdDtcbiAgICB9XG5cbiAgICBjb25zdCB3ZHNNZXRhID0gZ2V0V0RTTWV0YWRhdGEoU29ja2V0Q2xpZW50KTtcbiAgICBjb25zdCB1cmxQYXJ0cyA9IGdldFNvY2tldFVybFBhcnRzKHJlc291cmNlUXVlcnksIHdkc01ldGEpO1xuXG4gICAgY29uc3QgY29ubmVjdGlvbiA9IG5ldyBTb2NrZXRDbGllbnQoZ2V0VXJsRnJvbVBhcnRzKHVybFBhcnRzLCB3ZHNNZXRhKSk7XG5cbiAgICBjb25uZWN0aW9uLm9uTWVzc2FnZShmdW5jdGlvbiBvblNvY2tldE1lc3NhZ2UoZGF0YSkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IEpTT04ucGFyc2UoZGF0YSk7XG4gICAgICBtZXNzYWdlSGFuZGxlcihtZXNzYWdlKTtcbiAgICB9KTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHsgaW5pdDogaW5pdFdEU1NvY2tldCB9O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///8483\n");
|
|
1449
1449
|
|
|
1450
1450
|
/***/ }),
|
|
1451
1451
|
|
|
@@ -1455,7 +1455,7 @@ eval("/* global __webpack_dev_server_client__ */\n\nconst getSocketUrlParts = __
|
|
|
1455
1455
|
\*******************************************************************************************************/
|
|
1456
1456
|
/***/ ((module) => {
|
|
1457
1457
|
|
|
1458
|
-
eval("/**\n * Gets the source (i.e. host) of the script currently running.\n * @returns {string}\n */\nfunction getCurrentScriptSource() {\n // `document.currentScript` is the most accurate way to get the current running script,\n // but is not supported in all browsers (most notably, IE).\n if (document.currentScript) {\n return document.currentScript.getAttribute('src');\n }\n\n // Fallback to getting all scripts running in the document.\n const scriptElements = document.scripts || [];\n const scriptElementsWithSrc = Array.prototype.filter.call(scriptElements, function (elem) {\n return elem.getAttribute('src');\n });\n if (scriptElementsWithSrc.length) {\n const currentScript = scriptElementsWithSrc[scriptElementsWithSrc.length - 1];\n return currentScript.getAttribute('src');\n }\n}\n\nmodule.exports = getCurrentScriptSource;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
1458
|
+
eval("/**\n * Gets the source (i.e. host) of the script currently running.\n * @returns {string}\n */\nfunction getCurrentScriptSource() {\n // `document.currentScript` is the most accurate way to get the current running script,\n // but is not supported in all browsers (most notably, IE).\n if (document.currentScript) {\n return document.currentScript.getAttribute('src');\n }\n\n // Fallback to getting all scripts running in the document.\n const scriptElements = document.scripts || [];\n const scriptElementsWithSrc = Array.prototype.filter.call(scriptElements, function (elem) {\n return elem.getAttribute('src');\n });\n if (scriptElementsWithSrc.length) {\n const currentScript = scriptElementsWithSrc[scriptElementsWithSrc.length - 1];\n return currentScript.getAttribute('src');\n }\n}\n\nmodule.exports = getCurrentScriptSource;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzYyOS5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ac3RhbmxlbW9uL3dlYmRldi8uLi8uLi9ub2RlX21vZHVsZXMvQHBtbW13aC9yZWFjdC1yZWZyZXNoLXdlYnBhY2stcGx1Z2luL3NvY2tldHMvdXRpbHMvZ2V0Q3VycmVudFNjcmlwdFNvdXJjZS5qcz80MzMyIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2V0cyB0aGUgc291cmNlIChpLmUuIGhvc3QpIG9mIHRoZSBzY3JpcHQgY3VycmVudGx5IHJ1bm5pbmcuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBnZXRDdXJyZW50U2NyaXB0U291cmNlKCkge1xuICAvLyBgZG9jdW1lbnQuY3VycmVudFNjcmlwdGAgaXMgdGhlIG1vc3QgYWNjdXJhdGUgd2F5IHRvIGdldCB0aGUgY3VycmVudCBydW5uaW5nIHNjcmlwdCxcbiAgLy8gYnV0IGlzIG5vdCBzdXBwb3J0ZWQgaW4gYWxsIGJyb3dzZXJzIChtb3N0IG5vdGFibHksIElFKS5cbiAgaWYgKGRvY3VtZW50LmN1cnJlbnRTY3JpcHQpIHtcbiAgICByZXR1cm4gZG9jdW1lbnQuY3VycmVudFNjcmlwdC5nZXRBdHRyaWJ1dGUoJ3NyYycpO1xuICB9XG5cbiAgLy8gRmFsbGJhY2sgdG8gZ2V0dGluZyBhbGwgc2NyaXB0cyBydW5uaW5nIGluIHRoZSBkb2N1bWVudC5cbiAgY29uc3Qgc2NyaXB0RWxlbWVudHMgPSBkb2N1bWVudC5zY3JpcHRzIHx8IFtdO1xuICBjb25zdCBzY3JpcHRFbGVtZW50c1dpdGhTcmMgPSBBcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwoc2NyaXB0RWxlbWVudHMsIGZ1bmN0aW9uIChlbGVtKSB7XG4gICAgcmV0dXJuIGVsZW0uZ2V0QXR0cmlidXRlKCdzcmMnKTtcbiAgfSk7XG4gIGlmIChzY3JpcHRFbGVtZW50c1dpdGhTcmMubGVuZ3RoKSB7XG4gICAgY29uc3QgY3VycmVudFNjcmlwdCA9IHNjcmlwdEVsZW1lbnRzV2l0aFNyY1tzY3JpcHRFbGVtZW50c1dpdGhTcmMubGVuZ3RoIC0gMV07XG4gICAgcmV0dXJuIGN1cnJlbnRTY3JpcHQuZ2V0QXR0cmlidXRlKCdzcmMnKTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGdldEN1cnJlbnRTY3JpcHRTb3VyY2U7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///7629\n");
|
|
1459
1459
|
|
|
1460
1460
|
/***/ }),
|
|
1461
1461
|
|
|
@@ -1465,7 +1465,7 @@ eval("/**\n * Gets the source (i.e. host) of the script currently running.\n * @
|
|
|
1465
1465
|
\**************************************************************************************************/
|
|
1466
1466
|
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
|
1467
1467
|
|
|
1468
|
-
eval("const getCurrentScriptSource = __webpack_require__(/*! ./getCurrentScriptSource.js */ 7629);\n\n/**\n * @typedef {Object} SocketUrlParts\n * @property {string} [auth]\n * @property {string} hostname\n * @property {string} [protocol]\n * @property {string} pathname\n * @property {string} [port]\n */\n\n/**\n * Parse current location and Webpack's `__resourceQuery` into parts that can create a valid socket URL.\n * @param {string} [resourceQuery] The Webpack `__resourceQuery` string.\n * @param {import('./getWDSMetadata').WDSMetaObj} [metadata] The parsed WDS metadata object.\n * @returns {SocketUrlParts} The parsed URL parts.\n * @see https://webpack.js.org/api/module-variables/#__resourcequery-webpack-specific\n */\nfunction getSocketUrlParts(resourceQuery, metadata) {\n if (typeof metadata === 'undefined') {\n metadata = {};\n }\n\n /** @type {SocketUrlParts} */\n let urlParts = {};\n\n // If the resource query is available,\n // parse it and ignore everything we received from the script host.\n if (resourceQuery) {\n const parsedQuery = {};\n const searchParams = new URLSearchParams(resourceQuery.slice(1));\n searchParams.forEach(function (value, key) {\n parsedQuery[key] = value;\n });\n\n urlParts.hostname = parsedQuery.sockHost;\n urlParts.pathname = parsedQuery.sockPath;\n urlParts.port = parsedQuery.sockPort;\n\n // Make sure the protocol from resource query has a trailing colon\n if (parsedQuery.sockProtocol) {\n urlParts.protocol = parsedQuery.sockProtocol + ':';\n }\n } else {\n const scriptSource = getCurrentScriptSource();\n\n let url = {};\n try {\n // The placeholder `baseURL` with `window.location.href`,\n // is to allow parsing of path-relative or protocol-relative URLs,\n // and will have no effect if `scriptSource` is a fully valid URL.\n url = new URL(scriptSource, window.location.href);\n } catch (e) {\n // URL parsing failed, do nothing.\n // We will still proceed to see if we can recover using `resourceQuery`\n }\n\n // Parse authentication credentials in case we need them\n if (url.username) {\n // Since HTTP basic authentication does not allow empty username,\n // we only include password if the username is not empty.\n // Result: <username> or <username>:<password>\n urlParts.auth = url.username;\n if (url.password) {\n urlParts.auth += ':' + url.password;\n }\n }\n\n // `file://` URLs has `'null'` origin\n if (url.origin !== 'null') {\n urlParts.hostname = url.hostname;\n }\n\n urlParts.protocol = url.protocol;\n urlParts.port = url.port;\n }\n\n if (!urlParts.pathname) {\n if (metadata.version === 4) {\n // This is hard-coded in WDS v4\n urlParts.pathname = '/ws';\n } else {\n // This is hard-coded in WDS v3\n urlParts.pathname = '/sockjs-node';\n }\n }\n\n // Check for IPv4 and IPv6 host addresses that correspond to any/empty.\n // This is important because `hostname` can be empty for some hosts,\n // such as 'about:blank' or 'file://' URLs.\n const isEmptyHostname =\n urlParts.hostname === '0.0.0.0' || urlParts.hostname === '[::]' || !urlParts.hostname;\n // We only re-assign the hostname if it is empty,\n // and if we are using HTTP/HTTPS protocols.\n if (\n isEmptyHostname &&\n window.location.hostname &&\n window.location.protocol.indexOf('http') === 0\n ) {\n urlParts.hostname = window.location.hostname;\n }\n\n // We only re-assign `protocol` when `protocol` is unavailable,\n // or if `hostname` is available and is empty,\n // since otherwise we risk creating an invalid URL.\n // We also do this when 'https' is used as it mandates the use of secure sockets.\n if (\n !urlParts.protocol ||\n (urlParts.hostname && (isEmptyHostname || window.location.protocol === 'https:'))\n ) {\n urlParts.protocol = window.location.protocol;\n }\n\n // We only re-assign port when it is not available\n if (!urlParts.port) {\n urlParts.port = window.location.port;\n }\n\n if (!urlParts.hostname || !urlParts.pathname) {\n console.log(urlParts);\n throw new Error(\n [\n '[React Refresh] Failed to get an URL for the socket connection.',\n \"This usually means that the current executed script doesn't have a `src` attribute set.\",\n 'You should either specify the socket path parameters under the `devServer` key in your Webpack config, or use the `overlay` option.',\n 'https://github.com/pmmmwh/react-refresh-webpack-plugin/blob/main/docs/API.md#overlay',\n ].join('\\n')\n );\n }\n\n return {\n auth: urlParts.auth,\n hostname: urlParts.hostname,\n pathname: urlParts.pathname,\n protocol: urlParts.protocol,\n port: urlParts.port || undefined,\n };\n}\n\nmodule.exports = getSocketUrlParts;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzcyMS5qcyIsIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0IsbUJBQU8sQ0FBQyx1Q0FBNkI7O0FBRXBFO0FBQ0EsYUFBYSxRQUFRO0FBQ3JCLGNBQWMsUUFBUTtBQUN0QixjQUFjLFFBQVE7QUFDdEIsY0FBYyxRQUFRO0FBQ3RCLGNBQWMsUUFBUTtBQUN0QixjQUFjLFFBQVE7QUFDdEI7O0FBRUE7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixXQUFXLHVDQUF1QztBQUNsRCxhQUFhLGdCQUFnQjtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsYUFBYSxnQkFBZ0I7QUFDN0I7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsid2VicGFjazovL0BzdGFubGVtb24vd2ViZGV2Ly4uLy4uL25vZGVfbW9kdWxlcy9AcG1tbXdoL3JlYWN0LXJlZnJlc2gtd2VicGFjay1wbHVnaW4vc29ja2V0cy91dGlscy9nZXRTb2NrZXRVcmxQYXJ0cy5qcz80YWI3Il0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGdldEN1cnJlbnRTY3JpcHRTb3VyY2UgPSByZXF1aXJlKCcuL2dldEN1cnJlbnRTY3JpcHRTb3VyY2UuanMnKTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBTb2NrZXRVcmxQYXJ0c1xuICogQHByb3BlcnR5IHtzdHJpbmd9IFthdXRoXVxuICogQHByb3BlcnR5IHtzdHJpbmd9IGhvc3RuYW1lXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW3Byb3RvY29sXVxuICogQHByb3BlcnR5IHtzdHJpbmd9IHBhdGhuYW1lXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW3BvcnRdXG4gKi9cblxuLyoqXG4gKiBQYXJzZSBjdXJyZW50IGxvY2F0aW9uIGFuZCBXZWJwYWNrJ3MgYF9fcmVzb3VyY2VRdWVyeWAgaW50byBwYXJ0cyB0aGF0IGNhbiBjcmVhdGUgYSB2YWxpZCBzb2NrZXQgVVJMLlxuICogQHBhcmFtIHtzdHJpbmd9IFtyZXNvdXJjZVF1ZXJ5XSBUaGUgV2VicGFjayBgX19yZXNvdXJjZVF1ZXJ5YCBzdHJpbmcuXG4gKiBAcGFyYW0ge2ltcG9ydCgnLi9nZXRXRFNNZXRhZGF0YScpLldEU01ldGFPYmp9IFttZXRhZGF0YV0gVGhlIHBhcnNlZCBXRFMgbWV0YWRhdGEgb2JqZWN0LlxuICogQHJldHVybnMge1NvY2tldFVybFBhcnRzfSBUaGUgcGFyc2VkIFVSTCBwYXJ0cy5cbiAqIEBzZWUgaHR0cHM6Ly93ZWJwYWNrLmpzLm9yZy9hcGkvbW9kdWxlLXZhcmlhYmxlcy8jX19yZXNvdXJjZXF1ZXJ5LXdlYnBhY2stc3BlY2lmaWNcbiAqL1xuZnVuY3Rpb24gZ2V0U29ja2V0VXJsUGFydHMocmVzb3VyY2VRdWVyeSwgbWV0YWRhdGEpIHtcbiAgaWYgKHR5cGVvZiBtZXRhZGF0YSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBtZXRhZGF0YSA9IHt9O1xuICB9XG5cbiAgLyoqIEB0eXBlIHtTb2NrZXRVcmxQYXJ0c30gKi9cbiAgbGV0IHVybFBhcnRzID0ge307XG5cbiAgLy8gSWYgdGhlIHJlc291cmNlIHF1ZXJ5IGlzIGF2YWlsYWJsZSxcbiAgLy8gcGFyc2UgaXQgYW5kIGlnbm9yZSBldmVyeXRoaW5nIHdlIHJlY2VpdmVkIGZyb20gdGhlIHNjcmlwdCBob3N0LlxuICBpZiAocmVzb3VyY2VRdWVyeSkge1xuICAgIGNvbnN0IHBhcnNlZFF1ZXJ5ID0ge307XG4gICAgY29uc3Qgc2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhyZXNvdXJjZVF1ZXJ5LnNsaWNlKDEpKTtcbiAgICBzZWFyY2hQYXJhbXMuZm9yRWFjaChmdW5jdGlvbiAodmFsdWUsIGtleSkge1xuICAgICAgcGFyc2VkUXVlcnlba2V5XSA9IHZhbHVlO1xuICAgIH0pO1xuXG4gICAgdXJsUGFydHMuaG9zdG5hbWUgPSBwYXJzZWRRdWVyeS5zb2NrSG9zdDtcbiAgICB1cmxQYXJ0cy5wYXRobmFtZSA9IHBhcnNlZFF1ZXJ5LnNvY2tQYXRoO1xuICAgIHVybFBhcnRzLnBvcnQgPSBwYXJzZWRRdWVyeS5zb2NrUG9ydDtcblxuICAgIC8vIE1ha2Ugc3VyZSB0aGUgcHJvdG9jb2wgZnJvbSByZXNvdXJjZSBxdWVyeSBoYXMgYSB0cmFpbGluZyBjb2xvblxuICAgIGlmIChwYXJzZWRRdWVyeS5zb2NrUHJvdG9jb2wpIHtcbiAgICAgIHVybFBhcnRzLnByb3RvY29sID0gcGFyc2VkUXVlcnkuc29ja1Byb3RvY29sICsgJzonO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBjb25zdCBzY3JpcHRTb3VyY2UgPSBnZXRDdXJyZW50U2NyaXB0U291cmNlKCk7XG5cbiAgICBsZXQgdXJsID0ge307XG4gICAgdHJ5IHtcbiAgICAgIC8vIFRoZSBwbGFjZWhvbGRlciBgYmFzZVVSTGAgd2l0aCBgd2luZG93LmxvY2F0aW9uLmhyZWZgLFxuICAgICAgLy8gaXMgdG8gYWxsb3cgcGFyc2luZyBvZiBwYXRoLXJlbGF0aXZlIG9yIHByb3RvY29sLXJlbGF0aXZlIFVSTHMsXG4gICAgICAvLyBhbmQgd2lsbCBoYXZlIG5vIGVmZmVjdCBpZiBgc2NyaXB0U291cmNlYCBpcyBhIGZ1bGx5IHZhbGlkIFVSTC5cbiAgICAgIHVybCA9IG5ldyBVUkwoc2NyaXB0U291cmNlLCB3aW5kb3cubG9jYXRpb24uaHJlZik7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy8gVVJMIHBhcnNpbmcgZmFpbGVkLCBkbyBub3RoaW5nLlxuICAgICAgLy8gV2Ugd2lsbCBzdGlsbCBwcm9jZWVkIHRvIHNlZSBpZiB3ZSBjYW4gcmVjb3ZlciB1c2luZyBgcmVzb3VyY2VRdWVyeWBcbiAgICB9XG5cbiAgICAvLyBQYXJzZSBhdXRoZW50aWNhdGlvbiBjcmVkZW50aWFscyBpbiBjYXNlIHdlIG5lZWQgdGhlbVxuICAgIGlmICh1cmwudXNlcm5hbWUpIHtcbiAgICAgIC8vIFNpbmNlIEhUVFAgYmFzaWMgYXV0aGVudGljYXRpb24gZG9lcyBub3QgYWxsb3cgZW1wdHkgdXNlcm5hbWUsXG4gICAgICAvLyB3ZSBvbmx5IGluY2x1ZGUgcGFzc3dvcmQgaWYgdGhlIHVzZXJuYW1lIGlzIG5vdCBlbXB0eS5cbiAgICAgIC8vIFJlc3VsdDogPHVzZXJuYW1lPiBvciA8dXNlcm5hbWU+OjxwYXNzd29yZD5cbiAgICAgIHVybFBhcnRzLmF1dGggPSB1cmwudXNlcm5hbWU7XG4gICAgICBpZiAodXJsLnBhc3N3b3JkKSB7XG4gICAgICAgIHVybFBhcnRzLmF1dGggKz0gJzonICsgdXJsLnBhc3N3b3JkO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGBmaWxlOi8vYCBVUkxzIGhhcyBgJ251bGwnYCBvcmlnaW5cbiAgICBpZiAodXJsLm9yaWdpbiAhPT0gJ251bGwnKSB7XG4gICAgICB1cmxQYXJ0cy5ob3N0bmFtZSA9IHVybC5ob3N0bmFtZTtcbiAgICB9XG5cbiAgICB1cmxQYXJ0cy5wcm90b2NvbCA9IHVybC5wcm90b2NvbDtcbiAgICB1cmxQYXJ0cy5wb3J0ID0gdXJsLnBvcnQ7XG4gIH1cblxuICBpZiAoIXVybFBhcnRzLnBhdGhuYW1lKSB7XG4gICAgaWYgKG1ldGFkYXRhLnZlcnNpb24gPT09IDQpIHtcbiAgICAgIC8vIFRoaXMgaXMgaGFyZC1jb2RlZCBpbiBXRFMgdjRcbiAgICAgIHVybFBhcnRzLnBhdGhuYW1lID0gJy93cyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRoaXMgaXMgaGFyZC1jb2RlZCBpbiBXRFMgdjNcbiAgICAgIHVybFBhcnRzLnBhdGhuYW1lID0gJy9zb2NranMtbm9kZSc7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2hlY2sgZm9yIElQdjQgYW5kIElQdjYgaG9zdCBhZGRyZXNzZXMgdGhhdCBjb3JyZXNwb25kIHRvIGFueS9lbXB0eS5cbiAgLy8gVGhpcyBpcyBpbXBvcnRhbnQgYmVjYXVzZSBgaG9zdG5hbWVgIGNhbiBiZSBlbXB0eSBmb3Igc29tZSBob3N0cyxcbiAgLy8gc3VjaCBhcyAnYWJvdXQ6YmxhbmsnIG9yICdmaWxlOi8vJyBVUkxzLlxuICBjb25zdCBpc0VtcHR5SG9zdG5hbWUgPVxuICAgIHVybFBhcnRzLmhvc3RuYW1lID09PSAnMC4wLjAuMCcgfHwgdXJsUGFydHMuaG9zdG5hbWUgPT09ICdbOjpdJyB8fCAhdXJsUGFydHMuaG9zdG5hbWU7XG4gIC8vIFdlIG9ubHkgcmUtYXNzaWduIHRoZSBob3N0bmFtZSBpZiBpdCBpcyBlbXB0eSxcbiAgLy8gYW5kIGlmIHdlIGFyZSB1c2luZyBIVFRQL0hUVFBTIHByb3RvY29scy5cbiAgaWYgKFxuICAgIGlzRW1wdHlIb3N0bmFtZSAmJlxuICAgIHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSAmJlxuICAgIHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbC5pbmRleE9mKCdodHRwJykgPT09IDBcbiAgKSB7XG4gICAgdXJsUGFydHMuaG9zdG5hbWUgPSB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWU7XG4gIH1cblxuICAvLyBXZSBvbmx5IHJlLWFzc2lnbiBgcHJvdG9jb2xgIHdoZW4gYHByb3RvY29sYCBpcyB1bmF2YWlsYWJsZSxcbiAgLy8gb3IgaWYgYGhvc3RuYW1lYCBpcyBhdmFpbGFibGUgYW5kIGlzIGVtcHR5LFxuICAvLyBzaW5jZSBvdGhlcndpc2Ugd2UgcmlzayBjcmVhdGluZyBhbiBpbnZhbGlkIFVSTC5cbiAgLy8gV2UgYWxzbyBkbyB0aGlzIHdoZW4gJ2h0dHBzJyBpcyB1c2VkIGFzIGl0IG1hbmRhdGVzIHRoZSB1c2Ugb2Ygc2VjdXJlIHNvY2tldHMuXG4gIGlmIChcbiAgICAhdXJsUGFydHMucHJvdG9jb2wgfHxcbiAgICAodXJsUGFydHMuaG9zdG5hbWUgJiYgKGlzRW1wdHlIb3N0bmFtZSB8fCB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wgPT09ICdodHRwczonKSlcbiAgKSB7XG4gICAgdXJsUGFydHMucHJvdG9jb2wgPSB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2w7XG4gIH1cblxuICAvLyBXZSBvbmx5IHJlLWFzc2lnbiBwb3J0IHdoZW4gaXQgaXMgbm90IGF2YWlsYWJsZVxuICBpZiAoIXVybFBhcnRzLnBvcnQpIHtcbiAgICB1cmxQYXJ0cy5wb3J0ID0gd2luZG93LmxvY2F0aW9uLnBvcnQ7XG4gIH1cblxuICBpZiAoIXVybFBhcnRzLmhvc3RuYW1lIHx8ICF1cmxQYXJ0cy5wYXRobmFtZSkge1xuICAgIGNvbnNvbGUubG9nKHVybFBhcnRzKTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBbXG4gICAgICAgICdbUmVhY3QgUmVmcmVzaF0gRmFpbGVkIHRvIGdldCBhbiBVUkwgZm9yIHRoZSBzb2NrZXQgY29ubmVjdGlvbi4nLFxuICAgICAgICBcIlRoaXMgdXN1YWxseSBtZWFucyB0aGF0IHRoZSBjdXJyZW50IGV4ZWN1dGVkIHNjcmlwdCBkb2Vzbid0IGhhdmUgYSBgc3JjYCBhdHRyaWJ1dGUgc2V0LlwiLFxuICAgICAgICAnWW91IHNob3VsZCBlaXRoZXIgc3BlY2lmeSB0aGUgc29ja2V0IHBhdGggcGFyYW1ldGVycyB1bmRlciB0aGUgYGRldlNlcnZlcmAga2V5IGluIHlvdXIgV2VicGFjayBjb25maWcsIG9yIHVzZSB0aGUgYG92ZXJsYXlgIG9wdGlvbi4nLFxuICAgICAgICAnaHR0cHM6Ly9naXRodWIuY29tL3BtbW13aC9yZWFjdC1yZWZyZXNoLXdlYnBhY2stcGx1Z2luL2Jsb2IvbWFpbi9kb2NzL0FQSS5tZCNvdmVybGF5JyxcbiAgICAgIF0uam9pbignXFxuJylcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBhdXRoOiB1cmxQYXJ0cy5hdXRoLFxuICAgIGhvc3RuYW1lOiB1cmxQYXJ0cy5ob3N0bmFtZSxcbiAgICBwYXRobmFtZTogdXJsUGFydHMucGF0aG5hbWUsXG4gICAgcHJvdG9jb2w6IHVybFBhcnRzLnByb3RvY29sLFxuICAgIHBvcnQ6IHVybFBhcnRzLnBvcnQgfHwgdW5kZWZpbmVkLFxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGdldFNvY2tldFVybFBhcnRzO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///3721\n");
|
|
1468
|
+
eval("const getCurrentScriptSource = __webpack_require__(/*! ./getCurrentScriptSource.js */ 7629);\n\n/**\n * @typedef {Object} SocketUrlParts\n * @property {string} [auth]\n * @property {string} hostname\n * @property {string} [protocol]\n * @property {string} pathname\n * @property {string} [port]\n */\n\n/**\n * Parse current location and Webpack's `__resourceQuery` into parts that can create a valid socket URL.\n * @param {string} [resourceQuery] The Webpack `__resourceQuery` string.\n * @param {import('./getWDSMetadata').WDSMetaObj} [metadata] The parsed WDS metadata object.\n * @returns {SocketUrlParts} The parsed URL parts.\n * @see https://webpack.js.org/api/module-variables/#__resourcequery-webpack-specific\n */\nfunction getSocketUrlParts(resourceQuery, metadata) {\n if (typeof metadata === 'undefined') {\n metadata = {};\n }\n\n /** @type {SocketUrlParts} */\n let urlParts = {};\n\n // If the resource query is available,\n // parse it and ignore everything we received from the script host.\n if (resourceQuery) {\n const parsedQuery = {};\n const searchParams = new URLSearchParams(resourceQuery.slice(1));\n searchParams.forEach(function (value, key) {\n parsedQuery[key] = value;\n });\n\n urlParts.hostname = parsedQuery.sockHost;\n urlParts.pathname = parsedQuery.sockPath;\n urlParts.port = parsedQuery.sockPort;\n\n // Make sure the protocol from resource query has a trailing colon\n if (parsedQuery.sockProtocol) {\n urlParts.protocol = parsedQuery.sockProtocol + ':';\n }\n } else {\n const scriptSource = getCurrentScriptSource();\n\n let url = {};\n try {\n // The placeholder `baseURL` with `window.location.href`,\n // is to allow parsing of path-relative or protocol-relative URLs,\n // and will have no effect if `scriptSource` is a fully valid URL.\n url = new URL(scriptSource, window.location.href);\n } catch (e) {\n // URL parsing failed, do nothing.\n // We will still proceed to see if we can recover using `resourceQuery`\n }\n\n // Parse authentication credentials in case we need them\n if (url.username) {\n // Since HTTP basic authentication does not allow empty username,\n // we only include password if the username is not empty.\n // Result: <username> or <username>:<password>\n urlParts.auth = url.username;\n if (url.password) {\n urlParts.auth += ':' + url.password;\n }\n }\n\n // `file://` URLs has `'null'` origin\n if (url.origin !== 'null') {\n urlParts.hostname = url.hostname;\n }\n\n urlParts.protocol = url.protocol;\n urlParts.port = url.port;\n }\n\n if (!urlParts.pathname) {\n if (metadata.version === 4) {\n // This is hard-coded in WDS v4\n urlParts.pathname = '/ws';\n } else {\n // This is hard-coded in WDS v3\n urlParts.pathname = '/sockjs-node';\n }\n }\n\n // Check for IPv4 and IPv6 host addresses that correspond to any/empty.\n // This is important because `hostname` can be empty for some hosts,\n // such as 'about:blank' or 'file://' URLs.\n const isEmptyHostname =\n urlParts.hostname === '0.0.0.0' || urlParts.hostname === '[::]' || !urlParts.hostname;\n // We only re-assign the hostname if it is empty,\n // and if we are using HTTP/HTTPS protocols.\n if (\n isEmptyHostname &&\n window.location.hostname &&\n window.location.protocol.indexOf('http') === 0\n ) {\n urlParts.hostname = window.location.hostname;\n }\n\n // We only re-assign `protocol` when `protocol` is unavailable,\n // or if `hostname` is available and is empty,\n // since otherwise we risk creating an invalid URL.\n // We also do this when 'https' is used as it mandates the use of secure sockets.\n if (\n !urlParts.protocol ||\n (urlParts.hostname && (isEmptyHostname || window.location.protocol === 'https:'))\n ) {\n urlParts.protocol = window.location.protocol;\n }\n\n // We only re-assign port when it is not available\n if (!urlParts.port) {\n urlParts.port = window.location.port;\n }\n\n if (!urlParts.hostname || !urlParts.pathname) {\n console.log(urlParts);\n throw new Error(\n [\n '[React Refresh] Failed to get an URL for the socket connection.',\n \"This usually means that the current executed script doesn't have a `src` attribute set.\",\n 'You should either specify the socket path parameters under the `devServer` key in your Webpack config, or use the `overlay` option.',\n 'https://github.com/pmmmwh/react-refresh-webpack-plugin/blob/main/docs/API.md#overlay',\n ].join('\\n')\n );\n }\n\n return {\n auth: urlParts.auth,\n hostname: urlParts.hostname,\n pathname: urlParts.pathname,\n protocol: urlParts.protocol,\n port: urlParts.port || undefined,\n };\n}\n\nmodule.exports = getSocketUrlParts;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzcyMS5qcyIsIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0IsbUJBQU8sQ0FBQyx1Q0FBNkI7O0FBRXBFO0FBQ0EsYUFBYSxRQUFRO0FBQ3JCLGNBQWMsUUFBUTtBQUN0QixjQUFjLFFBQVE7QUFDdEIsY0FBYyxRQUFRO0FBQ3RCLGNBQWMsUUFBUTtBQUN0QixjQUFjLFFBQVE7QUFDdEI7O0FBRUE7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixXQUFXLHVDQUF1QztBQUNsRCxhQUFhLGdCQUFnQjtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsYUFBYSxnQkFBZ0I7QUFDN0I7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsid2VicGFjazovL0BzdGFubGVtb24vd2ViZGV2Ly4uLy4uL25vZGVfbW9kdWxlcy9AcG1tbXdoL3JlYWN0LXJlZnJlc2gtd2VicGFjay1wbHVnaW4vc29ja2V0cy91dGlscy9nZXRTb2NrZXRVcmxQYXJ0cy5qcz82MDRkIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGdldEN1cnJlbnRTY3JpcHRTb3VyY2UgPSByZXF1aXJlKCcuL2dldEN1cnJlbnRTY3JpcHRTb3VyY2UuanMnKTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBTb2NrZXRVcmxQYXJ0c1xuICogQHByb3BlcnR5IHtzdHJpbmd9IFthdXRoXVxuICogQHByb3BlcnR5IHtzdHJpbmd9IGhvc3RuYW1lXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW3Byb3RvY29sXVxuICogQHByb3BlcnR5IHtzdHJpbmd9IHBhdGhuYW1lXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW3BvcnRdXG4gKi9cblxuLyoqXG4gKiBQYXJzZSBjdXJyZW50IGxvY2F0aW9uIGFuZCBXZWJwYWNrJ3MgYF9fcmVzb3VyY2VRdWVyeWAgaW50byBwYXJ0cyB0aGF0IGNhbiBjcmVhdGUgYSB2YWxpZCBzb2NrZXQgVVJMLlxuICogQHBhcmFtIHtzdHJpbmd9IFtyZXNvdXJjZVF1ZXJ5XSBUaGUgV2VicGFjayBgX19yZXNvdXJjZVF1ZXJ5YCBzdHJpbmcuXG4gKiBAcGFyYW0ge2ltcG9ydCgnLi9nZXRXRFNNZXRhZGF0YScpLldEU01ldGFPYmp9IFttZXRhZGF0YV0gVGhlIHBhcnNlZCBXRFMgbWV0YWRhdGEgb2JqZWN0LlxuICogQHJldHVybnMge1NvY2tldFVybFBhcnRzfSBUaGUgcGFyc2VkIFVSTCBwYXJ0cy5cbiAqIEBzZWUgaHR0cHM6Ly93ZWJwYWNrLmpzLm9yZy9hcGkvbW9kdWxlLXZhcmlhYmxlcy8jX19yZXNvdXJjZXF1ZXJ5LXdlYnBhY2stc3BlY2lmaWNcbiAqL1xuZnVuY3Rpb24gZ2V0U29ja2V0VXJsUGFydHMocmVzb3VyY2VRdWVyeSwgbWV0YWRhdGEpIHtcbiAgaWYgKHR5cGVvZiBtZXRhZGF0YSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBtZXRhZGF0YSA9IHt9O1xuICB9XG5cbiAgLyoqIEB0eXBlIHtTb2NrZXRVcmxQYXJ0c30gKi9cbiAgbGV0IHVybFBhcnRzID0ge307XG5cbiAgLy8gSWYgdGhlIHJlc291cmNlIHF1ZXJ5IGlzIGF2YWlsYWJsZSxcbiAgLy8gcGFyc2UgaXQgYW5kIGlnbm9yZSBldmVyeXRoaW5nIHdlIHJlY2VpdmVkIGZyb20gdGhlIHNjcmlwdCBob3N0LlxuICBpZiAocmVzb3VyY2VRdWVyeSkge1xuICAgIGNvbnN0IHBhcnNlZFF1ZXJ5ID0ge307XG4gICAgY29uc3Qgc2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhyZXNvdXJjZVF1ZXJ5LnNsaWNlKDEpKTtcbiAgICBzZWFyY2hQYXJhbXMuZm9yRWFjaChmdW5jdGlvbiAodmFsdWUsIGtleSkge1xuICAgICAgcGFyc2VkUXVlcnlba2V5XSA9IHZhbHVlO1xuICAgIH0pO1xuXG4gICAgdXJsUGFydHMuaG9zdG5hbWUgPSBwYXJzZWRRdWVyeS5zb2NrSG9zdDtcbiAgICB1cmxQYXJ0cy5wYXRobmFtZSA9IHBhcnNlZFF1ZXJ5LnNvY2tQYXRoO1xuICAgIHVybFBhcnRzLnBvcnQgPSBwYXJzZWRRdWVyeS5zb2NrUG9ydDtcblxuICAgIC8vIE1ha2Ugc3VyZSB0aGUgcHJvdG9jb2wgZnJvbSByZXNvdXJjZSBxdWVyeSBoYXMgYSB0cmFpbGluZyBjb2xvblxuICAgIGlmIChwYXJzZWRRdWVyeS5zb2NrUHJvdG9jb2wpIHtcbiAgICAgIHVybFBhcnRzLnByb3RvY29sID0gcGFyc2VkUXVlcnkuc29ja1Byb3RvY29sICsgJzonO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBjb25zdCBzY3JpcHRTb3VyY2UgPSBnZXRDdXJyZW50U2NyaXB0U291cmNlKCk7XG5cbiAgICBsZXQgdXJsID0ge307XG4gICAgdHJ5IHtcbiAgICAgIC8vIFRoZSBwbGFjZWhvbGRlciBgYmFzZVVSTGAgd2l0aCBgd2luZG93LmxvY2F0aW9uLmhyZWZgLFxuICAgICAgLy8gaXMgdG8gYWxsb3cgcGFyc2luZyBvZiBwYXRoLXJlbGF0aXZlIG9yIHByb3RvY29sLXJlbGF0aXZlIFVSTHMsXG4gICAgICAvLyBhbmQgd2lsbCBoYXZlIG5vIGVmZmVjdCBpZiBgc2NyaXB0U291cmNlYCBpcyBhIGZ1bGx5IHZhbGlkIFVSTC5cbiAgICAgIHVybCA9IG5ldyBVUkwoc2NyaXB0U291cmNlLCB3aW5kb3cubG9jYXRpb24uaHJlZik7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy8gVVJMIHBhcnNpbmcgZmFpbGVkLCBkbyBub3RoaW5nLlxuICAgICAgLy8gV2Ugd2lsbCBzdGlsbCBwcm9jZWVkIHRvIHNlZSBpZiB3ZSBjYW4gcmVjb3ZlciB1c2luZyBgcmVzb3VyY2VRdWVyeWBcbiAgICB9XG5cbiAgICAvLyBQYXJzZSBhdXRoZW50aWNhdGlvbiBjcmVkZW50aWFscyBpbiBjYXNlIHdlIG5lZWQgdGhlbVxuICAgIGlmICh1cmwudXNlcm5hbWUpIHtcbiAgICAgIC8vIFNpbmNlIEhUVFAgYmFzaWMgYXV0aGVudGljYXRpb24gZG9lcyBub3QgYWxsb3cgZW1wdHkgdXNlcm5hbWUsXG4gICAgICAvLyB3ZSBvbmx5IGluY2x1ZGUgcGFzc3dvcmQgaWYgdGhlIHVzZXJuYW1lIGlzIG5vdCBlbXB0eS5cbiAgICAgIC8vIFJlc3VsdDogPHVzZXJuYW1lPiBvciA8dXNlcm5hbWU+OjxwYXNzd29yZD5cbiAgICAgIHVybFBhcnRzLmF1dGggPSB1cmwudXNlcm5hbWU7XG4gICAgICBpZiAodXJsLnBhc3N3b3JkKSB7XG4gICAgICAgIHVybFBhcnRzLmF1dGggKz0gJzonICsgdXJsLnBhc3N3b3JkO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGBmaWxlOi8vYCBVUkxzIGhhcyBgJ251bGwnYCBvcmlnaW5cbiAgICBpZiAodXJsLm9yaWdpbiAhPT0gJ251bGwnKSB7XG4gICAgICB1cmxQYXJ0cy5ob3N0bmFtZSA9IHVybC5ob3N0bmFtZTtcbiAgICB9XG5cbiAgICB1cmxQYXJ0cy5wcm90b2NvbCA9IHVybC5wcm90b2NvbDtcbiAgICB1cmxQYXJ0cy5wb3J0ID0gdXJsLnBvcnQ7XG4gIH1cblxuICBpZiAoIXVybFBhcnRzLnBhdGhuYW1lKSB7XG4gICAgaWYgKG1ldGFkYXRhLnZlcnNpb24gPT09IDQpIHtcbiAgICAgIC8vIFRoaXMgaXMgaGFyZC1jb2RlZCBpbiBXRFMgdjRcbiAgICAgIHVybFBhcnRzLnBhdGhuYW1lID0gJy93cyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRoaXMgaXMgaGFyZC1jb2RlZCBpbiBXRFMgdjNcbiAgICAgIHVybFBhcnRzLnBhdGhuYW1lID0gJy9zb2NranMtbm9kZSc7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2hlY2sgZm9yIElQdjQgYW5kIElQdjYgaG9zdCBhZGRyZXNzZXMgdGhhdCBjb3JyZXNwb25kIHRvIGFueS9lbXB0eS5cbiAgLy8gVGhpcyBpcyBpbXBvcnRhbnQgYmVjYXVzZSBgaG9zdG5hbWVgIGNhbiBiZSBlbXB0eSBmb3Igc29tZSBob3N0cyxcbiAgLy8gc3VjaCBhcyAnYWJvdXQ6YmxhbmsnIG9yICdmaWxlOi8vJyBVUkxzLlxuICBjb25zdCBpc0VtcHR5SG9zdG5hbWUgPVxuICAgIHVybFBhcnRzLmhvc3RuYW1lID09PSAnMC4wLjAuMCcgfHwgdXJsUGFydHMuaG9zdG5hbWUgPT09ICdbOjpdJyB8fCAhdXJsUGFydHMuaG9zdG5hbWU7XG4gIC8vIFdlIG9ubHkgcmUtYXNzaWduIHRoZSBob3N0bmFtZSBpZiBpdCBpcyBlbXB0eSxcbiAgLy8gYW5kIGlmIHdlIGFyZSB1c2luZyBIVFRQL0hUVFBTIHByb3RvY29scy5cbiAgaWYgKFxuICAgIGlzRW1wdHlIb3N0bmFtZSAmJlxuICAgIHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSAmJlxuICAgIHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbC5pbmRleE9mKCdodHRwJykgPT09IDBcbiAgKSB7XG4gICAgdXJsUGFydHMuaG9zdG5hbWUgPSB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWU7XG4gIH1cblxuICAvLyBXZSBvbmx5IHJlLWFzc2lnbiBgcHJvdG9jb2xgIHdoZW4gYHByb3RvY29sYCBpcyB1bmF2YWlsYWJsZSxcbiAgLy8gb3IgaWYgYGhvc3RuYW1lYCBpcyBhdmFpbGFibGUgYW5kIGlzIGVtcHR5LFxuICAvLyBzaW5jZSBvdGhlcndpc2Ugd2UgcmlzayBjcmVhdGluZyBhbiBpbnZhbGlkIFVSTC5cbiAgLy8gV2UgYWxzbyBkbyB0aGlzIHdoZW4gJ2h0dHBzJyBpcyB1c2VkIGFzIGl0IG1hbmRhdGVzIHRoZSB1c2Ugb2Ygc2VjdXJlIHNvY2tldHMuXG4gIGlmIChcbiAgICAhdXJsUGFydHMucHJvdG9jb2wgfHxcbiAgICAodXJsUGFydHMuaG9zdG5hbWUgJiYgKGlzRW1wdHlIb3N0bmFtZSB8fCB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wgPT09ICdodHRwczonKSlcbiAgKSB7XG4gICAgdXJsUGFydHMucHJvdG9jb2wgPSB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2w7XG4gIH1cblxuICAvLyBXZSBvbmx5IHJlLWFzc2lnbiBwb3J0IHdoZW4gaXQgaXMgbm90IGF2YWlsYWJsZVxuICBpZiAoIXVybFBhcnRzLnBvcnQpIHtcbiAgICB1cmxQYXJ0cy5wb3J0ID0gd2luZG93LmxvY2F0aW9uLnBvcnQ7XG4gIH1cblxuICBpZiAoIXVybFBhcnRzLmhvc3RuYW1lIHx8ICF1cmxQYXJ0cy5wYXRobmFtZSkge1xuICAgIGNvbnNvbGUubG9nKHVybFBhcnRzKTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBbXG4gICAgICAgICdbUmVhY3QgUmVmcmVzaF0gRmFpbGVkIHRvIGdldCBhbiBVUkwgZm9yIHRoZSBzb2NrZXQgY29ubmVjdGlvbi4nLFxuICAgICAgICBcIlRoaXMgdXN1YWxseSBtZWFucyB0aGF0IHRoZSBjdXJyZW50IGV4ZWN1dGVkIHNjcmlwdCBkb2Vzbid0IGhhdmUgYSBgc3JjYCBhdHRyaWJ1dGUgc2V0LlwiLFxuICAgICAgICAnWW91IHNob3VsZCBlaXRoZXIgc3BlY2lmeSB0aGUgc29ja2V0IHBhdGggcGFyYW1ldGVycyB1bmRlciB0aGUgYGRldlNlcnZlcmAga2V5IGluIHlvdXIgV2VicGFjayBjb25maWcsIG9yIHVzZSB0aGUgYG92ZXJsYXlgIG9wdGlvbi4nLFxuICAgICAgICAnaHR0cHM6Ly9naXRodWIuY29tL3BtbW13aC9yZWFjdC1yZWZyZXNoLXdlYnBhY2stcGx1Z2luL2Jsb2IvbWFpbi9kb2NzL0FQSS5tZCNvdmVybGF5JyxcbiAgICAgIF0uam9pbignXFxuJylcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBhdXRoOiB1cmxQYXJ0cy5hdXRoLFxuICAgIGhvc3RuYW1lOiB1cmxQYXJ0cy5ob3N0bmFtZSxcbiAgICBwYXRobmFtZTogdXJsUGFydHMucGF0aG5hbWUsXG4gICAgcHJvdG9jb2w6IHVybFBhcnRzLnByb3RvY29sLFxuICAgIHBvcnQ6IHVybFBhcnRzLnBvcnQgfHwgdW5kZWZpbmVkLFxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGdldFNvY2tldFVybFBhcnRzO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///3721\n");
|
|
1469
1469
|
|
|
1470
1470
|
/***/ }),
|
|
1471
1471
|
|
|
@@ -1475,7 +1475,7 @@ eval("const getCurrentScriptSource = __webpack_require__(/*! ./getCurrentScriptS
|
|
|
1475
1475
|
\************************************************************************************************/
|
|
1476
1476
|
/***/ ((module) => {
|
|
1477
1477
|
|
|
1478
|
-
eval("/**\n * Create a valid URL from parsed URL parts.\n * @param {import('./getSocketUrlParts').SocketUrlParts} urlParts The parsed URL parts.\n * @param {import('./getWDSMetadata').WDSMetaObj} [metadata] The parsed WDS metadata object.\n * @returns {string} The generated URL.\n */\nfunction urlFromParts(urlParts, metadata) {\n if (typeof metadata === 'undefined') {\n metadata = {};\n }\n\n let fullProtocol = 'http:';\n if (urlParts.protocol) {\n fullProtocol = urlParts.protocol;\n }\n if (metadata.enforceWs) {\n fullProtocol = fullProtocol.replace(/^(?:http|.+-extension|file)/i, 'ws');\n }\n\n fullProtocol = fullProtocol + '//';\n\n let fullHost = urlParts.hostname;\n if (urlParts.auth) {\n const fullAuth = urlParts.auth.split(':').map(encodeURIComponent).join(':') + '@';\n fullHost = fullAuth + fullHost;\n }\n if (urlParts.port) {\n fullHost = fullHost + ':' + urlParts.port;\n }\n\n const url = new URL(urlParts.pathname, fullProtocol + fullHost);\n return url.href;\n}\n\nmodule.exports = urlFromParts;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
1478
|
+
eval("/**\n * Create a valid URL from parsed URL parts.\n * @param {import('./getSocketUrlParts').SocketUrlParts} urlParts The parsed URL parts.\n * @param {import('./getWDSMetadata').WDSMetaObj} [metadata] The parsed WDS metadata object.\n * @returns {string} The generated URL.\n */\nfunction urlFromParts(urlParts, metadata) {\n if (typeof metadata === 'undefined') {\n metadata = {};\n }\n\n let fullProtocol = 'http:';\n if (urlParts.protocol) {\n fullProtocol = urlParts.protocol;\n }\n if (metadata.enforceWs) {\n fullProtocol = fullProtocol.replace(/^(?:http|.+-extension|file)/i, 'ws');\n }\n\n fullProtocol = fullProtocol + '//';\n\n let fullHost = urlParts.hostname;\n if (urlParts.auth) {\n const fullAuth = urlParts.auth.split(':').map(encodeURIComponent).join(':') + '@';\n fullHost = fullAuth + fullHost;\n }\n if (urlParts.port) {\n fullHost = fullHost + ':' + urlParts.port;\n }\n\n const url = new URL(urlParts.pathname, fullProtocol + fullHost);\n return url.href;\n}\n\nmodule.exports = urlFromParts;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiOTQ0NC5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0EsV0FBVyw4Q0FBOEM7QUFDekQsV0FBVyx1Q0FBdUM7QUFDbEQsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ac3RhbmxlbW9uL3dlYmRldi8uLi8uLi9ub2RlX21vZHVsZXMvQHBtbW13aC9yZWFjdC1yZWZyZXNoLXdlYnBhY2stcGx1Z2luL3NvY2tldHMvdXRpbHMvZ2V0VXJsRnJvbVBhcnRzLmpzPzlhNjEiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDcmVhdGUgYSB2YWxpZCBVUkwgZnJvbSBwYXJzZWQgVVJMIHBhcnRzLlxuICogQHBhcmFtIHtpbXBvcnQoJy4vZ2V0U29ja2V0VXJsUGFydHMnKS5Tb2NrZXRVcmxQYXJ0c30gdXJsUGFydHMgVGhlIHBhcnNlZCBVUkwgcGFydHMuXG4gKiBAcGFyYW0ge2ltcG9ydCgnLi9nZXRXRFNNZXRhZGF0YScpLldEU01ldGFPYmp9IFttZXRhZGF0YV0gVGhlIHBhcnNlZCBXRFMgbWV0YWRhdGEgb2JqZWN0LlxuICogQHJldHVybnMge3N0cmluZ30gVGhlIGdlbmVyYXRlZCBVUkwuXG4gKi9cbmZ1bmN0aW9uIHVybEZyb21QYXJ0cyh1cmxQYXJ0cywgbWV0YWRhdGEpIHtcbiAgaWYgKHR5cGVvZiBtZXRhZGF0YSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBtZXRhZGF0YSA9IHt9O1xuICB9XG5cbiAgbGV0IGZ1bGxQcm90b2NvbCA9ICdodHRwOic7XG4gIGlmICh1cmxQYXJ0cy5wcm90b2NvbCkge1xuICAgIGZ1bGxQcm90b2NvbCA9IHVybFBhcnRzLnByb3RvY29sO1xuICB9XG4gIGlmIChtZXRhZGF0YS5lbmZvcmNlV3MpIHtcbiAgICBmdWxsUHJvdG9jb2wgPSBmdWxsUHJvdG9jb2wucmVwbGFjZSgvXig/Omh0dHB8ListZXh0ZW5zaW9ufGZpbGUpL2ksICd3cycpO1xuICB9XG5cbiAgZnVsbFByb3RvY29sID0gZnVsbFByb3RvY29sICsgJy8vJztcblxuICBsZXQgZnVsbEhvc3QgPSB1cmxQYXJ0cy5ob3N0bmFtZTtcbiAgaWYgKHVybFBhcnRzLmF1dGgpIHtcbiAgICBjb25zdCBmdWxsQXV0aCA9IHVybFBhcnRzLmF1dGguc3BsaXQoJzonKS5tYXAoZW5jb2RlVVJJQ29tcG9uZW50KS5qb2luKCc6JykgKyAnQCc7XG4gICAgZnVsbEhvc3QgPSBmdWxsQXV0aCArIGZ1bGxIb3N0O1xuICB9XG4gIGlmICh1cmxQYXJ0cy5wb3J0KSB7XG4gICAgZnVsbEhvc3QgPSBmdWxsSG9zdCArICc6JyArIHVybFBhcnRzLnBvcnQ7XG4gIH1cblxuICBjb25zdCB1cmwgPSBuZXcgVVJMKHVybFBhcnRzLnBhdGhuYW1lLCBmdWxsUHJvdG9jb2wgKyBmdWxsSG9zdCk7XG4gIHJldHVybiB1cmwuaHJlZjtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB1cmxGcm9tUGFydHM7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///9444\n");
|
|
1479
1479
|
|
|
1480
1480
|
/***/ }),
|
|
1481
1481
|
|
|
@@ -1485,7 +1485,7 @@ eval("/**\n * Create a valid URL from parsed URL parts.\n * @param {import('./ge
|
|
|
1485
1485
|
\***********************************************************************************************/
|
|
1486
1486
|
/***/ ((module) => {
|
|
1487
1487
|
|
|
1488
|
-
eval("/**\n * @typedef {Object} WDSMetaObj\n * @property {boolean} enforceWs\n * @property {number} version\n */\n\n/**\n * Derives WDS metadata from a compatible socket client.\n * @param {Function} SocketClient A WDS socket client (SockJS/WebSocket).\n * @returns {WDSMetaObj} The parsed WDS metadata object.\n */\nfunction getWDSMetadata(SocketClient) {\n let enforceWs = false;\n if (\n typeof SocketClient.name !== 'undefined' &&\n SocketClient.name !== null &&\n SocketClient.name.toLowerCase().includes('websocket')\n ) {\n enforceWs = true;\n }\n\n let version;\n // WDS versions <=3.5.0\n if (!('onMessage' in SocketClient.prototype)) {\n version = 3;\n } else {\n // WDS versions >=3.5.0 <4\n if (\n 'getClientPath' in SocketClient ||\n Object.getPrototypeOf(SocketClient).name === 'BaseClient'\n ) {\n version = 3;\n } else {\n version = 4;\n }\n }\n\n return {\n enforceWs: enforceWs,\n version: version,\n };\n}\n\nmodule.exports = getWDSMetadata;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
1488
|
+
eval("/**\n * @typedef {Object} WDSMetaObj\n * @property {boolean} enforceWs\n * @property {number} version\n */\n\n/**\n * Derives WDS metadata from a compatible socket client.\n * @param {Function} SocketClient A WDS socket client (SockJS/WebSocket).\n * @returns {WDSMetaObj} The parsed WDS metadata object.\n */\nfunction getWDSMetadata(SocketClient) {\n let enforceWs = false;\n if (\n typeof SocketClient.name !== 'undefined' &&\n SocketClient.name !== null &&\n SocketClient.name.toLowerCase().includes('websocket')\n ) {\n enforceWs = true;\n }\n\n let version;\n // WDS versions <=3.5.0\n if (!('onMessage' in SocketClient.prototype)) {\n version = 3;\n } else {\n // WDS versions >=3.5.0 <4\n if (\n 'getClientPath' in SocketClient ||\n Object.getPrototypeOf(SocketClient).name === 'BaseClient'\n ) {\n version = 3;\n } else {\n version = 4;\n }\n }\n\n return {\n enforceWs: enforceWs,\n version: version,\n };\n}\n\nmodule.exports = getWDSMetadata;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjIxMy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBLGFBQWEsUUFBUTtBQUNyQixjQUFjLFNBQVM7QUFDdkIsY0FBYyxRQUFRO0FBQ3RCOztBQUVBO0FBQ0E7QUFDQSxXQUFXLFVBQVU7QUFDckIsYUFBYSxZQUFZO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsid2VicGFjazovL0BzdGFubGVtb24vd2ViZGV2Ly4uLy4uL25vZGVfbW9kdWxlcy9AcG1tbXdoL3JlYWN0LXJlZnJlc2gtd2VicGFjay1wbHVnaW4vc29ja2V0cy91dGlscy9nZXRXRFNNZXRhZGF0YS5qcz8yZjBiIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gV0RTTWV0YU9ialxuICogQHByb3BlcnR5IHtib29sZWFufSBlbmZvcmNlV3NcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSB2ZXJzaW9uXG4gKi9cblxuLyoqXG4gKiBEZXJpdmVzIFdEUyBtZXRhZGF0YSBmcm9tIGEgY29tcGF0aWJsZSBzb2NrZXQgY2xpZW50LlxuICogQHBhcmFtIHtGdW5jdGlvbn0gU29ja2V0Q2xpZW50IEEgV0RTIHNvY2tldCBjbGllbnQgKFNvY2tKUy9XZWJTb2NrZXQpLlxuICogQHJldHVybnMge1dEU01ldGFPYmp9IFRoZSBwYXJzZWQgV0RTIG1ldGFkYXRhIG9iamVjdC5cbiAqL1xuZnVuY3Rpb24gZ2V0V0RTTWV0YWRhdGEoU29ja2V0Q2xpZW50KSB7XG4gIGxldCBlbmZvcmNlV3MgPSBmYWxzZTtcbiAgaWYgKFxuICAgIHR5cGVvZiBTb2NrZXRDbGllbnQubmFtZSAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICBTb2NrZXRDbGllbnQubmFtZSAhPT0gbnVsbCAmJlxuICAgIFNvY2tldENsaWVudC5uYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ3dlYnNvY2tldCcpXG4gICkge1xuICAgIGVuZm9yY2VXcyA9IHRydWU7XG4gIH1cblxuICBsZXQgdmVyc2lvbjtcbiAgLy8gV0RTIHZlcnNpb25zIDw9My41LjBcbiAgaWYgKCEoJ29uTWVzc2FnZScgaW4gU29ja2V0Q2xpZW50LnByb3RvdHlwZSkpIHtcbiAgICB2ZXJzaW9uID0gMztcbiAgfSBlbHNlIHtcbiAgICAvLyBXRFMgdmVyc2lvbnMgPj0zLjUuMCA8NFxuICAgIGlmIChcbiAgICAgICdnZXRDbGllbnRQYXRoJyBpbiBTb2NrZXRDbGllbnQgfHxcbiAgICAgIE9iamVjdC5nZXRQcm90b3R5cGVPZihTb2NrZXRDbGllbnQpLm5hbWUgPT09ICdCYXNlQ2xpZW50J1xuICAgICkge1xuICAgICAgdmVyc2lvbiA9IDM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZlcnNpb24gPSA0O1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZW5mb3JjZVdzOiBlbmZvcmNlV3MsXG4gICAgdmVyc2lvbjogdmVyc2lvbixcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBnZXRXRFNNZXRhZGF0YTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///2213\n");
|
|
1489
1489
|
|
|
1490
1490
|
/***/ })
|
|
1491
1491
|
|
package/jest.config.js
CHANGED
|
@@ -31,6 +31,7 @@ export default {
|
|
|
31
31
|
moduleNameMapper: {
|
|
32
32
|
"\\.(css|less|sass|scss)$": "identity-obj-proxy",
|
|
33
33
|
},
|
|
34
|
+
testPathIgnorePatterns: ["/node_modules/", "/dist/"],
|
|
34
35
|
coverageDirectory: "coverage",
|
|
35
36
|
coverageReporters: ["json", "lcov", "text", "html"],
|
|
36
37
|
collectCoverageFrom: [
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stanlemon/webdev",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.46",
|
|
4
4
|
"description": "My typical web development setup, but without all the copy and paste.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"webpack",
|
|
@@ -36,7 +36,6 @@
|
|
|
36
36
|
"@types/webpack-env": "^1.16.4",
|
|
37
37
|
"babel-jest": "^28.1.0",
|
|
38
38
|
"babel-loader": "^8.2.5",
|
|
39
|
-
"babel-plugin-add-import-extension": "^1.6.0",
|
|
40
39
|
"clean-webpack-plugin": "^4.0.0",
|
|
41
40
|
"css-loader": "^6.7.1",
|
|
42
41
|
"dotenv": "^16.0.0",
|
package/tsconfig.json
CHANGED
|
@@ -1,25 +1,26 @@
|
|
|
1
1
|
{
|
|
2
2
|
"compilerOptions": {
|
|
3
|
-
"
|
|
3
|
+
"noEmit": true,
|
|
4
|
+
"target": "esnext",
|
|
5
|
+
"lib": [
|
|
6
|
+
"dom",
|
|
7
|
+
"dom.iterable",
|
|
8
|
+
"esnext"
|
|
9
|
+
],
|
|
10
|
+
"sourceMap": true,
|
|
4
11
|
"declaration": true,
|
|
5
12
|
"declarationMap": true,
|
|
13
|
+
"allowJs": true,
|
|
6
14
|
"esModuleInterop": true,
|
|
15
|
+
"allowSyntheticDefaultImports": true,
|
|
16
|
+
"strict": true,
|
|
7
17
|
"forceConsistentCasingInFileNames": true,
|
|
8
|
-
"incremental": true,
|
|
9
|
-
"isolatedModules": true,
|
|
10
|
-
"jsx": "react-jsx",
|
|
11
|
-
"lib": [
|
|
12
|
-
"ES2021",
|
|
13
|
-
"DOM"
|
|
14
|
-
],
|
|
15
|
-
"module": "commonjs",
|
|
16
|
-
"moduleResolution": "node",
|
|
17
|
-
"noEmit": true,
|
|
18
18
|
"noFallthroughCasesInSwitch": true,
|
|
19
19
|
"noImplicitAny": true,
|
|
20
|
-
"
|
|
20
|
+
"module": "commonjs",
|
|
21
|
+
"moduleResolution": "node",
|
|
21
22
|
"resolveJsonModule": true,
|
|
22
|
-
"
|
|
23
|
-
"
|
|
23
|
+
"isolatedModules": true,
|
|
24
|
+
"jsx": "react-jsx"
|
|
24
25
|
}
|
|
25
26
|
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*
|
|
3
|
-
* ATTENTION: An "eval-source-map" devtool has been used.
|
|
4
|
-
* This devtool is neither made for production nor for readable output files.
|
|
5
|
-
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
|
|
6
|
-
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
|
|
7
|
-
* or disable the default devtool with "devtool: false".
|
|
8
|
-
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
|
|
9
|
-
*/
|
|
10
|
-
(self["webpackChunk_stanlemon_webdev"] = self["webpackChunk_stanlemon_webdev"] || []).push([["main"],{
|
|
11
|
-
|
|
12
|
-
/***/ 6738:
|
|
13
|
-
/*!**************************!*\
|
|
14
|
-
!*** ./webpack.test.tsx ***!
|
|
15
|
-
\**************************/
|
|
16
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
17
|
-
|
|
18
|
-
eval("var _Users_stan_Sites_javascript_node_modules_react_refresh_runtime_js__WEBPACK_IMPORTED_MODULE_0___namespace_cache;\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Users_stan_Sites_javascript_node_modules_react_refresh_runtime_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../node_modules/react-refresh/runtime.js */ 9139);\n/* harmony import */ var react_dom_client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom/client */ 7029);\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ 2322);\n/* provided dependency */ var __react_refresh_utils__ = __webpack_require__(/*! ../../node_modules/@pmmmwh/react-refresh-webpack-plugin/lib/runtime/RefreshUtils.js */ 5506);\n\n__webpack_require__.$Refresh$.runtime = /*#__PURE__*/ (_Users_stan_Sites_javascript_node_modules_react_refresh_runtime_js__WEBPACK_IMPORTED_MODULE_0___namespace_cache || (_Users_stan_Sites_javascript_node_modules_react_refresh_runtime_js__WEBPACK_IMPORTED_MODULE_0___namespace_cache = __webpack_require__.t(_Users_stan_Sites_javascript_node_modules_react_refresh_runtime_js__WEBPACK_IMPORTED_MODULE_0__, 2)));\n\n\n\n\n\nfunction App({\n name\n}) {\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"div\", {\n children: [\"Hello \", name, \"!\"]\n });\n}\n\n_c = App;\nconst root = (0,react_dom_client__WEBPACK_IMPORTED_MODULE_1__.createRoot)(document.body.appendChild(document.createElement(\"div\")));\nroot.render( /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(App, {\n name: \"world\"\n}));\n\nvar _c;\n\n__webpack_require__.$Refresh$.register(_c, \"App\");\n\nconst $ReactRefreshModuleId$ = __webpack_require__.$Refresh$.moduleId;\nconst $ReactRefreshCurrentExports$ = __react_refresh_utils__.getModuleExports(\n\t$ReactRefreshModuleId$\n);\n\nfunction $ReactRefreshModuleRuntime$(exports) {\n\tif (false) {}\n}\n\nif (typeof Promise !== 'undefined' && $ReactRefreshCurrentExports$ instanceof Promise) {\n\t$ReactRefreshCurrentExports$.then($ReactRefreshModuleRuntime$);\n} else {\n\t$ReactRefreshModuleRuntime$($ReactRefreshCurrentExports$);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjczOC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7OztBQU1BLFNBQVNDLEdBQVQsQ0FBYTtFQUFFQztBQUFGLENBQWIsRUFBOEI7RUFDNUIsb0JBQU87SUFBQSxxQkFBWUEsSUFBWjtFQUFBLEVBQVA7QUFDRDs7S0FGUUQ7QUFJVCxNQUFNRSxJQUFJLEdBQUdILDREQUFVLENBQ3JCSSxRQUFRLENBQUNDLElBQVQsQ0FBY0MsV0FBZCxDQUEwQkYsUUFBUSxDQUFDRyxhQUFULENBQXVCLEtBQXZCLENBQTFCLENBRHFCLENBQXZCO0FBR0FKLElBQUksQ0FBQ0ssTUFBTCxlQUFZLHVEQUFDLEdBQUQ7RUFBSyxJQUFJLEVBQUM7QUFBVixFQUFaIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQHN0YW5sZW1vbi93ZWJkZXYvLi93ZWJwYWNrLnRlc3QudHN4PzgzYmMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlUm9vdCB9IGZyb20gXCJyZWFjdC1kb20vY2xpZW50XCI7XG5cbnR5cGUgUHJvcHMgPSB7XG4gIG5hbWU6IHN0cmluZztcbn07XG5cbmZ1bmN0aW9uIEFwcCh7IG5hbWUgfTogUHJvcHMpIHtcbiAgcmV0dXJuIDxkaXY+SGVsbG8ge25hbWV9ITwvZGl2Pjtcbn1cblxuY29uc3Qgcm9vdCA9IGNyZWF0ZVJvb3QoXG4gIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKSlcbik7XG5yb290LnJlbmRlcig8QXBwIG5hbWU9XCJ3b3JsZFwiIC8+KTtcbiJdLCJuYW1lcyI6WyJjcmVhdGVSb290IiwiQXBwIiwibmFtZSIsInJvb3QiLCJkb2N1bWVudCIsImJvZHkiLCJhcHBlbmRDaGlsZCIsImNyZWF0ZUVsZW1lbnQiLCJyZW5kZXIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///6738\n");
|
|
19
|
-
|
|
20
|
-
/***/ })
|
|
21
|
-
|
|
22
|
-
},
|
|
23
|
-
/******/ __webpack_require__ => { // webpackRuntimeModules
|
|
24
|
-
/******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
|
|
25
|
-
/******/ __webpack_require__.O(0, ["react-node_modules_react-dom_client_js-node_modules_react-refresh_runtime_js-node_modules_rea-832849","vendors"], () => (__webpack_exec__(794), __webpack_exec__(6101), __webpack_exec__(6738)));
|
|
26
|
-
/******/ var __webpack_exports__ = __webpack_require__.O();
|
|
27
|
-
/******/ }
|
|
28
|
-
]);
|