From 518b39610e1eb40a2fd3be2a452d50b55c9b953e Mon Sep 17 00:00:00 2001 From: flarum-bot Date: Sat, 9 Apr 2022 22:06:48 +0000 Subject: [PATCH] Bundled output for commit 6de1ea0194ac6c40e5775ffe9d8b7890c458c9b1 Includes transpiled JS/TS, and Typescript declaration files (typings). [skip ci] --- .../dist-typings/components/WhyNotModal.d.ts | 3 +- extensions/package-manager/js/dist/admin.js | 1211 +---------------- .../package-manager/js/dist/admin.js.map | 2 +- 3 files changed, 3 insertions(+), 1213 deletions(-) diff --git a/extensions/package-manager/js/dist-typings/components/WhyNotModal.d.ts b/extensions/package-manager/js/dist-typings/components/WhyNotModal.d.ts index 817978494..3e1272b58 100644 --- a/extensions/package-manager/js/dist-typings/components/WhyNotModal.d.ts +++ b/extensions/package-manager/js/dist-typings/components/WhyNotModal.d.ts @@ -1,4 +1,3 @@ -/// import Mithril from 'mithril'; import Modal, { IInternalModalAttrs } from 'flarum/common/components/Modal'; export interface WhyNotModalAttrs extends IInternalModalAttrs { @@ -8,7 +7,7 @@ export default class WhyNotModal): void; content(): JSX.Element; requestWhyNot(): void; diff --git a/extensions/package-manager/js/dist/admin.js b/extensions/package-manager/js/dist/admin.js index 661ea373c..1c6b97d63 100755 --- a/extensions/package-manager/js/dist/admin.js +++ b/extensions/package-manager/js/dist/admin.js @@ -1,1211 +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.tsx"); -/* empty/unused harmony star reexport */ - -/***/ }), - -/***/ "./node_modules/@babel/runtime/helpers/esm/createClass.js": -/*!****************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/createClass.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 _createClass; }); -function _defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, descriptor.key, descriptor); - } -} - -function _createClass(Constructor, protoProps, staticProps) { - if (protoProps) _defineProperties(Constructor.prototype, protoProps); - if (staticProps) _defineProperties(Constructor, staticProps); - return Constructor; -} - -/***/ }), - -/***/ "./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js": -/*!******************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/inheritsLoose.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 _inheritsLoose; }); -/* harmony import */ var _setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setPrototypeOf.js */ "./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js"); - -function _inheritsLoose(subClass, superClass) { - subClass.prototype = Object.create(superClass.prototype); - subClass.prototype.constructor = subClass; - Object(_setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__["default"])(subClass, superClass); -} - -/***/ }), - -/***/ "./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js": -/*!*******************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.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 _setPrototypeOf; }); -function _setPrototypeOf(o, p) { - _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { - o.__proto__ = p; - return o; - }; - - return _setPrototypeOf(o, p); -} - -/***/ }), - -/***/ "./src/admin/components/ExtensionItem.tsx": -/*!************************************************!*\ - !*** ./src/admin/components/ExtensionItem.tsx ***! - \************************************************/ -/*! 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 ExtensionItem; }); -/* harmony import */ var _babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/inheritsLoose */ "./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js"); -/* harmony import */ var flarum_admin_app__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! flarum/admin/app */ "flarum/admin/app"); -/* harmony import */ var flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(flarum_admin_app__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var flarum_common_Component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! flarum/common/Component */ "flarum/common/Component"); -/* harmony import */ var flarum_common_Component__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(flarum_common_Component__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var flarum_common_utils_classList__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! flarum/common/utils/classList */ "flarum/common/utils/classList"); -/* harmony import */ var flarum_common_utils_classList__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(flarum_common_utils_classList__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var flarum_common_helpers_icon__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! flarum/common/helpers/icon */ "flarum/common/helpers/icon"); -/* harmony import */ var flarum_common_helpers_icon__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(flarum_common_helpers_icon__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var flarum_common_components_Tooltip__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! flarum/common/components/Tooltip */ "flarum/common/components/Tooltip"); -/* harmony import */ var flarum_common_components_Tooltip__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(flarum_common_components_Tooltip__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var flarum_common_components_Button__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! flarum/common/components/Button */ "flarum/common/components/Button"); -/* harmony import */ var flarum_common_components_Button__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(flarum_common_components_Button__WEBPACK_IMPORTED_MODULE_6__); -/* harmony import */ var _WhyNotModal__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./WhyNotModal */ "./src/admin/components/WhyNotModal.tsx"); - - - - - - - - -/* - * @todo fix in core - */ - -var ExtensionItem = /*#__PURE__*/function (_Component) { - Object(_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__["default"])(ExtensionItem, _Component); - - function ExtensionItem() { - return _Component.apply(this, arguments) || this; - } - - var _proto = ExtensionItem.prototype; - - _proto.view = function view(vnode) { - var _this$attrs = this.attrs, - extension = _this$attrs.extension, - updates = _this$attrs.updates, - onClickUpdate = _this$attrs.onClickUpdate, - whyNotWarning = _this$attrs.whyNotWarning, - isCore = _this$attrs.isCore, - isDanger = _this$attrs.isDanger; - return m("div", { - className: flarum_common_utils_classList__WEBPACK_IMPORTED_MODULE_3___default()({ - 'PackageManager-extension': true, - 'PackageManager-extension--core': isCore, - 'PackageManager-extension--danger': isDanger - }) - }, m("div", { - className: "PackageManager-extension-icon ExtensionIcon", - style: extension.icon - }, extension.icon ? flarum_common_helpers_icon__WEBPACK_IMPORTED_MODULE_4___default()(extension.icon.name) : ''), m("div", { - className: "PackageManager-extension-info" - }, m("div", { - className: "PackageManager-extension-name" - }, extension.extra['flarum-extension'].title), m("div", { - className: "PackageManager-extension-version" - }, m("span", { - className: "PackageManager-extension-version-current" - }, this.version(extension.version)), updates['latest-minor'] ? m("span", { - className: "PackageManager-extension-version-latest PackageManager-extension-version-latest--minor" - }, this.version(updates['latest-minor'])) : null, updates['latest-major'] && !isCore ? m("span", { - className: "PackageManager-extension-version-latest PackageManager-extension-version-latest--major" - }, this.version(updates['latest-major'])) : null)), m("div", { - className: "PackageManager-extension-controls" - }, onClickUpdate ? m(flarum_common_components_Tooltip__WEBPACK_IMPORTED_MODULE_5___default.a, { - text: flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default.a.translator.trans('flarum-package-manager.admin.extensions.update') - }, m(flarum_common_components_Button__WEBPACK_IMPORTED_MODULE_6___default.a, { - icon: "fas fa-arrow-alt-circle-up", - className: "Button Button--icon Button--flat", - onclick: onClickUpdate, - "aria-label": flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default.a.translator.trans('flarum-package-manager.admin.extensions.update') - })) : null, whyNotWarning ? m(flarum_common_components_Tooltip__WEBPACK_IMPORTED_MODULE_5___default.a, { - text: flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default.a.translator.trans('flarum-package-manager.admin.extensions.check_why_it_failed_updating') - }, m(flarum_common_components_Button__WEBPACK_IMPORTED_MODULE_6___default.a, { - icon: "fas fa-exclamation-circle", - className: "Button Button--icon Button--flat Button--danger", - onclick: function onclick() { - return flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default.a.modal.show(_WhyNotModal__WEBPACK_IMPORTED_MODULE_7__["default"], { - "package": extension.name - }); - }, - "aria-label": flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default.a.translator.trans('flarum-package-manager.admin.extensions.check_why_it_failed_updating') - })) : null)); - }; - - _proto.version = function version(v) { - return 'v' + v.replace('v', ''); - }; - - return ExtensionItem; -}(flarum_common_Component__WEBPACK_IMPORTED_MODULE_2___default.a); - - - -/***/ }), - -/***/ "./src/admin/components/Installer.tsx": -/*!********************************************!*\ - !*** ./src/admin/components/Installer.tsx ***! - \********************************************/ -/*! 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 Installer; }); -/* harmony import */ var _babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/inheritsLoose */ "./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js"); -/* harmony import */ var flarum_admin_app__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! flarum/admin/app */ "flarum/admin/app"); -/* harmony import */ var flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(flarum_admin_app__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var flarum_common_Component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! flarum/common/Component */ "flarum/common/Component"); -/* harmony import */ var flarum_common_Component__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(flarum_common_Component__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var flarum_common_components_Button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! flarum/common/components/Button */ "flarum/common/components/Button"); -/* harmony import */ var flarum_common_components_Button__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(flarum_common_components_Button__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var flarum_common_utils_Stream__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! flarum/common/utils/Stream */ "flarum/common/utils/Stream"); -/* harmony import */ var flarum_common_utils_Stream__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(flarum_common_utils_Stream__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var flarum_admin_components_LoadingModal__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! flarum/admin/components/LoadingModal */ "flarum/admin/components/LoadingModal"); -/* harmony import */ var flarum_admin_components_LoadingModal__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(flarum_admin_components_LoadingModal__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _utils_errorHandler__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/errorHandler */ "./src/admin/utils/errorHandler.ts"); - - - - - - - - -var Installer = /*#__PURE__*/function (_Component) { - Object(_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__["default"])(Installer, _Component); - - function Installer() { - var _this; - - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - _this = _Component.call.apply(_Component, [this].concat(args)) || this; - _this.packageName = void 0; - _this.isLoading = false; - return _this; - } - - var _proto = Installer.prototype; - - _proto.oninit = function oninit(vnode) { - _Component.prototype.oninit.call(this, vnode); - - this.packageName = flarum_common_utils_Stream__WEBPACK_IMPORTED_MODULE_4___default()(''); - }; - - _proto.view = function view() { - return m("div", { - className: "Form-group" - }, m("label", { - htmlFor: "install-extension" - }, flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default.a.translator.trans('flarum-package-manager.admin.extensions.install')), m("p", { - className: "helpText" - }, flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default.a.translator.trans('flarum-package-manager.admin.extensions.install_help', { - extiverse: m("a", { - href: "https://extiverse.com" - }, "extiverse.com") - })), m("div", { - className: "FormControl-container" - }, m("input", { - className: "FormControl", - id: "install-extension", - placeholder: "vendor/package-name", - bidi: this.packageName - }), m(flarum_common_components_Button__WEBPACK_IMPORTED_MODULE_3___default.a, { - className: "Button", - icon: "fas fa-download", - onclick: this.onsubmit.bind(this), - loading: this.isLoading - }, flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default.a.translator.trans('flarum-package-manager.admin.extensions.proceed')))); - }; - - _proto.data = function data() { - return { - "package": this.packageName() - }; - }; - - _proto.onsubmit = function onsubmit() { - var _this2 = this; - - this.isLoading = true; - flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default.a.modal.show(flarum_admin_components_LoadingModal__WEBPACK_IMPORTED_MODULE_5___default.a); - flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default.a.request({ - method: 'POST', - url: flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default.a.forum.attribute('apiUrl') + "/package-manager/extensions", - body: { - data: this.data() - }, - errorHandler: _utils_errorHandler__WEBPACK_IMPORTED_MODULE_6__["default"] - }).then(function (response) { - var extensionId = response.id; - flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default.a.alerts.show({ - type: 'success' - }, flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default.a.translator.trans('flarum-package-manager.admin.extensions.successful_install', { - extension: extensionId - })); - window.location.href = flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default.a.forum.attribute('adminUrl') + "#/extension/" + extensionId; - window.location.reload(); - })["finally"](function () { - _this2.isLoading = false; - m.redraw(); - }); - }; - - return Installer; -}(flarum_common_Component__WEBPACK_IMPORTED_MODULE_2___default.a); - - - -/***/ }), - -/***/ "./src/admin/components/MajorUpdater.tsx": -/*!***********************************************!*\ - !*** ./src/admin/components/MajorUpdater.tsx ***! - \***********************************************/ -/*! 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 MajorUpdater; }); -/* harmony import */ var _babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/inheritsLoose */ "./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js"); -/* harmony import */ var flarum_admin_app__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! flarum/admin/app */ "flarum/admin/app"); -/* harmony import */ var flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(flarum_admin_app__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var flarum_common_Component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! flarum/common/Component */ "flarum/common/Component"); -/* harmony import */ var flarum_common_Component__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(flarum_common_Component__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var flarum_common_components_Button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! flarum/common/components/Button */ "flarum/common/components/Button"); -/* harmony import */ var flarum_common_components_Button__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(flarum_common_components_Button__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var flarum_common_components_Tooltip__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! flarum/common/components/Tooltip */ "flarum/common/components/Tooltip"); -/* harmony import */ var flarum_common_components_Tooltip__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(flarum_common_components_Tooltip__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var flarum_admin_components_LoadingModal__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! flarum/admin/components/LoadingModal */ "flarum/admin/components/LoadingModal"); -/* harmony import */ var flarum_admin_components_LoadingModal__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(flarum_admin_components_LoadingModal__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _utils_errorHandler__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/errorHandler */ "./src/admin/utils/errorHandler.ts"); -/* harmony import */ var flarum_common_components_Alert__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! flarum/common/components/Alert */ "flarum/common/components/Alert"); -/* harmony import */ var flarum_common_components_Alert__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(flarum_common_components_Alert__WEBPACK_IMPORTED_MODULE_7__); -/* harmony import */ var _WhyNotModal__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./WhyNotModal */ "./src/admin/components/WhyNotModal.tsx"); -/* harmony import */ var _ExtensionItem__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./ExtensionItem */ "./src/admin/components/ExtensionItem.tsx"); - - - - - - - - - - - -var MajorUpdater = /*#__PURE__*/function (_Component) { - Object(_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__["default"])(MajorUpdater, _Component); - - function MajorUpdater() { - var _this; - - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - _this = _Component.call.apply(_Component, [this].concat(args)) || this; - _this.isLoading = null; - _this.updateState = void 0; - return _this; - } - - var _proto = MajorUpdater.prototype; - - _proto.oninit = function oninit(vnode) { - _Component.prototype.oninit.call(this, vnode); - - this.updateState = this.attrs.updateState; - }; - - _proto.view = function view(vnode) { - // @todo move Form-group--danger class to core for reuse - return m("div", { - className: "Form-group Form-group--danger PackageManager-majorUpdate" - }, m("img", { - alt: "flarum logo", - src: flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default.a.forum.attribute('baseUrl') + '/assets/extensions/flarum-package-manager/flarum.svg' - }), m("label", null, flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default.a.translator.trans('flarum-package-manager.admin.major_updater.title', { - version: this.attrs.coreUpdate['latest-major'] - })), m("p", { - className: "helpText" - }, flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default.a.translator.trans('flarum-package-manager.admin.major_updater.description')), m("div", { - className: "PackageManager-updaterControls" - }, m(flarum_common_components_Tooltip__WEBPACK_IMPORTED_MODULE_4___default.a, { - text: flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default.a.translator.trans('flarum-package-manager.admin.major_updater.dry_run_help') - }, m(flarum_common_components_Button__WEBPACK_IMPORTED_MODULE_3___default.a, { - className: "Button", - icon: "fas fa-vial", - onclick: this.update.bind(this, true) - }, flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default.a.translator.trans('flarum-package-manager.admin.major_updater.dry_run'))), m(flarum_common_components_Button__WEBPACK_IMPORTED_MODULE_3___default.a, { - className: "Button Button--danger", - icon: "fas fa-play", - onclick: this.update.bind(this, false) - }, flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default.a.translator.trans('flarum-package-manager.admin.major_updater.update'))), this.updateState.incompatibleExtensions.length ? m("div", { - className: "PackageManager-majorUpdate-incompatibleExtensions PackageManager-extensions-grid" - }, this.updateState.incompatibleExtensions.map(function (extension) { - return m(_ExtensionItem__WEBPACK_IMPORTED_MODULE_9__["default"], { - extension: flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default.a.data.extensions[extension.replace('flarum-', '').replace('flarum-ext-', '').replace('/', '-')], - updates: {}, - onClickUpdate: null, - isDanger: true - }); - })) : null, this.updateState.status === 'failure' ? m(flarum_common_components_Alert__WEBPACK_IMPORTED_MODULE_7___default.a, { - type: "error", - className: "PackageManager-majorUpdate-failure", - dismissible: false, - controls: [m(flarum_common_components_Button__WEBPACK_IMPORTED_MODULE_3___default.a, { - className: "Button Button--text PackageManager-majorUpdate-failure-details", - icon: "fas fa-question-circle", - onclick: function onclick() { - return flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default.a.modal.show(_WhyNotModal__WEBPACK_IMPORTED_MODULE_8__["default"], { - "package": 'flarum/core' - }); - } - }, flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default.a.translator.trans('flarum-package-manager.admin.major_updater.failure.why'))] - }, m("p", { - className: "PackageManager-majorUpdate-failure-desc" - }, flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default.a.translator.trans('flarum-package-manager.admin.major_updater.failure.desc'))) : null); - }; - - _proto.update = function update(dryRun) { - var _this2 = this; - - this.isLoading = "update-" + (dryRun ? 'dry-run' : 'run'); - flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default.a.modal.show(flarum_admin_components_LoadingModal__WEBPACK_IMPORTED_MODULE_5___default.a); - flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default.a.request({ - method: 'POST', - url: flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default.a.forum.attribute('apiUrl') + "/package-manager/major-update", - body: { - data: { - dryRun: dryRun - } - }, - errorHandler: _utils_errorHandler__WEBPACK_IMPORTED_MODULE_6__["default"] - }).then(function () { - flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default.a.alerts.show({ - type: 'success' - }, flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default.a.translator.trans('flarum-package-manager.admin.update_successful')); - window.location.reload(); - })["catch"](function (e) { - var _e$response, _e$response$errors, _e$response$errors$po; - - flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default.a.modal.close(); - _this2.updateState.status = 'failure'; - _this2.updateState.incompatibleExtensions = (_e$response = e.response) == null ? void 0 : (_e$response$errors = _e$response.errors) == null ? void 0 : (_e$response$errors$po = _e$response$errors.pop()) == null ? void 0 : _e$response$errors$po.incompatible_extensions; - })["finally"](function () { - _this2.isLoading = null; - m.redraw(); - }); - }; - - return MajorUpdater; -}(flarum_common_Component__WEBPACK_IMPORTED_MODULE_2___default.a); - - - -/***/ }), - -/***/ "./src/admin/components/Updater.tsx": -/*!******************************************!*\ - !*** ./src/admin/components/Updater.tsx ***! - \******************************************/ -/*! 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 Updater; }); -/* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/inheritsLoose */ "./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js"); -/* harmony import */ var flarum_admin_app__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! flarum/admin/app */ "flarum/admin/app"); -/* harmony import */ var flarum_admin_app__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(flarum_admin_app__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var flarum_common_Component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! flarum/common/Component */ "flarum/common/Component"); -/* harmony import */ var flarum_common_Component__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(flarum_common_Component__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var flarum_common_components_Button__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! flarum/common/components/Button */ "flarum/common/components/Button"); -/* harmony import */ var flarum_common_components_Button__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(flarum_common_components_Button__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var flarum_common_helpers_humanTime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! flarum/common/helpers/humanTime */ "flarum/common/helpers/humanTime"); -/* harmony import */ var flarum_common_helpers_humanTime__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(flarum_common_helpers_humanTime__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var flarum_admin_components_LoadingModal__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! flarum/admin/components/LoadingModal */ "flarum/admin/components/LoadingModal"); -/* harmony import */ var flarum_admin_components_LoadingModal__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(flarum_admin_components_LoadingModal__WEBPACK_IMPORTED_MODULE_6__); -/* harmony import */ var _utils_errorHandler__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/errorHandler */ "./src/admin/utils/errorHandler.ts"); -/* harmony import */ var flarum_common_components_LoadingIndicator__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! flarum/common/components/LoadingIndicator */ "flarum/common/components/LoadingIndicator"); -/* harmony import */ var flarum_common_components_LoadingIndicator__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(flarum_common_components_LoadingIndicator__WEBPACK_IMPORTED_MODULE_8__); -/* harmony import */ var _MajorUpdater__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./MajorUpdater */ "./src/admin/components/MajorUpdater.tsx"); -/* harmony import */ var _ExtensionItem__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./ExtensionItem */ "./src/admin/components/ExtensionItem.tsx"); - - - - - - - - - - - - -var Updater = /*#__PURE__*/function (_Component) { - Object(_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__["default"])(Updater, _Component); - - function Updater() { - var _this; - - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - _this = _Component.call.apply(_Component, [this].concat(args)) || this; - _this.isLoading = null; - _this.packageUpdates = {}; - _this.lastUpdateCheck = JSON.parse(flarum_admin_app__WEBPACK_IMPORTED_MODULE_2___default.a.data.settings['flarum-package-manager.last_update_check']); - return _this; - } - - var _proto = Updater.prototype; - - _proto.oninit = function oninit(vnode) { - _Component.prototype.oninit.call(this, vnode); - }; - - _proto.view = function view() { - var _this$lastUpdateCheck, - _this2 = this; - - var extensions = this.getExtensionUpdates(); - var coreUpdate = this.getCoreUpdate(); - var core; - - if (coreUpdate) { - core = { - id: 'flarum-core', - name: 'flarum/core', - version: flarum_admin_app__WEBPACK_IMPORTED_MODULE_2___default.a.data.settings.version, - icon: { - backgroundImage: "url(" + flarum_admin_app__WEBPACK_IMPORTED_MODULE_2___default.a.forum.attribute('baseUrl') + "/assets/extensions/flarum-package-manager/flarum.svg" - }, - extra: { - 'flarum-extension': { - title: flarum_admin_app__WEBPACK_IMPORTED_MODULE_2___default.a.translator.trans('flarum-package-manager.admin.updater.flarum') - } - } - }; - } - - return [m("div", { - className: "Form-group" - }, m("label", null, flarum_admin_app__WEBPACK_IMPORTED_MODULE_2___default.a.translator.trans('flarum-package-manager.admin.updater.updater_title')), m("p", { - className: "helpText" - }, flarum_admin_app__WEBPACK_IMPORTED_MODULE_2___default.a.translator.trans('flarum-package-manager.admin.updater.updater_help')), ((_this$lastUpdateCheck = this.lastUpdateCheck) == null ? void 0 : _this$lastUpdateCheck.checkedAt) && m("p", { - className: "PackageManager-lastUpdatedAt" - }, m("span", { - className: "PackageManager-lastUpdatedAt-label" - }, flarum_admin_app__WEBPACK_IMPORTED_MODULE_2___default.a.translator.trans('flarum-package-manager.admin.updater.last_update_checked_at')), m("span", { - className: "PackageManager-lastUpdatedAt-value" - }, flarum_common_helpers_humanTime__WEBPACK_IMPORTED_MODULE_5___default()(this.lastUpdateCheck.checkedAt))), m("div", { - className: "PackageManager-updaterControls" - }, m(flarum_common_components_Button__WEBPACK_IMPORTED_MODULE_4___default.a, { - className: "Button", - icon: "fas fa-sync-alt", - onclick: this.checkForUpdates.bind(this), - loading: this.isLoading === 'check', - disabled: this.isLoading !== null && this.isLoading !== 'check' - }, flarum_admin_app__WEBPACK_IMPORTED_MODULE_2___default.a.translator.trans('flarum-package-manager.admin.updater.check_for_updates')), m(flarum_common_components_Button__WEBPACK_IMPORTED_MODULE_4___default.a, { - className: "Button", - icon: "fas fa-play", - onclick: this.updateGlobally.bind(this), - loading: this.isLoading === 'global-update', - disabled: this.isLoading !== null && this.isLoading !== 'global-update' - }, flarum_admin_app__WEBPACK_IMPORTED_MODULE_2___default.a.translator.trans('flarum-package-manager.admin.updater.run_global_update'))), this.isLoading !== null ? m("div", { - className: "PackageManager-extensions" - }, m(flarum_common_components_LoadingIndicator__WEBPACK_IMPORTED_MODULE_8___default.a, null)) : extensions.length || core ? m("div", { - className: "PackageManager-extensions" - }, m("div", { - className: "PackageManager-extensions-grid" - }, core ? m(_ExtensionItem__WEBPACK_IMPORTED_MODULE_10__["default"], { - extension: core, - updates: coreUpdate, - isCore: true, - onClickUpdate: this.updateCoreMinor.bind(this), - whyNotWarning: this.lastUpdateRun.limitedPackages().includes('flarum/core') - }) : null, extensions.map(function (extension) { - return m(_ExtensionItem__WEBPACK_IMPORTED_MODULE_10__["default"], { - extension: extension, - updates: _this2.packageUpdates[extension.id], - onClickUpdate: _this2.updateExtension.bind(_this2, extension), - whyNotWarning: _this2.lastUpdateRun.limitedPackages().includes(extension.name) - }); - }))) : null), coreUpdate && coreUpdate['latest-major'] ? m(_MajorUpdater__WEBPACK_IMPORTED_MODULE_9__["default"], { - coreUpdate: coreUpdate, - updateState: this.lastUpdateRun.major - }) : null]; - }; - - _proto.getExtensionUpdates = function getExtensionUpdates() { - var _this$lastUpdateCheck2, - _this$lastUpdateCheck3, - _this$lastUpdateCheck4, - _this3 = this; - - (_this$lastUpdateCheck2 = this.lastUpdateCheck) == null ? void 0 : (_this$lastUpdateCheck3 = _this$lastUpdateCheck2.updates) == null ? void 0 : (_this$lastUpdateCheck4 = _this$lastUpdateCheck3.installed) == null ? void 0 : _this$lastUpdateCheck4.filter(function (composerPackage) { - var id = composerPackage.name.replace('/', '-').replace(/(flarum-ext-)|(flarum-)/, ''); - var extension = flarum_admin_app__WEBPACK_IMPORTED_MODULE_2___default.a.data.extensions[id]; - var safeToUpdate = ['semver-safe-update', 'update-possible'].includes(composerPackage['latest-status']); - - if (extension && safeToUpdate) { - _this3.packageUpdates[extension.id] = composerPackage; - } - - return extension && safeToUpdate; - }); - return Object.values(flarum_admin_app__WEBPACK_IMPORTED_MODULE_2___default.a.data.extensions).filter(function (extension) { - return _this3.packageUpdates[extension.id]; - }); - }; - - _proto.getCoreUpdate = function getCoreUpdate() { - var _this$lastUpdateCheck5, _this$lastUpdateCheck6, _this$lastUpdateCheck7; - - return (_this$lastUpdateCheck5 = this.lastUpdateCheck) == null ? void 0 : (_this$lastUpdateCheck6 = _this$lastUpdateCheck5.updates) == null ? void 0 : (_this$lastUpdateCheck7 = _this$lastUpdateCheck6.installed) == null ? void 0 : _this$lastUpdateCheck7.filter(function (composerPackage) { - return composerPackage.name === 'flarum/core'; - }).pop(); - }; - - _proto.checkForUpdates = function checkForUpdates() { - var _this4 = this; - - this.isLoading = 'check'; - flarum_admin_app__WEBPACK_IMPORTED_MODULE_2___default.a.request({ - method: 'POST', - url: flarum_admin_app__WEBPACK_IMPORTED_MODULE_2___default.a.forum.attribute('apiUrl') + "/package-manager/check-for-updates", - errorHandler: _utils_errorHandler__WEBPACK_IMPORTED_MODULE_7__["default"] - }).then(function (response) { - _this4.lastUpdateCheck = response; - })["finally"](function () { - _this4.isLoading = null; - m.redraw(); - }); - }; - - _proto.updateCoreMinor = function updateCoreMinor() { - var _this5 = this; - - if (confirm(flarum_admin_app__WEBPACK_IMPORTED_MODULE_2___default.a.translator.trans('flarum-package-manager.admin.minor_update_confirmation.content'))) { - flarum_admin_app__WEBPACK_IMPORTED_MODULE_2___default.a.modal.show(flarum_admin_components_LoadingModal__WEBPACK_IMPORTED_MODULE_6___default.a); - this.isLoading = 'minor-update'; - flarum_admin_app__WEBPACK_IMPORTED_MODULE_2___default.a.request({ - method: 'POST', - url: flarum_admin_app__WEBPACK_IMPORTED_MODULE_2___default.a.forum.attribute('apiUrl') + "/package-manager/minor-update", - errorHandler: _utils_errorHandler__WEBPACK_IMPORTED_MODULE_7__["default"] - }).then(function () { - flarum_admin_app__WEBPACK_IMPORTED_MODULE_2___default.a.alerts.show({ - type: 'success' - }, flarum_admin_app__WEBPACK_IMPORTED_MODULE_2___default.a.translator.trans('flarum-package-manager.admin.update_successful')); - window.location.reload(); - })["finally"](function () { - _this5.isLoading = null; - m.redraw(); - }); - } - }; - - _proto.updateExtension = function updateExtension(extension) { - var _this6 = this; - - flarum_admin_app__WEBPACK_IMPORTED_MODULE_2___default.a.modal.show(flarum_admin_components_LoadingModal__WEBPACK_IMPORTED_MODULE_6___default.a); - this.isLoading = 'extension-update'; - flarum_admin_app__WEBPACK_IMPORTED_MODULE_2___default.a.request({ - method: 'PATCH', - url: flarum_admin_app__WEBPACK_IMPORTED_MODULE_2___default.a.forum.attribute('apiUrl') + "/package-manager/extensions/" + extension.id, - errorHandler: _utils_errorHandler__WEBPACK_IMPORTED_MODULE_7__["default"] - }).then(function () { - flarum_admin_app__WEBPACK_IMPORTED_MODULE_2___default.a.alerts.show({ - type: 'success' - }, flarum_admin_app__WEBPACK_IMPORTED_MODULE_2___default.a.translator.trans('flarum-package-manager.admin.extensions.successful_update', { - extension: extension.extra['flarum-extension'].title - })); - window.location.reload(); - })["finally"](function () { - _this6.isLoading = null; - m.redraw(); - }); - }; - - _proto.updateGlobally = function updateGlobally() { - var _this7 = this; - - flarum_admin_app__WEBPACK_IMPORTED_MODULE_2___default.a.modal.show(flarum_admin_components_LoadingModal__WEBPACK_IMPORTED_MODULE_6___default.a); - this.isLoading = 'global-update'; - flarum_admin_app__WEBPACK_IMPORTED_MODULE_2___default.a.request({ - method: 'POST', - url: flarum_admin_app__WEBPACK_IMPORTED_MODULE_2___default.a.forum.attribute('apiUrl') + "/package-manager/global-update", - errorHandler: _utils_errorHandler__WEBPACK_IMPORTED_MODULE_7__["default"] - }).then(function () { - flarum_admin_app__WEBPACK_IMPORTED_MODULE_2___default.a.alerts.show({ - type: 'success' - }, flarum_admin_app__WEBPACK_IMPORTED_MODULE_2___default.a.translator.trans('flarum-package-manager.admin.updater.global_update_successful')); - window.location.reload(); - })["finally"](function () { - _this7.isLoading = null; - m.redraw(); - }); - }; - - Object(_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_0__["default"])(Updater, [{ - key: "lastUpdateRun", - get: function get() { - var lastUpdateRun = JSON.parse(flarum_admin_app__WEBPACK_IMPORTED_MODULE_2___default.a.data.settings['flarum-package-manager.last_update_run']); - - lastUpdateRun.limitedPackages = function () { - return [].concat(lastUpdateRun.major.limitedPackages, lastUpdateRun.minor.limitedPackages, lastUpdateRun.global.limitedPackages); - }; - - return lastUpdateRun; - } - }]); - - return Updater; -}(flarum_common_Component__WEBPACK_IMPORTED_MODULE_3___default.a); - - - -/***/ }), - -/***/ "./src/admin/components/WhyNotModal.tsx": -/*!**********************************************!*\ - !*** ./src/admin/components/WhyNotModal.tsx ***! - \**********************************************/ -/*! 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 WhyNotModal; }); -/* harmony import */ var _babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/inheritsLoose */ "./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js"); -/* harmony import */ var flarum_admin_app__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! flarum/admin/app */ "flarum/admin/app"); -/* harmony import */ var flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(flarum_admin_app__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var flarum_common_components_Modal__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! flarum/common/components/Modal */ "flarum/common/components/Modal"); -/* harmony import */ var flarum_common_components_Modal__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(flarum_common_components_Modal__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var flarum_common_components_LoadingIndicator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! flarum/common/components/LoadingIndicator */ "flarum/common/components/LoadingIndicator"); -/* harmony import */ var flarum_common_components_LoadingIndicator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(flarum_common_components_LoadingIndicator__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _utils_errorHandler__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/errorHandler */ "./src/admin/utils/errorHandler.ts"); - - - - - - -var WhyNotModal = /*#__PURE__*/function (_Modal) { - Object(_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__["default"])(WhyNotModal, _Modal); - - function WhyNotModal() { - var _this; - - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - _this = _Modal.call.apply(_Modal, [this].concat(args)) || this; - _this.loading = true; - _this.whyNot = null; - return _this; - } - - var _proto = WhyNotModal.prototype; - - _proto.className = function className() { - return 'Modal--large WhyNotModal'; - }; - - _proto.title = function title() { - return flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default.a.translator.trans('flarum-package-manager.admin.why_not_modal.title'); - }; - - _proto.oncreate = function oncreate(vnode) { - _Modal.prototype.oncreate.call(this, vnode); - - this.requestWhyNot(); - }; - - _proto.content = function content() { - return m("div", { - className: "Modal-body" - }, this.loading ? m(flarum_common_components_LoadingIndicator__WEBPACK_IMPORTED_MODULE_3___default.a, null) : m("pre", { - className: "WhyNotModal-contents" - }, this.whyNot)); - }; - - _proto.requestWhyNot = function requestWhyNot() { - var _this2 = this; - - flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default.a.request({ - method: 'POST', - url: flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default.a.forum.attribute('apiUrl') + "/package-manager/why-not", - body: { - data: { - "package": this.attrs["package"] - } - }, - errorHandler: _utils_errorHandler__WEBPACK_IMPORTED_MODULE_4__["default"] - }).then(function (response) { - _this2.loading = false; - _this2.whyNot = response.data.whyNot; - m.redraw(); - }); - }; - - return WhyNotModal; -}(flarum_common_components_Modal__WEBPACK_IMPORTED_MODULE_2___default.a); - - - -/***/ }), - -/***/ "./src/admin/index.tsx": -/*!*****************************!*\ - !*** ./src/admin/index.tsx ***! - \*****************************/ -/*! 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_app__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! flarum/admin/app */ "flarum/admin/app"); -/* harmony import */ var flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(flarum_admin_app__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var flarum_common_components_Alert__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! flarum/common/components/Alert */ "flarum/common/components/Alert"); -/* harmony import */ var flarum_common_components_Alert__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(flarum_common_components_Alert__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var flarum_admin_components_ExtensionPage__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! flarum/admin/components/ExtensionPage */ "flarum/admin/components/ExtensionPage"); -/* harmony import */ var flarum_admin_components_ExtensionPage__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(flarum_admin_components_ExtensionPage__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var flarum_common_components_Button__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! flarum/common/components/Button */ "flarum/common/components/Button"); -/* harmony import */ var flarum_common_components_Button__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(flarum_common_components_Button__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var flarum_admin_components_LoadingModal__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! flarum/admin/components/LoadingModal */ "flarum/admin/components/LoadingModal"); -/* harmony import */ var flarum_admin_components_LoadingModal__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(flarum_admin_components_LoadingModal__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _components_Installer__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./components/Installer */ "./src/admin/components/Installer.tsx"); -/* harmony import */ var _components_Updater__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./components/Updater */ "./src/admin/components/Updater.tsx"); -/* harmony import */ var flarum_admin_utils_isExtensionEnabled__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! flarum/admin/utils/isExtensionEnabled */ "flarum/admin/utils/isExtensionEnabled"); -/* harmony import */ var flarum_admin_utils_isExtensionEnabled__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(flarum_admin_utils_isExtensionEnabled__WEBPACK_IMPORTED_MODULE_8__); - - - - - - - - - -flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default.a.initializers.add('flarum-package-manager', function (app) { - app.extensionData["for"]('flarum-package-manager').registerSetting(function () { - if (!app.data.isRequiredDirectoriesWritable) { - return m("div", { - className: "Form-group" - }, m(flarum_common_components_Alert__WEBPACK_IMPORTED_MODULE_2___default.a, { - type: "warning", - dismissible: false - }, app.translator.trans('flarum-package-manager.admin.file_permissions'))); - } - - return null; - }).registerSetting(function () { - if (app.data.isRequiredDirectoriesWritable) { - return m(_components_Installer__WEBPACK_IMPORTED_MODULE_6__["default"], null); - } - - return null; - }).registerSetting(function () { - if (app.data.isRequiredDirectoriesWritable) { - return m(_components_Updater__WEBPACK_IMPORTED_MODULE_7__["default"], null); - } - - return null; - }); - Object(flarum_common_extend__WEBPACK_IMPORTED_MODULE_0__["extend"])(flarum_admin_components_ExtensionPage__WEBPACK_IMPORTED_MODULE_3___default.a.prototype, 'topItems', function (items) { - var _this = this; - - if (this.extension.id === 'flarum-package-manager' || flarum_admin_utils_isExtensionEnabled__WEBPACK_IMPORTED_MODULE_8___default()(this.extension.id)) { - return; - } - - items.add('remove', m(flarum_common_components_Button__WEBPACK_IMPORTED_MODULE_4___default.a, { - className: "Button Button--danger", - icon: "fas fa-times", - onclick: function onclick() { - app.modal.show(flarum_admin_components_LoadingModal__WEBPACK_IMPORTED_MODULE_5___default.a); - app.request({ - url: app.forum.attribute('apiUrl') + "/package-manager/extensions/" + _this.extension.id, - method: 'DELETE' - }).then(function () { - app.alerts.show({ - type: 'success' - }, app.translator.trans('flarum-package-manager.admin.extensions.successful_remove')); - window.location = app.forum.attribute('adminUrl'); - })["finally"](function () { - app.modal.close(); - }); - } - }, "Remove")); - }); -}); - -/***/ }), - -/***/ "./src/admin/utils/errorHandler.ts": -/*!*****************************************!*\ - !*** ./src/admin/utils/errorHandler.ts ***! - \*****************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var flarum_admin_app__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! flarum/admin/app */ "flarum/admin/app"); -/* harmony import */ var flarum_admin_app__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(flarum_admin_app__WEBPACK_IMPORTED_MODULE_0__); - -/* harmony default export */ __webpack_exports__["default"] = (function (e) { - var error = e.response.errors[0]; - - if (!['composer_command_failure', 'extension_already_installed', 'extension_not_installed'].includes(error.code)) { - throw e; - } - - switch (error.code) { - case 'composer_command_failure': - if (error.guessed_cause) { - flarum_admin_app__WEBPACK_IMPORTED_MODULE_0___default.a.alerts.show({ - type: 'error' - }, flarum_admin_app__WEBPACK_IMPORTED_MODULE_0___default.a.translator.trans("flarum-package-manager.admin.exceptions.guessed_cause." + error.guessed_cause)); - flarum_admin_app__WEBPACK_IMPORTED_MODULE_0___default.a.modal.close(); - } else { - flarum_admin_app__WEBPACK_IMPORTED_MODULE_0___default.a.alerts.show({ - type: 'error' - }, flarum_admin_app__WEBPACK_IMPORTED_MODULE_0___default.a.translator.trans('flarum-package-manager.admin.exceptions.composer_command_failure')); - } - - break; - - case 'extension_already_installed': - flarum_admin_app__WEBPACK_IMPORTED_MODULE_0___default.a.alerts.show({ - type: 'error' - }, flarum_admin_app__WEBPACK_IMPORTED_MODULE_0___default.a.translator.trans('flarum-package-manager.admin.exceptions.extension_already_installed')); - flarum_admin_app__WEBPACK_IMPORTED_MODULE_0___default.a.modal.close(); - break; - - case 'extension_not_installed': - flarum_admin_app__WEBPACK_IMPORTED_MODULE_0___default.a.alerts.show({ - type: 'error' - }, flarum_admin_app__WEBPACK_IMPORTED_MODULE_0___default.a.translator.trans('flarum-package-manager.admin.exceptions.extension_not_installed')); - flarum_admin_app__WEBPACK_IMPORTED_MODULE_0___default.a.modal.close(); - } -}); - -/***/ }), - -/***/ "flarum/admin/app": -/*!**************************************************!*\ - !*** external "flarum.core.compat['admin/app']" ***! - \**************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = flarum.core.compat['admin/app']; - -/***/ }), - -/***/ "flarum/admin/components/ExtensionPage": -/*!***********************************************************************!*\ - !*** external "flarum.core.compat['admin/components/ExtensionPage']" ***! - \***********************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = flarum.core.compat['admin/components/ExtensionPage']; - -/***/ }), - -/***/ "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/isExtensionEnabled": -/*!***********************************************************************!*\ - !*** external "flarum.core.compat['admin/utils/isExtensionEnabled']" ***! - \***********************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = flarum.core.compat['admin/utils/isExtensionEnabled']; - -/***/ }), - -/***/ "flarum/common/Component": -/*!*********************************************************!*\ - !*** external "flarum.core.compat['common/Component']" ***! - \*********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = flarum.core.compat['common/Component']; - -/***/ }), - -/***/ "flarum/common/components/Alert": -/*!****************************************************************!*\ - !*** external "flarum.core.compat['common/components/Alert']" ***! - \****************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = flarum.core.compat['common/components/Alert']; - -/***/ }), - -/***/ "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/LoadingIndicator": -/*!***************************************************************************!*\ - !*** external "flarum.core.compat['common/components/LoadingIndicator']" ***! - \***************************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = flarum.core.compat['common/components/LoadingIndicator']; - -/***/ }), - -/***/ "flarum/common/components/Modal": -/*!****************************************************************!*\ - !*** external "flarum.core.compat['common/components/Modal']" ***! - \****************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = flarum.core.compat['common/components/Modal']; - -/***/ }), - -/***/ "flarum/common/components/Tooltip": -/*!******************************************************************!*\ - !*** external "flarum.core.compat['common/components/Tooltip']" ***! - \******************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = flarum.core.compat['common/components/Tooltip']; - -/***/ }), - -/***/ "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/humanTime": -/*!*****************************************************************!*\ - !*** external "flarum.core.compat['common/helpers/humanTime']" ***! - \*****************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = flarum.core.compat['common/helpers/humanTime']; - -/***/ }), - -/***/ "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/Stream": -/*!************************************************************!*\ - !*** external "flarum.core.compat['common/utils/Stream']" ***! - \************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = flarum.core.compat['common/utils/Stream']; - -/***/ }), - -/***/ "flarum/common/utils/classList": -/*!***************************************************************!*\ - !*** external "flarum.core.compat['common/utils/classList']" ***! - \***************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = flarum.core.compat['common/utils/classList']; - -/***/ }) - -/******/ }); +(()=>{var a={n:e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},d:(e,t)=>{for(var n in t)a.o(t,n)&&!a.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o:(a,e)=>Object.prototype.hasOwnProperty.call(a,e),r:a=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(a,"__esModule",{value:!0})}},e={};(()=>{"use strict";a.r(e);const t=flarum.core.compat["common/extend"],n=flarum.core.compat["admin/app"];var r=a.n(n);const o=flarum.core.compat["common/components/Alert"];var s=a.n(o);const i=flarum.core.compat["admin/components/ExtensionPage"];var l=a.n(i);const c=flarum.core.compat["common/components/Button"];var u=a.n(c);const d=flarum.core.compat["admin/components/LoadingModal"];var p=a.n(d);function g(a,e){return g=Object.setPrototypeOf||function(a,e){return a.__proto__=e,a},g(a,e)}function f(a,e){a.prototype=Object.create(e.prototype),a.prototype.constructor=a,g(a,e)}const h=flarum.core.compat["common/Component"];var k=a.n(h);const v=flarum.core.compat["common/utils/Stream"];var x=a.n(v);function y(a){var e=a.response.errors[0];if(!["composer_command_failure","extension_already_installed","extension_not_installed"].includes(e.code))throw a;switch(e.code){case"composer_command_failure":e.guessed_cause?(r().alerts.show({type:"error"},r().translator.trans("flarum-package-manager.admin.exceptions.guessed_cause."+e.guessed_cause)),r().modal.close()):r().alerts.show({type:"error"},r().translator.trans("flarum-package-manager.admin.exceptions.composer_command_failure"));break;case"extension_already_installed":r().alerts.show({type:"error"},r().translator.trans("flarum-package-manager.admin.exceptions.extension_already_installed")),r().modal.close();break;case"extension_not_installed":r().alerts.show({type:"error"},r().translator.trans("flarum-package-manager.admin.exceptions.extension_not_installed")),r().modal.close()}}var b=function(a){function e(){for(var e,t=arguments.length,n=new Array(t),r=0;r extends Component {\n view(vnode: Mithril.Vnode): Mithril.Children {\n const { extension, updates, onClickUpdate, whyNotWarning, isCore, isDanger } = this.attrs;\n\n return (\n \n
\n {extension.icon ? icon(extension.icon.name) : ''}\n
\n
\n
{extension.extra['flarum-extension'].title}
\n
\n {this.version(extension.version)}\n {updates['latest-minor'] ? (\n \n {this.version(updates['latest-minor']!)}\n \n ) : null}\n {updates['latest-major'] && !isCore ? (\n \n {this.version(updates['latest-major']!)}\n \n ) : null}\n
\n
\n
\n {onClickUpdate ? (\n \n \n \n ) : null}\n {whyNotWarning ? (\n \n app.modal.show(WhyNotModal, { package: extension.name })}\n aria-label={app.translator.trans('flarum-package-manager.admin.extensions.check_why_it_failed_updating')}\n />\n \n ) : null}\n
\n \n );\n }\n\n private version(v: string): string {\n return 'v' + v.replace('v', '');\n }\n}\n","import type Mithril from 'mithril';\nimport app from 'flarum/admin/app';\nimport Component from 'flarum/common/Component';\nimport Button from 'flarum/common/components/Button';\nimport Stream from 'flarum/common/utils/Stream';\nimport LoadingModal from 'flarum/admin/components/LoadingModal';\nimport errorHandler from '../utils/errorHandler';\n\nexport default class Installer extends Component {\n packageName!: Stream;\n isLoading: boolean = false;\n\n oninit(vnode: Mithril.Vnode): void {\n super.oninit(vnode);\n\n this.packageName = Stream('');\n }\n\n view(): Mithril.Children {\n return (\n
\n \n

\n {app.translator.trans('flarum-package-manager.admin.extensions.install_help', {\n extiverse: extiverse.com,\n })}\n

\n
\n \n \n
\n
\n );\n }\n\n data(): any {\n return {\n package: this.packageName(),\n };\n }\n\n onsubmit(): void {\n this.isLoading = true;\n app.modal.show(LoadingModal);\n\n app\n .request({\n method: 'POST',\n url: `${app.forum.attribute('apiUrl')}/package-manager/extensions`,\n body: {\n data: this.data(),\n },\n errorHandler,\n })\n .then((response) => {\n const extensionId = response.id;\n app.alerts.show(\n { type: 'success' },\n app.translator.trans('flarum-package-manager.admin.extensions.successful_install', { extension: extensionId })\n );\n window.location.href = `${app.forum.attribute('adminUrl')}#/extension/${extensionId}`;\n window.location.reload();\n })\n .finally(() => {\n this.isLoading = false;\n m.redraw();\n });\n }\n}\n","import app from 'flarum/admin/app';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport Mithril from 'mithril';\nimport Button from 'flarum/common/components/Button';\nimport Tooltip from 'flarum/common/components/Tooltip';\nimport { UpdatedPackage, UpdateState } from './Updater';\nimport LoadingModal from 'flarum/admin/components/LoadingModal';\nimport errorHandler from '../utils/errorHandler';\nimport Alert from 'flarum/common/components/Alert';\nimport WhyNotModal from './WhyNotModal';\nimport RequestError from 'flarum/common/utils/RequestError';\nimport ExtensionItem, { Extension } from './ExtensionItem';\n\ninterface MajorUpdaterAttrs extends ComponentAttrs {\n coreUpdate: UpdatedPackage;\n updateState: UpdateState;\n}\n\nexport default class MajorUpdater extends Component {\n isLoading: string | null = null;\n updateState!: UpdateState;\n\n oninit(vnode: Mithril.Vnode) {\n super.oninit(vnode);\n\n this.updateState = this.attrs.updateState;\n }\n\n view(vnode: Mithril.Vnode): Mithril.Children {\n // @todo move Form-group--danger class to core for reuse\n return (\n
\n \"flarum\n \n

{app.translator.trans('flarum-package-manager.admin.major_updater.description')}

\n
\n \n \n \n \n
\n {this.updateState.incompatibleExtensions.length ? (\n
\n {this.updateState.incompatibleExtensions.map((extension: string) => (\n \n ))}\n
\n ) : null}\n {this.updateState.status === 'failure' ? (\n app.modal.show(WhyNotModal, { package: 'flarum/core' })}\n >\n {app.translator.trans('flarum-package-manager.admin.major_updater.failure.why')}\n ,\n ]}\n >\n

\n {app.translator.trans('flarum-package-manager.admin.major_updater.failure.desc')}\n

\n \n ) : null}\n
\n );\n }\n\n update(dryRun: boolean) {\n this.isLoading = `update-${dryRun ? 'dry-run' : 'run'}`;\n app.modal.show(LoadingModal);\n\n app\n .request({\n method: 'POST',\n url: `${app.forum.attribute('apiUrl')}/package-manager/major-update`,\n body: {\n data: { dryRun },\n },\n errorHandler,\n })\n .then(() => {\n app.alerts.show({ type: 'success' }, app.translator.trans('flarum-package-manager.admin.update_successful'));\n window.location.reload();\n })\n .catch((e: RequestError) => {\n app.modal.close();\n this.updateState.status = 'failure';\n this.updateState.incompatibleExtensions = e.response?.errors?.pop()?.incompatible_extensions as string[];\n })\n .finally(() => {\n this.isLoading = null;\n m.redraw();\n });\n }\n}\n","import Mithril from 'mithril';\nimport app from 'flarum/admin/app';\nimport Component from 'flarum/common/Component';\nimport Button from 'flarum/common/components/Button';\nimport humanTime from 'flarum/common/helpers/humanTime';\nimport LoadingModal from 'flarum/admin/components/LoadingModal';\nimport errorHandler from '../utils/errorHandler';\nimport LoadingIndicator from 'flarum/common/components/LoadingIndicator';\nimport MajorUpdater from './MajorUpdater';\nimport ExtensionItem, { Extension } from './ExtensionItem';\n\nexport type UpdatedPackage = {\n name: string;\n version: string;\n latest: string;\n 'latest-minor': string | null;\n 'latest-major': string | null;\n 'latest-status': string;\n description: string;\n};\n\nexport type ComposerUpdates = {\n installed: UpdatedPackage[];\n};\n\nexport type LastUpdateCheck = {\n checkedAt: Date | null;\n updates: ComposerUpdates;\n};\n\ntype UpdateType = 'major' | 'minor' | 'global';\ntype UpdateStatus = 'success' | 'failure' | null;\nexport type UpdateState = {\n ranAt: Date | null;\n status: UpdateStatus;\n limitedPackages: string[];\n incompatibleExtensions: string[];\n};\n\nexport type LastUpdateRun = {\n [key in UpdateType]: UpdateState;\n} & {\n limitedPackages: () => string[];\n};\n\nexport default class Updater extends Component {\n isLoading: string | null = null;\n packageUpdates: Record = {};\n lastUpdateCheck: LastUpdateCheck = JSON.parse(app.data.settings['flarum-package-manager.last_update_check']) as LastUpdateCheck;\n get lastUpdateRun(): LastUpdateRun {\n const lastUpdateRun = JSON.parse(app.data.settings['flarum-package-manager.last_update_run']) as LastUpdateRun;\n\n lastUpdateRun.limitedPackages = () => [\n ...lastUpdateRun.major.limitedPackages,\n ...lastUpdateRun.minor.limitedPackages,\n ...lastUpdateRun.global.limitedPackages,\n ];\n\n return lastUpdateRun;\n }\n\n oninit(vnode: Mithril.Vnode) {\n super.oninit(vnode);\n }\n\n view() {\n const extensions = this.getExtensionUpdates();\n let coreUpdate: UpdatedPackage | undefined = this.getCoreUpdate();\n let core: any;\n\n if (coreUpdate) {\n core = {\n id: 'flarum-core',\n name: 'flarum/core',\n version: app.data.settings.version,\n icon: {\n backgroundImage: `url(${app.forum.attribute('baseUrl')}/assets/extensions/flarum-package-manager/flarum.svg`,\n },\n extra: {\n 'flarum-extension': {\n title: app.translator.trans('flarum-package-manager.admin.updater.flarum'),\n },\n },\n };\n }\n\n return [\n
\n \n

{app.translator.trans('flarum-package-manager.admin.updater.updater_help')}

\n {this.lastUpdateCheck?.checkedAt && (\n

\n \n {app.translator.trans('flarum-package-manager.admin.updater.last_update_checked_at')}\n \n {humanTime(this.lastUpdateCheck.checkedAt)}\n

\n )}\n
\n \n {app.translator.trans('flarum-package-manager.admin.updater.check_for_updates')}\n \n \n {app.translator.trans('flarum-package-manager.admin.updater.run_global_update')}\n \n
\n {this.isLoading !== null ? (\n
\n \n
\n ) : extensions.length || core ? (\n
\n
\n {core ? (\n \n ) : null}\n {extensions.map((extension: Extension) => (\n \n ))}\n
\n
\n ) : null}\n
,\n coreUpdate && coreUpdate['latest-major'] ? : null,\n ];\n }\n\n getExtensionUpdates(): Extension[] {\n this.lastUpdateCheck?.updates?.installed?.filter((composerPackage: UpdatedPackage) => {\n const id = composerPackage.name.replace('/', '-').replace(/(flarum-ext-)|(flarum-)/, '');\n\n const extension = app.data.extensions[id];\n const safeToUpdate = ['semver-safe-update', 'update-possible'].includes(composerPackage['latest-status']);\n\n if (extension && safeToUpdate) {\n this.packageUpdates[extension.id] = composerPackage;\n }\n\n return extension && safeToUpdate;\n });\n\n return (Object.values(app.data.extensions) as Extension[]).filter((extension: Extension) => this.packageUpdates[extension.id]);\n }\n\n getCoreUpdate(): UpdatedPackage | undefined {\n return this.lastUpdateCheck?.updates?.installed?.filter((composerPackage: UpdatedPackage) => composerPackage.name === 'flarum/core').pop();\n }\n\n checkForUpdates() {\n this.isLoading = 'check';\n\n app\n .request({\n method: 'POST',\n url: `${app.forum.attribute('apiUrl')}/package-manager/check-for-updates`,\n errorHandler,\n })\n .then((response) => {\n this.lastUpdateCheck = response as LastUpdateCheck;\n })\n .finally(() => {\n this.isLoading = null;\n m.redraw();\n });\n }\n\n updateCoreMinor() {\n if (confirm(app.translator.trans('flarum-package-manager.admin.minor_update_confirmation.content'))) {\n app.modal.show(LoadingModal);\n this.isLoading = 'minor-update';\n\n app\n .request({\n method: 'POST',\n url: `${app.forum.attribute('apiUrl')}/package-manager/minor-update`,\n errorHandler,\n })\n .then(() => {\n app.alerts.show({ type: 'success' }, app.translator.trans('flarum-package-manager.admin.update_successful'));\n window.location.reload();\n })\n .finally(() => {\n this.isLoading = null;\n m.redraw();\n });\n }\n }\n\n updateExtension(extension: any) {\n app.modal.show(LoadingModal);\n this.isLoading = 'extension-update';\n\n app\n .request({\n method: 'PATCH',\n url: `${app.forum.attribute('apiUrl')}/package-manager/extensions/${extension.id}`,\n errorHandler,\n })\n .then(() => {\n app.alerts.show(\n { type: 'success' },\n app.translator.trans('flarum-package-manager.admin.extensions.successful_update', { extension: extension.extra['flarum-extension'].title })\n );\n window.location.reload();\n })\n .finally(() => {\n this.isLoading = null;\n m.redraw();\n });\n }\n\n updateGlobally() {\n app.modal.show(LoadingModal);\n this.isLoading = 'global-update';\n\n app\n .request({\n method: 'POST',\n url: `${app.forum.attribute('apiUrl')}/package-manager/global-update`,\n errorHandler,\n })\n .then(() => {\n app.alerts.show({ type: 'success' }, app.translator.trans('flarum-package-manager.admin.updater.global_update_successful'));\n window.location.reload();\n })\n .finally(() => {\n this.isLoading = null;\n m.redraw();\n });\n }\n}\n","import app from 'flarum/admin/app';\nimport Mithril from 'mithril';\nimport Modal, { IInternalModalAttrs } from 'flarum/common/components/Modal';\nimport LoadingIndicator from 'flarum/common/components/LoadingIndicator';\nimport errorHandler from '../utils/errorHandler';\n\nexport interface WhyNotModalAttrs extends IInternalModalAttrs {\n package: string;\n}\n\nexport default class WhyNotModal extends Modal {\n loading: boolean = true;\n whyNot: string | null = null;\n\n className() {\n return 'Modal--large WhyNotModal';\n }\n\n title() {\n return app.translator.trans('flarum-package-manager.admin.why_not_modal.title');\n }\n\n oncreate(vnode: Mithril.VnodeDOM) {\n super.oncreate(vnode);\n\n this.requestWhyNot();\n }\n\n content() {\n return
{this.loading ? :
{this.whyNot}
}
;\n }\n\n requestWhyNot(): void {\n app\n .request({\n method: 'POST',\n url: `${app.forum.attribute('apiUrl')}/package-manager/why-not`,\n body: {\n data: {\n package: this.attrs.package,\n },\n },\n errorHandler,\n })\n .then((response: any) => {\n this.loading = false;\n this.whyNot = response.data.whyNot;\n m.redraw();\n });\n }\n}\n","import { extend } from 'flarum/common/extend';\nimport app from 'flarum/admin/app';\nimport Alert from 'flarum/common/components/Alert';\nimport ExtensionPage from 'flarum/admin/components/ExtensionPage';\nimport Button from 'flarum/common/components/Button';\nimport LoadingModal from 'flarum/admin/components/LoadingModal';\nimport Installer from './components/Installer';\nimport Updater from './components/Updater';\nimport isExtensionEnabled from 'flarum/admin/utils/isExtensionEnabled';\n\napp.initializers.add('flarum-package-manager', (app) => {\n app.extensionData\n .for('flarum-package-manager')\n .registerSetting(() => {\n if (!app.data.isRequiredDirectoriesWritable) {\n return (\n
\n \n {app.translator.trans('flarum-package-manager.admin.file_permissions')}\n \n
\n );\n }\n\n return null;\n })\n .registerSetting(() => {\n if (app.data.isRequiredDirectoriesWritable) {\n return ;\n }\n\n return null;\n })\n .registerSetting(() => {\n if (app.data.isRequiredDirectoriesWritable) {\n return ;\n }\n\n return null;\n });\n\n extend(ExtensionPage.prototype, 'topItems', function (items) {\n if (this.extension.id === 'flarum-package-manager' || isExtensionEnabled(this.extension.id)) {\n return;\n }\n\n items.add(\n 'remove',\n {\n app.modal.show(LoadingModal);\n\n app\n .request({\n url: `${app.forum.attribute('apiUrl')}/package-manager/extensions/${this.extension.id}`,\n method: 'DELETE',\n })\n .then(() => {\n app.alerts.show({ type: 'success' }, app.translator.trans('flarum-package-manager.admin.extensions.successful_remove'));\n window.location = app.forum.attribute('adminUrl');\n })\n .finally(() => {\n app.modal.close();\n });\n }}\n >\n Remove\n \n );\n });\n});\n","import app from 'flarum/admin/app';\n\nexport default function (e: any) {\n const error = e.response.errors[0];\n\n if (!['composer_command_failure', 'extension_already_installed', 'extension_not_installed'].includes(error.code)) {\n throw e;\n }\n\n switch (error.code) {\n case 'composer_command_failure':\n if (error.guessed_cause) {\n app.alerts.show({ type: 'error' }, app.translator.trans(`flarum-package-manager.admin.exceptions.guessed_cause.${error.guessed_cause}`));\n app.modal.close();\n } else {\n app.alerts.show({ type: 'error' }, app.translator.trans('flarum-package-manager.admin.exceptions.composer_command_failure'));\n }\n break;\n\n case 'extension_already_installed':\n app.alerts.show({ type: 'error' }, app.translator.trans('flarum-package-manager.admin.exceptions.extension_already_installed'));\n app.modal.close();\n break;\n\n case 'extension_not_installed':\n app.alerts.show({ type: 'error' }, app.translator.trans('flarum-package-manager.admin.exceptions.extension_not_installed'));\n app.modal.close();\n }\n}\n","module.exports = flarum.core.compat['admin/app'];","module.exports = flarum.core.compat['admin/components/ExtensionPage'];","module.exports = flarum.core.compat['admin/components/LoadingModal'];","module.exports = flarum.core.compat['admin/utils/isExtensionEnabled'];","module.exports = flarum.core.compat['common/Component'];","module.exports = flarum.core.compat['common/components/Alert'];","module.exports = flarum.core.compat['common/components/Button'];","module.exports = flarum.core.compat['common/components/LoadingIndicator'];","module.exports = flarum.core.compat['common/components/Modal'];","module.exports = flarum.core.compat['common/components/Tooltip'];","module.exports = flarum.core.compat['common/extend'];","module.exports = flarum.core.compat['common/helpers/humanTime'];","module.exports = flarum.core.compat['common/helpers/icon'];","module.exports = flarum.core.compat['common/utils/Stream'];","module.exports = flarum.core.compat['common/utils/classList'];"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"admin.js","mappings":"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","sources":["webpack://@flarum/package-manager/webpack/bootstrap","webpack://@flarum/package-manager/webpack/runtime/compat get default export","webpack://@flarum/package-manager/webpack/runtime/define property getters","webpack://@flarum/package-manager/webpack/runtime/hasOwnProperty shorthand","webpack://@flarum/package-manager/webpack/runtime/make namespace object","webpack://@flarum/package-manager/external root \"flarum.core.compat['common/extend']\"","webpack://@flarum/package-manager/external root \"flarum.core.compat['admin/app']\"","webpack://@flarum/package-manager/external root \"flarum.core.compat['common/components/Alert']\"","webpack://@flarum/package-manager/external root \"flarum.core.compat['admin/components/ExtensionPage']\"","webpack://@flarum/package-manager/external root \"flarum.core.compat['common/components/Button']\"","webpack://@flarum/package-manager/external root \"flarum.core.compat['admin/components/LoadingModal']\"","webpack://@flarum/package-manager/../../../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://@flarum/package-manager/../../../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://@flarum/package-manager/external root \"flarum.core.compat['common/Component']\"","webpack://@flarum/package-manager/external root \"flarum.core.compat['common/utils/Stream']\"","webpack://@flarum/package-manager/./src/admin/utils/errorHandler.ts","webpack://@flarum/package-manager/./src/admin/components/Installer.tsx","webpack://@flarum/package-manager/../../../node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://@flarum/package-manager/external root \"flarum.core.compat['common/helpers/humanTime']\"","webpack://@flarum/package-manager/external root \"flarum.core.compat['common/utils/extractText']\"","webpack://@flarum/package-manager/external root \"flarum.core.compat['common/components/LoadingIndicator']\"","webpack://@flarum/package-manager/external root \"flarum.core.compat['common/components/Tooltip']\"","webpack://@flarum/package-manager/external root \"flarum.core.compat['common/components/Modal']\"","webpack://@flarum/package-manager/./src/admin/components/WhyNotModal.tsx","webpack://@flarum/package-manager/external root \"flarum.core.compat['common/utils/classList']\"","webpack://@flarum/package-manager/external root \"flarum.core.compat['common/helpers/icon']\"","webpack://@flarum/package-manager/./src/admin/components/ExtensionItem.tsx","webpack://@flarum/package-manager/./src/admin/components/MajorUpdater.tsx","webpack://@flarum/package-manager/./src/admin/components/Updater.tsx","webpack://@flarum/package-manager/external root \"flarum.core.compat['admin/utils/isExtensionEnabled']\"","webpack://@flarum/package-manager/./src/admin/index.tsx"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/extend'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['admin/app'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Alert'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['admin/components/ExtensionPage'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Button'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['admin/components/LoadingModal'];","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/Component'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/Stream'];","import app from 'flarum/admin/app';\n\nexport default function (e: any) {\n const error = e.response.errors[0];\n\n if (!['composer_command_failure', 'extension_already_installed', 'extension_not_installed'].includes(error.code)) {\n throw e;\n }\n\n switch (error.code) {\n case 'composer_command_failure':\n if (error.guessed_cause) {\n app.alerts.show({ type: 'error' }, app.translator.trans(`flarum-package-manager.admin.exceptions.guessed_cause.${error.guessed_cause}`));\n app.modal.close();\n } else {\n app.alerts.show({ type: 'error' }, app.translator.trans('flarum-package-manager.admin.exceptions.composer_command_failure'));\n }\n break;\n\n case 'extension_already_installed':\n app.alerts.show({ type: 'error' }, app.translator.trans('flarum-package-manager.admin.exceptions.extension_already_installed'));\n app.modal.close();\n break;\n\n case 'extension_not_installed':\n app.alerts.show({ type: 'error' }, app.translator.trans('flarum-package-manager.admin.exceptions.extension_not_installed'));\n app.modal.close();\n }\n}\n","import type Mithril from 'mithril';\nimport app from 'flarum/admin/app';\nimport Component from 'flarum/common/Component';\nimport Button from 'flarum/common/components/Button';\nimport Stream from 'flarum/common/utils/Stream';\nimport LoadingModal from 'flarum/admin/components/LoadingModal';\nimport errorHandler from '../utils/errorHandler';\n\nexport default class Installer extends Component {\n packageName!: Stream;\n isLoading: boolean = false;\n\n oninit(vnode: Mithril.Vnode): void {\n super.oninit(vnode);\n\n this.packageName = Stream('');\n }\n\n view(): Mithril.Children {\n return (\n
\n \n

\n {app.translator.trans('flarum-package-manager.admin.extensions.install_help', {\n extiverse: extiverse.com,\n })}\n

\n
\n \n \n
\n
\n );\n }\n\n data(): any {\n return {\n package: this.packageName(),\n };\n }\n\n onsubmit(): void {\n this.isLoading = true;\n app.modal.show(LoadingModal);\n\n app\n .request<{ id: string }>({\n method: 'POST',\n url: `${app.forum.attribute('apiUrl')}/package-manager/extensions`,\n body: {\n data: this.data(),\n },\n errorHandler,\n })\n .then((response) => {\n const extensionId = response.id;\n app.alerts.show(\n { type: 'success' },\n app.translator.trans('flarum-package-manager.admin.extensions.successful_install', { extension: extensionId })\n );\n window.location.href = `${app.forum.attribute('adminUrl')}#/extension/${extensionId}`;\n window.location.reload();\n })\n .finally(() => {\n this.isLoading = false;\n m.redraw();\n });\n }\n}\n","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/humanTime'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/extractText'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/LoadingIndicator'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Tooltip'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Modal'];","import app from 'flarum/admin/app';\nimport Mithril from 'mithril';\nimport Modal, { IInternalModalAttrs } from 'flarum/common/components/Modal';\nimport LoadingIndicator from 'flarum/common/components/LoadingIndicator';\nimport errorHandler from '../utils/errorHandler';\n\nexport interface WhyNotModalAttrs extends IInternalModalAttrs {\n package: string;\n}\n\nexport default class WhyNotModal extends Modal {\n loading: boolean = true;\n whyNot: string | null = null;\n\n className() {\n return 'Modal--large WhyNotModal';\n }\n\n title() {\n return app.translator.trans('flarum-package-manager.admin.why_not_modal.title');\n }\n\n oncreate(vnode: Mithril.VnodeDOM) {\n super.oncreate(vnode);\n\n this.requestWhyNot();\n }\n\n content() {\n return
{this.loading ? :
{this.whyNot}
}
;\n }\n\n requestWhyNot(): void {\n app\n .request({\n method: 'POST',\n url: `${app.forum.attribute('apiUrl')}/package-manager/why-not`,\n body: {\n data: {\n package: this.attrs.package,\n },\n },\n errorHandler,\n })\n .then((response: any) => {\n this.loading = false;\n this.whyNot = response.data.whyNot;\n m.redraw();\n });\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/classList'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/icon'];","import Mithril from 'mithril';\nimport app from 'flarum/admin/app';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport classList from 'flarum/common/utils/classList';\nimport icon from 'flarum/common/helpers/icon';\nimport Tooltip from 'flarum/common/components/Tooltip';\nimport Button from 'flarum/common/components/Button';\nimport { Extension as BaseExtension } from 'flarum/admin/AdminApplication';\nimport { UpdatedPackage } from './Updater';\nimport WhyNotModal from './WhyNotModal';\n\n/*\n * @todo fix in core\n */\nexport type Extension = BaseExtension & {\n name: string;\n};\n\nexport interface ExtensionItemAttrs extends ComponentAttrs {\n extension: Extension;\n updates: UpdatedPackage;\n onClickUpdate: CallableFunction;\n whyNotWarning?: boolean;\n isCore?: boolean;\n updatable?: boolean;\n isDanger?: boolean;\n}\n\nexport default class ExtensionItem extends Component {\n view(vnode: Mithril.Vnode): Mithril.Children {\n const { extension, updates, onClickUpdate, whyNotWarning, isCore, isDanger } = this.attrs;\n\n return (\n \n
\n {extension.icon ? icon(extension.icon.name) : ''}\n
\n
\n
{extension.extra['flarum-extension'].title}
\n
\n {this.version(extension.version)}\n {updates['latest-minor'] ? (\n \n {this.version(updates['latest-minor']!)}\n \n ) : null}\n {updates['latest-major'] && !isCore ? (\n \n {this.version(updates['latest-major']!)}\n \n ) : null}\n
\n
\n
\n {onClickUpdate ? (\n \n \n \n ) : null}\n {whyNotWarning ? (\n \n app.modal.show(WhyNotModal, { package: extension.name })}\n aria-label={app.translator.trans('flarum-package-manager.admin.extensions.check_why_it_failed_updating')}\n />\n \n ) : null}\n
\n \n );\n }\n\n private version(v: string): string {\n return 'v' + v.replace('v', '');\n }\n}\n","import app from 'flarum/admin/app';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport Mithril from 'mithril';\nimport Button from 'flarum/common/components/Button';\nimport Tooltip from 'flarum/common/components/Tooltip';\nimport { UpdatedPackage, UpdateState } from './Updater';\nimport LoadingModal from 'flarum/admin/components/LoadingModal';\nimport errorHandler from '../utils/errorHandler';\nimport Alert from 'flarum/common/components/Alert';\nimport WhyNotModal from './WhyNotModal';\nimport RequestError from 'flarum/common/utils/RequestError';\nimport ExtensionItem, { Extension } from './ExtensionItem';\n\ninterface MajorUpdaterAttrs extends ComponentAttrs {\n coreUpdate: UpdatedPackage;\n updateState: UpdateState;\n}\n\nexport default class MajorUpdater extends Component {\n isLoading: string | null = null;\n updateState!: UpdateState;\n\n oninit(vnode: Mithril.Vnode) {\n super.oninit(vnode);\n\n this.updateState = this.attrs.updateState;\n }\n\n view(vnode: Mithril.Vnode): Mithril.Children {\n // @todo move Form-group--danger class to core for reuse\n return (\n
\n \"flarum\n \n

{app.translator.trans('flarum-package-manager.admin.major_updater.description')}

\n
\n \n \n \n \n
\n {this.updateState.incompatibleExtensions.length ? (\n
\n {this.updateState.incompatibleExtensions.map((extension: string) => (\n \n ))}\n
\n ) : null}\n {this.updateState.status === 'failure' ? (\n app.modal.show(WhyNotModal, { package: 'flarum/core' })}\n >\n {app.translator.trans('flarum-package-manager.admin.major_updater.failure.why')}\n ,\n ]}\n >\n

\n {app.translator.trans('flarum-package-manager.admin.major_updater.failure.desc')}\n

\n \n ) : null}\n
\n );\n }\n\n update(dryRun: boolean) {\n this.isLoading = `update-${dryRun ? 'dry-run' : 'run'}`;\n app.modal.show(LoadingModal);\n\n app\n .request({\n method: 'POST',\n url: `${app.forum.attribute('apiUrl')}/package-manager/major-update`,\n body: {\n data: { dryRun },\n },\n errorHandler,\n })\n .then(() => {\n app.alerts.show({ type: 'success' }, app.translator.trans('flarum-package-manager.admin.update_successful'));\n window.location.reload();\n })\n .catch((e: RequestError) => {\n app.modal.close();\n this.updateState.status = 'failure';\n this.updateState.incompatibleExtensions = e.response?.errors?.pop()?.incompatible_extensions as string[];\n })\n .finally(() => {\n this.isLoading = null;\n m.redraw();\n });\n }\n}\n","import Mithril from 'mithril';\nimport app from 'flarum/admin/app';\nimport Component from 'flarum/common/Component';\nimport Button from 'flarum/common/components/Button';\nimport humanTime from 'flarum/common/helpers/humanTime';\nimport extractText from 'flarum/common/utils/extractText';\nimport LoadingModal from 'flarum/admin/components/LoadingModal';\nimport errorHandler from '../utils/errorHandler';\nimport LoadingIndicator from 'flarum/common/components/LoadingIndicator';\nimport MajorUpdater from './MajorUpdater';\nimport ExtensionItem, { Extension } from './ExtensionItem';\n\nexport type UpdatedPackage = {\n name: string;\n version: string;\n latest: string;\n 'latest-minor': string | null;\n 'latest-major': string | null;\n 'latest-status': string;\n description: string;\n};\n\nexport type ComposerUpdates = {\n installed: UpdatedPackage[];\n};\n\nexport type LastUpdateCheck = {\n checkedAt: Date | null;\n updates: ComposerUpdates;\n};\n\ntype UpdateType = 'major' | 'minor' | 'global';\ntype UpdateStatus = 'success' | 'failure' | null;\nexport type UpdateState = {\n ranAt: Date | null;\n status: UpdateStatus;\n limitedPackages: string[];\n incompatibleExtensions: string[];\n};\n\nexport type LastUpdateRun = {\n [key in UpdateType]: UpdateState;\n} & {\n limitedPackages: () => string[];\n};\n\nexport default class Updater extends Component {\n isLoading: string | null = null;\n packageUpdates: Record = {};\n lastUpdateCheck: LastUpdateCheck = JSON.parse(app.data.settings['flarum-package-manager.last_update_check']) as LastUpdateCheck;\n get lastUpdateRun(): LastUpdateRun {\n const lastUpdateRun = JSON.parse(app.data.settings['flarum-package-manager.last_update_run']) as LastUpdateRun;\n\n lastUpdateRun.limitedPackages = () => [\n ...lastUpdateRun.major.limitedPackages,\n ...lastUpdateRun.minor.limitedPackages,\n ...lastUpdateRun.global.limitedPackages,\n ];\n\n return lastUpdateRun;\n }\n\n oninit(vnode: Mithril.Vnode) {\n super.oninit(vnode);\n }\n\n view() {\n const extensions = this.getExtensionUpdates();\n let coreUpdate: UpdatedPackage | undefined = this.getCoreUpdate();\n let core: any;\n\n if (coreUpdate) {\n core = {\n id: 'flarum-core',\n name: 'flarum/core',\n version: app.data.settings.version,\n icon: {\n backgroundImage: `url(${app.forum.attribute('baseUrl')}/assets/extensions/flarum-package-manager/flarum.svg`,\n },\n extra: {\n 'flarum-extension': {\n title: app.translator.trans('flarum-package-manager.admin.updater.flarum'),\n },\n },\n };\n }\n\n return [\n
\n \n

{app.translator.trans('flarum-package-manager.admin.updater.updater_help')}

\n {this.lastUpdateCheck?.checkedAt && (\n

\n \n {app.translator.trans('flarum-package-manager.admin.updater.last_update_checked_at')}\n \n {humanTime(this.lastUpdateCheck.checkedAt)}\n

\n )}\n
\n \n {app.translator.trans('flarum-package-manager.admin.updater.check_for_updates')}\n \n \n {app.translator.trans('flarum-package-manager.admin.updater.run_global_update')}\n \n
\n {this.isLoading !== null ? (\n
\n \n
\n ) : extensions.length || core ? (\n
\n
\n {core ? (\n \n ) : null}\n {extensions.map((extension: Extension) => (\n \n ))}\n
\n
\n ) : null}\n
,\n coreUpdate && coreUpdate['latest-major'] ? : null,\n ];\n }\n\n getExtensionUpdates(): Extension[] {\n this.lastUpdateCheck?.updates?.installed?.filter((composerPackage: UpdatedPackage) => {\n const id = composerPackage.name.replace('/', '-').replace(/(flarum-ext-)|(flarum-)/, '');\n\n const extension = app.data.extensions[id];\n const safeToUpdate = ['semver-safe-update', 'update-possible'].includes(composerPackage['latest-status']);\n\n if (extension && safeToUpdate) {\n this.packageUpdates[extension.id] = composerPackage;\n }\n\n return extension && safeToUpdate;\n });\n\n return (Object.values(app.data.extensions) as Extension[]).filter((extension: Extension) => this.packageUpdates[extension.id]);\n }\n\n getCoreUpdate(): UpdatedPackage | undefined {\n return this.lastUpdateCheck?.updates?.installed?.filter((composerPackage: UpdatedPackage) => composerPackage.name === 'flarum/core').pop();\n }\n\n checkForUpdates() {\n this.isLoading = 'check';\n\n app\n .request({\n method: 'POST',\n url: `${app.forum.attribute('apiUrl')}/package-manager/check-for-updates`,\n errorHandler,\n })\n .then((response) => {\n this.lastUpdateCheck = response as LastUpdateCheck;\n })\n .finally(() => {\n this.isLoading = null;\n m.redraw();\n });\n }\n\n updateCoreMinor() {\n if (confirm(extractText(app.translator.trans('flarum-package-manager.admin.minor_update_confirmation.content')))) {\n app.modal.show(LoadingModal);\n this.isLoading = 'minor-update';\n\n app\n .request({\n method: 'POST',\n url: `${app.forum.attribute('apiUrl')}/package-manager/minor-update`,\n errorHandler,\n })\n .then(() => {\n app.alerts.show({ type: 'success' }, app.translator.trans('flarum-package-manager.admin.update_successful'));\n window.location.reload();\n })\n .finally(() => {\n this.isLoading = null;\n m.redraw();\n });\n }\n }\n\n updateExtension(extension: any) {\n app.modal.show(LoadingModal);\n this.isLoading = 'extension-update';\n\n app\n .request({\n method: 'PATCH',\n url: `${app.forum.attribute('apiUrl')}/package-manager/extensions/${extension.id}`,\n errorHandler,\n })\n .then(() => {\n app.alerts.show(\n { type: 'success' },\n app.translator.trans('flarum-package-manager.admin.extensions.successful_update', { extension: extension.extra['flarum-extension'].title })\n );\n window.location.reload();\n })\n .finally(() => {\n this.isLoading = null;\n m.redraw();\n });\n }\n\n updateGlobally() {\n app.modal.show(LoadingModal);\n this.isLoading = 'global-update';\n\n app\n .request({\n method: 'POST',\n url: `${app.forum.attribute('apiUrl')}/package-manager/global-update`,\n errorHandler,\n })\n .then(() => {\n app.alerts.show({ type: 'success' }, app.translator.trans('flarum-package-manager.admin.updater.global_update_successful'));\n window.location.reload();\n })\n .finally(() => {\n this.isLoading = null;\n m.redraw();\n });\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['admin/utils/isExtensionEnabled'];","import { extend } from 'flarum/common/extend';\nimport app from 'flarum/admin/app';\nimport Alert from 'flarum/common/components/Alert';\nimport ExtensionPage from 'flarum/admin/components/ExtensionPage';\nimport Button from 'flarum/common/components/Button';\nimport LoadingModal from 'flarum/admin/components/LoadingModal';\nimport Installer from './components/Installer';\nimport Updater from './components/Updater';\nimport isExtensionEnabled from 'flarum/admin/utils/isExtensionEnabled';\n\napp.initializers.add('flarum-package-manager', (app) => {\n app.extensionData\n .for('flarum-package-manager')\n .registerSetting(() => {\n if (!app.data.isRequiredDirectoriesWritable) {\n return (\n
\n \n {app.translator.trans('flarum-package-manager.admin.file_permissions')}\n \n
\n );\n }\n\n return null;\n })\n .registerSetting(() => {\n if (app.data.isRequiredDirectoriesWritable) {\n return ;\n }\n\n return null;\n })\n .registerSetting(() => {\n if (app.data.isRequiredDirectoriesWritable) {\n return ;\n }\n\n return null;\n });\n\n extend(ExtensionPage.prototype, 'topItems', function (items) {\n if (this.extension.id === 'flarum-package-manager' || isExtensionEnabled(this.extension.id)) {\n return;\n }\n\n items.add(\n 'remove',\n {\n app.modal.show(LoadingModal);\n\n app\n .request({\n url: `${app.forum.attribute('apiUrl')}/package-manager/extensions/${this.extension.id}`,\n method: 'DELETE',\n })\n .then(() => {\n app.alerts.show({ type: 'success' }, app.translator.trans('flarum-package-manager.admin.extensions.successful_remove'));\n window.location = app.forum.attribute('adminUrl');\n })\n .finally(() => {\n app.modal.close();\n });\n }}\n >\n Remove\n \n );\n });\n});\n"],"names":["__webpack_require__","module","getter","__esModule","d","a","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","flarum","core","compat","_setPrototypeOf","p","setPrototypeOf","__proto__","_inheritsLoose","subClass","superClass","create","constructor","e","error","response","errors","includes","code","guessed_cause","app","type","Installer","packageName","isLoading","oninit","vnode","this","Stream","view","className","htmlFor","extiverse","href","id","placeholder","bidi","icon","onclick","onsubmit","bind","loading","data","package","LoadingModal","method","url","body","errorHandler","then","extensionId","extension","window","location","reload","m","redraw","Component","_defineProperties","target","props","i","length","descriptor","configurable","writable","WhyNotModal","whyNot","title","oncreate","requestWhyNot","content","attrs","Modal","ExtensionItem","updates","onClickUpdate","whyNotWarning","isCore","isDanger","classList","style","name","extra","version","text","v","replace","MajorUpdater","updateState","alt","src","coreUpdate","update","incompatibleExtensions","map","status","dismissible","controls","dryRun","pop","incompatible_extensions","Updater","packageUpdates","lastUpdateCheck","JSON","parse","Constructor","protoProps","extensions","getExtensionUpdates","getCoreUpdate","backgroundImage","checkedAt","humanTime","checkForUpdates","disabled","updateGlobally","updateCoreMinor","lastUpdateRun","limitedPackages","updateExtension","major","installed","filter","composerPackage","safeToUpdate","values","confirm","extractText","minor","global","extensionData","registerSetting","isRequiredDirectoriesWritable","translator","trans","extend","ExtensionPage","items","isExtensionEnabled","add","modal","show","request","forum","attribute","alerts","close"],"sourceRoot":""} \ No newline at end of file