webpack-ext-reloader-mv3
Version:
Watch for file changes and reload WebExtensions on browsers.
1,392 lines (1,001 loc) • 636 kB
JavaScript
#!/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"));
else if(typeof define === 'function' && define.amd)
define(["minimist", "webpack", "lodash", "useragent", "ws", "webpack-sources"], factory);
else {
var a = typeof exports === 'object' ? factory(require("minimist"), require("webpack"), require("lodash"), require("useragent"), require("ws"), require("webpack-sources")) : factory(root["minimist"], root["webpack"], root["lodash"], root["useragent"], root["ws"], root["webpack-sources"]);
for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];
}
})(global, (__WEBPACK_EXTERNAL_MODULE__3476__, __WEBPACK_EXTERNAL_MODULE__9582__, __WEBPACK_EXTERNAL_MODULE__467__, __WEBPACK_EXTERNAL_MODULE__6884__, __WEBPACK_EXTERNAL_MODULE__7836__, __WEBPACK_EXTERNAL_MODULE__5327__) => {
return /******/ (() => { // webpackBootstrap
/******/ var __webpack_modules__ = ({
/***/ 5658:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
Object.defineProperty(exports, "__esModule", ({
value: true
}));
var util_1 = __webpack_require__(3837);
var webpack = __webpack_require__(9582);
var ExtensionReloader_1 = __webpack_require__(6048);
var logger_1 = __webpack_require__(6373);
var ExtensionCompiler = /*#__PURE__*/function () {
function ExtensionCompiler(config, pluginOptions) {
_classCallCheck(this, ExtensionCompiler);
this.compiler = webpack(config);
new ExtensionReloader_1["default"](pluginOptions).apply(this.compiler);
}
_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);
}
}
}]);
return ExtensionCompiler;
}();
exports["default"] = ExtensionCompiler;
/***/ }),
/***/ 5106:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
Object.defineProperty(exports, "__esModule", ({
value: true
}));
/* eslint-disable no-throw-literal */
var path_1 = __webpack_require__(1017);
var process_1 = __webpack_require__(7282);
var util_1 = __webpack_require__(3837);
var options_constants_1 = __webpack_require__(8804);
var args_constant_1 = __webpack_require__(2205);
var events_constants_1 = __webpack_require__(3443);
var manual_1 = __webpack_require__(3128);
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
};
}
};
/***/ }),
/***/ 2205:
/***/ ((__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";
/***/ }),
/***/ 3443:
/***/ ((__unused_webpack_module, exports) => {
"use strict";
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports.SIG_EXIT = void 0;
exports.SIG_EXIT = "SIG_EXIT";
/***/ }),
/***/ 8777:
/***/ (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__(3476);
var source_map_support_1 = __webpack_require__(6252);
var util_1 = __webpack_require__(3837);
var args_parser_1 = __webpack_require__(5106);
var events_constants_1 = __webpack_require__(3443);
var ExtensionCompiler_1 = __webpack_require__(5658);
(0, source_map_support_1.install)();
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);
}
}
/***/ }),
/***/ 3128:
/***/ ((__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__(8804);
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");
};
/***/ }),
/***/ 6048:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, 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 normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _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(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
Object.defineProperty(exports, "__esModule", ({
value: true
}));
var lodash_1 = __webpack_require__(467);
var webpack_1 = __webpack_require__(9582);
var hot_reload_1 = __webpack_require__(3009);
var warnings_1 = __webpack_require__(2436);
var middleware_1 = __webpack_require__(6392);
var default_options_1 = __webpack_require__(6961);
var logger_1 = __webpack_require__(6373);
var manifest_1 = __webpack_require__(6005);
var AbstractExtensionReloader_1 = __webpack_require__(4257);
var CompilerEventsFacade_1 = __webpack_require__(8675);
var ExtensionReloaderImpl = /*#__PURE__*/function (_AbstractExtensionRel) {
_inherits(ExtensionReloaderImpl, _AbstractExtensionRel);
var _super = _createSuper(ExtensionReloaderImpl);
function ExtensionReloaderImpl(options) {
var _this;
_classCallCheck(this, ExtensionReloaderImpl);
_this = _super.call(this);
_this._opts = options;
_this._chunkVersions = {};
return _this;
}
_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._triggerer = (0, hot_reload_1.changesTriggerer)(port, reloadPage);
this._eventAPI.afterOptimizeChunks(function (comp, chunks) {
comp.assets = Object.assign(Object.assign({}, comp.assets), _this2._injector(comp.assets, chunks));
});
this._eventAPI.afterEmit(function (comp) {
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());
}
}
}]);
return ExtensionReloaderImpl;
}(AbstractExtensionReloader_1["default"]);
exports["default"] = ExtensionReloaderImpl;
/***/ }),
/***/ 9871:
/***/ ((__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;
/***/ }),
/***/ 1918:
/***/ ((__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;
/***/ }),
/***/ 5934:
/***/ ((__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";
/***/ }),
/***/ 8804:
/***/ ((__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";
/***/ }),
/***/ 6578:
/***/ ((__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";
/***/ }),
/***/ 1692:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
Object.defineProperty(exports, "__esModule", ({
value: true
}));
var useragent_1 = __webpack_require__(6884);
var ws_1 = __webpack_require__(7836);
var logger_1 = __webpack_require__(6373);
var SignEmitter_1 = __webpack_require__(7574);
var HotReloaderServer = /*#__PURE__*/function () {
function HotReloaderServer(port) {
_classCallCheck(this, HotReloaderServer);
this._server = new ws_1.Server({
port: port
});
}
_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);
}
}]);
return HotReloaderServer;
}();
exports["default"] = HotReloaderServer;
/***/ }),
/***/ 7574:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, 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 normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _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(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
Object.defineProperty(exports, "__esModule", ({
value: true
}));
var lodash_1 = __webpack_require__(467);
var ws_1 = __webpack_require__(7836);
var fast_reloading_constants_1 = __webpack_require__(9871);
var block_protection_1 = __webpack_require__(9832);
var signals_1 = __webpack_require__(1873);
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();
}
}
_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;
}
}]);
return SignEmitter;
}();
exports["default"] = SignEmitter;
/***/ }),
/***/ 3362:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
Object.defineProperty(exports, "__esModule", ({
value: true
}));
var logger_1 = __webpack_require__(6373);
var HotReloaderServer_1 = __webpack_require__(1692);
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;
/***/ }),
/***/ 3009:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports.changesTriggerer = void 0;
var changes_triggerer_1 = __webpack_require__(3362);
exports.changesTriggerer = changes_triggerer_1["default"];
/***/ }),
/***/ 9197:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
Object.defineProperty(exports, "__esModule", ({
value: true
}));
var safe_1 = __webpack_require__(4431);
var lodash_1 = __webpack_require__(467);
var log_constants_1 = __webpack_require__(1918);
var reference_docs_constants_1 = __webpack_require__(6578);
var Message = /*#__PURE__*/function () {
function Message(type, referenceNumber, message) {
_classCallCheck(this, Message);
this.type = type;
this.referenceNumber = referenceNumber;
this.message = message;
}
_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 "";
}
}
}]);
return Message;
}();
exports["default"] = Message;
/***/ }),
/***/ 1049:
/***/ ((__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__(1918);
var Message_1 = __webpack_require__(9197);
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 on manifest is required");
/***/ }),
/***/ 2436:
/***/ ((__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__(1918);
var Message_1 = __webpack_require__(9197);
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)");
/***/ }),
/***/ 6392:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports.middlewareInjector = void 0;
var middleware_injector_1 = __webpack_require__(91);
exports.middlewareInjector = middleware_injector_1["default"];
/***/ }),
/***/ 91:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
function _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
Object.defineProperty(exports, "__esModule", ({
value: true
}));
var webpack_sources_1 = __webpack_require__(5327);
var middleware_source_builder_1 = __webpack_require__(6271);
var middlewareInjector = function middlewareInjector(_ref, _ref2) {
var background = _ref.background,
contentScript = _ref.contentScript,
extensionPage = _ref.extensionPage;
var port = _ref2.port,
reloadPage = _ref2.reloadPage;
var sourceFactory = function sourceFactory() {
for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) {
sources[_key] = arguments[_key];
}
return _construct(webpack_sources_1.ConcatSource, sources);
};
var matchBgOrContentOrPage = function matchBgOrContentOrPage(name) {
return name === background || name === contentScript || contentScript && contentScript.includes(name) || name === extensionPage || extensionPage && extensionPage.includes(name);
};
var getPageType = function getPageType(name) {
if (name === contentScript || contentScript && contentScript.includes(name)) {
return "content";
}
if (name === extensionPage || extensionPage && extensionPage.includes(name)) {
return "extension";
}
if (name === background) {
return "background";
}
return "unknown";
};
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)) {
var source = (0, middleware_source_builder_1["default"])({
port: port,
reloadPage: reloadPage,
page: getPageType(name)
});
var finalSrc = sourceFactory(source, assets[entryPoint]);
prev[entryPoint] = finalSrc;
}
});
}
return prev;
}, {});
};
};
exports["default"] = middlewareInjector;
/***/ }),
/***/ 6271:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
Object.defineProperty(exports, "__esModule", ({
value: true
}));
var lodash_1 = __webpack_require__(467);
var webpack_sources_1 = __webpack_require__(5327);
var wer_middleware_background_raw_1 = __webpack_require__(2288);
var wer_middleware_content_raw_1 = __webpack_require__(2995);
var wer_middleware_extension_raw_1 = __webpack_require__(916);
var raw_loader_webextension_polyfill_1 = __webpack_require__(2634);
var middleware_config_constants_1 = __webpack_require__(5934);
var signals = __webpack_require__(1873);
function middleWareSourceBuilder(_ref) {
var port = _ref.port,
reloadPage = _ref.reloadPage,
page = _ref.page;
var rawSource = {
content: wer_middleware_content_raw_1["default"],
background: wer_middleware_background_raw_1["default"],
extension: wer_middleware_extension_raw_1["default"]
};
var tmpl = (0, lodash_1.template)(rawSource[page]);
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)
}));
}
exports["default"] = middleWareSourceBuilder;
/***/ }),
/***/ 9832:
/***/ ((__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__(467);
var logger_1 = __webpack_require__(6373);
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;
/***/ }),
/***/ 6961:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
Object.defineProperty(exports, "__esModule", ({
value: true
}));
var options_constants_1 = __webpack_require__(8804);
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
};
/***/ }),
/***/ 6373:
/***/ ((__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__(4431);
var log_constants_1 = __webpack_require__(1918);
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;
/***/ }),
/***/ 6005:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports.extractEntries = void 0;
var fs_1 = __webpack_require__(7147);
var lodash_1 = __webpack_require__(467);
var errors_1 = __webpack_require__(1049);
function extractEntries(webpackEntry, manifestPath) {
var webpackOutput = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
var manifestJson = JSON.parse((0, fs_1.readFileSync)(manifestPath).toString());
var background = manifestJson.background,
content_scripts = 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)) {
throw new TypeError(errors_1.bgScriptManifestRequiredMsg.get());
}
var bgScriptFileNames = background.scripts;
var toRemove = filename.replace("[name]", "");
var bgWebpackEntry = Object.keys(webpackEntry).find(function (entryName) {
return bgScriptFileNames.some(function (bgManifest) {
return bgManifest.replace(toRemove, "") === entryName;
});
});
if (!bgWebpackEntry) {
throw new TypeError(errors_1.bgScriptEntryErrorMsg.get());
}
var contentEntries = content_scripts ? (0, lodash_1.flatMapDeep)(Object.keys(webpackEntry), function (entryName) {
return content_scripts.map(function (_ref) {
var js = _ref.js;
return js.map(function (contentItem) {
return contentItem.replace(toRemove, "");
}).filter(function (contentItem) {
return contentItem === entryName;
});
});
}) : null;
return {
background: bgWebpackEntry,
contentScript: contentEntries,
extensionPage: null
};
}
exports.extractEntries = extractEntries;
/***/ }),
/***/ 1873:
/***/ ((__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;
/***/ }),
/***/ 4257:
/***/ ((__unused_webpack_module, exports) => {
"use strict";
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
Object.defineProperty(exports, "__esModule", ({
value: true
}));
var AbstractExtensionReloader = /*#__PURE__*/_createClass(function AbstractExtensionReloader() {
_classCallCheck(this, AbstractExtensionReloader);
});
exports["default"] = AbstractExtensionReloader;
/***/ }),
/***/ 8675:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable