function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } /* global __resourceQuery, __webpack_hash__ */ // @ts-expect-error import hotEmitter from "webpack/hot/emitter.js"; // @ts-expect-error import webpackHotLog from "webpack/hot/log.js"; import { createOverlay, formatProblem } from "./overlay.js"; import { defineProgressElement, isProgressSupported } from "./progress.js"; import socket from "./socket.js"; import { log, setLogLevel } from "./utils/log.js"; import sendMessage from "./utils/sendMessage.js"; // eslint-disable-next-line jsdoc/no-restricted-syntax /** @typedef {any} EXPECTED_ANY */ /** * @typedef {object} RawOverlayOptions * @property {string=} warnings warnings * @property {string=} errors errors * @property {string=} runtimeErrors runtime errors * @property {string=} trustedTypesPolicyName trusted types policy name */ /** * @typedef {object} OverlayOptions * @property {(boolean | ((error: Error) => boolean))=} warnings warnings * @property {(boolean | ((error: Error) => boolean))=} errors errors * @property {(boolean | ((error: Error) => boolean))=} runtimeErrors runtime errors * @property {string=} trustedTypesPolicyName trusted types policy name */ /** @typedef {false | true | "none" | "error" | "warn" | "info" | "log" | "verbose"} LogLevel */ /** * @typedef {object} Options * @property {boolean} hot true when hot enabled, otherwise false * @property {boolean} liveReload true when live reload enabled, otherwise false * @property {boolean} progress true when need to show progress, otherwise false * @property {boolean | OverlayOptions} overlay overlay options * @property {LogLevel=} logging logging level * @property {number=} reconnect count of allowed reconnection */ /** * @typedef {object} Status * @property {boolean} isUnloading true when unloaded, otherwise false * @property {string} currentHash current hash * @property {string=} previousHash previous hash */ /** * @param {boolean | RawOverlayOptions | OverlayOptions} overlayOptions overlay options */ var decodeOverlayOptions = function decodeOverlayOptions(overlayOptions) { if (_typeof(overlayOptions) === "object") { var requiredOptions = ["warnings", "errors", "runtimeErrors"]; for (var i = 0; i < requiredOptions.length; i++) { var property = /** @type {keyof Omit} */ requiredOptions[i]; if (typeof overlayOptions[property] === "string") { var overlayFilterFunctionString = decodeURIComponent(overlayOptions[property]); /** @type {OverlayOptions} */ overlayOptions[property] = /** @type {(error: Error) => boolean} */ // eslint-disable-next-line no-new-func new Function("message", "var callback = ".concat(overlayFilterFunctionString, "\n return callback(message)")); } } } }; /** * @type {Status} */ var status = { isUnloading: false, currentHash: __webpack_hash__ }; /** * @returns {string} current script source */ var getCurrentScriptSource = function getCurrentScriptSource() { // `document.currentScript` is the most accurate way to find the current script, // but is not supported in all browsers. if (document.currentScript) { return /** @type {string} */document.currentScript.getAttribute("src"); } // Fallback to getting all scripts running in the document. var scriptElements = document.scripts || []; var scriptElementsWithSrc = Array.prototype.filter.call(scriptElements, function (element) { return element.getAttribute("src"); }); if (scriptElementsWithSrc.length > 0) { var currentScript = scriptElementsWithSrc[scriptElementsWithSrc.length - 1]; return currentScript.getAttribute("src"); } // Fail as there was no script to use. throw new Error("[webpack-dev-server] Failed to get current script source."); }; /** @typedef {{ hot?: string, ["live-reload"]?: string, progress?: string, reconnect?: string, logging?: LogLevel, overlay?: string, fromCurrentScript?: boolean }} AdditionalParsedURL */ /** @typedef {Partial & AdditionalParsedURL} ParsedURL */ /** * @param {string} resourceQuery resource query * @returns {ParsedURL} parsed URL */ var parseURL = function parseURL(resourceQuery) { /** @type {ParsedURL} */ var result = {}; if (typeof resourceQuery === "string" && resourceQuery !== "") { var searchParams = resourceQuery.slice(1).split("&"); for (var i = 0; i < searchParams.length; i++) { var pair = searchParams[i].split("="); /** @type {EXPECTED_ANY} */ result[pair[0]] = decodeURIComponent(pair[1]); } } else { // Else, get the url from the