diff --git a/js/dist/admin.js b/js/dist/admin.js
index 51f6019..a1fb4a2 100644
--- a/js/dist/admin.js
+++ b/js/dist/admin.js
@@ -1,602 +1,2 @@
-module.exports =
-/******/ (function(modules) { // webpackBootstrap
-/******/ // The module cache
-/******/ var installedModules = {};
-/******/
-/******/ // The require function
-/******/ function __webpack_require__(moduleId) {
-/******/
-/******/ // Check if module is in cache
-/******/ if(installedModules[moduleId]) {
-/******/ return installedModules[moduleId].exports;
-/******/ }
-/******/ // Create a new module (and put it into the cache)
-/******/ var module = installedModules[moduleId] = {
-/******/ i: moduleId,
-/******/ l: false,
-/******/ exports: {}
-/******/ };
-/******/
-/******/ // Execute the module function
-/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-/******/
-/******/ // Flag the module as loaded
-/******/ module.l = true;
-/******/
-/******/ // Return the exports of the module
-/******/ return module.exports;
-/******/ }
-/******/
-/******/
-/******/ // expose the modules object (__webpack_modules__)
-/******/ __webpack_require__.m = modules;
-/******/
-/******/ // expose the module cache
-/******/ __webpack_require__.c = installedModules;
-/******/
-/******/ // define getter function for harmony exports
-/******/ __webpack_require__.d = function(exports, name, getter) {
-/******/ if(!__webpack_require__.o(exports, name)) {
-/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
-/******/ }
-/******/ };
-/******/
-/******/ // define __esModule on exports
-/******/ __webpack_require__.r = function(exports) {
-/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
-/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-/******/ }
-/******/ Object.defineProperty(exports, '__esModule', { value: true });
-/******/ };
-/******/
-/******/ // create a fake namespace object
-/******/ // mode & 1: value is a module id, require it
-/******/ // mode & 2: merge all properties of value into the ns
-/******/ // mode & 4: return value when already ns object
-/******/ // mode & 8|1: behave like require
-/******/ __webpack_require__.t = function(value, mode) {
-/******/ if(mode & 1) value = __webpack_require__(value);
-/******/ if(mode & 8) return value;
-/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
-/******/ var ns = Object.create(null);
-/******/ __webpack_require__.r(ns);
-/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
-/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
-/******/ return ns;
-/******/ };
-/******/
-/******/ // getDefaultExport function for compatibility with non-harmony modules
-/******/ __webpack_require__.n = function(module) {
-/******/ var getter = module && module.__esModule ?
-/******/ function getDefault() { return module['default']; } :
-/******/ function getModuleExports() { return module; };
-/******/ __webpack_require__.d(getter, 'a', getter);
-/******/ return getter;
-/******/ };
-/******/
-/******/ // Object.prototype.hasOwnProperty.call
-/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
-/******/
-/******/ // __webpack_public_path__
-/******/ __webpack_require__.p = "";
-/******/
-/******/
-/******/ // Load entry module and return exports
-/******/ return __webpack_require__(__webpack_require__.s = "./admin.js");
-/******/ })
-/************************************************************************/
-/******/ ({
-
-/***/ "./admin.js":
-/*!******************!*\
- !*** ./admin.js ***!
- \******************/
-/*! no exports provided */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _src_admin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/admin */ "./src/admin/index.js");
-/* empty/unused harmony star reexport */
-
-/***/ }),
-
-/***/ "./src/admin/getCategories.js":
-/*!************************************!*\
- !*** ./src/admin/getCategories.js ***!
- \************************************/
-/*! exports provided: default, getVendors */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return getCategories; });
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getVendors", function() { return getVendors; });
-function getCategories() {
- switch (app.data.settings['sycho-ace.selected-categorization']) {
- case 'none':
- return {
- none: 0
- };
-
- case 'vendor':
- return getVendors();
-
- case 'availability':
- return {
- enabled: 10,
- disabled: 0
- };
-
- default:
- return app.extensionCategories;
- }
-}
-function getVendors() {
- var vendors = {};
- var vendorsArray = [];
- Object.keys(app.data.extensions).map(function (id) {
- vendorsArray.push(id.split('-')[0]);
- });
- vendorsArray.sort(function (a, b) {
- return a === 'flarum' ? -1 : a > b ? 1 : a === b ? 0 : -1;
- });
- var k = vendorsArray.length * 10;
- vendorsArray.forEach(function (v) {
- return vendors[v] = k -= 10;
- });
- if (vendors.flarum) vendors.flarum = 5000;
- return vendors;
-}
-
-/***/ }),
-
-/***/ "./src/admin/getCategoryLabels.js":
-/*!****************************************!*\
- !*** ./src/admin/getCategoryLabels.js ***!
- \****************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return getCategoryLabels; });
-/* harmony import */ var _getCategories__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getCategories */ "./src/admin/getCategories.js");
-
-function getCategoryLabels() {
- var labels = {};
- var categories = Object(_getCategories__WEBPACK_IMPORTED_MODULE_0__["default"])();
- Object.keys(categories).map(function (category) {
- switch (app.data.settings['sycho-ace.selected-categorization']) {
- case 'default':
- labels[category] = app.translator.trans("core.admin.nav.categories." + category);
- break;
-
- case 'vendor':
- labels[category] = category;
- break;
-
- default:
- labels[category] = app.translator.trans("sycho-ace.admin.categories." + category);
- }
- });
- return labels;
-}
-
-/***/ }),
-
-/***/ "./src/admin/index.js":
-/*!****************************!*\
- !*** ./src/admin/index.js ***!
- \****************************/
-/*! no exports provided */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var flarum_common_extend__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! flarum/common/extend */ "flarum/common/extend");
-/* harmony import */ var flarum_common_extend__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(flarum_common_extend__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var flarum_admin_components_AdminNav__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! flarum/admin/components/AdminNav */ "flarum/admin/components/AdminNav");
-/* harmony import */ var flarum_admin_components_AdminNav__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(flarum_admin_components_AdminNav__WEBPACK_IMPORTED_MODULE_1__);
-/* harmony import */ var flarum_admin_components_ExtensionLinkButton__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! flarum/admin/components/ExtensionLinkButton */ "flarum/admin/components/ExtensionLinkButton");
-/* harmony import */ var flarum_admin_components_ExtensionLinkButton__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(flarum_admin_components_ExtensionLinkButton__WEBPACK_IMPORTED_MODULE_2__);
-/* harmony import */ var flarum_admin_components_ExtensionsWidget__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! flarum/admin/components/ExtensionsWidget */ "flarum/admin/components/ExtensionsWidget");
-/* harmony import */ var flarum_admin_components_ExtensionsWidget__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(flarum_admin_components_ExtensionsWidget__WEBPACK_IMPORTED_MODULE_3__);
-/* harmony import */ var flarum_admin_components_LoadingModal__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! flarum/admin/components/LoadingModal */ "flarum/admin/components/LoadingModal");
-/* harmony import */ var flarum_admin_components_LoadingModal__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(flarum_admin_components_LoadingModal__WEBPACK_IMPORTED_MODULE_4__);
-/* harmony import */ var flarum_common_utils_ItemList__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! flarum/common/utils/ItemList */ "flarum/common/utils/ItemList");
-/* harmony import */ var flarum_common_utils_ItemList__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(flarum_common_utils_ItemList__WEBPACK_IMPORTED_MODULE_5__);
-/* harmony import */ var flarum_common_components_Dropdown__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! flarum/common/components/Dropdown */ "flarum/common/components/Dropdown");
-/* harmony import */ var flarum_common_components_Dropdown__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(flarum_common_components_Dropdown__WEBPACK_IMPORTED_MODULE_6__);
-/* harmony import */ var flarum_common_components_Button__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! flarum/common/components/Button */ "flarum/common/components/Button");
-/* harmony import */ var flarum_common_components_Button__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(flarum_common_components_Button__WEBPACK_IMPORTED_MODULE_7__);
-/* harmony import */ var flarum_common_helpers_icon__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! flarum/common/helpers/icon */ "flarum/common/helpers/icon");
-/* harmony import */ var flarum_common_helpers_icon__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(flarum_common_helpers_icon__WEBPACK_IMPORTED_MODULE_8__);
-/* harmony import */ var flarum_admin_utils_saveSettings__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! flarum/admin/utils/saveSettings */ "flarum/admin/utils/saveSettings");
-/* harmony import */ var flarum_admin_utils_saveSettings__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(flarum_admin_utils_saveSettings__WEBPACK_IMPORTED_MODULE_9__);
-/* harmony import */ var flarum_admin_utils_isExtensionEnabled__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! flarum/admin/utils/isExtensionEnabled */ "flarum/admin/utils/isExtensionEnabled");
-/* harmony import */ var flarum_admin_utils_isExtensionEnabled__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(flarum_admin_utils_isExtensionEnabled__WEBPACK_IMPORTED_MODULE_10__);
-/* harmony import */ var flarum_common_components_Link__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! flarum/common/components/Link */ "flarum/common/components/Link");
-/* harmony import */ var flarum_common_components_Link__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(flarum_common_components_Link__WEBPACK_IMPORTED_MODULE_11__);
-/* harmony import */ var _overrideGetCategorizedExtensions__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./overrideGetCategorizedExtensions */ "./src/admin/overrideGetCategorizedExtensions.js");
-/* harmony import */ var _getCategories__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./getCategories */ "./src/admin/getCategories.js");
-/* harmony import */ var _getCategoryLabels__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./getCategoryLabels */ "./src/admin/getCategoryLabels.js");
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-app.initializers.add('sycho-advanced-extension-categories', function (app) {
- var categorizationOptions = {
- "default": app.translator.trans('sycho-ace.admin.category_selection.options.default'),
- vendor: app.translator.trans('sycho-ace.admin.category_selection.options.vendor'),
- availability: app.translator.trans('sycho-ace.admin.category_selection.options.availability'),
- none: app.translator.trans('sycho-ace.admin.category_selection.options.none')
- };
- app.extensionData["for"]('sycho-advanced-extension-categories').registerSetting(function () {
- var selectbox = this.buildSettingComponent({
- setting: 'sycho-ace.selected-categorization',
- label: app.translator.trans('sycho-ace.admin.category_selection.label'),
- type: 'select',
- options: categorizationOptions,
- "default": 'default'
- });
- var originalSaveSettings = this.saveSettings;
-
- this.saveSettings = function (e) {
- originalSaveSettings.call(this, e);
- app.modal.show(flarum_admin_components_LoadingModal__WEBPACK_IMPORTED_MODULE_4___default.a);
- window.location.reload();
- };
-
- return selectbox;
- });
-
- var saveCategorization = function saveCategorization(value) {
- flarum_admin_utils_saveSettings__WEBPACK_IMPORTED_MODULE_9___default()({
- 'sycho-ace.selected-categorization': value
- }).then(function () {
- return window.location.reload();
- });
- app.modal.show(flarum_admin_components_LoadingModal__WEBPACK_IMPORTED_MODULE_4___default.a);
- };
-
- app.extensionCategories = Object(_getCategories__WEBPACK_IMPORTED_MODULE_13__["default"])();
- var categoryLabels = Object(_getCategoryLabels__WEBPACK_IMPORTED_MODULE_14__["default"])();
-
- flarum_admin_components_ExtensionsWidget__WEBPACK_IMPORTED_MODULE_3___default.a.prototype.controlItems = function () {
- var _app$data$settings$sy;
-
- var items = new flarum_common_utils_ItemList__WEBPACK_IMPORTED_MODULE_5___default.a();
- var selectedCategorization = (_app$data$settings$sy = app.data.settings['sycho-ace.selected-categorization']) != null ? _app$data$settings$sy : 'default';
- items.add('categorization', m("div", {
- className: "ExtensionsWidget-control-item"
- }, m(flarum_common_components_Dropdown__WEBPACK_IMPORTED_MODULE_6___default.a, {
- buttonClassName: "Button",
- label: app.translator.trans('sycho-ace.admin.category_selection.label')
- }, Object.keys(categorizationOptions).map(function (key) {
- return m(flarum_common_components_Button__WEBPACK_IMPORTED_MODULE_7___default.a, {
- icon: selectedCategorization === key ? 'fas fa-check' : true,
- active: selectedCategorization === key,
- onclick: function onclick() {
- return saveCategorization(key);
- }
- }, categorizationOptions[key]);
- }))));
- return items;
- };
-
- Object(flarum_common_extend__WEBPACK_IMPORTED_MODULE_0__["override"])(flarum_admin_components_ExtensionsWidget__WEBPACK_IMPORTED_MODULE_3___default.a.prototype, 'oninit', function () {
- this.categorizedExtensions = Object(_overrideGetCategorizedExtensions__WEBPACK_IMPORTED_MODULE_12__["default"])();
- });
- Object(flarum_common_extend__WEBPACK_IMPORTED_MODULE_0__["override"])(flarum_admin_components_ExtensionsWidget__WEBPACK_IMPORTED_MODULE_3___default.a.prototype, 'content', function (original) {
- return [m("div", {
- className: "ExtensionsWidget-list-heading"
- }, m("h2", {
- className: "ExtensionsWidget-list-name"
- }, m("span", {
- className: "ExtensionsWidget-list-icon"
- }, flarum_common_helpers_icon__WEBPACK_IMPORTED_MODULE_8___default()('fas fa-puzzle-piece')), m("span", {
- className: "ExtensionsWidget-list-title"
- }, app.translator.trans('sycho-ace.admin.extensions'))), m("div", {
- className: "ExtensionsWidget-list-controls"
- }, this.controlItems().toArray())), original()];
- });
- Object(flarum_common_extend__WEBPACK_IMPORTED_MODULE_0__["extend"])(flarum_admin_components_ExtensionsWidget__WEBPACK_IMPORTED_MODULE_3___default.a.prototype, 'extensionCategory', function (vnode, category) {
- vnode.children[0].text = categoryLabels[category];
- });
- Object(flarum_common_extend__WEBPACK_IMPORTED_MODULE_0__["override"])(flarum_admin_components_AdminNav__WEBPACK_IMPORTED_MODULE_1___default.a.prototype, 'extensionItems', function () {
- var _this = this;
-
- var items = new flarum_common_utils_ItemList__WEBPACK_IMPORTED_MODULE_5___default.a();
- var categorizedExtensions = Object(_overrideGetCategorizedExtensions__WEBPACK_IMPORTED_MODULE_12__["default"])();
- var categories = app.extensionCategories;
- Object.keys(categorizedExtensions).map(function (category) {
- if (!_this.query()) {
- items.add("category-" + category, m("h4", {
- className: "ExtensionListTitle"
- }, categoryLabels[category]), categories[category]);
- }
-
- categorizedExtensions[category].map(function (extension) {
- var query = _this.query().toUpperCase();
-
- var title = extension.extra['flarum-extension'].title;
-
- if (!query || title.toUpperCase().includes(query) || extension.description.toUpperCase().includes(query)) {
- items.add("extension-" + extension.id, m(flarum_admin_components_ExtensionLinkButton__WEBPACK_IMPORTED_MODULE_2___default.a, {
- href: app.route('extension', {
- id: extension.id
- }),
- extensionId: extension.id,
- className: "ExtensionNavButton",
- title: extension.description
- }, title), categories[category]);
- }
- });
- });
- return items;
- });
-}, -999);
-
-/***/ }),
-
-/***/ "./src/admin/overrideGetCategorizedExtensions.js":
-/*!*******************************************************!*\
- !*** ./src/admin/overrideGetCategorizedExtensions.js ***!
- \*******************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return overrideGetCategorizedExtensions; });
-/* harmony import */ var flarum_admin_utils_getCategorizedExtensions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! flarum/admin/utils/getCategorizedExtensions */ "flarum/admin/utils/getCategorizedExtensions");
-/* harmony import */ var flarum_admin_utils_getCategorizedExtensions__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(flarum_admin_utils_getCategorizedExtensions__WEBPACK_IMPORTED_MODULE_0__);
-/* harmony import */ var _utils_getAlphabeticallyOrderedExtensions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/getAlphabeticallyOrderedExtensions */ "./src/admin/utils/getAlphabeticallyOrderedExtensions.js");
-/* harmony import */ var _utils_getVendorCategorizedExtensions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils/getVendorCategorizedExtensions */ "./src/admin/utils/getVendorCategorizedExtensions.js");
-/* harmony import */ var _utils_getAvailabilityCategorizedExtensions__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/getAvailabilityCategorizedExtensions */ "./src/admin/utils/getAvailabilityCategorizedExtensions.js");
-
-
-
-
-function overrideGetCategorizedExtensions() {
- switch (app.data.settings['sycho-ace.selected-categorization']) {
- case 'none':
- return Object(_utils_getAlphabeticallyOrderedExtensions__WEBPACK_IMPORTED_MODULE_1__["default"])();
-
- case 'vendor':
- return Object(_utils_getVendorCategorizedExtensions__WEBPACK_IMPORTED_MODULE_2__["default"])();
-
- case 'availability':
- return Object(_utils_getAvailabilityCategorizedExtensions__WEBPACK_IMPORTED_MODULE_3__["default"])();
-
- default:
- return flarum_admin_utils_getCategorizedExtensions__WEBPACK_IMPORTED_MODULE_0___default()();
- }
-}
-
-/***/ }),
-
-/***/ "./src/admin/utils/getAlphabeticallyOrderedExtensions.js":
-/*!***************************************************************!*\
- !*** ./src/admin/utils/getAlphabeticallyOrderedExtensions.js ***!
- \***************************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return getAlphabeticallyOrderedExtensions; });
-function getAlphabeticallyOrderedExtensions() {
- var extensions = {};
- extensions.none = Object.values(app.data.extensions);
- return extensions;
-}
-
-/***/ }),
-
-/***/ "./src/admin/utils/getAvailabilityCategorizedExtensions.js":
-/*!*****************************************************************!*\
- !*** ./src/admin/utils/getAvailabilityCategorizedExtensions.js ***!
- \*****************************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return getAvailabilityCategorizedExtensions; });
-/* harmony import */ var flarum_admin_utils_isExtensionEnabled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! flarum/admin/utils/isExtensionEnabled */ "flarum/admin/utils/isExtensionEnabled");
-/* harmony import */ var flarum_admin_utils_isExtensionEnabled__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(flarum_admin_utils_isExtensionEnabled__WEBPACK_IMPORTED_MODULE_0__);
-
-function getAvailabilityCategorizedExtensions() {
- var extensions = {
- enabled: [],
- disabled: []
- };
- Object.keys(app.data.extensions).map(function (id) {
- var category = flarum_admin_utils_isExtensionEnabled__WEBPACK_IMPORTED_MODULE_0___default()(id) ? 'enabled' : 'disabled';
- extensions[category].push(app.data.extensions[id]);
- });
- return extensions;
-}
-
-/***/ }),
-
-/***/ "./src/admin/utils/getVendorCategorizedExtensions.js":
-/*!***********************************************************!*\
- !*** ./src/admin/utils/getVendorCategorizedExtensions.js ***!
- \***********************************************************/
-/*! exports provided: default */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return getVendorCategorizedExtensions; });
-function getVendorCategorizedExtensions() {
- var extensions = {};
- Object.keys(app.data.extensions).map(function (id) {
- var vendor = id.split('-')[0];
- extensions[vendor] = extensions[vendor] || [];
- extensions[vendor].push(app.data.extensions[id]);
- });
- return extensions;
-}
-
-/***/ }),
-
-/***/ "flarum/admin/components/AdminNav":
-/*!******************************************************************!*\
- !*** external "flarum.core.compat['admin/components/AdminNav']" ***!
- \******************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports) {
-
-module.exports = flarum.core.compat['admin/components/AdminNav'];
-
-/***/ }),
-
-/***/ "flarum/admin/components/ExtensionLinkButton":
-/*!*****************************************************************************!*\
- !*** external "flarum.core.compat['admin/components/ExtensionLinkButton']" ***!
- \*****************************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports) {
-
-module.exports = flarum.core.compat['admin/components/ExtensionLinkButton'];
-
-/***/ }),
-
-/***/ "flarum/admin/components/ExtensionsWidget":
-/*!**************************************************************************!*\
- !*** external "flarum.core.compat['admin/components/ExtensionsWidget']" ***!
- \**************************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports) {
-
-module.exports = flarum.core.compat['admin/components/ExtensionsWidget'];
-
-/***/ }),
-
-/***/ "flarum/admin/components/LoadingModal":
-/*!**********************************************************************!*\
- !*** external "flarum.core.compat['admin/components/LoadingModal']" ***!
- \**********************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports) {
-
-module.exports = flarum.core.compat['admin/components/LoadingModal'];
-
-/***/ }),
-
-/***/ "flarum/admin/utils/getCategorizedExtensions":
-/*!*****************************************************************************!*\
- !*** external "flarum.core.compat['admin/utils/getCategorizedExtensions']" ***!
- \*****************************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports) {
-
-module.exports = flarum.core.compat['admin/utils/getCategorizedExtensions'];
-
-/***/ }),
-
-/***/ "flarum/admin/utils/isExtensionEnabled":
-/*!***********************************************************************!*\
- !*** external "flarum.core.compat['admin/utils/isExtensionEnabled']" ***!
- \***********************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports) {
-
-module.exports = flarum.core.compat['admin/utils/isExtensionEnabled'];
-
-/***/ }),
-
-/***/ "flarum/admin/utils/saveSettings":
-/*!*****************************************************************!*\
- !*** external "flarum.core.compat['admin/utils/saveSettings']" ***!
- \*****************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports) {
-
-module.exports = flarum.core.compat['admin/utils/saveSettings'];
-
-/***/ }),
-
-/***/ "flarum/common/components/Button":
-/*!*****************************************************************!*\
- !*** external "flarum.core.compat['common/components/Button']" ***!
- \*****************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports) {
-
-module.exports = flarum.core.compat['common/components/Button'];
-
-/***/ }),
-
-/***/ "flarum/common/components/Dropdown":
-/*!*******************************************************************!*\
- !*** external "flarum.core.compat['common/components/Dropdown']" ***!
- \*******************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports) {
-
-module.exports = flarum.core.compat['common/components/Dropdown'];
-
-/***/ }),
-
-/***/ "flarum/common/components/Link":
-/*!***************************************************************!*\
- !*** external "flarum.core.compat['common/components/Link']" ***!
- \***************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports) {
-
-module.exports = flarum.core.compat['common/components/Link'];
-
-/***/ }),
-
-/***/ "flarum/common/extend":
-/*!******************************************************!*\
- !*** external "flarum.core.compat['common/extend']" ***!
- \******************************************************/
-/*! no static exports found */
-/***/ (function(module, exports) {
-
-module.exports = flarum.core.compat['common/extend'];
-
-/***/ }),
-
-/***/ "flarum/common/helpers/icon":
-/*!************************************************************!*\
- !*** external "flarum.core.compat['common/helpers/icon']" ***!
- \************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports) {
-
-module.exports = flarum.core.compat['common/helpers/icon'];
-
-/***/ }),
-
-/***/ "flarum/common/utils/ItemList":
-/*!**************************************************************!*\
- !*** external "flarum.core.compat['common/utils/ItemList']" ***!
- \**************************************************************/
-/*! no static exports found */
-/***/ (function(module, exports) {
-
-module.exports = flarum.core.compat['common/utils/ItemList'];
-
-/***/ })
-
-/******/ });
+module.exports=function(e){var t={};function n(o){if(t[o])return t[o].exports;var a=t[o]={i:o,l:!1,exports:{}};return e[o].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)n.d(o,a,function(t){return e[t]}.bind(null,a));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=12)}([function(e,t){e.exports=flarum.core.compat["common/extend"]},function(e,t){e.exports=flarum.core.compat["admin/components/ExtensionsWidget"]},function(e,t){e.exports=flarum.core.compat["admin/components/LoadingModal"]},function(e,t){e.exports=flarum.core.compat["common/utils/ItemList"]},function(e,t){e.exports=flarum.core.compat["admin/components/AdminNav"]},function(e,t){e.exports=flarum.core.compat["admin/components/ExtensionLinkButton"]},function(e,t){e.exports=flarum.core.compat["common/components/Dropdown"]},function(e,t){e.exports=flarum.core.compat["common/components/Button"]},function(e,t){e.exports=flarum.core.compat["common/helpers/icon"]},function(e,t){e.exports=flarum.core.compat["admin/utils/saveSettings"]},function(e,t){e.exports=flarum.core.compat["admin/utils/getCategorizedExtensions"]},function(e,t){e.exports=flarum.core.compat["admin/utils/isExtensionEnabled"]},function(e,t,n){"use strict";n.r(t);var o=n(0),a=n(4),r=n.n(a),i=n(5),s=n.n(i),c=n(1),l=n.n(c),u=n(2),d=n.n(u),p=n(3),f=n.n(p),x=n(6),y=n.n(x),g=n(7),v=n.n(g),b=n(8),h=n.n(b),j=n(9),O=n.n(j),E=n(10),z=n.n(E);var w=n(11),_=n.n(w);function k(){switch(app.data.settings["sycho-ace.selected-categorization"]){case"none":return(e={}).none=Object.values(app.data.extensions),e;case"vendor":return function(){var e={};return Object.keys(app.data.extensions).map((function(t){var n=t.split("-")[0];e[n]=e[n]||[],e[n].push(app.data.extensions[t])})),e}();case"availability":return function(){var e={enabled:[],disabled:[]};return Object.keys(app.data.extensions).map((function(t){var n=_()(t)?"enabled":"disabled";e[n].push(app.data.extensions[t])})),e}();default:return z()()}var e}function N(){switch(app.data.settings["sycho-ace.selected-categorization"]){case"none":return{none:0};case"vendor":return function(){var e={},t=[];Object.keys(app.data.extensions).map((function(e){t.push(e.split("-")[0])})),t.sort((function(e,t){return"flarum"===e?-1:e>t?1:e===t?0:-1}));var n=10*t.length;t.forEach((function(t){return e[t]=n-=10})),e.flarum&&(e.flarum=5e3);return e}();case"availability":return{enabled:10,disabled:0};default:return app.extensionCategories}}function C(){var e={},t=N();return Object.keys(t).map((function(t){switch(app.data.settings["sycho-ace.selected-categorization"]){case"default":e[t]=app.translator.trans("core.admin.nav.categories."+t);break;case"vendor":e[t]=t;break;default:e[t]=app.translator.trans("sycho-ace.admin.categories."+t)}})),e}app.initializers.add("sycho-advanced-extension-categories",(function(e){var t={default:e.translator.trans("sycho-ace.admin.category_selection.options.default"),vendor:e.translator.trans("sycho-ace.admin.category_selection.options.vendor"),availability:e.translator.trans("sycho-ace.admin.category_selection.options.availability"),none:e.translator.trans("sycho-ace.admin.category_selection.options.none")};e.extensionData.for("sycho-advanced-extension-categories").registerSetting((function(){var n=this.buildSettingComponent({setting:"sycho-ace.selected-categorization",label:e.translator.trans("sycho-ace.admin.category_selection.label"),type:"select",options:t,default:"default"}),o=this.saveSettings;return this.saveSettings=function(t){o.call(this,t),e.modal.show(d.a),window.location.reload()},n}));e.extensionCategories=N(),e.categorizedExtensions=k();var n=C();l.a.prototype.controlItems=function(){var n,o=new f.a,a=null!=(n=e.data.settings["sycho-ace.selected-categorization"])?n:"default";return o.add("categorization",m("div",{className:"ExtensionsWidget-control-item"},m(y.a,{buttonClassName:"Button",label:e.translator.trans("sycho-ace.admin.category_selection.label")},Object.keys(t).map((function(n){return m(v.a,{icon:a!==n||"fas fa-check",active:a===n,onclick:function(){return t=n,O()({"sycho-ace.selected-categorization":t}).then((function(){return window.location.reload()})),void e.modal.show(d.a);var t}},t[n])}))))),o},Object(o.override)(l.a.prototype,"oninit",(function(){this.categorizedExtensions=e.categorizedExtensions})),Object(o.override)(l.a.prototype,"content",(function(t){return[m("div",{className:"ExtensionsWidget-list-heading"},m("h2",{className:"ExtensionsWidget-list-name"},m("span",{className:"ExtensionsWidget-list-icon"},h()("fas fa-puzzle-piece")),m("span",{className:"ExtensionsWidget-list-title"},e.translator.trans("sycho-ace.admin.extensions"))),m("div",{className:"ExtensionsWidget-list-controls"},this.controlItems().toArray())),t()]})),Object(o.extend)(l.a.prototype,"extensionCategory",(function(e,t){e.children[0].text=n[t]})),Object(o.override)(r.a.prototype,"extensionItems",(function(){var t=this,o=new f.a,a=k(),r=e.extensionCategories;return Object.keys(a).map((function(i){t.query()||o.add("category-"+i,m("h4",{className:"ExtensionListTitle"},n[i]),r[i]),a[i].map((function(n){var a=t.query().toUpperCase(),c=n.extra["flarum-extension"].title;(!a||c.toUpperCase().includes(a)||n.description.toUpperCase().includes(a))&&o.add("extension-"+n.id,m(s.a,{href:e.route("extension",{id:n.id}),extensionId:n.id,className:"ExtensionNavButton",title:n.description},c),r[i])}))})),o}))}),-999)}]);
//# sourceMappingURL=admin.js.map
\ No newline at end of file
diff --git a/js/dist/admin.js.map b/js/dist/admin.js.map
index bd8620c..93f5506 100644
--- a/js/dist/admin.js.map
+++ b/js/dist/admin.js.map
@@ -1 +1 @@
-{"version":3,"sources":["webpack://@sycho/flarum-advanced-extension-categories/webpack/bootstrap","webpack://@sycho/flarum-advanced-extension-categories/./admin.js","webpack://@sycho/flarum-advanced-extension-categories/./src/admin/getCategories.js","webpack://@sycho/flarum-advanced-extension-categories/./src/admin/getCategoryLabels.js","webpack://@sycho/flarum-advanced-extension-categories/./src/admin/index.js","webpack://@sycho/flarum-advanced-extension-categories/./src/admin/overrideGetCategorizedExtensions.js","webpack://@sycho/flarum-advanced-extension-categories/./src/admin/utils/getAlphabeticallyOrderedExtensions.js","webpack://@sycho/flarum-advanced-extension-categories/./src/admin/utils/getAvailabilityCategorizedExtensions.js","webpack://@sycho/flarum-advanced-extension-categories/./src/admin/utils/getVendorCategorizedExtensions.js","webpack://@sycho/flarum-advanced-extension-categories/external \"flarum.core.compat['admin/components/AdminNav']\"","webpack://@sycho/flarum-advanced-extension-categories/external \"flarum.core.compat['admin/components/ExtensionLinkButton']\"","webpack://@sycho/flarum-advanced-extension-categories/external \"flarum.core.compat['admin/components/ExtensionsWidget']\"","webpack://@sycho/flarum-advanced-extension-categories/external \"flarum.core.compat['admin/components/LoadingModal']\"","webpack://@sycho/flarum-advanced-extension-categories/external \"flarum.core.compat['admin/utils/getCategorizedExtensions']\"","webpack://@sycho/flarum-advanced-extension-categories/external \"flarum.core.compat['admin/utils/isExtensionEnabled']\"","webpack://@sycho/flarum-advanced-extension-categories/external \"flarum.core.compat['admin/utils/saveSettings']\"","webpack://@sycho/flarum-advanced-extension-categories/external \"flarum.core.compat['common/components/Button']\"","webpack://@sycho/flarum-advanced-extension-categories/external \"flarum.core.compat['common/components/Dropdown']\"","webpack://@sycho/flarum-advanced-extension-categories/external \"flarum.core.compat['common/components/Link']\"","webpack://@sycho/flarum-advanced-extension-categories/external \"flarum.core.compat['common/extend']\"","webpack://@sycho/flarum-advanced-extension-categories/external \"flarum.core.compat['common/helpers/icon']\"","webpack://@sycho/flarum-advanced-extension-categories/external \"flarum.core.compat['common/utils/ItemList']\""],"names":["getCategories","app","data","settings","none","getVendors","enabled","disabled","extensionCategories","vendors","vendorsArray","Object","keys","extensions","map","id","push","split","sort","a","b","k","length","forEach","v","flarum","getCategoryLabels","labels","categories","category","translator","trans","initializers","add","categorizationOptions","vendor","availability","extensionData","registerSetting","selectbox","buildSettingComponent","setting","label","type","options","originalSaveSettings","saveSettings","e","call","modal","show","LoadingModal","window","location","reload","saveCategorization","value","then","categoryLabels","ExtensionsWidget","prototype","controlItems","items","ItemList","selectedCategorization","key","override","categorizedExtensions","overrideGetCategorizedExtensions","original","icon","toArray","extend","vnode","children","text","AdminNav","query","extension","toUpperCase","title","extra","includes","description","route","getAlphabeticallyOrderedExtensions","getVendorCategorizedExtensions","getAvailabilityCategorizedExtensions","getCategorizedExtensions","values","isExtensionEnabled"],"mappings":"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","file":"admin.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./admin.js\");\n","export * from './src/admin';\n","export default function getCategories() {\n switch (app.data.settings['sycho-ace.selected-categorization']) {\n case 'none':\n return { none: 0 };\n\n case 'vendor':\n return getVendors();\n\n case 'availability':\n return { enabled: 10, disabled: 0 };\n\n default:\n return app.extensionCategories;\n }\n}\n\nexport function getVendors() {\n let vendors = {};\n let vendorsArray = [];\n\n Object.keys(app.data.extensions).map((id) => {\n vendorsArray.push(id.split('-')[0]);\n });\n\n vendorsArray.sort((a, b) => {\n return a === 'flarum' ? -1 : a > b ? 1 : a === b ? 0 : -1;\n });\n\n let k = vendorsArray.length * 10;\n vendorsArray.forEach((v) => (vendors[v] = k -= 10));\n\n if (vendors.flarum) vendors.flarum = 5000;\n\n return vendors;\n}\n","import getCategories from './getCategories';\n\nexport default function getCategoryLabels() {\n let labels = {};\n const categories = getCategories();\n\n Object.keys(categories).map((category) => {\n switch (app.data.settings['sycho-ace.selected-categorization']) {\n case 'default':\n labels[category] = app.translator.trans(`core.admin.nav.categories.${category}`);\n break;\n\n case 'vendor':\n labels[category] = category;\n break;\n\n default:\n labels[category] = app.translator.trans(`sycho-ace.admin.categories.${category}`);\n }\n });\n\n return labels;\n}\n","import { override, extend } from 'flarum/common/extend';\nimport AdminNav from 'flarum/admin/components/AdminNav';\nimport ExtensionLinkButton from 'flarum/admin/components/ExtensionLinkButton';\nimport ExtensionsWidget from 'flarum/admin/components/ExtensionsWidget';\nimport LoadingModal from 'flarum/admin/components/LoadingModal';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport Dropdown from 'flarum/common/components/Dropdown';\nimport Button from 'flarum/common/components/Button';\nimport icon from 'flarum/common/helpers/icon';\nimport saveSettings from 'flarum/admin/utils/saveSettings';\nimport isExtensionEnabled from 'flarum/admin/utils/isExtensionEnabled';\nimport Link from 'flarum/common/components/Link';\nimport overrideGetCategorizedExtensions from './overrideGetCategorizedExtensions';\nimport getCategories from './getCategories';\nimport getCategoryLabels from './getCategoryLabels';\n\napp.initializers.add(\n 'sycho-advanced-extension-categories',\n (app) => {\n const categorizationOptions = {\n default: app.translator.trans('sycho-ace.admin.category_selection.options.default'),\n vendor: app.translator.trans('sycho-ace.admin.category_selection.options.vendor'),\n availability: app.translator.trans('sycho-ace.admin.category_selection.options.availability'),\n none: app.translator.trans('sycho-ace.admin.category_selection.options.none'),\n };\n\n app.extensionData.for('sycho-advanced-extension-categories').registerSetting(function () {\n const selectbox = this.buildSettingComponent({\n setting: 'sycho-ace.selected-categorization',\n label: app.translator.trans('sycho-ace.admin.category_selection.label'),\n type: 'select',\n options: categorizationOptions,\n default: 'default',\n });\n\n const originalSaveSettings = this.saveSettings;\n this.saveSettings = function (e) {\n originalSaveSettings.call(this, e);\n app.modal.show(LoadingModal);\n window.location.reload();\n };\n\n return selectbox;\n });\n\n const saveCategorization = (value) => {\n saveSettings({\n 'sycho-ace.selected-categorization': value,\n }).then(() => window.location.reload());\n\n app.modal.show(LoadingModal);\n };\n\n app.extensionCategories = getCategories();\n const categoryLabels = getCategoryLabels();\n\n ExtensionsWidget.prototype.controlItems = function () {\n const items = new ItemList();\n\n const selectedCategorization = app.data.settings['sycho-ace.selected-categorization'] ?? 'default';\n\n items.add(\n 'categorization',\n
\n \n {Object.keys(categorizationOptions).map((key) => (\n \n ))}\n \n
\n );\n\n return items;\n };\n\n override(ExtensionsWidget.prototype, 'oninit', function () {\n this.categorizedExtensions = overrideGetCategorizedExtensions();\n });\n\n override(ExtensionsWidget.prototype, 'content', function (original) {\n return [\n \n
\n {icon('fas fa-puzzle-piece')}\n {app.translator.trans('sycho-ace.admin.extensions')}\n
\n
{this.controlItems().toArray()}
\n
,\n original()\n ];\n });\n\n extend(ExtensionsWidget.prototype, 'extensionCategory', function (vnode, category) {\n vnode.children[0].text = categoryLabels[category];\n });\n\n override(AdminNav.prototype, 'extensionItems', function () {\n const items = new ItemList();\n\n const categorizedExtensions = overrideGetCategorizedExtensions();\n const categories = app.extensionCategories;\n\n Object.keys(categorizedExtensions).map((category) => {\n if (!this.query()) {\n items.add(`category-${category}`, {categoryLabels[category]}
, categories[category]);\n }\n\n categorizedExtensions[category].map((extension) => {\n const query = this.query().toUpperCase();\n const title = extension.extra['flarum-extension'].title;\n\n if (!query || title.toUpperCase().includes(query) || extension.description.toUpperCase().includes(query)) {\n items.add(\n `extension-${extension.id}`,\n \n {title}\n ,\n categories[category]\n );\n }\n });\n });\n\n return items;\n });\n },\n -999\n);\n","import getCategorizedExtensions from 'flarum/admin/utils/getCategorizedExtensions';\nimport getAlphabeticallyOrderedExtensions from './utils/getAlphabeticallyOrderedExtensions';\nimport getVendorCategorizedExtensions from './utils/getVendorCategorizedExtensions';\nimport getAvailabilityCategorizedExtensions from './utils/getAvailabilityCategorizedExtensions';\n\nexport default function overrideGetCategorizedExtensions() {\n switch (app.data.settings['sycho-ace.selected-categorization']) {\n case 'none':\n return getAlphabeticallyOrderedExtensions();\n\n case 'vendor':\n return getVendorCategorizedExtensions();\n\n case 'availability':\n return getAvailabilityCategorizedExtensions();\n\n default:\n return getCategorizedExtensions();\n }\n}\n","export default function getAlphabeticallyOrderedExtensions() {\n let extensions = {};\n\n extensions.none = Object.values(app.data.extensions);\n\n return extensions;\n}\n","import isExtensionEnabled from 'flarum/admin/utils/isExtensionEnabled';\n\nexport default function getAvailabilityCategorizedExtensions() {\n let extensions = {enabled: [], disabled: []};\n\n Object.keys(app.data.extensions).map((id) => {\n const category = isExtensionEnabled(id) ? 'enabled' : 'disabled';\n\n extensions[category].push(app.data.extensions[id]);\n });\n\n return extensions;\n}\n","export default function getVendorCategorizedExtensions() {\n let extensions = {};\n\n Object.keys(app.data.extensions).map((id) => {\n const vendor = id.split('-')[0];\n\n extensions[vendor] = extensions[vendor] || [];\n extensions[vendor].push(app.data.extensions[id]);\n });\n\n return extensions;\n}\n","module.exports = flarum.core.compat['admin/components/AdminNav'];","module.exports = flarum.core.compat['admin/components/ExtensionLinkButton'];","module.exports = flarum.core.compat['admin/components/ExtensionsWidget'];","module.exports = flarum.core.compat['admin/components/LoadingModal'];","module.exports = flarum.core.compat['admin/utils/getCategorizedExtensions'];","module.exports = flarum.core.compat['admin/utils/isExtensionEnabled'];","module.exports = flarum.core.compat['admin/utils/saveSettings'];","module.exports = flarum.core.compat['common/components/Button'];","module.exports = flarum.core.compat['common/components/Dropdown'];","module.exports = flarum.core.compat['common/components/Link'];","module.exports = flarum.core.compat['common/extend'];","module.exports = flarum.core.compat['common/helpers/icon'];","module.exports = flarum.core.compat['common/utils/ItemList'];"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["webpack://@sycho/flarum-advanced-extension-categories/webpack/bootstrap","webpack://@sycho/flarum-advanced-extension-categories/external \"flarum.core.compat['common/extend']\"","webpack://@sycho/flarum-advanced-extension-categories/external \"flarum.core.compat['admin/components/ExtensionsWidget']\"","webpack://@sycho/flarum-advanced-extension-categories/external \"flarum.core.compat['admin/components/LoadingModal']\"","webpack://@sycho/flarum-advanced-extension-categories/external \"flarum.core.compat['common/utils/ItemList']\"","webpack://@sycho/flarum-advanced-extension-categories/external \"flarum.core.compat['admin/components/AdminNav']\"","webpack://@sycho/flarum-advanced-extension-categories/external \"flarum.core.compat['admin/components/ExtensionLinkButton']\"","webpack://@sycho/flarum-advanced-extension-categories/external \"flarum.core.compat['common/components/Dropdown']\"","webpack://@sycho/flarum-advanced-extension-categories/external \"flarum.core.compat['common/components/Button']\"","webpack://@sycho/flarum-advanced-extension-categories/external \"flarum.core.compat['common/helpers/icon']\"","webpack://@sycho/flarum-advanced-extension-categories/external \"flarum.core.compat['admin/utils/saveSettings']\"","webpack://@sycho/flarum-advanced-extension-categories/external \"flarum.core.compat['admin/utils/getCategorizedExtensions']\"","webpack://@sycho/flarum-advanced-extension-categories/external \"flarum.core.compat['admin/utils/isExtensionEnabled']\"","webpack://@sycho/flarum-advanced-extension-categories/./src/admin/overrideGetCategorizedExtensions.js","webpack://@sycho/flarum-advanced-extension-categories/./src/admin/utils/getAlphabeticallyOrderedExtensions.js","webpack://@sycho/flarum-advanced-extension-categories/./src/admin/utils/getVendorCategorizedExtensions.js","webpack://@sycho/flarum-advanced-extension-categories/./src/admin/utils/getAvailabilityCategorizedExtensions.js","webpack://@sycho/flarum-advanced-extension-categories/./src/admin/getCategories.js","webpack://@sycho/flarum-advanced-extension-categories/./src/admin/getCategoryLabels.js","webpack://@sycho/flarum-advanced-extension-categories/./src/admin/index.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","flarum","core","compat","overrideGetCategorizedExtensions","app","data","settings","extensions","none","values","keys","map","id","vendor","split","push","getVendorCategorizedExtensions","enabled","disabled","category","isExtensionEnabled","getAvailabilityCategorizedExtensions","getCategorizedExtensions","getCategories","vendors","vendorsArray","sort","a","b","k","length","forEach","v","getVendors","extensionCategories","getCategoryLabels","labels","categories","translator","trans","initializers","add","categorizationOptions","default","availability","extensionData","registerSetting","selectbox","this","buildSettingComponent","setting","label","type","options","originalSaveSettings","saveSettings","e","modal","show","LoadingModal","window","location","reload","categorizedExtensions","categoryLabels","ExtensionsWidget","controlItems","items","ItemList","selectedCategorization","className","buttonClassName","icon","active","onclick","then","override","original","toArray","extend","vnode","children","text","AdminNav","query","extension","toUpperCase","title","extra","includes","description","href","route","extensionId"],"mappings":"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","file":"admin.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 12);\n","module.exports = flarum.core.compat['common/extend'];","module.exports = flarum.core.compat['admin/components/ExtensionsWidget'];","module.exports = flarum.core.compat['admin/components/LoadingModal'];","module.exports = flarum.core.compat['common/utils/ItemList'];","module.exports = flarum.core.compat['admin/components/AdminNav'];","module.exports = flarum.core.compat['admin/components/ExtensionLinkButton'];","module.exports = flarum.core.compat['common/components/Dropdown'];","module.exports = flarum.core.compat['common/components/Button'];","module.exports = flarum.core.compat['common/helpers/icon'];","module.exports = flarum.core.compat['admin/utils/saveSettings'];","module.exports = flarum.core.compat['admin/utils/getCategorizedExtensions'];","module.exports = flarum.core.compat['admin/utils/isExtensionEnabled'];","import getCategorizedExtensions from 'flarum/admin/utils/getCategorizedExtensions';\nimport getAlphabeticallyOrderedExtensions from './utils/getAlphabeticallyOrderedExtensions';\nimport getVendorCategorizedExtensions from './utils/getVendorCategorizedExtensions';\nimport getAvailabilityCategorizedExtensions from './utils/getAvailabilityCategorizedExtensions';\n\nexport default function overrideGetCategorizedExtensions() {\n switch (app.data.settings['sycho-ace.selected-categorization']) {\n case 'none':\n return getAlphabeticallyOrderedExtensions();\n\n case 'vendor':\n return getVendorCategorizedExtensions();\n\n case 'availability':\n return getAvailabilityCategorizedExtensions();\n\n default:\n return getCategorizedExtensions();\n }\n}\n","export default function getAlphabeticallyOrderedExtensions() {\n let extensions = {};\n\n extensions.none = Object.values(app.data.extensions);\n\n return extensions;\n}\n","export default function getVendorCategorizedExtensions() {\n let extensions = {};\n\n Object.keys(app.data.extensions).map((id) => {\n const vendor = id.split('-')[0];\n\n extensions[vendor] = extensions[vendor] || [];\n extensions[vendor].push(app.data.extensions[id]);\n });\n\n return extensions;\n}\n","import isExtensionEnabled from 'flarum/admin/utils/isExtensionEnabled';\n\nexport default function getAvailabilityCategorizedExtensions() {\n let extensions = {enabled: [], disabled: []};\n\n Object.keys(app.data.extensions).map((id) => {\n const category = isExtensionEnabled(id) ? 'enabled' : 'disabled';\n\n extensions[category].push(app.data.extensions[id]);\n });\n\n return extensions;\n}\n","export default function getCategories() {\n switch (app.data.settings['sycho-ace.selected-categorization']) {\n case 'none':\n return { none: 0 };\n\n case 'vendor':\n return getVendors();\n\n case 'availability':\n return { enabled: 10, disabled: 0 };\n\n default:\n return app.extensionCategories;\n }\n}\n\nexport function getVendors() {\n let vendors = {};\n let vendorsArray = [];\n\n Object.keys(app.data.extensions).map((id) => {\n vendorsArray.push(id.split('-')[0]);\n });\n\n vendorsArray.sort((a, b) => {\n return a === 'flarum' ? -1 : a > b ? 1 : a === b ? 0 : -1;\n });\n\n let k = vendorsArray.length * 10;\n vendorsArray.forEach((v) => (vendors[v] = k -= 10));\n\n if (vendors.flarum) vendors.flarum = 5000;\n\n return vendors;\n}\n","import getCategories from './getCategories';\n\nexport default function getCategoryLabels() {\n let labels = {};\n const categories = getCategories();\n\n Object.keys(categories).map((category) => {\n switch (app.data.settings['sycho-ace.selected-categorization']) {\n case 'default':\n labels[category] = app.translator.trans(`core.admin.nav.categories.${category}`);\n break;\n\n case 'vendor':\n labels[category] = category;\n break;\n\n default:\n labels[category] = app.translator.trans(`sycho-ace.admin.categories.${category}`);\n }\n });\n\n return labels;\n}\n","import { override, extend } from 'flarum/common/extend';\nimport AdminNav from 'flarum/admin/components/AdminNav';\nimport ExtensionLinkButton from 'flarum/admin/components/ExtensionLinkButton';\nimport ExtensionsWidget from 'flarum/admin/components/ExtensionsWidget';\nimport LoadingModal from 'flarum/admin/components/LoadingModal';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport Dropdown from 'flarum/common/components/Dropdown';\nimport Button from 'flarum/common/components/Button';\nimport icon from 'flarum/common/helpers/icon';\nimport saveSettings from 'flarum/admin/utils/saveSettings';\nimport overrideGetCategorizedExtensions from './overrideGetCategorizedExtensions';\nimport getCategories from './getCategories';\nimport getCategoryLabels from './getCategoryLabels';\n\napp.initializers.add(\n 'sycho-advanced-extension-categories',\n (app) => {\n const categorizationOptions = {\n default: app.translator.trans('sycho-ace.admin.category_selection.options.default'),\n vendor: app.translator.trans('sycho-ace.admin.category_selection.options.vendor'),\n availability: app.translator.trans('sycho-ace.admin.category_selection.options.availability'),\n none: app.translator.trans('sycho-ace.admin.category_selection.options.none'),\n };\n\n app.extensionData.for('sycho-advanced-extension-categories').registerSetting(function () {\n const selectbox = this.buildSettingComponent({\n setting: 'sycho-ace.selected-categorization',\n label: app.translator.trans('sycho-ace.admin.category_selection.label'),\n type: 'select',\n options: categorizationOptions,\n default: 'default',\n });\n\n const originalSaveSettings = this.saveSettings;\n this.saveSettings = function (e) {\n originalSaveSettings.call(this, e);\n app.modal.show(LoadingModal);\n window.location.reload();\n };\n\n return selectbox;\n });\n\n const saveCategorization = (value) => {\n saveSettings({\n 'sycho-ace.selected-categorization': value,\n }).then(() => window.location.reload());\n\n app.modal.show(LoadingModal);\n };\n\n app.extensionCategories = getCategories();\n app.categorizedExtensions = overrideGetCategorizedExtensions();\n const categoryLabels = getCategoryLabels();\n\n ExtensionsWidget.prototype.controlItems = function () {\n const items = new ItemList();\n\n const selectedCategorization = app.data.settings['sycho-ace.selected-categorization'] ?? 'default';\n\n items.add(\n 'categorization',\n \n \n {Object.keys(categorizationOptions).map((key) => (\n \n ))}\n \n
\n );\n\n return items;\n };\n\n override(ExtensionsWidget.prototype, 'oninit', function () {\n this.categorizedExtensions = app.categorizedExtensions;\n });\n\n override(ExtensionsWidget.prototype, 'content', function (original) {\n return [\n \n
\n {icon('fas fa-puzzle-piece')}\n {app.translator.trans('sycho-ace.admin.extensions')}\n
\n
{this.controlItems().toArray()}
\n
,\n original()\n ];\n });\n\n extend(ExtensionsWidget.prototype, 'extensionCategory', function (vnode, category) {\n vnode.children[0].text = categoryLabels[category];\n });\n\n override(AdminNav.prototype, 'extensionItems', function () {\n const items = new ItemList();\n\n const categorizedExtensions = overrideGetCategorizedExtensions();\n const categories = app.extensionCategories;\n\n Object.keys(categorizedExtensions).map((category) => {\n if (!this.query()) {\n items.add(`category-${category}`, {categoryLabels[category]}
, categories[category]);\n }\n\n categorizedExtensions[category].map((extension) => {\n const query = this.query().toUpperCase();\n const title = extension.extra['flarum-extension'].title;\n\n if (!query || title.toUpperCase().includes(query) || extension.description.toUpperCase().includes(query)) {\n items.add(\n `extension-${extension.id}`,\n \n {title}\n ,\n categories[category]\n );\n }\n });\n });\n\n return items;\n });\n },\n -999\n);\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/js/package-lock.json b/js/package-lock.json
index ccc9ee4..512a2b0 100644
--- a/js/package-lock.json
+++ b/js/package-lock.json
@@ -931,11 +931,10 @@
"to-fast-properties": "^2.0.0"
}
},
- "@types/color-name": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz",
- "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==",
- "dev": true
+ "@types/json-schema": {
+ "version": "7.0.7",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz",
+ "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA=="
},
"@types/parse-json": {
"version": "4.0.0",
@@ -1111,14 +1110,14 @@
"integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ=="
},
"acorn": {
- "version": "6.4.1",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz",
- "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA=="
+ "version": "6.4.2",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz",
+ "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ=="
},
"ajv": {
- "version": "6.12.3",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz",
- "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==",
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
"requires": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
@@ -1132,9 +1131,9 @@
"integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ=="
},
"ajv-keywords": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.0.tgz",
- "integrity": "sha512-eyoaac3btgU8eJlvh01En8OCKzRqlLe2G5jDsCr3RiE2uLGMEEB1aaGwVVpwR8M95956tGH6R+9edC++OvzaVw=="
+ "version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
+ "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ=="
},
"ansi-regex": {
"version": "4.1.0",
@@ -1150,9 +1149,9 @@
}
},
"anymatch": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
- "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
+ "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
"optional": true,
"requires": {
"normalize-path": "^3.0.0",
@@ -1185,19 +1184,20 @@
"integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="
},
"asn1.js": {
- "version": "4.10.1",
- "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz",
- "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==",
+ "version": "5.4.1",
+ "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz",
+ "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==",
"requires": {
"bn.js": "^4.0.0",
"inherits": "^2.0.1",
- "minimalistic-assert": "^1.0.0"
+ "minimalistic-assert": "^1.0.0",
+ "safer-buffer": "^2.1.0"
},
"dependencies": {
"bn.js": {
- "version": "4.11.9",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
- "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw=="
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
}
}
},
@@ -1242,14 +1242,87 @@
"integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg=="
},
"babel-loader": {
- "version": "8.0.6",
- "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.0.6.tgz",
- "integrity": "sha512-4BmWKtBOBm13uoUwd08UwjZlaw3O9GWf456R9j+5YykFZ6LUIjIKLc0zEZf+hauxPOJs96C8k6FvYD09vWzhYw==",
+ "version": "8.2.2",
+ "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.2.tgz",
+ "integrity": "sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g==",
"requires": {
- "find-cache-dir": "^2.0.0",
- "loader-utils": "^1.0.2",
- "mkdirp": "^0.5.1",
- "pify": "^4.0.1"
+ "find-cache-dir": "^3.3.1",
+ "loader-utils": "^1.4.0",
+ "make-dir": "^3.1.0",
+ "schema-utils": "^2.6.5"
+ },
+ "dependencies": {
+ "find-cache-dir": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz",
+ "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==",
+ "requires": {
+ "commondir": "^1.0.1",
+ "make-dir": "^3.0.2",
+ "pkg-dir": "^4.1.0"
+ }
+ },
+ "find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "requires": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "requires": {
+ "p-locate": "^4.1.0"
+ }
+ },
+ "make-dir": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
+ "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
+ "requires": {
+ "semver": "^6.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "requires": {
+ "p-limit": "^2.2.0"
+ }
+ },
+ "path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="
+ },
+ "pkg-dir": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
+ "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
+ "requires": {
+ "find-up": "^4.0.0"
+ }
+ },
+ "schema-utils": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz",
+ "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==",
+ "requires": {
+ "@types/json-schema": "^7.0.5",
+ "ajv": "^6.12.4",
+ "ajv-keywords": "^3.5.2"
+ }
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ }
}
},
"babel-plugin-dynamic-import-node": {
@@ -1261,9 +1334,9 @@
}
},
"balanced-match": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
- "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
},
"base": {
"version": "0.11.2",
@@ -1316,9 +1389,9 @@
}
},
"base64-js": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz",
- "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g=="
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
},
"big.js": {
"version": "5.2.2",
@@ -1326,9 +1399,9 @@
"integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ=="
},
"binary-extensions": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz",
- "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
"optional": true
},
"bluebird": {
@@ -1337,9 +1410,9 @@
"integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg=="
},
"bn.js": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.2.tgz",
- "integrity": "sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA=="
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz",
+ "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw=="
},
"brace-expansion": {
"version": "1.1.11",
@@ -1417,31 +1490,24 @@
}
},
"browserify-rsa": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz",
- "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz",
+ "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==",
"requires": {
- "bn.js": "^4.1.0",
+ "bn.js": "^5.0.0",
"randombytes": "^2.0.1"
- },
- "dependencies": {
- "bn.js": {
- "version": "4.11.9",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
- "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw=="
- }
}
},
"browserify-sign": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.0.tgz",
- "integrity": "sha512-hEZC1KEeYuoHRqhGhTy6gWrpJA3ZDjFWv0DE61643ZnOXAKJb3u7yWcrU0mMc9SwAqK1n7myPGndkp0dFG7NFA==",
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz",
+ "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==",
"requires": {
"bn.js": "^5.1.1",
"browserify-rsa": "^4.0.1",
"create-hash": "^1.2.0",
"create-hmac": "^1.1.7",
- "elliptic": "^6.5.2",
+ "elliptic": "^6.5.3",
"inherits": "^2.0.4",
"parse-asn1": "^5.1.5",
"readable-stream": "^3.6.0",
@@ -1573,19 +1639,19 @@
}
},
"chokidar": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.0.tgz",
- "integrity": "sha512-aXAaho2VJtisB/1fg1+3nlLJqGOuewTzQpd/Tz0yTg2R0e4IGtshYvtjowyEumcBv2z+y4+kc75Mz7j5xJskcQ==",
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz",
+ "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==",
"optional": true,
"requires": {
"anymatch": "~3.1.1",
"braces": "~3.0.2",
- "fsevents": "~2.1.2",
+ "fsevents": "~2.3.1",
"glob-parent": "~5.1.0",
"is-binary-path": "~2.1.0",
"is-glob": "~4.0.1",
"normalize-path": "~3.0.0",
- "readdirp": "~3.4.0"
+ "readdirp": "~3.5.0"
},
"dependencies": {
"braces": {
@@ -1629,12 +1695,9 @@
"integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="
},
"chrome-trace-event": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz",
- "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==",
- "requires": {
- "tslib": "^1.9.0"
- }
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz",
+ "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg=="
},
"ci-info": {
"version": "2.0.0",
@@ -1799,31 +1862,31 @@
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
},
"cosmiconfig": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz",
- "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz",
+ "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==",
"dev": true,
"requires": {
"@types/parse-json": "^4.0.0",
- "import-fresh": "^3.1.0",
+ "import-fresh": "^3.2.1",
"parse-json": "^5.0.0",
"path-type": "^4.0.0",
- "yaml": "^1.7.2"
+ "yaml": "^1.10.0"
}
},
"create-ecdh": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz",
- "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz",
+ "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==",
"requires": {
"bn.js": "^4.1.0",
- "elliptic": "^6.0.0"
+ "elliptic": "^6.5.3"
},
"dependencies": {
"bn.js": {
- "version": "4.11.9",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
- "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw=="
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
}
}
},
@@ -1975,9 +2038,9 @@
},
"dependencies": {
"bn.js": {
- "version": "4.11.9",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
- "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw=="
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
}
}
},
@@ -2003,23 +2066,23 @@
"integrity": "sha512-cm2WzMKf/3dW5+hNANKm8GAW6SwIWOqLTJ6GPCD0Bbw1qJ9Wzm9nmx9M+byzSsgw8CdCv5fb/wzLFqVS5h6QrA=="
},
"elliptic": {
- "version": "6.5.3",
- "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz",
- "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==",
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
+ "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==",
"requires": {
- "bn.js": "^4.4.0",
- "brorand": "^1.0.1",
+ "bn.js": "^4.11.9",
+ "brorand": "^1.1.0",
"hash.js": "^1.0.0",
- "hmac-drbg": "^1.0.0",
- "inherits": "^2.0.1",
- "minimalistic-assert": "^1.0.0",
- "minimalistic-crypto-utils": "^1.0.0"
+ "hmac-drbg": "^1.0.1",
+ "inherits": "^2.0.4",
+ "minimalistic-assert": "^1.0.1",
+ "minimalistic-crypto-utils": "^1.0.1"
},
"dependencies": {
"bn.js": {
- "version": "4.11.9",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
- "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw=="
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
}
}
},
@@ -2099,11 +2162,18 @@
}
},
"esrecurse": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
- "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
"requires": {
- "estraverse": "^4.1.0"
+ "estraverse": "^5.2.0"
+ },
+ "dependencies": {
+ "estraverse": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
+ "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ=="
+ }
}
},
"estraverse": {
@@ -2117,9 +2187,9 @@
"integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="
},
"events": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz",
- "integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg=="
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
+ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q=="
},
"evp_bytestokey": {
"version": "1.0.3",
@@ -2316,12 +2386,12 @@
}
},
"find-versions": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-3.2.0.tgz",
- "integrity": "sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-4.0.0.tgz",
+ "integrity": "sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ==",
"dev": true,
"requires": {
- "semver-regex": "^2.0.0"
+ "semver-regex": "^3.1.2"
}
},
"findup-sync": {
@@ -2399,9 +2469,9 @@
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
},
"fsevents": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
- "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
"optional": true
},
"function-bind": {
@@ -2438,9 +2508,9 @@
}
},
"glob-parent": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
- "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
"optional": true,
"requires": {
"is-glob": "^4.0.1"
@@ -2587,37 +2657,36 @@
"integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM="
},
"husky": {
- "version": "4.2.5",
- "resolved": "https://registry.npmjs.org/husky/-/husky-4.2.5.tgz",
- "integrity": "sha512-SYZ95AjKcX7goYVZtVZF2i6XiZcHknw50iXvY7b0MiGoj5RwdgRQNEHdb+gPDPCXKlzwrybjFjkL6FOj8uRhZQ==",
+ "version": "4.3.8",
+ "resolved": "https://registry.npmjs.org/husky/-/husky-4.3.8.tgz",
+ "integrity": "sha512-LCqqsB0PzJQ/AlCgfrfzRe3e3+NvmefAdKQhRYpxS4u6clblBoDdzzvHi8fmxKRzvMxPY/1WZWzomPZww0Anow==",
"dev": true,
"requires": {
"chalk": "^4.0.0",
"ci-info": "^2.0.0",
"compare-versions": "^3.6.0",
- "cosmiconfig": "^6.0.0",
- "find-versions": "^3.2.0",
+ "cosmiconfig": "^7.0.0",
+ "find-versions": "^4.0.0",
"opencollective-postinstall": "^2.0.2",
- "pkg-dir": "^4.2.0",
+ "pkg-dir": "^5.0.0",
"please-upgrade-node": "^3.2.0",
"slash": "^3.0.0",
"which-pm-runs": "^1.0.0"
},
"dependencies": {
"ansi-styles": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
- "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
"requires": {
- "@types/color-name": "^1.1.1",
"color-convert": "^2.0.1"
}
},
"chalk": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
- "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz",
+ "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==",
"dev": true,
"requires": {
"ansi-styles": "^4.1.0",
@@ -2640,12 +2709,12 @@
"dev": true
},
"find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
"dev": true,
"requires": {
- "locate-path": "^5.0.0",
+ "locate-path": "^6.0.0",
"path-exists": "^4.0.0"
}
},
@@ -2656,21 +2725,30 @@
"dev": true
},
"locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
"dev": true,
"requires": {
- "p-locate": "^4.1.0"
+ "p-locate": "^5.0.0"
+ }
+ },
+ "p-limit": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+ "dev": true,
+ "requires": {
+ "yocto-queue": "^0.1.0"
}
},
"p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
"dev": true,
"requires": {
- "p-limit": "^2.2.0"
+ "p-limit": "^3.0.2"
}
},
"path-exists": {
@@ -2680,18 +2758,18 @@
"dev": true
},
"pkg-dir": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
- "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz",
+ "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==",
"dev": true,
"requires": {
- "find-up": "^4.0.0"
+ "find-up": "^5.0.0"
}
},
"supports-color": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
- "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
"requires": {
"has-flag": "^4.0.0"
@@ -2700,9 +2778,9 @@
}
},
"ieee754": {
- "version": "1.1.13",
- "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz",
- "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg=="
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
},
"iferr": {
"version": "0.1.5",
@@ -2710,9 +2788,9 @@
"integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE="
},
"import-fresh": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz",
- "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
+ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
"dev": true,
"requires": {
"parent-module": "^1.0.0",
@@ -2761,9 +2839,9 @@
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
"ini": {
- "version": "1.3.5",
- "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
- "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw=="
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
+ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
},
"interpret": {
"version": "1.4.0",
@@ -2940,6 +3018,12 @@
"resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
"integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw=="
},
+ "json-parse-even-better-errors": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
+ "dev": true
+ },
"json-schema-traverse": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
@@ -3103,9 +3187,9 @@
},
"dependencies": {
"bn.js": {
- "version": "4.11.9",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
- "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw=="
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
}
}
},
@@ -3169,18 +3253,11 @@
}
},
"mkdirp": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
- "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
+ "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
"requires": {
- "minimist": "0.0.8"
- },
- "dependencies": {
- "minimist": {
- "version": "0.0.8",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
- "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
- }
+ "minimist": "^1.2.5"
}
},
"move-concurrently": {
@@ -3220,9 +3297,9 @@
}
},
"neo-async": {
- "version": "2.6.1",
- "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz",
- "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw=="
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
+ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="
},
"nice-try": {
"version": "1.0.5",
@@ -3417,27 +3494,26 @@
}
},
"parse-asn1": {
- "version": "5.1.5",
- "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz",
- "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==",
+ "version": "5.1.6",
+ "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz",
+ "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==",
"requires": {
- "asn1.js": "^4.0.0",
+ "asn1.js": "^5.2.0",
"browserify-aes": "^1.0.0",
- "create-hash": "^1.1.0",
"evp_bytestokey": "^1.0.0",
"pbkdf2": "^3.0.3",
"safe-buffer": "^5.1.1"
}
},
"parse-json": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz",
- "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==",
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
+ "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.0.0",
"error-ex": "^1.3.1",
- "json-parse-better-errors": "^1.0.1",
+ "json-parse-even-better-errors": "^2.3.0",
"lines-and-columns": "^1.1.6"
}
},
@@ -3489,9 +3565,9 @@
"dev": true
},
"pbkdf2": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz",
- "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==",
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz",
+ "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==",
"requires": {
"create-hash": "^1.1.2",
"create-hmac": "^1.1.4",
@@ -3501,9 +3577,9 @@
}
},
"picomatch": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
- "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz",
+ "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==",
"optional": true
},
"pify": {
@@ -3578,9 +3654,9 @@
},
"dependencies": {
"bn.js": {
- "version": "4.11.9",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
- "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw=="
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
}
}
},
@@ -3661,9 +3737,9 @@
}
},
"readdirp": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz",
- "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==",
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz",
+ "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==",
"optional": true,
"requires": {
"picomatch": "^2.2.1"
@@ -3854,6 +3930,11 @@
"ret": "~0.1.10"
}
},
+ "safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+ },
"schema-utils": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
@@ -3876,15 +3957,15 @@
"dev": true
},
"semver-regex": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz",
- "integrity": "sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==",
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-3.1.2.tgz",
+ "integrity": "sha512-bXWyL6EAKOJa81XG1OZ/Yyuq+oT0b2YLlxx7c+mrdYPaPbnj6WgVULXhinMIeZGufuUBu/eVRqXEhiv4imfwxA==",
"dev": true
},
"serialize-javascript": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz",
- "integrity": "sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz",
+ "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==",
"requires": {
"randombytes": "^2.1.0"
}
@@ -4110,9 +4191,9 @@
}
},
"ssri": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz",
- "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==",
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz",
+ "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==",
"requires": {
"figgy-pudding": "^3.5.1"
}
@@ -4228,15 +4309,15 @@
}
},
"terser-webpack-plugin": {
- "version": "1.4.4",
- "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.4.tgz",
- "integrity": "sha512-U4mACBHIegmfoEe5fdongHESNJWqsGU+W0S/9+BmYGVQDw1+c2Ow05TpMhxjPK1sRb7cuYq1BPl1e5YHJMTCqA==",
+ "version": "1.4.5",
+ "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz",
+ "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==",
"requires": {
"cacache": "^12.0.2",
"find-cache-dir": "^2.1.0",
"is-wsl": "^1.1.0",
"schema-utils": "^1.0.0",
- "serialize-javascript": "^3.1.0",
+ "serialize-javascript": "^4.0.0",
"source-map": "^0.6.1",
"terser": "^4.1.2",
"webpack-sources": "^1.4.0",
@@ -4260,9 +4341,9 @@
}
},
"timers-browserify": {
- "version": "2.0.11",
- "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz",
- "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==",
+ "version": "2.0.12",
+ "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz",
+ "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==",
"requires": {
"setimmediate": "^1.0.4"
}
@@ -4315,11 +4396,6 @@
"repeat-string": "^1.6.1"
}
},
- "tslib": {
- "version": "1.13.0",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz",
- "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q=="
- },
"tty-browserify": {
"version": "0.0.0",
"resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
@@ -4424,9 +4500,9 @@
"optional": true
},
"uri-js": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
- "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
"requires": {
"punycode": "^2.1.0"
}
@@ -4488,20 +4564,20 @@
"integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ=="
},
"watchpack": {
- "version": "1.7.2",
- "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.2.tgz",
- "integrity": "sha512-ymVbbQP40MFTp+cNMvpyBpBtygHnPzPkHqoIwRRj/0B8KhqQwV8LaKjtbaxF2lK4vl8zN9wCxS46IFCU5K4W0g==",
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz",
+ "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==",
"requires": {
- "chokidar": "^3.4.0",
+ "chokidar": "^3.4.1",
"graceful-fs": "^4.1.2",
"neo-async": "^2.5.0",
- "watchpack-chokidar2": "^2.0.0"
+ "watchpack-chokidar2": "^2.0.1"
}
},
"watchpack-chokidar2": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz",
- "integrity": "sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz",
+ "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==",
"optional": true,
"requires": {
"chokidar": "^2.1.8"
@@ -4604,9 +4680,9 @@
}
},
"webpack": {
- "version": "4.43.0",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.43.0.tgz",
- "integrity": "sha512-GW1LjnPipFW2Y78OOab8NJlCflB7EFskMih2AHdvjbpKMeDJqEgSx24cXXXiPS65+WSwVyxtDsJH6jGX2czy+g==",
+ "version": "4.46.0",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz",
+ "integrity": "sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==",
"requires": {
"@webassemblyjs/ast": "1.9.0",
"@webassemblyjs/helper-module-context": "1.9.0",
@@ -4616,7 +4692,7 @@
"ajv": "^6.10.2",
"ajv-keywords": "^3.4.1",
"chrome-trace-event": "^1.0.2",
- "enhanced-resolve": "^4.1.0",
+ "enhanced-resolve": "^4.5.0",
"eslint-scope": "^4.0.3",
"json-parse-better-errors": "^1.0.2",
"loader-runner": "^2.4.0",
@@ -4629,10 +4705,31 @@
"schema-utils": "^1.0.0",
"tapable": "^1.1.3",
"terser-webpack-plugin": "^1.4.3",
- "watchpack": "^1.6.1",
+ "watchpack": "^1.7.4",
"webpack-sources": "^1.4.1"
},
"dependencies": {
+ "enhanced-resolve": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz",
+ "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==",
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "memory-fs": "^0.5.0",
+ "tapable": "^1.0.0"
+ },
+ "dependencies": {
+ "memory-fs": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz",
+ "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==",
+ "requires": {
+ "errno": "^0.1.3",
+ "readable-stream": "^2.0.1"
+ }
+ }
+ }
+ },
"mkdirp": {
"version": "0.5.5",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
@@ -4735,9 +4832,9 @@
"integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
},
"y18n": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
- "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w=="
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
+ "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="
},
"yallist": {
"version": "3.1.1",
@@ -4745,9 +4842,9 @@
"integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
},
"yaml": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz",
- "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==",
+ "version": "1.10.2",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
+ "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
"dev": true
},
"yargs": {
@@ -4775,6 +4872,12 @@
"camelcase": "^5.0.0",
"decamelize": "^1.2.0"
}
+ },
+ "yocto-queue": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
+ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
+ "dev": true
}
}
}
diff --git a/js/package.json b/js/package.json
index eca2c16..5e526a0 100644
--- a/js/package.json
+++ b/js/package.json
@@ -3,7 +3,7 @@
"version": "0.1.0",
"dependencies": {
"flarum-webpack-config": "^0.1.0-beta.10",
- "webpack": "^4.43.0",
+ "webpack": "^4.46.0",
"webpack-cli": "^3.3.12"
},
"scripts": {
@@ -18,7 +18,7 @@
}
},
"devDependencies": {
- "husky": "^4.2.5",
+ "husky": "^4.3.8",
"prettier": "2.0.2"
}
}
diff --git a/js/src/admin/index.js b/js/src/admin/index.js
index b742b6a..668a848 100644
--- a/js/src/admin/index.js
+++ b/js/src/admin/index.js
@@ -8,8 +8,6 @@ import Dropdown from 'flarum/common/components/Dropdown';
import Button from 'flarum/common/components/Button';
import icon from 'flarum/common/helpers/icon';
import saveSettings from 'flarum/admin/utils/saveSettings';
-import isExtensionEnabled from 'flarum/admin/utils/isExtensionEnabled';
-import Link from 'flarum/common/components/Link';
import overrideGetCategorizedExtensions from './overrideGetCategorizedExtensions';
import getCategories from './getCategories';
import getCategoryLabels from './getCategoryLabels';
@@ -52,6 +50,7 @@ app.initializers.add(
};
app.extensionCategories = getCategories();
+ app.categorizedExtensions = overrideGetCategorizedExtensions();
const categoryLabels = getCategoryLabels();
ExtensionsWidget.prototype.controlItems = function () {
@@ -80,7 +79,7 @@ app.initializers.add(
};
override(ExtensionsWidget.prototype, 'oninit', function () {
- this.categorizedExtensions = overrideGetCategorizedExtensions();
+ this.categorizedExtensions = app.categorizedExtensions;
});
override(ExtensionsWidget.prototype, 'content', function (original) {
@@ -92,7 +91,7 @@ app.initializers.add(
{this.controlItems().toArray()}
,
- original()
+ original(),
];
});
diff --git a/js/src/admin/utils/getAvailabilityCategorizedExtensions.js b/js/src/admin/utils/getAvailabilityCategorizedExtensions.js
index 0435ce2..0c3f1ea 100644
--- a/js/src/admin/utils/getAvailabilityCategorizedExtensions.js
+++ b/js/src/admin/utils/getAvailabilityCategorizedExtensions.js
@@ -1,7 +1,7 @@
import isExtensionEnabled from 'flarum/admin/utils/isExtensionEnabled';
export default function getAvailabilityCategorizedExtensions() {
- let extensions = {enabled: [], disabled: []};
+ let extensions = { enabled: [], disabled: [] };
Object.keys(app.data.extensions).map((id) => {
const category = isExtensionEnabled(id) ? 'enabled' : 'disabled';