UNPKG

webpack-ext-reloader

Version:

Watch for file changes and reload WebExtensions on browsers.

1,142 lines (1,003 loc) 639 kB
#!/usr/bin/env node /// <reference path="../typings/webpack-ext-reloader.d.ts" /> (function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(require("minimist"), require("webpack"), require("lodash"), require("useragent"), require("ws"), require("webpack-sources"), require("json5")); else if(typeof define === 'function' && define.amd) define(["minimist", "webpack", "lodash", "useragent", "ws", "webpack-sources", "json5"], factory); else { var a = typeof exports === 'object' ? factory(require("minimist"), require("webpack"), require("lodash"), require("useragent"), require("ws"), require("webpack-sources"), require("json5")) : factory(root["minimist"], root["webpack"], root["lodash"], root["useragent"], root["ws"], root["webpack-sources"], root["json5"]); for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; } })(global, (__WEBPACK_EXTERNAL_MODULE__9898__, __WEBPACK_EXTERNAL_MODULE__9371__, __WEBPACK_EXTERNAL_MODULE__6773__, __WEBPACK_EXTERNAL_MODULE__6384__, __WEBPACK_EXTERNAL_MODULE__2002__, __WEBPACK_EXTERNAL_MODULE__7396__, __WEBPACK_EXTERNAL_MODULE__2741__) => { return /******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ({ /***/ 5058: /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; 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); } function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), 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); } Object.defineProperty(exports, "__esModule", ({ value: true })); var util_1 = __webpack_require__(9023); var webpack = __webpack_require__(9371); var ExtensionReloader_1 = __webpack_require__(7294); var logger_1 = __webpack_require__(9567); var ExtensionCompiler = /*#__PURE__*/function () { function ExtensionCompiler(config, pluginOptions) { _classCallCheck(this, ExtensionCompiler); this.compiler = webpack(config); new ExtensionReloader_1["default"](pluginOptions).apply(this.compiler); } return _createClass(ExtensionCompiler, [{ key: "watch", value: function watch() { // eslint-disable-next-line consistent-return this.compiler.watch({}, function (err, stats) { if (err) { return ExtensionCompiler.treatErrors(err); } (0, logger_1.info)(stats.toString({ colors: true })); }); } }], [{ key: "treatErrors", value: function treatErrors(err) { (0, util_1.log)(err.stack || err); if (err.details) { (0, util_1.log)(err.details); } } }]); }(); exports["default"] = ExtensionCompiler; /***/ }), /***/ 9429: /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); /* eslint-disable no-throw-literal */ var path_1 = __webpack_require__(6928); var process_1 = __webpack_require__(932); var util_1 = __webpack_require__(9023); var options_constants_1 = __webpack_require__(2846); var args_constant_1 = __webpack_require__(223); var events_constants_1 = __webpack_require__(814); var manual_1 = __webpack_require__(9538); exports["default"] = function (args) { if (args[args_constant_1.HELP]) { (0, util_1.log)((0, manual_1["default"])()); throw { type: events_constants_1.SIG_EXIT, payload: 0 }; } var config = args[args_constant_1.CONFIG] || options_constants_1.DEFAULT_CONFIG; var port = args[args_constant_1.PORT] || options_constants_1.DEFAULT_PORT; var manifest = args[args_constant_1.MANIFEST] || null; var pluginOptions = { manifest: manifest, port: port, reloadPage: !args[args_constant_1.NO_PAGE_RELOAD] }; var optPath = (0, path_1.resolve)((0, process_1.cwd)(), config); try { // eslint-disable-next-line no-eval var webpackConfig = eval('require')(optPath); return { webpackConfig: webpackConfig, pluginOptions: pluginOptions }; } catch (err) { (0, util_1.log)("[Error] Couldn't require the file: ".concat(optPath)); (0, util_1.log)(err); throw { type: events_constants_1.SIG_EXIT, payload: 1 }; } }; /***/ }), /***/ 223: /***/ ((__unused_webpack_module, exports) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.MANIFEST = exports.NO_PAGE_RELOAD = exports.PORT = exports.CONFIG = exports.HELP = void 0; exports.HELP = 'help'; exports.CONFIG = 'config'; exports.PORT = 'port'; exports.NO_PAGE_RELOAD = 'no-page-reload'; exports.MANIFEST = 'manifest'; /***/ }), /***/ 814: /***/ ((__unused_webpack_module, exports) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.SIG_EXIT = void 0; exports.SIG_EXIT = 'SIG_EXIT'; /***/ }), /***/ 202: /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; var __rest = this && this.__rest || function (s, e) { var t = {}; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; } return t; }; Object.defineProperty(exports, "__esModule", ({ value: true })); var minimist = __webpack_require__(9898); var source_map_support_1 = __webpack_require__(2345); var util_1 = __webpack_require__(9023); var args_parser_1 = __webpack_require__(9429); var events_constants_1 = __webpack_require__(814); var ExtensionCompiler_1 = __webpack_require__(5058); (0, source_map_support_1.install)(); // eslint-disable-next-line @typescript-eslint/no-unused-vars var _a = minimist(process.argv.slice(2)), _ = _a._, args = __rest(_a, ["_"]); try { var _ref = (0, args_parser_1["default"])(args), webpackConfig = _ref.webpackConfig, pluginOptions = _ref.pluginOptions; var compiler = new ExtensionCompiler_1["default"](webpackConfig, pluginOptions); compiler.watch(); } catch (err) { if (err.type === events_constants_1.SIG_EXIT) { process.exit(err.payload); } else { (0, util_1.log)(err); process.exit(err.code); } } /***/ }), /***/ 9538: /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); /* eslint-disable no-useless-escape */ var options_constants_1 = __webpack_require__(2846); exports["default"] = function () { return "\nUsage:\n wer [--config <config_path>] [--port <port_number>] [--no-page-reload] [--content-script <content_script_paths>] [--background <bg_script_path>] [--extension-page <extension_page_paths>]\n\nComplete API:\n+------------------------------------------------------------------------------------------------------------+\n| name | default | description |\n|--------------------|-------------------|-------------------------------------------------------------------|\n| --help | | Show this help\n| --config | ".concat(options_constants_1.DEFAULT_CONFIG, " | The webpack configuration file path |\n| --port | ").concat(options_constants_1.DEFAULT_PORT, " | The port to run the server |\n| --content-script | ").concat(options_constants_1.DEFAULT_CONTENT_SCRIPT_ENTRY, " | The **entry/entries** name(s) for the content script(s) |\n| --background | ").concat(options_constants_1.DEFAULT_BACKGROUND_ENTRY, " | The **entry** name for the background script |\n| --extension-page | ").concat(options_constants_1.DEFAULT_EXTENSION_PAGE_ENTRY, " | The **entry/entries** name(s) for the extension pages(s) |\n| --manifest | null | The **manifest.json** path |\n| --no-page-reload | | Disable the auto reloading of all **pages** which runs the plugin |\n+------------------------------------------------------------------------------------------------------------+\n"); }; /***/ }), /***/ 7294: /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; 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); } function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; } function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } function _arrayWithHoles(r) { if (Array.isArray(r)) return r; } function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), 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 _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); } function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); } function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); } function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); } Object.defineProperty(exports, "__esModule", ({ value: true })); var lodash_1 = __webpack_require__(6773); var webpack_1 = __webpack_require__(9371); var hot_reload_1 = __webpack_require__(8777); var warnings_1 = __webpack_require__(3437); var middleware_1 = __webpack_require__(2294); var default_options_1 = __webpack_require__(8241); var logger_1 = __webpack_require__(9567); var manifest_1 = __webpack_require__(5474); var AbstractExtensionReloader_1 = __webpack_require__(4644); var CompilerEventsFacade_1 = __webpack_require__(6171); var ExtensionReloaderImpl = /*#__PURE__*/function (_AbstractExtensionRel) { function ExtensionReloaderImpl(options) { var _this; _classCallCheck(this, ExtensionReloaderImpl); _this = _callSuper(this, ExtensionReloaderImpl); _this._opts = options; _this._chunkVersions = {}; return _this; } _inherits(ExtensionReloaderImpl, _AbstractExtensionRel); return _createClass(ExtensionReloaderImpl, [{ key: "_isWebpackGToEV5", value: function _isWebpackGToEV5() { if (webpack_1.version) { var _webpack_1$version$sp = webpack_1.version.split('.'), _webpack_1$version$sp2 = _slicedToArray(_webpack_1$version$sp, 1), major = _webpack_1$version$sp2[0]; if (parseInt(major, 10) >= 5) { return true; } } return false; } }, { key: "_whatChanged", value: function _whatChanged(chunks, _ref) { var background = _ref.background, contentScript = _ref.contentScript, extensionPage = _ref.extensionPage; var changedChunks = []; // eslint-disable-next-line no-restricted-syntax var _iterator = _createForOfIteratorHelper(chunks), _step; try { for (_iterator.s(); !(_step = _iterator.n()).done;) { var chunk = _step.value; var oldVersion = this._chunkVersions[chunk.name]; this._chunkVersions[chunk.name] = chunk.hash; if (chunk.hash !== oldVersion) { changedChunks.push(chunk); } } } catch (err) { _iterator.e(err); } finally { _iterator.f(); } var contentOrBgChanged = changedChunks.some(function (_ref2) { var name = _ref2.name; var contentChanged = false; var bgChanged = name === background; if (Array.isArray(contentScript)) { contentChanged = contentScript.some(function (script) { return script === name; }); } else { contentChanged = name === contentScript; } return contentChanged || bgChanged; }); // var onlyPageChanged = !contentOrBgChanged && changedChunks.some(function (_ref3) { var name = _ref3.name; var pageChanged = false; if (Array.isArray(extensionPage)) { pageChanged = extensionPage.some(function (script) { return script === name; }); } else { pageChanged = name === extensionPage; } // return pageChanged; }); return { contentOrBgChanged: contentOrBgChanged, onlyPageChanged: onlyPageChanged }; } }, { key: "_registerPlugin", value: function _registerPlugin(compiler) { var _this2 = this; var _ref4 = (0, lodash_1.merge)(default_options_1["default"], this._opts), reloadPage = _ref4.reloadPage, port = _ref4.port, entries = _ref4.entries, manifest = _ref4.manifest; var parsedEntries = manifest ? (0, manifest_1.extractEntries)(compiler.options.entry, manifest, compiler.options.output) : entries; this._eventAPI = new CompilerEventsFacade_1["default"](compiler); this._injector = (0, middleware_1.middlewareInjector)(parsedEntries, { port: port, reloadPage: reloadPage }); this._eventAPI.beforeOptimizeChunks(function (comp, chunks) { comp.assets = Object.assign(Object.assign({}, comp.assets), _this2._injector(comp.assets, chunks)); }); this._eventAPI.afterEmit(function (comp) { // reload page after first emit if (!_this2._triggerer) _this2._triggerer = (0, hot_reload_1.changesTriggerer)(port, reloadPage); var _this2$_whatChanged = _this2._whatChanged(comp.chunks, parsedEntries), contentOrBgChanged = _this2$_whatChanged.contentOrBgChanged, onlyPageChanged = _this2$_whatChanged.onlyPageChanged; if (contentOrBgChanged || onlyPageChanged) { _this2._triggerer(onlyPageChanged); } }); } }, { key: "apply", value: function apply(compiler) { if ((this._isWebpackGToEV5() ? compiler.options.mode : process.env.NODE_ENV) === 'development') { this._registerPlugin(compiler); } else { (0, logger_1.warn)(warnings_1.onlyOnDevelopmentMsg.get()); } } }]); }(AbstractExtensionReloader_1["default"]); exports["default"] = ExtensionReloaderImpl; /***/ }), /***/ 5256: /***/ ((__unused_webpack_module, exports) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.NEW_FAST_RELOAD_CALLS = exports.NEW_FAST_RELOAD_DEBOUNCING_FRAME = exports.NEW_FAST_RELOAD_CHROME_VERSION = exports.FAST_RELOAD_WAIT = exports.FAST_RELOAD_CALLS = exports.FAST_RELOAD_DEBOUNCING_FRAME = void 0; /** * Chrome lets only a max number of calls in a time frame * before block the plugin for be reloading itself to much * @see https://github.com/rubenspgcavalcante/webpack-chrome-extension-reloader/issues/2 */ exports.FAST_RELOAD_DEBOUNCING_FRAME = 2000; exports.FAST_RELOAD_CALLS = 6; exports.FAST_RELOAD_WAIT = 10 * 1000; // ================================================================================================================= // /** * A new reloading rate was created after opening a bug ticket on * Chromium, and the revision was merged to master * @see https://chromium-review.googlesource.com/c/chromium/src/+/1340272 */ /** * The Chrome/Chromium version number that includes the new rates * @see https://storage.googleapis.com/chromium-find-releases-static/d3b.html#d3b25e1380984b2f1f23d0e8dc1a337743c6caaf */ exports.NEW_FAST_RELOAD_CHROME_VERSION = [73, 0, 3637]; exports.NEW_FAST_RELOAD_DEBOUNCING_FRAME = 1000; exports.NEW_FAST_RELOAD_CALLS = 30; /***/ }), /***/ 5066: /***/ ((__unused_webpack_module, exports) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.DEBUG = exports.ERROR = exports.WARN = exports.INFO = exports.LOG = exports.NONE = void 0; exports.NONE = 0; exports.LOG = 1; exports.INFO = 2; exports.WARN = 3; exports.ERROR = 4; exports.DEBUG = 5; /***/ }), /***/ 8893: /***/ ((__unused_webpack_module, exports) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.SOCKET_ERR_CODE_REF = exports.RECONNECT_INTERVAL = void 0; exports.RECONNECT_INTERVAL = 2000; exports.SOCKET_ERR_CODE_REF = 'https://tools.ietf.org/html/rfc6455#section-7.4.1'; /***/ }), /***/ 2846: /***/ ((__unused_webpack_module, exports) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.DEFAULT_EXTENSION_PAGE_ENTRY = exports.DEFAULT_BACKGROUND_ENTRY = exports.DEFAULT_CONTENT_SCRIPT_ENTRY = exports.DEFAULT_RELOAD_PAGE = exports.DEFAULT_CONFIG = exports.DEFAULT_PORT = void 0; exports.DEFAULT_PORT = 9090; exports.DEFAULT_CONFIG = 'webpack.config.js'; exports.DEFAULT_RELOAD_PAGE = true; exports.DEFAULT_CONTENT_SCRIPT_ENTRY = 'content-script'; exports.DEFAULT_BACKGROUND_ENTRY = 'background'; exports.DEFAULT_EXTENSION_PAGE_ENTRY = 'popup'; /***/ }), /***/ 9931: /***/ ((__unused_webpack_module, exports) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.REF_URL = void 0; exports.REF_URL = 'https://github.com/rubenspgcavalcante/webpack-extension-reloader/wiki/General-Information'; /***/ }), /***/ 8023: /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; 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); } function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), 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); } Object.defineProperty(exports, "__esModule", ({ value: true })); var useragent_1 = __webpack_require__(6384); var ws_1 = __webpack_require__(2002); var logger_1 = __webpack_require__(9567); var SignEmitter_1 = __webpack_require__(3724); var HotReloaderServer = /*#__PURE__*/function () { function HotReloaderServer(port) { _classCallCheck(this, HotReloaderServer); this._server = new ws_1.Server({ port: port }); } return _createClass(HotReloaderServer, [{ key: "listen", value: function listen() { var _this = this; this._server.on('connection', function (ws, msg) { var userAgent = (0, useragent_1.parse)(msg.headers['user-agent']); _this._signEmitter = new SignEmitter_1["default"](_this._server, userAgent); ws.on('message', function (data) { return (0, logger_1.info)("Message from ".concat(userAgent.family, ": ").concat(JSON.parse(data).payload)); }); ws.on('error', function () { // NOOP - swallow socket errors due to http://git.io/vbhSN }); }); } }, { key: "signChange", value: function signChange(reloadPage, onlyPageChanged) { if (this._signEmitter) { return this._signEmitter.safeSignChange(reloadPage, onlyPageChanged); } return Promise.resolve(null); } }]); }(); exports["default"] = HotReloaderServer; /***/ }), /***/ 3724: /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; 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); } function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; } function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } function _arrayWithHoles(r) { if (Array.isArray(r)) return r; } function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), 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); } Object.defineProperty(exports, "__esModule", ({ value: true })); var lodash_1 = __webpack_require__(6773); var ws_1 = __webpack_require__(2002); var fast_reloading_constants_1 = __webpack_require__(5256); var block_protection_1 = __webpack_require__(8492); var signals_1 = __webpack_require__(1826); var SignEmitter = /*#__PURE__*/function () { function SignEmitter(server, _ref) { var family = _ref.family, major = _ref.major, minor = _ref.minor, patch = _ref.patch; _classCallCheck(this, SignEmitter); this._server = server; if (family === 'Chrome') { var _ref2 = this._satisfies([parseInt(major, 10), parseInt(minor, 10), parseInt(patch, 10)], fast_reloading_constants_1.NEW_FAST_RELOAD_CHROME_VERSION) ? [fast_reloading_constants_1.NEW_FAST_RELOAD_CALLS, fast_reloading_constants_1.NEW_FAST_RELOAD_DEBOUNCING_FRAME] : [fast_reloading_constants_1.FAST_RELOAD_CALLS, fast_reloading_constants_1.FAST_RELOAD_DEBOUNCING_FRAME], _ref3 = _slicedToArray(_ref2, 2), reloadCalls = _ref3[0], reloadDeboucingFrame = _ref3[1]; var debouncer = (0, block_protection_1.debounceSignal)(reloadDeboucingFrame, this); var blocker = (0, block_protection_1.fastReloadBlocker)(reloadCalls, fast_reloading_constants_1.FAST_RELOAD_WAIT, this); this._safeSignChange = debouncer(blocker(this._setupSafeSignChange())); } else { this._safeSignChange = this._setupSafeSignChange(); } } return _createClass(SignEmitter, [{ key: "safeSignChange", value: function safeSignChange(reloadPage, onlyPageChanged) { var _this = this; return new Promise(function (res, rej) { _this._safeSignChange(reloadPage, onlyPageChanged, res, rej); }); } }, { key: "_setupSafeSignChange", value: function _setupSafeSignChange() { var _this2 = this; return function (reloadPage, onlyPageChanged, onSuccess, onError) { try { _this2._sendMsg((0, signals_1.signChange)({ reloadPage: reloadPage, onlyPageChanged: onlyPageChanged })); onSuccess(); } catch (err) { onError(err); } }; } }, { key: "_sendMsg", value: function _sendMsg(msg) { this._server.clients.forEach(function (client) { if (client.readyState === ws_1.OPEN) { client.send(JSON.stringify(msg)); } }); } }, { key: "_satisfies", value: function _satisfies(browserVersion, targetVersion) { var versionPairs = (0, lodash_1.zip)(browserVersion, targetVersion); // eslint-disable-next-line no-restricted-syntax var _iterator = _createForOfIteratorHelper(versionPairs), _step; try { for (_iterator.s(); !(_step = _iterator.n()).done;) { var _step$value = _slicedToArray(_step.value, 2), _step$value$ = _step$value[0], version = _step$value$ === void 0 ? 0 : _step$value$, _step$value$2 = _step$value[1], target = _step$value$2 === void 0 ? 0 : _step$value$2; if (version !== target) { return version > target; } } } catch (err) { _iterator.e(err); } finally { _iterator.f(); } return true; } }]); }(); exports["default"] = SignEmitter; /***/ }), /***/ 1458: /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); var logger_1 = __webpack_require__(9567); var HotReloaderServer_1 = __webpack_require__(8023); var changesTriggerer = function changesTriggerer(port, reloadPage) { var server = new HotReloaderServer_1["default"](port); (0, logger_1.info)('[ Starting the Web Extension Hot Reload Server... ]'); server.listen(); return function (onlyPageChanged) { return server.signChange(reloadPage, onlyPageChanged); }; }; exports["default"] = changesTriggerer; /***/ }), /***/ 8777: /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.changesTriggerer = void 0; var changes_triggerer_1 = __webpack_require__(1458); exports.changesTriggerer = changes_triggerer_1["default"]; /***/ }), /***/ 7741: /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; 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); } function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), 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); } Object.defineProperty(exports, "__esModule", ({ value: true })); var safe_1 = __webpack_require__(948); var lodash_1 = __webpack_require__(6773); var log_constants_1 = __webpack_require__(5066); var reference_docs_constants_1 = __webpack_require__(9931); var Message = /*#__PURE__*/function () { function Message(type, referenceNumber, message) { _classCallCheck(this, Message); this.type = type; this.referenceNumber = referenceNumber; this.message = message; } return _createClass(Message, [{ key: "get", value: function get() { var additionalData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var code = "WER-".concat(this.getPrefix()).concat(this.referenceNumber); var refLink = (0, safe_1.bold)((0, safe_1.white)("".concat(reference_docs_constants_1.REF_URL, "#").concat(code))); return "[".concat(code, "] ").concat((0, lodash_1.template)(this.message, additionalData), ".\nVisit ").concat(refLink, " for complete details\n"); } }, { key: "toString", value: function toString() { return this.get(); } }, { key: "getPrefix", value: function getPrefix() { switch (this.type) { case log_constants_1.INFO: return 'I'; case log_constants_1.WARN: return 'W'; case log_constants_1.ERROR: return 'E'; default: return ''; } } }]); }(); exports["default"] = Message; /***/ }), /***/ 2871: /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.bgScriptManifestRequiredMsg = exports.bgScriptEntryErrorMsg = void 0; /* eslint-disable no-multi-str */ var log_constants_1 = __webpack_require__(5066); var Message_1 = __webpack_require__(7741); exports.bgScriptEntryErrorMsg = new Message_1["default"](log_constants_1.ERROR, 1, "Background script webpack entry not found/match \ the provided on 'manifest.json' or 'entry.background' \ option of the plugin"); exports.bgScriptManifestRequiredMsg = new Message_1["default"](log_constants_1.ERROR, 2, 'Background script or service worker on manifest is required'); /***/ }), /***/ 3437: /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.onlyOnDevelopmentMsg = void 0; /* eslint-disable no-multi-str */ var log_constants_1 = __webpack_require__(5066); var Message_1 = __webpack_require__(7741); exports.onlyOnDevelopmentMsg = new Message_1["default"](log_constants_1.WARN, 1, 'Warning, Extension Reloader Plugin was not enabled! \ It runs only on webpack --mode=development (v5 or more) \ or with NODE_ENV=development (lower versions)'); /***/ }), /***/ 2294: /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.middlewareInjector = void 0; var middleware_injector_1 = __webpack_require__(7621); exports.middlewareInjector = middleware_injector_1["default"]; /***/ }), /***/ 7621: /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); var webpack_sources_1 = __webpack_require__(7396); var middleware_source_builder_1 = __webpack_require__(9322); var middlewareInjector = function middlewareInjector(_ref, _ref2) { var background = _ref.background, contentScript = _ref.contentScript, extensionPage = _ref.extensionPage; var port = _ref2.port, reloadPage = _ref2.reloadPage; var middlewareSource = (0, middleware_source_builder_1["default"])({ port: port, reloadPage: reloadPage }); var matchBgOrContentOrPage = function matchBgOrContentOrPage(name) { return name === background || name === contentScript || contentScript && contentScript.includes(name) || name === extensionPage || extensionPage && extensionPage.includes(name); }; return function (assets, chunks) { return Array.from(chunks).reduce(function (prev, _ref3) { var name = _ref3.name, files = _ref3.files; if (matchBgOrContentOrPage(name)) { files.forEach(function (entryPoint) { if (/\.js$/.test(entryPoint)) { prev[entryPoint] = new webpack_sources_1.ConcatSource(middlewareSource, assets[entryPoint]); } }); } return prev; }, {}); }; }; exports["default"] = middlewareInjector; /***/ }), /***/ 9322: /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = middleWareSourceBuilder; var lodash_1 = __webpack_require__(6773); var wer_middleware_raw_1 = __webpack_require__(5077); var raw_loader_webextension_polyfill_1 = __webpack_require__(4047); var webpack_sources_1 = __webpack_require__(7396); var middleware_config_constants_1 = __webpack_require__(8893); var signals = __webpack_require__(1826); function middleWareSourceBuilder(_ref) { var port = _ref.port, reloadPage = _ref.reloadPage; var tmpl = (0, lodash_1.template)(wer_middleware_raw_1["default"]); return new webpack_sources_1.RawSource(tmpl({ WSHost: "ws://localhost:".concat(port), config: JSON.stringify({ RECONNECT_INTERVAL: middleware_config_constants_1.RECONNECT_INTERVAL, SOCKET_ERR_CODE_REF: middleware_config_constants_1.SOCKET_ERR_CODE_REF }), polyfillSource: "\"||".concat(raw_loader_webextension_polyfill_1["default"], "\""), reloadPage: "".concat(reloadPage), signals: JSON.stringify(signals) })); } /***/ }), /***/ 8492: /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.fastReloadBlocker = exports.debounceSignal = void 0; var lodash_1 = __webpack_require__(6773); var logger_1 = __webpack_require__(9567); var debounceSignal = function debounceSignal(deboucingFrame, context) { return function (func) { if (context) { (0, lodash_1.runInContext)(context); } return (0, lodash_1.debounce)(function () { for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } return func.apply(context, args); }, deboucingFrame); }; }; exports.debounceSignal = debounceSignal; var fastReloadBlocker = function fastReloadBlocker(maxCalls, wait, context) { return function (func) { var calls = 0; var inWait = false; // eslint-disable-next-line consistent-return return function () { for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { args[_key2] = arguments[_key2]; } if (inWait) { /* do nothing */ } else if (calls === maxCalls) { calls = 0; inWait = true; var interval = wait / 1000; (0, logger_1.warn)("Please wait ".concat(interval, " secs. for next reload to prevent your extension being blocked")); var logInterval = setInterval(function () { return (0, logger_1.warn)("".concat(--interval, " ...")); }, 1000); setTimeout(function () { clearInterval(logInterval); (0, logger_1.info)('Signing for reload now'); func.apply(context, args); inWait = false; }, wait); } else { calls++; return func.apply(context, args); } }; }; }; exports.fastReloadBlocker = fastReloadBlocker; /***/ }), /***/ 8241: /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); var options_constants_1 = __webpack_require__(2846); exports["default"] = { entries: { background: options_constants_1.DEFAULT_BACKGROUND_ENTRY, contentScript: options_constants_1.DEFAULT_CONTENT_SCRIPT_ENTRY, extensionPage: options_constants_1.DEFAULT_EXTENSION_PAGE_ENTRY }, port: options_constants_1.DEFAULT_PORT, reloadPage: options_constants_1.DEFAULT_RELOAD_PAGE }; /***/ }), /***/ 9567: /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.debug = exports.error = exports.warn = exports.info = exports.log = exports.setLogLevel = void 0; var safe_1 = __webpack_require__(948); var log_constants_1 = __webpack_require__(5066); var logLevel; // eslint-disable-next-line no-return-assign var setLogLevel = function setLogLevel(level) { return logLevel = level; }; exports.setLogLevel = setLogLevel; var log = function log(message) { return logLevel >= log_constants_1.LOG && console.log(message); }; exports.log = log; var info = function info(message) { return logLevel >= log_constants_1.INFO && console.info((0, safe_1.green)(message)); }; exports.info = info; var warn = function warn(message) { return logLevel >= log_constants_1.WARN && console.warn((0, safe_1.yellow)(message)); }; exports.warn = warn; var error = function error(message) { return logLevel >= log_constants_1.ERROR && console.error((0, safe_1.red)(message)); }; exports.error = error; var debug = function debug(message) { return logLevel >= log_constants_1.DEBUG && console.debug((0, safe_1.white)((0, exports.debug)(message))); }; exports.debug = debug; /***/ }), /***/ 5474: /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.extractEntries = extractEntries; var fs_1 = __webpack_require__(9896); var JSON5 = __webpack_require__(2741); var errors_1 = __webpack_require__(2871); function extractEntries(webpackEntry, manifestPath) { var webpackOutput = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; var _a; var manifestJson = JSON5.parse((0, fs_1.readFileSync)(manifestPath).toString()); var background = manifestJson.background, contentScripts = manifestJson.content_scripts; var filename = webpackOutput.filename; if (!filename) { throw new Error('Please specify the `output.filename` in your webpack config.'); } if (!((background === null || background === void 0 ? void 0 : background.scripts) || (background === null || background === void 0 ? void 0 : background.service_worker))) { throw new TypeError(errors_1.bgScriptManifestRequiredMsg.get()); } var getEntryFilename = function getEntryFilename(entryName) { var entryFilename = filename; if (typeof entryFilename === 'function') { entryFilename = entryFilename({ hash: '[hash]', hashWithLength: function hashWithLength(length) { return "[hash:".concat(length, "]"); }, chunk: { id: '[id]', hash: '[chunkhash]', name: entryName }, basename: '[basename]', query: '[query]', contentHashType: 'none', contentHash: '[contenthash]', contentHashWithLength: function contentHashWithLength(length) { return "[contenthash:".concat(length, "]"); }, noChunkHash: false, url: '[url]' }); } entryFilename = entryFilename.replace('[name]', entryName); return entryFilename; }; var bgScriptFilenames = background.service_worker ? [background.service_worker] : (_a = background.scripts) !== null && _a !== void 0 ? _a : []; var bgWebpackEntry = Object.keys(webpackEntry).find(function (entryName) { return bgScriptFilenames.some(function (bgScriptFilename) { var entryFilename = getEntryFilename(entryName); return bgScriptFilename === entryFilename; }); }); if (!bgWebpackEntry) { throw new TypeError(errors_1.bgScriptEntryErrorMsg.get()); } var contentEntries = contentScripts ? Object.keys(webpackEntry).filter(function (entryName) { return contentScripts.flatMap(function (_ref) { var js = _ref.js; return js; }).filter(Boolean).includes(getEntryFilename(entryName)); }) : null; return { background: bgWebpackEntry, contentScript: contentEntries, extensionPage: null }; } /***/ }), /***/ 1826: /***/ ((__unused_webpack_module, exports) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.signLog = exports.signReloaded = exports.signReload = exports.signChange = exports.SIGN_CONNECT = exports.SIGN_LOG = exports.SIGN_RELOADED = exports.SIGN_RELOAD = exports.SIGN_CHANGE = void 0; exports.SIGN_CHANGE = 'SIGN_CHANGE'; exports.SIGN_RELOAD = 'SIGN_RELOAD'; exports.SIGN_RELOADED = 'SIGN_RELOADED'; exports.SIGN_LOG = 'SIGN_LOG'; exports.SIGN_CONNECT = 'SIGN_CONNECT'; var signChange = function signChange(_ref) { var _ref$reloadPage = _ref.reloadPage, reloadPage = _ref$reloadPage === void 0 ? true : _ref$reloadPage, _ref$onlyPageChanged = _ref.onlyPageChanged, onlyPageChanged = _ref$onlyPageChanged === void 0 ? false : _ref$onlyPageChanged; return { payload: { reloadPage: reloadPage, onlyPageChanged: onlyPageChanged }, type: exports.SIGN_CHANGE }; }; exports.signChange = signChange; var signReload = function signReload() { return { type: exports.SIGN_RELOAD }; }; exports.signReload = signReload; var signReloaded = function signReloaded(msg) { return { payload: msg, type: exports.SIGN_RELOADED }; }; exports.signReloaded = signReloaded; var signLog = function signLog(msg) { return { payload: msg, type: exports.SIGN_LOG }; }; exports.signLog = signLog; /***/ }), /***/ 4644: /***/ ((__unused_webpack_module, exports) => { "use strict"; 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); } function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), 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 _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } Object.defineProperty(exports, "__esModule", ({ value: true })); var