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); } /* global __resourceQuery, __webpack_hash__ */ /// import webpackHotLog from "webpack/hot/log.js"; import hotEmitter from "webpack/hot/emitter.js"; import socket from "./socket.js"; import { formatProblem, createOverlay } from "./overlay.js"; import { log, setLogLevel } from "./utils/log.js"; import sendMessage from "./utils/sendMessage.js"; import { isProgressSupported, defineProgressElement } from "./progress.js"; /** * @typedef {Object} OverlayOptions * @property {boolean | (error: Error) => boolean} [warnings] * @property {boolean | (error: Error) => boolean} [errors] * @property {boolean | (error: Error) => boolean} [runtimeErrors] * @property {string} [trustedTypesPolicyName] */ /** * @typedef {Object} Options * @property {boolean} hot * @property {boolean} liveReload * @property {boolean} progress * @property {boolean | OverlayOptions} overlay * @property {string} [logging] * @property {number} [reconnect] */ /** * @typedef {Object} Status * @property {boolean} isUnloading * @property {string} currentHash * @property {string} [previousHash] */ /** * @param {boolean | { warnings?: boolean | string; errors?: boolean | string; runtimeErrors?: boolean | string; }} overlayOptions */ var decodeOverlayOptions = function decodeOverlayOptions(overlayOptions) { if (typeof overlayOptions === "object") { ["warnings", "errors", "runtimeErrors"].forEach(function (property) { if (typeof overlayOptions[property] === "string") { var overlayFilterFunctionString = decodeURIComponent(overlayOptions[property]); // eslint-disable-next-line no-new-func overlayOptions[property] = new Function("message", "var callback = ".concat(overlayFilterFunctionString, "\n return callback(message)")); } }); } }; /** * @type {Status} */ var status = { isUnloading: false, // eslint-disable-next-line camelcase currentHash: __webpack_hash__ }; /** * @returns {string} */ 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 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."); }; /** * @param {string} resourceQuery * @returns {{ [key: string]: string | boolean }} */ var parseURL = function parseURL(resourceQuery) { /** @type {{ [key: string]: string }} */ 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("="); result[pair[0]] = decodeURIComponent(pair[1]); } } else { // Else, get the url from the