framework/extensions/package-manager/js/dist/admin.js.map
flarum-bot caefacbecd Bundled output for commit a47bd2d457
Includes transpiled JS/TS, and Typescript declaration files (typings).

[skip ci]
2024-10-19 17:44:34 +00:00

1 line
151 KiB
Plaintext
Executable File
Generated

{"version":3,"file":"admin.js","mappings":"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","sources":["webpack://@flarum/extension-manager/../../../node_modules/dayjs/plugin/duration.js","webpack://@flarum/extension-manager/webpack/bootstrap","webpack://@flarum/extension-manager/webpack/runtime/compat get default export","webpack://@flarum/extension-manager/webpack/runtime/define property getters","webpack://@flarum/extension-manager/webpack/runtime/hasOwnProperty shorthand","webpack://@flarum/extension-manager/webpack/runtime/make namespace object","webpack://@flarum/extension-manager/external root \"flarum.reg.get('core', 'common/extend')\"","webpack://@flarum/extension-manager/external root \"flarum.reg.get('core', 'admin/app')\"","webpack://@flarum/extension-manager/external root \"flarum.reg.get('core', 'admin/components/ExtensionPage')\"","webpack://@flarum/extension-manager/external root \"flarum.reg.get('core', 'common/components/Button')\"","webpack://@flarum/extension-manager/external root \"flarum.reg.get('core', 'admin/components/LoadingModal')\"","webpack://@flarum/extension-manager/external root \"flarum.reg.get('core', 'admin/utils/isExtensionEnabled')\"","webpack://@flarum/extension-manager/./src/admin/utils/jumpToQueue.ts","webpack://@flarum/extension-manager/../../../node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://@flarum/extension-manager/../../../node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://@flarum/extension-manager/../../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://@flarum/extension-manager/../../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://@flarum/extension-manager/./src/admin/states/QueueState.ts","webpack://@flarum/extension-manager/./src/admin/utils/errorHandler.ts","webpack://@flarum/extension-manager/external root \"flarum.reg.get('core', 'common/utils/extractText')\"","webpack://@flarum/extension-manager/./src/admin/states/ControlSectionState.ts","webpack://@flarum/extension-manager/external root \"flarum.reg.get('core', 'common/states/PaginatedListState')\"","webpack://@flarum/extension-manager/./src/admin/states/ExtensionListState.ts","webpack://@flarum/extension-manager/./src/admin/states/ExtensionManagerState.ts","webpack://@flarum/extension-manager/external root \"flarum.reg.get('core', 'common/extenders')\"","webpack://@flarum/extension-manager/external root \"flarum.reg.get('core', 'common/Component')\"","webpack://@flarum/extension-manager/external root \"flarum.reg.get('core', 'common/components/LoadingIndicator')\"","webpack://@flarum/extension-manager/external root \"flarum.reg.get('core', 'common/components/Tooltip')\"","webpack://@flarum/extension-manager/external root \"flarum.reg.get('core', 'common/components/Icon')\"","webpack://@flarum/extension-manager/external root \"flarum.reg.get('core', 'common/utils/ItemList')\"","webpack://@flarum/extension-manager/external root \"flarum.reg.get('core', 'common/components/Link')\"","webpack://@flarum/extension-manager/external root \"flarum.reg.get('core', 'common/components/Pagination')\"","webpack://@flarum/extension-manager/external root \"flarum.reg.get('core', 'common/utils/classList')\"","webpack://@flarum/extension-manager/./src/admin/components/Label.tsx","webpack://@flarum/extension-manager/external root \"flarum.reg.get('core', 'common/components/Modal')\"","webpack://@flarum/extension-manager/./src/admin/components/TaskOutputModal.tsx","webpack://@flarum/extension-manager/./src/admin/utils/humanDuration.ts","webpack://@flarum/extension-manager/./src/admin/components/QueueSection.tsx","webpack://@flarum/extension-manager/external root \"flarum.reg.get('core', 'common/components/Alert')\"","webpack://@flarum/extension-manager/external root \"flarum.reg.get('core', 'common/utils/Stream')\"","webpack://@flarum/extension-manager/./src/admin/components/Installer.tsx","webpack://@flarum/extension-manager/external root \"flarum.reg.get('core', 'common/helpers/humanTime')\"","webpack://@flarum/extension-manager/./src/admin/components/WhyNotModal.tsx","webpack://@flarum/extension-manager/external root \"flarum.reg.get('core', 'common/components/Badge')\"","webpack://@flarum/extension-manager/external root \"flarum.reg.get('core', 'common/utils/formatAmount')\"","webpack://@flarum/extension-manager/external root \"flarum.reg.get('core', 'common/Model')\"","webpack://@flarum/extension-manager/./src/admin/utils/versions.ts","webpack://@flarum/extension-manager/./src/admin/models/ExternalExtension.ts","webpack://@flarum/extension-manager/external root \"flarum.reg.get('core', 'common/components/Dropdown')\"","webpack://@flarum/extension-manager/external root \"flarum.reg.get('core', 'common/components/LinkButton')\"","webpack://@flarum/extension-manager/./src/admin/components/ExtensionCard.tsx","webpack://@flarum/extension-manager/./src/admin/components/MajorUpdater.tsx","webpack://@flarum/extension-manager/external root \"flarum.reg.get('core', 'common/components/InfoTile')\"","webpack://@flarum/extension-manager/./src/admin/components/Updater.tsx","webpack://@flarum/extension-manager/external root \"flarum.reg.get('core', 'common/components/Form')\"","webpack://@flarum/extension-manager/./src/admin/components/ControlSection.tsx","webpack://@flarum/extension-manager/external root \"flarum.reg.get('core', 'common/components/FormGroup')\"","webpack://@flarum/extension-manager/./src/admin/components/ConfigureJson.tsx","webpack://@flarum/extension-manager/external root \"flarum.reg.get('core', 'common/components/Select')\"","webpack://@flarum/extension-manager/./src/admin/components/RepositoryModal.tsx","webpack://@flarum/extension-manager/./src/admin/components/ConfigureComposer.tsx","webpack://@flarum/extension-manager/./src/admin/components/AuthMethodModal.tsx","webpack://@flarum/extension-manager/./src/admin/components/ConfigureAuth.tsx","webpack://@flarum/extension-manager/external root \"flarum.reg.get('core', 'common/components/Input')\"","webpack://@flarum/extension-manager/external root \"flarum.reg.get('core', 'common/helpers/listItems')\"","webpack://@flarum/extension-manager/external root \"flarum.reg.get('core', 'common/utils/throttleDebounce')\"","webpack://@flarum/extension-manager/./src/admin/components/DiscoverSection.tsx","webpack://@flarum/extension-manager/./src/admin/components/SettingsPage.tsx","webpack://@flarum/extension-manager/../../../node_modules/pretty-bytes/index.js","webpack://@flarum/extension-manager/./src/admin/models/Task.ts","webpack://@flarum/extension-manager/./src/admin/extend.tsx","webpack://@flarum/extension-manager/./src/admin/index.tsx"],"sourcesContent":["!function(t,s){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=s():\"function\"==typeof define&&define.amd?define(s):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_duration=s()}(this,(function(){\"use strict\";var t,s,n=1e3,i=6e4,e=36e5,r=864e5,o=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,u=31536e6,d=2628e6,a=/^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/,h={years:u,months:d,days:r,hours:e,minutes:i,seconds:n,milliseconds:1,weeks:6048e5},c=function(t){return t instanceof g},f=function(t,s,n){return new g(t,n,s.$l)},m=function(t){return s.p(t)+\"s\"},l=function(t){return t<0},$=function(t){return l(t)?Math.ceil(t):Math.floor(t)},y=function(t){return Math.abs(t)},v=function(t,s){return t?l(t)?{negative:!0,format:\"\"+y(t)+s}:{negative:!1,format:\"\"+t+s}:{negative:!1,format:\"\"}},g=function(){function l(t,s,n){var i=this;if(this.$d={},this.$l=n,void 0===t&&(this.$ms=0,this.parseFromMilliseconds()),s)return f(t*h[m(s)],this);if(\"number\"==typeof t)return this.$ms=t,this.parseFromMilliseconds(),this;if(\"object\"==typeof t)return Object.keys(t).forEach((function(s){i.$d[m(s)]=t[s]})),this.calMilliseconds(),this;if(\"string\"==typeof t){var e=t.match(a);if(e){var r=e.slice(2).map((function(t){return null!=t?Number(t):0}));return this.$d.years=r[0],this.$d.months=r[1],this.$d.weeks=r[2],this.$d.days=r[3],this.$d.hours=r[4],this.$d.minutes=r[5],this.$d.seconds=r[6],this.calMilliseconds(),this}}return this}var y=l.prototype;return y.calMilliseconds=function(){var t=this;this.$ms=Object.keys(this.$d).reduce((function(s,n){return s+(t.$d[n]||0)*h[n]}),0)},y.parseFromMilliseconds=function(){var t=this.$ms;this.$d.years=$(t/u),t%=u,this.$d.months=$(t/d),t%=d,this.$d.days=$(t/r),t%=r,this.$d.hours=$(t/e),t%=e,this.$d.minutes=$(t/i),t%=i,this.$d.seconds=$(t/n),t%=n,this.$d.milliseconds=t},y.toISOString=function(){var t=v(this.$d.years,\"Y\"),s=v(this.$d.months,\"M\"),n=+this.$d.days||0;this.$d.weeks&&(n+=7*this.$d.weeks);var i=v(n,\"D\"),e=v(this.$d.hours,\"H\"),r=v(this.$d.minutes,\"M\"),o=this.$d.seconds||0;this.$d.milliseconds&&(o+=this.$d.milliseconds/1e3,o=Math.round(1e3*o)/1e3);var u=v(o,\"S\"),d=t.negative||s.negative||i.negative||e.negative||r.negative||u.negative,a=e.format||r.format||u.format?\"T\":\"\",h=(d?\"-\":\"\")+\"P\"+t.format+s.format+i.format+a+e.format+r.format+u.format;return\"P\"===h||\"-P\"===h?\"P0D\":h},y.toJSON=function(){return this.toISOString()},y.format=function(t){var n=t||\"YYYY-MM-DDTHH:mm:ss\",i={Y:this.$d.years,YY:s.s(this.$d.years,2,\"0\"),YYYY:s.s(this.$d.years,4,\"0\"),M:this.$d.months,MM:s.s(this.$d.months,2,\"0\"),D:this.$d.days,DD:s.s(this.$d.days,2,\"0\"),H:this.$d.hours,HH:s.s(this.$d.hours,2,\"0\"),m:this.$d.minutes,mm:s.s(this.$d.minutes,2,\"0\"),s:this.$d.seconds,ss:s.s(this.$d.seconds,2,\"0\"),SSS:s.s(this.$d.milliseconds,3,\"0\")};return n.replace(o,(function(t,s){return s||String(i[t])}))},y.as=function(t){return this.$ms/h[m(t)]},y.get=function(t){var s=this.$ms,n=m(t);return\"milliseconds\"===n?s%=1e3:s=\"weeks\"===n?$(s/h[n]):this.$d[n],s||0},y.add=function(t,s,n){var i;return i=s?t*h[m(s)]:c(t)?t.$ms:f(t,this).$ms,f(this.$ms+i*(n?-1:1),this)},y.subtract=function(t,s){return this.add(t,s,!0)},y.locale=function(t){var s=this.clone();return s.$l=t,s},y.clone=function(){return f(this.$ms,this)},y.humanize=function(s){return t().add(this.$ms,\"ms\").locale(this.$l).fromNow(!s)},y.valueOf=function(){return this.asMilliseconds()},y.milliseconds=function(){return this.get(\"milliseconds\")},y.asMilliseconds=function(){return this.as(\"milliseconds\")},y.seconds=function(){return this.get(\"seconds\")},y.asSeconds=function(){return this.as(\"seconds\")},y.minutes=function(){return this.get(\"minutes\")},y.asMinutes=function(){return this.as(\"minutes\")},y.hours=function(){return this.get(\"hours\")},y.asHours=function(){return this.as(\"hours\")},y.days=function(){return this.get(\"days\")},y.asDays=function(){return this.as(\"days\")},y.weeks=function(){return this.get(\"weeks\")},y.asWeeks=function(){return this.as(\"weeks\")},y.months=function(){return this.get(\"months\")},y.asMonths=function(){return this.as(\"months\")},y.years=function(){return this.get(\"years\")},y.asYears=function(){return this.as(\"years\")},l}(),p=function(t,s,n){return t.add(s.years()*n,\"y\").add(s.months()*n,\"M\").add(s.days()*n,\"d\").add(s.hours()*n,\"h\").add(s.minutes()*n,\"m\").add(s.seconds()*n,\"s\").add(s.milliseconds()*n,\"ms\")};return function(n,i,e){t=e,s=e().$utils(),e.duration=function(t,s){var n=e.locale();return f(t,{$l:n},s)},e.isDuration=c;var r=i.prototype.add,o=i.prototype.subtract;i.prototype.add=function(t,s){return c(t)?p(this,t,1):r.bind(this)(t,s)},i.prototype.subtract=function(t,s){return c(t)?p(this,t,-1):o.bind(this)(t,s)}}}));","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\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.reg.get('core', 'common/extend');","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'admin/app');","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'admin/components/ExtensionPage');","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'common/components/Button');","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'admin/components/LoadingModal');","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'admin/utils/isExtensionEnabled');","import app from 'flarum/admin/app';\n\n// @ts-ignore\nwindow.jumpToQueue = jumpToQueue;\nexport default function jumpToQueue() {\n app.modal.close();\n m.route.set(app.route('extension', {\n id: 'flarum-extension-manager'\n }));\n app.extensionManager.queue.load({}, true);\n setTimeout(() => {\n document.getElementById('ExtensionManager-queueSection')?.scrollIntoView({\n block: 'nearest'\n });\n }, 200);\n}\nflarum.reg.add('flarum-extension-manager', 'admin/utils/jumpToQueue', jumpToQueue);","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport app from 'flarum/admin/app';\nexport default class QueueState {\n constructor() {\n _defineProperty(this, \"polling\", null);\n _defineProperty(this, \"tasks\", null);\n _defineProperty(this, \"limit\", 20);\n _defineProperty(this, \"offset\", 0);\n _defineProperty(this, \"total\", 0);\n _defineProperty(this, \"loading\", false);\n }\n load(params, actionTaken) {\n if (actionTaken === void 0) {\n actionTaken = false;\n }\n this.loading = true;\n params = {\n page: {\n limit: this.limit,\n offset: this.offset,\n ...params?.page\n },\n ...params\n };\n return app.store.find('extension-manager-tasks', params || {}).then(data => {\n this.tasks = data;\n this.total = data.payload.meta?.page?.total || 0;\n m.redraw();\n\n // Check if there is a pending or running task\n const pendingTask = data?.find(task => task.status() === 'pending' || task.status() === 'running');\n if (pendingTask) {\n this.pollQueue(actionTaken);\n } else if (actionTaken) {\n app.extensionManager.control.setLoading(null);\n\n // Refresh the page\n window.location.reload();\n } else if (app.extensionManager.control.isLoading()) {\n app.extensionManager.control.setLoading(null);\n }\n this.loading = false;\n return data;\n });\n }\n isLoading() {\n return this.loading;\n }\n getItems() {\n return this.tasks;\n }\n getTotalItems() {\n return this.total;\n }\n getTotalPages() {\n return Math.ceil(this.total / this.limit);\n }\n pageNumber() {\n return Math.ceil(this.offset / this.limit);\n }\n getPerPage() {\n return this.limit;\n }\n hasPrev() {\n return this.pageNumber() !== 0;\n }\n hasNext() {\n return this.offset + this.limit < this.total;\n }\n prev() {\n if (this.hasPrev()) {\n this.offset -= this.limit;\n this.load();\n }\n }\n next() {\n if (this.hasNext()) {\n this.offset += this.limit;\n this.load();\n }\n }\n goto(page) {\n this.offset = (page - 1) * this.limit;\n this.load();\n }\n pollQueue(actionTaken) {\n if (actionTaken === void 0) {\n actionTaken = false;\n }\n if (this.polling) {\n clearTimeout(this.polling);\n }\n this.polling = setTimeout(() => {\n this.load({}, actionTaken);\n }, 6000);\n }\n hasPending() {\n return !!this.tasks?.find(task => task.status() === 'pending' || task.status() === 'running');\n }\n}\nflarum.reg.add('flarum-extension-manager', 'admin/states/QueueState', QueueState);","import app from 'flarum/admin/app';\nexport default function (e) {\n app.extensionManager.control.setLoading(null);\n const error = e.response.errors[0];\n if (!['composer_command_failure', 'extension_already_installed', 'extension_not_installed'].includes(error.code)) {\n throw e;\n }\n app.alerts.clear();\n switch (error.code) {\n case 'composer_command_failure':\n if (error.guessed_cause) {\n app.alerts.show({\n type: 'error'\n }, app.translator.trans(`flarum-extension-manager.admin.exceptions.guessed_cause.${error.guessed_cause}`));\n app.modal.close();\n } else {\n app.alerts.show({\n type: 'error'\n }, app.translator.trans('flarum-extension-manager.admin.exceptions.composer_command_failure'));\n }\n break;\n case 'extension_already_installed':\n app.alerts.show({\n type: 'error'\n }, app.translator.trans('flarum-extension-manager.admin.exceptions.extension_already_installed'));\n app.modal.close();\n break;\n case 'extension_not_installed':\n app.alerts.show({\n type: 'error'\n }, app.translator.trans('flarum-extension-manager.admin.exceptions.extension_not_installed'));\n app.modal.close();\n }\n}","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'common/utils/extractText');","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport app from 'flarum/admin/app';\nimport LoadingModal from 'flarum/admin/components/LoadingModal';\nimport errorHandler from '../utils/errorHandler';\nimport jumpToQueue from '../utils/jumpToQueue';\nimport extractText from 'flarum/common/utils/extractText';\nexport default class ControlSectionState {\n get lastUpdateRun() {\n const lastUpdateRun = JSON.parse(app.data.settings['flarum-extension-manager.last_update_run']);\n lastUpdateRun.limitedPackages = () => [...lastUpdateRun.major.limitedPackages, ...lastUpdateRun.minor.limitedPackages, ...lastUpdateRun.global.limitedPackages];\n return lastUpdateRun;\n }\n constructor() {\n _defineProperty(this, \"loading\", null);\n _defineProperty(this, \"packageUpdates\", {});\n _defineProperty(this, \"lastUpdateCheck\", void 0);\n _defineProperty(this, \"extensionUpdates\", void 0);\n _defineProperty(this, \"coreUpdate\", null);\n this.lastUpdateCheck = JSON.parse(app.data.settings['flarum-extension-manager.last_update_check']);\n this.extensionUpdates = this.formatExtensionUpdates(this.lastUpdateCheck);\n this.coreUpdate = this.formatCoreUpdate(this.lastUpdateCheck);\n }\n isLoading(name) {\n if (name === void 0) {\n name = null;\n }\n return name && this.loading === name || !name && this.loading !== null;\n }\n hasOperationRunning() {\n return this.isLoading() || app.extensionManager.queue.hasPending();\n }\n setLoading(name) {\n this.loading = name;\n }\n requirePackage(data) {\n app.extensionManager.control.setLoading('extension-install');\n app.modal.show(LoadingModal);\n app.request({\n method: 'POST',\n url: `${app.forum.attribute('apiUrl')}/extension-manager/extensions`,\n body: {\n data\n }\n }).then(response => {\n if (response.processing) {\n jumpToQueue();\n } else {\n const extensionId = response.id;\n app.alerts.show({\n type: 'success'\n }, app.translator.trans('flarum-extension-manager.admin.extensions.successful_install', {\n extension: extensionId\n }));\n window.location.href = `${app.forum.attribute('adminUrl')}#/extension/${extensionId}`;\n window.location.reload();\n }\n }).catch(errorHandler).finally(() => {\n app.modal.close();\n m.redraw();\n });\n }\n checkForUpdates() {\n this.setLoading('check');\n app.request({\n method: 'POST',\n url: `${app.forum.attribute('apiUrl')}/extension-manager/check-for-updates`\n }).then(response => {\n if (response.processing) {\n jumpToQueue();\n } else {\n this.lastUpdateCheck = response;\n this.extensionUpdates = this.formatExtensionUpdates(response);\n this.coreUpdate = this.formatCoreUpdate(response);\n this.setLoading(null);\n m.redraw();\n }\n }).catch(errorHandler).finally(() => {\n m.redraw();\n });\n }\n updateCoreMinor() {\n if (confirm(extractText(app.translator.trans('flarum-extension-manager.admin.minor_update_confirmation.content')))) {\n app.modal.show(LoadingModal);\n this.setLoading('minor-update');\n app.request({\n method: 'POST',\n url: `${app.forum.attribute('apiUrl')}/extension-manager/minor-update`\n }).then(response => {\n if (response?.processing) {\n jumpToQueue();\n } else {\n app.alerts.show({\n type: 'success'\n }, app.translator.trans('flarum-extension-manager.admin.update_successful'));\n window.location.reload();\n }\n }).catch(errorHandler).finally(() => {\n app.modal.close();\n m.redraw();\n });\n }\n }\n updateExtension(extension, updateMode) {\n app.modal.show(LoadingModal);\n this.setLoading('extension-update');\n app.request({\n method: 'PATCH',\n url: `${app.forum.attribute('apiUrl')}/extension-manager/extensions/${extension.id}`,\n body: {\n data: {\n updateMode\n }\n }\n }).then(response => {\n if (response?.processing) {\n jumpToQueue();\n } else {\n app.alerts.show({\n type: 'success'\n }, app.translator.trans('flarum-extension-manager.admin.extensions.successful_update', {\n extension: extension.extra['flarum-extension'].title\n }));\n window.location.reload();\n }\n }).catch(errorHandler).finally(() => {\n app.modal.close();\n m.redraw();\n });\n }\n updateGlobally() {\n app.modal.show(LoadingModal);\n this.setLoading('global-update');\n app.request({\n method: 'POST',\n url: `${app.forum.attribute('apiUrl')}/extension-manager/global-update`\n }).then(response => {\n if (response?.processing) {\n jumpToQueue();\n } else {\n app.alerts.show({\n type: 'success'\n }, app.translator.trans('flarum-extension-manager.admin.updater.global_update_successful'));\n window.location.reload();\n }\n }).catch(errorHandler).finally(() => {\n app.modal.close();\n m.redraw();\n });\n }\n formatExtensionUpdates(lastUpdateCheck) {\n this.packageUpdates = {};\n lastUpdateCheck?.updates?.installed?.filter(composerPackage => {\n const id = composerPackage.name.replace('/', '-').replace(/(flarum-ext-)|(flarum-)/, '');\n const extension = app.data.extensions[id];\n const safeToUpdate = ['semver-safe-update', 'update-possible'].includes(composerPackage['latest-status']);\n if (extension && safeToUpdate) {\n this.packageUpdates[extension.id] = composerPackage;\n }\n return extension && safeToUpdate;\n });\n return Object.values(app.data.extensions).filter(extension => this.packageUpdates[extension.id]);\n }\n formatCoreUpdate(lastUpdateCheck) {\n const core = lastUpdateCheck?.updates?.installed?.filter(composerPackage => composerPackage.name === 'flarum/core').pop();\n if (!core) return null;\n return {\n package: core,\n extension: {\n id: 'flarum-core',\n name: 'flarum/core',\n version: app.data.settings.version,\n icon: {\n name: '',\n // @ts-ignore\n backgroundImage: `url(${app.data.resources[0]['attributes']['baseUrl']}/assets/extensions/flarum-extension-manager/flarum.svg`\n },\n extra: {\n 'flarum-extension': {\n title: extractText(app.translator.trans('flarum-extension-manager.admin.updater.flarum'))\n }\n },\n links: {}\n }\n };\n }\n majorUpdate(_ref) {\n let {\n dryRun\n } = _ref;\n app.extensionManager.control.setLoading(dryRun ? 'major-update-dry-run' : 'major-update');\n app.modal.show(LoadingModal);\n const updateState = this.lastUpdateRun.major;\n app.request({\n method: 'POST',\n url: `${app.forum.attribute('apiUrl')}/extension-manager/major-update`,\n body: {\n data: {\n dryRun\n }\n }\n }).then(response => {\n if (response?.processing) {\n jumpToQueue();\n } else {\n app.alerts.show({\n type: 'success'\n }, app.translator.trans('flarum-extension-manager.admin.update_successful'));\n window.location.reload();\n }\n }).catch(errorHandler).catch(e => {\n app.modal.close();\n updateState.status = 'failure';\n updateState.incompatibleExtensions = e.response?.errors?.pop()?.incompatible_extensions;\n }).finally(() => {\n m.redraw();\n });\n }\n}\nflarum.reg.add('flarum-extension-manager', 'admin/states/ControlSectionState', ControlSectionState);","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'common/states/PaginatedListState');","import app from 'flarum/admin/app';\nimport PaginatedListState from 'flarum/common/states/PaginatedListState';\nexport default class ExtensionListState extends PaginatedListState {\n get type() {\n return 'external-extensions';\n }\n constructor() {\n super({\n sort: '-downloads'\n }, 1, 12);\n }\n sortMap() {\n return {\n '-createdAt': {\n sort: '-createdAt',\n label: app.translator.trans('flarum-extension-manager.admin.sections.discover.sort.latest', {}, true)\n },\n '-downloads': {\n sort: '-downloads',\n label: app.translator.trans('flarum-extension-manager.admin.sections.discover.sort.top', {}, true)\n }\n };\n }\n}\nflarum.reg.add('flarum-extension-manager', 'admin/states/ExtensionListState', ExtensionListState);","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport QueueState from './QueueState';\nimport ControlSectionState from './ControlSectionState';\nimport ExtensionListState from './ExtensionListState';\nexport default class ExtensionManagerState {\n constructor() {\n _defineProperty(this, \"queue\", new QueueState());\n _defineProperty(this, \"control\", new ControlSectionState());\n _defineProperty(this, \"extensions\", new ExtensionListState());\n }\n}\nflarum.reg.add('flarum-extension-manager', 'admin/states/ExtensionManagerState', ExtensionManagerState);","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'common/extenders');","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'common/Component');","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'common/components/LoadingIndicator');","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'common/components/Tooltip');","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'common/components/Icon');","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'common/utils/ItemList');","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'common/components/Link');","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'common/components/Pagination');","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'common/utils/classList');","import Component from 'flarum/common/Component';\nimport classList from 'flarum/common/utils/classList';\nexport default class Label extends Component {\n view(vnode) {\n const {\n className,\n type,\n ...attrs\n } = this.attrs;\n return m(\"span\", Object.assign({\n className: classList(['Label', `Label--${this.attrs.type}`, className])\n }, attrs), vnode.children);\n }\n}\nflarum.reg.add('flarum-extension-manager', 'admin/components/Label', Label);","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'common/components/Modal');","import app from 'flarum/admin/app';\nimport Modal from 'flarum/common/components/Modal';\nexport default class TaskOutputModal extends Modal {\n className() {\n return 'Modal--large QuickModal';\n }\n title() {\n return app.translator.trans(`flarum-extension-manager.admin.sections.queue.operations.${this.attrs.task.operation()}`);\n }\n content() {\n return m(\"div\", {\n className: \"Modal-body\"\n }, m(\"div\", {\n className: \"TaskOutputModal-data\"\n }, this.attrs.task.status() === 'failure' && m(\"div\", {\n className: \"Form-group\"\n }, m(\"label\", null, app.translator.trans('flarum-extension-manager.admin.sections.queue.output_modal.guessed_cause')), m(\"div\", {\n className: \"FormControl TaskOutputModal-data-guessed-cause\"\n }, this.attrs.task.guessedCause() && app.translator.trans('flarum-extension-manager.admin.exceptions.guessed_cause.' + this.attrs.task.guessedCause()) || app.translator.trans('flarum-extension-manager.admin.sections.queue.output_modal.cause_unknown'))), m(\"div\", {\n className: \"Form-group\"\n }, m(\"label\", null, app.translator.trans('flarum-extension-manager.admin.sections.queue.output_modal.command')), m(\"div\", {\n className: \"FormControl TaskOutputModal-data-command\"\n }, m(\"code\", null, \"$ composer \", this.attrs.task.command()))), m(\"div\", {\n className: \"Form-group\"\n }, m(\"label\", null, app.translator.trans('flarum-extension-manager.admin.sections.queue.output_modal.output')), m(\"div\", {\n className: \"FormControl TaskOutputModal-data-output\"\n }, m(\"code\", null, m(\"pre\", null, this.attrs.task.output()))))));\n }\n}\nflarum.reg.add('flarum-extension-manager', 'admin/components/TaskOutputModal', TaskOutputModal);","import duration from 'dayjs/plugin/duration';\nexport default function humanDuration(start, end) {\n dayjs.extend(duration);\n const durationTime = dayjs(end).diff(start);\n return dayjs.duration(durationTime).humanize();\n}\nflarum.reg.add('flarum-extension-manager', 'admin/utils/humanDuration', humanDuration);","import app from 'flarum/admin/app';\nimport Component from 'flarum/common/Component';\nimport LoadingIndicator from 'flarum/common/components/LoadingIndicator';\nimport Button from 'flarum/common/components/Button';\nimport Tooltip from 'flarum/common/components/Tooltip';\nimport Icon from 'flarum/common/components/Icon';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport extractText from 'flarum/common/utils/extractText';\nimport Link from 'flarum/common/components/Link';\nimport Pagination from 'flarum/common/components/Pagination';\nimport classList from 'flarum/common/utils/classList';\nimport Label from './Label';\nimport TaskOutputModal from './TaskOutputModal';\nimport humanDuration from '../utils/humanDuration';\nexport default class QueueSection extends Component {\n oninit(vnode) {\n super.oninit(vnode);\n app.extensionManager.queue.load();\n }\n view() {\n return m(\"section\", {\n id: \"ExtensionManager-queueSection\",\n className: \"ExtensionPage-settings ExtensionManager-queueSection\"\n }, m(\"div\", {\n className: \"ExtensionPage-permissions-header ExtensionManager-queueSection-header\"\n }, m(\"div\", {\n className: \"container\"\n }, m(\"h2\", {\n className: \"ExtensionTitle\"\n }, app.translator.trans('flarum-extension-manager.admin.sections.queue.title')), m(Button, {\n className: \"Button Button--icon\",\n icon: \"fas fa-sync-alt\",\n onclick: () => app.extensionManager.queue.load(),\n \"aria-label\": app.translator.trans('flarum-extension-manager.admin.sections.queue.refresh'),\n disabled: app.extensionManager.control.isLoading()\n }))), m(\"div\", {\n className: \"container\"\n }, this.queueTable()));\n }\n columns() {\n const items = new ItemList();\n items.add('operation', {\n label: extractText(app.translator.trans('flarum-extension-manager.admin.sections.queue.columns.operation')),\n content: task => m(\"div\", {\n className: \"ExtensionManager-queueTable-operation\"\n }, m(\"span\", {\n className: \"ExtensionManager-queueTable-operation-icon\"\n }, this.operationIcon(task.operation())), m(\"span\", {\n className: \"ExtensionManager-queueTable-operation-name\"\n }, app.translator.trans(`flarum-extension-manager.admin.sections.queue.operations.${task.operation()}`)))\n }, 80);\n items.add('package', {\n label: extractText(app.translator.trans('flarum-extension-manager.admin.sections.queue.columns.package')),\n content: task => {\n const extension = app.data.extensions[task.package()?.replace(/(\\/flarum-|\\/flarum-ext-|\\/)/g, '-')];\n return extension ? m(Link, {\n className: \"ExtensionManager-queueTable-package\",\n href: app.route('extension', {\n id: extension.id\n })\n }, m(\"div\", {\n className: \"ExtensionManager-queueTable-package-icon ExtensionIcon\",\n style: extension.icon\n }, !!extension.icon && m(Icon, {\n name: extension.icon.name\n })), m(\"div\", {\n className: \"ExtensionManager-queueTable-package-details\"\n }, m(\"span\", {\n className: \"ExtensionManager-queueTable-package-title\"\n }, extension.extra['flarum-extension'].title), m(\"span\", {\n className: \"ExtensionManager-queueTable-package-name\"\n }, task.package()))) : task.package();\n }\n }, 75);\n items.add('status', {\n label: extractText(app.translator.trans('flarum-extension-manager.admin.sections.queue.columns.status')),\n content: task => m('[', null, m(Label, {\n className: \"ExtensionManager-queueTable-status\",\n type: {\n running: 'neutral',\n failure: 'error',\n pending: 'warning',\n success: 'success'\n }[task.status()]\n }, app.translator.trans(`flarum-extension-manager.admin.sections.queue.statuses.${task.status()}`)), ['pending', 'running'].includes(task.status()) && m(LoadingIndicator, {\n size: \"small\",\n display: \"inline\"\n }))\n }, 70);\n items.add('elapsedTime', {\n label: extractText(app.translator.trans('flarum-extension-manager.admin.sections.queue.columns.elapsed_time')),\n content: task => !task.startedAt() || !task.finishedAt() ? app.translator.trans('flarum-extension-manager.admin.sections.queue.task_just_started') : m(Tooltip, {\n text: `${dayjs(task.startedAt()).format('LL LTS')} ${dayjs(task.finishedAt()).format('LL LTS')}`\n }, m(\"span\", null, humanDuration(task.startedAt(), task.finishedAt())))\n }, 65);\n items.add('memoryUsed', {\n label: extractText(app.translator.trans('flarum-extension-manager.admin.sections.queue.columns.peak_memory_used')),\n content: task => m(\"span\", null, task.peakMemoryUsed())\n }, 60);\n items.add('details', {\n label: extractText(app.translator.trans('flarum-extension-manager.admin.sections.queue.columns.details')),\n content: task => m(Button, {\n className: \"Button Button--icon Table-controls-item\",\n icon: \"fas fa-file-alt\",\n \"aria-label\": app.translator.trans('flarum-extension-manager.admin.sections.queue.columns.details')\n // @todo fix in core\n // @ts-ignore\n ,\n onclick: () => app.modal.show(TaskOutputModal, {\n task\n }),\n disabled: ['pending', 'running'].includes(task.status())\n }),\n className: 'Table-controls'\n }, 55);\n return items;\n }\n queueTable() {\n const tasks = app.extensionManager.queue.getItems();\n if (!tasks) {\n return m(LoadingIndicator, null);\n }\n if (tasks && !tasks.length) {\n return m(\"h3\", {\n className: \"ExtensionPage-subHeader\"\n }, app.translator.trans('flarum-extension-manager.admin.sections.queue.none'));\n }\n const columns = this.columns();\n return m('[', null, m(\"div\", {\n className: classList('Table-container', {\n 'loading-container': tasks && app.extensionManager.queue.isLoading()\n })\n }, m(\"table\", {\n className: \"Table ExtensionManager-queueTable\"\n }, m(\"thead\", null, m(\"tr\", null, columns.toArray().map((item, index) => m(\"th\", {\n key: index\n }, item.label)))), m(\"tbody\", null, tasks.map((task, index) => m(\"tr\", {\n key: index\n }, columns.toArray().map((item, index) => {\n const {\n label,\n content,\n ...attrs\n } = item;\n return m(\"td\", Object.assign({\n key: index\n }, attrs), content(task));\n }))))), tasks && app.extensionManager.queue.isLoading() && m(LoadingIndicator, {\n size: \"large\"\n })), m(Pagination, {\n total: app.extensionManager.queue.getTotalItems(),\n currentPage: app.extensionManager.queue.pageNumber() + 1,\n perPage: app.extensionManager.queue.getPerPage(),\n onChange: page => app.extensionManager.queue.goto(page)\n }));\n }\n operationIcon(operation) {\n return m(Icon, {\n name: {\n update_check: 'fas fa-sync-alt',\n update_major: 'fas fa-play',\n update_minor: 'fas fa-play',\n update_global: 'fas fa-play',\n extension_install: 'fas fa-download',\n extension_remove: 'fas fa-times',\n extension_update: 'fas fa-arrow-alt-circle-up',\n why_not: 'fas fa-exclamation-circle'\n }[operation]\n });\n }\n}\nflarum.reg.add('flarum-extension-manager', 'admin/components/QueueSection', QueueSection);","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'common/components/Alert');","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'common/utils/Stream');","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\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';\nexport default class Installer extends Component {\n constructor() {\n super(...arguments);\n _defineProperty(this, \"packageName\", void 0);\n }\n oninit(vnode) {\n super.oninit(vnode);\n this.packageName = Stream('');\n }\n view() {\n return m(\"div\", {\n className: \"Form-group ExtensionManager-installer\"\n }, m(\"label\", {\n htmlFor: \"install-extension\"\n }, app.translator.trans('flarum-extension-manager.admin.extensions.install')), m(\"div\", {\n className: \"helpText\"\n }, app.translator.trans('flarum-extension-manager.admin.extensions.install_help', {\n link: m(\"a\", {\n href: \"https://flarum.org/extensions\"\n }, \"flarum.org\"),\n semantic_link: m(\"a\", {\n href: \"https://devhints.io/semver\"\n }),\n code: m(\"code\", null)\n })), m(\"div\", {\n className: \"FormControl-container\"\n }, m(\"input\", {\n className: \"FormControl\",\n id: \"install-extension\",\n placeholder: \"vendor/package-name\",\n bidi: this.packageName\n }), m(Button, {\n className: \"Button\",\n icon: \"fas fa-download\",\n onclick: this.onsubmit.bind(this),\n loading: app.extensionManager.control.isLoading('extension-install'),\n disabled: app.extensionManager.control.hasOperationRunning()\n }, app.translator.trans('flarum-extension-manager.admin.extensions.proceed'))));\n }\n data() {\n return {\n package: this.packageName()\n };\n }\n onsubmit() {\n app.extensionManager.control.requirePackage(this.data());\n }\n}\nflarum.reg.add('flarum-extension-manager', 'admin/components/Installer', Installer);","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'common/helpers/humanTime');","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport app from 'flarum/admin/app';\nimport Modal from 'flarum/common/components/Modal';\nimport LoadingIndicator from 'flarum/common/components/LoadingIndicator';\nimport errorHandler from '../utils/errorHandler';\nexport default class WhyNotModal extends Modal {\n constructor() {\n super(...arguments);\n _defineProperty(this, \"loading\", true);\n _defineProperty(this, \"whyNot\", null);\n }\n className() {\n return 'Modal--large WhyNotModal';\n }\n title() {\n return app.translator.trans('flarum-extension-manager.admin.why_not_modal.title');\n }\n oncreate(vnode) {\n super.oncreate(vnode);\n this.requestWhyNot();\n }\n content() {\n return m(\"div\", {\n className: \"Modal-body\"\n }, this.loading ? m(LoadingIndicator, null) : m(\"pre\", {\n className: \"WhyNotModal-contents\"\n }, this.whyNot));\n }\n requestWhyNot() {\n app.request({\n method: 'POST',\n url: `${app.forum.attribute('apiUrl')}/extension-manager/why-not`,\n body: {\n data: {\n package: this.attrs.package\n }\n }\n }).then(response => {\n this.loading = false;\n this.whyNot = response.data.reason;\n m.redraw();\n }).catch(errorHandler);\n }\n}\nflarum.reg.add('flarum-extension-manager', 'admin/components/WhyNotModal', WhyNotModal);","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'common/components/Badge');","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'common/utils/formatAmount');","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'common/Model');","export let VersionStability = /*#__PURE__*/function (VersionStability) {\n VersionStability[\"Stable\"] = \"stable\";\n VersionStability[\"Alpha\"] = \"alpha\";\n VersionStability[\"Beta\"] = \"beta\";\n VersionStability[\"RC\"] = \"rc\";\n VersionStability[\"Dev\"] = \"dev\";\n return VersionStability;\n}({});\nexport function isProductionReady(version) {\n return [VersionStability.Stable, VersionStability.RC].includes(stability(version));\n}\nexport function stability(version) {\n const split = version.split('-');\n if (split.length === 1) {\n return VersionStability.Stable;\n }\n const stab = split[1].split('.')[0].toLowerCase();\n switch (stab) {\n case 'alpha':\n return VersionStability.Alpha;\n case 'beta':\n return VersionStability.Beta;\n case 'rc':\n return VersionStability.RC;\n default:\n return VersionStability.Dev;\n }\n}\nflarum.reg.add('flarum-extension-manager', 'admin/utils/versions', { VersionStability: VersionStability,isProductionReady: isProductionReady,stability: stability, });","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport Model from 'flarum/common/Model';\nimport app from 'flarum/admin/app';\nimport { isProductionReady } from '../utils/versions';\nexport default class ExternalExtension extends Model {\n constructor() {\n super(...arguments);\n _defineProperty(this, \"extensionId\", Model.attribute('extensionId'));\n _defineProperty(this, \"name\", Model.attribute('name'));\n _defineProperty(this, \"title\", Model.attribute('title'));\n _defineProperty(this, \"description\", Model.attribute('description'));\n _defineProperty(this, \"iconUrl\", Model.attribute('iconUrl'));\n _defineProperty(this, \"icon\", Model.attribute('icon'));\n _defineProperty(this, \"highestVersion\", Model.attribute('highestVersion'));\n _defineProperty(this, \"httpUri\", Model.attribute('httpUri'));\n _defineProperty(this, \"discussUri\", Model.attribute('discussUri'));\n _defineProperty(this, \"vendor\", Model.attribute('vendor'));\n _defineProperty(this, \"isPremium\", Model.attribute('isPremium'));\n _defineProperty(this, \"isLocale\", Model.attribute('isLocale'));\n _defineProperty(this, \"locale\", Model.attribute('locale'));\n _defineProperty(this, \"latestFlarumVersionSupported\", Model.attribute('latestFlarumVersionSupported'));\n _defineProperty(this, \"downloads\", Model.attribute('downloads'));\n _defineProperty(this, \"installed\", false);\n }\n isSupported() {\n const currentVersion = app.data.settings.version;\n const latestCompatibleVersion = this.latestFlarumVersionSupported();\n\n // If stability is not the same, it's not compatible.\n if (currentVersion.split('-')[1] !== latestCompatibleVersion.split('-')[1]) {\n return false;\n }\n\n // Minor versions are compatible.\n return currentVersion.split('.')[0] === latestCompatibleVersion.split('.')[0];\n }\n isProductionReady() {\n return isProductionReady(this.highestVersion());\n }\n toLocalExtension() {\n return {\n id: this.extensionId(),\n name: this.name(),\n version: this.highestVersion(),\n description: this.description(),\n icon: this.icon() || {\n name: 'fas fa-box-open',\n backgroundColor: '#117187',\n color: '#fff'\n },\n links: {\n discuss: this.discussUri(),\n website: this.httpUri()\n },\n extra: {\n 'flarum-extension': {\n title: this.title()\n }\n }\n };\n }\n}\nflarum.reg.add('flarum-extension-manager', 'admin/models/ExternalExtension', ExternalExtension);","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'common/components/Dropdown');","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'common/components/LinkButton');","import Component from 'flarum/common/Component';\nimport Icon from 'flarum/common/components/Icon';\nimport Badge from 'flarum/common/components/Badge';\nimport app from 'flarum/admin/app';\nimport Button from 'flarum/common/components/Button';\nimport formatAmount from 'flarum/common/utils/formatAmount';\nimport ExternalExtension from '../models/ExternalExtension';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport classList from 'flarum/common/utils/classList';\nimport Label from './Label';\nimport Tooltip from 'flarum/common/components/Tooltip';\nimport Dropdown from 'flarum/common/components/Dropdown';\nimport WhyNotModal from './WhyNotModal';\nimport LinkButton from 'flarum/common/components/LinkButton';\nexport default class ExtensionCard extends Component {\n getExtension() {\n return this.attrs.extension instanceof ExternalExtension ? this.attrs.extension.toLocalExtension() : this.attrs.extension;\n }\n view() {\n const extension = this.getExtension();\n const {\n isCore,\n isDanger\n } = this.attrs;\n return m(\"div\", {\n className: classList('ExtensionCard', {\n 'ExtensionCard--core': isCore,\n 'ExtensionCard--danger': isDanger\n })\n }, m(\"div\", {\n className: \"ExtensionCard-header\"\n }, this.icon(), m(Tooltip, {\n text: extension.name\n }, m(\"h4\", null, extension.extra['flarum-extension'].title)), this.attrs.extension instanceof ExternalExtension && m(\"div\", {\n className: \"ExtensionCard-badges\"\n }, this.badges().toArray()), m(\"div\", {\n className: \"ExtensionCard-actions\"\n }, this.actionItems().toArray())), m(\"div\", {\n className: \"ExtensionCard-body\"\n }, m(\"p\", null, extension.description)), m(\"div\", {\n className: \"ExtensionCard-footer\"\n }, m(\"div\", {\n className: \"ExtensionCard-meta\"\n }, this.metaItems().toArray())));\n }\n icon() {\n const extension = this.getExtension();\n if (this.attrs.extension instanceof ExternalExtension && extension.id in app.data.extensions) {\n extension.icon = app.data.extensions[extension.id].icon;\n }\n const style = extension.icon || {};\n if (!extension.icon?.name && this.attrs.extension instanceof ExternalExtension && !(extension.id in app.data.extensions) && this.attrs.extension.iconUrl()) {\n style.backgroundImage = `url(${this.attrs.extension.iconUrl()})`;\n }\n return m(\"span\", {\n className: \"ExtensionIcon\",\n style: extension.icon\n }, extension.icon?.name ? m(Icon, {\n name: extension.icon.name\n }) : null);\n }\n badges() {\n const items = new ItemList();\n const extension = this.attrs.extension;\n if (extension.isSupported()) {\n items.add('compatible', m(Badge, {\n icon: \"fas fa-check\",\n type: \"success\",\n label: app.translator.trans('flarum-extension-manager.admin.sections.discover.extension.badges.compatible'),\n className: \"Badge--flat Badge--square\"\n }));\n } else {\n items.add('incompatible', m(Badge, {\n icon: \"fas fa-times\",\n type: \"danger\",\n label: app.translator.trans('flarum-extension-manager.admin.sections.discover.extension.badges.incompatible'),\n className: \"Badge--flat Badge--square\"\n }));\n }\n if (extension.isPremium()) {\n items.add('premium', m(Badge, {\n icon: \"fas fa-dollar-sign\",\n label: app.translator.trans('flarum-extension-manager.admin.sections.discover.extension.badges.premium'),\n className: \"ExtensionCard-badge--premium Badge--flat Badge--square\"\n }));\n }\n if (!extension.isProductionReady()) {\n items.add('unstable', m(Badge, {\n icon: \"fas fa-flask\",\n label: app.translator.trans('flarum-extension-manager.admin.sections.discover.extension.badges.unstable'),\n className: \"Badge--flat Badge--square Badge--danger\"\n }));\n }\n if (extension.name().split('/')[0] === 'fof') {\n items.add('fof', m(Badge, {\n icon: \"fas fa-users\",\n label: app.translator.trans('flarum-extension-manager.admin.sections.discover.extension.badges.fof'),\n className: \"Badge--flat Badge--square\"\n }));\n }\n if (extension.name().split('/')[0] === 'flarum') {\n items.add('flarum', m(Badge, {\n icon: \"fab fa-flarum\",\n label: app.translator.trans('flarum-extension-manager.admin.sections.discover.extension.badges.flarum'),\n className: \"ExtensionCard-badge--flarum Badge--flat Badge--square\"\n }));\n }\n return items;\n }\n metaItems() {\n const items = new ItemList();\n const {\n updates,\n isCore\n } = this.attrs;\n const latestVersion = updates ? updates['latest-minor'] ?? (updates['latest-major'] && !isCore ? updates['latest-major'] : null) : null;\n if (this.attrs.extension instanceof ExternalExtension) {\n items.add('downloads', m(\"span\", null, m(Icon, {\n name: \"fas fa-circle-down\"\n }), app.translator.trans('flarum-extension-manager.admin.sections.discover.extension.downloads', {\n count: this.attrs.extension.downloads(),\n formattedCount: formatAmount(this.attrs.extension.downloads())\n })));\n } else {\n items.add('version', m(\"div\", {\n className: \"ExtensionCard-version\"\n }, m(\"span\", {\n className: \"ExtensionCard-version-current\"\n }, this.version(updates['version'])), latestVersion ? m('[', null, m(Icon, {\n name: \"fas fa-arrow-right\"\n }), m(Label, {\n className: \"ExtensionCard-version-latest\",\n type: updates['latest-minor'] ? 'success' : 'warning'\n }, this.version(latestVersion))) : null));\n }\n if (this.attrs.extension instanceof ExternalExtension) {\n items.add('version', m(\"div\", {\n className: \"ExtensionCard-version\"\n }, \"v\", this.version(this.attrs.extension.highestVersion())));\n items.add('link', m(LinkButton, {\n className: \"Button Button--ua-reset Button--link Button--icon\",\n href: this.attrs.extension.httpUri(),\n target: \"_blank\",\n icon: \"fas fa-external-link-alt\",\n external: true\n }));\n }\n return items;\n }\n actionItems() {\n const items = new ItemList();\n const {\n updates,\n extension,\n onClickUpdate,\n whyNotWarning\n } = this.attrs;\n if (extension instanceof ExternalExtension) {\n if (!(extension.extensionId() in app.data.extensions)) {\n items.add('install', m(Button, {\n className: \"Button Button--icon Button--flat\",\n icon: \"fas fa-cloud-arrow-down\",\n onclick: () => {\n app.extensionManager.control.requirePackage({\n package: extension.name()\n });\n }\n }));\n } else {\n items.add('installed', m(Button, {\n className: \"Button Button--icon Button--flat Button--success\",\n icon: \"fas fa-check-circle\",\n disabled: true\n }));\n }\n } else {\n if (onClickUpdate && typeof onClickUpdate === 'function') {\n items.add('update', m(Tooltip, {\n text: app.translator.trans('flarum-extension-manager.admin.extensions.update')\n }, m(Button, {\n icon: \"fas fa-cloud-arrow-down\",\n className: \"Button Button--icon Button--flat\",\n onclick: onClickUpdate,\n \"aria-label\": app.translator.trans('flarum-extension-manager.admin.extensions.update')\n })));\n } else if (onClickUpdate) {\n items.add('update', m(Dropdown, {\n buttonClassName: \"Button Button--icon Button--flat\",\n icon: \"fas fa-ellipsis\",\n label: app.translator.trans('flarum-extension-manager.admin.extensions.update')\n }, m(Button, {\n icon: \"fas fa-cloud-arrow-down\",\n onclick: onClickUpdate.soft\n }, app.translator.trans('flarum-extension-manager.admin.extensions.update_soft_label')), m(Button, {\n icon: \"fas fa-rotate\",\n onclick: onClickUpdate.hard,\n disabled: !updates['direct-dependency']\n }, app.translator.trans('flarum-extension-manager.admin.extensions.update_hard_label'))));\n }\n if (whyNotWarning) items.add('whyNot', m(Tooltip, {\n text: app.translator.trans('flarum-extension-manager.admin.extensions.check_why_it_failed_updating')\n }, m(Button, {\n icon: \"fas fa-exclamation-circle\",\n className: \"Button Button--icon Button--flat Button--danger\",\n onclick: () => app.modal.show(WhyNotModal, {\n package: extension.name\n }),\n \"aria-label\": app.translator.trans('flarum-extension-manager.admin.extensions.check_why_it_failed_updating')\n })));\n }\n return items;\n }\n version(v) {\n return v.charAt(0) === 'v' ? v.substring(1) : v;\n }\n}\nflarum.reg.add('flarum-extension-manager', 'admin/components/ExtensionCard', ExtensionCard);","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport app from 'flarum/admin/app';\nimport Component from 'flarum/common/Component';\nimport Button from 'flarum/common/components/Button';\nimport Tooltip from 'flarum/common/components/Tooltip';\nimport Alert from 'flarum/common/components/Alert';\nimport WhyNotModal from './WhyNotModal';\nimport ExtensionCard from './ExtensionCard';\nimport classList from 'flarum/common/utils/classList';\nexport default class MajorUpdater extends Component {\n constructor() {\n super(...arguments);\n _defineProperty(this, \"updateState\", void 0);\n }\n oninit(vnode) {\n super.oninit(vnode);\n this.updateState = this.attrs.updateState;\n }\n view() {\n return m(\"div\", {\n className: classList('Form-group Form-group--danger ExtensionManager-majorUpdate', {\n 'ExtensionManager-majorUpdate--failed': this.updateState.status === 'failure',\n 'ExtensionManager-majorUpdate--incompatibleExtensions': this.updateState.incompatibleExtensions.length\n })\n }, m(\"img\", {\n alt: \"flarum logo\",\n src: app.forum.attribute('baseUrl') + '/assets/extensions/flarum-extension-manager/flarum.svg'\n }), m(\"label\", null, app.translator.trans('flarum-extension-manager.admin.major_updater.title', {\n version: this.attrs.coreUpdate['latest-major']\n })), m(\"p\", {\n className: \"helpText\"\n }, app.translator.trans('flarum-extension-manager.admin.major_updater.description')), m(\"div\", {\n className: \"ExtensionManager-updaterControls\"\n }, m(Tooltip, {\n text: app.translator.trans('flarum-extension-manager.admin.major_updater.dry_run_help')\n }, m(Button, {\n className: \"Button\",\n icon: \"fas fa-vial\",\n onclick: this.update.bind(this, true),\n disabled: app.extensionManager.control.hasOperationRunning()\n }, app.translator.trans('flarum-extension-manager.admin.major_updater.dry_run'))), m(Button, {\n className: \"Button Button--danger\",\n icon: \"fas fa-play\",\n onclick: this.update.bind(this, false),\n disabled: app.extensionManager.control.hasOperationRunning()\n }, app.translator.trans('flarum-extension-manager.admin.major_updater.update'))), this.updateState.incompatibleExtensions.length ? m(\"div\", {\n className: \"ExtensionManager-majorUpdate-incompatibleExtensions ExtensionManager-extensions-grid\"\n }, this.updateState.incompatibleExtensions.map(extension => m(ExtensionCard, {\n extension: app.data.extensions[extension.replace('flarum-', '').replace('flarum-ext-', '').replace('/', '-')],\n updates: {},\n onClickUpdate: null,\n isDanger: true\n }))) : null, this.updateState.status === 'failure' ? m(Alert, {\n type: \"error\",\n className: \"ExtensionManager-majorUpdate-failure\",\n dismissible: false,\n controls: [m(Button, {\n className: \"Button Button--text ExtensionManager-majorUpdate-failure-details\",\n icon: \"fas fa-question-circle\",\n onclick: () => app.modal.show(WhyNotModal, {\n package: 'flarum/core'\n })\n }, app.translator.trans('flarum-extension-manager.admin.major_updater.failure.why'))]\n }, m(\"p\", {\n className: \"ExtensionManager-majorUpdate-failure-desc\"\n }, app.translator.trans('flarum-extension-manager.admin.major_updater.failure.desc'))) : null);\n }\n update(dryRun) {\n app.extensionManager.control.majorUpdate({\n dryRun\n });\n }\n}\nflarum.reg.add('flarum-extension-manager', 'admin/components/MajorUpdater', MajorUpdater);","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'common/components/InfoTile');","import 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 LoadingIndicator from 'flarum/common/components/LoadingIndicator';\nimport MajorUpdater from './MajorUpdater';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport InfoTile from 'flarum/common/components/InfoTile';\nimport ExtensionCard from './ExtensionCard';\nimport { isProductionReady } from '../utils/versions';\nexport default class Updater extends Component {\n view() {\n const core = app.extensionManager.control.coreUpdate;\n return [m(\"div\", {\n className: \"Form-group\"\n }, m(\"label\", null, app.translator.trans('flarum-extension-manager.admin.updater.updater_title')), m(\"div\", {\n className: \"helpText\"\n }, app.translator.trans('flarum-extension-manager.admin.updater.updater_help')), this.lastUpdateCheckView(), m(\"div\", {\n className: \"ExtensionManager-updaterControls\"\n }, this.controlItems().toArray()), this.availableUpdatesView()), core && core.package['latest-major'] && isProductionReady(core.package['latest-major']) ? m(MajorUpdater, {\n coreUpdate: core.package,\n updateState: app.extensionManager.control.lastUpdateRun.major\n }) : null];\n }\n lastUpdateCheckView() {\n return app.extensionManager.control.lastUpdateCheck?.checkedAt && m(\"p\", {\n className: \"ExtensionManager-lastUpdatedAt\"\n }, m(\"span\", {\n className: \"ExtensionManager-lastUpdatedAt-label\"\n }, app.translator.trans('flarum-extension-manager.admin.updater.last_update_checked_at')), m(\"span\", {\n className: \"ExtensionManager-lastUpdatedAt-value\"\n }, humanTime(app.extensionManager.control.lastUpdateCheck.checkedAt))) || null;\n }\n availableUpdatesView() {\n const state = app.extensionManager.control;\n if (app.extensionManager.control.isLoading('check') || app.extensionManager.control.isLoading('global-update')) {\n return m(\"div\", {\n className: \"ExtensionManager-extensions\"\n }, m(LoadingIndicator, null));\n }\n const hasMinorCoreUpdate = state.coreUpdate && state.coreUpdate.package['latest-minor'];\n if (!(state.extensionUpdates.length || hasMinorCoreUpdate)) {\n return m(\"div\", {\n className: \"ExtensionManager-extensions ExtensionManager-extensions--empty\"\n }, m(InfoTile, {\n icon: \"fas fa-plug-circle-check\"\n }, app.translator.trans('flarum-extension-manager.admin.updater.up_to_date')));\n }\n return m(\"div\", {\n className: \"ExtensionManager-extensions\"\n }, m(\"div\", {\n className: \"ExtensionManager-extensions-grid\"\n }, hasMinorCoreUpdate ? m(ExtensionCard, {\n extension: state.coreUpdate.extension,\n updates: state.coreUpdate.package,\n isCore: true,\n onClickUpdate: () => state.updateCoreMinor(),\n whyNotWarning: state.lastUpdateRun.limitedPackages().includes('flarum/core')\n }) : null, state.extensionUpdates.map(extension => m(ExtensionCard, {\n extension: extension,\n updates: state.packageUpdates[extension.id],\n onClickUpdate: {\n soft: () => state.updateExtension(extension, 'soft'),\n hard: () => state.updateExtension(extension, 'hard')\n },\n whyNotWarning: state.lastUpdateRun.limitedPackages().includes(extension.name)\n }))));\n }\n controlItems() {\n const items = new ItemList();\n items.add('updateCheck', m(Button, {\n className: \"Button\",\n icon: \"fas fa-sync-alt\",\n onclick: () => app.extensionManager.control.checkForUpdates(),\n loading: app.extensionManager.control.isLoading('check'),\n disabled: app.extensionManager.control.hasOperationRunning()\n }, app.translator.trans('flarum-extension-manager.admin.updater.check_for_updates')), 100);\n items.add('globalUpdate', m(Button, {\n className: \"Button\",\n icon: \"fas fa-play\",\n onclick: () => app.extensionManager.control.updateGlobally(),\n loading: app.extensionManager.control.isLoading('global-update'),\n disabled: app.extensionManager.control.hasOperationRunning()\n }, app.translator.trans('flarum-extension-manager.admin.updater.run_global_update')));\n return items;\n }\n}\nflarum.reg.add('flarum-extension-manager', 'admin/components/Updater', Updater);","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'common/components/Form');","import app from 'flarum/admin/app';\nimport Component from 'flarum/common/Component';\nimport Alert from 'flarum/common/components/Alert';\nimport Installer from './Installer';\nimport Updater from './Updater';\nimport Form from 'flarum/common/components/Form';\nexport default class ControlSection extends Component {\n oninit(vnode) {\n super.oninit(vnode);\n }\n view() {\n return m(\"div\", {\n className: \"ExtensionPage-settings ExtensionManager-controlSection\"\n }, m(\"div\", {\n className: \"container\"\n }, app.data['flarum-extension-manager.writable_dirs'] ? m(Form, null, m(Installer, null), m(Updater, null)) : m(\"div\", {\n className: \"Form-group\"\n }, m(Alert, {\n type: \"warning\",\n dismissible: false\n }, app.translator.trans('flarum-extension-manager.admin.file_permissions')))));\n }\n}\nflarum.reg.add('flarum-extension-manager', 'admin/components/ControlSection', ControlSection);","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'common/components/FormGroup');","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport app from 'flarum/admin/app';\nimport Component from 'flarum/common/Component';\nimport FormGroup from 'flarum/common/components/FormGroup';\nimport Stream from 'flarum/common/utils/Stream';\nimport Button from 'flarum/common/components/Button';\nimport classList from 'flarum/common/utils/classList';\nexport default class ConfigureJson extends Component {\n constructor() {\n super(...arguments);\n _defineProperty(this, \"settings\", {});\n _defineProperty(this, \"initialSettings\", null);\n _defineProperty(this, \"loading\", false);\n _defineProperty(this, \"type\", void 0);\n }\n oninit(vnode) {\n super.oninit(vnode);\n this.submit(true);\n }\n className() {\n return '';\n }\n view() {\n return m(\"div\", {\n className: classList('FormSection', this.className())\n }, m(\"label\", null, this.title()), this.content(), m(\"div\", {\n className: \"Form-group Form-controls\"\n }, this.submitButton()));\n }\n submitButton() {\n return [m(Button, {\n className: \"Button Button--primary\",\n loading: this.loading,\n onclick: () => this.submit(false),\n disabled: !this.isDirty()\n }, app.translator.trans('core.admin.settings.submit_button'))];\n }\n customSettingComponents() {\n return FormGroup.prototype.customFieldComponents();\n }\n setting(key) {\n return this.settings[key] ?? (this.settings[key] = Stream());\n }\n submit(readOnly) {\n this.loading = true;\n const configuration = {};\n Object.keys(this.settings).forEach(key => {\n configuration[key] = this.settings[key]();\n });\n app.request({\n method: 'POST',\n url: app.forum.attribute('apiUrl') + '/extension-manager/composer',\n body: {\n type: this.type,\n data: readOnly ? null : configuration\n }\n }).then(_ref => {\n let {\n data\n } = _ref;\n Object.keys(data).forEach(key => {\n this.settings[key] = Stream(data[key]);\n });\n this.initialSettings = Array.isArray(data) ? {} : data;\n }).finally(() => {\n this.loading = false;\n m.redraw();\n });\n }\n isDirty() {\n return JSON.stringify(this.initialSettings) !== JSON.stringify(this.settings);\n }\n}\nflarum.reg.add('flarum-extension-manager', 'admin/components/ConfigureJson', ConfigureJson);","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'common/components/Select');","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport Modal from 'flarum/common/components/Modal';\nimport app from 'flarum/admin/app';\nimport Select from 'flarum/common/components/Select';\nimport Stream from 'flarum/common/utils/Stream';\nimport Button from 'flarum/common/components/Button';\nimport Form from 'flarum/common/components/Form';\nexport default class RepositoryModal extends Modal {\n constructor() {\n super(...arguments);\n _defineProperty(this, \"name\", void 0);\n _defineProperty(this, \"repository\", void 0);\n }\n oninit(vnode) {\n super.oninit(vnode);\n this.name = Stream(this.attrs.name || '');\n this.repository = Stream(this.attrs.repository || {\n type: 'composer',\n url: ''\n });\n }\n className() {\n return 'RepositoryModal Modal--small';\n }\n title() {\n const context = this.attrs.repository ? 'edit' : 'add';\n return app.translator.trans(`flarum-extension-manager.admin.composer.${context}_repository_label`);\n }\n content() {\n const types = {\n composer: app.translator.trans('flarum-extension-manager.admin.composer.repositories.types.composer'),\n vcs: app.translator.trans('flarum-extension-manager.admin.composer.repositories.types.vcs'),\n path: app.translator.trans('flarum-extension-manager.admin.composer.repositories.types.path')\n };\n return m(\"div\", {\n className: \"Modal-body\"\n }, m(Form, null, m(\"div\", {\n className: \"Form-group\"\n }, m(\"label\", null, app.translator.trans('flarum-extension-manager.admin.composer.repositories.add_modal.name_label')), m(\"input\", {\n className: \"FormControl\",\n bidi: this.name\n })), m(\"div\", {\n className: \"Form-group\"\n }, m(\"label\", null, app.translator.trans('flarum-extension-manager.admin.composer.repositories.add_modal.type_label')), m(Select, {\n options: types,\n value: this.repository().type,\n onchange: value => this.repository({\n ...this.repository(),\n type: value\n })\n })), m(\"div\", {\n className: \"Form-group\"\n }, m(\"label\", null, app.translator.trans('flarum-extension-manager.admin.composer.repositories.add_modal.url')), m(\"input\", {\n className: \"FormControl\",\n onchange: e => this.repository({\n ...this.repository(),\n url: e.target.value\n }),\n value: this.repository().url\n })), m(\"div\", {\n className: \"Form-group\"\n }, m(Button, {\n className: \"Button Button--primary\",\n onclick: this.submit.bind(this)\n }, app.translator.trans('flarum-extension-manager.admin.composer.repositories.add_modal.submit_button')))));\n }\n submit() {\n this.attrs.onsubmit(this.repository(), this.name());\n this.hide();\n }\n}\nflarum.reg.add('flarum-extension-manager', 'admin/components/RepositoryModal', RepositoryModal);","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport app from 'flarum/admin/app';\nimport ConfigureJson from './ConfigureJson';\nimport Button from 'flarum/common/components/Button';\nimport extractText from 'flarum/common/utils/extractText';\nimport RepositoryModal from './RepositoryModal';\nexport default class ConfigureComposer extends ConfigureJson {\n constructor() {\n super(...arguments);\n _defineProperty(this, \"type\", 'composer');\n }\n title() {\n return app.translator.trans('flarum-extension-manager.admin.composer.title');\n }\n className() {\n return 'ConfigureComposer';\n }\n content() {\n return m(\"div\", {\n className: \"Form ExtensionManager-SettingsGroups-content\"\n }, this.attrs.buildSettingComponent.call(this, {\n setting: 'minimum-stability',\n label: app.translator.trans('flarum-extension-manager.admin.composer.minimum_stability.label'),\n help: app.translator.trans('flarum-extension-manager.admin.composer.minimum_stability.help'),\n type: 'select',\n options: {\n stable: app.translator.trans('flarum-extension-manager.admin.composer.minimum_stability.options.stable'),\n RC: app.translator.trans('flarum-extension-manager.admin.composer.minimum_stability.options.rc'),\n beta: app.translator.trans('flarum-extension-manager.admin.composer.minimum_stability.options.beta'),\n alpha: app.translator.trans('flarum-extension-manager.admin.composer.minimum_stability.options.alpha'),\n dev: app.translator.trans('flarum-extension-manager.admin.composer.minimum_stability.options.dev')\n }\n }), m(\"div\", {\n className: \"Form-group\"\n }, m(\"label\", null, app.translator.trans('flarum-extension-manager.admin.composer.repositories.label')), m(\"div\", {\n className: \"helpText\"\n }, app.translator.trans('flarum-extension-manager.admin.composer.repositories.help')), m(\"div\", {\n className: \"ConfigureComposer-repositories\"\n }, Object.keys(this.setting('repositories')() || {}).map(name => {\n const repository = this.setting('repositories')()[name];\n return m(\"div\", {\n className: \"ButtonGroup ButtonGroup--full\"\n }, m(Button, {\n className: \"Button\",\n icon: {\n composer: 'fas fa-cubes',\n vcs: 'fas fa-code-branch',\n path: 'fas fa-folder'\n }[repository.type],\n onclick: () => app.modal.show(RepositoryModal, {\n name,\n repository,\n onsubmit: (repository, newName) => {\n const repositories = this.setting('repositories')();\n delete repositories[name];\n this.setting('repositories')(repositories);\n this.onchange(repository, newName);\n }\n })\n }, name, \" (\", repository.type, \")\"), m(Button, {\n className: \"Button Button--icon\",\n icon: \"fas fa-trash\",\n \"aria-label\": app.translator.trans('flarum-extension-manager.admin.composer.delete_repository_label'),\n onclick: () => {\n if (confirm(extractText(app.translator.trans('flarum-extension-manager.admin.composer.delete_repository_confirmation')))) {\n const repositories = {\n ...this.setting('repositories')()\n };\n delete repositories[name];\n this.setting('repositories')(repositories);\n }\n }\n }));\n }))));\n }\n submitButton() {\n const items = super.submitButton();\n items.push(m(Button, {\n className: \"Button\",\n onclick: () => app.modal.show(RepositoryModal, {\n onsubmit: this.onchange.bind(this)\n })\n }, app.translator.trans('flarum-extension-manager.admin.composer.add_repository_label')));\n return items;\n }\n onchange(repository, name) {\n this.setting('repositories')({\n ...this.setting('repositories')(),\n [name]: repository\n });\n }\n}\nflarum.reg.add('flarum-extension-manager', 'admin/components/ConfigureComposer', ConfigureComposer);","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport Modal from 'flarum/common/components/Modal';\nimport app from 'flarum/admin/app';\nimport Select from 'flarum/common/components/Select';\nimport Stream from 'flarum/common/utils/Stream';\nimport Button from 'flarum/common/components/Button';\nimport extractText from 'flarum/common/utils/extractText';\nimport Form from 'flarum/common/components/Form';\nexport default class AuthMethodModal extends Modal {\n constructor() {\n super(...arguments);\n _defineProperty(this, \"type\", void 0);\n _defineProperty(this, \"host\", void 0);\n _defineProperty(this, \"token\", void 0);\n }\n oninit(vnode) {\n super.oninit(vnode);\n this.type = Stream(this.attrs.type || 'bearer');\n this.host = Stream(this.attrs.host || '');\n this.token = Stream(this.attrs.token || '');\n }\n className() {\n return 'AuthMethodModal Modal--small';\n }\n title() {\n const context = this.attrs.host ? 'edit' : 'add';\n return app.translator.trans(`flarum-extension-manager.admin.auth_config.${context}_label`);\n }\n content() {\n const types = {\n 'github-oauth': app.translator.trans('flarum-extension-manager.admin.auth_config.types.github-oauth'),\n 'gitlab-oauth': app.translator.trans('flarum-extension-manager.admin.auth_config.types.gitlab-oauth'),\n 'gitlab-token': app.translator.trans('flarum-extension-manager.admin.auth_config.types.gitlab-token'),\n bearer: app.translator.trans('flarum-extension-manager.admin.auth_config.types.bearer')\n };\n return m(\"div\", {\n className: \"Modal-body\"\n }, m(Form, null, m(\"div\", {\n className: \"Form-group\"\n }, m(\"label\", null, app.translator.trans('flarum-extension-manager.admin.auth_config.add_modal.type_label')), m(Select, {\n options: types,\n value: this.type(),\n onchange: this.type\n })), m(\"div\", {\n className: \"Form-group\"\n }, m(\"label\", null, app.translator.trans('flarum-extension-manager.admin.auth_config.add_modal.host_label')), m(\"input\", {\n className: \"FormControl\",\n bidi: this.host,\n placeholder: app.translator.trans('flarum-extension-manager.admin.auth_config.add_modal.host_placeholder')\n })), m(\"div\", {\n className: \"Form-group\"\n }, m(\"label\", null, app.translator.trans('flarum-extension-manager.admin.auth_config.add_modal.token_label')), m(\"textarea\", {\n className: \"FormControl\",\n oninput: e => this.token(e.target.value),\n rows: \"6\",\n placeholder: this.token().startsWith('unchanged:') ? extractText(app.translator.trans('flarum-extension-manager.admin.auth_config.add_modal.unchanged_token_placeholder')) : ''\n }, this.token().startsWith('unchanged:') ? '' : this.token())), m(\"div\", {\n className: \"Form-group\"\n }, m(Button, {\n className: \"Button Button--primary\",\n onclick: this.submit.bind(this)\n }, app.translator.trans('flarum-extension-manager.admin.auth_config.add_modal.submit_button')))));\n }\n submit() {\n this.attrs.onsubmit(this.type(), this.host(), this.token());\n this.hide();\n }\n}\nflarum.reg.add('flarum-extension-manager', 'admin/components/AuthMethodModal', AuthMethodModal);","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport app from 'flarum/admin/app';\nimport ConfigureJson from './ConfigureJson';\nimport Button from 'flarum/common/components/Button';\nimport AuthMethodModal from './AuthMethodModal';\nimport extractText from 'flarum/common/utils/extractText';\nexport default class ConfigureAuth extends ConfigureJson {\n constructor() {\n super(...arguments);\n _defineProperty(this, \"type\", 'auth');\n }\n title() {\n return app.translator.trans('flarum-extension-manager.admin.auth_config.title');\n }\n className() {\n return 'ConfigureAuth';\n }\n content() {\n const authSettings = Object.keys(this.settings);\n const hasAuthSettings = authSettings.length && authSettings.every(type => {\n const data = this.settings[type]();\n return Array.isArray(data) ? data.length : Object.keys(data).length;\n });\n return m(\"div\", {\n className: \"ExtensionManager-SettingsGroups-content\"\n }, hasAuthSettings ? authSettings.map(type => {\n const hosts = this.settings[type]();\n return m(\"div\", {\n className: \"Form-group\"\n }, m(\"label\", null, app.translator.trans(`flarum-extension-manager.admin.auth_config.types.${type}`)), m(\"div\", {\n className: \"ConfigureAuth-hosts\"\n }, Object.keys(hosts).map(host => {\n const data = hosts[host];\n return m(\"div\", {\n className: \"ButtonGroup ButtonGroup--full\"\n }, m(Button, {\n className: \"Button\",\n icon: \"fas fa-key\",\n onclick: () => app.modal.show(AuthMethodModal, {\n type,\n host,\n token: data,\n onsubmit: this.onchange.bind(this, host)\n })\n }, host), m(Button, {\n className: \"Button Button--icon\",\n icon: \"fas fa-trash\",\n \"aria-label\": app.translator.trans('flarum-extension-manager.admin.auth_config.delete_label'),\n onclick: () => {\n if (confirm(extractText(app.translator.trans('flarum-extension-manager.admin.auth_config.delete_confirmation')))) {\n const newType = {\n ...this.setting(type)()\n };\n delete newType[host];\n if (Object.keys(newType).length) {\n this.setting(type)(newType);\n } else {\n delete this.settings[type];\n }\n }\n }\n }));\n })));\n }) : m(\"span\", {\n className: \"helpText\"\n }, app.translator.trans('flarum-extension-manager.admin.auth_config.no_auth_methods_configured')));\n }\n submitButton() {\n const items = super.submitButton();\n items.push(m(Button, {\n className: \"Button\",\n loading: this.loading,\n onclick: () => app.modal.show(AuthMethodModal, {\n onsubmit: this.onchange.bind(this, null)\n })\n }, app.translator.trans('flarum-extension-manager.admin.auth_config.add_label')));\n return items;\n }\n onchange(oldHost, type, host, token) {\n const data = {\n ...this.setting(type)()\n };\n if (oldHost) {\n delete data[oldHost];\n }\n data[host] = token;\n this.setting(type)(data);\n }\n}\nflarum.reg.add('flarum-extension-manager', 'admin/components/ConfigureAuth', ConfigureAuth);","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'common/components/Input');","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'common/helpers/listItems');","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'common/utils/throttleDebounce');","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport app from 'flarum/admin/app';\nimport Component from 'flarum/common/Component';\nimport Form from 'flarum/common/components/Form';\nimport Button from 'flarum/common/components/Button';\nimport LoadingIndicator from 'flarum/common/components/LoadingIndicator';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport Input from 'flarum/common/components/Input';\nimport Stream from 'flarum/common/utils/Stream';\nimport Alert from 'flarum/common/components/Alert';\nimport listItems from 'flarum/common/helpers/listItems';\nimport LinkButton from 'flarum/common/components/LinkButton';\nimport Dropdown from 'flarum/common/components/Dropdown';\nimport ExtensionCard from './ExtensionCard';\nimport Pagination from 'flarum/common/components/Pagination';\nimport InfoTile from 'flarum/common/components/InfoTile';\nimport classList from 'flarum/common/utils/classList';\nimport { throttle } from 'flarum/common/utils/throttleDebounce';\nexport default class DiscoverSection extends Component {\n constructor() {\n super(...arguments);\n _defineProperty(this, \"search\", Stream(''));\n _defineProperty(this, \"warningsDismissed\", Stream(false));\n _defineProperty(this, \"applySearch\", throttle(1200, value => {\n const params = app.extensionManager.extensions.getParams();\n app.extensionManager.extensions.refreshParams({\n ...params,\n filter: {\n ...params.filter,\n q: value\n }\n }, 1);\n }));\n }\n oninit(vnode) {\n super.oninit(vnode);\n app.extensionManager.extensions.goto(1);\n this.warningsDismissed(localStorage.getItem('flarum-extension-manager.warningsDismissed') === 'true');\n }\n load(page) {\n if (page === void 0) {\n page = 1;\n }\n app.extensionManager.extensions.goto(page);\n }\n view() {\n return m(\"div\", {\n className: \"ExtensionPage-settings ExtensionManager-DiscoverSection\"\n }, m(\"div\", {\n className: \"container\"\n }, m(Form, null, m(\"div\", {\n className: \"Form-group\"\n }, m(\"label\", null, app.translator.trans('flarum-extension-manager.admin.sections.discover.title')), m(\"div\", {\n className: \"helpText\"\n }, app.translator.trans('flarum-extension-manager.admin.sections.discover.description'), this.warningsDismissed() && m(Button, {\n className: \"Button Button--text Button--warning Button--more\",\n icon: \"fas fa-exclamation-triangle\",\n onclick: () => this.setWarningDismissed(false)\n }))), !this.warningsDismissed() && m(\"div\", {\n className: \"ExtensionManager-warnings Form-group\"\n }, m(Alert, {\n className: \"ExtensionManager-primaryWarning\",\n type: \"warning\",\n dismissible: true,\n ondismiss: () => this.setWarningDismissed(true)\n }, m(\"ul\", null, listItems(this.warningItems().toArray())))), m(\"div\", {\n className: \"Tabs\"\n }, m(\"div\", {\n className: \"Tabs-nav\"\n }, this.tabItems().toArray()), m(\"div\", {\n className: \"Tabs-content\"\n }, m(\"hr\", {\n className: \"Tabs-divider\"\n }), m(\"div\", {\n className: \"ExtensionManager-DiscoverSection-toolbar\"\n }, m(\"div\", {\n className: \"ExtensionManager-DiscoverSection-toolbar-primary\"\n }, this.toolbarPrimaryItems().toArray()), m(\"div\", {\n className: \"ExtensionManager-DiscoverSection-toolbar-secondary\"\n }, this.toolbarSecondaryItems().toArray())), this.extensionList(), m(\"div\", {\n className: \"ExtensionManager-DiscoverSection-footer\"\n }, this.footerItems().toArray()))))));\n }\n tabFilters() {\n return {\n '': {\n label: app.translator.trans('flarum-extension-manager.admin.sections.discover.tabs.discover'),\n active: () => !app.extensionManager.extensions.getParams().filter?.type\n },\n extension: {\n label: app.translator.trans('flarum-extension-manager.admin.sections.discover.tabs.extensions'),\n active: () => app.extensionManager.extensions.getParams().filter?.type === 'extension'\n },\n locale: {\n label: app.translator.trans('flarum-extension-manager.admin.sections.discover.tabs.languages'),\n active: () => app.extensionManager.extensions.getParams().filter?.type === 'locale'\n },\n theme: {\n label: app.translator.trans('flarum-extension-manager.admin.sections.discover.tabs.themes'),\n active: () => app.extensionManager.extensions.getParams().filter?.type === 'theme'\n }\n };\n }\n tabItems() {\n const items = new ItemList();\n const tabs = this.tabFilters();\n Object.keys(tabs).forEach(key => {\n const tab = tabs[key];\n items.add(key, m(Button, {\n className: \"Button Button--link\",\n active: tab.active(),\n onclick: () => {\n app.extensionManager.extensions.changeFilter('type', key);\n }\n }, tab.label));\n });\n return items;\n }\n warningItems() {\n const items = new ItemList();\n items.add('accessWarning', app.translator.trans('flarum-extension-manager.admin.settings.access_warning'));\n if (app.data.debugEnabled) {\n items.add('devModeWarning', app.translator.trans('flarum-extension-manager.admin.settings.debug_mode_warning'));\n }\n return items;\n }\n toolbarPrimaryItems() {\n const items = new ItemList();\n items.add('search', m(Input, {\n value: this.search(),\n onchange: value => {\n this.search(value);\n this.applySearch(value);\n },\n inputAttrs: {\n className: 'FormControl-alt'\n },\n clearable: true,\n placeholder: app.translator.trans('flarum-extension-manager.admin.sections.discover.search'),\n prefixIcon: \"fas fa-search\"\n }));\n return items;\n }\n toolbarSecondaryItems() {\n const items = new ItemList();\n const sortMap = app.extensionManager.extensions.sortMap();\n const sortOptions = Object.keys(sortMap).reduce((acc, sortId) => {\n const sort = sortMap[sortId];\n acc[sortId] = typeof sort !== 'string' ? sort.label : sort;\n return acc;\n }, {});\n items.add('sort', m(Dropdown, {\n buttonClassName: \"Button\",\n label: sortOptions[app.extensionManager.extensions.getParams().sort] || Object.keys(sortMap).map(key => sortOptions[key])[0],\n accessibleToggleLabel: app.translator.trans('flarum-extension-manager.admin.sections.discover.sort.toggle_dropdown_accessible_label')\n }, Object.keys(sortOptions).map(value => {\n const label = sortOptions[value];\n const active = app.extensionManager.extensions.getParams().sort === value;\n return m(Button, {\n icon: active ? 'fas fa-check' : true,\n onclick: () => app.extensionManager.extensions.changeSort(value),\n active: active\n }, label);\n })));\n const is = app.extensionManager.extensions.getParams().filter?.is?.[0] ?? null;\n const activeType = is || 'all';\n items.add('party', m(Dropdown, {\n buttonClassName: \"Button\",\n label: app.translator.trans('flarum-extension-manager.admin.sections.discover.party_filter.' + activeType),\n accessibleToggleLabel: app.translator.trans('flarum-extension-manager.admin.sections.discover.party_filter.toggle_dropdown_accessible_label')\n }, ['all', 'premium'].map(party => m(Button, {\n icon: activeType === party ? 'fas fa-check' : true,\n onclick: () => {\n app.extensionManager.extensions.changeFilter('is', party === 'all' ? undefined : [party]);\n },\n active: activeType === party\n }, app.translator.trans('flarum-extension-manager.admin.sections.discover.party_filter.' + party)))));\n return items;\n }\n extensionList() {\n if (!app.extensionManager.extensions.hasItems() && app.extensionManager.extensions.isLoading()) {\n return m(LoadingIndicator, {\n display: \"block\"\n });\n }\n if (!app.extensionManager.extensions.hasItems()) {\n return m(\"div\", {\n className: \"ExtensionManager-DiscoverSection-list ExtensionManager-DiscoverSection-list--empty\"\n }, m(InfoTile, {\n icon: \"fas fa-plug-circle-exclamation\"\n }, app.translator.trans('flarum-extension-manager.admin.sections.discover.empty_results')));\n }\n return m(\"div\", {\n className: classList('ExtensionManager-DiscoverSection-list', {\n 'loading-container': app.extensionManager.extensions.isLoading()\n })\n }, m(\"div\", {\n className: \"ExtensionManager-DiscoverSection-list-inner\"\n }, app.extensionManager.extensions.getPages().map(page => page.items.map(extension => m(ExtensionCard, {\n extension: extension,\n key: extension.name()\n })))), app.extensionManager.extensions.hasItems() && app.extensionManager.extensions.isLoading() && m(LoadingIndicator, {\n size: \"large\"\n }));\n }\n footerItems() {\n const items = new ItemList();\n items.add('pagination', m(Pagination, {\n total: app.extensionManager.extensions.totalItems,\n perPage: app.extensionManager.extensions.pageSize,\n currentPage: app.extensionManager.extensions.getLocation().page,\n onChange: page => {\n const current = app.extensionManager.extensions.getLocation().page;\n if (current === page) {\n return;\n }\n this.load(page);\n }\n }));\n items.add('premiumTermsLink', m(LinkButton, {\n className: \"Button Button--link\",\n href: \"https://flarum.org/terms/premium-extensions\",\n external: true,\n target: \"_blank\",\n icon: \"fas fa-circle-info\"\n }, app.translator.trans('flarum-extension-manager.admin.sections.discover.premium_extension_terms')));\n return items;\n }\n setWarningDismissed(dismissed) {\n this.warningsDismissed(dismissed);\n localStorage.setItem('flarum-extension-manager.warningsDismissed', dismissed ? 'true' : 'false');\n }\n}\nflarum.reg.add('flarum-extension-manager', 'admin/components/DiscoverSection', DiscoverSection);","import app from 'flarum/admin/app';\nimport ExtensionPage from 'flarum/admin/components/ExtensionPage';\nimport QueueSection from './QueueSection';\nimport ControlSection from './ControlSection';\nimport ConfigureComposer from './ConfigureComposer';\nimport ConfigureAuth from './ConfigureAuth';\nimport DiscoverSection from './DiscoverSection';\nexport default class SettingsPage extends ExtensionPage {\n content() {\n const settings = app.registry.getSettings(this.extension.id);\n return m(\"div\", {\n className: \"ExtensionPage-settings\"\n }, m(\"div\", {\n className: \"container\"\n }, settings ? [m(\"div\", {\n className: \"Form-group\"\n }, m(\"label\", null, app.translator.trans('flarum-extension-manager.admin.sections.settings.title')), m(\"div\", {\n className: \"helpText\"\n }, app.translator.trans('flarum-extension-manager.admin.sections.settings.description'))), m(\"div\", {\n className: \"FormSectionGroup ExtensionManager-SettingsGroups\"\n }, m(\"div\", {\n className: \"FormSection\"\n }, m(\"label\", null, app.translator.trans('flarum-extension-manager.admin.settings.title')), m(\"div\", {\n className: \"Form\"\n }, settings.map(this.buildSettingComponent.bind(this))), m(\"div\", {\n className: \"Form-group Form--controls\"\n }, this.submitButton())), m(ConfigureComposer, {\n buildSettingComponent: this.buildSettingComponent\n }), m(ConfigureAuth, {\n buildSettingComponent: this.buildSettingComponent\n }))] : m(\"h3\", {\n className: \"ExtensionPage-subHeader\"\n }, app.translator.trans('core.admin.extension.no_settings'))));\n }\n sections(vnode) {\n const items = super.sections(vnode);\n items.add('discover', m(DiscoverSection, null), 15);\n items.add('control', m(ControlSection, null), 10);\n items.setPriority('content', 8);\n if (app.data.settings['flarum-extension-manager.queue_jobs'] !== '0' && app.data.settings['flarum-extension-manager.queue_jobs']) {\n items.add('queue', m(QueueSection, null), 5);\n }\n items.remove('permissions');\n return items;\n }\n onsaved() {\n super.onsaved();\n m.redraw();\n }\n}\nflarum.reg.add('flarum-extension-manager', 'admin/components/SettingsPage', SettingsPage);","const BYTE_UNITS = [\n\t'B',\n\t'kB',\n\t'MB',\n\t'GB',\n\t'TB',\n\t'PB',\n\t'EB',\n\t'ZB',\n\t'YB',\n];\n\nconst BIBYTE_UNITS = [\n\t'B',\n\t'KiB',\n\t'MiB',\n\t'GiB',\n\t'TiB',\n\t'PiB',\n\t'EiB',\n\t'ZiB',\n\t'YiB',\n];\n\nconst BIT_UNITS = [\n\t'b',\n\t'kbit',\n\t'Mbit',\n\t'Gbit',\n\t'Tbit',\n\t'Pbit',\n\t'Ebit',\n\t'Zbit',\n\t'Ybit',\n];\n\nconst BIBIT_UNITS = [\n\t'b',\n\t'kibit',\n\t'Mibit',\n\t'Gibit',\n\t'Tibit',\n\t'Pibit',\n\t'Eibit',\n\t'Zibit',\n\t'Yibit',\n];\n\n/*\nFormats the given number using `Number#toLocaleString`.\n- If locale is a string, the value is expected to be a locale-key (for example: `de`).\n- If locale is true, the system default locale is used for translation.\n- If no value for locale is specified, the number is returned unmodified.\n*/\nconst toLocaleString = (number, locale, options) => {\n\tlet result = number;\n\tif (typeof locale === 'string' || Array.isArray(locale)) {\n\t\tresult = number.toLocaleString(locale, options);\n\t} else if (locale === true || options !== undefined) {\n\t\tresult = number.toLocaleString(undefined, options);\n\t}\n\n\treturn result;\n};\n\nexport default function prettyBytes(number, options) {\n\tif (!Number.isFinite(number)) {\n\t\tthrow new TypeError(`Expected a finite number, got ${typeof number}: ${number}`);\n\t}\n\n\toptions = {\n\t\tbits: false,\n\t\tbinary: false,\n\t\tspace: true,\n\t\t...options,\n\t};\n\n\tconst UNITS = options.bits\n\t\t? (options.binary ? BIBIT_UNITS : BIT_UNITS)\n\t\t: (options.binary ? BIBYTE_UNITS : BYTE_UNITS);\n\n\tconst separator = options.space ? ' ' : '';\n\n\tif (options.signed && number === 0) {\n\t\treturn ` 0${separator}${UNITS[0]}`;\n\t}\n\n\tconst isNegative = number < 0;\n\tconst prefix = isNegative ? '-' : (options.signed ? '+' : '');\n\n\tif (isNegative) {\n\t\tnumber = -number;\n\t}\n\n\tlet localeOptions;\n\n\tif (options.minimumFractionDigits !== undefined) {\n\t\tlocaleOptions = {minimumFractionDigits: options.minimumFractionDigits};\n\t}\n\n\tif (options.maximumFractionDigits !== undefined) {\n\t\tlocaleOptions = {maximumFractionDigits: options.maximumFractionDigits, ...localeOptions};\n\t}\n\n\tif (number < 1) {\n\t\tconst numberString = toLocaleString(number, options.locale, localeOptions);\n\t\treturn prefix + numberString + separator + UNITS[0];\n\t}\n\n\tconst exponent = Math.min(Math.floor(options.binary ? Math.log(number) / Math.log(1024) : Math.log10(number) / 3), UNITS.length - 1);\n\tnumber /= (options.binary ? 1024 : 1000) ** exponent;\n\n\tif (!localeOptions) {\n\t\tnumber = number.toPrecision(3);\n\t}\n\n\tconst numberString = toLocaleString(Number(number), options.locale, localeOptions);\n\n\tconst unit = UNITS[exponent];\n\n\treturn prefix + numberString + separator + unit;\n}\n","import Model from 'flarum/common/Model';\nimport prettyBytes from 'pretty-bytes';\nexport default class Task extends Model {\n status() {\n return Model.attribute('status').call(this);\n }\n operation() {\n return Model.attribute('operation').call(this);\n }\n command() {\n return Model.attribute('command').call(this);\n }\n package() {\n return Model.attribute('package').call(this);\n }\n output() {\n return Model.attribute('output').call(this);\n }\n guessedCause() {\n return Model.attribute('guessedCause').call(this);\n }\n createdAt() {\n return Model.attribute('createdAt', Model.transformDate).call(this);\n }\n startedAt() {\n return Model.attribute('startedAt', Model.transformDate).call(this);\n }\n finishedAt() {\n return Model.attribute('finishedAt', Model.transformDate).call(this);\n }\n peakMemoryUsed() {\n return prettyBytes(Model.attribute('peakMemoryUsed').call(this) * 1024);\n }\n}\nflarum.reg.add('flarum-extension-manager', 'admin/models/Task', Task);","import Extend from 'flarum/common/extenders';\nimport app from 'flarum/admin/app';\nimport extractText from 'flarum/common/utils/extractText';\nimport SettingsPage from './components/SettingsPage';\nimport Task from './models/Task';\nimport ExternalExtension from './models/ExternalExtension';\nexport default [new Extend.Store() //\n.add('extension-manager-tasks', Task).add('external-extensions', ExternalExtension), new Extend.Admin().setting(() => ({\n setting: 'flarum-extension-manager.queue_jobs',\n label: app.translator.trans('flarum-extension-manager.admin.settings.queue_jobs'),\n help: m.trust(extractText(app.translator.trans('flarum-extension-manager.admin.settings.queue_jobs_help', {\n basic_impl_link: 'https://discuss.flarum.org/d/28151-database-queue-the-simplest-queue-even-for-shared-hosting',\n adv_impl_link: 'https://discuss.flarum.org/d/21873-redis-sessions-cache-queues',\n php_version: `<strong>${app.data.phpVersion}</strong>`,\n folder_perms_link: 'https://docs.flarum.org/install#folder-ownership'\n }))),\n type: 'boolean',\n disabled: app.data['flarum-extension-manager.using_sync_queue']\n})).setting(() => ({\n setting: 'flarum-extension-manager.task_retention_days',\n label: app.translator.trans('flarum-extension-manager.admin.settings.task_retention_days'),\n help: app.translator.trans('flarum-extension-manager.admin.settings.task_retention_days_help'),\n type: 'number'\n})).page(SettingsPage).generalIndexItems('settings', () => [{\n id: 'minimum-stability',\n label: app.translator.trans('flarum-extension-manager.admin.composer.minimum_stability.label', {}, true),\n help: app.translator.trans('flarum-extension-manager.admin.composer.minimum_stability.help', {}, true)\n}, {\n id: 'repositories',\n label: app.translator.trans('flarum-extension-manager.admin.composer.repositories.label', {}, true),\n help: app.translator.trans('flarum-extension-manager.admin.composer.repositories.help', {}, true)\n}, {\n id: 'composer-auth',\n label: app.translator.trans('flarum-extension-manager.admin.auth_config.title', {}, true)\n}, {\n id: 'updates',\n label: app.translator.trans('flarum-extension-manager.admin.updater.updater_title', {}, true),\n help: app.translator.trans('flarum-extension-manager.admin.updater.updater_help', {}, true)\n}])];","import { extend } from 'flarum/common/extend';\nimport app from 'flarum/admin/app';\nimport ExtensionPage from 'flarum/admin/components/ExtensionPage';\nimport Button from 'flarum/common/components/Button';\nimport LoadingModal from 'flarum/admin/components/LoadingModal';\nimport isExtensionEnabled from 'flarum/admin/utils/isExtensionEnabled';\nimport jumpToQueue from './utils/jumpToQueue';\nimport ExtensionManagerState from './states/ExtensionManagerState';\nexport { default as extend } from './extend';\napp.initializers.add('flarum-extension-manager', app => {\n app.extensionManager = new ExtensionManagerState();\n if (app.data['flarum-extension-manager.using_sync_queue']) {\n app.data.settings['flarum-extension-manager.queue_jobs'] = '0';\n }\n extend(ExtensionPage.prototype, 'topItems', function (items) {\n if (this.extension.id === 'flarum-extension-manager' || isExtensionEnabled(this.extension.id)) {\n return;\n }\n items.add('remove', m(Button, {\n className: \"Button Button--danger\",\n icon: \"fas fa-times\",\n onclick: () => {\n app.modal.show(LoadingModal);\n app.request({\n url: `${app.forum.attribute('apiUrl')}/extension-manager/extensions/${this.extension.id}`,\n method: 'DELETE'\n }).then(response => {\n if (response?.processing) {\n jumpToQueue();\n } else {\n app.alerts.show({\n type: 'success'\n }, app.translator.trans('flarum-extension-manager.admin.extensions.successful_remove'));\n window.location = app.forum.attribute('adminUrl');\n }\n }).finally(() => {\n app.modal.close();\n });\n }\n }, app.translator.trans('flarum-extension-manager.admin.extensions.remove')));\n });\n});"],"names":["module","exports","t","s","n","i","e","r","o","u","d","a","h","years","months","days","hours","minutes","seconds","milliseconds","weeks","c","g","f","$l","m","p","l","$","Math","ceil","floor","y","abs","v","negative","format","this","$d","$ms","parseFromMilliseconds","Object","keys","forEach","calMilliseconds","match","slice","map","Number","prototype","reduce","toISOString","round","toJSON","Y","YY","YYYY","M","MM","D","DD","H","HH","mm","ss","SSS","replace","String","as","get","add","subtract","locale","clone","humanize","fromNow","valueOf","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asYears","$utils","duration","isDuration","bind","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","call","getter","__esModule","definition","key","defineProperty","enumerable","obj","prop","hasOwnProperty","Symbol","toStringTag","value","flarum","reg","jumpToQueue","close","route","set","id","queue","load","setTimeout","document","getElementById","scrollIntoView","block","_typeof","iterator","constructor","_defineProperty","toPrimitive","TypeError","toPropertyKey","configurable","writable","window","QueueState","params","actionTaken","loading","page","limit","offset","find","then","data","tasks","total","payload","meta","redraw","pendingTask","task","status","pollQueue","control","setLoading","location","reload","isLoading","getItems","getTotalItems","getTotalPages","pageNumber","getPerPage","hasPrev","hasNext","prev","next","goto","polling","clearTimeout","hasPending","error","response","errors","includes","code","clear","guessed_cause","show","type","trans","ControlSectionState","lastUpdateRun","JSON","parse","settings","limitedPackages","major","minor","global","lastUpdateCheck","extensionUpdates","formatExtensionUpdates","coreUpdate","formatCoreUpdate","name","hasOperationRunning","requirePackage","method","url","attribute","body","processing","extensionId","extension","href","catch","errorHandler","finally","checkForUpdates","updateCoreMinor","confirm","updateExtension","updateMode","extra","title","updateGlobally","packageUpdates","updates","installed","filter","composerPackage","extensions","safeToUpdate","values","core","pop","package","version","icon","backgroundImage","resources","links","majorUpdate","_ref","dryRun","updateState","incompatibleExtensions","incompatible_extensions","ExtensionListState","super","sort","sortMap","label","ExtensionManagerState","Label","view","vnode","className","attrs","assign","children","TaskOutputModal","operation","content","guessedCause","command","output","humanDuration","start","end","dayjs","extend","durationTime","diff","QueueSection","oninit","onclick","disabled","queueTable","columns","items","operationIcon","style","running","failure","pending","success","size","display","startedAt","finishedAt","text","peakMemoryUsed","length","toArray","item","index","currentPage","perPage","onChange","update_check","update_major","update_minor","update_global","extension_install","extension_remove","extension_update","why_not","Installer","arguments","packageName","htmlFor","link","semantic_link","placeholder","bidi","onsubmit","WhyNotModal","oncreate","requestWhyNot","whyNot","reason","VersionStability","isProductionReady","Stable","RC","stability","split","toLowerCase","Alpha","Beta","Dev","ExternalExtension","isSupported","currentVersion","latestCompatibleVersion","latestFlarumVersionSupported","highestVersion","toLocalExtension","description","backgroundColor","color","discuss","discussUri","website","httpUri","ExtensionCard","getExtension","isCore","isDanger","badges","actionItems","metaItems","iconUrl","isPremium","latestVersion","count","downloads","formattedCount","target","external","onClickUpdate","whyNotWarning","buttonClassName","soft","hard","charAt","substring","MajorUpdater","alt","src","update","dismissible","controls","Updater","lastUpdateCheckView","controlItems","availableUpdatesView","checkedAt","state","hasMinorCoreUpdate","ControlSection","ConfigureJson","submit","submitButton","isDirty","customSettingComponents","customFieldComponents","setting","readOnly","configuration","initialSettings","Array","isArray","stringify","RepositoryModal","repository","context","types","composer","vcs","path","options","onchange","hide","ConfigureComposer","buildSettingComponent","help","stable","beta","alpha","dev","newName","repositories","push","AuthMethodModal","host","token","bearer","oninput","rows","startsWith","ConfigureAuth","authSettings","hasAuthSettings","every","hosts","newType","oldHost","DiscoverSection","throttle","getParams","refreshParams","q","warningsDismissed","localStorage","getItem","setWarningDismissed","ondismiss","warningItems","tabItems","toolbarPrimaryItems","toolbarSecondaryItems","extensionList","footerItems","tabFilters","active","theme","tabs","tab","changeFilter","debugEnabled","search","applySearch","inputAttrs","clearable","prefixIcon","sortOptions","acc","sortId","accessibleToggleLabel","changeSort","activeType","is","party","hasItems","getPages","totalItems","pageSize","getLocation","dismissed","setItem","SettingsPage","getSettings","sections","setPriority","remove","onsaved","BYTE_UNITS","BIBYTE_UNITS","BIT_UNITS","BIBIT_UNITS","toLocaleString","number","result","Task","createdAt","isFinite","UNITS","bits","binary","space","separator","signed","isNegative","prefix","localeOptions","minimumFractionDigits","maximumFractionDigits","exponent","min","log","log10","toPrecision","prettyBytes","trust","basic_impl_link","adv_impl_link","php_version","phpVersion","folder_perms_link","generalIndexItems","app","extensionManager","modal","request","forum","alerts","translator"],"sourceRoot":""}