From 2796b6fe102aa76dd8e3e5bb50bae6fde77179e1 Mon Sep 17 00:00:00 2001 From: BHZoon Date: Wed, 3 Dec 2025 09:16:57 +0100 Subject: [PATCH 01/12] feat: implement permission change for selecting own post --- extend.php | 6 +- js/dist/admin.js | 2 +- js/dist/admin.js.map | 2 +- js/dist/forum.js | 2 +- js/dist/forum.js.map | 2 +- js/package-lock.json | 5554 +++++++++++++++++ js/package.json | 9 +- js/src/@types/shims.d.ts | 7 +- .../components/BestAnswerSettingsPage.tsx | 6 - js/src/admin/index.ts | 9 +- js/src/forum/addBestAnswerAction.tsx | 11 +- js/src/forum/extend.ts | 6 +- js/yarn.lock | 814 ++- resources/locale/en.yml | 3 +- src/Api/ForumAttributes.php | 1 - ...ssionAttributes.php => PostAttributes.php} | 10 +- src/Repository/BestAnswerRepository.php | 2 +- tests/integration/api/SetBestAnswerTest.php | 110 +- tests/integration/api/UnsetBestAnswerTest.php | 27 +- 19 files changed, 6112 insertions(+), 471 deletions(-) create mode 100644 js/package-lock.json rename src/Api/{DiscussionAttributes.php => PostAttributes.php} (69%) diff --git a/extend.php b/extend.php index 19e2451..247ec46 100644 --- a/extend.php +++ b/extend.php @@ -13,6 +13,7 @@ use Flarum\Api\Controller; use Flarum\Api\Serializer; +use Flarum\Api\Serializer\PostSerializer; use Flarum\Discussion\Discussion; use Flarum\Discussion\Event\Saving as DiscussionSaving; use Flarum\Discussion\Filter\DiscussionFilterer; @@ -24,6 +25,7 @@ use Flarum\Tags\Api\Serializer\TagSerializer; use Flarum\Tags\Tag; use Flarum\User\User; +use FoF\BestAnswer\Api\PostAttributes; return [ (new Extend\Frontend('forum')) @@ -68,8 +70,8 @@ ->type(Notification\AwardedBestAnswerBlueprint::class, Serializer\BasicDiscussionSerializer::class, ['alert']) ->type(Notification\BestAnswerSetInDiscussionBlueprint::class, Serializer\BasicDiscussionSerializer::class, []), - (new Extend\ApiSerializer(Serializer\DiscussionSerializer::class)) - ->attributes(Api\DiscussionAttributes::class), + (new Extend\ApiSerializer(PostSerializer::class)) + ->attributes(PostAttributes::class), (new Extend\ApiSerializer(Serializer\BasicDiscussionSerializer::class)) ->hasOne('bestAnswerPost', Serializer\BasicPostSerializer::class) diff --git a/js/dist/admin.js b/js/dist/admin.js index 9e01a79..ae0fca5 100644 --- a/js/dist/admin.js +++ b/js/dist/admin.js @@ -1,2 +1,2 @@ -(()=>{var t={493:t=>{"use strict";t.exports=flarum.extensions["fof-user-directory"]}},e={};function s(n){var a=e[n];if(void 0!==a)return a.exports;var r=e[n]={exports:{}};return t[n](r,r.exports,s),r.exports}s.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return s.d(e,{a:e}),e},s.d=(t,e)=>{for(var n in e)s.o(e,n)&&!s.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},s.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),s.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};(()=>{"use strict";s.r(n),s.d(n,{extend:()=>c});const t=flarum.core.compat["admin/app"];var e=s.n(t);function a(){return a=Object.assign?Object.assign.bind():function(t){for(var e=1;e{var t={493:t=>{"use strict";t.exports=flarum.extensions["fof-user-directory"]}},e={};function s(n){var a=e[n];if(void 0!==a)return a.exports;var r=e[n]={exports:{}};return t[n](r,r.exports,s),r.exports}s.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return s.d(e,{a:e}),e},s.d=(t,e)=>{for(var n in e)s.o(e,n)&&!s.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},s.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),s.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};(()=>{"use strict";s.r(n),s.d(n,{extend:()=>c});const t=flarum.core.compat["admin/app"];var e=s.n(t);function a(){return a=Object.assign?Object.assign.bind():function(t){for(var e=1;e {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['admin/app'];","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/extend'];","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['admin/components/ExtensionPage'];","import app from 'flarum/admin/app';\nimport ExtensionPage from 'flarum/admin/components/ExtensionPage';\n\nexport default class BestAnswerSettingsPage extends ExtensionPage {\n content() {\n return (\n
\n
\n
\n

{app.translator.trans('fof-best-answer.admin.settings.label.tags')}

\n

{app.translator.trans('fof-best-answer.admin.settings.tags_info')}

\n
\n {this.buildSettingComponent({\n type: 'flarum-tags.select-tags',\n setting: 'fof-best-answer.enabled-tags',\n label: app.translator.trans('fof-best-answer.admin.settings.enabled_tags_label'),\n help: app.translator.trans('fof-best-answer.admin.settings.enabled_tags_help'),\n options: {\n requireParentTag: false,\n },\n })}\n {this.buildSettingComponent({\n type: 'flarum-tags.select-tags',\n setting: 'fof-best-answer.remind-tags',\n label: app.translator.trans('fof-best-answer.admin.settings.remind_tags_label'),\n help: app.translator.trans('fof-best-answer.admin.settings.remind_tags_help'),\n options: {\n requireParentTag: false,\n },\n })}\n
\n

{app.translator.trans('fof-best-answer.admin.settings.label.general')}

\n
\n {this.buildSettingComponent({\n type: 'boolean',\n setting: 'fof-best-answer.allow_select_own_post',\n label: app.translator.trans('fof-best-answer.admin.settings.allow_select_own_post'),\n help: app.translator.trans('fof-best-answer.admin.settings.allow_select_own_post_help'),\n })}\n {this.buildSettingComponent({\n type: 'boolean',\n setting: 'fof-best-answer.use_alternative_ui',\n label: app.translator.trans('fof-best-answer.admin.settings.use_alt_ui'),\n help: app.translator.trans('fof-best-answer.admin.settings.use_alt_ui_help'),\n })}\n {this.buildSettingComponent({\n type: 'boolean',\n setting: 'fof-best-answer.show_filter_dropdown',\n label: app.translator.trans('fof-best-answer.admin.settings.show_filter_label'),\n help: app.translator.trans('fof-best-answer.admin.settings.show_filter_help'),\n })}\n {this.buildSettingComponent({\n type: 'number',\n setting: 'fof-best-answer.show_max_lines',\n label: app.translator.trans('fof-best-answer.admin.settings.show_max_lines_label'),\n help: app.translator.trans('fof-best-answer.admin.settings.show_max_lines_help'),\n })}\n {this.buildSettingComponent({\n type: 'flarum-tags.select-tags',\n setting: 'fof-best-answer.select_best_answer_tags',\n label: app.translator.trans('fof-best-answer.admin.settings.select_best_answer_tags_label'),\n help: app.translator.trans('fof-best-answer.admin.settings.select_best_answer_tags_help'),\n options: {\n requireParentTag: true,\n limits: {\n max: {\n primary: 0,\n },\n },\n },\n })}\n {this.buildSettingComponent({\n setting: 'fof-best-answer.discussion_sidebar_jump_button',\n type: 'boolean',\n label: app.translator.trans('fof-best-answer.admin.settings.discussion_sidebar_jump_button'),\n help: app.translator.trans('fof-best-answer.admin.settings.discussion_sidebar_jump_button_help'),\n })}\n
\n

{app.translator.trans('fof-best-answer.admin.settings.label.search')}

\n
\n {this.buildSettingComponent({\n type: 'boolean',\n setting: 'fof-best-answer.search.solution_search',\n label: app.translator.trans('fof-best-answer.admin.settings.solution_search'),\n help: app.translator.trans('fof-best-answer.admin.settings.solution_search_help'),\n })}\n {this.buildSettingComponent({\n type: 'boolean',\n setting: 'fof-best-answer.search.remove_solutions_from_main_search',\n label: app.translator.trans('fof-best-answer.admin.settings.remove_solutions_from_main_search'),\n help: app.translator.trans('fof-best-answer.admin.settings.remove_solutions_from_main_search_help'),\n })}\n {this.buildSettingComponent({\n type: 'boolean',\n setting: 'fof-best-answer.search.display_tags',\n label: app.translator.trans('fof-best-answer.admin.settings.display_tags'),\n help: app.translator.trans('fof-best-answer.admin.settings.display_tags_help'),\n })}\n
\n

{app.translator.trans('fof-best-answer.admin.settings.label.reminders')}

\n

\n {app.translator.trans('fof-best-answer.admin.settings.label.reminders_notice')}{' '}\n \n {app.translator.trans('fof-best-answer.admin.settings.documentation')}\n \n

\n
\n {this.buildSettingComponent({\n type: 'number',\n setting: 'fof-best-answer.select_best_answer_reminder_days',\n label: app.translator.trans('fof-best-answer.admin.settings.select_best_answer_reminder_days'),\n placeholder: '0',\n min: 0,\n help: app.translator.trans('fof-best-answer.admin.settings.select_best_answer_reminder_days_help'),\n })}\n
\n

{app.translator.trans('fof-best-answer.admin.settings.label.advanced')}

\n
\n {this.buildSettingComponent({\n type: 'boolean',\n setting: 'fof-best-answer.schedule_on_one_server',\n label: app.translator.trans('fof-best-answer.admin.settings.schedule_on_one_server'),\n help: app.translator.trans('fof-best-answer.admin.settings.schedule_on_one_server_help'),\n })}\n {this.buildSettingComponent({\n type: 'boolean',\n setting: 'fof-best-answer.stop_overnight',\n label: app.translator.trans('fof-best-answer.admin.settings.schedule_stop_overnight'),\n help: app.translator.trans('fof-best-answer.admin.settings.schedule_stop_overnight_help'),\n })}\n {this.buildSettingComponent({\n type: 'boolean',\n setting: 'fof-best-answer.store_log_output',\n label: app.translator.trans('fof-best-answer.admin.settings.schedule_log_output'),\n })}\n
\n {this.submitButton()}\n
\n
\n
\n );\n }\n}\n","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/extenders'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['tags/common/models/Tag'];","import Extend from 'flarum/common/extenders';\nimport Tag from 'flarum/tags/common/models/Tag';\n\nexport default [\n new Extend.Model(Tag) //\n .attribute('isQnA')\n .attribute('reminders'),\n];\n","import commonExtend from '../common/extend';\n\nexport default [...commonExtend];\n","import app from 'flarum/admin/app';\nimport addBestAnswerCountSort from '../common/addBestAnswerCountSort';\nimport BestAnswerSettingsPage from './components/BestAnswerSettingsPage';\n\nexport { default as extend } from './extend';\n\napp.initializers.add(\n 'fof-best-answer',\n () => {\n app.extensionData\n .for('fof-best-answer')\n .registerPage(BestAnswerSettingsPage)\n .registerPermission(\n {\n icon: 'far fa-comment',\n label: app.translator.trans('fof-best-answer.admin.permissions.best_answer'),\n permission: 'discussion.selectBestAnswerOwnDiscussion',\n },\n 'reply'\n )\n .registerPermission(\n {\n icon: 'far fa-comment',\n label: app.translator.trans('fof-best-answer.admin.permissions.best_answer_not_own_discussion'),\n permission: 'discussion.selectBestAnswerNotOwnDiscussion',\n },\n 'reply'\n );\n\n addBestAnswerCountSort();\n },\n 5\n);\n","import { override } from 'flarum/common/extend';\n\nexport default () => {\n const FoFUserDirectory = require('@fof-user-directory');\n\n if (!FoFUserDirectory) return;\n\n override(FoFUserDirectory.SortMap.prototype, 'sortMap', (map) => ({\n ...map(),\n most_best_answers: '-bestAnswerCount',\n least_best_answers: 'bestAnswerCount',\n }));\n};\n"],"names":["module","exports","flarum","extensions","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","n","getter","__esModule","d","a","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","core","compat","_extends","assign","bind","e","arguments","length","t","apply","_setPrototypeOf","setPrototypeOf","__proto__","BestAnswerSettingsPage","_ExtensionPage","create","constructor","content","m","className","app","trans","this","buildSettingComponent","type","setting","label","help","options","requireParentTag","limits","max","primary","href","target","placeholder","min","submitButton","ExtensionPage","Extend","Tag","attribute","concat","commonExtend","add","FoFUserDirectory","registerPage","registerPermission","icon","permission","require","override","SortMap","map","most_best_answers","least_best_answers"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"admin.js","mappings":"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","sources":["webpack://@fof/best-answer/external assign \"flarum.extensions['fof-user-directory']\"","webpack://@fof/best-answer/webpack/bootstrap","webpack://@fof/best-answer/webpack/runtime/compat get default export","webpack://@fof/best-answer/webpack/runtime/define property getters","webpack://@fof/best-answer/webpack/runtime/hasOwnProperty shorthand","webpack://@fof/best-answer/webpack/runtime/make namespace object","webpack://@fof/best-answer/external root \"flarum.core.compat['admin/app']\"","webpack://@fof/best-answer/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://@fof/best-answer/external root \"flarum.core.compat['common/extend']\"","webpack://@fof/best-answer/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://@fof/best-answer/external root \"flarum.core.compat['admin/components/ExtensionPage']\"","webpack://@fof/best-answer/./src/admin/components/BestAnswerSettingsPage.tsx","webpack://@fof/best-answer/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://@fof/best-answer/external root \"flarum.core.compat['common/extenders']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['tags/common/models/Tag']\"","webpack://@fof/best-answer/./src/common/extend.ts","webpack://@fof/best-answer/./src/admin/extend.ts","webpack://@fof/best-answer/./src/admin/index.ts","webpack://@fof/best-answer/./src/common/addBestAnswerCountSort.ts"],"sourcesContent":["module.exports = flarum.extensions['fof-user-directory'];","// 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](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.core.compat['admin/app'];","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/extend'];","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['admin/components/ExtensionPage'];","import app from 'flarum/admin/app';\nimport ExtensionPage from 'flarum/admin/components/ExtensionPage';\n\nexport default class BestAnswerSettingsPage extends ExtensionPage {\n content() {\n return (\n
\n
\n
\n

{app.translator.trans('fof-best-answer.admin.settings.label.tags')}

\n

{app.translator.trans('fof-best-answer.admin.settings.tags_info')}

\n
\n {this.buildSettingComponent({\n type: 'flarum-tags.select-tags',\n setting: 'fof-best-answer.enabled-tags',\n label: app.translator.trans('fof-best-answer.admin.settings.enabled_tags_label'),\n help: app.translator.trans('fof-best-answer.admin.settings.enabled_tags_help'),\n options: {\n requireParentTag: false,\n },\n })}\n {this.buildSettingComponent({\n type: 'flarum-tags.select-tags',\n setting: 'fof-best-answer.remind-tags',\n label: app.translator.trans('fof-best-answer.admin.settings.remind_tags_label'),\n help: app.translator.trans('fof-best-answer.admin.settings.remind_tags_help'),\n options: {\n requireParentTag: false,\n },\n })}\n
\n

{app.translator.trans('fof-best-answer.admin.settings.label.general')}

\n
\n {this.buildSettingComponent({\n type: 'boolean',\n setting: 'fof-best-answer.use_alternative_ui',\n label: app.translator.trans('fof-best-answer.admin.settings.use_alt_ui'),\n help: app.translator.trans('fof-best-answer.admin.settings.use_alt_ui_help'),\n })}\n {this.buildSettingComponent({\n type: 'boolean',\n setting: 'fof-best-answer.show_filter_dropdown',\n label: app.translator.trans('fof-best-answer.admin.settings.show_filter_label'),\n help: app.translator.trans('fof-best-answer.admin.settings.show_filter_help'),\n })}\n {this.buildSettingComponent({\n type: 'number',\n setting: 'fof-best-answer.show_max_lines',\n label: app.translator.trans('fof-best-answer.admin.settings.show_max_lines_label'),\n help: app.translator.trans('fof-best-answer.admin.settings.show_max_lines_help'),\n })}\n {this.buildSettingComponent({\n type: 'flarum-tags.select-tags',\n setting: 'fof-best-answer.select_best_answer_tags',\n label: app.translator.trans('fof-best-answer.admin.settings.select_best_answer_tags_label'),\n help: app.translator.trans('fof-best-answer.admin.settings.select_best_answer_tags_help'),\n options: {\n requireParentTag: true,\n limits: {\n max: {\n primary: 0,\n },\n },\n },\n })}\n {this.buildSettingComponent({\n setting: 'fof-best-answer.discussion_sidebar_jump_button',\n type: 'boolean',\n label: app.translator.trans('fof-best-answer.admin.settings.discussion_sidebar_jump_button'),\n help: app.translator.trans('fof-best-answer.admin.settings.discussion_sidebar_jump_button_help'),\n })}\n
\n

{app.translator.trans('fof-best-answer.admin.settings.label.search')}

\n
\n {this.buildSettingComponent({\n type: 'boolean',\n setting: 'fof-best-answer.search.solution_search',\n label: app.translator.trans('fof-best-answer.admin.settings.solution_search'),\n help: app.translator.trans('fof-best-answer.admin.settings.solution_search_help'),\n })}\n {this.buildSettingComponent({\n type: 'boolean',\n setting: 'fof-best-answer.search.remove_solutions_from_main_search',\n label: app.translator.trans('fof-best-answer.admin.settings.remove_solutions_from_main_search'),\n help: app.translator.trans('fof-best-answer.admin.settings.remove_solutions_from_main_search_help'),\n })}\n {this.buildSettingComponent({\n type: 'boolean',\n setting: 'fof-best-answer.search.display_tags',\n label: app.translator.trans('fof-best-answer.admin.settings.display_tags'),\n help: app.translator.trans('fof-best-answer.admin.settings.display_tags_help'),\n })}\n
\n

{app.translator.trans('fof-best-answer.admin.settings.label.reminders')}

\n

\n {app.translator.trans('fof-best-answer.admin.settings.label.reminders_notice')}{' '}\n \n {app.translator.trans('fof-best-answer.admin.settings.documentation')}\n \n

\n
\n {this.buildSettingComponent({\n type: 'number',\n setting: 'fof-best-answer.select_best_answer_reminder_days',\n label: app.translator.trans('fof-best-answer.admin.settings.select_best_answer_reminder_days'),\n placeholder: '0',\n min: 0,\n help: app.translator.trans('fof-best-answer.admin.settings.select_best_answer_reminder_days_help'),\n })}\n
\n

{app.translator.trans('fof-best-answer.admin.settings.label.advanced')}

\n
\n {this.buildSettingComponent({\n type: 'boolean',\n setting: 'fof-best-answer.schedule_on_one_server',\n label: app.translator.trans('fof-best-answer.admin.settings.schedule_on_one_server'),\n help: app.translator.trans('fof-best-answer.admin.settings.schedule_on_one_server_help'),\n })}\n {this.buildSettingComponent({\n type: 'boolean',\n setting: 'fof-best-answer.stop_overnight',\n label: app.translator.trans('fof-best-answer.admin.settings.schedule_stop_overnight'),\n help: app.translator.trans('fof-best-answer.admin.settings.schedule_stop_overnight_help'),\n })}\n {this.buildSettingComponent({\n type: 'boolean',\n setting: 'fof-best-answer.store_log_output',\n label: app.translator.trans('fof-best-answer.admin.settings.schedule_log_output'),\n })}\n
\n {this.submitButton()}\n
\n
\n
\n );\n }\n}\n","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/extenders'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['tags/common/models/Tag'];","import Extend from 'flarum/common/extenders';\nimport Tag from 'flarum/tags/common/models/Tag';\n\nexport default [\n new Extend.Model(Tag) //\n .attribute('isQnA')\n .attribute('reminders'),\n];\n","import commonExtend from '../common/extend';\n\nexport default [...commonExtend];\n","import app from 'flarum/admin/app';\nimport addBestAnswerCountSort from '../common/addBestAnswerCountSort';\nimport BestAnswerSettingsPage from './components/BestAnswerSettingsPage';\n\nexport { default as extend } from './extend';\n\napp.initializers.add(\n 'fof-best-answer',\n () => {\n app.extensionData\n .for('fof-best-answer')\n .registerPage(BestAnswerSettingsPage)\n .registerPermission(\n {\n icon: 'far fa-comment',\n label: app.translator.trans('fof-best-answer.admin.permissions.best_answer'),\n permission: 'discussion.selectBestAnswerOwnDiscussion',\n },\n 'reply'\n )\n .registerPermission(\n {\n icon: 'far fa-comment',\n label: app.translator.trans('fof-best-answer.admin.permissions.best_answer_not_own_discussion'),\n permission: 'discussion.selectBestAnswerNotOwnDiscussion',\n },\n 'reply'\n ).registerPermission(\n {\n icon: 'far fa-comment',\n label: app.translator.trans('fof-best-answer.admin.permissions.allow_select_own_post'),\n permission: 'discussion.selectBestAnswerOwnPost',\n },\n 'reply'\n );\n\n addBestAnswerCountSort();\n },\n 5\n);\n","import { override } from 'flarum/common/extend';\n\nexport default () => {\n const FoFUserDirectory = require('@fof-user-directory');\n\n if (!FoFUserDirectory) return;\n\n override(FoFUserDirectory.SortMap.prototype, 'sortMap', (map) => ({\n ...map(),\n most_best_answers: '-bestAnswerCount',\n least_best_answers: 'bestAnswerCount',\n }));\n};\n"],"names":["module","exports","flarum","extensions","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","n","getter","__esModule","d","a","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","core","compat","_extends","assign","bind","e","arguments","length","t","apply","_setPrototypeOf","setPrototypeOf","__proto__","BestAnswerSettingsPage","_ExtensionPage","create","constructor","content","m","className","app","trans","this","buildSettingComponent","type","setting","label","help","options","requireParentTag","limits","max","primary","href","target","placeholder","min","submitButton","ExtensionPage","Extend","Tag","attribute","concat","commonExtend","add","FoFUserDirectory","registerPage","registerPermission","icon","permission","require","override","SortMap","map","most_best_answers","least_best_answers"],"sourceRoot":""} \ No newline at end of file diff --git a/js/dist/forum.js b/js/dist/forum.js index e615ea0..86eccb1 100644 --- a/js/dist/forum.js +++ b/js/dist/forum.js @@ -1,3 +1,3 @@ /*! For license information please see forum.js.LICENSE.txt */ -(()=>{var t={493:t=>{"use strict";t.exports=flarum.extensions["fof-user-directory"]},752:(t,e,r)=>{var n=r(327).default;function s(){"use strict";t.exports=s=function(){return r},t.exports.__esModule=!0,t.exports.default=t.exports;var e,r={},o=Object.prototype,i=o.hasOwnProperty,a=Object.defineProperty||function(t,e,r){t[e]=r.value},u="function"==typeof Symbol?Symbol:{},c=u.iterator||"@@iterator",l=u.asyncIterator||"@@asyncIterator",f=u.toStringTag||"@@toStringTag";function m(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{m({},"")}catch(e){m=function(t,e,r){return t[e]=r}}function h(t,e,r,n){var s=e&&e.prototype instanceof g?e:g,o=Object.create(s.prototype),i=new T(n||[]);return a(o,"_invoke",{value:j(t,r,i)}),o}function d(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}r.wrap=h;var p="suspendedStart",v="suspendedYield",w="executing",b="completed",y={};function g(){}function A(){}function x(){}var _={};m(_,c,(function(){return this}));var P=Object.getPrototypeOf,S=P&&P(P(C([])));S&&S!==o&&i.call(S,c)&&(_=S);var B=x.prototype=g.prototype=Object.create(_);function N(t){["next","throw","return"].forEach((function(e){m(t,e,(function(t){return this._invoke(e,t)}))}))}function L(t,e){function r(s,o,a,u){var c=d(t[s],t,o);if("throw"!==c.type){var l=c.arg,f=l.value;return f&&"object"==n(f)&&i.call(f,"__await")?e.resolve(f.__await).then((function(t){r("next",t,a,u)}),(function(t){r("throw",t,a,u)})):e.resolve(f).then((function(t){l.value=t,a(l)}),(function(t){return r("throw",t,a,u)}))}u(c.arg)}var s;a(this,"_invoke",{value:function(t,n){function o(){return new e((function(e,s){r(t,n,e,s)}))}return s=s?s.then(o,o):o()}})}function j(t,r,n){var s=p;return function(o,i){if(s===w)throw Error("Generator is already running");if(s===b){if("throw"===o)throw i;return{value:e,done:!0}}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var u=k(a,n);if(u){if(u===y)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(s===p)throw s=b,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);s=w;var c=d(t,r,n);if("normal"===c.type){if(s=n.done?b:v,c.arg===y)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(s=b,n.method="throw",n.arg=c.arg)}}}function k(t,r){var n=r.method,s=t.iterator[n];if(s===e)return r.delegate=null,"throw"===n&&t.iterator.return&&(r.method="return",r.arg=e,k(t,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),y;var o=d(s,t.iterator,r.arg);if("throw"===o.type)return r.method="throw",r.arg=o.arg,r.delegate=null,y;var i=o.arg;return i?i.done?(r[t.resultName]=i.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,y):i:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,y)}function O(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function I(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function T(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(O,this),this.reset(!0)}function C(t){if(t||""===t){var r=t[c];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var s=-1,o=function r(){for(;++s=0;--s){var o=this.tryEntries[s],a=o.completion;if("root"===o.tryLoc)return n("end");if(o.tryLoc<=this.prev){var u=i.call(o,"catchLoc"),c=i.call(o,"finallyLoc");if(u&&c){if(this.prev=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&i.call(n,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),I(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var s=n.arg;I(r)}return s}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:C(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),y}},r}t.exports=s,t.exports.__esModule=!0,t.exports.default=t.exports},327:t=>{function e(r){return t.exports=e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t.exports.__esModule=!0,t.exports.default=t.exports,e(r)}t.exports=e,t.exports.__esModule=!0,t.exports.default=t.exports},943:(t,e,r)=>{var n=r(752)();t.exports=n;try{regeneratorRuntime=n}catch(t){"object"==typeof globalThis?globalThis.regeneratorRuntime=n:Function("r","regeneratorRuntime = r")(n)}}},e={};function r(n){var s=e[n];if(void 0!==s)return s.exports;var o=e[n]={exports:{}};return t[n](o,o.exports,r),o.exports}r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};(()=>{"use strict";r.r(n),r.d(n,{components:()=>xt,extend:()=>It});const t=flarum.core.compat["forum/app"];var e=r.n(t);function s(t,e){return s=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},s(t,e)}function o(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,s(t,e)}const i=flarum.core.compat["forum/components/Notification"];var a=r.n(i),u=function(t){function r(){return t.apply(this,arguments)||this}o(r,t);var n=r.prototype;return n.icon=function(){return"fas fa-comment-dots"},n.href=function(){var t=this.attrs.notification.subject();return e().route.discussion(t)},n.content=function(){return e().translator.trans("fof-best-answer.forum.notification.content")},n.excerpt=function(){return null},r}(a());const c=flarum.core.compat["common/extend"],l=flarum.core.compat["common/components/Button"];var f=r.n(l);const h=flarum.core.compat["forum/utils/PostControls"];var d=r.n(h);const p=flarum.core.compat["forum/components/DiscussionPage"];var v=r.n(p);const w=flarum.core.compat["forum/components/CommentPost"];var b=r.n(w);const y=flarum.core.compat["common/utils/extractText"];var g=r.n(y);const A=flarum.core.compat["forum/components/Post"];var x=r.n(A);const _=flarum.core.compat["common/Component"];var P=r.n(_);const S=flarum.core.compat["common/helpers/icon"];var B=r.n(S);const N=flarum.core.compat["common/helpers/humanTime"];var L=r.n(N);const j=flarum.core.compat["common/components/Link"];var k=r.n(j);const O=flarum.core.compat["common/utils/ItemList"];var I=r.n(O),T=function(t){function r(){for(var e,r=arguments.length,n=new Array(r),s=0;s0&&"Post-body--truncate"),style:{"--max-lines":r}},m.trust(this.postContent())))},n.postContent=function(){return this.post.contentHtml()},n.headerItems=function(){var t=new(I());return t.add("user",this.userItem()),t.add("meta",this.metaItem()),t.add("bestAnswer",m(T,{post:this.post,discussion:this.discussion}),-100),t},n.userItem=function(){return m("li",{className:"item-user"},m("div",{className:"PostUser"},this.user&&q()(this.user),m("h3",null,this.user?m(k(),{href:e().route.user(this.user)},D()(this.user)):D()(this.user))))},n.metaItem=function(){var t=this.post;return m("li",{className:"item-meta"},m("span",{className:"PostMeta-time"},L()(t.createdAt())))},r}(P());const F=flarum.core.compat["common/models/Discussion"];var G=r.n(F);const Q=flarum.core.compat["common/components/Badge"];var H=function(t){function r(){return t.apply(this,arguments)||this}return o(r,t),r.initAttrs=function(t){t.type="bestAnswer",t.icon="fas fa-check",t.label=g()(e().translator.trans("fof-best-answer.forum.answered_badge"))},r}(r.n(Q)()),Y=function(t){function r(){return t.apply(this,arguments)||this}o(r,t);var n=r.prototype;return n.icon=function(){return"fas fa-check"},n.href=function(){var t=this.attrs.notification.subject();return e().route.discussion(t)},n.content=function(){var t=this.attrs.notification.fromUser();return e().translator.trans("fof-best-answer.forum.notification.awarded",{user:t})},n.excerpt=function(){return null},r}(a()),z=function(t){function r(){return t.apply(this,arguments)||this}o(r,t);var n=r.prototype;return n.icon=function(){return"fas fa-check"},n.href=function(){var t=this.attrs.notification.subject();return e().route.discussion(t)},n.content=function(){var t=this.attrs.notification.fromUser();return e().translator.trans("fof-best-answer.forum.notification.best_answer_in_discussion",{user:t})},n.excerpt=function(){return null},r}(a());const J=flarum.core.compat["forum/components/NotificationGrid"];var K=r.n(J);const V=flarum.core.compat["forum/components/UserCard"];var W=r.n(V);function X(){return X=Object.assign?Object.assign.bind():function(t){for(var e=1;e{var t={493:t=>{"use strict";t.exports=flarum.extensions["fof-user-directory"]},24:(t,e,r)=>{var n=r(735).default;function s(){"use strict";t.exports=s=function(){return r},t.exports.__esModule=!0,t.exports.default=t.exports;var e,r={},o=Object.prototype,i=o.hasOwnProperty,a=Object.defineProperty||function(t,e,r){t[e]=r.value},u="function"==typeof Symbol?Symbol:{},c=u.iterator||"@@iterator",l=u.asyncIterator||"@@asyncIterator",f=u.toStringTag||"@@toStringTag";function m(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{m({},"")}catch(e){m=function(t,e,r){return t[e]=r}}function h(t,e,r,n){var s=e&&e.prototype instanceof g?e:g,o=Object.create(s.prototype),i=new T(n||[]);return a(o,"_invoke",{value:j(t,r,i)}),o}function d(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}r.wrap=h;var p="suspendedStart",v="suspendedYield",w="executing",b="completed",y={};function g(){}function A(){}function x(){}var _={};m(_,c,(function(){return this}));var P=Object.getPrototypeOf,S=P&&P(P(C([])));S&&S!==o&&i.call(S,c)&&(_=S);var B=x.prototype=g.prototype=Object.create(_);function N(t){["next","throw","return"].forEach((function(e){m(t,e,(function(t){return this._invoke(e,t)}))}))}function L(t,e){function r(s,o,a,u){var c=d(t[s],t,o);if("throw"!==c.type){var l=c.arg,f=l.value;return f&&"object"==n(f)&&i.call(f,"__await")?e.resolve(f.__await).then((function(t){r("next",t,a,u)}),(function(t){r("throw",t,a,u)})):e.resolve(f).then((function(t){l.value=t,a(l)}),(function(t){return r("throw",t,a,u)}))}u(c.arg)}var s;a(this,"_invoke",{value:function(t,n){function o(){return new e((function(e,s){r(t,n,e,s)}))}return s=s?s.then(o,o):o()}})}function j(t,r,n){var s=p;return function(o,i){if(s===w)throw Error("Generator is already running");if(s===b){if("throw"===o)throw i;return{value:e,done:!0}}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var u=k(a,n);if(u){if(u===y)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(s===p)throw s=b,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);s=w;var c=d(t,r,n);if("normal"===c.type){if(s=n.done?b:v,c.arg===y)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(s=b,n.method="throw",n.arg=c.arg)}}}function k(t,r){var n=r.method,s=t.iterator[n];if(s===e)return r.delegate=null,"throw"===n&&t.iterator.return&&(r.method="return",r.arg=e,k(t,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),y;var o=d(s,t.iterator,r.arg);if("throw"===o.type)return r.method="throw",r.arg=o.arg,r.delegate=null,y;var i=o.arg;return i?i.done?(r[t.resultName]=i.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,y):i:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,y)}function O(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function I(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function T(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(O,this),this.reset(!0)}function C(t){if(t||""===t){var r=t[c];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var s=-1,o=function r(){for(;++s=0;--s){var o=this.tryEntries[s],a=o.completion;if("root"===o.tryLoc)return n("end");if(o.tryLoc<=this.prev){var u=i.call(o,"catchLoc"),c=i.call(o,"finallyLoc");if(u&&c){if(this.prev=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&i.call(n,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),I(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var s=n.arg;I(r)}return s}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:C(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),y}},r}t.exports=s,t.exports.__esModule=!0,t.exports.default=t.exports},735:t=>{function e(r){return t.exports=e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t.exports.__esModule=!0,t.exports.default=t.exports,e(r)}t.exports=e,t.exports.__esModule=!0,t.exports.default=t.exports},183:(t,e,r)=>{var n=r(24)();t.exports=n;try{regeneratorRuntime=n}catch(t){"object"==typeof globalThis?globalThis.regeneratorRuntime=n:Function("r","regeneratorRuntime = r")(n)}}},e={};function r(n){var s=e[n];if(void 0!==s)return s.exports;var o=e[n]={exports:{}};return t[n](o,o.exports,r),o.exports}r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};(()=>{"use strict";r.r(n),r.d(n,{components:()=>xt,extend:()=>Ct});const t=flarum.core.compat["forum/app"];var e=r.n(t);function s(t,e){return s=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},s(t,e)}function o(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,s(t,e)}const i=flarum.core.compat["forum/components/Notification"];var a=r.n(i),u=function(t){function r(){return t.apply(this,arguments)||this}o(r,t);var n=r.prototype;return n.icon=function(){return"fas fa-comment-dots"},n.href=function(){var t=this.attrs.notification.subject();return e().route.discussion(t)},n.content=function(){return e().translator.trans("fof-best-answer.forum.notification.content")},n.excerpt=function(){return null},r}(a());const c=flarum.core.compat["common/extend"],l=flarum.core.compat["common/components/Button"];var f=r.n(l);const h=flarum.core.compat["forum/utils/PostControls"];var d=r.n(h);const p=flarum.core.compat["forum/components/DiscussionPage"];var v=r.n(p);const w=flarum.core.compat["forum/components/CommentPost"];var b=r.n(w);const y=flarum.core.compat["common/utils/extractText"];var g=r.n(y);const A=flarum.core.compat["forum/components/Post"];var x=r.n(A);const _=flarum.core.compat["common/Component"];var P=r.n(_);const S=flarum.core.compat["common/helpers/icon"];var B=r.n(S);const N=flarum.core.compat["common/helpers/humanTime"];var L=r.n(N);const j=flarum.core.compat["common/components/Link"];var k=r.n(j);const O=flarum.core.compat["common/utils/ItemList"];var I=r.n(O),T=function(t){function r(){for(var e,r=arguments.length,n=new Array(r),s=0;s0&&"Post-body--truncate"),style:{"--max-lines":r}},m.trust(this.postContent())))},n.postContent=function(){return this.post.contentHtml()},n.headerItems=function(){var t=new(I());return t.add("user",this.userItem()),t.add("meta",this.metaItem()),t.add("bestAnswer",m(T,{post:this.post,discussion:this.discussion}),-100),t},n.userItem=function(){return m("li",{className:"item-user"},m("div",{className:"PostUser"},this.user&&q()(this.user),m("h3",null,this.user?m(k(),{href:e().route.user(this.user)},D()(this.user)):D()(this.user))))},n.metaItem=function(){var t=this.post;return m("li",{className:"item-meta"},m("span",{className:"PostMeta-time"},L()(t.createdAt())))},r}(P());const F=flarum.core.compat["common/models/Discussion"];var G=r.n(F);const Q=flarum.core.compat["common/components/Badge"];var H=function(t){function r(){return t.apply(this,arguments)||this}return o(r,t),r.initAttrs=function(t){t.type="bestAnswer",t.icon="fas fa-check",t.label=g()(e().translator.trans("fof-best-answer.forum.answered_badge"))},r}(r.n(Q)()),Y=function(t){function r(){return t.apply(this,arguments)||this}o(r,t);var n=r.prototype;return n.icon=function(){return"fas fa-check"},n.href=function(){var t=this.attrs.notification.subject();return e().route.discussion(t)},n.content=function(){var t=this.attrs.notification.fromUser();return e().translator.trans("fof-best-answer.forum.notification.awarded",{user:t})},n.excerpt=function(){return null},r}(a()),z=function(t){function r(){return t.apply(this,arguments)||this}o(r,t);var n=r.prototype;return n.icon=function(){return"fas fa-check"},n.href=function(){var t=this.attrs.notification.subject();return e().route.discussion(t)},n.content=function(){var t=this.attrs.notification.fromUser();return e().translator.trans("fof-best-answer.forum.notification.best_answer_in_discussion",{user:t})},n.excerpt=function(){return null},r}(a());const J=flarum.core.compat["forum/components/NotificationGrid"];var K=r.n(J);const V=flarum.core.compat["forum/components/UserCard"];var W=r.n(V);function X(){return X=Object.assign?Object.assign.bind():function(t){for(var e=1;e= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if (\"root\" === i.tryLoc) return handle(\"end\");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, \"catchLoc\"),\n u = n.call(i, \"finallyLoc\");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw Error(\"try statement without catch or finally\");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if (\"throw\" === t.type) throw t.arg;\n return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n \"catch\": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if (\"throw\" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, \"next\" === this.method && (this.arg = t), y;\n }\n }, e;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return module.exports = _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 }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","// 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](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.core.compat['forum/app'];","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/Notification'];","import type Discussion from 'flarum/common/models/Discussion';\nimport app from 'flarum/forum/app';\nimport Notification from 'flarum/forum/components/Notification';\n\nexport default class SelectBestAnswerNotification extends Notification {\n icon() {\n return 'fas fa-comment-dots';\n }\n\n href() {\n const notification = this.attrs.notification;\n const discussion = notification.subject() as Discussion;\n\n return app.route.discussion(discussion);\n }\n\n content() {\n return app.translator.trans('fof-best-answer.forum.notification.content');\n }\n\n excerpt() {\n return null;\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/extend'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Button'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/utils/PostControls'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/DiscussionPage'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/CommentPost'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/extractText'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/Post'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/Component'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/icon'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/humanTime'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Link'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/ItemList'];","import app from 'flarum/forum/app';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport icon from 'flarum/common/helpers/icon';\nimport humanTime from 'flarum/common/helpers/humanTime';\nimport Link from 'flarum/common/components/Link';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport Discussion from 'flarum/common/models/Discussion';\nimport Mithril from 'mithril';\nimport Post from 'flarum/common/models/Post';\n\nexport interface ISelectBestAnswerItemAttrs extends ComponentAttrs {\n post: Post;\n discussion: Discussion;\n}\n\nexport default class SelectBestAnswerItem extends Component {\n post!: Post;\n discussion!: Discussion;\n\n oninit(vnode: Mithril.Vnode) {\n super.oninit(vnode);\n\n this.post = this.attrs.post;\n this.discussion = this.attrs.discussion;\n }\n\n view() {\n return
  • {this.items().toArray()}
  • ;\n }\n\n getSetTime(discussion: Discussion) {\n if (!discussion.bestAnswerSetAt?.()) {\n return;\n }\n const bestAnswerSetAt = discussion.bestAnswerSetAt?.();\n if (!bestAnswerSetAt) {\n return;\n }\n return humanTime(bestAnswerSetAt);\n }\n\n items(): ItemList {\n const items = new ItemList();\n\n items.add(\n 'post',\n this.post ? (\n \n {icon('fas fa-check')}\n {app.translator.trans('fof-best-answer.forum.best_answer_button')}\n \n ) : (\n \n {icon('fas fa-check')}\n {app.translator.trans('fof-best-answer.forum.best_answer_button')}\n \n )\n );\n\n const bestAnswerUser = this.discussion.bestAnswerUser?.();\n\n bestAnswerUser &&\n items.add(\n 'user',\n \n {app.translator.trans('fof-best-answer.forum.best_answer_label', {\n user: this.discussion.bestAnswerUser?.(),\n time_set: this.getSetTime(this.discussion),\n a: m.route.set(app.route.user(bestAnswerUser))} />,\n })}\n \n );\n\n return items;\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/username'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/userOnline'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/classList'];","import app from 'flarum/forum/app';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport Mithril from 'mithril';\nimport username from 'flarum/common/helpers/username';\nimport userOnline from 'flarum/common/helpers/userOnline';\nimport Link from 'flarum/common/components/Link';\nimport classList from 'flarum/common/utils/classList';\nimport SelectBestAnswerItem from './SelectBestAnswerItem';\nimport Post from 'flarum/common/models/Post';\nimport User from 'flarum/common/models/User';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport Discussion from 'flarum/common/models/Discussion';\nimport humanTime from 'flarum/common/helpers/humanTime';\n\nexport interface BestAnswerFooterPreviewAttrs extends ComponentAttrs {\n post: Post;\n user: User;\n discussion: Discussion;\n}\n\nexport default class BestAnswerFooterPreview extends Component {\n user!: User;\n post!: Post;\n discussion!: Discussion;\n\n oninit(vnode: Mithril.Vnode) {\n super.oninit(vnode);\n\n this.user = this.attrs.user;\n this.post = this.attrs.post;\n this.discussion = this.attrs.discussion;\n }\n\n view() {\n const maxLines = app.forum.attribute('fof-best-answer.show_max_lines');\n\n return (\n
    app.current.get('stream').goToNumber(this.post.number())}>\n
    \n
      {this.headerItems().toArray()}
    \n
    \n
    0 && 'Post-body--truncate')} style={{ '--max-lines': maxLines }}>\n {m.trust(this.postContent())}\n
    \n
    \n );\n }\n\n postContent() {\n return this.post.contentHtml();\n }\n\n /**\n * To maintain compatibility with existing styling, custom themes, etc, each item here must be\n * wrapped in a
  • element.\n *\n * @todo: Remove this requirement for Flarum 2.0\n */\n headerItems(): ItemList {\n const items = new ItemList();\n\n items.add('user', this.userItem()), 100;\n items.add('meta', this.metaItem()), 90;\n items.add('bestAnswer', , -100);\n\n return items;\n }\n\n userItem(): Mithril.Children {\n return (\n
  • \n
    \n {this.user && userOnline(this.user)}\n

    {this.user ? {username(this.user)} : username(this.user)}

    \n
    \n
  • \n );\n }\n\n metaItem(): Mithril.Children {\n const post = this.post;\n return (\n
  • \n {humanTime(post.createdAt())}\n
  • \n );\n }\n}\n","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport CommentPost from 'flarum/forum/components/CommentPost';\nimport PostComponent from 'flarum/forum/components/Post';\nimport SelectBestAnswerItem from './components/SelectBestAnswerItem';\nimport DiscussionPage from 'flarum/forum/components/DiscussionPage';\nimport Button from 'flarum/common/components/Button';\nimport BestAnswerFooterPreview from './components/BestAnswerFooterPreview';\n\nexport default () => {\n extend(CommentPost.prototype, 'headerItems', function (items) {\n const post = this.attrs.post;\n const discussion = post.discussion();\n\n if (discussion?.hasBestAnswer() && discussion.bestAnswerPost() && discussion.bestAnswerPost()?.id() === post.id() && !post.isHidden()) {\n items.add('isBestAnswer', , -100);\n }\n });\n\n extend(CommentPost.prototype, 'footerItems', function (items) {\n const thisPost = this.attrs.post;\n const discussion = thisPost.discussion();\n const post = discussion.hasBestAnswer() && discussion.bestAnswerPost();\n\n if (post && !post.isHidden() && thisPost.number() === 1 && !thisPost.isHidden()) {\n const user = post.user();\n\n items.add('bestAnswerPost', , -10);\n }\n });\n\n extend(PostComponent.prototype, 'elementAttrs', function (elementAttrs) {\n const post = this.attrs.post;\n const discussion = post.discussion();\n\n if (discussion?.hasBestAnswer() && discussion.bestAnswerPost() && discussion.bestAnswerPost().id() === post.id() && !post.isHidden()) {\n elementAttrs.className ? (elementAttrs.className += ' Post--bestAnswer') : (elementAttrs.className = 'Post--bestAnswer');\n }\n });\n\n extend(DiscussionPage.prototype, 'sidebarItems', function (items) {\n if (!app.forum.attribute('bestAnswerDiscussionSidebarJumpButton')) return;\n\n // @ts-ignore\n const discussion = this.discussion;\n\n if (discussion === null) return;\n\n const post = discussion.hasBestAnswer() && discussion.bestAnswerPost();\n\n if (post && !post.isHidden() && post.number() !== 1 && !discussion.bestAnswerPost()?.isHidden()) {\n items.add(\n 'jumpToBestAnswer',\n app.current.get('stream').goToNumber(post.number())}\n aria-label={app.translator.trans('fof-best-answer.forum.discussion.jump_to_best_answer_button')}\n >\n {app.translator.trans('fof-best-answer.forum.discussion.jump_to_best_answer_button')}\n ,\n 90\n );\n }\n });\n};\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/models/Discussion'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Badge'];","import Badge, { IBadgeAttrs } from 'flarum/common/components/Badge';\nimport app from 'flarum/forum/app';\nimport extractText from 'flarum/common/utils/extractText';\n\nexport default class BestAnswerBadge extends Badge {\n static initAttrs(attrs: IBadgeAttrs) {\n attrs.type = 'bestAnswer';\n attrs.icon = 'fas fa-check';\n attrs.label = extractText(app.translator.trans('fof-best-answer.forum.answered_badge'));\n }\n}\n","import type Discussion from 'flarum/common/models/Discussion';\nimport app from 'flarum/forum/app';\nimport Notification from 'flarum/forum/components/Notification';\n\nexport default class AwardedBestAnswerNotification extends Notification {\n icon() {\n return 'fas fa-check';\n }\n\n href() {\n const notification = this.attrs.notification;\n const discussion = notification.subject() as Discussion;\n\n return app.route.discussion(discussion);\n }\n\n content() {\n const user = this.attrs.notification.fromUser();\n return app.translator.trans('fof-best-answer.forum.notification.awarded', {\n user: user,\n });\n }\n\n excerpt() {\n return null;\n }\n}\n","import type Discussion from 'flarum/common/models/Discussion';\nimport app from 'flarum/forum/app';\nimport Notification from 'flarum/forum/components/Notification';\n\nexport default class BestAnswerInDiscussionNotification extends Notification {\n icon() {\n return 'fas fa-check';\n }\n\n href() {\n const notification = this.attrs.notification;\n const discussion = notification.subject() as Discussion;\n\n return app.route.discussion(discussion);\n }\n\n content() {\n const user = this.attrs.notification.fromUser();\n return app.translator.trans('fof-best-answer.forum.notification.best_answer_in_discussion', {\n user: user,\n });\n }\n\n excerpt() {\n return null;\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/NotificationGrid'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/UserCard'];","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","import { override } from 'flarum/common/extend';\n\nexport default () => {\n const FoFUserDirectory = require('@fof-user-directory');\n\n if (!FoFUserDirectory) return;\n\n override(FoFUserDirectory.SortMap.prototype, 'sortMap', (map) => ({\n ...map(),\n most_best_answers: '-bestAnswerCount',\n least_best_answers: 'bestAnswerCount',\n }));\n};\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/Search'];","function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\nexport { _asyncToGenerator as default };","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/LinkButton'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/highlight'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['tags/common/helpers/tagsLabel'];","import app from 'flarum/forum/app';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport Link from 'flarum/common/components/Link';\nimport highlight from 'flarum/common/helpers/highlight';\nimport type Discussion from 'flarum/common/models/Discussion';\nimport type Post from 'flarum/common/models/Post';\nimport type Mithril from 'mithril';\nimport tagsLabel from 'flarum/tags/common/helpers/tagsLabel';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport type Tag from 'flarum/tags/common/models/Tag';\n\nexport interface SolutionSearchItemAttrs extends ComponentAttrs {\n query: string;\n discussion: Discussion;\n bestAnswerPost: Post;\n mostRelevantPost: Post;\n tags: false | (Tag | undefined)[];\n}\n\nexport default class SolutionSearchItem extends Component {\n query!: string;\n discussion!: Discussion;\n bestAnswerPost!: Post | null | undefined;\n mostRelevantPost!: Post | null | undefined;\n tags!: false | (Tag | undefined)[];\n\n oninit(vnode: Mithril.Vnode) {\n super.oninit(vnode);\n\n this.query = this.attrs.query;\n this.discussion = this.attrs.discussion;\n this.bestAnswerPost = this.attrs.bestAnswerPost;\n this.mostRelevantPost = this.attrs.mostRelevantPost;\n this.tags = this.attrs.tags;\n }\n\n view() {\n return (\n
  • \n \n {this.viewItems().toArray()}\n \n
  • \n );\n }\n\n discussionTitle() {\n return this.discussion.title();\n }\n\n bestAnswerContent() {\n return this.bestAnswerPost?.contentPlain();\n }\n\n mostRelevantContent() {\n return this.mostRelevantPost?.contentPlain();\n }\n\n viewItems(): ItemList {\n const items = new ItemList();\n\n app.forum.attribute('showTagsInSearchResults') &&\n items.add('tags',
    {tagsLabel(this.tags)}
    , 100);\n\n items.add('discussion-title',
    {highlight(this.discussionTitle(), this.query)}
    , 90);\n\n !!this.mostRelevantPost &&\n items.add(\n 'most-relevant',\n
    {highlight(this.mostRelevantContent() ?? '', this.query, 100)}
    ,\n 80\n );\n\n !!this.bestAnswerPost &&\n items.add(\n 'best-answer',\n
    \n {highlight(this.bestAnswerContent() ?? '', this.query, 100)}\n
    ,\n 70\n );\n\n return items;\n }\n}\n","import app from 'flarum/forum/app';\nimport Discussion from 'flarum/common/models/Discussion';\nimport LinkButton from 'flarum/common/components/LinkButton';\nimport { SearchSource } from 'flarum/forum/components/Search';\nimport type Mithril from 'mithril';\nimport BestAnswerBadge from './BestAnswerBadge';\nimport SolutionSearchItem from './SolutionSearchItem';\n\nexport default class SolutionSearchSource implements SearchSource {\n protected results = new Map();\n queryString: string | null = null;\n\n async search(query: string): Promise {\n query = query.toLowerCase();\n\n this.results.set(query, []);\n\n this.setQueryString(query);\n\n const params = {\n filter: { q: this.queryString || query },\n page: { limit: this.limit() },\n include: this.includes().join(','),\n };\n\n return app.store.find('discussions', params).then((results) => {\n this.results.set(query, results);\n m.redraw();\n });\n }\n\n view(query: string): Array {\n query = query.toLowerCase();\n\n this.setQueryString(query);\n\n const results = (this.results.get(query) || []).map((discussion) => {\n const bestAnswerPost = discussion.bestAnswerPost();\n const mostRelevantPost = discussion.mostRelevantPost();\n const tags = discussion.tags();\n\n return (\n \n );\n }) as Array;\n\n return [\n
  • \n {app.translator.trans('fof-best-answer.forum.search.discussions_solutions_heading')}\n
  • ,\n
  • \n \n {app.translator.trans('fof-best-answer.forum.search.all_discussions_solutions_button', { query })}\n \n
  • ,\n ...results,\n ];\n }\n\n includes(): string[] {\n return ['mostRelevantPost', 'bestAnswerPost', 'tags'];\n }\n\n limit(): number {\n return 3;\n }\n\n queryMutators(): string[] {\n return ['is:solved'];\n }\n\n setQueryString(query: string): void {\n this.queryString = query + ' ' + this.queryMutators().join(' ');\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/DiscussionsSearchSource'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/IndexPage'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Dropdown'];","import app from 'flarum/forum/app';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport Dropdown from 'flarum/common/components/Dropdown';\nimport Button from 'flarum/common/components/Button';\nimport type Tag from 'flarum/tags/common/models/Tag';\n\nexport interface SolvedFilterAttrs extends ComponentAttrs {\n currentTag?: Tag;\n alwaysShow?: boolean;\n}\n\nexport default class SolvedFilter extends Component {\n view() {\n if (!this.shouldShowFilter()) return null;\n\n const selected = app.discussions.bestAnswer as unknown as number;\n const options = ['all', 'solved', 'unsolved'];\n\n return Dropdown.component(\n {\n buttonClassName: 'Button',\n label: app.translator.trans(\n `fof-best-answer.forum.filter.${options[selected] || Object.keys(options).map((key) => options[Number(key)])[0]}_label`\n ),\n accessibleToggleLabel: app.translator.trans('fof-best-answer.forum.filter.accessible_label'),\n },\n Object.keys(options).map((value) => {\n const label = options[Number(value)];\n const active = (selected || Object.keys(options)[0]) === value;\n\n return Button.component(\n {\n icon: active ? 'fas fa-check' : true,\n active: active,\n onclick: () => {\n app.discussions.bestAnswer = value;\n if (value === '0') {\n delete app.discussions.bestAnswer;\n }\n this.reloadDiscussions();\n },\n },\n app.translator.trans(`fof-best-answer.forum.filter.${label}_label`)\n );\n })\n );\n }\n\n reloadDiscussions(): void {\n app.discussions.refresh();\n }\n\n shouldShowFilter() {\n const { currentTag, alwaysShow } = this.attrs;\n\n if (alwaysShow) return true;\n\n if (!app.forum.attribute('showBestAnswerFilterUi')) return false;\n\n if (!currentTag?.isQnA?.()) {\n if (app.discussions.bestAnswer) {\n delete app.discussions.bestAnswer;\n app.discussions.refresh();\n }\n return false;\n }\n\n return true;\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/states/DiscussionListState'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/DiscussionComposer'];","import AwardedBestAnswerNotification from './AwardedBestAnswerNotification';\nimport BestAnswerBadge from './BestAnswerBadge';\nimport BestAnswerFooterPreview from './BestAnswerFooterPreview';\nimport BestAnswerInDiscussionNotification from './BestAnswerInDiscussionNotification';\nimport SelectBestAnswerItem from './SelectBestAnswerItem';\nimport SelectBestAnswerNotification from './SelectBestAnswerNotification';\nimport SolutionSearchItem from './SolutionSearchItem';\nimport SolutionSearchSource from './SolutionSearchSource';\nimport SolvedFilter from './SolvedFilter';\n\nexport const components = {\n SelectBestAnswerItem,\n SolutionSearchSource,\n BestAnswerFooterPreview,\n AwardedBestAnswerNotification,\n BestAnswerBadge,\n BestAnswerInDiscussionNotification,\n SelectBestAnswerNotification,\n SolutionSearchItem,\n SolvedFilter,\n};\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/extenders'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['tags/common/models/Tag'];","import Extend from 'flarum/common/extenders';\nimport Tag from 'flarum/tags/common/models/Tag';\n\nexport default [\n new Extend.Model(Tag) //\n .attribute('isQnA')\n .attribute('reminders'),\n];\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/models/User'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/Model'];","import Discussion from 'flarum/common/models/Discussion';\nimport commonExtend from '../common/extend';\nimport Extend from 'flarum/common/extenders';\nimport type Post from 'flarum/common/models/Post';\nimport User from 'flarum/common/models/User';\nimport Model from 'flarum/common/Model';\n\nexport default [\n ...commonExtend,\n\n new Extend.Model(Discussion) //\n .hasOne('bestAnswerPost')\n .hasOne('bestAnswerUser')\n .attribute('hasBestAnswer')\n .attribute('canSelectBestAnswer')\n .attribute('bestAnswerSetAt', Model.transformDate),\n\n new Extend.Model(User) //\n .attribute('bestAnswerCount'),\n];\n","import app from 'flarum/forum/app';\nimport SelectBestAnswerNotification from './components/SelectBestAnswerNotification';\nimport addBestAnswerAction from './addBestAnswerAction';\nimport addBestAnswerView from './addBestAnswerView';\nimport addAnsweredBadge from './addAnsweredBadge';\nimport AwardedBestAnswerNotification from './components/AwardedBestAnswerNotification';\nimport BestAnswerInDiscussionNotification from './components/BestAnswerInDiscussionNotification';\nimport extendNotifications from './extenders/extendNotifications';\nimport addBestAnswerCountToUsers from './addBestAnswerCountToUsers';\nimport addBestAnswerCountSort from '../common/addBestAnswerCountSort';\nimport extendSearch from './extenders/extendSearch';\nimport extendDiscussionsSearchSource from './extenders/extendDiscussionSearchSource';\nimport extendIndexPage from './extenders/extendIndexPage';\nimport extendDiscussionListState from './extenders/extendDiscussionListState';\nimport extendDiscussionComposer from './extenders/extendDiscussionComposer';\n\nexport * from './components';\n\nexport { default as extend } from './extend';\n\napp.initializers.add('fof/best-answer', () => {\n app.notificationComponents.selectBestAnswer = SelectBestAnswerNotification;\n app.notificationComponents.awardedBestAnswer = AwardedBestAnswerNotification;\n app.notificationComponents.bestAnswerInDiscussion = BestAnswerInDiscussionNotification;\n\n addAnsweredBadge();\n addBestAnswerAction();\n addBestAnswerView();\n addBestAnswerCountToUsers();\n addBestAnswerCountSort();\n\n extendNotifications();\n extendSearch();\n extendDiscussionsSearchSource();\n extendIndexPage();\n extendDiscussionListState();\n extendDiscussionComposer();\n});\n","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport Button from 'flarum/common/components/Button';\nimport PostControls from 'flarum/forum/utils/PostControls';\nimport DiscussionPage from 'flarum/forum/components/DiscussionPage';\nimport CommentPost from 'flarum/forum/components/CommentPost';\nimport Discussion from 'flarum/common/models/Discussion';\nimport Post from 'flarum/common/models/Post';\nimport extractText from 'flarum/common/utils/extractText';\n\nexport default function addBestAnswerAction() {\n const ineligible = (discussion: Discussion, post: Post) => {\n return post.isHidden() || post.number() === 1 || !discussion.canSelectBestAnswer() || !app.session.user;\n };\n\n const blockSelectOwnPost = (post: Post): boolean => {\n const user = post.user();\n return !app.forum.attribute('canSelectBestAnswerOwnPost') && user !== false && user.id() === app.session.user?.id();\n };\n\n const isThisBestAnswer = (discussion: Discussion, post: Post): boolean => {\n const bestAnswerPost = discussion.bestAnswerPost();\n const hasBestAnswer = discussion.hasBestAnswer();\n return hasBestAnswer !== undefined && hasBestAnswer && bestAnswerPost !== null && bestAnswerPost.id() === post.id();\n };\n\n const actionLabel = (isBestAnswer: boolean): string => {\n return extractText(app.translator.trans(isBestAnswer ? 'fof-best-answer.forum.remove_best_answer' : 'fof-best-answer.forum.this_best_answer'));\n };\n\n const saveDiscussion = (discussion: Discussion, isBestAnswer: boolean, post: Post) =>\n discussion\n .save(\n {\n bestAnswerPostId: isBestAnswer ? post.id() : 0,\n bestAnswerUserId: app.session.user?.id(),\n relationships: isBestAnswer ? { bestAnswerPost: post, bestAnswerUser: app.session.user } : { bestAnswerPost: null },\n },\n {\n params: {\n include: 'tags',\n },\n }\n )\n .then(() => {\n if (!isBestAnswer) {\n if (discussion.data.relationships) {\n delete discussion.data.relationships.bestAnswerPost;\n delete discussion.data.relationships.bestAnswerUser;\n }\n }\n\n if (app.current.matches(DiscussionPage)) {\n app.current.get('stream').update();\n }\n\n m.redraw();\n\n if (isBestAnswer) {\n m.route.set(app.route.discussion(discussion));\n }\n });\n\n extend(PostControls, 'moderationControls', function (items, post) {\n if (app.forum.attribute('useAlternativeBestAnswerUi')) return;\n\n const discussion = post.discussion();\n let isBestAnswer = isThisBestAnswer(discussion, post);\n\n post.pushAttributes({ isBestAnswer });\n\n if (post.contentType() !== 'comment') return;\n\n if (ineligible(discussion, post) || blockSelectOwnPost(post) || !app.current.matches(DiscussionPage)) return;\n\n items.add(\n 'bestAnswer',\n {\n isBestAnswer = !isBestAnswer;\n\n saveDiscussion(discussion, isBestAnswer, post).finally(() => {\n isBestAnswer = isThisBestAnswer(discussion, post);\n });\n }}\n >\n {actionLabel(isBestAnswer)}\n \n );\n });\n\n extend(CommentPost.prototype, 'actionItems', function (items) {\n if (!app.forum.attribute('useAlternativeBestAnswerUi')) return;\n\n const post = this.attrs.post;\n const discussion = this.attrs.post.discussion();\n let isBestAnswer = isThisBestAnswer(discussion, post);\n let hasBestAnswer = discussion.bestAnswerPost() !== null;\n\n post.pushAttributes({ isBestAnswer });\n\n if (ineligible(discussion, post) || blockSelectOwnPost(post) || !app.current.matches(DiscussionPage)) return;\n\n items.add(\n 'bestAnswer',\n {\n hasBestAnswer = !hasBestAnswer;\n isBestAnswer = !isBestAnswer;\n\n saveDiscussion(discussion, isBestAnswer, post).finally(() => {\n hasBestAnswer = !!discussion.hasBestAnswer() && discussion.bestAnswerPost() !== null;\n isBestAnswer = isThisBestAnswer(discussion, post);\n });\n }}\n >\n {actionLabel(isBestAnswer)}\n \n );\n });\n}\n","import { extend } from 'flarum/common/extend';\nimport Discussion from 'flarum/common/models/Discussion';\nimport BestAnswerBadge from './components/BestAnswerBadge';\n\nexport default function () {\n extend(Discussion.prototype, 'badges', function (this: Discussion, items) {\n if (this.hasBestAnswer() && !items.has('hidden')) {\n items.add('bestAnswer', );\n }\n });\n}\n","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport UserCard from 'flarum/forum/components/UserCard';\nimport icon from 'flarum/common/helpers/icon';\n\nimport type Mithril from 'mithril';\nimport type User from 'flarum/common/models/User';\n\nexport default function addBestAnswerCountToUsers() {\n extend(UserCard.prototype, 'infoItems', function (items: ItemList) {\n // @ts-expect-error\n const user = this.attrs.user as User;\n\n items.add(\n 'best-answer-count',\n \n {icon('fas fa-check')}\n {app.translator.trans('fof-best-answer.forum.user.best-answer-count', {\n count: user.bestAnswerCount(),\n })}\n ,\n 55\n );\n });\n}\n","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport NotificationGrid from 'flarum/forum/components/NotificationGrid';\nimport type Mithril from 'mithril';\n\nexport default function () {\n extend(NotificationGrid.prototype, 'notificationTypes', function (items: ItemList<{ name: string; icon: string; label: Mithril.Children }>) {\n items.add('awardedBestAnswer', {\n name: 'awardedBestAnswer',\n icon: 'fas fa-check',\n label: app.translator.trans('fof-best-answer.forum.notification.preferences.awarded_best_answer'),\n });\n items.add('bestAnswerInDiscussion', {\n name: 'bestAnswerInDiscussion',\n icon: 'fas fa-check',\n label: app.translator.trans('fof-best-answer.forum.notification.preferences.best_answer_in_discussion'),\n });\n items.add('selectBestAnswer', {\n name: 'selectBestAnswer',\n icon: 'fas fa-stopwatch',\n label: app.translator.trans('fof-best-answer.forum.notification.preferences.select_best_answer'),\n });\n });\n}\n","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport Search, { SearchSource } from 'flarum/forum/components/Search';\nimport SolutionSearchSource from '../components/SolutionSearchSource';\n\nexport default function extendSearch() {\n extend(Search.prototype, 'sourceItems', function (items: ItemList) {\n if (app.forum.attribute('solutionSearchEnabled')) {\n items.add('solution', new SolutionSearchSource(), 110);\n }\n });\n}\n","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport DiscussionsSearchSource from 'flarum/forum/components/DiscussionsSearchSource';\n\nexport default function extendDiscussionsSearchSource() {\n extend(DiscussionsSearchSource.prototype, 'queryMutators', function (mutators: string[]) {\n // This will only apply when using flarum/core 1.8.6 or newer\n if (app.forum.attribute('removeSolutionResultsFromMainSearch')) {\n mutators.push('-is:solved');\n }\n });\n}\n","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport IndexPage from 'flarum/forum/components/IndexPage';\nimport SolvedFilter from '../components/SolvedFilter';\nimport type Tag from 'flarum/tags/common/models/Tag';\n\nexport default function extendIndexPage() {\n extend(IndexPage.prototype, 'sidebarItems', function (items) {\n const tag = this.currentTag();\n\n if (!tag?.isQnA?.()) return;\n\n const canStartDiscussion = app.forum.attribute('canStartDiscussion') || !app.session.user;\n\n if (!items.has('newDiscussion')) return;\n\n const cta = items.get('newDiscussion');\n cta.children = app.translator.trans(\n canStartDiscussion ? 'fof-best-answer.forum.index.ask_question' : 'fof-best-answer.forum.index.cannot_ask_question'\n );\n\n if (items.has('startDiscussion')) {\n items.setContent('startDiscussion', cta);\n }\n });\n\n extend(IndexPage.prototype, 'viewItems', function (items) {\n const currentTag: Tag | undefined = this.currentTag();\n\n if (!currentTag) return;\n\n items.add('solved-filter', );\n });\n}\n","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport DiscussionListState from 'flarum/forum/states/DiscussionListState';\nimport type { PaginatedListParams } from 'flarum/common/states/PaginatedListState';\n\nexport default function extendDiscussionListState() {\n extend(DiscussionListState.prototype, 'requestParams', function (params: PaginatedListParams) {\n if (app.discussions.bestAnswer) {\n const negate = app.discussions.bestAnswer === '2';\n const prepend = negate ? '-' : '';\n\n if (!params.filter) {\n params.filter = {};\n }\n\n params.filter[`${prepend}solved-discussions`] = 'true';\n\n if (params.filter.q) {\n params.filter.q += ` ${prepend}is:solved`;\n }\n }\n });\n}\n","import { extend } from 'flarum/common/extend';\nimport app from 'flarum/forum/app';\nimport DiscussionComposer from 'flarum/forum/components/DiscussionComposer';\nimport type Tag from 'flarum/tags/common/models/Tag';\n\nexport default function extendDiscussionComposer() {\n extend(DiscussionComposer.prototype, 'headerItems', function (items) {\n const tags = this.composer.fields.tags as Tag[];\n if (tags === undefined) return;\n\n const qna = tags.some((t) => t.isQnA());\n\n if (!qna) return;\n\n // @ts-expect-error\n this.attrs.titlePlaceholder = app.translator.trans('fof-best-answer.forum.composer.titlePlaceholder');\n\n if (items.has('discussionTitle')) {\n items.setContent(\n 'discussionTitle',\n

    \n \n

    \n );\n }\n });\n}\n"],"names":["module","exports","flarum","extensions","_typeof","require","_regeneratorRuntime","e","__esModule","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","this","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","delegateYield","runtime","regeneratorRuntime","accidentalStrictMode","globalThis","Function","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","getter","definition","key","get","obj","prop","core","compat","_setPrototypeOf","bind","_inheritsLoose","SelectBestAnswerNotification","_Notification","apply","arguments","_proto","icon","href","discussion","attrs","notification","subject","app","content","trans","excerpt","Notification","SelectBestAnswerItem","_Component","_this","_len","args","Array","_key","concat","post","oninit","vnode","view","m","className","items","toArray","getSetTime","bestAnswerSetAt","humanTime","_this$discussion$best","_this$discussion","_this$discussion$best2","_this$discussion2","ItemList","add","Link","number","bestAnswerUser","user","time_set","onclick","route","set","Component","BestAnswerFooterPreview","_this2","maxLines","attribute","goToNumber","headerItems","classList","style","trust","postContent","contentHtml","userItem","metaItem","userOnline","username","createdAt","BestAnswerBadge","_Badge","initAttrs","label","extractText","Badge","AwardedBestAnswerNotification","fromUser","BestAnswerInDiscussionNotification","_extends","assign","asyncGeneratorStep","SolutionSearchItem","query","bestAnswerPost","mostRelevantPost","tags","id","viewItems","discussionTitle","title","bestAnswerContent","_this$bestAnswerPost","contentPlain","mostRelevantContent","_this$mostRelevantPos","_this$mostRelevantCon","_this$bestAnswerConte","tagsLabel","highlight","SolutionSearchSource","results","Map","queryString","search","_search","_callee","params","_context","toLowerCase","setQueryString","filter","q","page","limit","include","includes","join","find","redraw","_next","_throw","_x","map","LinkButton","queryMutators","SolvedFilter","shouldShowFilter","selected","bestAnswer","options","Dropdown","buttonClassName","Number","accessibleToggleLabel","active","Button","reloadDiscussions","refresh","_this$attrs","currentTag","alwaysShow","isQnA","components","Extend","Tag","commonExtend","Discussion","hasOne","Model","User","ineligible","blockSelectOwnPost","isThisBestAnswer","actionLabel","saveDiscussion","FoFUserDirectory","selectBestAnswer","awardedBestAnswer","bestAnswerInDiscussion","extend","hasBestAnswer","has","isHidden","canSelectBestAnswer","_app$session$user","isBestAnswer","_app$session$user2","save","bestAnswerPostId","bestAnswerUserId","relationships","data","matches","DiscussionPage","update","PostControls","pushAttributes","contentType","CommentPost","_discussion$bestAnswe","thisPost","PostComponent","elementAttrs","_discussion$bestAnswe2","UserCard","count","bestAnswerCount","override","SortMap","most_best_answers","least_best_answers","NotificationGrid","Search","DiscussionsSearchSource","mutators","IndexPage","tag","canStartDiscussion","cta","children","setContent","DiscussionListState","prepend","DiscussionComposer","composer","fields","some","titlePlaceholder","bidi","placeholder","disabled","onkeydown"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"forum.js","mappings":"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","sources":["webpack://@fof/best-answer/external assign \"flarum.extensions['fof-user-directory']\"","webpack://@fof/best-answer/./node_modules/@babel/runtime/helpers/regeneratorRuntime.js","webpack://@fof/best-answer/./node_modules/@babel/runtime/helpers/typeof.js","webpack://@fof/best-answer/./node_modules/@babel/runtime/regenerator/index.js","webpack://@fof/best-answer/webpack/bootstrap","webpack://@fof/best-answer/webpack/runtime/compat get default export","webpack://@fof/best-answer/webpack/runtime/define property getters","webpack://@fof/best-answer/webpack/runtime/hasOwnProperty shorthand","webpack://@fof/best-answer/webpack/runtime/make namespace object","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/app']\"","webpack://@fof/best-answer/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://@fof/best-answer/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/components/Notification']\"","webpack://@fof/best-answer/./src/forum/components/SelectBestAnswerNotification.ts","webpack://@fof/best-answer/external root \"flarum.core.compat['common/extend']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/components/Button']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/utils/PostControls']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/components/DiscussionPage']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/components/CommentPost']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/utils/extractText']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/components/Post']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/Component']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/helpers/icon']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/helpers/humanTime']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/components/Link']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/utils/ItemList']\"","webpack://@fof/best-answer/./src/forum/components/SelectBestAnswerItem.tsx","webpack://@fof/best-answer/external root \"flarum.core.compat['common/helpers/username']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/helpers/userOnline']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/utils/classList']\"","webpack://@fof/best-answer/./src/forum/components/BestAnswerFooterPreview.tsx","webpack://@fof/best-answer/./src/forum/addBestAnswerView.tsx","webpack://@fof/best-answer/external root \"flarum.core.compat['common/models/Discussion']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/components/Badge']\"","webpack://@fof/best-answer/./src/forum/components/BestAnswerBadge.tsx","webpack://@fof/best-answer/./src/forum/components/AwardedBestAnswerNotification.ts","webpack://@fof/best-answer/./src/forum/components/BestAnswerInDiscussionNotification.ts","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/components/NotificationGrid']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/components/UserCard']\"","webpack://@fof/best-answer/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://@fof/best-answer/./src/common/addBestAnswerCountSort.ts","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/components/Search']\"","webpack://@fof/best-answer/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://@fof/best-answer/external root \"flarum.core.compat['common/components/LinkButton']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/helpers/highlight']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['tags/common/helpers/tagsLabel']\"","webpack://@fof/best-answer/./src/forum/components/SolutionSearchItem.tsx","webpack://@fof/best-answer/./src/forum/components/SolutionSearchSource.tsx","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/components/DiscussionsSearchSource']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/components/IndexPage']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/components/Dropdown']\"","webpack://@fof/best-answer/./src/forum/components/SolvedFilter.tsx","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/states/DiscussionListState']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/components/DiscussionComposer']\"","webpack://@fof/best-answer/./src/forum/components/index.ts","webpack://@fof/best-answer/external root \"flarum.core.compat['common/extenders']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['tags/common/models/Tag']\"","webpack://@fof/best-answer/./src/common/extend.ts","webpack://@fof/best-answer/external root \"flarum.core.compat['common/models/Post']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/models/User']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/Model']\"","webpack://@fof/best-answer/./src/forum/extend.ts","webpack://@fof/best-answer/./src/forum/index.ts","webpack://@fof/best-answer/./src/forum/addBestAnswerAction.tsx","webpack://@fof/best-answer/./src/forum/addAnsweredBadge.tsx","webpack://@fof/best-answer/./src/forum/addBestAnswerCountToUsers.tsx","webpack://@fof/best-answer/./src/forum/extenders/extendNotifications.ts","webpack://@fof/best-answer/./src/forum/extenders/extendSearch.ts","webpack://@fof/best-answer/./src/forum/extenders/extendDiscussionSearchSource.tsx","webpack://@fof/best-answer/./src/forum/extenders/extendIndexPage.tsx","webpack://@fof/best-answer/./src/forum/extenders/extendDiscussionListState.tsx","webpack://@fof/best-answer/./src/forum/extenders/extendDiscussionComposer.tsx"],"sourcesContent":["module.exports = flarum.extensions['fof-user-directory'];","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = \"function\" == typeof Symbol ? Symbol : {},\n a = i.iterator || \"@@iterator\",\n c = i.asyncIterator || \"@@asyncIterator\",\n u = i.toStringTag || \"@@toStringTag\";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, \"\");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, \"_invoke\", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: \"normal\",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: \"throw\",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = \"suspendedStart\",\n l = \"suspendedYield\",\n f = \"executing\",\n s = \"completed\",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n [\"next\", \"throw\", \"return\"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if (\"throw\" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) {\n invoke(\"next\", t, i, a);\n }, function (t) {\n invoke(\"throw\", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke(\"throw\", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, \"_invoke\", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw Error(\"Generator is already running\");\n if (o === s) {\n if (\"throw\" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if (\"normal\" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = \"normal\", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || \"\" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) {\n var e = \"function\" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () {\n return this;\n }), define(g, \"toString\", function () {\n return \"[object Generator]\";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if (\"throw\" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if (\"root\" === i.tryLoc) return handle(\"end\");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, \"catchLoc\"),\n u = n.call(i, \"finallyLoc\");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw Error(\"try statement without catch or finally\");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if (\"throw\" === t.type) throw t.arg;\n return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n \"catch\": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if (\"throw\" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, \"next\" === this.method && (this.arg = t), y;\n }\n }, e;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return module.exports = _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 }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","// 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](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.core.compat['forum/app'];","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/Notification'];","import type Discussion from 'flarum/common/models/Discussion';\nimport app from 'flarum/forum/app';\nimport Notification from 'flarum/forum/components/Notification';\n\nexport default class SelectBestAnswerNotification extends Notification {\n icon() {\n return 'fas fa-comment-dots';\n }\n\n href() {\n const notification = this.attrs.notification;\n const discussion = notification.subject() as Discussion;\n\n return app.route.discussion(discussion);\n }\n\n content() {\n return app.translator.trans('fof-best-answer.forum.notification.content');\n }\n\n excerpt() {\n return null;\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/extend'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Button'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/utils/PostControls'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/DiscussionPage'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/CommentPost'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/extractText'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/Post'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/Component'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/icon'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/humanTime'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Link'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/ItemList'];","import app from 'flarum/forum/app';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport icon from 'flarum/common/helpers/icon';\nimport humanTime from 'flarum/common/helpers/humanTime';\nimport Link from 'flarum/common/components/Link';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport Discussion from 'flarum/common/models/Discussion';\nimport Mithril from 'mithril';\nimport Post from 'flarum/common/models/Post';\n\nexport interface ISelectBestAnswerItemAttrs extends ComponentAttrs {\n post: Post;\n discussion: Discussion;\n}\n\nexport default class SelectBestAnswerItem extends Component {\n post!: Post;\n discussion!: Discussion;\n\n oninit(vnode: Mithril.Vnode) {\n super.oninit(vnode);\n\n this.post = this.attrs.post;\n this.discussion = this.attrs.discussion;\n }\n\n view() {\n return
  • {this.items().toArray()}
  • ;\n }\n\n getSetTime(discussion: Discussion) {\n if (!discussion.bestAnswerSetAt?.()) {\n return;\n }\n const bestAnswerSetAt = discussion.bestAnswerSetAt?.();\n if (!bestAnswerSetAt) {\n return;\n }\n return humanTime(bestAnswerSetAt);\n }\n\n items(): ItemList {\n const items = new ItemList();\n\n items.add(\n 'post',\n this.post ? (\n \n {icon('fas fa-check')}\n {app.translator.trans('fof-best-answer.forum.best_answer_button')}\n \n ) : (\n \n {icon('fas fa-check')}\n {app.translator.trans('fof-best-answer.forum.best_answer_button')}\n \n )\n );\n\n const bestAnswerUser = this.discussion.bestAnswerUser?.();\n\n bestAnswerUser &&\n items.add(\n 'user',\n \n {app.translator.trans('fof-best-answer.forum.best_answer_label', {\n user: this.discussion.bestAnswerUser?.(),\n time_set: this.getSetTime(this.discussion),\n a:
    m.route.set(app.route.user(bestAnswerUser))} />,\n })}\n \n );\n\n return items;\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/username'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/userOnline'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/classList'];","import app from 'flarum/forum/app';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport Mithril from 'mithril';\nimport username from 'flarum/common/helpers/username';\nimport userOnline from 'flarum/common/helpers/userOnline';\nimport Link from 'flarum/common/components/Link';\nimport classList from 'flarum/common/utils/classList';\nimport SelectBestAnswerItem from './SelectBestAnswerItem';\nimport Post from 'flarum/common/models/Post';\nimport User from 'flarum/common/models/User';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport Discussion from 'flarum/common/models/Discussion';\nimport humanTime from 'flarum/common/helpers/humanTime';\n\nexport interface BestAnswerFooterPreviewAttrs extends ComponentAttrs {\n post: Post;\n user: User;\n discussion: Discussion;\n}\n\nexport default class BestAnswerFooterPreview extends Component {\n user!: User;\n post!: Post;\n discussion!: Discussion;\n\n oninit(vnode: Mithril.Vnode) {\n super.oninit(vnode);\n\n this.user = this.attrs.user;\n this.post = this.attrs.post;\n this.discussion = this.attrs.discussion;\n }\n\n view() {\n const maxLines = app.forum.attribute('fof-best-answer.show_max_lines');\n\n return (\n
    app.current.get('stream').goToNumber(this.post.number())}>\n
    \n
      {this.headerItems().toArray()}
    \n
    \n
    0 && 'Post-body--truncate')} style={{ '--max-lines': maxLines }}>\n {m.trust(this.postContent())}\n
    \n
    \n );\n }\n\n postContent() {\n return this.post.contentHtml();\n }\n\n /**\n * To maintain compatibility with existing styling, custom themes, etc, each item here must be\n * wrapped in a
  • element.\n *\n * @todo: Remove this requirement for Flarum 2.0\n */\n headerItems(): ItemList {\n const items = new ItemList();\n\n items.add('user', this.userItem()), 100;\n items.add('meta', this.metaItem()), 90;\n items.add('bestAnswer', , -100);\n\n return items;\n }\n\n userItem(): Mithril.Children {\n return (\n
  • \n
    \n {this.user && userOnline(this.user)}\n

    {this.user ? {username(this.user)} : username(this.user)}

    \n
    \n
  • \n );\n }\n\n metaItem(): Mithril.Children {\n const post = this.post;\n return (\n
  • \n {humanTime(post.createdAt())}\n
  • \n );\n }\n}\n","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport CommentPost from 'flarum/forum/components/CommentPost';\nimport PostComponent from 'flarum/forum/components/Post';\nimport SelectBestAnswerItem from './components/SelectBestAnswerItem';\nimport DiscussionPage from 'flarum/forum/components/DiscussionPage';\nimport Button from 'flarum/common/components/Button';\nimport BestAnswerFooterPreview from './components/BestAnswerFooterPreview';\n\nexport default () => {\n extend(CommentPost.prototype, 'headerItems', function (items) {\n const post = this.attrs.post;\n const discussion = post.discussion();\n\n if (discussion?.hasBestAnswer() && discussion.bestAnswerPost() && discussion.bestAnswerPost()?.id() === post.id() && !post.isHidden()) {\n items.add('isBestAnswer', , -100);\n }\n });\n\n extend(CommentPost.prototype, 'footerItems', function (items) {\n const thisPost = this.attrs.post;\n const discussion = thisPost.discussion();\n const post = discussion.hasBestAnswer() && discussion.bestAnswerPost();\n\n if (post && !post.isHidden() && thisPost.number() === 1 && !thisPost.isHidden()) {\n const user = post.user();\n\n items.add('bestAnswerPost', , -10);\n }\n });\n\n extend(PostComponent.prototype, 'elementAttrs', function (elementAttrs) {\n const post = this.attrs.post;\n const discussion = post.discussion();\n\n if (discussion?.hasBestAnswer() && discussion.bestAnswerPost() && discussion.bestAnswerPost().id() === post.id() && !post.isHidden()) {\n elementAttrs.className ? (elementAttrs.className += ' Post--bestAnswer') : (elementAttrs.className = 'Post--bestAnswer');\n }\n });\n\n extend(DiscussionPage.prototype, 'sidebarItems', function (items) {\n if (!app.forum.attribute('bestAnswerDiscussionSidebarJumpButton')) return;\n\n // @ts-ignore\n const discussion = this.discussion;\n\n if (discussion === null) return;\n\n const post = discussion.hasBestAnswer() && discussion.bestAnswerPost();\n\n if (post && !post.isHidden() && post.number() !== 1 && !discussion.bestAnswerPost()?.isHidden()) {\n items.add(\n 'jumpToBestAnswer',\n app.current.get('stream').goToNumber(post.number())}\n aria-label={app.translator.trans('fof-best-answer.forum.discussion.jump_to_best_answer_button')}\n >\n {app.translator.trans('fof-best-answer.forum.discussion.jump_to_best_answer_button')}\n ,\n 90\n );\n }\n });\n};\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/models/Discussion'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Badge'];","import Badge, { IBadgeAttrs } from 'flarum/common/components/Badge';\nimport app from 'flarum/forum/app';\nimport extractText from 'flarum/common/utils/extractText';\n\nexport default class BestAnswerBadge extends Badge {\n static initAttrs(attrs: IBadgeAttrs) {\n attrs.type = 'bestAnswer';\n attrs.icon = 'fas fa-check';\n attrs.label = extractText(app.translator.trans('fof-best-answer.forum.answered_badge'));\n }\n}\n","import type Discussion from 'flarum/common/models/Discussion';\nimport app from 'flarum/forum/app';\nimport Notification from 'flarum/forum/components/Notification';\n\nexport default class AwardedBestAnswerNotification extends Notification {\n icon() {\n return 'fas fa-check';\n }\n\n href() {\n const notification = this.attrs.notification;\n const discussion = notification.subject() as Discussion;\n\n return app.route.discussion(discussion);\n }\n\n content() {\n const user = this.attrs.notification.fromUser();\n return app.translator.trans('fof-best-answer.forum.notification.awarded', {\n user: user,\n });\n }\n\n excerpt() {\n return null;\n }\n}\n","import type Discussion from 'flarum/common/models/Discussion';\nimport app from 'flarum/forum/app';\nimport Notification from 'flarum/forum/components/Notification';\n\nexport default class BestAnswerInDiscussionNotification extends Notification {\n icon() {\n return 'fas fa-check';\n }\n\n href() {\n const notification = this.attrs.notification;\n const discussion = notification.subject() as Discussion;\n\n return app.route.discussion(discussion);\n }\n\n content() {\n const user = this.attrs.notification.fromUser();\n return app.translator.trans('fof-best-answer.forum.notification.best_answer_in_discussion', {\n user: user,\n });\n }\n\n excerpt() {\n return null;\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/NotificationGrid'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/UserCard'];","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","import { override } from 'flarum/common/extend';\n\nexport default () => {\n const FoFUserDirectory = require('@fof-user-directory');\n\n if (!FoFUserDirectory) return;\n\n override(FoFUserDirectory.SortMap.prototype, 'sortMap', (map) => ({\n ...map(),\n most_best_answers: '-bestAnswerCount',\n least_best_answers: 'bestAnswerCount',\n }));\n};\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/Search'];","function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\nexport { _asyncToGenerator as default };","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/LinkButton'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/highlight'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['tags/common/helpers/tagsLabel'];","import app from 'flarum/forum/app';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport Link from 'flarum/common/components/Link';\nimport highlight from 'flarum/common/helpers/highlight';\nimport type Discussion from 'flarum/common/models/Discussion';\nimport type Post from 'flarum/common/models/Post';\nimport type Mithril from 'mithril';\nimport tagsLabel from 'flarum/tags/common/helpers/tagsLabel';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport type Tag from 'flarum/tags/common/models/Tag';\n\nexport interface SolutionSearchItemAttrs extends ComponentAttrs {\n query: string;\n discussion: Discussion;\n bestAnswerPost: Post;\n mostRelevantPost: Post;\n tags: false | (Tag | undefined)[];\n}\n\nexport default class SolutionSearchItem extends Component {\n query!: string;\n discussion!: Discussion;\n bestAnswerPost!: Post | null | undefined;\n mostRelevantPost!: Post | null | undefined;\n tags!: false | (Tag | undefined)[];\n\n oninit(vnode: Mithril.Vnode) {\n super.oninit(vnode);\n\n this.query = this.attrs.query;\n this.discussion = this.attrs.discussion;\n this.bestAnswerPost = this.attrs.bestAnswerPost;\n this.mostRelevantPost = this.attrs.mostRelevantPost;\n this.tags = this.attrs.tags;\n }\n\n view() {\n return (\n
  • \n \n {this.viewItems().toArray()}\n \n
  • \n );\n }\n\n discussionTitle() {\n return this.discussion.title();\n }\n\n bestAnswerContent() {\n return this.bestAnswerPost?.contentPlain();\n }\n\n mostRelevantContent() {\n return this.mostRelevantPost?.contentPlain();\n }\n\n viewItems(): ItemList {\n const items = new ItemList();\n\n app.forum.attribute('showTagsInSearchResults') &&\n items.add('tags',
    {tagsLabel(this.tags)}
    , 100);\n\n items.add('discussion-title',
    {highlight(this.discussionTitle(), this.query)}
    , 90);\n\n !!this.mostRelevantPost &&\n items.add(\n 'most-relevant',\n
    {highlight(this.mostRelevantContent() ?? '', this.query, 100)}
    ,\n 80\n );\n\n !!this.bestAnswerPost &&\n items.add(\n 'best-answer',\n
    \n {highlight(this.bestAnswerContent() ?? '', this.query, 100)}\n
    ,\n 70\n );\n\n return items;\n }\n}\n","import app from 'flarum/forum/app';\nimport Discussion from 'flarum/common/models/Discussion';\nimport LinkButton from 'flarum/common/components/LinkButton';\nimport { SearchSource } from 'flarum/forum/components/Search';\nimport type Mithril from 'mithril';\nimport BestAnswerBadge from './BestAnswerBadge';\nimport SolutionSearchItem from './SolutionSearchItem';\n\nexport default class SolutionSearchSource implements SearchSource {\n protected results = new Map();\n queryString: string | null = null;\n\n async search(query: string): Promise {\n query = query.toLowerCase();\n\n this.results.set(query, []);\n\n this.setQueryString(query);\n\n const params = {\n filter: { q: this.queryString || query },\n page: { limit: this.limit() },\n include: this.includes().join(','),\n };\n\n return app.store.find('discussions', params).then((results) => {\n this.results.set(query, results);\n m.redraw();\n });\n }\n\n view(query: string): Array {\n query = query.toLowerCase();\n\n this.setQueryString(query);\n\n const results = (this.results.get(query) || []).map((discussion) => {\n const bestAnswerPost = discussion.bestAnswerPost();\n const mostRelevantPost = discussion.mostRelevantPost();\n const tags = discussion.tags();\n\n return (\n \n );\n }) as Array;\n\n return [\n
  • \n {app.translator.trans('fof-best-answer.forum.search.discussions_solutions_heading')}\n
  • ,\n
  • \n \n {app.translator.trans('fof-best-answer.forum.search.all_discussions_solutions_button', { query })}\n \n
  • ,\n ...results,\n ];\n }\n\n includes(): string[] {\n return ['mostRelevantPost', 'bestAnswerPost', 'tags'];\n }\n\n limit(): number {\n return 3;\n }\n\n queryMutators(): string[] {\n return ['is:solved'];\n }\n\n setQueryString(query: string): void {\n this.queryString = query + ' ' + this.queryMutators().join(' ');\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/DiscussionsSearchSource'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/IndexPage'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Dropdown'];","import app from 'flarum/forum/app';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport Dropdown from 'flarum/common/components/Dropdown';\nimport Button from 'flarum/common/components/Button';\nimport type Tag from 'flarum/tags/common/models/Tag';\n\nexport interface SolvedFilterAttrs extends ComponentAttrs {\n currentTag?: Tag;\n alwaysShow?: boolean;\n}\n\nexport default class SolvedFilter extends Component {\n view() {\n if (!this.shouldShowFilter()) return null;\n\n const selected = app.discussions.bestAnswer as unknown as number;\n const options = ['all', 'solved', 'unsolved'];\n\n return Dropdown.component(\n {\n buttonClassName: 'Button',\n label: app.translator.trans(\n `fof-best-answer.forum.filter.${options[selected] || Object.keys(options).map((key) => options[Number(key)])[0]}_label`\n ),\n accessibleToggleLabel: app.translator.trans('fof-best-answer.forum.filter.accessible_label'),\n },\n Object.keys(options).map((value) => {\n const label = options[Number(value)];\n const active = (selected || Object.keys(options)[0]) === value;\n\n return Button.component(\n {\n icon: active ? 'fas fa-check' : true,\n active: active,\n onclick: () => {\n app.discussions.bestAnswer = value;\n if (value === '0') {\n delete app.discussions.bestAnswer;\n }\n this.reloadDiscussions();\n },\n },\n app.translator.trans(`fof-best-answer.forum.filter.${label}_label`)\n );\n })\n );\n }\n\n reloadDiscussions(): void {\n app.discussions.refresh();\n }\n\n shouldShowFilter() {\n const { currentTag, alwaysShow } = this.attrs;\n\n if (alwaysShow) return true;\n\n if (!app.forum.attribute('showBestAnswerFilterUi')) return false;\n\n if (!currentTag?.isQnA?.()) {\n if (app.discussions.bestAnswer) {\n delete app.discussions.bestAnswer;\n app.discussions.refresh();\n }\n return false;\n }\n\n return true;\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/states/DiscussionListState'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/DiscussionComposer'];","import AwardedBestAnswerNotification from './AwardedBestAnswerNotification';\nimport BestAnswerBadge from './BestAnswerBadge';\nimport BestAnswerFooterPreview from './BestAnswerFooterPreview';\nimport BestAnswerInDiscussionNotification from './BestAnswerInDiscussionNotification';\nimport SelectBestAnswerItem from './SelectBestAnswerItem';\nimport SelectBestAnswerNotification from './SelectBestAnswerNotification';\nimport SolutionSearchItem from './SolutionSearchItem';\nimport SolutionSearchSource from './SolutionSearchSource';\nimport SolvedFilter from './SolvedFilter';\n\nexport const components = {\n SelectBestAnswerItem,\n SolutionSearchSource,\n BestAnswerFooterPreview,\n AwardedBestAnswerNotification,\n BestAnswerBadge,\n BestAnswerInDiscussionNotification,\n SelectBestAnswerNotification,\n SolutionSearchItem,\n SolvedFilter,\n};\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/extenders'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['tags/common/models/Tag'];","import Extend from 'flarum/common/extenders';\nimport Tag from 'flarum/tags/common/models/Tag';\n\nexport default [\n new Extend.Model(Tag) //\n .attribute('isQnA')\n .attribute('reminders'),\n];\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/models/Post'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/models/User'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/Model'];","import Discussion from 'flarum/common/models/Discussion';\nimport commonExtend from '../common/extend';\nimport Extend from 'flarum/common/extenders';\nimport Post from 'flarum/common/models/Post';\nimport User from 'flarum/common/models/User';\nimport Model from 'flarum/common/Model';\n\nexport default [\n ...commonExtend,\n\n new Extend.Model(Discussion) //\n .hasOne('bestAnswerPost')\n .hasOne('bestAnswerUser')\n .attribute('hasBestAnswer')\n .attribute('bestAnswerSetAt', Model.transformDate),\n\n new Extend.Model(User) //\n .attribute('bestAnswerCount'),\n\n new Extend.Model(Post) //\n .attribute('canSelectBestAnswer'),\n];\n","import app from 'flarum/forum/app';\nimport SelectBestAnswerNotification from './components/SelectBestAnswerNotification';\nimport addBestAnswerAction from './addBestAnswerAction';\nimport addBestAnswerView from './addBestAnswerView';\nimport addAnsweredBadge from './addAnsweredBadge';\nimport AwardedBestAnswerNotification from './components/AwardedBestAnswerNotification';\nimport BestAnswerInDiscussionNotification from './components/BestAnswerInDiscussionNotification';\nimport extendNotifications from './extenders/extendNotifications';\nimport addBestAnswerCountToUsers from './addBestAnswerCountToUsers';\nimport addBestAnswerCountSort from '../common/addBestAnswerCountSort';\nimport extendSearch from './extenders/extendSearch';\nimport extendDiscussionsSearchSource from './extenders/extendDiscussionSearchSource';\nimport extendIndexPage from './extenders/extendIndexPage';\nimport extendDiscussionListState from './extenders/extendDiscussionListState';\nimport extendDiscussionComposer from './extenders/extendDiscussionComposer';\n\nexport * from './components';\n\nexport { default as extend } from './extend';\n\napp.initializers.add('fof/best-answer', () => {\n app.notificationComponents.selectBestAnswer = SelectBestAnswerNotification;\n app.notificationComponents.awardedBestAnswer = AwardedBestAnswerNotification;\n app.notificationComponents.bestAnswerInDiscussion = BestAnswerInDiscussionNotification;\n\n addAnsweredBadge();\n addBestAnswerAction();\n addBestAnswerView();\n addBestAnswerCountToUsers();\n addBestAnswerCountSort();\n\n extendNotifications();\n extendSearch();\n extendDiscussionsSearchSource();\n extendIndexPage();\n extendDiscussionListState();\n extendDiscussionComposer();\n});\n","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport Button from 'flarum/common/components/Button';\nimport PostControls from 'flarum/forum/utils/PostControls';\nimport DiscussionPage from 'flarum/forum/components/DiscussionPage';\nimport CommentPost from 'flarum/forum/components/CommentPost';\nimport Discussion from 'flarum/common/models/Discussion';\nimport Post from 'flarum/common/models/Post';\nimport extractText from 'flarum/common/utils/extractText';\n\nexport default function addBestAnswerAction() {\n const ineligible = (discussion: Discussion, post: Post) => {\n return post.isHidden() || post.number() === 1 || !post.canSelectBestAnswer() || !app.session.user;\n };\n\n const isThisBestAnswer = (discussion: Discussion, post: Post): boolean => {\n const bestAnswerPost = discussion.bestAnswerPost();\n const hasBestAnswer = discussion.hasBestAnswer();\n return hasBestAnswer !== undefined && hasBestAnswer && bestAnswerPost !== null && bestAnswerPost.id() === post.id();\n };\n\n const actionLabel = (isBestAnswer: boolean): string => {\n return extractText(app.translator.trans(isBestAnswer ? 'fof-best-answer.forum.remove_best_answer' : 'fof-best-answer.forum.this_best_answer'));\n };\n\n const saveDiscussion = (discussion: Discussion, isBestAnswer: boolean, post: Post) =>\n discussion\n .save(\n {\n bestAnswerPostId: isBestAnswer ? post.id() : 0,\n bestAnswerUserId: app.session.user?.id(),\n relationships: isBestAnswer ? { bestAnswerPost: post, bestAnswerUser: app.session.user } : { bestAnswerPost: null },\n },\n {\n params: {\n include: 'tags',\n },\n }\n )\n .then(() => {\n if (!isBestAnswer) {\n if (discussion.data.relationships) {\n delete discussion.data.relationships.bestAnswerPost;\n delete discussion.data.relationships.bestAnswerUser;\n }\n }\n\n if (app.current.matches(DiscussionPage)) {\n app.current.get('stream').update();\n }\n\n m.redraw();\n\n if (isBestAnswer) {\n m.route.set(app.route.discussion(discussion));\n }\n });\n\n extend(PostControls, 'moderationControls', function (items, post) {\n if (app.forum.attribute('useAlternativeBestAnswerUi')) return;\n\n const discussion = post.discussion();\n let isBestAnswer = isThisBestAnswer(discussion, post);\n\n post.pushAttributes({ isBestAnswer });\n\n if (post.contentType() !== 'comment') return;\n\n if (ineligible(discussion, post) || !app.current.matches(DiscussionPage)) return;\n\n items.add(\n 'bestAnswer',\n {\n isBestAnswer = !isBestAnswer;\n\n saveDiscussion(discussion, isBestAnswer, post).finally(() => {\n isBestAnswer = isThisBestAnswer(discussion, post);\n });\n }}\n >\n {actionLabel(isBestAnswer)}\n \n );\n });\n\n extend(CommentPost.prototype, 'actionItems', function (items) {\n if (!app.forum.attribute('useAlternativeBestAnswerUi')) return;\n\n const post = this.attrs.post;\n const discussion = this.attrs.post.discussion();\n let isBestAnswer = isThisBestAnswer(discussion, post);\n let hasBestAnswer = discussion.bestAnswerPost() !== null;\n\n post.pushAttributes({ isBestAnswer });\n\n if (ineligible(discussion, post) || !app.current.matches(DiscussionPage)) return;\n\n items.add(\n 'bestAnswer',\n {\n hasBestAnswer = !hasBestAnswer;\n isBestAnswer = !isBestAnswer;\n\n saveDiscussion(discussion, isBestAnswer, post).finally(() => {\n hasBestAnswer = !!discussion.hasBestAnswer() && discussion.bestAnswerPost() !== null;\n isBestAnswer = isThisBestAnswer(discussion, post);\n });\n }}\n >\n {actionLabel(isBestAnswer)}\n \n );\n });\n}\n","import { extend } from 'flarum/common/extend';\nimport Discussion from 'flarum/common/models/Discussion';\nimport BestAnswerBadge from './components/BestAnswerBadge';\n\nexport default function () {\n extend(Discussion.prototype, 'badges', function (this: Discussion, items) {\n if (this.hasBestAnswer() && !items.has('hidden')) {\n items.add('bestAnswer', );\n }\n });\n}\n","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport UserCard from 'flarum/forum/components/UserCard';\nimport icon from 'flarum/common/helpers/icon';\n\nimport type Mithril from 'mithril';\nimport type User from 'flarum/common/models/User';\n\nexport default function addBestAnswerCountToUsers() {\n extend(UserCard.prototype, 'infoItems', function (items: ItemList) {\n // @ts-expect-error\n const user = this.attrs.user as User;\n\n items.add(\n 'best-answer-count',\n \n {icon('fas fa-check')}\n {app.translator.trans('fof-best-answer.forum.user.best-answer-count', {\n count: user.bestAnswerCount(),\n })}\n ,\n 55\n );\n });\n}\n","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport NotificationGrid from 'flarum/forum/components/NotificationGrid';\nimport type Mithril from 'mithril';\n\nexport default function () {\n extend(NotificationGrid.prototype, 'notificationTypes', function (items: ItemList<{ name: string; icon: string; label: Mithril.Children }>) {\n items.add('awardedBestAnswer', {\n name: 'awardedBestAnswer',\n icon: 'fas fa-check',\n label: app.translator.trans('fof-best-answer.forum.notification.preferences.awarded_best_answer'),\n });\n items.add('bestAnswerInDiscussion', {\n name: 'bestAnswerInDiscussion',\n icon: 'fas fa-check',\n label: app.translator.trans('fof-best-answer.forum.notification.preferences.best_answer_in_discussion'),\n });\n items.add('selectBestAnswer', {\n name: 'selectBestAnswer',\n icon: 'fas fa-stopwatch',\n label: app.translator.trans('fof-best-answer.forum.notification.preferences.select_best_answer'),\n });\n });\n}\n","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport Search, { SearchSource } from 'flarum/forum/components/Search';\nimport SolutionSearchSource from '../components/SolutionSearchSource';\n\nexport default function extendSearch() {\n extend(Search.prototype, 'sourceItems', function (items: ItemList) {\n if (app.forum.attribute('solutionSearchEnabled')) {\n items.add('solution', new SolutionSearchSource(), 110);\n }\n });\n}\n","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport DiscussionsSearchSource from 'flarum/forum/components/DiscussionsSearchSource';\n\nexport default function extendDiscussionsSearchSource() {\n extend(DiscussionsSearchSource.prototype, 'queryMutators', function (mutators: string[]) {\n // This will only apply when using flarum/core 1.8.6 or newer\n if (app.forum.attribute('removeSolutionResultsFromMainSearch')) {\n mutators.push('-is:solved');\n }\n });\n}\n","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport IndexPage from 'flarum/forum/components/IndexPage';\nimport SolvedFilter from '../components/SolvedFilter';\nimport type Tag from 'flarum/tags/common/models/Tag';\n\nexport default function extendIndexPage() {\n extend(IndexPage.prototype, 'sidebarItems', function (items) {\n const tag = this.currentTag();\n\n if (!tag?.isQnA?.()) return;\n\n const canStartDiscussion = app.forum.attribute('canStartDiscussion') || !app.session.user;\n\n if (!items.has('newDiscussion')) return;\n\n const cta = items.get('newDiscussion');\n cta.children = app.translator.trans(\n canStartDiscussion ? 'fof-best-answer.forum.index.ask_question' : 'fof-best-answer.forum.index.cannot_ask_question'\n );\n\n if (items.has('startDiscussion')) {\n items.setContent('startDiscussion', cta);\n }\n });\n\n extend(IndexPage.prototype, 'viewItems', function (items) {\n const currentTag: Tag | undefined = this.currentTag();\n\n if (!currentTag) return;\n\n items.add('solved-filter', );\n });\n}\n","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport DiscussionListState from 'flarum/forum/states/DiscussionListState';\nimport type { PaginatedListParams } from 'flarum/common/states/PaginatedListState';\n\nexport default function extendDiscussionListState() {\n extend(DiscussionListState.prototype, 'requestParams', function (params: PaginatedListParams) {\n if (app.discussions.bestAnswer) {\n const negate = app.discussions.bestAnswer === '2';\n const prepend = negate ? '-' : '';\n\n if (!params.filter) {\n params.filter = {};\n }\n\n params.filter[`${prepend}solved-discussions`] = 'true';\n\n if (params.filter.q) {\n params.filter.q += ` ${prepend}is:solved`;\n }\n }\n });\n}\n","import { extend } from 'flarum/common/extend';\nimport app from 'flarum/forum/app';\nimport DiscussionComposer from 'flarum/forum/components/DiscussionComposer';\nimport type Tag from 'flarum/tags/common/models/Tag';\n\nexport default function extendDiscussionComposer() {\n extend(DiscussionComposer.prototype, 'headerItems', function (items) {\n const tags = this.composer.fields.tags as Tag[];\n if (tags === undefined) return;\n\n const qna = tags.some((t) => t.isQnA());\n\n if (!qna) return;\n\n // @ts-expect-error\n this.attrs.titlePlaceholder = app.translator.trans('fof-best-answer.forum.composer.titlePlaceholder');\n\n if (items.has('discussionTitle')) {\n items.setContent(\n 'discussionTitle',\n

    \n \n

    \n );\n }\n });\n}\n"],"names":["module","exports","flarum","extensions","_typeof","require","_regeneratorRuntime","e","__esModule","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","this","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","delegateYield","runtime","regeneratorRuntime","accidentalStrictMode","globalThis","Function","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","getter","definition","key","get","obj","prop","core","compat","_setPrototypeOf","bind","_inheritsLoose","SelectBestAnswerNotification","_Notification","apply","arguments","_proto","icon","href","discussion","attrs","notification","subject","app","content","trans","excerpt","Notification","SelectBestAnswerItem","_Component","_this","_len","args","Array","_key","concat","post","oninit","vnode","view","m","className","items","toArray","getSetTime","bestAnswerSetAt","humanTime","_this$discussion$best","_this$discussion","_this$discussion$best2","_this$discussion2","ItemList","add","Link","number","bestAnswerUser","user","time_set","onclick","route","set","Component","BestAnswerFooterPreview","_this2","maxLines","attribute","goToNumber","headerItems","classList","style","trust","postContent","contentHtml","userItem","metaItem","userOnline","username","createdAt","BestAnswerBadge","_Badge","initAttrs","label","extractText","Badge","AwardedBestAnswerNotification","fromUser","BestAnswerInDiscussionNotification","_extends","assign","asyncGeneratorStep","SolutionSearchItem","query","bestAnswerPost","mostRelevantPost","tags","id","viewItems","discussionTitle","title","bestAnswerContent","_this$bestAnswerPost","contentPlain","mostRelevantContent","_this$mostRelevantPos","_this$mostRelevantCon","_this$bestAnswerConte","tagsLabel","highlight","SolutionSearchSource","results","Map","queryString","search","_search","_callee","params","_context","toLowerCase","setQueryString","filter","q","page","limit","include","includes","join","find","redraw","_next","_throw","_x","map","LinkButton","queryMutators","SolvedFilter","shouldShowFilter","selected","bestAnswer","options","Dropdown","buttonClassName","Number","accessibleToggleLabel","active","Button","reloadDiscussions","refresh","_this$attrs","currentTag","alwaysShow","isQnA","components","Extend","Tag","commonExtend","Discussion","hasOne","Model","User","Post","ineligible","isThisBestAnswer","actionLabel","saveDiscussion","FoFUserDirectory","selectBestAnswer","awardedBestAnswer","bestAnswerInDiscussion","extend","hasBestAnswer","has","isHidden","canSelectBestAnswer","isBestAnswer","_app$session$user","save","bestAnswerPostId","bestAnswerUserId","relationships","data","matches","DiscussionPage","update","PostControls","pushAttributes","contentType","CommentPost","_discussion$bestAnswe","thisPost","PostComponent","elementAttrs","_discussion$bestAnswe2","UserCard","count","bestAnswerCount","override","SortMap","most_best_answers","least_best_answers","NotificationGrid","Search","DiscussionsSearchSource","mutators","IndexPage","tag","canStartDiscussion","cta","children","setContent","DiscussionListState","prepend","DiscussionComposer","composer","fields","some","titlePlaceholder","bidi","placeholder","disabled","onkeydown"],"sourceRoot":""} \ No newline at end of file diff --git a/js/package-lock.json b/js/package-lock.json new file mode 100644 index 0000000..0fa5285 --- /dev/null +++ b/js/package-lock.json @@ -0,0 +1,5554 @@ +{ + "name": "@fof/best-answer", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "@fof/best-answer", + "version": "0.0.0", + "dependencies": { + "yarn": "^1.22.22" + }, + "devDependencies": { + "@flarum/prettier-config": "^1.0.0", + "flarum-tsconfig": "^1.0.3", + "flarum-webpack-config": "^2.0.2", + "prettier": "^3.3.3", + "typescript-coverage-report": "^0.6.1", + "webpack": "^5.88.0", + "webpack-cli": "^5.1.4" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.4.tgz", + "integrity": "sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", + "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.0", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-module-transforms": "^7.25.2", + "@babel/helpers": "^7.25.0", + "@babel/parser": "^7.25.0", + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.2", + "@babel/types": "^7.25.2", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.6.tgz", + "integrity": "sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.6", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", + "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz", + "integrity": "sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz", + "integrity": "sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.25.2", + "@babel/helper-validator-option": "^7.24.8", + "browserslist": "^4.23.1", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.4.tgz", + "integrity": "sha512-ro/bFs3/84MDgDmMwbcHgDa8/E6J3QKNTk4xJJnVeFtGE+tL0K26E3pNxhYz2b67fJpt7Aphw5XcploKXuCvCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.8", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/helper-replace-supers": "^7.25.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/traverse": "^7.25.4", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.2.tgz", + "integrity": "sha512-+wqVGP+DFmqwFD3EH6TMTfUNeqDehV3E/dl+Sd54eaXqm17tEUNbEIn4sVivVowbvUpOtIGxdo3GoXyDH9N/9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", + "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz", + "integrity": "sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.8", + "@babel/types": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz", + "integrity": "sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "@babel/traverse": "^7.25.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz", + "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", + "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.0.tgz", + "integrity": "sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-wrap-function": "^7.25.0", + "@babel/traverse": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.0.tgz", + "integrity": "sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.24.8", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/traverse": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz", + "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", + "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", + "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.0.tgz", + "integrity": "sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.0", + "@babel/types": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.6.tgz", + "integrity": "sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.24.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.6.tgz", + "integrity": "sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.6" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.3.tgz", + "integrity": "sha512-wUrcsxZg6rqBXG05HG1FPYgsP6EvwF4WpBbxIpWIIYnH8wG0gzx3yZY3dtEHas4sTAOGkbTsc9EGPxwff8lRoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/traverse": "^7.25.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.0.tgz", + "integrity": "sha512-Bm4bH2qsX880b/3ziJ8KD711LT7z4u8CFudmjqle65AZj/HNUFhEf90dqYv6O86buWvSBmeQDjv0Tn2aF/bIBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.0.tgz", + "integrity": "sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz", + "integrity": "sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.0.tgz", + "integrity": "sha512-tggFrk1AIShG/RUQbEwt2Tr/E+ObkfwrPjR6BjbRvsx24+PSjK8zrq0GWPNCjo8qpRx4DuJzlcvWJqlm+0h3kw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/traverse": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead.", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.25.6.tgz", + "integrity": "sha512-aABl0jHw9bZ2karQ/uUD6XP4u0SG22SJrOHFoL6XB1R7dTovOP4TzTlsxOYC5yQ1pdscVK2JTUnF6QL3ARoAiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.25.6.tgz", + "integrity": "sha512-sXaDXaJN9SNLymBdlWFA+bjzBhFD617ZaFiY13dGt7TVslVvVgA6fkZOP7Ki3IGElC45lwHdOTrCtKZGVAWeLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", + "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.4.tgz", + "integrity": "sha512-uMOCoHVU52BsSWxPOMVv5qKRdeSlPuImUCB2dlPuBSU+W2/ROE7/Zg8F2Kepbk+8yBa68LlRKxO+xgEVWorsDg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz", + "integrity": "sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.4.tgz", + "integrity": "sha512-jz8cV2XDDTqjKPwVPJBIjORVEmSGYhdRa8e5k5+vN+uwcjSrSxUaebBRa4ko1jqNF2uxyg8G6XYk30Jv285xzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-remap-async-to-generator": "^7.25.0", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/traverse": "^7.25.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz", + "integrity": "sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-remap-async-to-generator": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz", + "integrity": "sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.0.tgz", + "integrity": "sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.4.tgz", + "integrity": "sha512-nZeZHyCWPfjkdU5pA/uHiTaDAFUEqkpzf1YoQT2NeSynCGYq9rxfyI3XpQbfx/a0hSnFH6TGlEXvae5Vi7GD8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.25.4", + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz", + "integrity": "sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.4.tgz", + "integrity": "sha512-oexUfaQle2pF/b6E0dwsxQtAol9TLSO88kQvym6HHBWFliV2lGdrPieX+WgMRLSJDVzdYywk7jXbLPuO2KLTLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-replace-supers": "^7.25.0", + "@babel/traverse": "^7.25.4", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz", + "integrity": "sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/template": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.8.tgz", + "integrity": "sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz", + "integrity": "sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz", + "integrity": "sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.0.tgz", + "integrity": "sha512-YLpb4LlYSc3sCUa35un84poXoraOiQucUTTu8X1j18JV+gNa8E0nyUf/CjZ171IRGr4jEguF+vzJU66QZhn29g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.0", + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz", + "integrity": "sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz", + "integrity": "sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz", + "integrity": "sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz", + "integrity": "sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.25.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.1.tgz", + "integrity": "sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/traverse": "^7.25.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz", + "integrity": "sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.2.tgz", + "integrity": "sha512-HQI+HcTbm9ur3Z2DkO+jgESMAMcYLuN/A7NRw9juzxAezN9AvqvUTnpKP/9kkYANz6u7dFlAyOu44ejuGySlfw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz", + "integrity": "sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz", + "integrity": "sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz", + "integrity": "sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz", + "integrity": "sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-simple-access": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.0.tgz", + "integrity": "sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.25.0", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", + "@babel/traverse": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz", + "integrity": "sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz", + "integrity": "sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz", + "integrity": "sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz", + "integrity": "sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz", + "integrity": "sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-assign": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.24.7.tgz", + "integrity": "sha512-DOzAi77P9jSyPijHS7Z8vH0wLRcZH6wWxuIZgLAiy8FWOkcKMJmnyHjy2JM94k6A0QxlA/hlLh+R9T3GEryjNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz", + "integrity": "sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz", + "integrity": "sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz", + "integrity": "sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.8.tgz", + "integrity": "sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz", + "integrity": "sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.4.tgz", + "integrity": "sha512-ao8BG7E2b/URaUQGqN3Tlsg+M3KlHY6rJ1O1gXAEUnZoyNQnvKyH87Kfg+FoxSeyWUB8ISZZsC91C44ZuBFytw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.25.4", + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz", + "integrity": "sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz", + "integrity": "sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.7.tgz", + "integrity": "sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.2.tgz", + "integrity": "sha512-KQsqEAVBpU82NM/B/N9j9WOdphom1SZH3R+2V7INrQUH+V9EBFwZsEJl8eBIVeQE62FxJCc70jzEZwqU7RcVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/plugin-syntax-jsx": "^7.24.7", + "@babel/types": "^7.25.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.24.7.tgz", + "integrity": "sha512-QG9EnzoGn+Qar7rxuW+ZOsbWOt56FvvI93xInqsZDC5fsekx1AlIO4KIJ5M+D0p0SqSH156EpmZyXq630B8OlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.7.tgz", + "integrity": "sha512-PLgBVk3fzbmEjBJ/u8kFzOqS9tUeDjiaWud/rRym/yjCo/M9cASPlnrd2ZmmZpQT40fOOrvR8jh+n8jikrOhNA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz", + "integrity": "sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "regenerator-transform": "^0.15.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz", + "integrity": "sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.4.tgz", + "integrity": "sha512-8hsyG+KUYGY0coX6KUCDancA0Vw225KJ2HJO0yCNr1vq5r+lJTleDaJf0K7iOhjw4SWhu03TMBzYTJ9krmzULQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.8", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.6", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz", + "integrity": "sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz", + "integrity": "sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz", + "integrity": "sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz", + "integrity": "sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.8.tgz", + "integrity": "sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.2.tgz", + "integrity": "sha512-lBwRvjSmqiMYe/pS0+1gggjJleUJi7NzjvQ1Fkqtt69hBa/0t1YuW/MLQMAPixfwaQOHUXsd6jeU3Z+vdGv3+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-create-class-features-plugin": "^7.25.0", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/plugin-syntax-typescript": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz", + "integrity": "sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz", + "integrity": "sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz", + "integrity": "sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.4.tgz", + "integrity": "sha512-qesBxiWkgN1Q+31xUE9RcMk79eOXXDCv6tfyGMRSs4RGlioSg2WVyQAm07k726cSE56pa+Kb0y9epX2qaXzTvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.2", + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.4.tgz", + "integrity": "sha512-W9Gyo+KmcxjGahtt3t9fb14vFRWvPpu5pT6GBlovAK6BTBcxgjfVMSQCfJl4oi35ODrxP6xx2Wr8LNST57Mraw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.25.4", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-validator-option": "^7.24.8", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.3", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.0", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.0", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.0", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.24.7", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.24.7", + "@babel/plugin-transform-async-generator-functions": "^7.25.4", + "@babel/plugin-transform-async-to-generator": "^7.24.7", + "@babel/plugin-transform-block-scoped-functions": "^7.24.7", + "@babel/plugin-transform-block-scoping": "^7.25.0", + "@babel/plugin-transform-class-properties": "^7.25.4", + "@babel/plugin-transform-class-static-block": "^7.24.7", + "@babel/plugin-transform-classes": "^7.25.4", + "@babel/plugin-transform-computed-properties": "^7.24.7", + "@babel/plugin-transform-destructuring": "^7.24.8", + "@babel/plugin-transform-dotall-regex": "^7.24.7", + "@babel/plugin-transform-duplicate-keys": "^7.24.7", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.0", + "@babel/plugin-transform-dynamic-import": "^7.24.7", + "@babel/plugin-transform-exponentiation-operator": "^7.24.7", + "@babel/plugin-transform-export-namespace-from": "^7.24.7", + "@babel/plugin-transform-for-of": "^7.24.7", + "@babel/plugin-transform-function-name": "^7.25.1", + "@babel/plugin-transform-json-strings": "^7.24.7", + "@babel/plugin-transform-literals": "^7.25.2", + "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", + "@babel/plugin-transform-member-expression-literals": "^7.24.7", + "@babel/plugin-transform-modules-amd": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.8", + "@babel/plugin-transform-modules-systemjs": "^7.25.0", + "@babel/plugin-transform-modules-umd": "^7.24.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", + "@babel/plugin-transform-new-target": "^7.24.7", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", + "@babel/plugin-transform-numeric-separator": "^7.24.7", + "@babel/plugin-transform-object-rest-spread": "^7.24.7", + "@babel/plugin-transform-object-super": "^7.24.7", + "@babel/plugin-transform-optional-catch-binding": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.8", + "@babel/plugin-transform-parameters": "^7.24.7", + "@babel/plugin-transform-private-methods": "^7.25.4", + "@babel/plugin-transform-private-property-in-object": "^7.24.7", + "@babel/plugin-transform-property-literals": "^7.24.7", + "@babel/plugin-transform-regenerator": "^7.24.7", + "@babel/plugin-transform-reserved-words": "^7.24.7", + "@babel/plugin-transform-shorthand-properties": "^7.24.7", + "@babel/plugin-transform-spread": "^7.24.7", + "@babel/plugin-transform-sticky-regex": "^7.24.7", + "@babel/plugin-transform-template-literals": "^7.24.7", + "@babel/plugin-transform-typeof-symbol": "^7.24.8", + "@babel/plugin-transform-unicode-escapes": "^7.24.7", + "@babel/plugin-transform-unicode-property-regex": "^7.24.7", + "@babel/plugin-transform-unicode-regex": "^7.24.7", + "@babel/plugin-transform-unicode-sets-regex": "^7.25.4", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.6", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.37.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.24.7.tgz", + "integrity": "sha512-AAH4lEkpmzFWrGVlHaxJB7RLH21uPQ9+He+eFLWHmF9IuFQVugz8eAsamaW0DXRrTfco5zj1wWtpdcXJUOfsag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "@babel/plugin-transform-react-display-name": "^7.24.7", + "@babel/plugin-transform-react-jsx": "^7.24.7", + "@babel/plugin-transform-react-jsx-development": "^7.24.7", + "@babel/plugin-transform-react-pure-annotations": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.24.7.tgz", + "integrity": "sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "@babel/plugin-syntax-jsx": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.7", + "@babel/plugin-transform-typescript": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@babel/runtime": { + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.6.tgz", + "integrity": "sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz", + "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.25.0", + "@babel/types": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.6.tgz", + "integrity": "sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.6", + "@babel/parser": "^7.25.6", + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.6", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.6.tgz", + "integrity": "sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@flarum/prettier-config": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@flarum/prettier-config/-/prettier-config-1.0.0.tgz", + "integrity": "sha512-3/AcliIi5jPt4i7COb5hsLv6hm4EeXT9yI9I2EuEvhPi2QR+O9Y/8wrqRuO5mDkRzCIhUY+mjIL/f9770Zwfqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@hypnosphi/create-react-context": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@hypnosphi/create-react-context/-/create-react-context-0.3.1.tgz", + "integrity": "sha512-V1klUed202XahrWJLLOT3EXNeCpFHCcJntdFGI15ntCwau+jfT386w7OFTMaCqOgXUH1fa0w/I1oZs+i/Rfr0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "gud": "^1.0.0", + "warning": "^4.0.3" + }, + "peerDependencies": { + "prop-types": "^15.0.0", + "react": ">=0.14.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.28", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.28.tgz", + "integrity": "sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@semantic-ui-react/event-stack": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@semantic-ui-react/event-stack/-/event-stack-3.1.3.tgz", + "integrity": "sha512-FdTmJyWvJaYinHrKRsMLDrz4tTMGdFfds299Qory53hBugiDvGC0tEJf+cHsi5igDwWb/CLOgOiChInHwq8URQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "exenv": "^1.2.2", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": "^16.0.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@stardust-ui/react-component-event-listener": { + "version": "0.38.0", + "resolved": "https://registry.npmjs.org/@stardust-ui/react-component-event-listener/-/react-component-event-listener-0.38.0.tgz", + "integrity": "sha512-sIP/e0dyOrrlb8K7KWumfMxj/gAifswTBC4o68Aa+C/GA73ccRp/6W1VlHvF/dlOR4KLsA+5SKnhjH36xzPsWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.1.2", + "prop-types": "^15.7.2" + }, + "peerDependencies": { + "react": "^16.8.0", + "react-dom": "^16.8.0" + } + }, + "node_modules/@stardust-ui/react-component-ref": { + "version": "0.38.0", + "resolved": "https://registry.npmjs.org/@stardust-ui/react-component-ref/-/react-component-ref-0.38.0.tgz", + "integrity": "sha512-xjs6WnvJVueSIXMWw0C3oWIgAPpcD03qw43oGOjUXqFktvpNkB73JoKIhS4sCrtQxBdct75qqr4ZL6JiyPcESw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.1.2", + "prop-types": "^15.7.2", + "react-is": "^16.6.3" + }, + "peerDependencies": { + "react": "^16.8.0", + "react-dom": "^16.8.0" + } + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/jquery": { + "version": "3.5.30", + "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.30.tgz", + "integrity": "sha512-nbWKkkyb919DOUxjmRVk8vwtDb0/k8FKncmUKFi+NY+QXqWltooxTrswvz4LspQwxvLdvzBN1TImr6cw3aQx2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/sizzle": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/mithril": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/@types/mithril/-/mithril-2.2.7.tgz", + "integrity": "sha512-uetxoYizBMHPELl6DSZUfO6Q/aOm+h0NUCv9bVAX2iAxfrdBSOvU9KKFl+McTtxR13F+BReYLY814pJsZvnSxg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "22.6.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.6.1.tgz", + "integrity": "sha512-V48tCfcKb/e6cVUigLAaJDAILdMP0fUW6BidkPK4GpGjXcfbnoHasCZDwz3N3yVt5we2RHm4XTQCpv0KJz9zqw==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "node_modules/@types/sizzle": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.8.tgz", + "integrity": "sha512-0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/throttle-debounce": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/throttle-debounce/-/throttle-debounce-2.1.0.tgz", + "integrity": "sha512-5eQEtSCoESnh2FsiLTxE121IiE60hnMqcb435fShf4bpLRjEu1Eoekht23y6zXS9Ts3l+Szu3TARnTsA0GkOkQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", + "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", + "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", + "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.12.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", + "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-opt": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1", + "@webassemblyjs/wast-printer": "1.12.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", + "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", + "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", + "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", + "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webpack-cli/configtest": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz", + "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + } + }, + "node_modules/@webpack-cli/info": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz", + "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + } + }, + "node_modules/@webpack-cli/serve": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz", + "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + }, + "peerDependenciesMeta": { + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/acorn": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-attributes": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", + "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/babel-loader": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.4.1.tgz", + "integrity": "sha512-nXzRChX+Z1GoE6yWavBQg6jDslyFF3SDjl2paADuoQtQW10JqShJt62R6eJQ5m/pjJFDT8xgKIWSP85OY8eXeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.4", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 8.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", + "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.2", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.10.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", + "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.2", + "core-js-compat": "^3.38.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", + "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz", + "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001646", + "electron-to-chromium": "^1.5.4", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001663", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001663.tgz", + "integrity": "sha512-o9C3X27GLKbLeTYZ6HBOLU1tsAcBZsLis28wrVzddShCS16RujjHp9GDHKZqrB3meE0YjhawvMFsGb/igqiPzA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/classnames": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", + "dev": true, + "license": "MIT" + }, + "node_modules/cli-table3": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz", + "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/core-js-compat": { + "version": "3.38.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.38.1.tgz", + "integrity": "sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/dayjs": { + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", + "dev": true, + "license": "MIT" + }, + "node_modules/debounce": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", + "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-equal": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.2.tgz", + "integrity": "sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arguments": "^1.1.1", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.5.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true, + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.28", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.28.tgz", + "integrity": "sha512-VufdJl+rzaKZoYVUijN13QcXVF5dWPZANeFTLNy+OSpHdDL5ynXTF35+60RSBbaQYB1ae723lQXHCrf4pyLsMw==", + "dev": true, + "license": "ISC" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/envinfo": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.14.0.tgz", + "integrity": "sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg==", + "dev": true, + "license": "MIT", + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", + "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", + "dev": true, + "license": "MIT" + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/exenv": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz", + "integrity": "sha512-Z+ktTxTwv9ILfgKCk32OX3n/doe+OcLTRtqK9pcL+JsP3J1/VW8Uvl4ZjLlKqeW4rzK4oesDOGMEMRIZqtP4Iw==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "license": "MIT", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flarum-tsconfig": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/flarum-tsconfig/-/flarum-tsconfig-1.0.3.tgz", + "integrity": "sha512-//zFt0zFlPBukJvH0gRI4SQH1hLsUHYxZD+xVbuFdBaiJxmYxVMFWhmDrpA6kRT5miokZ8veuN28mwq1SzeGKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/jquery": "^3.5.5", + "@types/mithril": "^2.0.7", + "@types/throttle-debounce": "^2.1.0", + "dayjs": "^1.10.4" + } + }, + "node_modules/flarum-webpack-config": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flarum-webpack-config/-/flarum-webpack-config-2.0.2.tgz", + "integrity": "sha512-kUCaCsXL8s/OhSWleWtIppRXDNBzAf8/ewCx9OIF0zNO0hlvY5T1N0EO0AnyUJbsp5nOCdzsTo9rTRRsbKT+IA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.16.0", + "@babel/plugin-proposal-class-properties": "^7.16.0", + "@babel/plugin-proposal-private-methods": "^7.16.0", + "@babel/plugin-transform-object-assign": "^7.16.0", + "@babel/plugin-transform-react-jsx": "^7.16.0", + "@babel/plugin-transform-runtime": "^7.16.0", + "@babel/preset-env": "^7.16.0", + "@babel/preset-react": "^7.16.0", + "@babel/preset-typescript": "^7.16.0", + "@babel/runtime": "^7.16.0", + "babel-loader": "^8.2.3", + "typescript": "^4.4.4", + "webpack": "^5.76.0", + "webpack-bundle-analyzer": "^4.5.0" + }, + "peerDependencies": { + "webpack": "^5.76.0" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "license": "BSD-3-Clause", + "bin": { + "flat": "cli.js" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/gud": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gud/-/gud-1.0.0.tgz", + "integrity": "sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw==", + "dev": true, + "license": "MIT" + }, + "node_modules/gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true, + "license": "MIT" + }, + "node_modules/import-local": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/interpret": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", + "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/keyboard-key": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/keyboard-key/-/keyboard-key-1.1.0.tgz", + "integrity": "sha512-qkBzPTi3rlAKvX7k0/ub44sqOfXeLc/jcnGGmj5c7BJpU8eDrEVPyhCvNYAaoubbsLm9uGWwQJO1ytQK1a9/dQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true, + "license": "MIT" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mrmime": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", + "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/ncp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", + "integrity": "sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==", + "dev": true, + "license": "MIT", + "bin": { + "ncp": "bin/ncp" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-is": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "dev": true, + "license": "(WTFPL OR MIT)", + "bin": { + "opener": "bin/opener-bin.js" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", + "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/popper.js": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz", + "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==", + "deprecated": "You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/prettier": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", + "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/react": { + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", + "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz", + "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.19.1" + }, + "peerDependencies": { + "react": "^16.14.0" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/react-popper": { + "version": "1.3.11", + "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-1.3.11.tgz", + "integrity": "sha512-VSA/bS+pSndSF2fiasHK/PTEEAyOpX60+H5EPAjoArr8JGm+oihu4UbrqcEBpQibJxBVCpYyjAX7abJ+7DoYVg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.1.2", + "@hypnosphi/create-react-context": "^0.3.1", + "deep-equal": "^1.1.1", + "popper.js": "^1.14.4", + "prop-types": "^15.6.1", + "typed-styles": "^0.0.7", + "warning": "^4.0.2" + }, + "peerDependencies": { + "react": "0.14.x || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/rechoir": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve": "^1.20.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true, + "license": "MIT" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", + "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", + "dev": true, + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true, + "license": "MIT" + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz", + "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/scheduler": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", + "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", + "dev": true, + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/semantic-ui-react": { + "version": "0.88.2", + "resolved": "https://registry.npmjs.org/semantic-ui-react/-/semantic-ui-react-0.88.2.tgz", + "integrity": "sha512-+02kN2z8PuA/cMdvDUsHhbJmBzxxgOXVHMFr9XK7zGb0wkW9A6OPQMFokWz7ozlVtKjN6r7zsb+Qvjk/qq1OWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.1.2", + "@semantic-ui-react/event-stack": "^3.1.0", + "@stardust-ui/react-component-event-listener": "~0.38.0", + "@stardust-ui/react-component-ref": "~0.38.0", + "classnames": "^2.2.6", + "keyboard-key": "^1.0.4", + "lodash": "^4.17.15", + "prop-types": "^15.7.2", + "react-is": "^16.8.6", + "react-popper": "^1.3.4", + "shallowequal": "^1.1.0" + }, + "peerDependencies": { + "react": "^16.8.0", + "react-dom": "^16.8.0" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/sirv": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", + "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/terser": { + "version": "5.33.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.33.0.tgz", + "integrity": "sha512-JuPVaB7s1gdFKPKTelwUyRq5Sid2A3Gko2S0PncwdBq7kN9Ti9HPWDQ06MPsEDGsZeVESjKEnyGy68quBk1w6g==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.10", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", + "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.20", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.26.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/totalist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true, + "license": "0BSD" + }, + "node_modules/type-coverage-core": { + "version": "2.29.7", + "resolved": "https://registry.npmjs.org/type-coverage-core/-/type-coverage-core-2.29.7.tgz", + "integrity": "sha512-bt+bnXekw3p5NnqiZpNupOOxfUKGw2Z/YJedfGHkxpeyGLK7DZ59a6Wds8eq1oKjJc5Wulp2xL207z8FjFO14Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-glob": "3", + "minimatch": "6 || 7 || 8 || 9 || 10", + "normalize-path": "3", + "tslib": "1 || 2", + "tsutils": "3" + }, + "peerDependencies": { + "typescript": "2 || 3 || 4 || 5" + } + }, + "node_modules/type-coverage-core/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/type-coverage-core/node_modules/minimatch": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", + "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/typed-styles": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/typed-styles/-/typed-styles-0.0.7.tgz", + "integrity": "sha512-pzP0PWoZUhsECYjABgCGQlRGL1n7tOHsgwYv3oIiEpJwGhFTuty/YNeduxQYzXXa3Ge5BdT6sHYIQYpl4uJ+5Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/typescript-coverage-report": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/typescript-coverage-report/-/typescript-coverage-report-0.6.4.tgz", + "integrity": "sha512-G+0OFYxwN5oRbORlU1nKYtO00G567lcl4+nbg3MU3Y9ayFnh677dMHmAL4JGP/4Cb1IBN5h/DUQDr/z9X+9lag==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "cli-table3": "^0.6.1", + "commander": "^5.0.0", + "ncp": "^2.0.0", + "react": "^16.13.1", + "react-dom": "^16.13.1", + "rimraf": "^3.0.2", + "semantic-ui-react": "^0.88.2", + "type-coverage-core": "^2.17.2" + }, + "bin": { + "typescript-coverage-report": "dist/bin/typescript-coverage-report.js" + }, + "peerDependencies": { + "typescript": "2 || 3 || 4" + } + }, + "node_modules/typescript-coverage-report/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/typescript-coverage-report/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/typescript-coverage-report/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/typescript-coverage-report/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/typescript-coverage-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/typescript-coverage-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "dev": true, + "license": "MIT" + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", + "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", + "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/watchpack": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack": { + "version": "5.94.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.94.0.tgz", + "integrity": "sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.5", + "@webassemblyjs/ast": "^1.12.1", + "@webassemblyjs/wasm-edit": "^1.12.1", + "@webassemblyjs/wasm-parser": "^1.12.1", + "acorn": "^8.7.1", + "acorn-import-attributes": "^1.9.5", + "browserslist": "^4.21.10", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.17.1", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.10", + "watchpack": "^2.4.1", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-bundle-analyzer": { + "version": "4.10.2", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.2.tgz", + "integrity": "sha512-vJptkMm9pk5si4Bv922ZbKLV8UTT4zib4FPgXMhgzUny0bfDDkLXAVQs3ly3fS4/TN9ROFtb0NFrm04UXFE/Vw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@discoveryjs/json-ext": "0.5.7", + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "commander": "^7.2.0", + "debounce": "^1.2.1", + "escape-string-regexp": "^4.0.0", + "gzip-size": "^6.0.0", + "html-escaper": "^2.0.2", + "opener": "^1.5.2", + "picocolors": "^1.0.0", + "sirv": "^2.0.3", + "ws": "^7.3.1" + }, + "bin": { + "webpack-bundle-analyzer": "lib/bin/analyzer.js" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/webpack-cli": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz", + "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^2.1.1", + "@webpack-cli/info": "^2.0.2", + "@webpack-cli/serve": "^2.0.5", + "colorette": "^2.0.14", + "commander": "^10.0.1", + "cross-spawn": "^7.0.3", + "envinfo": "^7.7.3", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^3.1.1", + "rechoir": "^0.8.0", + "webpack-merge": "^5.7.3" + }, + "bin": { + "webpack-cli": "bin/cli.js" + }, + "engines": { + "node": ">=14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "5.x.x" + }, + "peerDependenciesMeta": { + "@webpack-cli/generators": { + "optional": true + }, + "webpack-bundle-analyzer": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/webpack-cli/node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/webpack-merge": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", + "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/yarn": { + "version": "1.22.22", + "resolved": "https://registry.npmjs.org/yarn/-/yarn-1.22.22.tgz", + "integrity": "sha512-prL3kGtyG7o9Z9Sv8IPfBNrWTDmXB4Qbes8A9rEzt6wkJV8mUvoirjU0Mp3GGAU06Y0XQyA3/2/RQFVuK7MTfg==", + "hasInstallScript": true, + "license": "BSD-2-Clause", + "bin": { + "yarn": "bin/yarn.js", + "yarnpkg": "bin/yarn.js" + }, + "engines": { + "node": ">=4.0.0" + } + } + } +} diff --git a/js/package.json b/js/package.json index 252e6fd..f6593c9 100644 --- a/js/package.json +++ b/js/package.json @@ -7,10 +7,10 @@ "@flarum/prettier-config": "^1.0.0", "flarum-tsconfig": "^1.0.3", "flarum-webpack-config": "^2.0.2", - "webpack": "^5.88.0", - "webpack-cli": "^5.1.4", "prettier": "^3.3.3", - "typescript-coverage-report": "^0.6.1" + "typescript-coverage-report": "^0.6.1", + "webpack": "^5.88.0", + "webpack-cli": "^5.1.4" }, "scripts": { "dev": "webpack --mode development --watch", @@ -23,5 +23,8 @@ "post-build-typings": "find dist-typings -type f -name '*.d.ts' -print0 | xargs -0 sed -i 's,../src/@types,@types,g'", "check-typings": "tsc --noEmit --emitDeclarationOnly false", "check-typings-coverage": "typescript-coverage-report" + }, + "dependencies": { + "yarn": "^1.22.22" } } diff --git a/js/src/@types/shims.d.ts b/js/src/@types/shims.d.ts index a6d49d4..bef9159 100644 --- a/js/src/@types/shims.d.ts +++ b/js/src/@types/shims.d.ts @@ -14,7 +14,6 @@ declare module 'flarum/common/models/Discussion' { hasBestAnswer(): boolean | undefined; bestAnswerPost(): Post | null; bestAnswerUser(): User | null; - canSelectBestAnswer(): boolean; bestAnswerSetAt(): Date | null; } } @@ -37,3 +36,9 @@ declare module 'flarum/common/models/User' { bestAnswerCount(): number; } } + +declare module 'flarum/common/models/Post' { + export default interface Post { + canSelectAsBestAnswer(): boolean; + } +} \ No newline at end of file diff --git a/js/src/admin/components/BestAnswerSettingsPage.tsx b/js/src/admin/components/BestAnswerSettingsPage.tsx index 123e4eb..c1b2aff 100644 --- a/js/src/admin/components/BestAnswerSettingsPage.tsx +++ b/js/src/admin/components/BestAnswerSettingsPage.tsx @@ -31,12 +31,6 @@ export default class BestAnswerSettingsPage extends ExtensionPage {

    {app.translator.trans('fof-best-answer.admin.settings.label.general')}

    - {this.buildSettingComponent({ - type: 'boolean', - setting: 'fof-best-answer.allow_select_own_post', - label: app.translator.trans('fof-best-answer.admin.settings.allow_select_own_post'), - help: app.translator.trans('fof-best-answer.admin.settings.allow_select_own_post_help'), - })} {this.buildSettingComponent({ type: 'boolean', setting: 'fof-best-answer.use_alternative_ui', diff --git a/js/src/admin/index.ts b/js/src/admin/index.ts index e986c22..3bc6e7e 100644 --- a/js/src/admin/index.ts +++ b/js/src/admin/index.ts @@ -25,7 +25,14 @@ app.initializers.add( permission: 'discussion.selectBestAnswerNotOwnDiscussion', }, 'reply' - ); + ).registerPermission( + { + icon: 'far fa-comment', + label: app.translator.trans('fof-best-answer.admin.permissions.allow_select_own_post'), + permission: 'discussion.selectBestAnswerOwnPost', + }, + 'reply' + ); addBestAnswerCountSort(); }, diff --git a/js/src/forum/addBestAnswerAction.tsx b/js/src/forum/addBestAnswerAction.tsx index e86dc2c..8b25c0b 100644 --- a/js/src/forum/addBestAnswerAction.tsx +++ b/js/src/forum/addBestAnswerAction.tsx @@ -10,12 +10,7 @@ import extractText from 'flarum/common/utils/extractText'; export default function addBestAnswerAction() { const ineligible = (discussion: Discussion, post: Post) => { - return post.isHidden() || post.number() === 1 || !discussion.canSelectBestAnswer() || !app.session.user; - }; - - const blockSelectOwnPost = (post: Post): boolean => { - const user = post.user(); - return !app.forum.attribute('canSelectBestAnswerOwnPost') && user !== false && user.id() === app.session.user?.id(); + return post.isHidden() || post.number() === 1 || !post.canSelectBestAnswer() || !app.session.user; }; const isThisBestAnswer = (discussion: Discussion, post: Post): boolean => { @@ -71,7 +66,7 @@ export default function addBestAnswerAction() { if (post.contentType() !== 'comment') return; - if (ineligible(discussion, post) || blockSelectOwnPost(post) || !app.current.matches(DiscussionPage)) return; + if (ineligible(discussion, post) || !app.current.matches(DiscussionPage)) return; items.add( 'bestAnswer', @@ -100,7 +95,7 @@ export default function addBestAnswerAction() { post.pushAttributes({ isBestAnswer }); - if (ineligible(discussion, post) || blockSelectOwnPost(post) || !app.current.matches(DiscussionPage)) return; + if (ineligible(discussion, post) || !app.current.matches(DiscussionPage)) return; items.add( 'bestAnswer', diff --git a/js/src/forum/extend.ts b/js/src/forum/extend.ts index 38c5cd3..3f4c11d 100644 --- a/js/src/forum/extend.ts +++ b/js/src/forum/extend.ts @@ -1,7 +1,7 @@ import Discussion from 'flarum/common/models/Discussion'; import commonExtend from '../common/extend'; import Extend from 'flarum/common/extenders'; -import type Post from 'flarum/common/models/Post'; +import Post from 'flarum/common/models/Post'; import User from 'flarum/common/models/User'; import Model from 'flarum/common/Model'; @@ -12,9 +12,11 @@ export default [ .hasOne('bestAnswerPost') .hasOne('bestAnswerUser') .attribute('hasBestAnswer') - .attribute('canSelectBestAnswer') .attribute('bestAnswerSetAt', Model.transformDate), new Extend.Model(User) // .attribute('bestAnswerCount'), + + new Extend.Model(Post) // + .attribute('canSelectBestAnswer'), ]; diff --git a/js/yarn.lock b/js/yarn.lock index ad9ec56..737435e 100644 --- a/js/yarn.lock +++ b/js/yarn.lock @@ -4,7 +4,7 @@ "@ampproject/remapping@^2.2.0": version "2.3.0" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4" + resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz" integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== dependencies: "@jridgewell/gen-mapping" "^0.3.5" @@ -12,7 +12,7 @@ "@babel/code-frame@^7.24.7": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.7.tgz#882fd9e09e8ee324e496bd040401c6f046ef4465" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz" integrity sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA== dependencies: "@babel/highlight" "^7.24.7" @@ -20,12 +20,12 @@ "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.25.2", "@babel/compat-data@^7.25.4": version "7.25.4" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.25.4.tgz#7d2a80ce229890edcf4cc259d4d696cb4dae2fcb" + resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.4.tgz" integrity sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ== "@babel/core@^7.16.0": version "7.25.2" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.25.2.tgz#ed8eec275118d7613e77a352894cd12ded8eba77" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz" integrity sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA== dependencies: "@ampproject/remapping" "^2.2.0" @@ -46,7 +46,7 @@ "@babel/generator@^7.25.0", "@babel/generator@^7.25.6": version "7.25.6" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.25.6.tgz#0df1ad8cb32fe4d2b01d8bf437f153d19342a87c" + resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.25.6.tgz" integrity sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw== dependencies: "@babel/types" "^7.25.6" @@ -56,14 +56,14 @@ "@babel/helper-annotate-as-pure@^7.24.7": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz#5373c7bc8366b12a033b4be1ac13a206c6656aab" + resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz" integrity sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg== dependencies: "@babel/types" "^7.24.7" "@babel/helper-builder-binary-assignment-operator-visitor@^7.24.7": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz#37d66feb012024f2422b762b9b2a7cfe27c7fba3" + resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz" integrity sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA== dependencies: "@babel/traverse" "^7.24.7" @@ -71,7 +71,7 @@ "@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.24.7", "@babel/helper-compilation-targets@^7.24.8", "@babel/helper-compilation-targets@^7.25.2": version "7.25.2" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz#e1d9410a90974a3a5a66e84ff55ef62e3c02d06c" + resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz" integrity sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw== dependencies: "@babel/compat-data" "^7.25.2" @@ -82,7 +82,7 @@ "@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.24.7", "@babel/helper-create-class-features-plugin@^7.25.0", "@babel/helper-create-class-features-plugin@^7.25.4": version "7.25.4" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.4.tgz#57eaf1af38be4224a9d9dd01ddde05b741f50e14" + resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.4.tgz" integrity sha512-ro/bFs3/84MDgDmMwbcHgDa8/E6J3QKNTk4xJJnVeFtGE+tL0K26E3pNxhYz2b67fJpt7Aphw5XcploKXuCvCQ== dependencies: "@babel/helper-annotate-as-pure" "^7.24.7" @@ -95,7 +95,7 @@ "@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.24.7", "@babel/helper-create-regexp-features-plugin@^7.25.0", "@babel/helper-create-regexp-features-plugin@^7.25.2": version "7.25.2" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.2.tgz#24c75974ed74183797ffd5f134169316cd1808d9" + resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.2.tgz" integrity sha512-+wqVGP+DFmqwFD3EH6TMTfUNeqDehV3E/dl+Sd54eaXqm17tEUNbEIn4sVivVowbvUpOtIGxdo3GoXyDH9N/9g== dependencies: "@babel/helper-annotate-as-pure" "^7.24.7" @@ -104,7 +104,7 @@ "@babel/helper-define-polyfill-provider@^0.6.2": version "0.6.2" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz#18594f789c3594acb24cfdb4a7f7b7d2e8bd912d" + resolved "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz" integrity sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ== dependencies: "@babel/helper-compilation-targets" "^7.22.6" @@ -115,7 +115,7 @@ "@babel/helper-member-expression-to-functions@^7.24.8": version "7.24.8" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz#6155e079c913357d24a4c20480db7c712a5c3fb6" + resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz" integrity sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA== dependencies: "@babel/traverse" "^7.24.8" @@ -123,7 +123,7 @@ "@babel/helper-module-imports@^7.24.7": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz#f2f980392de5b84c3328fc71d38bd81bbb83042b" + resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz" integrity sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA== dependencies: "@babel/traverse" "^7.24.7" @@ -131,7 +131,7 @@ "@babel/helper-module-transforms@^7.24.7", "@babel/helper-module-transforms@^7.24.8", "@babel/helper-module-transforms@^7.25.0", "@babel/helper-module-transforms@^7.25.2": version "7.25.2" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz#ee713c29768100f2776edf04d4eb23b8d27a66e6" + resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz" integrity sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ== dependencies: "@babel/helper-module-imports" "^7.24.7" @@ -141,19 +141,19 @@ "@babel/helper-optimise-call-expression@^7.24.7": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz#8b0a0456c92f6b323d27cfd00d1d664e76692a0f" + resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz" integrity sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A== dependencies: "@babel/types" "^7.24.7" "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.24.7", "@babel/helper-plugin-utils@^7.24.8", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.24.8" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz#94ee67e8ec0e5d44ea7baeb51e571bd26af07878" + resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz" integrity sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg== "@babel/helper-remap-async-to-generator@^7.24.7", "@babel/helper-remap-async-to-generator@^7.25.0": version "7.25.0" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.0.tgz#d2f0fbba059a42d68e5e378feaf181ef6055365e" + resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.0.tgz" integrity sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw== dependencies: "@babel/helper-annotate-as-pure" "^7.24.7" @@ -162,7 +162,7 @@ "@babel/helper-replace-supers@^7.24.7", "@babel/helper-replace-supers@^7.25.0": version "7.25.0" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.25.0.tgz#ff44deac1c9f619523fe2ca1fd650773792000a9" + resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.0.tgz" integrity sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg== dependencies: "@babel/helper-member-expression-to-functions" "^7.24.8" @@ -171,7 +171,7 @@ "@babel/helper-simple-access@^7.24.7": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz#bcade8da3aec8ed16b9c4953b74e506b51b5edb3" + resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz" integrity sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg== dependencies: "@babel/traverse" "^7.24.7" @@ -179,7 +179,7 @@ "@babel/helper-skip-transparent-expression-wrappers@^7.24.7": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz#5f8fa83b69ed5c27adc56044f8be2b3ea96669d9" + resolved "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz" integrity sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ== dependencies: "@babel/traverse" "^7.24.7" @@ -187,22 +187,22 @@ "@babel/helper-string-parser@^7.24.8": version "7.24.8" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz#5b3329c9a58803d5df425e5785865881a81ca48d" + resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz" integrity sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ== "@babel/helper-validator-identifier@^7.24.7": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz#75b889cfaf9e35c2aaf42cf0d72c8e91719251db" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz" integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w== "@babel/helper-validator-option@^7.24.7", "@babel/helper-validator-option@^7.24.8": version "7.24.8" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz#3725cdeea8b480e86d34df15304806a06975e33d" + resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz" integrity sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q== "@babel/helper-wrap-function@^7.25.0": version "7.25.0" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.25.0.tgz#dab12f0f593d6ca48c0062c28bcfb14ebe812f81" + resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.0.tgz" integrity sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ== dependencies: "@babel/template" "^7.25.0" @@ -211,7 +211,7 @@ "@babel/helpers@^7.25.0": version "7.25.6" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.25.6.tgz#57ee60141829ba2e102f30711ffe3afab357cc60" + resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.6.tgz" integrity sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q== dependencies: "@babel/template" "^7.25.0" @@ -219,7 +219,7 @@ "@babel/highlight@^7.24.7": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.7.tgz#a05ab1df134b286558aae0ed41e6c5f731bf409d" + resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz" integrity sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw== dependencies: "@babel/helper-validator-identifier" "^7.24.7" @@ -229,14 +229,14 @@ "@babel/parser@^7.25.0", "@babel/parser@^7.25.6": version "7.25.6" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.25.6.tgz#85660c5ef388cbbf6e3d2a694ee97a38f18afe2f" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.25.6.tgz" integrity sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q== dependencies: "@babel/types" "^7.25.6" "@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.25.3": version "7.25.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.3.tgz#dca427b45a6c0f5c095a1c639dfe2476a3daba7f" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.3.tgz" integrity sha512-wUrcsxZg6rqBXG05HG1FPYgsP6EvwF4WpBbxIpWIIYnH8wG0gzx3yZY3dtEHas4sTAOGkbTsc9EGPxwff8lRoA== dependencies: "@babel/helper-plugin-utils" "^7.24.8" @@ -244,21 +244,21 @@ "@babel/plugin-bugfix-safari-class-field-initializer-scope@^7.25.0": version "7.25.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.0.tgz#cd0c583e01369ef51676bdb3d7b603e17d2b3f73" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.0.tgz" integrity sha512-Bm4bH2qsX880b/3ziJ8KD711LT7z4u8CFudmjqle65AZj/HNUFhEf90dqYv6O86buWvSBmeQDjv0Tn2aF/bIBA== dependencies: "@babel/helper-plugin-utils" "^7.24.8" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.25.0": version "7.25.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.0.tgz#749bde80356b295390954643de7635e0dffabe73" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.0.tgz" integrity sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA== dependencies: "@babel/helper-plugin-utils" "^7.24.8" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.24.7": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz#e4eabdd5109acc399b38d7999b2ef66fc2022f89" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz" integrity sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ== dependencies: "@babel/helper-plugin-utils" "^7.24.7" @@ -267,7 +267,7 @@ "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.25.0": version "7.25.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.0.tgz#3a82a70e7cb7294ad2559465ebcb871dfbf078fb" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.0.tgz" integrity sha512-tggFrk1AIShG/RUQbEwt2Tr/E+ObkfwrPjR6BjbRvsx24+PSjK8zrq0GWPNCjo8qpRx4DuJzlcvWJqlm+0h3kw== dependencies: "@babel/helper-plugin-utils" "^7.24.8" @@ -275,7 +275,7 @@ "@babel/plugin-proposal-class-properties@^7.16.0": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz" integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== dependencies: "@babel/helper-create-class-features-plugin" "^7.18.6" @@ -283,7 +283,7 @@ "@babel/plugin-proposal-private-methods@^7.16.0": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz" integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA== dependencies: "@babel/helper-create-class-features-plugin" "^7.18.6" @@ -291,145 +291,145 @@ "@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": version "7.21.0-placeholder-for-preset-env.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz" integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz" integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-class-properties@^7.12.13": version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz" integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== dependencies: "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-syntax-class-static-block@^7.14.5": version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz" integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-dynamic-import@^7.8.3": version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz" integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-export-namespace-from@^7.8.3": version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz" integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-import-assertions@^7.24.7": version "7.25.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.25.6.tgz#bb918905c58711b86f9710d74a3744b6c56573b5" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.25.6.tgz" integrity sha512-aABl0jHw9bZ2karQ/uUD6XP4u0SG22SJrOHFoL6XB1R7dTovOP4TzTlsxOYC5yQ1pdscVK2JTUnF6QL3ARoAiQ== dependencies: "@babel/helper-plugin-utils" "^7.24.8" "@babel/plugin-syntax-import-attributes@^7.24.7": version "7.25.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.25.6.tgz#6d4c78f042db0e82fd6436cd65fec5dc78ad2bde" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.25.6.tgz" integrity sha512-sXaDXaJN9SNLymBdlWFA+bjzBhFD617ZaFiY13dGt7TVslVvVgA6fkZOP7Ki3IGElC45lwHdOTrCtKZGVAWeLQ== dependencies: "@babel/helper-plugin-utils" "^7.24.8" "@babel/plugin-syntax-import-meta@^7.10.4": version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz" integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-json-strings@^7.8.3": version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz" integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-jsx@^7.24.7": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz#39a1fa4a7e3d3d7f34e2acc6be585b718d30e02d" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz" integrity sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ== dependencies: "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-syntax-logical-assignment-operators@^7.10.4": version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz" integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz" integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-numeric-separator@^7.10.4": version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz" integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-object-rest-spread@^7.8.3": version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz" integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-optional-catch-binding@^7.8.3": version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz" integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-optional-chaining@^7.8.3": version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz" integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-private-property-in-object@^7.14.5": version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz" integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-top-level-await@^7.14.5": version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz" integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-typescript@^7.24.7": version "7.25.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.4.tgz#04db9ce5a9043d9c635e75ae7969a2cd50ca97ff" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.4.tgz" integrity sha512-uMOCoHVU52BsSWxPOMVv5qKRdeSlPuImUCB2dlPuBSU+W2/ROE7/Zg8F2Kepbk+8yBa68LlRKxO+xgEVWorsDg== dependencies: "@babel/helper-plugin-utils" "^7.24.8" "@babel/plugin-syntax-unicode-sets-regex@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz" integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.18.6" @@ -437,14 +437,14 @@ "@babel/plugin-transform-arrow-functions@^7.24.7": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz#4f6886c11e423bd69f3ce51dbf42424a5f275514" + resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz" integrity sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ== dependencies: "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-transform-async-generator-functions@^7.25.4": version "7.25.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.4.tgz#2afd4e639e2d055776c9f091b6c0c180ed8cf083" + resolved "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.4.tgz" integrity sha512-jz8cV2XDDTqjKPwVPJBIjORVEmSGYhdRa8e5k5+vN+uwcjSrSxUaebBRa4ko1jqNF2uxyg8G6XYk30Jv285xzg== dependencies: "@babel/helper-plugin-utils" "^7.24.8" @@ -454,7 +454,7 @@ "@babel/plugin-transform-async-to-generator@^7.24.7": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz#72a3af6c451d575842a7e9b5a02863414355bdcc" + resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz" integrity sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA== dependencies: "@babel/helper-module-imports" "^7.24.7" @@ -463,21 +463,21 @@ "@babel/plugin-transform-block-scoped-functions@^7.24.7": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz#a4251d98ea0c0f399dafe1a35801eaba455bbf1f" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz" integrity sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ== dependencies: "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-transform-block-scoping@^7.25.0": version "7.25.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.0.tgz#23a6ed92e6b006d26b1869b1c91d1b917c2ea2ac" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.0.tgz" integrity sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ== dependencies: "@babel/helper-plugin-utils" "^7.24.8" "@babel/plugin-transform-class-properties@^7.25.4": version "7.25.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.4.tgz#bae7dbfcdcc2e8667355cd1fb5eda298f05189fd" + resolved "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.4.tgz" integrity sha512-nZeZHyCWPfjkdU5pA/uHiTaDAFUEqkpzf1YoQT2NeSynCGYq9rxfyI3XpQbfx/a0hSnFH6TGlEXvae5Vi7GD8g== dependencies: "@babel/helper-create-class-features-plugin" "^7.25.4" @@ -485,7 +485,7 @@ "@babel/plugin-transform-class-static-block@^7.24.7": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz#c82027ebb7010bc33c116d4b5044fbbf8c05484d" + resolved "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz" integrity sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ== dependencies: "@babel/helper-create-class-features-plugin" "^7.24.7" @@ -494,7 +494,7 @@ "@babel/plugin-transform-classes@^7.25.4": version "7.25.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.4.tgz#d29dbb6a72d79f359952ad0b66d88518d65ef89a" + resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.4.tgz" integrity sha512-oexUfaQle2pF/b6E0dwsxQtAol9TLSO88kQvym6HHBWFliV2lGdrPieX+WgMRLSJDVzdYywk7jXbLPuO2KLTLg== dependencies: "@babel/helper-annotate-as-pure" "^7.24.7" @@ -506,7 +506,7 @@ "@babel/plugin-transform-computed-properties@^7.24.7": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz#4cab3214e80bc71fae3853238d13d097b004c707" + resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz" integrity sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ== dependencies: "@babel/helper-plugin-utils" "^7.24.7" @@ -514,14 +514,14 @@ "@babel/plugin-transform-destructuring@^7.24.8": version "7.24.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.8.tgz#c828e814dbe42a2718a838c2a2e16a408e055550" + resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.8.tgz" integrity sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ== dependencies: "@babel/helper-plugin-utils" "^7.24.8" "@babel/plugin-transform-dotall-regex@^7.24.7": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz#5f8bf8a680f2116a7207e16288a5f974ad47a7a0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz" integrity sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.24.7" @@ -529,14 +529,14 @@ "@babel/plugin-transform-duplicate-keys@^7.24.7": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz#dd20102897c9a2324e5adfffb67ff3610359a8ee" + resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz" integrity sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw== dependencies: "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-transform-duplicate-named-capturing-groups-regex@^7.25.0": version "7.25.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.0.tgz#809af7e3339466b49c034c683964ee8afb3e2604" + resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.0.tgz" integrity sha512-YLpb4LlYSc3sCUa35un84poXoraOiQucUTTu8X1j18JV+gNa8E0nyUf/CjZ171IRGr4jEguF+vzJU66QZhn29g== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.25.0" @@ -544,7 +544,7 @@ "@babel/plugin-transform-dynamic-import@^7.24.7": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz#4d8b95e3bae2b037673091aa09cd33fecd6419f4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz" integrity sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg== dependencies: "@babel/helper-plugin-utils" "^7.24.7" @@ -552,7 +552,7 @@ "@babel/plugin-transform-exponentiation-operator@^7.24.7": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz#b629ee22645f412024297d5245bce425c31f9b0d" + resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz" integrity sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ== dependencies: "@babel/helper-builder-binary-assignment-operator-visitor" "^7.24.7" @@ -560,7 +560,7 @@ "@babel/plugin-transform-export-namespace-from@^7.24.7": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz#176d52d8d8ed516aeae7013ee9556d540c53f197" + resolved "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz" integrity sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA== dependencies: "@babel/helper-plugin-utils" "^7.24.7" @@ -568,7 +568,7 @@ "@babel/plugin-transform-for-of@^7.24.7": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz#f25b33f72df1d8be76399e1b8f3f9d366eb5bc70" + resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz" integrity sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g== dependencies: "@babel/helper-plugin-utils" "^7.24.7" @@ -576,7 +576,7 @@ "@babel/plugin-transform-function-name@^7.25.1": version "7.25.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.1.tgz#b85e773097526c1a4fc4ba27322748643f26fc37" + resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.1.tgz" integrity sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA== dependencies: "@babel/helper-compilation-targets" "^7.24.8" @@ -585,7 +585,7 @@ "@babel/plugin-transform-json-strings@^7.24.7": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz#f3e9c37c0a373fee86e36880d45b3664cedaf73a" + resolved "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz" integrity sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw== dependencies: "@babel/helper-plugin-utils" "^7.24.7" @@ -593,14 +593,14 @@ "@babel/plugin-transform-literals@^7.25.2": version "7.25.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.2.tgz#deb1ad14fc5490b9a65ed830e025bca849d8b5f3" + resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.2.tgz" integrity sha512-HQI+HcTbm9ur3Z2DkO+jgESMAMcYLuN/A7NRw9juzxAezN9AvqvUTnpKP/9kkYANz6u7dFlAyOu44ejuGySlfw== dependencies: "@babel/helper-plugin-utils" "^7.24.8" "@babel/plugin-transform-logical-assignment-operators@^7.24.7": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz#a58fb6eda16c9dc8f9ff1c7b1ba6deb7f4694cb0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz" integrity sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw== dependencies: "@babel/helper-plugin-utils" "^7.24.7" @@ -608,14 +608,14 @@ "@babel/plugin-transform-member-expression-literals@^7.24.7": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz#3b4454fb0e302e18ba4945ba3246acb1248315df" + resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz" integrity sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw== dependencies: "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-transform-modules-amd@^7.24.7": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz#65090ed493c4a834976a3ca1cde776e6ccff32d7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz" integrity sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg== dependencies: "@babel/helper-module-transforms" "^7.24.7" @@ -623,7 +623,7 @@ "@babel/plugin-transform-modules-commonjs@^7.24.7", "@babel/plugin-transform-modules-commonjs@^7.24.8": version "7.24.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz#ab6421e564b717cb475d6fff70ae7f103536ea3c" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz" integrity sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA== dependencies: "@babel/helper-module-transforms" "^7.24.8" @@ -632,7 +632,7 @@ "@babel/plugin-transform-modules-systemjs@^7.25.0": version "7.25.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.0.tgz#8f46cdc5f9e5af74f3bd019485a6cbe59685ea33" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.0.tgz" integrity sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw== dependencies: "@babel/helper-module-transforms" "^7.25.0" @@ -642,7 +642,7 @@ "@babel/plugin-transform-modules-umd@^7.24.7": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz#edd9f43ec549099620df7df24e7ba13b5c76efc8" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz" integrity sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A== dependencies: "@babel/helper-module-transforms" "^7.24.7" @@ -650,7 +650,7 @@ "@babel/plugin-transform-named-capturing-groups-regex@^7.24.7": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz#9042e9b856bc6b3688c0c2e4060e9e10b1460923" + resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz" integrity sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.24.7" @@ -658,14 +658,14 @@ "@babel/plugin-transform-new-target@^7.24.7": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz#31ff54c4e0555cc549d5816e4ab39241dfb6ab00" + resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz" integrity sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA== dependencies: "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-transform-nullish-coalescing-operator@^7.24.7": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz#1de4534c590af9596f53d67f52a92f12db984120" + resolved "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz" integrity sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ== dependencies: "@babel/helper-plugin-utils" "^7.24.7" @@ -673,7 +673,7 @@ "@babel/plugin-transform-numeric-separator@^7.24.7": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz#bea62b538c80605d8a0fac9b40f48e97efa7de63" + resolved "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz" integrity sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA== dependencies: "@babel/helper-plugin-utils" "^7.24.7" @@ -681,14 +681,14 @@ "@babel/plugin-transform-object-assign@^7.16.0": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.24.7.tgz#9d2cc7ee1482bd208fcc51974ca4f7649662c899" + resolved "https://registry.npmjs.org/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.24.7.tgz" integrity sha512-DOzAi77P9jSyPijHS7Z8vH0wLRcZH6wWxuIZgLAiy8FWOkcKMJmnyHjy2JM94k6A0QxlA/hlLh+R9T3GEryjNQ== dependencies: "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-transform-object-rest-spread@^7.24.7": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz#d13a2b93435aeb8a197e115221cab266ba6e55d6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz" integrity sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q== dependencies: "@babel/helper-compilation-targets" "^7.24.7" @@ -698,7 +698,7 @@ "@babel/plugin-transform-object-super@^7.24.7": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz#66eeaff7830bba945dd8989b632a40c04ed625be" + resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz" integrity sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg== dependencies: "@babel/helper-plugin-utils" "^7.24.7" @@ -706,7 +706,7 @@ "@babel/plugin-transform-optional-catch-binding@^7.24.7": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz#00eabd883d0dd6a60c1c557548785919b6e717b4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz" integrity sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA== dependencies: "@babel/helper-plugin-utils" "^7.24.7" @@ -714,7 +714,7 @@ "@babel/plugin-transform-optional-chaining@^7.24.7", "@babel/plugin-transform-optional-chaining@^7.24.8": version "7.24.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.8.tgz#bb02a67b60ff0406085c13d104c99a835cdf365d" + resolved "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.8.tgz" integrity sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw== dependencies: "@babel/helper-plugin-utils" "^7.24.8" @@ -723,14 +723,14 @@ "@babel/plugin-transform-parameters@^7.24.7": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz#5881f0ae21018400e320fc7eb817e529d1254b68" + resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz" integrity sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA== dependencies: "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-transform-private-methods@^7.25.4": version "7.25.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.4.tgz#9bbefbe3649f470d681997e0b64a4b254d877242" + resolved "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.4.tgz" integrity sha512-ao8BG7E2b/URaUQGqN3Tlsg+M3KlHY6rJ1O1gXAEUnZoyNQnvKyH87Kfg+FoxSeyWUB8ISZZsC91C44ZuBFytw== dependencies: "@babel/helper-create-class-features-plugin" "^7.25.4" @@ -738,7 +738,7 @@ "@babel/plugin-transform-private-property-in-object@^7.24.7": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz#4eec6bc701288c1fab5f72e6a4bbc9d67faca061" + resolved "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz" integrity sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA== dependencies: "@babel/helper-annotate-as-pure" "^7.24.7" @@ -748,28 +748,28 @@ "@babel/plugin-transform-property-literals@^7.24.7": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz#f0d2ed8380dfbed949c42d4d790266525d63bbdc" + resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz" integrity sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA== dependencies: "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-transform-react-display-name@^7.24.7": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.7.tgz#9caff79836803bc666bcfe210aeb6626230c293b" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.7.tgz" integrity sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg== dependencies: "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-transform-react-jsx-development@^7.24.7": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.24.7.tgz#eaee12f15a93f6496d852509a850085e6361470b" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.24.7.tgz" integrity sha512-QG9EnzoGn+Qar7rxuW+ZOsbWOt56FvvI93xInqsZDC5fsekx1AlIO4KIJ5M+D0p0SqSH156EpmZyXq630B8OlQ== dependencies: "@babel/plugin-transform-react-jsx" "^7.24.7" "@babel/plugin-transform-react-jsx@^7.16.0", "@babel/plugin-transform-react-jsx@^7.24.7": version "7.25.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.2.tgz#e37e8ebfa77e9f0b16ba07fadcb6adb47412227a" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.2.tgz" integrity sha512-KQsqEAVBpU82NM/B/N9j9WOdphom1SZH3R+2V7INrQUH+V9EBFwZsEJl8eBIVeQE62FxJCc70jzEZwqU7RcVqA== dependencies: "@babel/helper-annotate-as-pure" "^7.24.7" @@ -780,7 +780,7 @@ "@babel/plugin-transform-react-pure-annotations@^7.24.7": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.7.tgz#bdd9d140d1c318b4f28b29a00fb94f97ecab1595" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.7.tgz" integrity sha512-PLgBVk3fzbmEjBJ/u8kFzOqS9tUeDjiaWud/rRym/yjCo/M9cASPlnrd2ZmmZpQT40fOOrvR8jh+n8jikrOhNA== dependencies: "@babel/helper-annotate-as-pure" "^7.24.7" @@ -788,7 +788,7 @@ "@babel/plugin-transform-regenerator@^7.24.7": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz#021562de4534d8b4b1851759fd7af4e05d2c47f8" + resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz" integrity sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA== dependencies: "@babel/helper-plugin-utils" "^7.24.7" @@ -796,14 +796,14 @@ "@babel/plugin-transform-reserved-words@^7.24.7": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz#80037fe4fbf031fc1125022178ff3938bb3743a4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz" integrity sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ== dependencies: "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-transform-runtime@^7.16.0": version "7.25.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.4.tgz#96e4ad7bfbbe0b4a7b7e6f2a533ca326cf204963" + resolved "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.4.tgz" integrity sha512-8hsyG+KUYGY0coX6KUCDancA0Vw225KJ2HJO0yCNr1vq5r+lJTleDaJf0K7iOhjw4SWhu03TMBzYTJ9krmzULQ== dependencies: "@babel/helper-module-imports" "^7.24.7" @@ -815,14 +815,14 @@ "@babel/plugin-transform-shorthand-properties@^7.24.7": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz#85448c6b996e122fa9e289746140aaa99da64e73" + resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz" integrity sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA== dependencies: "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-transform-spread@^7.24.7": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz#e8a38c0fde7882e0fb8f160378f74bd885cc7bb3" + resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz" integrity sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng== dependencies: "@babel/helper-plugin-utils" "^7.24.7" @@ -830,28 +830,28 @@ "@babel/plugin-transform-sticky-regex@^7.24.7": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz#96ae80d7a7e5251f657b5cf18f1ea6bf926f5feb" + resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz" integrity sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g== dependencies: "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-transform-template-literals@^7.24.7": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz#a05debb4a9072ae8f985bcf77f3f215434c8f8c8" + resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz" integrity sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw== dependencies: "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-transform-typeof-symbol@^7.24.8": version "7.24.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.8.tgz#383dab37fb073f5bfe6e60c654caac309f92ba1c" + resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.8.tgz" integrity sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw== dependencies: "@babel/helper-plugin-utils" "^7.24.8" "@babel/plugin-transform-typescript@^7.24.7": version "7.25.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.2.tgz#237c5d10de6d493be31637c6b9fa30b6c5461add" + resolved "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.2.tgz" integrity sha512-lBwRvjSmqiMYe/pS0+1gggjJleUJi7NzjvQ1Fkqtt69hBa/0t1YuW/MLQMAPixfwaQOHUXsd6jeU3Z+vdGv3+A== dependencies: "@babel/helper-annotate-as-pure" "^7.24.7" @@ -862,14 +862,14 @@ "@babel/plugin-transform-unicode-escapes@^7.24.7": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz#2023a82ced1fb4971630a2e079764502c4148e0e" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz" integrity sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw== dependencies: "@babel/helper-plugin-utils" "^7.24.7" "@babel/plugin-transform-unicode-property-regex@^7.24.7": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz#9073a4cd13b86ea71c3264659590ac086605bbcd" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz" integrity sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.24.7" @@ -877,7 +877,7 @@ "@babel/plugin-transform-unicode-regex@^7.24.7": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz#dfc3d4a51127108099b19817c0963be6a2adf19f" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz" integrity sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.24.7" @@ -885,7 +885,7 @@ "@babel/plugin-transform-unicode-sets-regex@^7.25.4": version "7.25.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.4.tgz#be664c2a0697ffacd3423595d5edef6049e8946c" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.4.tgz" integrity sha512-qesBxiWkgN1Q+31xUE9RcMk79eOXXDCv6tfyGMRSs4RGlioSg2WVyQAm07k726cSE56pa+Kb0y9epX2qaXzTvA== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.25.2" @@ -893,7 +893,7 @@ "@babel/preset-env@^7.16.0": version "7.25.4" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.25.4.tgz#be23043d43a34a2721cd0f676c7ba6f1481f6af6" + resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.4.tgz" integrity sha512-W9Gyo+KmcxjGahtt3t9fb14vFRWvPpu5pT6GBlovAK6BTBcxgjfVMSQCfJl4oi35ODrxP6xx2Wr8LNST57Mraw== dependencies: "@babel/compat-data" "^7.25.4" @@ -982,7 +982,7 @@ "@babel/preset-modules@0.1.6-no-external-plugins": version "0.1.6-no-external-plugins" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a" + resolved "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz" integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" @@ -991,7 +991,7 @@ "@babel/preset-react@^7.16.0": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.24.7.tgz#480aeb389b2a798880bf1f889199e3641cbb22dc" + resolved "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.24.7.tgz" integrity sha512-AAH4lEkpmzFWrGVlHaxJB7RLH21uPQ9+He+eFLWHmF9IuFQVugz8eAsamaW0DXRrTfco5zj1wWtpdcXJUOfsag== dependencies: "@babel/helper-plugin-utils" "^7.24.7" @@ -1003,7 +1003,7 @@ "@babel/preset-typescript@^7.16.0": version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.24.7.tgz#66cd86ea8f8c014855671d5ea9a737139cbbfef1" + resolved "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.24.7.tgz" integrity sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ== dependencies: "@babel/helper-plugin-utils" "^7.24.7" @@ -1014,26 +1014,19 @@ "@babel/regjsgen@^0.8.0": version "0.8.0" - resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" + resolved "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz" integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== -"@babel/runtime@^7.1.2": - version "7.26.0" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.26.0.tgz#8600c2f595f277c60815256418b85356a65173c1" - integrity sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw== - dependencies: - regenerator-runtime "^0.14.0" - -"@babel/runtime@^7.16.0", "@babel/runtime@^7.8.4": +"@babel/runtime@^7.1.2", "@babel/runtime@^7.16.0", "@babel/runtime@^7.8.4": version "7.25.6" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.25.6.tgz#9afc3289f7184d8d7f98b099884c26317b9264d2" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.6.tgz" integrity sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ== dependencies: regenerator-runtime "^0.14.0" "@babel/template@^7.24.7", "@babel/template@^7.25.0": version "7.25.0" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.25.0.tgz#e733dc3134b4fede528c15bc95e89cb98c52592a" + resolved "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz" integrity sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q== dependencies: "@babel/code-frame" "^7.24.7" @@ -1042,7 +1035,7 @@ "@babel/traverse@^7.24.7", "@babel/traverse@^7.24.8", "@babel/traverse@^7.25.0", "@babel/traverse@^7.25.1", "@babel/traverse@^7.25.2", "@babel/traverse@^7.25.3", "@babel/traverse@^7.25.4": version "7.25.6" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.25.6.tgz#04fad980e444f182ecf1520504941940a90fea41" + resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.6.tgz" integrity sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ== dependencies: "@babel/code-frame" "^7.24.7" @@ -1055,7 +1048,7 @@ "@babel/types@^7.24.7", "@babel/types@^7.24.8", "@babel/types@^7.25.0", "@babel/types@^7.25.2", "@babel/types@^7.25.6", "@babel/types@^7.4.4": version "7.25.6" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.25.6.tgz#893942ddb858f32ae7a004ec9d3a76b3463ef8e6" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.25.6.tgz" integrity sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw== dependencies: "@babel/helper-string-parser" "^7.24.8" @@ -1064,22 +1057,22 @@ "@colors/colors@1.5.0": version "1.5.0" - resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" + resolved "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz" integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== "@discoveryjs/json-ext@0.5.7", "@discoveryjs/json-ext@^0.5.0": version "0.5.7" - resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" + resolved "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz" integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== "@flarum/prettier-config@^1.0.0": version "1.0.0" - resolved "https://registry.yarnpkg.com/@flarum/prettier-config/-/prettier-config-1.0.0.tgz#3ce431fa376994e8133e313dbe7c4ee3d3fe1a39" + resolved "https://registry.npmjs.org/@flarum/prettier-config/-/prettier-config-1.0.0.tgz" integrity sha512-3/AcliIi5jPt4i7COb5hsLv6hm4EeXT9yI9I2EuEvhPi2QR+O9Y/8wrqRuO5mDkRzCIhUY+mjIL/f9770Zwfqg== "@hypnosphi/create-react-context@^0.3.1": version "0.3.1" - resolved "https://registry.yarnpkg.com/@hypnosphi/create-react-context/-/create-react-context-0.3.1.tgz#f8bfebdc7665f5d426cba3753e0e9c7d3154d7c6" + resolved "https://registry.npmjs.org/@hypnosphi/create-react-context/-/create-react-context-0.3.1.tgz" integrity sha512-V1klUed202XahrWJLLOT3EXNeCpFHCcJntdFGI15ntCwau+jfT386w7OFTMaCqOgXUH1fa0w/I1oZs+i/Rfr0A== dependencies: gud "^1.0.0" @@ -1087,7 +1080,7 @@ "@jridgewell/gen-mapping@^0.3.5": version "0.3.5" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" + resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz" integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== dependencies: "@jridgewell/set-array" "^1.2.1" @@ -1096,17 +1089,17 @@ "@jridgewell/resolve-uri@^3.1.0": version "3.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz" integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== "@jridgewell/set-array@^1.2.1": version "1.2.1" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" + resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz" integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== "@jridgewell/source-map@^0.3.3": version "0.3.6" - resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.6.tgz#9d71ca886e32502eb9362c9a74a46787c36df81a" + resolved "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz" integrity sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ== dependencies: "@jridgewell/gen-mapping" "^0.3.5" @@ -1114,12 +1107,12 @@ "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": version "1.5.0" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" + resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz" integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== "@jridgewell/trace-mapping@^0.3.20", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": version "0.3.25" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz" integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== dependencies: "@jridgewell/resolve-uri" "^3.1.0" @@ -1127,7 +1120,7 @@ "@nodelib/fs.scandir@2.1.5": version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== dependencies: "@nodelib/fs.stat" "2.0.5" @@ -1135,12 +1128,12 @@ "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== "@nodelib/fs.walk@^1.2.3": version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== dependencies: "@nodelib/fs.scandir" "2.1.5" @@ -1148,12 +1141,12 @@ "@polka/url@^1.0.0-next.24": version "1.0.0-next.28" - resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.28.tgz#d45e01c4a56f143ee69c54dd6b12eade9e270a73" + resolved "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.28.tgz" integrity sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw== "@semantic-ui-react/event-stack@^3.1.0": version "3.1.3" - resolved "https://registry.yarnpkg.com/@semantic-ui-react/event-stack/-/event-stack-3.1.3.tgz#2862d2631d67dd846c705db2fc1ede1c468be3a1" + resolved "https://registry.npmjs.org/@semantic-ui-react/event-stack/-/event-stack-3.1.3.tgz" integrity sha512-FdTmJyWvJaYinHrKRsMLDrz4tTMGdFfds299Qory53hBugiDvGC0tEJf+cHsi5igDwWb/CLOgOiChInHwq8URQ== dependencies: exenv "^1.2.2" @@ -1161,7 +1154,7 @@ "@stardust-ui/react-component-event-listener@~0.38.0": version "0.38.0" - resolved "https://registry.yarnpkg.com/@stardust-ui/react-component-event-listener/-/react-component-event-listener-0.38.0.tgz#1787faded94b40ad41226e6289baf13e701c6e7f" + resolved "https://registry.npmjs.org/@stardust-ui/react-component-event-listener/-/react-component-event-listener-0.38.0.tgz" integrity sha512-sIP/e0dyOrrlb8K7KWumfMxj/gAifswTBC4o68Aa+C/GA73ccRp/6W1VlHvF/dlOR4KLsA+5SKnhjH36xzPsWg== dependencies: "@babel/runtime" "^7.1.2" @@ -1169,7 +1162,7 @@ "@stardust-ui/react-component-ref@~0.38.0": version "0.38.0" - resolved "https://registry.yarnpkg.com/@stardust-ui/react-component-ref/-/react-component-ref-0.38.0.tgz#52d555f2d5edd213c923c93a106f7de940e427ef" + resolved "https://registry.npmjs.org/@stardust-ui/react-component-ref/-/react-component-ref-0.38.0.tgz" integrity sha512-xjs6WnvJVueSIXMWw0C3oWIgAPpcD03qw43oGOjUXqFktvpNkB73JoKIhS4sCrtQxBdct75qqr4ZL6JiyPcESw== dependencies: "@babel/runtime" "^7.1.2" @@ -1178,46 +1171,46 @@ "@types/estree@^1.0.5": version "1.0.6" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" + resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz" integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== "@types/jquery@^3.5.5": version "3.5.30" - resolved "https://registry.yarnpkg.com/@types/jquery/-/jquery-3.5.30.tgz#888d584cbf844d3df56834b69925085038fd80f7" + resolved "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.30.tgz" integrity sha512-nbWKkkyb919DOUxjmRVk8vwtDb0/k8FKncmUKFi+NY+QXqWltooxTrswvz4LspQwxvLdvzBN1TImr6cw3aQx2A== dependencies: "@types/sizzle" "*" "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8": version "7.0.15" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== "@types/mithril@^2.0.7": version "2.2.7" - resolved "https://registry.yarnpkg.com/@types/mithril/-/mithril-2.2.7.tgz#1952ac0fbd4816b49260fde69b766fec0df6db7c" + resolved "https://registry.npmjs.org/@types/mithril/-/mithril-2.2.7.tgz" integrity sha512-uetxoYizBMHPELl6DSZUfO6Q/aOm+h0NUCv9bVAX2iAxfrdBSOvU9KKFl+McTtxR13F+BReYLY814pJsZvnSxg== "@types/node@*": version "22.6.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-22.6.1.tgz#e531a45f4d78f14a8468cb9cdc29dc9602afc7ac" + resolved "https://registry.npmjs.org/@types/node/-/node-22.6.1.tgz" integrity sha512-V48tCfcKb/e6cVUigLAaJDAILdMP0fUW6BidkPK4GpGjXcfbnoHasCZDwz3N3yVt5we2RHm4XTQCpv0KJz9zqw== dependencies: undici-types "~6.19.2" "@types/sizzle@*": version "2.3.8" - resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.8.tgz#518609aefb797da19bf222feb199e8f653ff7627" + resolved "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.8.tgz" integrity sha512-0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg== "@types/throttle-debounce@^2.1.0": version "2.1.0" - resolved "https://registry.yarnpkg.com/@types/throttle-debounce/-/throttle-debounce-2.1.0.tgz#1c3df624bfc4b62f992d3012b84c56d41eab3776" + resolved "https://registry.npmjs.org/@types/throttle-debounce/-/throttle-debounce-2.1.0.tgz" integrity sha512-5eQEtSCoESnh2FsiLTxE121IiE60hnMqcb435fShf4bpLRjEu1Eoekht23y6zXS9Ts3l+Szu3TARnTsA0GkOkQ== "@webassemblyjs/ast@1.12.1", "@webassemblyjs/ast@^1.12.1": version "1.12.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.12.1.tgz#bb16a0e8b1914f979f45864c23819cc3e3f0d4bb" + resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz" integrity sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg== dependencies: "@webassemblyjs/helper-numbers" "1.11.6" @@ -1225,22 +1218,22 @@ "@webassemblyjs/floating-point-hex-parser@1.11.6": version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz#dacbcb95aff135c8260f77fa3b4c5fea600a6431" + resolved "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz" integrity sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw== "@webassemblyjs/helper-api-error@1.11.6": version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz#6132f68c4acd59dcd141c44b18cbebbd9f2fa768" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz" integrity sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q== "@webassemblyjs/helper-buffer@1.12.1": version "1.12.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz#6df20d272ea5439bf20ab3492b7fb70e9bfcb3f6" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz" integrity sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw== "@webassemblyjs/helper-numbers@1.11.6": version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz#cbce5e7e0c1bd32cf4905ae444ef64cea919f1b5" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz" integrity sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g== dependencies: "@webassemblyjs/floating-point-hex-parser" "1.11.6" @@ -1249,12 +1242,12 @@ "@webassemblyjs/helper-wasm-bytecode@1.11.6": version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz#bb2ebdb3b83aa26d9baad4c46d4315283acd51e9" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz" integrity sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA== "@webassemblyjs/helper-wasm-section@1.12.1": version "1.12.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz#3da623233ae1a60409b509a52ade9bc22a37f7bf" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz" integrity sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g== dependencies: "@webassemblyjs/ast" "1.12.1" @@ -1264,26 +1257,26 @@ "@webassemblyjs/ieee754@1.11.6": version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz#bb665c91d0b14fffceb0e38298c329af043c6e3a" + resolved "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz" integrity sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg== dependencies: "@xtuc/ieee754" "^1.2.0" "@webassemblyjs/leb128@1.11.6": version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz#70e60e5e82f9ac81118bc25381a0b283893240d7" + resolved "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz" integrity sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ== dependencies: "@xtuc/long" "4.2.2" "@webassemblyjs/utf8@1.11.6": version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz#90f8bc34c561595fe156603be7253cdbcd0fab5a" + resolved "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz" integrity sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA== "@webassemblyjs/wasm-edit@^1.12.1": version "1.12.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz#9f9f3ff52a14c980939be0ef9d5df9ebc678ae3b" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz" integrity sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g== dependencies: "@webassemblyjs/ast" "1.12.1" @@ -1297,7 +1290,7 @@ "@webassemblyjs/wasm-gen@1.12.1": version "1.12.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz#a6520601da1b5700448273666a71ad0a45d78547" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz" integrity sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w== dependencies: "@webassemblyjs/ast" "1.12.1" @@ -1308,7 +1301,7 @@ "@webassemblyjs/wasm-opt@1.12.1": version "1.12.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz#9e6e81475dfcfb62dab574ac2dda38226c232bc5" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz" integrity sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg== dependencies: "@webassemblyjs/ast" "1.12.1" @@ -1318,7 +1311,7 @@ "@webassemblyjs/wasm-parser@1.12.1", "@webassemblyjs/wasm-parser@^1.12.1": version "1.12.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz#c47acb90e6f083391e3fa61d113650eea1e95937" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz" integrity sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ== dependencies: "@webassemblyjs/ast" "1.12.1" @@ -1330,7 +1323,7 @@ "@webassemblyjs/wast-printer@1.12.1": version "1.12.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz#bcecf661d7d1abdaf989d8341a4833e33e2b31ac" + resolved "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz" integrity sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA== dependencies: "@webassemblyjs/ast" "1.12.1" @@ -1338,54 +1331,54 @@ "@webpack-cli/configtest@^2.1.1": version "2.1.1" - resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-2.1.1.tgz#3b2f852e91dac6e3b85fb2a314fb8bef46d94646" + resolved "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz" integrity sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw== "@webpack-cli/info@^2.0.2": version "2.0.2" - resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-2.0.2.tgz#cc3fbf22efeb88ff62310cf885c5b09f44ae0fdd" + resolved "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz" integrity sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A== "@webpack-cli/serve@^2.0.5": version "2.0.5" - resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-2.0.5.tgz#325db42395cd49fe6c14057f9a900e427df8810e" + resolved "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz" integrity sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ== "@xtuc/ieee754@^1.2.0": version "1.2.0" - resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + resolved "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz" integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== "@xtuc/long@4.2.2": version "4.2.2" - resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + resolved "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== acorn-import-attributes@^1.9.5: version "1.9.5" - resolved "https://registry.yarnpkg.com/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz#7eb1557b1ba05ef18b5ed0ec67591bfab04688ef" + resolved "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz" integrity sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ== acorn-walk@^8.0.0: version "8.3.4" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.4.tgz#794dd169c3977edf4ba4ea47583587c5866236b7" + resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz" integrity sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g== dependencies: acorn "^8.11.0" acorn@^8.0.4, acorn@^8.11.0, acorn@^8.7.1, acorn@^8.8.2: version "8.12.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.1.tgz#71616bdccbe25e27a54439e0046e89ca76df2248" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz" integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== ajv-keywords@^3.5.2: version "3.5.2" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== ajv@^6.12.4, ajv@^6.12.5: version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== dependencies: fast-deep-equal "^3.1.1" @@ -1395,26 +1388,26 @@ ajv@^6.12.4, ajv@^6.12.5: ansi-regex@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-styles@^3.2.1: version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== dependencies: color-convert "^1.9.0" ansi-styles@^4.1.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: color-convert "^2.0.1" babel-loader@^8.2.3: version "8.4.1" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.4.1.tgz#6ccb75c66e62c3b144e1c5f2eaec5b8f6c08c675" + resolved "https://registry.npmjs.org/babel-loader/-/babel-loader-8.4.1.tgz" integrity sha512-nXzRChX+Z1GoE6yWavBQg6jDslyFF3SDjl2paADuoQtQW10JqShJt62R6eJQ5m/pjJFDT8xgKIWSP85OY8eXeA== dependencies: find-cache-dir "^3.3.1" @@ -1424,7 +1417,7 @@ babel-loader@^8.2.3: babel-plugin-polyfill-corejs2@^0.4.10: version "0.4.11" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz#30320dfe3ffe1a336c15afdcdafd6fd615b25e33" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz" integrity sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q== dependencies: "@babel/compat-data" "^7.22.6" @@ -1433,7 +1426,7 @@ babel-plugin-polyfill-corejs2@^0.4.10: babel-plugin-polyfill-corejs3@^0.10.6: version "0.10.6" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz#2deda57caef50f59c525aeb4964d3b2f867710c7" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz" integrity sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA== dependencies: "@babel/helper-define-polyfill-provider" "^0.6.2" @@ -1441,24 +1434,24 @@ babel-plugin-polyfill-corejs3@^0.10.6: babel-plugin-polyfill-regenerator@^0.6.1: version "0.6.2" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz#addc47e240edd1da1058ebda03021f382bba785e" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz" integrity sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg== dependencies: "@babel/helper-define-polyfill-provider" "^0.6.2" balanced-match@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== big.js@^5.2.2: version "5.2.2" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + resolved "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz" integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== brace-expansion@^1.1.7: version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== dependencies: balanced-match "^1.0.0" @@ -1466,21 +1459,21 @@ brace-expansion@^1.1.7: brace-expansion@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== dependencies: balanced-match "^1.0.0" braces@^3.0.3: version "3.0.3" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz" integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== dependencies: fill-range "^7.1.1" browserslist@^4.21.10, browserslist@^4.23.1, browserslist@^4.23.3: version "4.23.3" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.3.tgz#debb029d3c93ebc97ffbc8d9cbb03403e227c800" + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz" integrity sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA== dependencies: caniuse-lite "^1.0.30001646" @@ -1490,12 +1483,12 @@ browserslist@^4.21.10, browserslist@^4.23.1, browserslist@^4.23.3: buffer-from@^1.0.0: version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== call-bind@^1.0.2, call-bind@^1.0.7: version "1.0.7" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" + resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz" integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== dependencies: es-define-property "^1.0.0" @@ -1506,12 +1499,12 @@ call-bind@^1.0.2, call-bind@^1.0.7: caniuse-lite@^1.0.30001646: version "1.0.30001663" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001663.tgz#1529a723505e429fdfd49532e9fc42273ba7fed7" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001663.tgz" integrity sha512-o9C3X27GLKbLeTYZ6HBOLU1tsAcBZsLis28wrVzddShCS16RujjHp9GDHKZqrB3meE0YjhawvMFsGb/igqiPzA== chalk@^2.4.2: version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== dependencies: ansi-styles "^3.2.1" @@ -1520,7 +1513,7 @@ chalk@^2.4.2: chalk@^4.0.0: version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== dependencies: ansi-styles "^4.1.0" @@ -1528,17 +1521,17 @@ chalk@^4.0.0: chrome-trace-event@^1.0.2: version "1.0.4" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz#05bffd7ff928465093314708c93bdfa9bd1f0f5b" + resolved "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz" integrity sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ== classnames@^2.2.6: version "2.5.1" - resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.5.1.tgz#ba774c614be0f016da105c858e7159eae8e7687b" + resolved "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz" integrity sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow== cli-table3@^0.6.1: version "0.6.5" - resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.5.tgz#013b91351762739c16a9567c21a04632e449bf2f" + resolved "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz" integrity sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ== dependencies: string-width "^4.2.0" @@ -1547,7 +1540,7 @@ cli-table3@^0.6.1: clone-deep@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + resolved "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz" integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== dependencies: is-plain-object "^2.0.4" @@ -1556,78 +1549,78 @@ clone-deep@^4.0.1: color-convert@^1.9.0: version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== dependencies: color-name "1.1.3" color-convert@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== dependencies: color-name "~1.1.4" color-name@1.1.3: version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== color-name@~1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== colorette@^2.0.14: version "2.0.20" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" + resolved "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz" integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== commander@^10.0.1: version "10.0.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" + resolved "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz" integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== commander@^2.20.0: version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== commander@^5.0.0: version "5.1.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" + resolved "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz" integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== commander@^7.2.0: version "7.2.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== commondir@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz" integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== concat-map@0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== convert-source-map@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz" integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== core-js-compat@^3.37.1, core-js-compat@^3.38.0: version "3.38.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.38.1.tgz#2bc7a298746ca5a7bcb9c164bcb120f2ebc09a09" + resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.38.1.tgz" integrity sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw== dependencies: browserslist "^4.23.3" cross-spawn@^7.0.3: version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== dependencies: path-key "^3.1.0" @@ -1636,24 +1629,24 @@ cross-spawn@^7.0.3: dayjs@^1.10.4: version "1.11.13" - resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.13.tgz#92430b0139055c3ebb60150aa13e860a4b5a366c" + resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz" integrity sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg== debounce@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5" + resolved "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz" integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: version "4.3.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.7.tgz#87945b4151a011d76d95a198d7111c865c360a52" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz" integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== dependencies: ms "^2.1.3" deep-equal@^1.1.1: version "1.1.2" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.2.tgz#78a561b7830eef3134c7f6f3a3d6af272a678761" + resolved "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.2.tgz" integrity sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg== dependencies: is-arguments "^1.1.1" @@ -1665,7 +1658,7 @@ deep-equal@^1.1.1: define-data-property@^1.0.1, define-data-property@^1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + resolved "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz" integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== dependencies: es-define-property "^1.0.0" @@ -1674,7 +1667,7 @@ define-data-property@^1.0.1, define-data-property@^1.1.4: define-properties@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" + resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz" integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== dependencies: define-data-property "^1.0.1" @@ -1683,27 +1676,27 @@ define-properties@^1.2.1: duplexer@^0.1.2: version "0.1.2" - resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" + resolved "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== electron-to-chromium@^1.5.4: version "1.5.28" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.28.tgz#aee074e202c6ee8a0030a9c2ef0b3fe9f967d576" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.28.tgz" integrity sha512-VufdJl+rzaKZoYVUijN13QcXVF5dWPZANeFTLNy+OSpHdDL5ynXTF35+60RSBbaQYB1ae723lQXHCrf4pyLsMw== emoji-regex@^8.0.0: version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== emojis-list@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz" integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== enhanced-resolve@^5.17.1: version "5.17.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz#67bfbbcc2f81d511be77d686a90267ef7f898a15" + resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz" integrity sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg== dependencies: graceful-fs "^4.2.4" @@ -1711,44 +1704,44 @@ enhanced-resolve@^5.17.1: envinfo@^7.7.3: version "7.14.0" - resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.14.0.tgz#26dac5db54418f2a4c1159153a0b2ae980838aae" + resolved "https://registry.npmjs.org/envinfo/-/envinfo-7.14.0.tgz" integrity sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg== es-define-property@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" + resolved "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz" integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== dependencies: get-intrinsic "^1.2.4" es-errors@^1.3.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + resolved "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz" integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== es-module-lexer@^1.2.1: version "1.5.4" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.5.4.tgz#a8efec3a3da991e60efa6b633a7cad6ab8d26b78" + resolved "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz" integrity sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw== escalade@^3.1.2: version "3.2.0" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" + resolved "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz" integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== escape-string-regexp@^1.0.5: version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== escape-string-regexp@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== eslint-scope@5.1.1: version "5.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== dependencies: esrecurse "^4.3.0" @@ -1756,44 +1749,44 @@ eslint-scope@5.1.1: esrecurse@^4.3.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== dependencies: estraverse "^5.2.0" estraverse@^4.1.1: version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== estraverse@^5.2.0: version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== esutils@^2.0.2: version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== events@^3.2.0: version "3.3.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== exenv@^1.2.2: version "1.2.2" - resolved "https://registry.yarnpkg.com/exenv/-/exenv-1.2.2.tgz#2ae78e85d9894158670b03d47bec1f03bd91bb9d" + resolved "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz" integrity sha512-Z+ktTxTwv9ILfgKCk32OX3n/doe+OcLTRtqK9pcL+JsP3J1/VW8Uvl4ZjLlKqeW4rzK4oesDOGMEMRIZqtP4Iw== fast-deep-equal@^3.1.1: version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-glob@3: version "3.3.2" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz" integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== dependencies: "@nodelib/fs.stat" "^2.0.2" @@ -1804,31 +1797,31 @@ fast-glob@3: fast-json-stable-stringify@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== fastest-levenshtein@^1.0.12: version "1.0.16" - resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" + resolved "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz" integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== fastq@^1.6.0: version "1.17.1" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" + resolved "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz" integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== dependencies: reusify "^1.0.4" fill-range@^7.1.1: version "7.1.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz" integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== dependencies: to-regex-range "^5.0.1" find-cache-dir@^3.3.1: version "3.3.2" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" + resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz" integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== dependencies: commondir "^1.0.1" @@ -1837,7 +1830,7 @@ find-cache-dir@^3.3.1: find-up@^4.0.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== dependencies: locate-path "^5.0.0" @@ -1845,7 +1838,7 @@ find-up@^4.0.0: flarum-tsconfig@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/flarum-tsconfig/-/flarum-tsconfig-1.0.3.tgz#70420511f833f65f2d83a4541677f9cefbac664e" + resolved "https://registry.npmjs.org/flarum-tsconfig/-/flarum-tsconfig-1.0.3.tgz" integrity sha512-//zFt0zFlPBukJvH0gRI4SQH1hLsUHYxZD+xVbuFdBaiJxmYxVMFWhmDrpA6kRT5miokZ8veuN28mwq1SzeGKw== dependencies: "@types/jquery" "^3.5.5" @@ -1855,7 +1848,7 @@ flarum-tsconfig@^1.0.3: flarum-webpack-config@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/flarum-webpack-config/-/flarum-webpack-config-2.0.2.tgz#efa67268904390a1e7aee55e1ac5a794a57e0855" + resolved "https://registry.npmjs.org/flarum-webpack-config/-/flarum-webpack-config-2.0.2.tgz" integrity sha512-kUCaCsXL8s/OhSWleWtIppRXDNBzAf8/ewCx9OIF0zNO0hlvY5T1N0EO0AnyUJbsp5nOCdzsTo9rTRRsbKT+IA== dependencies: "@babel/core" "^7.16.0" @@ -1875,32 +1868,32 @@ flarum-webpack-config@^2.0.2: flat@^5.0.2: version "5.0.2" - resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + resolved "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz" integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== fs.realpath@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== function-bind@^1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== functions-have-names@^1.2.3: version "1.2.3" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== gensync@^1.0.0-beta.2: version "1.0.0-beta.2" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== get-intrinsic@^1.1.3, get-intrinsic@^1.2.4: version "1.2.4" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz" integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== dependencies: es-errors "^1.3.0" @@ -1911,19 +1904,19 @@ get-intrinsic@^1.1.3, get-intrinsic@^1.2.4: glob-parent@^5.1.2: version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" glob-to-regexp@^0.4.1: version "0.4.1" - resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" + resolved "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== glob@^7.1.3: version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: fs.realpath "^1.0.0" @@ -1935,82 +1928,82 @@ glob@^7.1.3: globals@^11.1.0: version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== gopd@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + resolved "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz" integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== dependencies: get-intrinsic "^1.1.3" graceful-fs@^4.1.2, graceful-fs@^4.2.11, graceful-fs@^4.2.4: version "4.2.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== gud@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/gud/-/gud-1.0.0.tgz#a489581b17e6a70beca9abe3ae57de7a499852c0" + resolved "https://registry.npmjs.org/gud/-/gud-1.0.0.tgz" integrity sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw== gzip-size@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462" + resolved "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz" integrity sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q== dependencies: duplexer "^0.1.2" has-flag@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== has-flag@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz" integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== dependencies: es-define-property "^1.0.0" has-proto@^1.0.1: version "1.0.3" - resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" + resolved "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz" integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== has-symbols@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== has-tostringtag@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" + resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz" integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== dependencies: has-symbols "^1.0.3" hasown@^2.0.0, hasown@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz" integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== dependencies: function-bind "^1.1.2" html-escaper@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + resolved "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz" integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== import-local@^3.0.2: version "3.2.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.2.0.tgz#c3d5c745798c02a6f8b897726aba5100186ee260" + resolved "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz" integrity sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA== dependencies: pkg-dir "^4.2.0" @@ -2018,7 +2011,7 @@ import-local@^3.0.2: inflight@^1.0.4: version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" @@ -2026,17 +2019,17 @@ inflight@^1.0.4: inherits@2: version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== interpret@^3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-3.1.1.tgz#5be0ceed67ca79c6c4bc5cf0d7ee843dcea110c4" + resolved "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz" integrity sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ== is-arguments@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + resolved "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz" integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== dependencies: call-bind "^1.0.2" @@ -2044,50 +2037,50 @@ is-arguments@^1.1.1: is-core-module@^2.13.0: version "2.15.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.15.1.tgz#a7363a25bee942fefab0de13bf6aa372c82dcc37" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz" integrity sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ== dependencies: hasown "^2.0.2" is-date-object@^1.0.5: version "1.0.5" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz" integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== dependencies: has-tostringtag "^1.0.0" is-extglob@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-fullwidth-code-point@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== is-glob@^4.0.1: version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== dependencies: is-extglob "^2.1.1" is-number@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== is-plain-object@^2.0.4: version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== dependencies: isobject "^3.0.1" is-regex@^1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== dependencies: call-bind "^1.0.2" @@ -2095,17 +2088,17 @@ is-regex@^1.1.4: isexe@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== isobject@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== jest-worker@^27.4.5: version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" + resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz" integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== dependencies: "@types/node" "*" @@ -2114,52 +2107,52 @@ jest-worker@^27.4.5: "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== jsesc@^2.5.1: version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== jsesc@~0.5.0: version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== json-parse-even-better-errors@^2.3.1: version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== json-schema-traverse@^0.4.1: version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== json5@^2.1.2, json5@^2.2.3: version "2.2.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== keyboard-key@^1.0.4: version "1.1.0" - resolved "https://registry.yarnpkg.com/keyboard-key/-/keyboard-key-1.1.0.tgz#6f2e8e37fa11475bb1f1d65d5174f1b35653f5b7" + resolved "https://registry.npmjs.org/keyboard-key/-/keyboard-key-1.1.0.tgz" integrity sha512-qkBzPTi3rlAKvX7k0/ub44sqOfXeLc/jcnGGmj5c7BJpU8eDrEVPyhCvNYAaoubbsLm9uGWwQJO1ytQK1a9/dQ== kind-of@^6.0.2: version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== loader-runner@^4.2.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" + resolved "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz" integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== loader-utils@^2.0.4: version "2.0.4" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c" + resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz" integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw== dependencies: big.js "^5.2.2" @@ -2168,55 +2161,55 @@ loader-utils@^2.0.4: locate-path@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== dependencies: p-locate "^4.1.0" lodash.debounce@^4.0.8: version "4.0.8" - resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz" integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== lodash@^4.17.15: version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== dependencies: js-tokens "^3.0.0 || ^4.0.0" lru-cache@^5.1.1: version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== dependencies: yallist "^3.0.2" make-dir@^3.0.2, make-dir@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== dependencies: semver "^6.0.0" merge-stream@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== merge2@^1.3.0: version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== micromatch@^4.0.4: version "4.0.8" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz" integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== dependencies: braces "^3.0.3" @@ -2224,68 +2217,68 @@ micromatch@^4.0.4: mime-db@1.52.0: version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== mime-types@^2.1.27: version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== dependencies: mime-db "1.52.0" "minimatch@6 || 7 || 8 || 9 || 10": version "10.0.1" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.0.1.tgz#ce0521856b453c86e25f2c4c0d03e6ff7ddc440b" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz" integrity sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ== dependencies: brace-expansion "^2.0.1" minimatch@^3.1.1: version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" mrmime@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-2.0.0.tgz#151082a6e06e59a9a39b46b3e14d5cfe92b3abb4" + resolved "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz" integrity sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw== ms@^2.1.3: version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== ncp@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/ncp/-/ncp-2.0.0.tgz#195a21d6c46e361d2fb1281ba38b91e9df7bdbb3" + resolved "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz" integrity sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA== neo-async@^2.6.2: version "2.6.2" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== node-releases@^2.0.18: version "2.0.18" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.18.tgz#f010e8d35e2fe8d6b2944f03f70213ecedc4ca3f" + resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz" integrity sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g== normalize-path@3: version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== object-assign@^4.1.1: version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== object-is@^1.1.5: version "1.1.6" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.6.tgz#1a6a53aed2dd8f7e6775ff870bea58545956ab07" + resolved "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz" integrity sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q== dependencies: call-bind "^1.0.7" @@ -2293,90 +2286,90 @@ object-is@^1.1.5: object-keys@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== once@^1.3.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" opener@^1.5.2: version "1.5.2" - resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" + resolved "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz" integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== p-limit@^2.2.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== dependencies: p-try "^2.0.0" p-locate@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== dependencies: p-limit "^2.2.0" p-try@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== path-exists@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== path-is-absolute@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== path-key@^3.1.0: version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-parse@^1.0.7: version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== picocolors@^1.0.0, picocolors@^1.0.1: version "1.1.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.0.tgz#5358b76a78cde483ba5cef6a9dc9671440b27d59" + resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz" integrity sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw== picomatch@^2.3.1: version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== pkg-dir@^4.1.0, pkg-dir@^4.2.0: version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== dependencies: find-up "^4.0.0" popper.js@^1.14.4: version "1.16.1" - resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.1.tgz#2a223cb3dc7b6213d740e40372be40de43e65b1b" + resolved "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz" integrity sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ== prettier@^3.3.3: version "3.3.3" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.3.3.tgz#30c54fe0be0d8d12e6ae61dbb10109ea00d53105" + resolved "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz" integrity sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew== prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2: version "15.8.1" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" + resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz" integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== dependencies: loose-envify "^1.4.0" @@ -2385,24 +2378,24 @@ prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2: punycode@^2.1.0: version "2.3.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz" integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== queue-microtask@^1.2.2: version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== randombytes@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" react-dom@^16.13.1: version "16.14.0" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.14.0.tgz#7ad838ec29a777fb3c75c3a190f661cf92ab8b89" + resolved "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz" integrity sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw== dependencies: loose-envify "^1.1.0" @@ -2412,12 +2405,12 @@ react-dom@^16.13.1: react-is@^16.13.1, react-is@^16.6.3, react-is@^16.8.6: version "16.13.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== react-popper@^1.3.4: version "1.3.11" - resolved "https://registry.yarnpkg.com/react-popper/-/react-popper-1.3.11.tgz#a2cc3f0a67b75b66cfa62d2c409f9dd1fcc71ffd" + resolved "https://registry.npmjs.org/react-popper/-/react-popper-1.3.11.tgz" integrity sha512-VSA/bS+pSndSF2fiasHK/PTEEAyOpX60+H5EPAjoArr8JGm+oihu4UbrqcEBpQibJxBVCpYyjAX7abJ+7DoYVg== dependencies: "@babel/runtime" "^7.1.2" @@ -2430,7 +2423,7 @@ react-popper@^1.3.4: react@^16.13.1: version "16.14.0" - resolved "https://registry.yarnpkg.com/react/-/react-16.14.0.tgz#94d776ddd0aaa37da3eda8fc5b6b18a4c9a3114d" + resolved "https://registry.npmjs.org/react/-/react-16.14.0.tgz" integrity sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g== dependencies: loose-envify "^1.1.0" @@ -2439,38 +2432,38 @@ react@^16.13.1: rechoir@^0.8.0: version "0.8.0" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.8.0.tgz#49f866e0d32146142da3ad8f0eff352b3215ff22" + resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz" integrity sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ== dependencies: resolve "^1.20.0" regenerate-unicode-properties@^10.1.0: version "10.2.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz#626e39df8c372338ea9b8028d1f99dc3fd9c3db0" + resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz" integrity sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA== dependencies: regenerate "^1.4.2" regenerate@^1.4.2: version "1.4.2" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz" integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== regenerator-runtime@^0.14.0: version "0.14.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz" integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== regenerator-transform@^0.15.2: version "0.15.2" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4" + resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz" integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== dependencies: "@babel/runtime" "^7.8.4" regexp.prototype.flags@^1.5.1: version "1.5.3" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz#b3ae40b1d2499b8350ab2c3fe6ef3845d3a96f42" + resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz" integrity sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ== dependencies: call-bind "^1.0.7" @@ -2480,7 +2473,7 @@ regexp.prototype.flags@^1.5.1: regexpu-core@^5.3.1: version "5.3.2" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b" + resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz" integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ== dependencies: "@babel/regjsgen" "^0.8.0" @@ -2492,26 +2485,26 @@ regexpu-core@^5.3.1: regjsparser@^0.9.1: version "0.9.1" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" + resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz" integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== dependencies: jsesc "~0.5.0" resolve-cwd@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz" integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== dependencies: resolve-from "^5.0.0" resolve-from@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== resolve@^1.14.2, resolve@^1.20.0: version "1.22.8" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz" integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== dependencies: is-core-module "^2.13.0" @@ -2520,31 +2513,31 @@ resolve@^1.14.2, resolve@^1.20.0: reusify@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== rimraf@^3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: glob "^7.1.3" run-parallel@^1.1.9: version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== dependencies: queue-microtask "^1.2.2" safe-buffer@^5.1.0: version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== scheduler@^0.19.1: version "0.19.1" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196" + resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz" integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA== dependencies: loose-envify "^1.1.0" @@ -2552,7 +2545,7 @@ scheduler@^0.19.1: schema-utils@^2.6.5: version "2.7.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" + resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz" integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== dependencies: "@types/json-schema" "^7.0.5" @@ -2561,7 +2554,7 @@ schema-utils@^2.6.5: schema-utils@^3.1.1, schema-utils@^3.2.0: version "3.3.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" + resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz" integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== dependencies: "@types/json-schema" "^7.0.8" @@ -2570,7 +2563,7 @@ schema-utils@^3.1.1, schema-utils@^3.2.0: semantic-ui-react@^0.88.2: version "0.88.2" - resolved "https://registry.yarnpkg.com/semantic-ui-react/-/semantic-ui-react-0.88.2.tgz#3d4b54f8b799769b412435c8531475fd34aa4149" + resolved "https://registry.npmjs.org/semantic-ui-react/-/semantic-ui-react-0.88.2.tgz" integrity sha512-+02kN2z8PuA/cMdvDUsHhbJmBzxxgOXVHMFr9XK7zGb0wkW9A6OPQMFokWz7ozlVtKjN6r7zsb+Qvjk/qq1OWw== dependencies: "@babel/runtime" "^7.1.2" @@ -2587,19 +2580,19 @@ semantic-ui-react@^0.88.2: semver@^6.0.0, semver@^6.3.1: version "6.3.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== serialize-javascript@^6.0.1: version "6.0.2" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" + resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz" integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== dependencies: randombytes "^2.1.0" set-function-length@^1.2.1: version "1.2.2" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" + resolved "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz" integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== dependencies: define-data-property "^1.1.4" @@ -2611,7 +2604,7 @@ set-function-length@^1.2.1: set-function-name@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.2.tgz#16a705c5a0dc2f5e638ca96d8a8cd4e1c2b90985" + resolved "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz" integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== dependencies: define-data-property "^1.1.4" @@ -2621,31 +2614,31 @@ set-function-name@^2.0.2: shallow-clone@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + resolved "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz" integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== dependencies: kind-of "^6.0.2" shallowequal@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" + resolved "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz" integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== shebang-command@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== dependencies: shebang-regex "^3.0.0" shebang-regex@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== sirv@^2.0.3: version "2.0.4" - resolved "https://registry.yarnpkg.com/sirv/-/sirv-2.0.4.tgz#5dd9a725c578e34e449f332703eb2a74e46a29b0" + resolved "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz" integrity sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ== dependencies: "@polka/url" "^1.0.0-next.24" @@ -2654,7 +2647,7 @@ sirv@^2.0.3: source-map-support@~0.5.20: version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== dependencies: buffer-from "^1.0.0" @@ -2662,12 +2655,12 @@ source-map-support@~0.5.20: source-map@^0.6.0: version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== string-width@^4.2.0: version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: emoji-regex "^8.0.0" @@ -2676,45 +2669,45 @@ string-width@^4.2.0: strip-ansi@^6.0.1: version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" supports-color@^5.3.0: version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== dependencies: has-flag "^3.0.0" supports-color@^7.1.0: version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" supports-color@^8.0.0: version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== dependencies: has-flag "^4.0.0" supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== tapable@^2.1.1, tapable@^2.2.0: version "2.2.1" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" + resolved "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz" integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== terser-webpack-plugin@^5.3.10: version "5.3.10" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz#904f4c9193c6fd2a03f693a2150c62a92f40d199" + resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz" integrity sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w== dependencies: "@jridgewell/trace-mapping" "^0.3.20" @@ -2725,7 +2718,7 @@ terser-webpack-plugin@^5.3.10: terser@^5.26.0: version "5.33.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.33.0.tgz#8f9149538c7468ffcb1246cfec603c16720d2db1" + resolved "https://registry.npmjs.org/terser/-/terser-5.33.0.tgz" integrity sha512-JuPVaB7s1gdFKPKTelwUyRq5Sid2A3Gko2S0PncwdBq7kN9Ti9HPWDQ06MPsEDGsZeVESjKEnyGy68quBk1w6g== dependencies: "@jridgewell/source-map" "^0.3.3" @@ -2735,41 +2728,41 @@ terser@^5.26.0: to-fast-properties@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== to-regex-range@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== dependencies: is-number "^7.0.0" totalist@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/totalist/-/totalist-3.0.1.tgz#ba3a3d600c915b1a97872348f79c127475f6acf8" + resolved "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz" integrity sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ== "tslib@1 || 2": version "2.8.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz" integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== tslib@^1.8.1: version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== tsutils@3: version "3.21.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" + resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz" integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== dependencies: tslib "^1.8.1" type-coverage-core@^2.17.2: version "2.29.7" - resolved "https://registry.yarnpkg.com/type-coverage-core/-/type-coverage-core-2.29.7.tgz#dbc50f88e7eaf4fab6ca6fbf1811a3612cfdf451" + resolved "https://registry.npmjs.org/type-coverage-core/-/type-coverage-core-2.29.7.tgz" integrity sha512-bt+bnXekw3p5NnqiZpNupOOxfUKGw2Z/YJedfGHkxpeyGLK7DZ59a6Wds8eq1oKjJc5Wulp2xL207z8FjFO14Q== dependencies: fast-glob "3" @@ -2780,12 +2773,12 @@ type-coverage-core@^2.17.2: typed-styles@^0.0.7: version "0.0.7" - resolved "https://registry.yarnpkg.com/typed-styles/-/typed-styles-0.0.7.tgz#93392a008794c4595119ff62dde6809dbc40a3d9" + resolved "https://registry.npmjs.org/typed-styles/-/typed-styles-0.0.7.tgz" integrity sha512-pzP0PWoZUhsECYjABgCGQlRGL1n7tOHsgwYv3oIiEpJwGhFTuty/YNeduxQYzXXa3Ge5BdT6sHYIQYpl4uJ+5Q== typescript-coverage-report@^0.6.1: version "0.6.4" - resolved "https://registry.yarnpkg.com/typescript-coverage-report/-/typescript-coverage-report-0.6.4.tgz#3a7a7724c0f27de50d2a0708c7b7b7088bed2055" + resolved "https://registry.npmjs.org/typescript-coverage-report/-/typescript-coverage-report-0.6.4.tgz" integrity sha512-G+0OFYxwN5oRbORlU1nKYtO00G567lcl4+nbg3MU3Y9ayFnh677dMHmAL4JGP/4Cb1IBN5h/DUQDr/z9X+9lag== dependencies: chalk "^4.0.0" @@ -2800,22 +2793,22 @@ typescript-coverage-report@^0.6.1: typescript@^4.4.4: version "4.9.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" + resolved "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz" integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== undici-types@~6.19.2: version "6.19.8" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.19.8.tgz#35111c9d1437ab83a7cdc0abae2f26d88eda0a02" + resolved "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz" integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw== unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz#cb3173fe47ca743e228216e4a3ddc4c84d628cc2" + resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz" integrity sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg== unicode-match-property-ecmascript@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" + resolved "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz" integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== dependencies: unicode-canonical-property-names-ecmascript "^2.0.0" @@ -2823,17 +2816,17 @@ unicode-match-property-ecmascript@^2.0.0: unicode-match-property-value-ecmascript@^2.1.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz#a0401aee72714598f739b68b104e4fe3a0cb3c71" + resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz" integrity sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg== unicode-property-aliases-ecmascript@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" + resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz" integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== update-browserslist-db@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz#7ca61c0d8650766090728046e416a8cde682859e" + resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz" integrity sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ== dependencies: escalade "^3.1.2" @@ -2841,21 +2834,21 @@ update-browserslist-db@^1.1.0: uri-js@^4.2.2: version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== dependencies: punycode "^2.1.0" warning@^4.0.2, warning@^4.0.3: version "4.0.3" - resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" + resolved "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz" integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w== dependencies: loose-envify "^1.0.0" watchpack@^2.4.1: version "2.4.2" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.2.tgz#2feeaed67412e7c33184e5a79ca738fbd38564da" + resolved "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz" integrity sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw== dependencies: glob-to-regexp "^0.4.1" @@ -2863,7 +2856,7 @@ watchpack@^2.4.1: webpack-bundle-analyzer@^4.5.0: version "4.10.2" - resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.2.tgz#633af2862c213730be3dbdf40456db171b60d5bd" + resolved "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.2.tgz" integrity sha512-vJptkMm9pk5si4Bv922ZbKLV8UTT4zib4FPgXMhgzUny0bfDDkLXAVQs3ly3fS4/TN9ROFtb0NFrm04UXFE/Vw== dependencies: "@discoveryjs/json-ext" "0.5.7" @@ -2881,7 +2874,7 @@ webpack-bundle-analyzer@^4.5.0: webpack-cli@^5.1.4: version "5.1.4" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-5.1.4.tgz#c8e046ba7eaae4911d7e71e2b25b776fcc35759b" + resolved "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz" integrity sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg== dependencies: "@discoveryjs/json-ext" "^0.5.0" @@ -2900,7 +2893,7 @@ webpack-cli@^5.1.4: webpack-merge@^5.7.3: version "5.10.0" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.10.0.tgz#a3ad5d773241e9c682803abf628d4cd62b8a4177" + resolved "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz" integrity sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA== dependencies: clone-deep "^4.0.1" @@ -2909,12 +2902,12 @@ webpack-merge@^5.7.3: webpack-sources@^3.2.3: version "3.2.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" + resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz" integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== webpack@^5.76.0, webpack@^5.88.0: version "5.94.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.94.0.tgz#77a6089c716e7ab90c1c67574a28da518a20970f" + resolved "https://registry.npmjs.org/webpack/-/webpack-5.94.0.tgz" integrity sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg== dependencies: "@types/estree" "^1.0.5" @@ -2943,27 +2936,32 @@ webpack@^5.76.0, webpack@^5.88.0: which@^2.0.1: version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" wildcard@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67" + resolved "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz" integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== wrappy@1: version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== ws@^7.3.1: version "7.5.10" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" + resolved "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz" integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== yallist@^3.0.2: version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yarn@^1.22.22: + version "1.22.22" + resolved "https://registry.npmjs.org/yarn/-/yarn-1.22.22.tgz" + integrity sha512-prL3kGtyG7o9Z9Sv8IPfBNrWTDmXB4Qbes8A9rEzt6wkJV8mUvoirjU0Mp3GGAU06Y0XQyA3/2/RQFVuK7MTfg== diff --git a/resources/locale/en.yml b/resources/locale/en.yml index b2c5fb3..cc68fdf 100644 --- a/resources/locale/en.yml +++ b/resources/locale/en.yml @@ -3,6 +3,7 @@ fof-best-answer: permissions: best_answer: Select Best Answer (own Discussion) best_answer_not_own_discussion: Select Best Answer (not own Discussion) + allow_select_own_post: Select own post as Best Answer settings: label: tags: Best Answer Tags @@ -11,8 +12,6 @@ fof-best-answer: search: Search advanced: Advanced reminders_notice: For reminders to function, you must have set up the Flarum scheduler correctly. - allow_select_own_post: Select own post - allow_select_own_post_help: Allow a user to select their own post as a best answer to a discussion show_max_lines_label: Max lines to show in post preview show_max_lines_help: Set to 0 to disable. If a post is longer than the configured amount of lines, it will be truncated in the post preview with a fade out effect. select_best_answer_reminder_days: Reminder frequency diff --git a/src/Api/ForumAttributes.php b/src/Api/ForumAttributes.php index 6c038a1..1104e70 100644 --- a/src/Api/ForumAttributes.php +++ b/src/Api/ForumAttributes.php @@ -34,7 +34,6 @@ public function __invoke(ForumSerializer $serializer, $model, array $attributes) } $attributes['solutionSearchEnabled'] = $value; - $attributes['canSelectBestAnswerOwnPost'] = $this->getBooleanSetting('fof-best-answer.allow_select_own_post'); $attributes['useAlternativeBestAnswerUi'] = $this->getBooleanSetting('fof-best-answer.use_alternative_ui'); $attributes['showBestAnswerFilterUi'] = $this->getBooleanSetting('fof-best-answer.show_filter_dropdown'); $attributes['bestAnswerDiscussionSidebarJumpButton'] = $this->getBooleanSetting('fof-best-answer.discussion_sidebar_jump_button'); diff --git a/src/Api/DiscussionAttributes.php b/src/Api/PostAttributes.php similarity index 69% rename from src/Api/DiscussionAttributes.php rename to src/Api/PostAttributes.php index 889d0e1..4355216 100644 --- a/src/Api/DiscussionAttributes.php +++ b/src/Api/PostAttributes.php @@ -11,11 +11,11 @@ namespace FoF\BestAnswer\Api; -use Flarum\Api\Serializer\DiscussionSerializer; -use Flarum\Discussion\Discussion; +use Flarum\Api\Serializer\PostSerializer; +use Flarum\Post\Post; use FoF\BestAnswer\Repository\BestAnswerRepository; -class DiscussionAttributes +class PostAttributes { /** * @var BestAnswerRepository @@ -27,9 +27,9 @@ public function __construct(BestAnswerRepository $bestAnswerRepository) $this->bestAnswerRepository = $bestAnswerRepository; } - public function __invoke(DiscussionSerializer $serializer, Discussion $discussion, array $attributes): array + public function __invoke(PostSerializer $serializer, Post $post, array $attributes): array { - $attributes['canSelectBestAnswer'] = $this->bestAnswerRepository->canSelectBestAnswer($serializer->getActor(), $discussion); + $attributes['canSelectBestAnswer'] = $this->bestAnswerRepository->canSelectBestAnswer($serializer->getActor(), $post->discussion); return $attributes; } diff --git a/src/Repository/BestAnswerRepository.php b/src/Repository/BestAnswerRepository.php index 348fb6c..0aae12b 100644 --- a/src/Repository/BestAnswerRepository.php +++ b/src/Repository/BestAnswerRepository.php @@ -71,7 +71,7 @@ public function canSelectPostAsBestAnswer(User $user, Post $post): bool } if ($user->id === $post->user_id) { - return (bool) $this->settings->get('fof-best-answer.allow_select_own_post'); + return $user->can('selectBestAnswerOwnPost',$post->discussion); } return true; diff --git a/tests/integration/api/SetBestAnswerTest.php b/tests/integration/api/SetBestAnswerTest.php index 062c7d6..583f525 100644 --- a/tests/integration/api/SetBestAnswerTest.php +++ b/tests/integration/api/SetBestAnswerTest.php @@ -1,5 +1,4 @@ extension('flarum-tags'); $this->extension('fof-best-answer'); - $this->prepareDatabase([ 'users' => [ $this->normalUser(), @@ -43,35 +36,57 @@ public function setUp(): void ['id' => 1, 'discussion_id' => 1, 'user_id' => 2, 'type' => 'comment', 'content' => 'post 1 - question', 'created_at' => Carbon::now()], ['id' => 2, 'discussion_id' => 1, 'user_id' => 1, 'type' => 'comment', 'content' => 'post 2 - answer1', 'created_at' => Carbon::now()], ['id' => 3, 'discussion_id' => 1, 'user_id' => 3, 'type' => 'comment', 'content' => 'post 2 - answer2', 'created_at' => Carbon::now()], + ['id' => 4, 'discussion_id' => 1, 'user_id' => 2, 'type' => 'comment', 'content' => 'post 4 - answer by owner', 'created_at' => Carbon::now()], + ['id' => 5, 'discussion_id' => 1, 'user_id' => 3, 'type' => 'comment', 'content' => 'post 5 - answer by normal2', 'created_at' => Carbon::now()], + ['id' => 6, 'discussion_id' => 1, 'user_id' => 4, 'type' => 'comment', 'content' => 'post 6 - answer by moderator', 'created_at' => Carbon::now()], ], 'discussion_tag' => [ ['discussion_id' => 1, 'tag_id' => 2], ], 'group_permission' => [ ['group_id' => 4, 'permission' => 'discussion.selectBestAnswerNotOwnDiscussion', 'created_at' => Carbon::now()], + ['group_id' => 4, 'permission' => 'selectBestAnswerOwnPost', 'created_at' => Carbon::now()], ], 'group_user' => [ ['user_id' => 4, 'group_id' => 4], ], ]); + // Remove the default permission granted to the Members group so tests can + // explicitly control who can select a best answer. By default members are added + $this->database()->table('group_permission') + ->where('permission', 'discussion.selectBestAnswerOwnDiscussion') + ->delete(); } - public function allowedUsersProvider(): array { return [ [1], - [2], [4], ]; } - public function notAllowedUsersProvider(): array { return [ + [2], // This one is true ? [3], ]; } + /** + * Helper to retrieve a specific post from the JSON:API 'included' array + */ + protected function getPostFromResponse(array $document, int $postId) + { + if (!isset($document['included'])) return null; + + foreach ($document['included'] as $resource) { + if ($resource['type'] === 'posts' && (int)$resource['id'] === $postId) { + return $resource; + } + } + return null; + } + public function getDiscussion(int $userId): ResponseInterface { return $this->send( @@ -79,12 +94,12 @@ public function getDiscussion(int $userId): ResponseInterface 'GET', '/api/discussions/1', [ + 'queryParams' => ['include' => 'posts'], 'authenticatedAs' => $userId, ] ) ); } - public function setBestAnswer(int $userId, int $postId): ResponseInterface { return $this->send( @@ -104,7 +119,6 @@ public function setBestAnswer(int $userId, int $postId): ResponseInterface ) ); } - /** * @test * @@ -113,27 +127,29 @@ public function setBestAnswer(int $userId, int $postId): ResponseInterface public function user_with_permission_can_set_best_answer(int $userId) { $response = $this->getDiscussion($userId); - $this->assertEquals(200, $response->getStatusCode()); $data = json_decode($response->getBody()->getContents(), true); - $attributes = $data['data']['attributes']; + $targetPost = $this->getPostFromResponse($data, 3); + $this->assertNotNull($targetPost, 'Post 3 should be in the includes'); - $this->assertFalse($attributes['hasBestAnswer'], 'Expected no best answer post ID'); - $this->assertTrue($attributes['canSelectBestAnswer'], 'Expected user to be able to set best answer'); + $this->assertTrue($targetPost['attributes']['canSelectBestAnswer'], 'Expected user to be able to set best answer on this post'); $response = $this->setBestAnswer($userId, 3); - $this->assertEquals(200, $response->getStatusCode()); - $data = json_decode($response->getBody()->getContents(), true); - $attributes = $data['data']['attributes']; $this->assertEquals(3, $attributes['hasBestAnswer'], 'Expected best answer post ID to be 3'); } - + public static function unauthorizedUsersOwnPostProvider(): array + { + return [ + [2], + [3], + ]; + } /** * @test * @@ -142,18 +158,64 @@ public function user_with_permission_can_set_best_answer(int $userId) public function user_without_permission_cannot_set_best_answer(int $userId) { $response = $this->getDiscussion($userId); - $this->assertEquals(200, $response->getStatusCode()); $data = json_decode($response->getBody()->getContents(), true); + $discussionAttributes = $data['data']['attributes']; - $attributes = $data['data']['attributes']; + $this->assertFalse($discussionAttributes['hasBestAnswer'] ?? false, 'Expected no best answer post ID'); - $this->assertFalse($attributes['hasBestAnswer'], 'Expected no best answer post ID'); - $this->assertFalse($attributes['canSelectBestAnswer'], 'Expected user to not be able to set best answer'); + $targetPost = $this->getPostFromResponse($data, 3); + $this->assertNotNull($targetPost, 'Post 3 should be in the includes'); + + $this->assertFalse($targetPost['attributes']['canSelectBestAnswer'], 'Expected user to not be able to set best answer'); $response = $this->setBestAnswer($userId, 3); + $this->assertEquals(403, $response->getStatusCode()); + } + /** + * @test + * + * @dataProvider unauthorizedUsersOwnPostProvider + */ + public function user_cannot_set_own_post_as_best_answer_if_not_permitted(int $userId) + { + $postId = $userId === 2 ? 4 : 5; + $response = $this->setBestAnswer($userId, $postId); $this->assertEquals(403, $response->getStatusCode()); } + public static function permittedUsersOwnPostProvider(): array + { + return [ + [1], + [4], + ]; + } + /** + * @test + * + * @dataProvider permittedUsersOwnPostProvider + */ + public function user_can_set_own_post_as_best_answer_if_permitted(int $userId) + { + $postId = $userId === 1 ? 2 : 6; + $response = $this->setBestAnswer($userId, $postId); + $this->assertEquals(200, $response->getStatusCode()); + $data = json_decode($response->getBody()->getContents(), true); + $attributes = $data['data']['attributes']; + $this->assertEquals($postId, $attributes['hasBestAnswer'], "Expected best answer post ID to be {$postId}"); + } } + + + + + + + + + + + + diff --git a/tests/integration/api/UnsetBestAnswerTest.php b/tests/integration/api/UnsetBestAnswerTest.php index ceebee4..1fd39a3 100644 --- a/tests/integration/api/UnsetBestAnswerTest.php +++ b/tests/integration/api/UnsetBestAnswerTest.php @@ -57,6 +57,21 @@ public function setUp(): void ]); } + /** + * Helper to retrieve a specific post from the JSON:API 'included' array + */ + protected function getPostFromResponse(array $document, int $postId) + { + if (!isset($document['included'])) return null; + + foreach ($document['included'] as $resource) { + if ($resource['type'] === 'posts' && (int)$resource['id'] === $postId) { + return $resource; + } + } + return null; + } + public function getBestAnswerDiscussion(int $userId = 2): ResponseInterface { return $this->send( @@ -64,6 +79,7 @@ public function getBestAnswerDiscussion(int $userId = 2): ResponseInterface 'GET', '/api/discussions/1', [ + 'queryParams' => ['include' => 'posts'], 'authenticatedAs' => $userId, ] ) @@ -109,7 +125,7 @@ public function user_can_unset_best_answer_in_own_discussion_and_select_a_differ $data = json_decode($response->getBody()->getContents(), true); $attributes = $data['data']['attributes']; - $this->assertFalse($attributes['hasBestAnswer']); + $this->assertFalse($attributes['hasBestAnswer'] ?? false); // Check the best answer is unset and that we are allowed to set a new one $response = $this->getBestAnswerDiscussion(); @@ -119,8 +135,13 @@ public function user_can_unset_best_answer_in_own_discussion_and_select_a_differ $data = json_decode($response->getBody()->getContents(), true); $attributes = $data['data']['attributes']; - $this->assertFalse($attributes['hasBestAnswer']); - $this->assertTrue($attributes['canSelectBestAnswer'], 'Expected user to be able to set a best answer'); + + $this->assertFalse($attributes['hasBestAnswer'] ?? false); + + $targetPost = $this->getPostFromResponse($data, 3); + $this->assertNotNull($targetPost, 'Post 3 should be included in response'); + + $this->assertTrue($targetPost['attributes']['canSelectBestAnswer'], 'Expected user to be able to set a best answer on Post 3'); // Set a different post as best answer $response = $this->send( From 70eee3c3c26b2beb06d5a3f874c0d919cea59d69 Mon Sep 17 00:00:00 2001 From: BHZoon Date: Wed, 3 Dec 2025 09:34:15 +0100 Subject: [PATCH 02/12] fix: code styling --- src/Repository/BestAnswerRepository.php | 2 +- tests/integration/api/SetBestAnswerTest.php | 39 ++++++----- tests/integration/api/UnsetBestAnswerTest.php | 68 ++++++++++++++++--- 3 files changed, 83 insertions(+), 26 deletions(-) diff --git a/src/Repository/BestAnswerRepository.php b/src/Repository/BestAnswerRepository.php index 0aae12b..613c36d 100644 --- a/src/Repository/BestAnswerRepository.php +++ b/src/Repository/BestAnswerRepository.php @@ -71,7 +71,7 @@ public function canSelectPostAsBestAnswer(User $user, Post $post): bool } if ($user->id === $post->user_id) { - return $user->can('selectBestAnswerOwnPost',$post->discussion); + return $user->can('selectBestAnswerOwnPost', $post->discussion); } return true; diff --git a/tests/integration/api/SetBestAnswerTest.php b/tests/integration/api/SetBestAnswerTest.php index 583f525..e2ea4b9 100644 --- a/tests/integration/api/SetBestAnswerTest.php +++ b/tests/integration/api/SetBestAnswerTest.php @@ -1,4 +1,5 @@ where('permission', 'discussion.selectBestAnswerOwnDiscussion') ->delete(); } + public function allowedUsersProvider(): array { return [ @@ -64,6 +70,7 @@ public function allowedUsersProvider(): array [4], ]; } + public function notAllowedUsersProvider(): array { return [ @@ -73,17 +80,20 @@ public function notAllowedUsersProvider(): array } /** - * Helper to retrieve a specific post from the JSON:API 'included' array + * Helper to retrieve a specific post from the JSON:API 'included' array. */ protected function getPostFromResponse(array $document, int $postId) { - if (!isset($document['included'])) return null; + if (!isset($document['included'])) { + return null; + } foreach ($document['included'] as $resource) { - if ($resource['type'] === 'posts' && (int)$resource['id'] === $postId) { + if ($resource['type'] === 'posts' && (int) $resource['id'] === $postId) { return $resource; } } + return null; } @@ -94,12 +104,13 @@ public function getDiscussion(int $userId): ResponseInterface 'GET', '/api/discussions/1', [ - 'queryParams' => ['include' => 'posts'], + 'queryParams' => ['include' => 'posts'], 'authenticatedAs' => $userId, ] ) ); } + public function setBestAnswer(int $userId, int $postId): ResponseInterface { return $this->send( @@ -119,6 +130,7 @@ public function setBestAnswer(int $userId, int $postId): ResponseInterface ) ); } + /** * @test * @@ -143,6 +155,7 @@ public function user_with_permission_can_set_best_answer(int $userId) $this->assertEquals(3, $attributes['hasBestAnswer'], 'Expected best answer post ID to be 3'); } + public static function unauthorizedUsersOwnPostProvider(): array { return [ @@ -150,6 +163,7 @@ public static function unauthorizedUsersOwnPostProvider(): array [3], ]; } + /** * @test * @@ -173,6 +187,7 @@ public function user_without_permission_cannot_set_best_answer(int $userId) $response = $this->setBestAnswer($userId, 3); $this->assertEquals(403, $response->getStatusCode()); } + /** * @test * @@ -185,6 +200,7 @@ public function user_cannot_set_own_post_as_best_answer_if_not_permitted(int $us $this->assertEquals(403, $response->getStatusCode()); } + public static function permittedUsersOwnPostProvider(): array { return [ @@ -192,6 +208,7 @@ public static function permittedUsersOwnPostProvider(): array [4], ]; } + /** * @test * @@ -206,16 +223,4 @@ public function user_can_set_own_post_as_best_answer_if_permitted(int $userId) $attributes = $data['data']['attributes']; $this->assertEquals($postId, $attributes['hasBestAnswer'], "Expected best answer post ID to be {$postId}"); } -} - - - - - - - - - - - - +} \ No newline at end of file diff --git a/tests/integration/api/UnsetBestAnswerTest.php b/tests/integration/api/UnsetBestAnswerTest.php index 1fd39a3..69de5ff 100644 --- a/tests/integration/api/UnsetBestAnswerTest.php +++ b/tests/integration/api/UnsetBestAnswerTest.php @@ -30,19 +30,66 @@ public function setUp(): void $this->prepareDatabase([ 'users' => [ $this->normalUser(), - ['id' => 3, 'username' => 'normal2', 'email' => 'normal2@machine.local', 'is_email_confirmed' => 1, 'best_answer_count' => 0], + [ + 'id' => 3, + 'username' => 'normal2', + 'email' => 'normal2@machine.local', + 'is_email_confirmed' => 1, + 'best_answer_count' => 0 + ], ['id' => 4, 'username' => 'moderator', 'email' => 'mod:machine.local', 'is_email_confirmed' => 1], ], 'tags' => [ - ['id' => 2, 'name' => 'Q&A', 'slug' => 'q-a', 'description' => 'Q&A description', 'color' => '#FF0000', 'position' => 0, 'parent_id' => null, 'is_restricted' => false, 'is_hidden' => false, 'is_qna' => true], + [ + 'id' => 2, + 'name' => 'Q&A', + 'slug' => 'q-a', + 'description' => 'Q&A description', + 'color' => '#FF0000', + 'position' => 0, + 'parent_id' => null, + 'is_restricted' => false, + 'is_hidden' => false, + 'is_qna' => true + ], ], 'discussions' => [ - ['id' => 1, 'title' => __CLASS__, 'user_id' => 2, 'created_at' => Carbon::now(), 'comment_count' => 2, 'best_answer_post_id' => 2, 'best_answer_user_id' => 1, 'best_answer_set_at' => Carbon::now()], + [ + 'id' => 1, + 'title' => __CLASS__, + 'user_id' => 2, + 'created_at' => Carbon::now(), + 'comment_count' => 2, + 'best_answer_post_id' => 2, + 'best_answer_user_id' => 1, + 'best_answer_set_at' => Carbon::now() + ], ], 'posts' => [ - ['id' => 1, 'discussion_id' => 1, 'user_id' => 2, 'type' => 'comment', 'content' => 'post 1 - question', 'created_at' => Carbon::now()], - ['id' => 2, 'discussion_id' => 1, 'user_id' => 1, 'type' => 'comment', 'content' => 'post 2 - answer1', 'created_at' => Carbon::now()], - ['id' => 3, 'discussion_id' => 1, 'user_id' => 3, 'type' => 'comment', 'content' => 'post 2 - answer2', 'created_at' => Carbon::now()], + [ + 'id' => 1, + 'discussion_id' => 1, + 'user_id' => 2, + 'type' => 'comment', + 'content' => 'post 1 - question', + 'created_at' => Carbon::now() + ], + [ + 'id' => 2, + 'discussion_id' => 1, + 'user_id' => 1, + 'type' => 'comment', + 'content' => 'post 2 - answer1', + 'created_at' => Carbon::now() + ], + [ + 'id' => 3, + 'discussion_id' => 1, + 'user_id' => 3, + 'type' => 'comment', + 'content' => 'post 2 - answer2', + 'created_at' => Carbon::now() + ], ], 'discussion_tag' => [ ['discussion_id' => 1, 'tag_id' => 2], @@ -62,7 +109,9 @@ public function setUp(): void */ protected function getPostFromResponse(array $document, int $postId) { - if (!isset($document['included'])) return null; + if (!isset($document['included'])) { + return null; + } foreach ($document['included'] as $resource) { if ($resource['type'] === 'posts' && (int)$resource['id'] === $postId) { @@ -141,7 +190,10 @@ public function user_can_unset_best_answer_in_own_discussion_and_select_a_differ $targetPost = $this->getPostFromResponse($data, 3); $this->assertNotNull($targetPost, 'Post 3 should be included in response'); - $this->assertTrue($targetPost['attributes']['canSelectBestAnswer'], 'Expected user to be able to set a best answer on Post 3'); + $this->assertTrue( + $targetPost['attributes']['canSelectBestAnswer'], + 'Expected user to be able to set a best answer on Post 3' + ); // Set a different post as best answer $response = $this->send( From 54432089389e668c57228b7f4337f113fc58960a Mon Sep 17 00:00:00 2001 From: BHZoon Date: Wed, 3 Dec 2025 09:39:29 +0100 Subject: [PATCH 03/12] fix: code styling --- tests/integration/api/UnsetBestAnswerTest.php | 94 +++++++++---------- 1 file changed, 47 insertions(+), 47 deletions(-) diff --git a/tests/integration/api/UnsetBestAnswerTest.php b/tests/integration/api/UnsetBestAnswerTest.php index 69de5ff..04450a7 100644 --- a/tests/integration/api/UnsetBestAnswerTest.php +++ b/tests/integration/api/UnsetBestAnswerTest.php @@ -28,84 +28,84 @@ public function setUp(): void $this->extension('fof-best-answer'); $this->prepareDatabase([ - 'users' => [ + 'users' => [ $this->normalUser(), [ - 'id' => 3, - 'username' => 'normal2', - 'email' => 'normal2@machine.local', + 'id' => 3, + 'username' => 'normal2', + 'email' => 'normal2@machine.local', 'is_email_confirmed' => 1, - 'best_answer_count' => 0 + 'best_answer_count' => 0 ], ['id' => 4, 'username' => 'moderator', 'email' => 'mod:machine.local', 'is_email_confirmed' => 1], ], - 'tags' => [ + 'tags' => [ [ - 'id' => 2, - 'name' => 'Q&A', - 'slug' => 'q-a', - 'description' => 'Q&A description', - 'color' => '#FF0000', - 'position' => 0, - 'parent_id' => null, + 'id' => 2, + 'name' => 'Q&A', + 'slug' => 'q-a', + 'description' => 'Q&A description', + 'color' => '#FF0000', + 'position' => 0, + 'parent_id' => null, 'is_restricted' => false, - 'is_hidden' => false, - 'is_qna' => true + 'is_hidden' => false, + 'is_qna' => true ], ], - 'discussions' => [ + 'discussions' => [ [ - 'id' => 1, - 'title' => __CLASS__, - 'user_id' => 2, - 'created_at' => Carbon::now(), - 'comment_count' => 2, + 'id' => 1, + 'title' => __CLASS__, + 'user_id' => 2, + 'created_at' => Carbon::now(), + 'comment_count' => 2, 'best_answer_post_id' => 2, 'best_answer_user_id' => 1, - 'best_answer_set_at' => Carbon::now() + 'best_answer_set_at' => Carbon::now() ], ], - 'posts' => [ + 'posts' => [ [ - 'id' => 1, + 'id' => 1, 'discussion_id' => 1, - 'user_id' => 2, - 'type' => 'comment', - 'content' => 'post 1 - question', - 'created_at' => Carbon::now() + 'user_id' => 2, + 'type' => 'comment', + 'content' => 'post 1 - question', + 'created_at' => Carbon::now() ], [ - 'id' => 2, + 'id' => 2, 'discussion_id' => 1, - 'user_id' => 1, - 'type' => 'comment', - 'content' => 'post 2 - answer1', - 'created_at' => Carbon::now() + 'user_id' => 1, + 'type' => 'comment', + 'content' => 'post 2 - answer1', + 'created_at' => Carbon::now() ], [ - 'id' => 3, + 'id' => 3, 'discussion_id' => 1, - 'user_id' => 3, - 'type' => 'comment', - 'content' => 'post 2 - answer2', - 'created_at' => Carbon::now() + 'user_id' => 3, + 'type' => 'comment', + 'content' => 'post 2 - answer2', + 'created_at' => Carbon::now() ], ], - 'discussion_tag' => [ + 'discussion_tag' => [ ['discussion_id' => 1, 'tag_id' => 2], ], 'group_permission' => [ ['permission' => 'discussion.selectBestAnswerOwnDiscussion', 'group_id' => 3], ['permission' => 'discussion.selectBestAnswerNotOwnDiscussion', 'group_id' => 4], ], - 'group_user' => [ + 'group_user' => [ ['user_id' => 4, 'group_id' => 4], ], ]); } /** - * Helper to retrieve a specific post from the JSON:API 'included' array + * Helper to retrieve a specific post from the JSON:API 'included' array. */ protected function getPostFromResponse(array $document, int $postId) { @@ -114,7 +114,7 @@ protected function getPostFromResponse(array $document, int $postId) } foreach ($document['included'] as $resource) { - if ($resource['type'] === 'posts' && (int)$resource['id'] === $postId) { + if ($resource['type'] === 'posts' && (int) $resource['id'] === $postId) { return $resource; } } @@ -128,7 +128,7 @@ public function getBestAnswerDiscussion(int $userId = 2): ResponseInterface 'GET', '/api/discussions/1', [ - 'queryParams' => ['include' => 'posts'], + 'queryParams' => ['include' => 'posts'], 'authenticatedAs' => $userId, ] ) @@ -156,7 +156,7 @@ public function user_can_unset_best_answer_in_own_discussion_and_select_a_differ 'PATCH', '/api/discussions/1', [ - 'json' => [ + 'json' => [ 'data' => [ 'attributes' => [ 'bestAnswerPostId' => 0, @@ -201,7 +201,7 @@ public function user_can_unset_best_answer_in_own_discussion_and_select_a_differ 'PATCH', '/api/discussions/1', [ - 'json' => [ + 'json' => [ 'data' => [ 'attributes' => [ 'bestAnswerPostId' => 3, @@ -249,7 +249,7 @@ public function user_without_permission_cannot_unset_a_best_answer(int $userId) 'PATCH', '/api/discussions/1', [ - 'json' => [ + 'json' => [ 'data' => [ 'attributes' => [ 'bestAnswerPostId' => 0, @@ -277,7 +277,7 @@ public function user_with_permission_can_unset_a_best_answer(int $userId) 'PATCH', '/api/discussions/1', [ - 'json' => [ + 'json' => [ 'data' => [ 'attributes' => [ 'bestAnswerPostId' => 0, From 46dcab34afa579762704528edfbf022144648d25 Mon Sep 17 00:00:00 2001 From: BHZoon Date: Wed, 3 Dec 2025 09:41:52 +0100 Subject: [PATCH 04/12] fix: code styling --- tests/integration/api/SetBestAnswerTest.php | 1 + tests/integration/api/UnsetBestAnswerTest.php | 13 +++++++------ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/tests/integration/api/SetBestAnswerTest.php b/tests/integration/api/SetBestAnswerTest.php index e2ea4b9..0787326 100644 --- a/tests/integration/api/SetBestAnswerTest.php +++ b/tests/integration/api/SetBestAnswerTest.php @@ -223,4 +223,5 @@ public function user_can_set_own_post_as_best_answer_if_permitted(int $userId) $attributes = $data['data']['attributes']; $this->assertEquals($postId, $attributes['hasBestAnswer'], "Expected best answer post ID to be {$postId}"); } + } \ No newline at end of file diff --git a/tests/integration/api/UnsetBestAnswerTest.php b/tests/integration/api/UnsetBestAnswerTest.php index 04450a7..c8925ee 100644 --- a/tests/integration/api/UnsetBestAnswerTest.php +++ b/tests/integration/api/UnsetBestAnswerTest.php @@ -35,7 +35,7 @@ public function setUp(): void 'username' => 'normal2', 'email' => 'normal2@machine.local', 'is_email_confirmed' => 1, - 'best_answer_count' => 0 + 'best_answer_count' => 0, ], ['id' => 4, 'username' => 'moderator', 'email' => 'mod:machine.local', 'is_email_confirmed' => 1], ], @@ -50,7 +50,7 @@ public function setUp(): void 'parent_id' => null, 'is_restricted' => false, 'is_hidden' => false, - 'is_qna' => true + 'is_qna' => true, ], ], 'discussions' => [ @@ -62,7 +62,7 @@ public function setUp(): void 'comment_count' => 2, 'best_answer_post_id' => 2, 'best_answer_user_id' => 1, - 'best_answer_set_at' => Carbon::now() + 'best_answer_set_at' => Carbon::now(), ], ], 'posts' => [ @@ -72,7 +72,7 @@ public function setUp(): void 'user_id' => 2, 'type' => 'comment', 'content' => 'post 1 - question', - 'created_at' => Carbon::now() + 'created_at' => Carbon::now(), ], [ 'id' => 2, @@ -80,7 +80,7 @@ public function setUp(): void 'user_id' => 1, 'type' => 'comment', 'content' => 'post 2 - answer1', - 'created_at' => Carbon::now() + 'created_at' => Carbon::now(), ], [ 'id' => 3, @@ -88,7 +88,7 @@ public function setUp(): void 'user_id' => 3, 'type' => 'comment', 'content' => 'post 2 - answer2', - 'created_at' => Carbon::now() + 'created_at' => Carbon::now(), ], ], 'discussion_tag' => [ @@ -118,6 +118,7 @@ protected function getPostFromResponse(array $document, int $postId) return $resource; } } + return null; } From 070667dc8bac2d9c06a9f0e1b7db735ff4911c24 Mon Sep 17 00:00:00 2001 From: BHZoon Date: Wed, 3 Dec 2025 09:42:51 +0100 Subject: [PATCH 05/12] fix: code styling --- tests/integration/api/SetBestAnswerTest.php | 116 ++++++++++++++++---- 1 file changed, 95 insertions(+), 21 deletions(-) diff --git a/tests/integration/api/SetBestAnswerTest.php b/tests/integration/api/SetBestAnswerTest.php index 0787326..8f2e316 100644 --- a/tests/integration/api/SetBestAnswerTest.php +++ b/tests/integration/api/SetBestAnswerTest.php @@ -26,33 +26,102 @@ public function setUp(): void $this->extension('flarum-tags'); $this->extension('fof-best-answer'); $this->prepareDatabase([ - 'users' => [ + 'users' => [ $this->normalUser(), - ['id' => 3, 'username' => 'normal2', 'email' => 'normal2@machine.local', 'is_email_confirmed' => 1, 'best_answer_count' => 0], - ['id' => 4, 'username' => 'moderator', 'email' => 'moderator@machine.local', 'is_email_confirmed' => 1, 'best_answer_count' => 0], + [ + 'id' => 3, + 'username' => 'normal2', + 'email' => 'normal2@machine.local', + 'is_email_confirmed' => 1, + 'best_answer_count' => 0 + ], + [ + 'id' => 4, + 'username' => 'moderator', + 'email' => 'moderator@machine.local', + 'is_email_confirmed' => 1, + 'best_answer_count' => 0 + ], ], - 'tags' => [ - ['id' => 2, 'name' => 'Q&A', 'slug' => 'q-a', 'description' => 'Q&A description', 'color' => '#FF0000', 'position' => 0, 'parent_id' => null, 'is_restricted' => false, 'is_hidden' => false, 'is_qna' => true], + 'tags' => [ + [ + 'id' => 2, + 'name' => 'Q&A', + 'slug' => 'q-a', + 'description' => 'Q&A description', + 'color' => '#FF0000', + 'position' => 0, + 'parent_id' => null, + 'is_restricted' => false, + 'is_hidden' => false, + 'is_qna' => true + ], ], - 'discussions' => [ + 'discussions' => [ ['id' => 1, 'title' => __CLASS__, 'user_id' => 2, 'created_at' => Carbon::now(), 'comment_count' => 2], ], - 'posts' => [ - ['id' => 1, 'discussion_id' => 1, 'user_id' => 2, 'type' => 'comment', 'content' => 'post 1 - question', 'created_at' => Carbon::now()], - ['id' => 2, 'discussion_id' => 1, 'user_id' => 1, 'type' => 'comment', 'content' => 'post 2 - answer1', 'created_at' => Carbon::now()], - ['id' => 3, 'discussion_id' => 1, 'user_id' => 3, 'type' => 'comment', 'content' => 'post 2 - answer2', 'created_at' => Carbon::now()], - ['id' => 4, 'discussion_id' => 1, 'user_id' => 2, 'type' => 'comment', 'content' => 'post 4 - answer by owner', 'created_at' => Carbon::now()], - ['id' => 5, 'discussion_id' => 1, 'user_id' => 3, 'type' => 'comment', 'content' => 'post 5 - answer by normal2', 'created_at' => Carbon::now()], - ['id' => 6, 'discussion_id' => 1, 'user_id' => 4, 'type' => 'comment', 'content' => 'post 6 - answer by moderator', 'created_at' => Carbon::now()], + 'posts' => [ + [ + 'id' => 1, + 'discussion_id' => 1, + 'user_id' => 2, + 'type' => 'comment', + 'content' => 'post 1 - question', + 'created_at' => Carbon::now() + ], + [ + 'id' => 2, + 'discussion_id' => 1, + 'user_id' => 1, + 'type' => 'comment', + 'content' => 'post 2 - answer1', + 'created_at' => Carbon::now() + ], + [ + 'id' => 3, + 'discussion_id' => 1, + 'user_id' => 3, + 'type' => 'comment', + 'content' => 'post 2 - answer2', + 'created_at' => Carbon::now() + ], + [ + 'id' => 4, + 'discussion_id' => 1, + 'user_id' => 2, + 'type' => 'comment', + 'content' => 'post 4 - answer by owner', + 'created_at' => Carbon::now() + ], + [ + 'id' => 5, + 'discussion_id' => 1, + 'user_id' => 3, + 'type' => 'comment', + 'content' => 'post 5 - answer by normal2', + 'created_at' => Carbon::now() + ], + [ + 'id' => 6, + 'discussion_id' => 1, + 'user_id' => 4, + 'type' => 'comment', + 'content' => 'post 6 - answer by moderator', + 'created_at' => Carbon::now() + ], ], - 'discussion_tag' => [ + 'discussion_tag' => [ ['discussion_id' => 1, 'tag_id' => 2], ], 'group_permission' => [ - ['group_id' => 4, 'permission' => 'discussion.selectBestAnswerNotOwnDiscussion', 'created_at' => Carbon::now()], + [ + 'group_id' => 4, + 'permission' => 'discussion.selectBestAnswerNotOwnDiscussion', + 'created_at' => Carbon::now() + ], ['group_id' => 4, 'permission' => 'selectBestAnswerOwnPost', 'created_at' => Carbon::now()], ], - 'group_user' => [ + 'group_user' => [ ['user_id' => 4, 'group_id' => 4], ], ]); @@ -89,7 +158,7 @@ protected function getPostFromResponse(array $document, int $postId) } foreach ($document['included'] as $resource) { - if ($resource['type'] === 'posts' && (int) $resource['id'] === $postId) { + if ($resource['type'] === 'posts' && (int)$resource['id'] === $postId) { return $resource; } } @@ -118,7 +187,7 @@ public function setBestAnswer(int $userId, int $postId): ResponseInterface 'PATCH', '/api/discussions/1', [ - 'json' => [ + 'json' => [ 'data' => [ 'attributes' => [ 'bestAnswerPostId' => $postId, @@ -146,7 +215,10 @@ public function user_with_permission_can_set_best_answer(int $userId) $targetPost = $this->getPostFromResponse($data, 3); $this->assertNotNull($targetPost, 'Post 3 should be in the includes'); - $this->assertTrue($targetPost['attributes']['canSelectBestAnswer'], 'Expected user to be able to set best answer on this post'); + $this->assertTrue( + $targetPost['attributes']['canSelectBestAnswer'], + 'Expected user to be able to set best answer on this post' + ); $response = $this->setBestAnswer($userId, 3); $this->assertEquals(200, $response->getStatusCode()); @@ -182,7 +254,10 @@ public function user_without_permission_cannot_set_best_answer(int $userId) $targetPost = $this->getPostFromResponse($data, 3); $this->assertNotNull($targetPost, 'Post 3 should be in the includes'); - $this->assertFalse($targetPost['attributes']['canSelectBestAnswer'], 'Expected user to not be able to set best answer'); + $this->assertFalse( + $targetPost['attributes']['canSelectBestAnswer'], + 'Expected user to not be able to set best answer' + ); $response = $this->setBestAnswer($userId, 3); $this->assertEquals(403, $response->getStatusCode()); @@ -223,5 +298,4 @@ public function user_can_set_own_post_as_best_answer_if_permitted(int $userId) $attributes = $data['data']['attributes']; $this->assertEquals($postId, $attributes['hasBestAnswer'], "Expected best answer post ID to be {$postId}"); } - } \ No newline at end of file From 9e4ad62535e80686be268947dc1c3d37b72b450d Mon Sep 17 00:00:00 2001 From: BHZoon Date: Thu, 4 Dec 2025 10:37:41 +0100 Subject: [PATCH 06/12] chore: cleanup dependencies, fix types and formatting --- js/dist/admin.js | 470 +++++++- js/dist/admin.js.map | 2 +- js/dist/forum.js | 2354 +++++++++++++++++++++++++++++++++++++- js/dist/forum.js.map | 2 +- js/package.json | 3 - js/src/@types/shims.d.ts | 8 +- js/src/admin/index.ts | 11 +- 7 files changed, 2833 insertions(+), 17 deletions(-) diff --git a/js/dist/admin.js b/js/dist/admin.js index ae0fca5..24b798e 100644 --- a/js/dist/admin.js +++ b/js/dist/admin.js @@ -1,2 +1,470 @@ -(()=>{var t={493:t=>{"use strict";t.exports=flarum.extensions["fof-user-directory"]}},e={};function s(n){var a=e[n];if(void 0!==a)return a.exports;var r=e[n]={exports:{}};return t[n](r,r.exports,s),r.exports}s.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return s.d(e,{a:e}),e},s.d=(t,e)=>{for(var n in e)s.o(e,n)&&!s.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},s.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),s.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};(()=>{"use strict";s.r(n),s.d(n,{extend:()=>c});const t=flarum.core.compat["admin/app"];var e=s.n(t);function a(){return a=Object.assign?Object.assign.bind():function(t){for(var e=1;e { // webpackBootstrap +/******/ // runtime can't be in strict mode because a global variable is assign and maybe created. +/******/ var __webpack_modules__ = ({ + +/***/ "./src/admin/components/BestAnswerSettingsPage.tsx": +/*!*********************************************************!*\ + !*** ./src/admin/components/BestAnswerSettingsPage.tsx ***! + \*********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ BestAnswerSettingsPage) +/* harmony export */ }); +/* harmony import */ var _babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/inheritsLoose */ "./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js"); +/* harmony import */ var flarum_admin_app__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! flarum/admin/app */ "flarum/admin/app"); +/* harmony import */ var flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(flarum_admin_app__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var flarum_admin_components_ExtensionPage__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! flarum/admin/components/ExtensionPage */ "flarum/admin/components/ExtensionPage"); +/* harmony import */ var flarum_admin_components_ExtensionPage__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(flarum_admin_components_ExtensionPage__WEBPACK_IMPORTED_MODULE_2__); + + + +var BestAnswerSettingsPage = /*#__PURE__*/function (_ExtensionPage) { + function BestAnswerSettingsPage() { + return _ExtensionPage.apply(this, arguments) || this; + } + (0,_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__["default"])(BestAnswerSettingsPage, _ExtensionPage); + var _proto = BestAnswerSettingsPage.prototype; + _proto.content = function content() { + return m("div", { + className: "BestAnswerSettings" + }, m("div", { + className: "container" + }, m("div", { + className: "BestAnswerSettings--content" + }, m("h3", null, flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default().translator.trans('fof-best-answer.admin.settings.label.tags')), m("p", { + className: "helpText" + }, flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default().translator.trans('fof-best-answer.admin.settings.tags_info')), m("div", { + className: "Section" + }, this.buildSettingComponent({ + type: 'flarum-tags.select-tags', + setting: 'fof-best-answer.enabled-tags', + label: flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default().translator.trans('fof-best-answer.admin.settings.enabled_tags_label'), + help: flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default().translator.trans('fof-best-answer.admin.settings.enabled_tags_help'), + options: { + requireParentTag: false + } + }), this.buildSettingComponent({ + type: 'flarum-tags.select-tags', + setting: 'fof-best-answer.remind-tags', + label: flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default().translator.trans('fof-best-answer.admin.settings.remind_tags_label'), + help: flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default().translator.trans('fof-best-answer.admin.settings.remind_tags_help'), + options: { + requireParentTag: false + } + })), m("h3", null, flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default().translator.trans('fof-best-answer.admin.settings.label.general')), m("div", { + className: "Section" + }, this.buildSettingComponent({ + type: 'boolean', + setting: 'fof-best-answer.use_alternative_ui', + label: flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default().translator.trans('fof-best-answer.admin.settings.use_alt_ui'), + help: flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default().translator.trans('fof-best-answer.admin.settings.use_alt_ui_help') + }), this.buildSettingComponent({ + type: 'boolean', + setting: 'fof-best-answer.show_filter_dropdown', + label: flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default().translator.trans('fof-best-answer.admin.settings.show_filter_label'), + help: flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default().translator.trans('fof-best-answer.admin.settings.show_filter_help') + }), this.buildSettingComponent({ + type: 'number', + setting: 'fof-best-answer.show_max_lines', + label: flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default().translator.trans('fof-best-answer.admin.settings.show_max_lines_label'), + help: flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default().translator.trans('fof-best-answer.admin.settings.show_max_lines_help') + }), this.buildSettingComponent({ + type: 'flarum-tags.select-tags', + setting: 'fof-best-answer.select_best_answer_tags', + label: flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default().translator.trans('fof-best-answer.admin.settings.select_best_answer_tags_label'), + help: flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default().translator.trans('fof-best-answer.admin.settings.select_best_answer_tags_help'), + options: { + requireParentTag: true, + limits: { + max: { + primary: 0 + } + } + } + }), this.buildSettingComponent({ + setting: 'fof-best-answer.discussion_sidebar_jump_button', + type: 'boolean', + label: flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default().translator.trans('fof-best-answer.admin.settings.discussion_sidebar_jump_button'), + help: flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default().translator.trans('fof-best-answer.admin.settings.discussion_sidebar_jump_button_help') + })), m("h3", null, flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default().translator.trans('fof-best-answer.admin.settings.label.search')), m("div", { + className: "Section" + }, this.buildSettingComponent({ + type: 'boolean', + setting: 'fof-best-answer.search.solution_search', + label: flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default().translator.trans('fof-best-answer.admin.settings.solution_search'), + help: flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default().translator.trans('fof-best-answer.admin.settings.solution_search_help') + }), this.buildSettingComponent({ + type: 'boolean', + setting: 'fof-best-answer.search.remove_solutions_from_main_search', + label: flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default().translator.trans('fof-best-answer.admin.settings.remove_solutions_from_main_search'), + help: flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default().translator.trans('fof-best-answer.admin.settings.remove_solutions_from_main_search_help') + }), this.buildSettingComponent({ + type: 'boolean', + setting: 'fof-best-answer.search.display_tags', + label: flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default().translator.trans('fof-best-answer.admin.settings.display_tags'), + help: flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default().translator.trans('fof-best-answer.admin.settings.display_tags_help') + })), m("h3", null, flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default().translator.trans('fof-best-answer.admin.settings.label.reminders')), m("p", { + className: "helpText" + }, flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default().translator.trans('fof-best-answer.admin.settings.label.reminders_notice'), ' ', m("a", { + href: "https://docs.flarum.org/console/#schedulerun", + target: "_blank" + }, flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default().translator.trans('fof-best-answer.admin.settings.documentation'))), m("div", { + className: "Section" + }, this.buildSettingComponent({ + type: 'number', + setting: 'fof-best-answer.select_best_answer_reminder_days', + label: flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default().translator.trans('fof-best-answer.admin.settings.select_best_answer_reminder_days'), + placeholder: '0', + min: 0, + help: flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default().translator.trans('fof-best-answer.admin.settings.select_best_answer_reminder_days_help') + })), m("h3", null, flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default().translator.trans('fof-best-answer.admin.settings.label.advanced')), m("div", { + className: "Section" + }, this.buildSettingComponent({ + type: 'boolean', + setting: 'fof-best-answer.schedule_on_one_server', + label: flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default().translator.trans('fof-best-answer.admin.settings.schedule_on_one_server'), + help: flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default().translator.trans('fof-best-answer.admin.settings.schedule_on_one_server_help') + }), this.buildSettingComponent({ + type: 'boolean', + setting: 'fof-best-answer.stop_overnight', + label: flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default().translator.trans('fof-best-answer.admin.settings.schedule_stop_overnight'), + help: flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default().translator.trans('fof-best-answer.admin.settings.schedule_stop_overnight_help') + }), this.buildSettingComponent({ + type: 'boolean', + setting: 'fof-best-answer.store_log_output', + label: flarum_admin_app__WEBPACK_IMPORTED_MODULE_1___default().translator.trans('fof-best-answer.admin.settings.schedule_log_output') + })), this.submitButton()))); + }; + return BestAnswerSettingsPage; +}((flarum_admin_components_ExtensionPage__WEBPACK_IMPORTED_MODULE_2___default())); + + +/***/ }), + +/***/ "./src/admin/extend.ts": +/*!*****************************!*\ + !*** ./src/admin/extend.ts ***! + \*****************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _common_extend__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/extend */ "./src/common/extend.ts"); + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ([].concat(_common_extend__WEBPACK_IMPORTED_MODULE_0__["default"])); + +/***/ }), + +/***/ "./src/admin/index.ts": +/*!****************************!*\ + !*** ./src/admin/index.ts ***! + \****************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ extend: () => (/* reexport safe */ _extend__WEBPACK_IMPORTED_MODULE_3__["default"]) +/* harmony export */ }); +/* harmony import */ var flarum_admin_app__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! flarum/admin/app */ "flarum/admin/app"); +/* harmony import */ var flarum_admin_app__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(flarum_admin_app__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _common_addBestAnswerCountSort__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../common/addBestAnswerCountSort */ "./src/common/addBestAnswerCountSort.ts"); +/* harmony import */ var _components_BestAnswerSettingsPage__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./components/BestAnswerSettingsPage */ "./src/admin/components/BestAnswerSettingsPage.tsx"); +/* harmony import */ var _extend__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./extend */ "./src/admin/extend.ts"); + + + + +flarum_admin_app__WEBPACK_IMPORTED_MODULE_0___default().initializers.add('fof-best-answer', function () { + flarum_admin_app__WEBPACK_IMPORTED_MODULE_0___default().extensionData["for"]('fof-best-answer').registerPage(_components_BestAnswerSettingsPage__WEBPACK_IMPORTED_MODULE_2__["default"]).registerPermission({ + icon: 'far fa-comment', + label: flarum_admin_app__WEBPACK_IMPORTED_MODULE_0___default().translator.trans('fof-best-answer.admin.permissions.best_answer'), + permission: 'discussion.selectBestAnswerOwnDiscussion' + }, 'reply').registerPermission({ + icon: 'far fa-comment', + label: flarum_admin_app__WEBPACK_IMPORTED_MODULE_0___default().translator.trans('fof-best-answer.admin.permissions.best_answer_not_own_discussion'), + permission: 'discussion.selectBestAnswerNotOwnDiscussion' + }, 'reply').registerPermission({ + icon: 'far fa-comment', + label: flarum_admin_app__WEBPACK_IMPORTED_MODULE_0___default().translator.trans('fof-best-answer.admin.permissions.allow_select_own_post'), + permission: 'discussion.selectBestAnswerOwnPost' + }, 'reply'); + (0,_common_addBestAnswerCountSort__WEBPACK_IMPORTED_MODULE_1__["default"])(); +}, 5); + +/***/ }), + +/***/ "./src/common/addBestAnswerCountSort.ts": +/*!**********************************************!*\ + !*** ./src/common/addBestAnswerCountSort.ts ***! + \**********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ "./node_modules/@babel/runtime/helpers/esm/extends.js"); +/* harmony import */ var flarum_common_extend__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! flarum/common/extend */ "flarum/common/extend"); +/* harmony import */ var flarum_common_extend__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(flarum_common_extend__WEBPACK_IMPORTED_MODULE_1__); + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (function () { + var FoFUserDirectory = __webpack_require__(/*! @fof-user-directory */ "@fof-user-directory"); + if (!FoFUserDirectory) return; + (0,flarum_common_extend__WEBPACK_IMPORTED_MODULE_1__.override)(FoFUserDirectory.SortMap.prototype, 'sortMap', function (map) { + return (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, map(), { + most_best_answers: '-bestAnswerCount', + least_best_answers: 'bestAnswerCount' + }); + }); +}); + +/***/ }), + +/***/ "./src/common/extend.ts": +/*!******************************!*\ + !*** ./src/common/extend.ts ***! + \******************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var flarum_common_extenders__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! flarum/common/extenders */ "flarum/common/extenders"); +/* harmony import */ var flarum_common_extenders__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(flarum_common_extenders__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var flarum_tags_common_models_Tag__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! flarum/tags/common/models/Tag */ "flarum/tags/common/models/Tag"); +/* harmony import */ var flarum_tags_common_models_Tag__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(flarum_tags_common_models_Tag__WEBPACK_IMPORTED_MODULE_1__); + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ([new (flarum_common_extenders__WEBPACK_IMPORTED_MODULE_0___default().Model)((flarum_tags_common_models_Tag__WEBPACK_IMPORTED_MODULE_1___default())) // +.attribute('isQnA').attribute('reminders')]); + +/***/ }), + +/***/ "@fof-user-directory": +/*!**********************************************************!*\ + !*** external "flarum.extensions['fof-user-directory']" ***! + \**********************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = flarum.extensions['fof-user-directory']; + +/***/ }), + +/***/ "flarum/admin/app": +/*!**************************************************!*\ + !*** external "flarum.core.compat['admin/app']" ***! + \**************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = flarum.core.compat['admin/app']; + +/***/ }), + +/***/ "flarum/admin/components/ExtensionPage": +/*!***********************************************************************!*\ + !*** external "flarum.core.compat['admin/components/ExtensionPage']" ***! + \***********************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = flarum.core.compat['admin/components/ExtensionPage']; + +/***/ }), + +/***/ "flarum/common/extend": +/*!******************************************************!*\ + !*** external "flarum.core.compat['common/extend']" ***! + \******************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = flarum.core.compat['common/extend']; + +/***/ }), + +/***/ "flarum/common/extenders": +/*!*********************************************************!*\ + !*** external "flarum.core.compat['common/extenders']" ***! + \*********************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = flarum.core.compat['common/extenders']; + +/***/ }), + +/***/ "flarum/tags/common/models/Tag": +/*!***************************************************************!*\ + !*** external "flarum.core.compat['tags/common/models/Tag']" ***! + \***************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = flarum.core.compat['tags/common/models/Tag']; + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/extends.js": +/*!************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/extends.js ***! + \************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _extends) +/* harmony export */ }); +function _extends() { + return _extends = Object.assign ? Object.assign.bind() : function (n) { + for (var e = 1; e < arguments.length; e++) { + var t = arguments[e]; + for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); + } + return n; + }, _extends.apply(null, arguments); +} + + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js": +/*!******************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js ***! + \******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _inheritsLoose) +/* harmony export */ }); +/* harmony import */ var _setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setPrototypeOf.js */ "./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js"); + +function _inheritsLoose(t, o) { + t.prototype = Object.create(o.prototype), t.prototype.constructor = t, (0,_setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__["default"])(t, o); +} + + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js": +/*!*******************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _setPrototypeOf) +/* harmony export */ }); +function _setPrototypeOf(t, e) { + return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { + return t.__proto__ = e, t; + }, _setPrototypeOf(t, e); +} + + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (exports, definition) => { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be in strict mode. +(() => { +"use strict"; +/*!******************!*\ + !*** ./admin.ts ***! + \******************/ +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ extend: () => (/* reexport safe */ _src_admin__WEBPACK_IMPORTED_MODULE_0__.extend) +/* harmony export */ }); +/* harmony import */ var _src_admin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/admin */ "./src/admin/index.ts"); + +})(); + +module.exports = __webpack_exports__; +/******/ })() +; //# sourceMappingURL=admin.js.map \ No newline at end of file diff --git a/js/dist/admin.js.map b/js/dist/admin.js.map index 5c53f89..8ae1ac1 100644 --- a/js/dist/admin.js.map +++ b/js/dist/admin.js.map @@ -1 +1 @@ -{"version":3,"file":"admin.js","mappings":"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","sources":["webpack://@fof/best-answer/external assign \"flarum.extensions['fof-user-directory']\"","webpack://@fof/best-answer/webpack/bootstrap","webpack://@fof/best-answer/webpack/runtime/compat get default export","webpack://@fof/best-answer/webpack/runtime/define property getters","webpack://@fof/best-answer/webpack/runtime/hasOwnProperty shorthand","webpack://@fof/best-answer/webpack/runtime/make namespace object","webpack://@fof/best-answer/external root \"flarum.core.compat['admin/app']\"","webpack://@fof/best-answer/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://@fof/best-answer/external root \"flarum.core.compat['common/extend']\"","webpack://@fof/best-answer/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://@fof/best-answer/external root \"flarum.core.compat['admin/components/ExtensionPage']\"","webpack://@fof/best-answer/./src/admin/components/BestAnswerSettingsPage.tsx","webpack://@fof/best-answer/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://@fof/best-answer/external root \"flarum.core.compat['common/extenders']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['tags/common/models/Tag']\"","webpack://@fof/best-answer/./src/common/extend.ts","webpack://@fof/best-answer/./src/admin/extend.ts","webpack://@fof/best-answer/./src/admin/index.ts","webpack://@fof/best-answer/./src/common/addBestAnswerCountSort.ts"],"sourcesContent":["module.exports = flarum.extensions['fof-user-directory'];","// 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](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.core.compat['admin/app'];","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/extend'];","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['admin/components/ExtensionPage'];","import app from 'flarum/admin/app';\nimport ExtensionPage from 'flarum/admin/components/ExtensionPage';\n\nexport default class BestAnswerSettingsPage extends ExtensionPage {\n content() {\n return (\n
    \n
    \n
    \n

    {app.translator.trans('fof-best-answer.admin.settings.label.tags')}

    \n

    {app.translator.trans('fof-best-answer.admin.settings.tags_info')}

    \n
    \n {this.buildSettingComponent({\n type: 'flarum-tags.select-tags',\n setting: 'fof-best-answer.enabled-tags',\n label: app.translator.trans('fof-best-answer.admin.settings.enabled_tags_label'),\n help: app.translator.trans('fof-best-answer.admin.settings.enabled_tags_help'),\n options: {\n requireParentTag: false,\n },\n })}\n {this.buildSettingComponent({\n type: 'flarum-tags.select-tags',\n setting: 'fof-best-answer.remind-tags',\n label: app.translator.trans('fof-best-answer.admin.settings.remind_tags_label'),\n help: app.translator.trans('fof-best-answer.admin.settings.remind_tags_help'),\n options: {\n requireParentTag: false,\n },\n })}\n
    \n

    {app.translator.trans('fof-best-answer.admin.settings.label.general')}

    \n
    \n {this.buildSettingComponent({\n type: 'boolean',\n setting: 'fof-best-answer.use_alternative_ui',\n label: app.translator.trans('fof-best-answer.admin.settings.use_alt_ui'),\n help: app.translator.trans('fof-best-answer.admin.settings.use_alt_ui_help'),\n })}\n {this.buildSettingComponent({\n type: 'boolean',\n setting: 'fof-best-answer.show_filter_dropdown',\n label: app.translator.trans('fof-best-answer.admin.settings.show_filter_label'),\n help: app.translator.trans('fof-best-answer.admin.settings.show_filter_help'),\n })}\n {this.buildSettingComponent({\n type: 'number',\n setting: 'fof-best-answer.show_max_lines',\n label: app.translator.trans('fof-best-answer.admin.settings.show_max_lines_label'),\n help: app.translator.trans('fof-best-answer.admin.settings.show_max_lines_help'),\n })}\n {this.buildSettingComponent({\n type: 'flarum-tags.select-tags',\n setting: 'fof-best-answer.select_best_answer_tags',\n label: app.translator.trans('fof-best-answer.admin.settings.select_best_answer_tags_label'),\n help: app.translator.trans('fof-best-answer.admin.settings.select_best_answer_tags_help'),\n options: {\n requireParentTag: true,\n limits: {\n max: {\n primary: 0,\n },\n },\n },\n })}\n {this.buildSettingComponent({\n setting: 'fof-best-answer.discussion_sidebar_jump_button',\n type: 'boolean',\n label: app.translator.trans('fof-best-answer.admin.settings.discussion_sidebar_jump_button'),\n help: app.translator.trans('fof-best-answer.admin.settings.discussion_sidebar_jump_button_help'),\n })}\n
    \n

    {app.translator.trans('fof-best-answer.admin.settings.label.search')}

    \n
    \n {this.buildSettingComponent({\n type: 'boolean',\n setting: 'fof-best-answer.search.solution_search',\n label: app.translator.trans('fof-best-answer.admin.settings.solution_search'),\n help: app.translator.trans('fof-best-answer.admin.settings.solution_search_help'),\n })}\n {this.buildSettingComponent({\n type: 'boolean',\n setting: 'fof-best-answer.search.remove_solutions_from_main_search',\n label: app.translator.trans('fof-best-answer.admin.settings.remove_solutions_from_main_search'),\n help: app.translator.trans('fof-best-answer.admin.settings.remove_solutions_from_main_search_help'),\n })}\n {this.buildSettingComponent({\n type: 'boolean',\n setting: 'fof-best-answer.search.display_tags',\n label: app.translator.trans('fof-best-answer.admin.settings.display_tags'),\n help: app.translator.trans('fof-best-answer.admin.settings.display_tags_help'),\n })}\n
    \n

    {app.translator.trans('fof-best-answer.admin.settings.label.reminders')}

    \n

    \n {app.translator.trans('fof-best-answer.admin.settings.label.reminders_notice')}{' '}\n \n {app.translator.trans('fof-best-answer.admin.settings.documentation')}\n \n

    \n
    \n {this.buildSettingComponent({\n type: 'number',\n setting: 'fof-best-answer.select_best_answer_reminder_days',\n label: app.translator.trans('fof-best-answer.admin.settings.select_best_answer_reminder_days'),\n placeholder: '0',\n min: 0,\n help: app.translator.trans('fof-best-answer.admin.settings.select_best_answer_reminder_days_help'),\n })}\n
    \n

    {app.translator.trans('fof-best-answer.admin.settings.label.advanced')}

    \n
    \n {this.buildSettingComponent({\n type: 'boolean',\n setting: 'fof-best-answer.schedule_on_one_server',\n label: app.translator.trans('fof-best-answer.admin.settings.schedule_on_one_server'),\n help: app.translator.trans('fof-best-answer.admin.settings.schedule_on_one_server_help'),\n })}\n {this.buildSettingComponent({\n type: 'boolean',\n setting: 'fof-best-answer.stop_overnight',\n label: app.translator.trans('fof-best-answer.admin.settings.schedule_stop_overnight'),\n help: app.translator.trans('fof-best-answer.admin.settings.schedule_stop_overnight_help'),\n })}\n {this.buildSettingComponent({\n type: 'boolean',\n setting: 'fof-best-answer.store_log_output',\n label: app.translator.trans('fof-best-answer.admin.settings.schedule_log_output'),\n })}\n
    \n {this.submitButton()}\n
    \n
    \n
    \n );\n }\n}\n","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/extenders'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['tags/common/models/Tag'];","import Extend from 'flarum/common/extenders';\nimport Tag from 'flarum/tags/common/models/Tag';\n\nexport default [\n new Extend.Model(Tag) //\n .attribute('isQnA')\n .attribute('reminders'),\n];\n","import commonExtend from '../common/extend';\n\nexport default [...commonExtend];\n","import app from 'flarum/admin/app';\nimport addBestAnswerCountSort from '../common/addBestAnswerCountSort';\nimport BestAnswerSettingsPage from './components/BestAnswerSettingsPage';\n\nexport { default as extend } from './extend';\n\napp.initializers.add(\n 'fof-best-answer',\n () => {\n app.extensionData\n .for('fof-best-answer')\n .registerPage(BestAnswerSettingsPage)\n .registerPermission(\n {\n icon: 'far fa-comment',\n label: app.translator.trans('fof-best-answer.admin.permissions.best_answer'),\n permission: 'discussion.selectBestAnswerOwnDiscussion',\n },\n 'reply'\n )\n .registerPermission(\n {\n icon: 'far fa-comment',\n label: app.translator.trans('fof-best-answer.admin.permissions.best_answer_not_own_discussion'),\n permission: 'discussion.selectBestAnswerNotOwnDiscussion',\n },\n 'reply'\n ).registerPermission(\n {\n icon: 'far fa-comment',\n label: app.translator.trans('fof-best-answer.admin.permissions.allow_select_own_post'),\n permission: 'discussion.selectBestAnswerOwnPost',\n },\n 'reply'\n );\n\n addBestAnswerCountSort();\n },\n 5\n);\n","import { override } from 'flarum/common/extend';\n\nexport default () => {\n const FoFUserDirectory = require('@fof-user-directory');\n\n if (!FoFUserDirectory) return;\n\n override(FoFUserDirectory.SortMap.prototype, 'sortMap', (map) => ({\n ...map(),\n most_best_answers: '-bestAnswerCount',\n least_best_answers: 'bestAnswerCount',\n }));\n};\n"],"names":["module","exports","flarum","extensions","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","n","getter","__esModule","d","a","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","core","compat","_extends","assign","bind","e","arguments","length","t","apply","_setPrototypeOf","setPrototypeOf","__proto__","BestAnswerSettingsPage","_ExtensionPage","create","constructor","content","m","className","app","trans","this","buildSettingComponent","type","setting","label","help","options","requireParentTag","limits","max","primary","href","target","placeholder","min","submitButton","ExtensionPage","Extend","Tag","attribute","concat","commonExtend","add","FoFUserDirectory","registerPage","registerPermission","icon","permission","require","override","SortMap","map","most_best_answers","least_best_answers"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"admin.js","mappings":"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","sources":["webpack://@fof/best-answer/./src/admin/components/BestAnswerSettingsPage.tsx","webpack://@fof/best-answer/./src/admin/extend.ts","webpack://@fof/best-answer/./src/admin/index.ts","webpack://@fof/best-answer/./src/common/addBestAnswerCountSort.ts","webpack://@fof/best-answer/./src/common/extend.ts","webpack://@fof/best-answer/external assign \"flarum.extensions['fof-user-directory']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['admin/app']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['admin/components/ExtensionPage']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/extend']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/extenders']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['tags/common/models/Tag']\"","webpack://@fof/best-answer/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://@fof/best-answer/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://@fof/best-answer/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://@fof/best-answer/webpack/bootstrap","webpack://@fof/best-answer/webpack/runtime/compat get default export","webpack://@fof/best-answer/webpack/runtime/define property getters","webpack://@fof/best-answer/webpack/runtime/hasOwnProperty shorthand","webpack://@fof/best-answer/webpack/runtime/make namespace object","webpack://@fof/best-answer/./admin.ts"],"sourcesContent":["import app from 'flarum/admin/app';\nimport ExtensionPage from 'flarum/admin/components/ExtensionPage';\n\nexport default class BestAnswerSettingsPage extends ExtensionPage {\n content() {\n return (\n
    \n
    \n
    \n

    {app.translator.trans('fof-best-answer.admin.settings.label.tags')}

    \n

    {app.translator.trans('fof-best-answer.admin.settings.tags_info')}

    \n
    \n {this.buildSettingComponent({\n type: 'flarum-tags.select-tags',\n setting: 'fof-best-answer.enabled-tags',\n label: app.translator.trans('fof-best-answer.admin.settings.enabled_tags_label'),\n help: app.translator.trans('fof-best-answer.admin.settings.enabled_tags_help'),\n options: {\n requireParentTag: false,\n },\n })}\n {this.buildSettingComponent({\n type: 'flarum-tags.select-tags',\n setting: 'fof-best-answer.remind-tags',\n label: app.translator.trans('fof-best-answer.admin.settings.remind_tags_label'),\n help: app.translator.trans('fof-best-answer.admin.settings.remind_tags_help'),\n options: {\n requireParentTag: false,\n },\n })}\n
    \n

    {app.translator.trans('fof-best-answer.admin.settings.label.general')}

    \n
    \n {this.buildSettingComponent({\n type: 'boolean',\n setting: 'fof-best-answer.use_alternative_ui',\n label: app.translator.trans('fof-best-answer.admin.settings.use_alt_ui'),\n help: app.translator.trans('fof-best-answer.admin.settings.use_alt_ui_help'),\n })}\n {this.buildSettingComponent({\n type: 'boolean',\n setting: 'fof-best-answer.show_filter_dropdown',\n label: app.translator.trans('fof-best-answer.admin.settings.show_filter_label'),\n help: app.translator.trans('fof-best-answer.admin.settings.show_filter_help'),\n })}\n {this.buildSettingComponent({\n type: 'number',\n setting: 'fof-best-answer.show_max_lines',\n label: app.translator.trans('fof-best-answer.admin.settings.show_max_lines_label'),\n help: app.translator.trans('fof-best-answer.admin.settings.show_max_lines_help'),\n })}\n {this.buildSettingComponent({\n type: 'flarum-tags.select-tags',\n setting: 'fof-best-answer.select_best_answer_tags',\n label: app.translator.trans('fof-best-answer.admin.settings.select_best_answer_tags_label'),\n help: app.translator.trans('fof-best-answer.admin.settings.select_best_answer_tags_help'),\n options: {\n requireParentTag: true,\n limits: {\n max: {\n primary: 0,\n },\n },\n },\n })}\n {this.buildSettingComponent({\n setting: 'fof-best-answer.discussion_sidebar_jump_button',\n type: 'boolean',\n label: app.translator.trans('fof-best-answer.admin.settings.discussion_sidebar_jump_button'),\n help: app.translator.trans('fof-best-answer.admin.settings.discussion_sidebar_jump_button_help'),\n })}\n
    \n

    {app.translator.trans('fof-best-answer.admin.settings.label.search')}

    \n
    \n {this.buildSettingComponent({\n type: 'boolean',\n setting: 'fof-best-answer.search.solution_search',\n label: app.translator.trans('fof-best-answer.admin.settings.solution_search'),\n help: app.translator.trans('fof-best-answer.admin.settings.solution_search_help'),\n })}\n {this.buildSettingComponent({\n type: 'boolean',\n setting: 'fof-best-answer.search.remove_solutions_from_main_search',\n label: app.translator.trans('fof-best-answer.admin.settings.remove_solutions_from_main_search'),\n help: app.translator.trans('fof-best-answer.admin.settings.remove_solutions_from_main_search_help'),\n })}\n {this.buildSettingComponent({\n type: 'boolean',\n setting: 'fof-best-answer.search.display_tags',\n label: app.translator.trans('fof-best-answer.admin.settings.display_tags'),\n help: app.translator.trans('fof-best-answer.admin.settings.display_tags_help'),\n })}\n
    \n

    {app.translator.trans('fof-best-answer.admin.settings.label.reminders')}

    \n

    \n {app.translator.trans('fof-best-answer.admin.settings.label.reminders_notice')}{' '}\n \n {app.translator.trans('fof-best-answer.admin.settings.documentation')}\n \n

    \n
    \n {this.buildSettingComponent({\n type: 'number',\n setting: 'fof-best-answer.select_best_answer_reminder_days',\n label: app.translator.trans('fof-best-answer.admin.settings.select_best_answer_reminder_days'),\n placeholder: '0',\n min: 0,\n help: app.translator.trans('fof-best-answer.admin.settings.select_best_answer_reminder_days_help'),\n })}\n
    \n

    {app.translator.trans('fof-best-answer.admin.settings.label.advanced')}

    \n
    \n {this.buildSettingComponent({\n type: 'boolean',\n setting: 'fof-best-answer.schedule_on_one_server',\n label: app.translator.trans('fof-best-answer.admin.settings.schedule_on_one_server'),\n help: app.translator.trans('fof-best-answer.admin.settings.schedule_on_one_server_help'),\n })}\n {this.buildSettingComponent({\n type: 'boolean',\n setting: 'fof-best-answer.stop_overnight',\n label: app.translator.trans('fof-best-answer.admin.settings.schedule_stop_overnight'),\n help: app.translator.trans('fof-best-answer.admin.settings.schedule_stop_overnight_help'),\n })}\n {this.buildSettingComponent({\n type: 'boolean',\n setting: 'fof-best-answer.store_log_output',\n label: app.translator.trans('fof-best-answer.admin.settings.schedule_log_output'),\n })}\n
    \n {this.submitButton()}\n
    \n
    \n
    \n );\n }\n}\n","import commonExtend from '../common/extend';\n\nexport default [...commonExtend];\n","import app from 'flarum/admin/app';\nimport addBestAnswerCountSort from '../common/addBestAnswerCountSort';\nimport BestAnswerSettingsPage from './components/BestAnswerSettingsPage';\n\nexport { default as extend } from './extend';\n\napp.initializers.add(\n 'fof-best-answer',\n () => {\n app.extensionData\n .for('fof-best-answer')\n .registerPage(BestAnswerSettingsPage)\n .registerPermission(\n {\n icon: 'far fa-comment',\n label: app.translator.trans('fof-best-answer.admin.permissions.best_answer'),\n permission: 'discussion.selectBestAnswerOwnDiscussion',\n },\n 'reply'\n )\n .registerPermission(\n {\n icon: 'far fa-comment',\n label: app.translator.trans('fof-best-answer.admin.permissions.best_answer_not_own_discussion'),\n permission: 'discussion.selectBestAnswerNotOwnDiscussion',\n },\n 'reply'\n ).registerPermission(\n {\n icon: 'far fa-comment',\n label: app.translator.trans('fof-best-answer.admin.permissions.allow_select_own_post'),\n permission: 'discussion.selectBestAnswerOwnPost',\n },\n 'reply'\n );\n\n addBestAnswerCountSort();\n },\n 5\n);\n","import { override } from 'flarum/common/extend';\n\nexport default () => {\n const FoFUserDirectory = require('@fof-user-directory');\n\n if (!FoFUserDirectory) return;\n\n override(FoFUserDirectory.SortMap.prototype, 'sortMap', (map) => ({\n ...map(),\n most_best_answers: '-bestAnswerCount',\n least_best_answers: 'bestAnswerCount',\n }));\n};\n","import Extend from 'flarum/common/extenders';\nimport Tag from 'flarum/tags/common/models/Tag';\n\nexport default [\n new Extend.Model(Tag) //\n .attribute('isQnA')\n .attribute('reminders'),\n];\n","module.exports = flarum.extensions['fof-user-directory'];","module.exports = flarum.core.compat['admin/app'];","module.exports = flarum.core.compat['admin/components/ExtensionPage'];","module.exports = flarum.core.compat['common/extend'];","module.exports = flarum.core.compat['common/extenders'];","module.exports = flarum.core.compat['tags/common/models/Tag'];","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","// 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](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};","export * from './src/admin';\n"],"names":["app","ExtensionPage","BestAnswerSettingsPage","_ExtensionPage","apply","arguments","_inheritsLoose","_proto","prototype","content","m","className","translator","trans","buildSettingComponent","type","setting","label","help","options","requireParentTag","limits","max","primary","href","target","placeholder","min","submitButton","default","commonExtend","concat","addBestAnswerCountSort","extend","initializers","add","extensionData","registerPage","registerPermission","icon","permission","override","FoFUserDirectory","require","SortMap","map","_extends","most_best_answers","least_best_answers","Extend","Tag","Model","attribute","Object","assign","bind","n","e","length","t","r","hasOwnProperty","call","setPrototypeOf","o","create","constructor","_setPrototypeOf","__proto__"],"sourceRoot":""} \ No newline at end of file diff --git a/js/dist/forum.js b/js/dist/forum.js index 86eccb1..d5e4c5e 100644 --- a/js/dist/forum.js +++ b/js/dist/forum.js @@ -1,3 +1,2353 @@ -/*! For license information please see forum.js.LICENSE.txt */ -(()=>{var t={493:t=>{"use strict";t.exports=flarum.extensions["fof-user-directory"]},24:(t,e,r)=>{var n=r(735).default;function s(){"use strict";t.exports=s=function(){return r},t.exports.__esModule=!0,t.exports.default=t.exports;var e,r={},o=Object.prototype,i=o.hasOwnProperty,a=Object.defineProperty||function(t,e,r){t[e]=r.value},u="function"==typeof Symbol?Symbol:{},c=u.iterator||"@@iterator",l=u.asyncIterator||"@@asyncIterator",f=u.toStringTag||"@@toStringTag";function m(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{m({},"")}catch(e){m=function(t,e,r){return t[e]=r}}function h(t,e,r,n){var s=e&&e.prototype instanceof g?e:g,o=Object.create(s.prototype),i=new T(n||[]);return a(o,"_invoke",{value:j(t,r,i)}),o}function d(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}r.wrap=h;var p="suspendedStart",v="suspendedYield",w="executing",b="completed",y={};function g(){}function A(){}function x(){}var _={};m(_,c,(function(){return this}));var P=Object.getPrototypeOf,S=P&&P(P(C([])));S&&S!==o&&i.call(S,c)&&(_=S);var B=x.prototype=g.prototype=Object.create(_);function N(t){["next","throw","return"].forEach((function(e){m(t,e,(function(t){return this._invoke(e,t)}))}))}function L(t,e){function r(s,o,a,u){var c=d(t[s],t,o);if("throw"!==c.type){var l=c.arg,f=l.value;return f&&"object"==n(f)&&i.call(f,"__await")?e.resolve(f.__await).then((function(t){r("next",t,a,u)}),(function(t){r("throw",t,a,u)})):e.resolve(f).then((function(t){l.value=t,a(l)}),(function(t){return r("throw",t,a,u)}))}u(c.arg)}var s;a(this,"_invoke",{value:function(t,n){function o(){return new e((function(e,s){r(t,n,e,s)}))}return s=s?s.then(o,o):o()}})}function j(t,r,n){var s=p;return function(o,i){if(s===w)throw Error("Generator is already running");if(s===b){if("throw"===o)throw i;return{value:e,done:!0}}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var u=k(a,n);if(u){if(u===y)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(s===p)throw s=b,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);s=w;var c=d(t,r,n);if("normal"===c.type){if(s=n.done?b:v,c.arg===y)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(s=b,n.method="throw",n.arg=c.arg)}}}function k(t,r){var n=r.method,s=t.iterator[n];if(s===e)return r.delegate=null,"throw"===n&&t.iterator.return&&(r.method="return",r.arg=e,k(t,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),y;var o=d(s,t.iterator,r.arg);if("throw"===o.type)return r.method="throw",r.arg=o.arg,r.delegate=null,y;var i=o.arg;return i?i.done?(r[t.resultName]=i.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,y):i:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,y)}function O(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function I(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function T(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(O,this),this.reset(!0)}function C(t){if(t||""===t){var r=t[c];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var s=-1,o=function r(){for(;++s=0;--s){var o=this.tryEntries[s],a=o.completion;if("root"===o.tryLoc)return n("end");if(o.tryLoc<=this.prev){var u=i.call(o,"catchLoc"),c=i.call(o,"finallyLoc");if(u&&c){if(this.prev=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&i.call(n,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),I(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var s=n.arg;I(r)}return s}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:C(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),y}},r}t.exports=s,t.exports.__esModule=!0,t.exports.default=t.exports},735:t=>{function e(r){return t.exports=e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t.exports.__esModule=!0,t.exports.default=t.exports,e(r)}t.exports=e,t.exports.__esModule=!0,t.exports.default=t.exports},183:(t,e,r)=>{var n=r(24)();t.exports=n;try{regeneratorRuntime=n}catch(t){"object"==typeof globalThis?globalThis.regeneratorRuntime=n:Function("r","regeneratorRuntime = r")(n)}}},e={};function r(n){var s=e[n];if(void 0!==s)return s.exports;var o=e[n]={exports:{}};return t[n](o,o.exports,r),o.exports}r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};(()=>{"use strict";r.r(n),r.d(n,{components:()=>xt,extend:()=>Ct});const t=flarum.core.compat["forum/app"];var e=r.n(t);function s(t,e){return s=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},s(t,e)}function o(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,s(t,e)}const i=flarum.core.compat["forum/components/Notification"];var a=r.n(i),u=function(t){function r(){return t.apply(this,arguments)||this}o(r,t);var n=r.prototype;return n.icon=function(){return"fas fa-comment-dots"},n.href=function(){var t=this.attrs.notification.subject();return e().route.discussion(t)},n.content=function(){return e().translator.trans("fof-best-answer.forum.notification.content")},n.excerpt=function(){return null},r}(a());const c=flarum.core.compat["common/extend"],l=flarum.core.compat["common/components/Button"];var f=r.n(l);const h=flarum.core.compat["forum/utils/PostControls"];var d=r.n(h);const p=flarum.core.compat["forum/components/DiscussionPage"];var v=r.n(p);const w=flarum.core.compat["forum/components/CommentPost"];var b=r.n(w);const y=flarum.core.compat["common/utils/extractText"];var g=r.n(y);const A=flarum.core.compat["forum/components/Post"];var x=r.n(A);const _=flarum.core.compat["common/Component"];var P=r.n(_);const S=flarum.core.compat["common/helpers/icon"];var B=r.n(S);const N=flarum.core.compat["common/helpers/humanTime"];var L=r.n(N);const j=flarum.core.compat["common/components/Link"];var k=r.n(j);const O=flarum.core.compat["common/utils/ItemList"];var I=r.n(O),T=function(t){function r(){for(var e,r=arguments.length,n=new Array(r),s=0;s0&&"Post-body--truncate"),style:{"--max-lines":r}},m.trust(this.postContent())))},n.postContent=function(){return this.post.contentHtml()},n.headerItems=function(){var t=new(I());return t.add("user",this.userItem()),t.add("meta",this.metaItem()),t.add("bestAnswer",m(T,{post:this.post,discussion:this.discussion}),-100),t},n.userItem=function(){return m("li",{className:"item-user"},m("div",{className:"PostUser"},this.user&&q()(this.user),m("h3",null,this.user?m(k(),{href:e().route.user(this.user)},D()(this.user)):D()(this.user))))},n.metaItem=function(){var t=this.post;return m("li",{className:"item-meta"},m("span",{className:"PostMeta-time"},L()(t.createdAt())))},r}(P());const F=flarum.core.compat["common/models/Discussion"];var G=r.n(F);const Q=flarum.core.compat["common/components/Badge"];var H=function(t){function r(){return t.apply(this,arguments)||this}return o(r,t),r.initAttrs=function(t){t.type="bestAnswer",t.icon="fas fa-check",t.label=g()(e().translator.trans("fof-best-answer.forum.answered_badge"))},r}(r.n(Q)()),Y=function(t){function r(){return t.apply(this,arguments)||this}o(r,t);var n=r.prototype;return n.icon=function(){return"fas fa-check"},n.href=function(){var t=this.attrs.notification.subject();return e().route.discussion(t)},n.content=function(){var t=this.attrs.notification.fromUser();return e().translator.trans("fof-best-answer.forum.notification.awarded",{user:t})},n.excerpt=function(){return null},r}(a()),z=function(t){function r(){return t.apply(this,arguments)||this}o(r,t);var n=r.prototype;return n.icon=function(){return"fas fa-check"},n.href=function(){var t=this.attrs.notification.subject();return e().route.discussion(t)},n.content=function(){var t=this.attrs.notification.fromUser();return e().translator.trans("fof-best-answer.forum.notification.best_answer_in_discussion",{user:t})},n.excerpt=function(){return null},r}(a());const J=flarum.core.compat["forum/components/NotificationGrid"];var K=r.n(J);const V=flarum.core.compat["forum/components/UserCard"];var W=r.n(V);function X(){return X=Object.assign?Object.assign.bind():function(t){for(var e=1;e { // webpackBootstrap +/******/ var __webpack_modules__ = ({ + +/***/ "./src/common/addBestAnswerCountSort.ts": +/*!**********************************************!*\ + !*** ./src/common/addBestAnswerCountSort.ts ***! + \**********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ "./node_modules/@babel/runtime/helpers/esm/extends.js"); +/* harmony import */ var flarum_common_extend__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! flarum/common/extend */ "flarum/common/extend"); +/* harmony import */ var flarum_common_extend__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(flarum_common_extend__WEBPACK_IMPORTED_MODULE_1__); + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (function () { + var FoFUserDirectory = __webpack_require__(/*! @fof-user-directory */ "@fof-user-directory"); + if (!FoFUserDirectory) return; + (0,flarum_common_extend__WEBPACK_IMPORTED_MODULE_1__.override)(FoFUserDirectory.SortMap.prototype, 'sortMap', function (map) { + return (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, map(), { + most_best_answers: '-bestAnswerCount', + least_best_answers: 'bestAnswerCount' + }); + }); +}); + +/***/ }), + +/***/ "./src/common/extend.ts": +/*!******************************!*\ + !*** ./src/common/extend.ts ***! + \******************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var flarum_common_extenders__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! flarum/common/extenders */ "flarum/common/extenders"); +/* harmony import */ var flarum_common_extenders__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(flarum_common_extenders__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var flarum_tags_common_models_Tag__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! flarum/tags/common/models/Tag */ "flarum/tags/common/models/Tag"); +/* harmony import */ var flarum_tags_common_models_Tag__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(flarum_tags_common_models_Tag__WEBPACK_IMPORTED_MODULE_1__); + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ([new (flarum_common_extenders__WEBPACK_IMPORTED_MODULE_0___default().Model)((flarum_tags_common_models_Tag__WEBPACK_IMPORTED_MODULE_1___default())) // +.attribute('isQnA').attribute('reminders')]); + +/***/ }), + +/***/ "./src/forum/addAnsweredBadge.tsx": +/*!****************************************!*\ + !*** ./src/forum/addAnsweredBadge.tsx ***! + \****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var flarum_common_extend__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! flarum/common/extend */ "flarum/common/extend"); +/* harmony import */ var flarum_common_extend__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(flarum_common_extend__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var flarum_common_models_Discussion__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! flarum/common/models/Discussion */ "flarum/common/models/Discussion"); +/* harmony import */ var flarum_common_models_Discussion__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(flarum_common_models_Discussion__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _components_BestAnswerBadge__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./components/BestAnswerBadge */ "./src/forum/components/BestAnswerBadge.tsx"); + + + +/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() { + (0,flarum_common_extend__WEBPACK_IMPORTED_MODULE_0__.extend)((flarum_common_models_Discussion__WEBPACK_IMPORTED_MODULE_1___default().prototype), 'badges', function (items) { + if (this.hasBestAnswer() && !items.has('hidden')) { + items.add('bestAnswer', m(_components_BestAnswerBadge__WEBPACK_IMPORTED_MODULE_2__["default"], null)); + } + }); +} + +/***/ }), + +/***/ "./src/forum/addBestAnswerAction.tsx": +/*!*******************************************!*\ + !*** ./src/forum/addBestAnswerAction.tsx ***! + \*******************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ addBestAnswerAction) +/* harmony export */ }); +/* harmony import */ var flarum_forum_app__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! flarum/forum/app */ "flarum/forum/app"); +/* harmony import */ var flarum_forum_app__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(flarum_forum_app__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var flarum_common_extend__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! flarum/common/extend */ "flarum/common/extend"); +/* harmony import */ var flarum_common_extend__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(flarum_common_extend__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var flarum_common_components_Button__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! flarum/common/components/Button */ "flarum/common/components/Button"); +/* harmony import */ var flarum_common_components_Button__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(flarum_common_components_Button__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var flarum_forum_utils_PostControls__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! flarum/forum/utils/PostControls */ "flarum/forum/utils/PostControls"); +/* harmony import */ var flarum_forum_utils_PostControls__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(flarum_forum_utils_PostControls__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var flarum_forum_components_DiscussionPage__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! flarum/forum/components/DiscussionPage */ "flarum/forum/components/DiscussionPage"); +/* harmony import */ var flarum_forum_components_DiscussionPage__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(flarum_forum_components_DiscussionPage__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var flarum_forum_components_CommentPost__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! flarum/forum/components/CommentPost */ "flarum/forum/components/CommentPost"); +/* harmony import */ var flarum_forum_components_CommentPost__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(flarum_forum_components_CommentPost__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var flarum_common_utils_extractText__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! flarum/common/utils/extractText */ "flarum/common/utils/extractText"); +/* harmony import */ var flarum_common_utils_extractText__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(flarum_common_utils_extractText__WEBPACK_IMPORTED_MODULE_6__); + + + + + + + +function addBestAnswerAction() { + var ineligible = function ineligible(discussion, post) { + return post.isHidden() || post.number() === 1 || !post.canSelectBestAnswer() || !(flarum_forum_app__WEBPACK_IMPORTED_MODULE_0___default().session).user; + }; + var isThisBestAnswer = function isThisBestAnswer(discussion, post) { + var bestAnswerPost = discussion.bestAnswerPost(); + var hasBestAnswer = discussion.hasBestAnswer(); + return hasBestAnswer !== undefined && hasBestAnswer && bestAnswerPost !== null && bestAnswerPost.id() === post.id(); + }; + var actionLabel = function actionLabel(isBestAnswer) { + return flarum_common_utils_extractText__WEBPACK_IMPORTED_MODULE_6___default()(flarum_forum_app__WEBPACK_IMPORTED_MODULE_0___default().translator.trans(isBestAnswer ? 'fof-best-answer.forum.remove_best_answer' : 'fof-best-answer.forum.this_best_answer')); + }; + var saveDiscussion = function saveDiscussion(discussion, isBestAnswer, post) { + var _app$session$user; + return discussion.save({ + bestAnswerPostId: isBestAnswer ? post.id() : 0, + bestAnswerUserId: (_app$session$user = (flarum_forum_app__WEBPACK_IMPORTED_MODULE_0___default().session).user) == null ? void 0 : _app$session$user.id(), + relationships: isBestAnswer ? { + bestAnswerPost: post, + bestAnswerUser: (flarum_forum_app__WEBPACK_IMPORTED_MODULE_0___default().session).user + } : { + bestAnswerPost: null + } + }, { + params: { + include: 'tags' + } + }).then(function () { + if (!isBestAnswer) { + if (discussion.data.relationships) { + delete discussion.data.relationships.bestAnswerPost; + delete discussion.data.relationships.bestAnswerUser; + } + } + if (flarum_forum_app__WEBPACK_IMPORTED_MODULE_0___default().current.matches((flarum_forum_components_DiscussionPage__WEBPACK_IMPORTED_MODULE_4___default()))) { + flarum_forum_app__WEBPACK_IMPORTED_MODULE_0___default().current.get('stream').update(); + } + m.redraw(); + if (isBestAnswer) { + m.route.set(flarum_forum_app__WEBPACK_IMPORTED_MODULE_0___default().route.discussion(discussion)); + } + }); + }; + (0,flarum_common_extend__WEBPACK_IMPORTED_MODULE_1__.extend)((flarum_forum_utils_PostControls__WEBPACK_IMPORTED_MODULE_3___default()), 'moderationControls', function (items, post) { + if (flarum_forum_app__WEBPACK_IMPORTED_MODULE_0___default().forum.attribute('useAlternativeBestAnswerUi')) return; + var discussion = post.discussion(); + var isBestAnswer = isThisBestAnswer(discussion, post); + post.pushAttributes({ + isBestAnswer: isBestAnswer + }); + if (post.contentType() !== 'comment') return; + if (ineligible(discussion, post) || !flarum_forum_app__WEBPACK_IMPORTED_MODULE_0___default().current.matches((flarum_forum_components_DiscussionPage__WEBPACK_IMPORTED_MODULE_4___default()))) return; + items.add('bestAnswer', m((flarum_common_components_Button__WEBPACK_IMPORTED_MODULE_2___default()), { + icon: "fa" + (isBestAnswer ? 's' : 'r') + " fa-comment-dots", + onclick: function onclick() { + isBestAnswer = !isBestAnswer; + saveDiscussion(discussion, isBestAnswer, post)["finally"](function () { + isBestAnswer = isThisBestAnswer(discussion, post); + }); + } + }, actionLabel(isBestAnswer))); + }); + (0,flarum_common_extend__WEBPACK_IMPORTED_MODULE_1__.extend)((flarum_forum_components_CommentPost__WEBPACK_IMPORTED_MODULE_5___default().prototype), 'actionItems', function (items) { + if (!flarum_forum_app__WEBPACK_IMPORTED_MODULE_0___default().forum.attribute('useAlternativeBestAnswerUi')) return; + var post = this.attrs.post; + var discussion = this.attrs.post.discussion(); + var isBestAnswer = isThisBestAnswer(discussion, post); + var hasBestAnswer = discussion.bestAnswerPost() !== null; + post.pushAttributes({ + isBestAnswer: isBestAnswer + }); + if (ineligible(discussion, post) || !flarum_forum_app__WEBPACK_IMPORTED_MODULE_0___default().current.matches((flarum_forum_components_DiscussionPage__WEBPACK_IMPORTED_MODULE_4___default()))) return; + items.add('bestAnswer', m((flarum_common_components_Button__WEBPACK_IMPORTED_MODULE_2___default()), { + className: "Button Button--" + (!hasBestAnswer || isBestAnswer ? 'primary' : 'link'), + onclick: function onclick() { + hasBestAnswer = !hasBestAnswer; + isBestAnswer = !isBestAnswer; + saveDiscussion(discussion, isBestAnswer, post)["finally"](function () { + hasBestAnswer = !!discussion.hasBestAnswer() && discussion.bestAnswerPost() !== null; + isBestAnswer = isThisBestAnswer(discussion, post); + }); + } + }, actionLabel(isBestAnswer))); + }); +} + +/***/ }), + +/***/ "./src/forum/addBestAnswerCountToUsers.tsx": +/*!*************************************************!*\ + !*** ./src/forum/addBestAnswerCountToUsers.tsx ***! + \*************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ addBestAnswerCountToUsers) +/* harmony export */ }); +/* harmony import */ var flarum_forum_app__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! flarum/forum/app */ "flarum/forum/app"); +/* harmony import */ var flarum_forum_app__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(flarum_forum_app__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var flarum_common_extend__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! flarum/common/extend */ "flarum/common/extend"); +/* harmony import */ var flarum_common_extend__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(flarum_common_extend__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var flarum_forum_components_UserCard__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! flarum/forum/components/UserCard */ "flarum/forum/components/UserCard"); +/* harmony import */ var flarum_forum_components_UserCard__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(flarum_forum_components_UserCard__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var flarum_common_helpers_icon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! flarum/common/helpers/icon */ "flarum/common/helpers/icon"); +/* harmony import */ var flarum_common_helpers_icon__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(flarum_common_helpers_icon__WEBPACK_IMPORTED_MODULE_3__); + + + + +function addBestAnswerCountToUsers() { + (0,flarum_common_extend__WEBPACK_IMPORTED_MODULE_1__.extend)((flarum_forum_components_UserCard__WEBPACK_IMPORTED_MODULE_2___default().prototype), 'infoItems', function (items) { + // @ts-expect-error + var user = this.attrs.user; + items.add('best-answer-count', m("span", { + className: "UserCard-bestAnswerCount" + }, flarum_common_helpers_icon__WEBPACK_IMPORTED_MODULE_3___default()('fas fa-check'), flarum_forum_app__WEBPACK_IMPORTED_MODULE_0___default().translator.trans('fof-best-answer.forum.user.best-answer-count', { + count: user.bestAnswerCount() + })), 55); + }); +} + +/***/ }), + +/***/ "./src/forum/addBestAnswerView.tsx": +/*!*****************************************!*\ + !*** ./src/forum/addBestAnswerView.tsx ***! + \*****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var flarum_forum_app__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! flarum/forum/app */ "flarum/forum/app"); +/* harmony import */ var flarum_forum_app__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(flarum_forum_app__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var flarum_common_extend__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! flarum/common/extend */ "flarum/common/extend"); +/* harmony import */ var flarum_common_extend__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(flarum_common_extend__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var flarum_forum_components_CommentPost__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! flarum/forum/components/CommentPost */ "flarum/forum/components/CommentPost"); +/* harmony import */ var flarum_forum_components_CommentPost__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(flarum_forum_components_CommentPost__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var flarum_forum_components_Post__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! flarum/forum/components/Post */ "flarum/forum/components/Post"); +/* harmony import */ var flarum_forum_components_Post__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(flarum_forum_components_Post__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _components_SelectBestAnswerItem__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./components/SelectBestAnswerItem */ "./src/forum/components/SelectBestAnswerItem.tsx"); +/* harmony import */ var flarum_forum_components_DiscussionPage__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! flarum/forum/components/DiscussionPage */ "flarum/forum/components/DiscussionPage"); +/* harmony import */ var flarum_forum_components_DiscussionPage__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(flarum_forum_components_DiscussionPage__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var flarum_common_components_Button__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! flarum/common/components/Button */ "flarum/common/components/Button"); +/* harmony import */ var flarum_common_components_Button__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(flarum_common_components_Button__WEBPACK_IMPORTED_MODULE_6__); +/* harmony import */ var _components_BestAnswerFooterPreview__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./components/BestAnswerFooterPreview */ "./src/forum/components/BestAnswerFooterPreview.tsx"); + + + + + + + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (function () { + (0,flarum_common_extend__WEBPACK_IMPORTED_MODULE_1__.extend)((flarum_forum_components_CommentPost__WEBPACK_IMPORTED_MODULE_2___default().prototype), 'headerItems', function (items) { + var _discussion$bestAnswe; + var post = this.attrs.post; + var discussion = post.discussion(); + if (discussion != null && discussion.hasBestAnswer() && discussion.bestAnswerPost() && ((_discussion$bestAnswe = discussion.bestAnswerPost()) == null ? void 0 : _discussion$bestAnswe.id()) === post.id() && !post.isHidden()) { + items.add('isBestAnswer', m(_components_SelectBestAnswerItem__WEBPACK_IMPORTED_MODULE_4__["default"], { + post: post, + discussion: discussion + }), -100); + } + }); + (0,flarum_common_extend__WEBPACK_IMPORTED_MODULE_1__.extend)((flarum_forum_components_CommentPost__WEBPACK_IMPORTED_MODULE_2___default().prototype), 'footerItems', function (items) { + var thisPost = this.attrs.post; + var discussion = thisPost.discussion(); + var post = discussion.hasBestAnswer() && discussion.bestAnswerPost(); + if (post && !post.isHidden() && thisPost.number() === 1 && !thisPost.isHidden()) { + var user = post.user(); + items.add('bestAnswerPost', m(_components_BestAnswerFooterPreview__WEBPACK_IMPORTED_MODULE_7__["default"], { + post: post, + user: user, + discussion: discussion + }), -10); + } + }); + (0,flarum_common_extend__WEBPACK_IMPORTED_MODULE_1__.extend)((flarum_forum_components_Post__WEBPACK_IMPORTED_MODULE_3___default().prototype), 'elementAttrs', function (elementAttrs) { + var post = this.attrs.post; + var discussion = post.discussion(); + if (discussion != null && discussion.hasBestAnswer() && discussion.bestAnswerPost() && discussion.bestAnswerPost().id() === post.id() && !post.isHidden()) { + elementAttrs.className ? elementAttrs.className += ' Post--bestAnswer' : elementAttrs.className = 'Post--bestAnswer'; + } + }); + (0,flarum_common_extend__WEBPACK_IMPORTED_MODULE_1__.extend)((flarum_forum_components_DiscussionPage__WEBPACK_IMPORTED_MODULE_5___default().prototype), 'sidebarItems', function (items) { + var _discussion$bestAnswe2; + if (!flarum_forum_app__WEBPACK_IMPORTED_MODULE_0___default().forum.attribute('bestAnswerDiscussionSidebarJumpButton')) return; + + // @ts-ignore + var discussion = this.discussion; + if (discussion === null) return; + var post = discussion.hasBestAnswer() && discussion.bestAnswerPost(); + if (post && !post.isHidden() && post.number() !== 1 && !((_discussion$bestAnswe2 = discussion.bestAnswerPost()) != null && _discussion$bestAnswe2.isHidden())) { + items.add('jumpToBestAnswer', m((flarum_common_components_Button__WEBPACK_IMPORTED_MODULE_6___default()), { + className: "Button Button-jumpBestAnswer", + icon: "fas fa-check", + onclick: function onclick() { + return flarum_forum_app__WEBPACK_IMPORTED_MODULE_0___default().current.get('stream').goToNumber(post.number()); + }, + "aria-label": flarum_forum_app__WEBPACK_IMPORTED_MODULE_0___default().translator.trans('fof-best-answer.forum.discussion.jump_to_best_answer_button') + }, flarum_forum_app__WEBPACK_IMPORTED_MODULE_0___default().translator.trans('fof-best-answer.forum.discussion.jump_to_best_answer_button')), 90); + } + }); +}); + +/***/ }), + +/***/ "./src/forum/components/AwardedBestAnswerNotification.ts": +/*!***************************************************************!*\ + !*** ./src/forum/components/AwardedBestAnswerNotification.ts ***! + \***************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ AwardedBestAnswerNotification) +/* harmony export */ }); +/* harmony import */ var _babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/inheritsLoose */ "./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js"); +/* harmony import */ var flarum_forum_app__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! flarum/forum/app */ "flarum/forum/app"); +/* harmony import */ var flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(flarum_forum_app__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var flarum_forum_components_Notification__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! flarum/forum/components/Notification */ "flarum/forum/components/Notification"); +/* harmony import */ var flarum_forum_components_Notification__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(flarum_forum_components_Notification__WEBPACK_IMPORTED_MODULE_2__); + + + +var AwardedBestAnswerNotification = /*#__PURE__*/function (_Notification) { + function AwardedBestAnswerNotification() { + return _Notification.apply(this, arguments) || this; + } + (0,_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__["default"])(AwardedBestAnswerNotification, _Notification); + var _proto = AwardedBestAnswerNotification.prototype; + _proto.icon = function icon() { + return 'fas fa-check'; + }; + _proto.href = function href() { + var notification = this.attrs.notification; + var discussion = notification.subject(); + return flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default().route.discussion(discussion); + }; + _proto.content = function content() { + var user = this.attrs.notification.fromUser(); + return flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default().translator.trans('fof-best-answer.forum.notification.awarded', { + user: user + }); + }; + _proto.excerpt = function excerpt() { + return null; + }; + return AwardedBestAnswerNotification; +}((flarum_forum_components_Notification__WEBPACK_IMPORTED_MODULE_2___default())); + + +/***/ }), + +/***/ "./src/forum/components/BestAnswerBadge.tsx": +/*!**************************************************!*\ + !*** ./src/forum/components/BestAnswerBadge.tsx ***! + \**************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ BestAnswerBadge) +/* harmony export */ }); +/* harmony import */ var _babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/inheritsLoose */ "./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js"); +/* harmony import */ var flarum_common_components_Badge__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! flarum/common/components/Badge */ "flarum/common/components/Badge"); +/* harmony import */ var flarum_common_components_Badge__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(flarum_common_components_Badge__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var flarum_forum_app__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! flarum/forum/app */ "flarum/forum/app"); +/* harmony import */ var flarum_forum_app__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(flarum_forum_app__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var flarum_common_utils_extractText__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! flarum/common/utils/extractText */ "flarum/common/utils/extractText"); +/* harmony import */ var flarum_common_utils_extractText__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(flarum_common_utils_extractText__WEBPACK_IMPORTED_MODULE_3__); + + + + +var BestAnswerBadge = /*#__PURE__*/function (_Badge) { + function BestAnswerBadge() { + return _Badge.apply(this, arguments) || this; + } + (0,_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__["default"])(BestAnswerBadge, _Badge); + BestAnswerBadge.initAttrs = function initAttrs(attrs) { + attrs.type = 'bestAnswer'; + attrs.icon = 'fas fa-check'; + attrs.label = flarum_common_utils_extractText__WEBPACK_IMPORTED_MODULE_3___default()(flarum_forum_app__WEBPACK_IMPORTED_MODULE_2___default().translator.trans('fof-best-answer.forum.answered_badge')); + }; + return BestAnswerBadge; +}((flarum_common_components_Badge__WEBPACK_IMPORTED_MODULE_1___default())); + + +/***/ }), + +/***/ "./src/forum/components/BestAnswerFooterPreview.tsx": +/*!**********************************************************!*\ + !*** ./src/forum/components/BestAnswerFooterPreview.tsx ***! + \**********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ BestAnswerFooterPreview) +/* harmony export */ }); +/* harmony import */ var _babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/inheritsLoose */ "./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js"); +/* harmony import */ var flarum_forum_app__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! flarum/forum/app */ "flarum/forum/app"); +/* harmony import */ var flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(flarum_forum_app__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var flarum_common_Component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! flarum/common/Component */ "flarum/common/Component"); +/* harmony import */ var flarum_common_Component__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(flarum_common_Component__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var flarum_common_helpers_username__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! flarum/common/helpers/username */ "flarum/common/helpers/username"); +/* harmony import */ var flarum_common_helpers_username__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(flarum_common_helpers_username__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var flarum_common_helpers_userOnline__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! flarum/common/helpers/userOnline */ "flarum/common/helpers/userOnline"); +/* harmony import */ var flarum_common_helpers_userOnline__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(flarum_common_helpers_userOnline__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var flarum_common_components_Link__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! flarum/common/components/Link */ "flarum/common/components/Link"); +/* harmony import */ var flarum_common_components_Link__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(flarum_common_components_Link__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var flarum_common_utils_classList__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! flarum/common/utils/classList */ "flarum/common/utils/classList"); +/* harmony import */ var flarum_common_utils_classList__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(flarum_common_utils_classList__WEBPACK_IMPORTED_MODULE_6__); +/* harmony import */ var _SelectBestAnswerItem__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./SelectBestAnswerItem */ "./src/forum/components/SelectBestAnswerItem.tsx"); +/* harmony import */ var flarum_common_utils_ItemList__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! flarum/common/utils/ItemList */ "flarum/common/utils/ItemList"); +/* harmony import */ var flarum_common_utils_ItemList__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(flarum_common_utils_ItemList__WEBPACK_IMPORTED_MODULE_8__); +/* harmony import */ var flarum_common_helpers_humanTime__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! flarum/common/helpers/humanTime */ "flarum/common/helpers/humanTime"); +/* harmony import */ var flarum_common_helpers_humanTime__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(flarum_common_helpers_humanTime__WEBPACK_IMPORTED_MODULE_9__); + + + + + + + + + + +var BestAnswerFooterPreview = /*#__PURE__*/function (_Component) { + function BestAnswerFooterPreview() { + var _this; + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _Component.call.apply(_Component, [this].concat(args)) || this; + _this.user = void 0; + _this.post = void 0; + _this.discussion = void 0; + return _this; + } + (0,_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__["default"])(BestAnswerFooterPreview, _Component); + var _proto = BestAnswerFooterPreview.prototype; + _proto.oninit = function oninit(vnode) { + _Component.prototype.oninit.call(this, vnode); + this.user = this.attrs.user; + this.post = this.attrs.post; + this.discussion = this.attrs.discussion; + }; + _proto.view = function view() { + var _this2 = this; + var maxLines = flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default().forum.attribute('fof-best-answer.show_max_lines'); + return m("div", { + className: "CommentPost", + onclick: function onclick() { + return flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default().current.get('stream').goToNumber(_this2.post.number()); + } + }, m("div", { + className: "Post-header" + }, m("ul", null, this.headerItems().toArray())), m("div", { + className: flarum_common_utils_classList__WEBPACK_IMPORTED_MODULE_6___default()('Post-body', maxLines > 0 && 'Post-body--truncate'), + style: { + '--max-lines': maxLines + } + }, m.trust(this.postContent()))); + }; + _proto.postContent = function postContent() { + return this.post.contentHtml(); + } + + /** + * To maintain compatibility with existing styling, custom themes, etc, each item here must be + * wrapped in a
  • element. + * + * @todo: Remove this requirement for Flarum 2.0 + */; + _proto.headerItems = function headerItems() { + var items = new (flarum_common_utils_ItemList__WEBPACK_IMPORTED_MODULE_8___default())(); + items.add('user', this.userItem()), 100; + items.add('meta', this.metaItem()), 90; + items.add('bestAnswer', m(_SelectBestAnswerItem__WEBPACK_IMPORTED_MODULE_7__["default"], { + post: this.post, + discussion: this.discussion + }), -100); + return items; + }; + _proto.userItem = function userItem() { + return m("li", { + className: "item-user" + }, m("div", { + className: "PostUser" + }, this.user && flarum_common_helpers_userOnline__WEBPACK_IMPORTED_MODULE_4___default()(this.user), m("h3", null, this.user ? m((flarum_common_components_Link__WEBPACK_IMPORTED_MODULE_5___default()), { + href: flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default().route.user(this.user) + }, flarum_common_helpers_username__WEBPACK_IMPORTED_MODULE_3___default()(this.user)) : flarum_common_helpers_username__WEBPACK_IMPORTED_MODULE_3___default()(this.user)))); + }; + _proto.metaItem = function metaItem() { + var post = this.post; + return m("li", { + className: "item-meta" + }, m("span", { + className: "PostMeta-time" + }, flarum_common_helpers_humanTime__WEBPACK_IMPORTED_MODULE_9___default()(post.createdAt()))); + }; + return BestAnswerFooterPreview; +}((flarum_common_Component__WEBPACK_IMPORTED_MODULE_2___default())); + + +/***/ }), + +/***/ "./src/forum/components/BestAnswerInDiscussionNotification.ts": +/*!********************************************************************!*\ + !*** ./src/forum/components/BestAnswerInDiscussionNotification.ts ***! + \********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ BestAnswerInDiscussionNotification) +/* harmony export */ }); +/* harmony import */ var _babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/inheritsLoose */ "./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js"); +/* harmony import */ var flarum_forum_app__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! flarum/forum/app */ "flarum/forum/app"); +/* harmony import */ var flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(flarum_forum_app__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var flarum_forum_components_Notification__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! flarum/forum/components/Notification */ "flarum/forum/components/Notification"); +/* harmony import */ var flarum_forum_components_Notification__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(flarum_forum_components_Notification__WEBPACK_IMPORTED_MODULE_2__); + + + +var BestAnswerInDiscussionNotification = /*#__PURE__*/function (_Notification) { + function BestAnswerInDiscussionNotification() { + return _Notification.apply(this, arguments) || this; + } + (0,_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__["default"])(BestAnswerInDiscussionNotification, _Notification); + var _proto = BestAnswerInDiscussionNotification.prototype; + _proto.icon = function icon() { + return 'fas fa-check'; + }; + _proto.href = function href() { + var notification = this.attrs.notification; + var discussion = notification.subject(); + return flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default().route.discussion(discussion); + }; + _proto.content = function content() { + var user = this.attrs.notification.fromUser(); + return flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default().translator.trans('fof-best-answer.forum.notification.best_answer_in_discussion', { + user: user + }); + }; + _proto.excerpt = function excerpt() { + return null; + }; + return BestAnswerInDiscussionNotification; +}((flarum_forum_components_Notification__WEBPACK_IMPORTED_MODULE_2___default())); + + +/***/ }), + +/***/ "./src/forum/components/SelectBestAnswerItem.tsx": +/*!*******************************************************!*\ + !*** ./src/forum/components/SelectBestAnswerItem.tsx ***! + \*******************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ SelectBestAnswerItem) +/* harmony export */ }); +/* harmony import */ var _babel_runtime_helpers_esm_readOnlyError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/readOnlyError */ "./node_modules/@babel/runtime/helpers/esm/readOnlyError.js"); +/* harmony import */ var _babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/inheritsLoose */ "./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js"); +/* harmony import */ var flarum_forum_app__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! flarum/forum/app */ "flarum/forum/app"); +/* harmony import */ var flarum_forum_app__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(flarum_forum_app__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var flarum_common_Component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! flarum/common/Component */ "flarum/common/Component"); +/* harmony import */ var flarum_common_Component__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(flarum_common_Component__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var flarum_common_helpers_icon__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! flarum/common/helpers/icon */ "flarum/common/helpers/icon"); +/* harmony import */ var flarum_common_helpers_icon__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(flarum_common_helpers_icon__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var flarum_common_helpers_humanTime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! flarum/common/helpers/humanTime */ "flarum/common/helpers/humanTime"); +/* harmony import */ var flarum_common_helpers_humanTime__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(flarum_common_helpers_humanTime__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var flarum_common_components_Link__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! flarum/common/components/Link */ "flarum/common/components/Link"); +/* harmony import */ var flarum_common_components_Link__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(flarum_common_components_Link__WEBPACK_IMPORTED_MODULE_6__); +/* harmony import */ var flarum_common_utils_ItemList__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! flarum/common/utils/ItemList */ "flarum/common/utils/ItemList"); +/* harmony import */ var flarum_common_utils_ItemList__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(flarum_common_utils_ItemList__WEBPACK_IMPORTED_MODULE_7__); + + + + + + + + +var SelectBestAnswerItem = /*#__PURE__*/function (_Component) { + function SelectBestAnswerItem() { + var _this; + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _Component.call.apply(_Component, [this].concat(args)) || this; + _this.post = void 0; + _this.discussion = void 0; + return _this; + } + (0,_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__["default"])(SelectBestAnswerItem, _Component); + var _proto = SelectBestAnswerItem.prototype; + _proto.oninit = function oninit(vnode) { + _Component.prototype.oninit.call(this, vnode); + this.post = this.attrs.post; + this.discussion = this.attrs.discussion; + }; + _proto.view = function view() { + return m("li", { + className: "Post--BestAnswer" + }, this.items().toArray()); + }; + _proto.getSetTime = function getSetTime(discussion) { + if (!(discussion.bestAnswerSetAt != null && discussion.bestAnswerSetAt())) { + return; + } + var bestAnswerSetAt = discussion.bestAnswerSetAt == null ? void 0 : discussion.bestAnswerSetAt(); + if (!bestAnswerSetAt) { + return; + } + return flarum_common_helpers_humanTime__WEBPACK_IMPORTED_MODULE_5___default()(bestAnswerSetAt); + }; + _proto.items = function items() { + var _this$discussion$best, _this$discussion, _this$discussion$best2, _this$discussion2; + var items = new (flarum_common_utils_ItemList__WEBPACK_IMPORTED_MODULE_7___default())(); + items.add('post', this.post ? m("span", null, flarum_common_helpers_icon__WEBPACK_IMPORTED_MODULE_4___default()('fas fa-check'), flarum_forum_app__WEBPACK_IMPORTED_MODULE_2___default().translator.trans('fof-best-answer.forum.best_answer_button')) : m((flarum_common_components_Link__WEBPACK_IMPORTED_MODULE_6___default()), { + href: flarum_forum_app__WEBPACK_IMPORTED_MODULE_2___default().route.post(this.post), + "data-number": this.post.number() + }, flarum_common_helpers_icon__WEBPACK_IMPORTED_MODULE_4___default()('fas fa-check'), flarum_forum_app__WEBPACK_IMPORTED_MODULE_2___default().translator.trans('fof-best-answer.forum.best_answer_button'))); + var bestAnswerUser = (_this$discussion$best = (_this$discussion = this.discussion).bestAnswerUser) == null ? void 0 : _this$discussion$best.call(_this$discussion); + bestAnswerUser && items.add('user', m("span", { + className: "BestAnswer--User" + }, flarum_forum_app__WEBPACK_IMPORTED_MODULE_2___default().translator.trans('fof-best-answer.forum.best_answer_label', { + user: (_this$discussion$best2 = (_this$discussion2 = this.discussion).bestAnswerUser) == null ? void 0 : _this$discussion$best2.call(_this$discussion2), + time_set: this.getSetTime(this.discussion), + a: m("a", { + onclick: function onclick() { + return m.route.set(flarum_forum_app__WEBPACK_IMPORTED_MODULE_2___default().route.user(bestAnswerUser)); + } + }) + }))); + return items; + }; + return SelectBestAnswerItem; +}((flarum_common_Component__WEBPACK_IMPORTED_MODULE_3___default())); + + +/***/ }), + +/***/ "./src/forum/components/SelectBestAnswerNotification.ts": +/*!**************************************************************!*\ + !*** ./src/forum/components/SelectBestAnswerNotification.ts ***! + \**************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ SelectBestAnswerNotification) +/* harmony export */ }); +/* harmony import */ var _babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/inheritsLoose */ "./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js"); +/* harmony import */ var flarum_forum_app__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! flarum/forum/app */ "flarum/forum/app"); +/* harmony import */ var flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(flarum_forum_app__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var flarum_forum_components_Notification__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! flarum/forum/components/Notification */ "flarum/forum/components/Notification"); +/* harmony import */ var flarum_forum_components_Notification__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(flarum_forum_components_Notification__WEBPACK_IMPORTED_MODULE_2__); + + + +var SelectBestAnswerNotification = /*#__PURE__*/function (_Notification) { + function SelectBestAnswerNotification() { + return _Notification.apply(this, arguments) || this; + } + (0,_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__["default"])(SelectBestAnswerNotification, _Notification); + var _proto = SelectBestAnswerNotification.prototype; + _proto.icon = function icon() { + return 'fas fa-comment-dots'; + }; + _proto.href = function href() { + var notification = this.attrs.notification; + var discussion = notification.subject(); + return flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default().route.discussion(discussion); + }; + _proto.content = function content() { + return flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default().translator.trans('fof-best-answer.forum.notification.content'); + }; + _proto.excerpt = function excerpt() { + return null; + }; + return SelectBestAnswerNotification; +}((flarum_forum_components_Notification__WEBPACK_IMPORTED_MODULE_2___default())); + + +/***/ }), + +/***/ "./src/forum/components/SolutionSearchItem.tsx": +/*!*****************************************************!*\ + !*** ./src/forum/components/SolutionSearchItem.tsx ***! + \*****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ SolutionSearchItem) +/* harmony export */ }); +/* harmony import */ var _babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/inheritsLoose */ "./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js"); +/* harmony import */ var flarum_forum_app__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! flarum/forum/app */ "flarum/forum/app"); +/* harmony import */ var flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(flarum_forum_app__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var flarum_common_Component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! flarum/common/Component */ "flarum/common/Component"); +/* harmony import */ var flarum_common_Component__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(flarum_common_Component__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var flarum_common_components_Link__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! flarum/common/components/Link */ "flarum/common/components/Link"); +/* harmony import */ var flarum_common_components_Link__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(flarum_common_components_Link__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var flarum_common_helpers_highlight__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! flarum/common/helpers/highlight */ "flarum/common/helpers/highlight"); +/* harmony import */ var flarum_common_helpers_highlight__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(flarum_common_helpers_highlight__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var flarum_tags_common_helpers_tagsLabel__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! flarum/tags/common/helpers/tagsLabel */ "flarum/tags/common/helpers/tagsLabel"); +/* harmony import */ var flarum_tags_common_helpers_tagsLabel__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(flarum_tags_common_helpers_tagsLabel__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var flarum_common_utils_ItemList__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! flarum/common/utils/ItemList */ "flarum/common/utils/ItemList"); +/* harmony import */ var flarum_common_utils_ItemList__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(flarum_common_utils_ItemList__WEBPACK_IMPORTED_MODULE_6__); + + + + + + + +var SolutionSearchItem = /*#__PURE__*/function (_Component) { + function SolutionSearchItem() { + var _this; + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _Component.call.apply(_Component, [this].concat(args)) || this; + _this.query = void 0; + _this.discussion = void 0; + _this.bestAnswerPost = void 0; + _this.mostRelevantPost = void 0; + _this.tags = void 0; + return _this; + } + (0,_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__["default"])(SolutionSearchItem, _Component); + var _proto = SolutionSearchItem.prototype; + _proto.oninit = function oninit(vnode) { + _Component.prototype.oninit.call(this, vnode); + this.query = this.attrs.query; + this.discussion = this.attrs.discussion; + this.bestAnswerPost = this.attrs.bestAnswerPost; + this.mostRelevantPost = this.attrs.mostRelevantPost; + this.tags = this.attrs.tags; + }; + _proto.view = function view() { + return m("li", { + className: "SolutionSearchResult DiscussionSearchResult", + "data-index": 'discussions' + this.discussion.id() + }, m((flarum_common_components_Link__WEBPACK_IMPORTED_MODULE_3___default()), { + href: flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default().route.discussion(this.discussion, this.bestAnswerPost && this.bestAnswerPost.number() || 0) + }, this.viewItems().toArray())); + }; + _proto.discussionTitle = function discussionTitle() { + return this.discussion.title(); + }; + _proto.bestAnswerContent = function bestAnswerContent() { + var _this$bestAnswerPost; + return (_this$bestAnswerPost = this.bestAnswerPost) == null ? void 0 : _this$bestAnswerPost.contentPlain(); + }; + _proto.mostRelevantContent = function mostRelevantContent() { + var _this$mostRelevantPos; + return (_this$mostRelevantPos = this.mostRelevantPost) == null ? void 0 : _this$mostRelevantPos.contentPlain(); + }; + _proto.viewItems = function viewItems() { + var _this$mostRelevantCon, _this$bestAnswerConte; + var items = new (flarum_common_utils_ItemList__WEBPACK_IMPORTED_MODULE_6___default())(); + flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default().forum.attribute('showTagsInSearchResults') && items.add('tags', m("div", { + className: "SolutionSearchResult-tags" + }, flarum_tags_common_helpers_tagsLabel__WEBPACK_IMPORTED_MODULE_5___default()(this.tags)), 100); + items.add('discussion-title', m("div", { + className: "DiscussionSearchResult-title" + }, flarum_common_helpers_highlight__WEBPACK_IMPORTED_MODULE_4___default()(this.discussionTitle(), this.query)), 90); + !!this.mostRelevantPost && items.add('most-relevant', m("div", { + className: "DiscussionSearchResult-excerpt" + }, flarum_common_helpers_highlight__WEBPACK_IMPORTED_MODULE_4___default()((_this$mostRelevantCon = this.mostRelevantContent()) != null ? _this$mostRelevantCon : '', this.query, 100)), 80); + !!this.bestAnswerPost && items.add('best-answer', m("div", { + className: "DiscussionSearchResult-excerpt SolutionSearchResult-bestAnswer" + }, flarum_common_helpers_highlight__WEBPACK_IMPORTED_MODULE_4___default()((_this$bestAnswerConte = this.bestAnswerContent()) != null ? _this$bestAnswerConte : '', this.query, 100)), 70); + return items; + }; + return SolutionSearchItem; +}((flarum_common_Component__WEBPACK_IMPORTED_MODULE_2___default())); + + +/***/ }), + +/***/ "./src/forum/components/SolutionSearchSource.tsx": +/*!*******************************************************!*\ + !*** ./src/forum/components/SolutionSearchSource.tsx ***! + \*******************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ SolutionSearchSource) +/* harmony export */ }); +/* harmony import */ var _babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var flarum_forum_app__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! flarum/forum/app */ "flarum/forum/app"); +/* harmony import */ var flarum_forum_app__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(flarum_forum_app__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var flarum_common_components_LinkButton__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! flarum/common/components/LinkButton */ "flarum/common/components/LinkButton"); +/* harmony import */ var flarum_common_components_LinkButton__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(flarum_common_components_LinkButton__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _BestAnswerBadge__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./BestAnswerBadge */ "./src/forum/components/BestAnswerBadge.tsx"); +/* harmony import */ var _SolutionSearchItem__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./SolutionSearchItem */ "./src/forum/components/SolutionSearchItem.tsx"); + + + + + + +var SolutionSearchSource = /*#__PURE__*/function () { + function SolutionSearchSource() { + this.results = new Map(); + this.queryString = null; + } + var _proto = SolutionSearchSource.prototype; + _proto.search = /*#__PURE__*/function () { + var _search = (0,_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee(query) { + var _this = this; + var params; + return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + query = query.toLowerCase(); + this.results.set(query, []); + this.setQueryString(query); + params = { + filter: { + q: this.queryString || query + }, + page: { + limit: this.limit() + }, + include: this.includes().join(',') + }; + return _context.abrupt("return", flarum_forum_app__WEBPACK_IMPORTED_MODULE_2___default().store.find('discussions', params).then(function (results) { + _this.results.set(query, results); + m.redraw(); + })); + case 5: + case "end": + return _context.stop(); + } + }, _callee, this); + })); + function search(_x) { + return _search.apply(this, arguments); + } + return search; + }(); + _proto.view = function view(query) { + query = query.toLowerCase(); + this.setQueryString(query); + var results = (this.results.get(query) || []).map(function (discussion) { + var bestAnswerPost = discussion.bestAnswerPost(); + var mostRelevantPost = discussion.mostRelevantPost(); + var tags = discussion.tags(); + return m(_SolutionSearchItem__WEBPACK_IMPORTED_MODULE_5__["default"], { + query: query, + discussion: discussion, + bestAnswerPost: bestAnswerPost, + mostRelevantPost: mostRelevantPost, + tags: tags + }); + }); + return [m("li", { + className: "Dropdown-header" + }, m(_BestAnswerBadge__WEBPACK_IMPORTED_MODULE_4__["default"], null), " ", flarum_forum_app__WEBPACK_IMPORTED_MODULE_2___default().translator.trans('fof-best-answer.forum.search.discussions_solutions_heading')), m("li", null, m((flarum_common_components_LinkButton__WEBPACK_IMPORTED_MODULE_3___default()), { + icon: "fas fa-search", + href: flarum_forum_app__WEBPACK_IMPORTED_MODULE_2___default().route('index', { + q: this.queryString + }) + }, flarum_forum_app__WEBPACK_IMPORTED_MODULE_2___default().translator.trans('fof-best-answer.forum.search.all_discussions_solutions_button', { + query: query + })))].concat(results); + }; + _proto.includes = function includes() { + return ['mostRelevantPost', 'bestAnswerPost', 'tags']; + }; + _proto.limit = function limit() { + return 3; + }; + _proto.queryMutators = function queryMutators() { + return ['is:solved']; + }; + _proto.setQueryString = function setQueryString(query) { + this.queryString = query + ' ' + this.queryMutators().join(' '); + }; + return SolutionSearchSource; +}(); + + +/***/ }), + +/***/ "./src/forum/components/SolvedFilter.tsx": +/*!***********************************************!*\ + !*** ./src/forum/components/SolvedFilter.tsx ***! + \***********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ SolvedFilter) +/* harmony export */ }); +/* harmony import */ var _babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/inheritsLoose */ "./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js"); +/* harmony import */ var flarum_forum_app__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! flarum/forum/app */ "flarum/forum/app"); +/* harmony import */ var flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(flarum_forum_app__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var flarum_common_Component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! flarum/common/Component */ "flarum/common/Component"); +/* harmony import */ var flarum_common_Component__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(flarum_common_Component__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var flarum_common_components_Dropdown__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! flarum/common/components/Dropdown */ "flarum/common/components/Dropdown"); +/* harmony import */ var flarum_common_components_Dropdown__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(flarum_common_components_Dropdown__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var flarum_common_components_Button__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! flarum/common/components/Button */ "flarum/common/components/Button"); +/* harmony import */ var flarum_common_components_Button__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(flarum_common_components_Button__WEBPACK_IMPORTED_MODULE_4__); + + + + + +var SolvedFilter = /*#__PURE__*/function (_Component) { + function SolvedFilter() { + return _Component.apply(this, arguments) || this; + } + (0,_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__["default"])(SolvedFilter, _Component); + var _proto = SolvedFilter.prototype; + _proto.view = function view() { + var _this = this; + if (!this.shouldShowFilter()) return null; + var selected = (flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default().discussions).bestAnswer; + var options = ['all', 'solved', 'unsolved']; + return flarum_common_components_Dropdown__WEBPACK_IMPORTED_MODULE_3___default().component({ + buttonClassName: 'Button', + label: flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default().translator.trans("fof-best-answer.forum.filter." + (options[selected] || Object.keys(options).map(function (key) { + return options[Number(key)]; + })[0]) + "_label"), + accessibleToggleLabel: flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default().translator.trans('fof-best-answer.forum.filter.accessible_label') + }, Object.keys(options).map(function (value) { + var label = options[Number(value)]; + var active = (selected || Object.keys(options)[0]) === value; + return flarum_common_components_Button__WEBPACK_IMPORTED_MODULE_4___default().component({ + icon: active ? 'fas fa-check' : true, + active: active, + onclick: function onclick() { + (flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default().discussions).bestAnswer = value; + if (value === '0') { + delete (flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default().discussions).bestAnswer; + } + _this.reloadDiscussions(); + } + }, flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default().translator.trans("fof-best-answer.forum.filter." + label + "_label")); + })); + }; + _proto.reloadDiscussions = function reloadDiscussions() { + flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default().discussions.refresh(); + }; + _proto.shouldShowFilter = function shouldShowFilter() { + var _this$attrs = this.attrs, + currentTag = _this$attrs.currentTag, + alwaysShow = _this$attrs.alwaysShow; + if (alwaysShow) return true; + if (!flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default().forum.attribute('showBestAnswerFilterUi')) return false; + if (!(currentTag != null && currentTag.isQnA != null && currentTag.isQnA())) { + if ((flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default().discussions).bestAnswer) { + delete (flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default().discussions).bestAnswer; + flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default().discussions.refresh(); + } + return false; + } + return true; + }; + return SolvedFilter; +}((flarum_common_Component__WEBPACK_IMPORTED_MODULE_2___default())); + + +/***/ }), + +/***/ "./src/forum/components/index.ts": +/*!***************************************!*\ + !*** ./src/forum/components/index.ts ***! + \***************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ components: () => (/* binding */ components) +/* harmony export */ }); +/* harmony import */ var _AwardedBestAnswerNotification__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AwardedBestAnswerNotification */ "./src/forum/components/AwardedBestAnswerNotification.ts"); +/* harmony import */ var _BestAnswerBadge__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BestAnswerBadge */ "./src/forum/components/BestAnswerBadge.tsx"); +/* harmony import */ var _BestAnswerFooterPreview__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./BestAnswerFooterPreview */ "./src/forum/components/BestAnswerFooterPreview.tsx"); +/* harmony import */ var _BestAnswerInDiscussionNotification__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./BestAnswerInDiscussionNotification */ "./src/forum/components/BestAnswerInDiscussionNotification.ts"); +/* harmony import */ var _SelectBestAnswerItem__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./SelectBestAnswerItem */ "./src/forum/components/SelectBestAnswerItem.tsx"); +/* harmony import */ var _SelectBestAnswerNotification__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./SelectBestAnswerNotification */ "./src/forum/components/SelectBestAnswerNotification.ts"); +/* harmony import */ var _SolutionSearchItem__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./SolutionSearchItem */ "./src/forum/components/SolutionSearchItem.tsx"); +/* harmony import */ var _SolutionSearchSource__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./SolutionSearchSource */ "./src/forum/components/SolutionSearchSource.tsx"); +/* harmony import */ var _SolvedFilter__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./SolvedFilter */ "./src/forum/components/SolvedFilter.tsx"); + + + + + + + + + +var components = { + SelectBestAnswerItem: _SelectBestAnswerItem__WEBPACK_IMPORTED_MODULE_4__["default"], + SolutionSearchSource: _SolutionSearchSource__WEBPACK_IMPORTED_MODULE_7__["default"], + BestAnswerFooterPreview: _BestAnswerFooterPreview__WEBPACK_IMPORTED_MODULE_2__["default"], + AwardedBestAnswerNotification: _AwardedBestAnswerNotification__WEBPACK_IMPORTED_MODULE_0__["default"], + BestAnswerBadge: _BestAnswerBadge__WEBPACK_IMPORTED_MODULE_1__["default"], + BestAnswerInDiscussionNotification: _BestAnswerInDiscussionNotification__WEBPACK_IMPORTED_MODULE_3__["default"], + SelectBestAnswerNotification: _SelectBestAnswerNotification__WEBPACK_IMPORTED_MODULE_5__["default"], + SolutionSearchItem: _SolutionSearchItem__WEBPACK_IMPORTED_MODULE_6__["default"], + SolvedFilter: _SolvedFilter__WEBPACK_IMPORTED_MODULE_8__["default"] +}; + +/***/ }), + +/***/ "./src/forum/extend.ts": +/*!*****************************!*\ + !*** ./src/forum/extend.ts ***! + \*****************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var flarum_common_models_Discussion__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! flarum/common/models/Discussion */ "flarum/common/models/Discussion"); +/* harmony import */ var flarum_common_models_Discussion__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(flarum_common_models_Discussion__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _common_extend__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../common/extend */ "./src/common/extend.ts"); +/* harmony import */ var flarum_common_extenders__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! flarum/common/extenders */ "flarum/common/extenders"); +/* harmony import */ var flarum_common_extenders__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(flarum_common_extenders__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var flarum_common_models_Post__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! flarum/common/models/Post */ "flarum/common/models/Post"); +/* harmony import */ var flarum_common_models_Post__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(flarum_common_models_Post__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var flarum_common_models_User__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! flarum/common/models/User */ "flarum/common/models/User"); +/* harmony import */ var flarum_common_models_User__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(flarum_common_models_User__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var flarum_common_Model__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! flarum/common/Model */ "flarum/common/Model"); +/* harmony import */ var flarum_common_Model__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(flarum_common_Model__WEBPACK_IMPORTED_MODULE_5__); + + + + + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ([].concat(_common_extend__WEBPACK_IMPORTED_MODULE_1__["default"], [new (flarum_common_extenders__WEBPACK_IMPORTED_MODULE_2___default().Model)((flarum_common_models_Discussion__WEBPACK_IMPORTED_MODULE_0___default())) // +.hasOne('bestAnswerPost').hasOne('bestAnswerUser').attribute('hasBestAnswer').attribute('bestAnswerSetAt', (flarum_common_Model__WEBPACK_IMPORTED_MODULE_5___default().transformDate)), new (flarum_common_extenders__WEBPACK_IMPORTED_MODULE_2___default().Model)((flarum_common_models_User__WEBPACK_IMPORTED_MODULE_4___default())) // +.attribute('bestAnswerCount'), new (flarum_common_extenders__WEBPACK_IMPORTED_MODULE_2___default().Model)((flarum_common_models_Post__WEBPACK_IMPORTED_MODULE_3___default())) // +.attribute('canSelectBestAnswer')])); + +/***/ }), + +/***/ "./src/forum/extenders/extendDiscussionComposer.tsx": +/*!**********************************************************!*\ + !*** ./src/forum/extenders/extendDiscussionComposer.tsx ***! + \**********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ extendDiscussionComposer) +/* harmony export */ }); +/* harmony import */ var flarum_common_extend__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! flarum/common/extend */ "flarum/common/extend"); +/* harmony import */ var flarum_common_extend__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(flarum_common_extend__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var flarum_forum_app__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! flarum/forum/app */ "flarum/forum/app"); +/* harmony import */ var flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(flarum_forum_app__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var flarum_forum_components_DiscussionComposer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! flarum/forum/components/DiscussionComposer */ "flarum/forum/components/DiscussionComposer"); +/* harmony import */ var flarum_forum_components_DiscussionComposer__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(flarum_forum_components_DiscussionComposer__WEBPACK_IMPORTED_MODULE_2__); + + + +function extendDiscussionComposer() { + (0,flarum_common_extend__WEBPACK_IMPORTED_MODULE_0__.extend)((flarum_forum_components_DiscussionComposer__WEBPACK_IMPORTED_MODULE_2___default().prototype), 'headerItems', function (items) { + var tags = this.composer.fields.tags; + if (tags === undefined) return; + var qna = tags.some(function (t) { + return t.isQnA(); + }); + if (!qna) return; + + // @ts-expect-error + this.attrs.titlePlaceholder = flarum_forum_app__WEBPACK_IMPORTED_MODULE_1___default().translator.trans('fof-best-answer.forum.composer.titlePlaceholder'); + if (items.has('discussionTitle')) { + items.setContent('discussionTitle', m("h3", null, m("input", { + className: "FormControl", + bidi: this.title + // @ts-expect-error + , + placeholder: this.attrs.titlePlaceholder + // @ts-expect-error + , + disabled: !!this.attrs.disabled, + onkeydown: this.onkeydown.bind(this) + }))); + } + }); +} + +/***/ }), + +/***/ "./src/forum/extenders/extendDiscussionListState.tsx": +/*!***********************************************************!*\ + !*** ./src/forum/extenders/extendDiscussionListState.tsx ***! + \***********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ extendDiscussionListState) +/* harmony export */ }); +/* harmony import */ var flarum_forum_app__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! flarum/forum/app */ "flarum/forum/app"); +/* harmony import */ var flarum_forum_app__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(flarum_forum_app__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var flarum_common_extend__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! flarum/common/extend */ "flarum/common/extend"); +/* harmony import */ var flarum_common_extend__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(flarum_common_extend__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var flarum_forum_states_DiscussionListState__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! flarum/forum/states/DiscussionListState */ "flarum/forum/states/DiscussionListState"); +/* harmony import */ var flarum_forum_states_DiscussionListState__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(flarum_forum_states_DiscussionListState__WEBPACK_IMPORTED_MODULE_2__); + + + +function extendDiscussionListState() { + (0,flarum_common_extend__WEBPACK_IMPORTED_MODULE_1__.extend)((flarum_forum_states_DiscussionListState__WEBPACK_IMPORTED_MODULE_2___default().prototype), 'requestParams', function (params) { + if ((flarum_forum_app__WEBPACK_IMPORTED_MODULE_0___default().discussions).bestAnswer) { + var negate = (flarum_forum_app__WEBPACK_IMPORTED_MODULE_0___default().discussions).bestAnswer === '2'; + var prepend = negate ? '-' : ''; + if (!params.filter) { + params.filter = {}; + } + params.filter[prepend + "solved-discussions"] = 'true'; + if (params.filter.q) { + params.filter.q += " " + prepend + "is:solved"; + } + } + }); +} + +/***/ }), + +/***/ "./src/forum/extenders/extendDiscussionSearchSource.tsx": +/*!**************************************************************!*\ + !*** ./src/forum/extenders/extendDiscussionSearchSource.tsx ***! + \**************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ extendDiscussionsSearchSource) +/* harmony export */ }); +/* harmony import */ var flarum_forum_app__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! flarum/forum/app */ "flarum/forum/app"); +/* harmony import */ var flarum_forum_app__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(flarum_forum_app__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var flarum_common_extend__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! flarum/common/extend */ "flarum/common/extend"); +/* harmony import */ var flarum_common_extend__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(flarum_common_extend__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var flarum_forum_components_DiscussionsSearchSource__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! flarum/forum/components/DiscussionsSearchSource */ "flarum/forum/components/DiscussionsSearchSource"); +/* harmony import */ var flarum_forum_components_DiscussionsSearchSource__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(flarum_forum_components_DiscussionsSearchSource__WEBPACK_IMPORTED_MODULE_2__); + + + +function extendDiscussionsSearchSource() { + (0,flarum_common_extend__WEBPACK_IMPORTED_MODULE_1__.extend)((flarum_forum_components_DiscussionsSearchSource__WEBPACK_IMPORTED_MODULE_2___default().prototype), 'queryMutators', function (mutators) { + // This will only apply when using flarum/core 1.8.6 or newer + if (flarum_forum_app__WEBPACK_IMPORTED_MODULE_0___default().forum.attribute('removeSolutionResultsFromMainSearch')) { + mutators.push('-is:solved'); + } + }); +} + +/***/ }), + +/***/ "./src/forum/extenders/extendIndexPage.tsx": +/*!*************************************************!*\ + !*** ./src/forum/extenders/extendIndexPage.tsx ***! + \*************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ extendIndexPage) +/* harmony export */ }); +/* harmony import */ var flarum_forum_app__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! flarum/forum/app */ "flarum/forum/app"); +/* harmony import */ var flarum_forum_app__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(flarum_forum_app__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var flarum_common_extend__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! flarum/common/extend */ "flarum/common/extend"); +/* harmony import */ var flarum_common_extend__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(flarum_common_extend__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var flarum_forum_components_IndexPage__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! flarum/forum/components/IndexPage */ "flarum/forum/components/IndexPage"); +/* harmony import */ var flarum_forum_components_IndexPage__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(flarum_forum_components_IndexPage__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _components_SolvedFilter__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../components/SolvedFilter */ "./src/forum/components/SolvedFilter.tsx"); + + + + +function extendIndexPage() { + (0,flarum_common_extend__WEBPACK_IMPORTED_MODULE_1__.extend)((flarum_forum_components_IndexPage__WEBPACK_IMPORTED_MODULE_2___default().prototype), 'sidebarItems', function (items) { + var tag = this.currentTag(); + if (!(tag != null && tag.isQnA != null && tag.isQnA())) return; + var canStartDiscussion = flarum_forum_app__WEBPACK_IMPORTED_MODULE_0___default().forum.attribute('canStartDiscussion') || !(flarum_forum_app__WEBPACK_IMPORTED_MODULE_0___default().session).user; + if (!items.has('newDiscussion')) return; + var cta = items.get('newDiscussion'); + cta.children = flarum_forum_app__WEBPACK_IMPORTED_MODULE_0___default().translator.trans(canStartDiscussion ? 'fof-best-answer.forum.index.ask_question' : 'fof-best-answer.forum.index.cannot_ask_question'); + if (items.has('startDiscussion')) { + items.setContent('startDiscussion', cta); + } + }); + (0,flarum_common_extend__WEBPACK_IMPORTED_MODULE_1__.extend)((flarum_forum_components_IndexPage__WEBPACK_IMPORTED_MODULE_2___default().prototype), 'viewItems', function (items) { + var currentTag = this.currentTag(); + if (!currentTag) return; + items.add('solved-filter', m(_components_SolvedFilter__WEBPACK_IMPORTED_MODULE_3__["default"], { + currentTag: currentTag + })); + }); +} + +/***/ }), + +/***/ "./src/forum/extenders/extendNotifications.ts": +/*!****************************************************!*\ + !*** ./src/forum/extenders/extendNotifications.ts ***! + \****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var flarum_forum_app__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! flarum/forum/app */ "flarum/forum/app"); +/* harmony import */ var flarum_forum_app__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(flarum_forum_app__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var flarum_common_extend__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! flarum/common/extend */ "flarum/common/extend"); +/* harmony import */ var flarum_common_extend__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(flarum_common_extend__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var flarum_forum_components_NotificationGrid__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! flarum/forum/components/NotificationGrid */ "flarum/forum/components/NotificationGrid"); +/* harmony import */ var flarum_forum_components_NotificationGrid__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(flarum_forum_components_NotificationGrid__WEBPACK_IMPORTED_MODULE_2__); + + + +/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() { + (0,flarum_common_extend__WEBPACK_IMPORTED_MODULE_1__.extend)((flarum_forum_components_NotificationGrid__WEBPACK_IMPORTED_MODULE_2___default().prototype), 'notificationTypes', function (items) { + items.add('awardedBestAnswer', { + name: 'awardedBestAnswer', + icon: 'fas fa-check', + label: flarum_forum_app__WEBPACK_IMPORTED_MODULE_0___default().translator.trans('fof-best-answer.forum.notification.preferences.awarded_best_answer') + }); + items.add('bestAnswerInDiscussion', { + name: 'bestAnswerInDiscussion', + icon: 'fas fa-check', + label: flarum_forum_app__WEBPACK_IMPORTED_MODULE_0___default().translator.trans('fof-best-answer.forum.notification.preferences.best_answer_in_discussion') + }); + items.add('selectBestAnswer', { + name: 'selectBestAnswer', + icon: 'fas fa-stopwatch', + label: flarum_forum_app__WEBPACK_IMPORTED_MODULE_0___default().translator.trans('fof-best-answer.forum.notification.preferences.select_best_answer') + }); + }); +} + +/***/ }), + +/***/ "./src/forum/extenders/extendSearch.ts": +/*!*********************************************!*\ + !*** ./src/forum/extenders/extendSearch.ts ***! + \*********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ extendSearch) +/* harmony export */ }); +/* harmony import */ var flarum_forum_app__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! flarum/forum/app */ "flarum/forum/app"); +/* harmony import */ var flarum_forum_app__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(flarum_forum_app__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var flarum_common_extend__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! flarum/common/extend */ "flarum/common/extend"); +/* harmony import */ var flarum_common_extend__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(flarum_common_extend__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var flarum_forum_components_Search__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! flarum/forum/components/Search */ "flarum/forum/components/Search"); +/* harmony import */ var flarum_forum_components_Search__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(flarum_forum_components_Search__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _components_SolutionSearchSource__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../components/SolutionSearchSource */ "./src/forum/components/SolutionSearchSource.tsx"); + + + + +function extendSearch() { + (0,flarum_common_extend__WEBPACK_IMPORTED_MODULE_1__.extend)((flarum_forum_components_Search__WEBPACK_IMPORTED_MODULE_2___default().prototype), 'sourceItems', function (items) { + if (flarum_forum_app__WEBPACK_IMPORTED_MODULE_0___default().forum.attribute('solutionSearchEnabled')) { + items.add('solution', new _components_SolutionSearchSource__WEBPACK_IMPORTED_MODULE_3__["default"](), 110); + } + }); +} + +/***/ }), + +/***/ "./src/forum/index.ts": +/*!****************************!*\ + !*** ./src/forum/index.ts ***! + \****************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ components: () => (/* reexport safe */ _components__WEBPACK_IMPORTED_MODULE_15__.components), +/* harmony export */ extend: () => (/* reexport safe */ _extend__WEBPACK_IMPORTED_MODULE_16__["default"]) +/* harmony export */ }); +/* harmony import */ var flarum_forum_app__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! flarum/forum/app */ "flarum/forum/app"); +/* harmony import */ var flarum_forum_app__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(flarum_forum_app__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _components_SelectBestAnswerNotification__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./components/SelectBestAnswerNotification */ "./src/forum/components/SelectBestAnswerNotification.ts"); +/* harmony import */ var _addBestAnswerAction__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./addBestAnswerAction */ "./src/forum/addBestAnswerAction.tsx"); +/* harmony import */ var _addBestAnswerView__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./addBestAnswerView */ "./src/forum/addBestAnswerView.tsx"); +/* harmony import */ var _addAnsweredBadge__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./addAnsweredBadge */ "./src/forum/addAnsweredBadge.tsx"); +/* harmony import */ var _components_AwardedBestAnswerNotification__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./components/AwardedBestAnswerNotification */ "./src/forum/components/AwardedBestAnswerNotification.ts"); +/* harmony import */ var _components_BestAnswerInDiscussionNotification__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./components/BestAnswerInDiscussionNotification */ "./src/forum/components/BestAnswerInDiscussionNotification.ts"); +/* harmony import */ var _extenders_extendNotifications__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./extenders/extendNotifications */ "./src/forum/extenders/extendNotifications.ts"); +/* harmony import */ var _addBestAnswerCountToUsers__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./addBestAnswerCountToUsers */ "./src/forum/addBestAnswerCountToUsers.tsx"); +/* harmony import */ var _common_addBestAnswerCountSort__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../common/addBestAnswerCountSort */ "./src/common/addBestAnswerCountSort.ts"); +/* harmony import */ var _extenders_extendSearch__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./extenders/extendSearch */ "./src/forum/extenders/extendSearch.ts"); +/* harmony import */ var _extenders_extendDiscussionSearchSource__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./extenders/extendDiscussionSearchSource */ "./src/forum/extenders/extendDiscussionSearchSource.tsx"); +/* harmony import */ var _extenders_extendIndexPage__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./extenders/extendIndexPage */ "./src/forum/extenders/extendIndexPage.tsx"); +/* harmony import */ var _extenders_extendDiscussionListState__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./extenders/extendDiscussionListState */ "./src/forum/extenders/extendDiscussionListState.tsx"); +/* harmony import */ var _extenders_extendDiscussionComposer__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./extenders/extendDiscussionComposer */ "./src/forum/extenders/extendDiscussionComposer.tsx"); +/* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./components */ "./src/forum/components/index.ts"); +/* harmony import */ var _extend__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./extend */ "./src/forum/extend.ts"); + + + + + + + + + + + + + + + + + +flarum_forum_app__WEBPACK_IMPORTED_MODULE_0___default().initializers.add('fof/best-answer', function () { + (flarum_forum_app__WEBPACK_IMPORTED_MODULE_0___default().notificationComponents).selectBestAnswer = _components_SelectBestAnswerNotification__WEBPACK_IMPORTED_MODULE_1__["default"]; + (flarum_forum_app__WEBPACK_IMPORTED_MODULE_0___default().notificationComponents).awardedBestAnswer = _components_AwardedBestAnswerNotification__WEBPACK_IMPORTED_MODULE_5__["default"]; + (flarum_forum_app__WEBPACK_IMPORTED_MODULE_0___default().notificationComponents).bestAnswerInDiscussion = _components_BestAnswerInDiscussionNotification__WEBPACK_IMPORTED_MODULE_6__["default"]; + (0,_addAnsweredBadge__WEBPACK_IMPORTED_MODULE_4__["default"])(); + (0,_addBestAnswerAction__WEBPACK_IMPORTED_MODULE_2__["default"])(); + (0,_addBestAnswerView__WEBPACK_IMPORTED_MODULE_3__["default"])(); + (0,_addBestAnswerCountToUsers__WEBPACK_IMPORTED_MODULE_8__["default"])(); + (0,_common_addBestAnswerCountSort__WEBPACK_IMPORTED_MODULE_9__["default"])(); + (0,_extenders_extendNotifications__WEBPACK_IMPORTED_MODULE_7__["default"])(); + (0,_extenders_extendSearch__WEBPACK_IMPORTED_MODULE_10__["default"])(); + (0,_extenders_extendDiscussionSearchSource__WEBPACK_IMPORTED_MODULE_11__["default"])(); + (0,_extenders_extendIndexPage__WEBPACK_IMPORTED_MODULE_12__["default"])(); + (0,_extenders_extendDiscussionListState__WEBPACK_IMPORTED_MODULE_13__["default"])(); + (0,_extenders_extendDiscussionComposer__WEBPACK_IMPORTED_MODULE_14__["default"])(); +}); + +/***/ }), + +/***/ "@fof-user-directory": +/*!**********************************************************!*\ + !*** external "flarum.extensions['fof-user-directory']" ***! + \**********************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = flarum.extensions['fof-user-directory']; + +/***/ }), + +/***/ "flarum/common/Component": +/*!*********************************************************!*\ + !*** external "flarum.core.compat['common/Component']" ***! + \*********************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = flarum.core.compat['common/Component']; + +/***/ }), + +/***/ "flarum/common/Model": +/*!*****************************************************!*\ + !*** external "flarum.core.compat['common/Model']" ***! + \*****************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = flarum.core.compat['common/Model']; + +/***/ }), + +/***/ "flarum/common/components/Badge": +/*!****************************************************************!*\ + !*** external "flarum.core.compat['common/components/Badge']" ***! + \****************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = flarum.core.compat['common/components/Badge']; + +/***/ }), + +/***/ "flarum/common/components/Button": +/*!*****************************************************************!*\ + !*** external "flarum.core.compat['common/components/Button']" ***! + \*****************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = flarum.core.compat['common/components/Button']; + +/***/ }), + +/***/ "flarum/common/components/Dropdown": +/*!*******************************************************************!*\ + !*** external "flarum.core.compat['common/components/Dropdown']" ***! + \*******************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = flarum.core.compat['common/components/Dropdown']; + +/***/ }), + +/***/ "flarum/common/components/Link": +/*!***************************************************************!*\ + !*** external "flarum.core.compat['common/components/Link']" ***! + \***************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = flarum.core.compat['common/components/Link']; + +/***/ }), + +/***/ "flarum/common/components/LinkButton": +/*!*********************************************************************!*\ + !*** external "flarum.core.compat['common/components/LinkButton']" ***! + \*********************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = flarum.core.compat['common/components/LinkButton']; + +/***/ }), + +/***/ "flarum/common/extend": +/*!******************************************************!*\ + !*** external "flarum.core.compat['common/extend']" ***! + \******************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = flarum.core.compat['common/extend']; + +/***/ }), + +/***/ "flarum/common/extenders": +/*!*********************************************************!*\ + !*** external "flarum.core.compat['common/extenders']" ***! + \*********************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = flarum.core.compat['common/extenders']; + +/***/ }), + +/***/ "flarum/common/helpers/highlight": +/*!*****************************************************************!*\ + !*** external "flarum.core.compat['common/helpers/highlight']" ***! + \*****************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = flarum.core.compat['common/helpers/highlight']; + +/***/ }), + +/***/ "flarum/common/helpers/humanTime": +/*!*****************************************************************!*\ + !*** external "flarum.core.compat['common/helpers/humanTime']" ***! + \*****************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = flarum.core.compat['common/helpers/humanTime']; + +/***/ }), + +/***/ "flarum/common/helpers/icon": +/*!************************************************************!*\ + !*** external "flarum.core.compat['common/helpers/icon']" ***! + \************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = flarum.core.compat['common/helpers/icon']; + +/***/ }), + +/***/ "flarum/common/helpers/userOnline": +/*!******************************************************************!*\ + !*** external "flarum.core.compat['common/helpers/userOnline']" ***! + \******************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = flarum.core.compat['common/helpers/userOnline']; + +/***/ }), + +/***/ "flarum/common/helpers/username": +/*!****************************************************************!*\ + !*** external "flarum.core.compat['common/helpers/username']" ***! + \****************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = flarum.core.compat['common/helpers/username']; + +/***/ }), + +/***/ "flarum/common/models/Discussion": +/*!*****************************************************************!*\ + !*** external "flarum.core.compat['common/models/Discussion']" ***! + \*****************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = flarum.core.compat['common/models/Discussion']; + +/***/ }), + +/***/ "flarum/common/models/Post": +/*!***********************************************************!*\ + !*** external "flarum.core.compat['common/models/Post']" ***! + \***********************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = flarum.core.compat['common/models/Post']; + +/***/ }), + +/***/ "flarum/common/models/User": +/*!***********************************************************!*\ + !*** external "flarum.core.compat['common/models/User']" ***! + \***********************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = flarum.core.compat['common/models/User']; + +/***/ }), + +/***/ "flarum/common/utils/ItemList": +/*!**************************************************************!*\ + !*** external "flarum.core.compat['common/utils/ItemList']" ***! + \**************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = flarum.core.compat['common/utils/ItemList']; + +/***/ }), + +/***/ "flarum/common/utils/classList": +/*!***************************************************************!*\ + !*** external "flarum.core.compat['common/utils/classList']" ***! + \***************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = flarum.core.compat['common/utils/classList']; + +/***/ }), + +/***/ "flarum/common/utils/extractText": +/*!*****************************************************************!*\ + !*** external "flarum.core.compat['common/utils/extractText']" ***! + \*****************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = flarum.core.compat['common/utils/extractText']; + +/***/ }), + +/***/ "flarum/forum/app": +/*!**************************************************!*\ + !*** external "flarum.core.compat['forum/app']" ***! + \**************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = flarum.core.compat['forum/app']; + +/***/ }), + +/***/ "flarum/forum/components/CommentPost": +/*!*********************************************************************!*\ + !*** external "flarum.core.compat['forum/components/CommentPost']" ***! + \*********************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = flarum.core.compat['forum/components/CommentPost']; + +/***/ }), + +/***/ "flarum/forum/components/DiscussionComposer": +/*!****************************************************************************!*\ + !*** external "flarum.core.compat['forum/components/DiscussionComposer']" ***! + \****************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = flarum.core.compat['forum/components/DiscussionComposer']; + +/***/ }), + +/***/ "flarum/forum/components/DiscussionPage": +/*!************************************************************************!*\ + !*** external "flarum.core.compat['forum/components/DiscussionPage']" ***! + \************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = flarum.core.compat['forum/components/DiscussionPage']; + +/***/ }), + +/***/ "flarum/forum/components/DiscussionsSearchSource": +/*!*********************************************************************************!*\ + !*** external "flarum.core.compat['forum/components/DiscussionsSearchSource']" ***! + \*********************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = flarum.core.compat['forum/components/DiscussionsSearchSource']; + +/***/ }), + +/***/ "flarum/forum/components/IndexPage": +/*!*******************************************************************!*\ + !*** external "flarum.core.compat['forum/components/IndexPage']" ***! + \*******************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = flarum.core.compat['forum/components/IndexPage']; + +/***/ }), + +/***/ "flarum/forum/components/Notification": +/*!**********************************************************************!*\ + !*** external "flarum.core.compat['forum/components/Notification']" ***! + \**********************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = flarum.core.compat['forum/components/Notification']; + +/***/ }), + +/***/ "flarum/forum/components/NotificationGrid": +/*!**************************************************************************!*\ + !*** external "flarum.core.compat['forum/components/NotificationGrid']" ***! + \**************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = flarum.core.compat['forum/components/NotificationGrid']; + +/***/ }), + +/***/ "flarum/forum/components/Post": +/*!**************************************************************!*\ + !*** external "flarum.core.compat['forum/components/Post']" ***! + \**************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = flarum.core.compat['forum/components/Post']; + +/***/ }), + +/***/ "flarum/forum/components/Search": +/*!****************************************************************!*\ + !*** external "flarum.core.compat['forum/components/Search']" ***! + \****************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = flarum.core.compat['forum/components/Search']; + +/***/ }), + +/***/ "flarum/forum/components/UserCard": +/*!******************************************************************!*\ + !*** external "flarum.core.compat['forum/components/UserCard']" ***! + \******************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = flarum.core.compat['forum/components/UserCard']; + +/***/ }), + +/***/ "flarum/forum/states/DiscussionListState": +/*!*************************************************************************!*\ + !*** external "flarum.core.compat['forum/states/DiscussionListState']" ***! + \*************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = flarum.core.compat['forum/states/DiscussionListState']; + +/***/ }), + +/***/ "flarum/forum/utils/PostControls": +/*!*****************************************************************!*\ + !*** external "flarum.core.compat['forum/utils/PostControls']" ***! + \*****************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = flarum.core.compat['forum/utils/PostControls']; + +/***/ }), + +/***/ "flarum/tags/common/helpers/tagsLabel": +/*!**********************************************************************!*\ + !*** external "flarum.core.compat['tags/common/helpers/tagsLabel']" ***! + \**********************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = flarum.core.compat['tags/common/helpers/tagsLabel']; + +/***/ }), + +/***/ "flarum/tags/common/models/Tag": +/*!***************************************************************!*\ + !*** external "flarum.core.compat['tags/common/models/Tag']" ***! + \***************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = flarum.core.compat['tags/common/models/Tag']; + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/regeneratorRuntime.js": +/*!*******************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/regeneratorRuntime.js ***! + \*******************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var _typeof = (__webpack_require__(/*! ./typeof.js */ "./node_modules/@babel/runtime/helpers/typeof.js")["default"]); +function _regeneratorRuntime() { + "use strict"; + + /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ + module.exports = _regeneratorRuntime = function _regeneratorRuntime() { + return e; + }, module.exports.__esModule = true, module.exports["default"] = module.exports; + var t, + e = {}, + r = Object.prototype, + n = r.hasOwnProperty, + o = Object.defineProperty || function (t, e, r) { + t[e] = r.value; + }, + i = "function" == typeof Symbol ? Symbol : {}, + a = i.iterator || "@@iterator", + c = i.asyncIterator || "@@asyncIterator", + u = i.toStringTag || "@@toStringTag"; + function define(t, e, r) { + return Object.defineProperty(t, e, { + value: r, + enumerable: !0, + configurable: !0, + writable: !0 + }), t[e]; + } + try { + define({}, ""); + } catch (t) { + define = function define(t, e, r) { + return t[e] = r; + }; + } + function wrap(t, e, r, n) { + var i = e && e.prototype instanceof Generator ? e : Generator, + a = Object.create(i.prototype), + c = new Context(n || []); + return o(a, "_invoke", { + value: makeInvokeMethod(t, r, c) + }), a; + } + function tryCatch(t, e, r) { + try { + return { + type: "normal", + arg: t.call(e, r) + }; + } catch (t) { + return { + type: "throw", + arg: t + }; + } + } + e.wrap = wrap; + var h = "suspendedStart", + l = "suspendedYield", + f = "executing", + s = "completed", + y = {}; + function Generator() {} + function GeneratorFunction() {} + function GeneratorFunctionPrototype() {} + var p = {}; + define(p, a, function () { + return this; + }); + var d = Object.getPrototypeOf, + v = d && d(d(values([]))); + v && v !== r && n.call(v, a) && (p = v); + var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); + function defineIteratorMethods(t) { + ["next", "throw", "return"].forEach(function (e) { + define(t, e, function (t) { + return this._invoke(e, t); + }); + }); + } + function AsyncIterator(t, e) { + function invoke(r, o, i, a) { + var c = tryCatch(t[r], t, o); + if ("throw" !== c.type) { + var u = c.arg, + h = u.value; + return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { + invoke("next", t, i, a); + }, function (t) { + invoke("throw", t, i, a); + }) : e.resolve(h).then(function (t) { + u.value = t, i(u); + }, function (t) { + return invoke("throw", t, i, a); + }); + } + a(c.arg); + } + var r; + o(this, "_invoke", { + value: function value(t, n) { + function callInvokeWithMethodAndArg() { + return new e(function (e, r) { + invoke(t, n, e, r); + }); + } + return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); + } + }); + } + function makeInvokeMethod(e, r, n) { + var o = h; + return function (i, a) { + if (o === f) throw Error("Generator is already running"); + if (o === s) { + if ("throw" === i) throw a; + return { + value: t, + done: !0 + }; + } + for (n.method = i, n.arg = a;;) { + var c = n.delegate; + if (c) { + var u = maybeInvokeDelegate(c, n); + if (u) { + if (u === y) continue; + return u; + } + } + if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { + if (o === h) throw o = s, n.arg; + n.dispatchException(n.arg); + } else "return" === n.method && n.abrupt("return", n.arg); + o = f; + var p = tryCatch(e, r, n); + if ("normal" === p.type) { + if (o = n.done ? s : l, p.arg === y) continue; + return { + value: p.arg, + done: n.done + }; + } + "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); + } + }; + } + function maybeInvokeDelegate(e, r) { + var n = r.method, + o = e.iterator[n]; + if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; + var i = tryCatch(o, e.iterator, r.arg); + if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; + var a = i.arg; + return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); + } + function pushTryEntry(t) { + var e = { + tryLoc: t[0] + }; + 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); + } + function resetTryEntry(t) { + var e = t.completion || {}; + e.type = "normal", delete e.arg, t.completion = e; + } + function Context(t) { + this.tryEntries = [{ + tryLoc: "root" + }], t.forEach(pushTryEntry, this), this.reset(!0); + } + function values(e) { + if (e || "" === e) { + var r = e[a]; + if (r) return r.call(e); + if ("function" == typeof e.next) return e; + if (!isNaN(e.length)) { + var o = -1, + i = function next() { + for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; + return next.value = t, next.done = !0, next; + }; + return i.next = i; + } + } + throw new TypeError(_typeof(e) + " is not iterable"); + } + return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { + value: GeneratorFunctionPrototype, + configurable: !0 + }), o(GeneratorFunctionPrototype, "constructor", { + value: GeneratorFunction, + configurable: !0 + }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { + var e = "function" == typeof t && t.constructor; + return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); + }, e.mark = function (t) { + return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; + }, e.awrap = function (t) { + return { + __await: t + }; + }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { + return this; + }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { + void 0 === i && (i = Promise); + var a = new AsyncIterator(wrap(t, r, n, o), i); + return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { + return t.done ? t.value : a.next(); + }); + }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { + return this; + }), define(g, "toString", function () { + return "[object Generator]"; + }), e.keys = function (t) { + var e = Object(t), + r = []; + for (var n in e) r.push(n); + return r.reverse(), function next() { + for (; r.length;) { + var t = r.pop(); + if (t in e) return next.value = t, next.done = !1, next; + } + return next.done = !0, next; + }; + }, e.values = values, Context.prototype = { + constructor: Context, + reset: function reset(e) { + if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); + }, + stop: function stop() { + this.done = !0; + var t = this.tryEntries[0].completion; + if ("throw" === t.type) throw t.arg; + return this.rval; + }, + dispatchException: function dispatchException(e) { + if (this.done) throw e; + var r = this; + function handle(n, o) { + return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; + } + for (var o = this.tryEntries.length - 1; o >= 0; --o) { + var i = this.tryEntries[o], + a = i.completion; + if ("root" === i.tryLoc) return handle("end"); + if (i.tryLoc <= this.prev) { + var c = n.call(i, "catchLoc"), + u = n.call(i, "finallyLoc"); + if (c && u) { + if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); + if (this.prev < i.finallyLoc) return handle(i.finallyLoc); + } else if (c) { + if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); + } else { + if (!u) throw Error("try statement without catch or finally"); + if (this.prev < i.finallyLoc) return handle(i.finallyLoc); + } + } + } + }, + abrupt: function abrupt(t, e) { + for (var r = this.tryEntries.length - 1; r >= 0; --r) { + var o = this.tryEntries[r]; + if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { + var i = o; + break; + } + } + i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); + var a = i ? i.completion : {}; + return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); + }, + complete: function complete(t, e) { + if ("throw" === t.type) throw t.arg; + return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; + }, + finish: function finish(t) { + for (var e = this.tryEntries.length - 1; e >= 0; --e) { + var r = this.tryEntries[e]; + if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; + } + }, + "catch": function _catch(t) { + for (var e = this.tryEntries.length - 1; e >= 0; --e) { + var r = this.tryEntries[e]; + if (r.tryLoc === t) { + var n = r.completion; + if ("throw" === n.type) { + var o = n.arg; + resetTryEntry(r); + } + return o; + } + } + throw Error("illegal catch attempt"); + }, + delegateYield: function delegateYield(e, r, n) { + return this.delegate = { + iterator: values(e), + resultName: r, + nextLoc: n + }, "next" === this.method && (this.arg = t), y; + } + }, e; +} +module.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports; + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/typeof.js": +/*!*******************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/typeof.js ***! + \*******************************************************/ +/***/ ((module) => { + +function _typeof(o) { + "@babel/helpers - typeof"; + + return module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { + return typeof o; + } : function (o) { + return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; + }, module.exports.__esModule = true, module.exports["default"] = module.exports, _typeof(o); +} +module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports; + +/***/ }), + +/***/ "./node_modules/@babel/runtime/regenerator/index.js": +/*!**********************************************************!*\ + !*** ./node_modules/@babel/runtime/regenerator/index.js ***! + \**********************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// TODO(Babel 8): Remove this file. + +var runtime = __webpack_require__(/*! ../helpers/regeneratorRuntime */ "./node_modules/@babel/runtime/helpers/regeneratorRuntime.js")(); +module.exports = runtime; + +// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736= +try { + regeneratorRuntime = runtime; +} catch (accidentalStrictMode) { + if (typeof globalThis === "object") { + globalThis.regeneratorRuntime = runtime; + } else { + Function("r", "regeneratorRuntime = r")(runtime); + } +} + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _asyncToGenerator) +/* harmony export */ }); +function asyncGeneratorStep(n, t, e, r, o, a, c) { + try { + var i = n[a](c), + u = i.value; + } catch (n) { + return void e(n); + } + i.done ? t(u) : Promise.resolve(u).then(r, o); +} +function _asyncToGenerator(n) { + return function () { + var t = this, + e = arguments; + return new Promise(function (r, o) { + var a = n.apply(t, e); + function _next(n) { + asyncGeneratorStep(a, r, o, _next, _throw, "next", n); + } + function _throw(n) { + asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); + } + _next(void 0); + }); + }; +} + + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/extends.js": +/*!************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/extends.js ***! + \************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _extends) +/* harmony export */ }); +function _extends() { + return _extends = Object.assign ? Object.assign.bind() : function (n) { + for (var e = 1; e < arguments.length; e++) { + var t = arguments[e]; + for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); + } + return n; + }, _extends.apply(null, arguments); +} + + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js": +/*!******************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js ***! + \******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _inheritsLoose) +/* harmony export */ }); +/* harmony import */ var _setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setPrototypeOf.js */ "./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js"); + +function _inheritsLoose(t, o) { + t.prototype = Object.create(o.prototype), t.prototype.constructor = t, (0,_setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__["default"])(t, o); +} + + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/readOnlyError.js": +/*!******************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/readOnlyError.js ***! + \******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _readOnlyError) +/* harmony export */ }); +function _readOnlyError(r) { + throw new TypeError('"' + r + '" is read-only'); +} + + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js": +/*!*******************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ _setPrototypeOf) +/* harmony export */ }); +function _setPrototypeOf(t, e) { + return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { + return t.__proto__ = e, t; + }, _setPrototypeOf(t, e); +} + + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (exports, definition) => { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be in strict mode. +(() => { +"use strict"; +/*!******************!*\ + !*** ./forum.ts ***! + \******************/ +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ components: () => (/* reexport safe */ _src_forum__WEBPACK_IMPORTED_MODULE_0__.components), +/* harmony export */ extend: () => (/* reexport safe */ _src_forum__WEBPACK_IMPORTED_MODULE_0__.extend) +/* harmony export */ }); +/* harmony import */ var _src_forum__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/forum */ "./src/forum/index.ts"); + +})(); + +module.exports = __webpack_exports__; +/******/ })() +; //# sourceMappingURL=forum.js.map \ No newline at end of file diff --git a/js/dist/forum.js.map b/js/dist/forum.js.map index b3c5834..455dd85 100644 --- a/js/dist/forum.js.map +++ b/js/dist/forum.js.map @@ -1 +1 @@ -{"version":3,"file":"forum.js","mappings":"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","sources":["webpack://@fof/best-answer/external assign \"flarum.extensions['fof-user-directory']\"","webpack://@fof/best-answer/./node_modules/@babel/runtime/helpers/regeneratorRuntime.js","webpack://@fof/best-answer/./node_modules/@babel/runtime/helpers/typeof.js","webpack://@fof/best-answer/./node_modules/@babel/runtime/regenerator/index.js","webpack://@fof/best-answer/webpack/bootstrap","webpack://@fof/best-answer/webpack/runtime/compat get default export","webpack://@fof/best-answer/webpack/runtime/define property getters","webpack://@fof/best-answer/webpack/runtime/hasOwnProperty shorthand","webpack://@fof/best-answer/webpack/runtime/make namespace object","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/app']\"","webpack://@fof/best-answer/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://@fof/best-answer/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/components/Notification']\"","webpack://@fof/best-answer/./src/forum/components/SelectBestAnswerNotification.ts","webpack://@fof/best-answer/external root \"flarum.core.compat['common/extend']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/components/Button']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/utils/PostControls']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/components/DiscussionPage']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/components/CommentPost']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/utils/extractText']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/components/Post']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/Component']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/helpers/icon']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/helpers/humanTime']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/components/Link']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/utils/ItemList']\"","webpack://@fof/best-answer/./src/forum/components/SelectBestAnswerItem.tsx","webpack://@fof/best-answer/external root \"flarum.core.compat['common/helpers/username']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/helpers/userOnline']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/utils/classList']\"","webpack://@fof/best-answer/./src/forum/components/BestAnswerFooterPreview.tsx","webpack://@fof/best-answer/./src/forum/addBestAnswerView.tsx","webpack://@fof/best-answer/external root \"flarum.core.compat['common/models/Discussion']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/components/Badge']\"","webpack://@fof/best-answer/./src/forum/components/BestAnswerBadge.tsx","webpack://@fof/best-answer/./src/forum/components/AwardedBestAnswerNotification.ts","webpack://@fof/best-answer/./src/forum/components/BestAnswerInDiscussionNotification.ts","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/components/NotificationGrid']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/components/UserCard']\"","webpack://@fof/best-answer/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://@fof/best-answer/./src/common/addBestAnswerCountSort.ts","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/components/Search']\"","webpack://@fof/best-answer/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://@fof/best-answer/external root \"flarum.core.compat['common/components/LinkButton']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/helpers/highlight']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['tags/common/helpers/tagsLabel']\"","webpack://@fof/best-answer/./src/forum/components/SolutionSearchItem.tsx","webpack://@fof/best-answer/./src/forum/components/SolutionSearchSource.tsx","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/components/DiscussionsSearchSource']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/components/IndexPage']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/components/Dropdown']\"","webpack://@fof/best-answer/./src/forum/components/SolvedFilter.tsx","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/states/DiscussionListState']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/components/DiscussionComposer']\"","webpack://@fof/best-answer/./src/forum/components/index.ts","webpack://@fof/best-answer/external root \"flarum.core.compat['common/extenders']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['tags/common/models/Tag']\"","webpack://@fof/best-answer/./src/common/extend.ts","webpack://@fof/best-answer/external root \"flarum.core.compat['common/models/Post']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/models/User']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/Model']\"","webpack://@fof/best-answer/./src/forum/extend.ts","webpack://@fof/best-answer/./src/forum/index.ts","webpack://@fof/best-answer/./src/forum/addBestAnswerAction.tsx","webpack://@fof/best-answer/./src/forum/addAnsweredBadge.tsx","webpack://@fof/best-answer/./src/forum/addBestAnswerCountToUsers.tsx","webpack://@fof/best-answer/./src/forum/extenders/extendNotifications.ts","webpack://@fof/best-answer/./src/forum/extenders/extendSearch.ts","webpack://@fof/best-answer/./src/forum/extenders/extendDiscussionSearchSource.tsx","webpack://@fof/best-answer/./src/forum/extenders/extendIndexPage.tsx","webpack://@fof/best-answer/./src/forum/extenders/extendDiscussionListState.tsx","webpack://@fof/best-answer/./src/forum/extenders/extendDiscussionComposer.tsx"],"sourcesContent":["module.exports = flarum.extensions['fof-user-directory'];","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = \"function\" == typeof Symbol ? Symbol : {},\n a = i.iterator || \"@@iterator\",\n c = i.asyncIterator || \"@@asyncIterator\",\n u = i.toStringTag || \"@@toStringTag\";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, \"\");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, \"_invoke\", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: \"normal\",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: \"throw\",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = \"suspendedStart\",\n l = \"suspendedYield\",\n f = \"executing\",\n s = \"completed\",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n [\"next\", \"throw\", \"return\"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if (\"throw\" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) {\n invoke(\"next\", t, i, a);\n }, function (t) {\n invoke(\"throw\", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke(\"throw\", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, \"_invoke\", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw Error(\"Generator is already running\");\n if (o === s) {\n if (\"throw\" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if (\"normal\" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = \"normal\", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || \"\" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) {\n var e = \"function\" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () {\n return this;\n }), define(g, \"toString\", function () {\n return \"[object Generator]\";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if (\"throw\" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if (\"root\" === i.tryLoc) return handle(\"end\");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, \"catchLoc\"),\n u = n.call(i, \"finallyLoc\");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw Error(\"try statement without catch or finally\");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if (\"throw\" === t.type) throw t.arg;\n return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n \"catch\": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if (\"throw\" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, \"next\" === this.method && (this.arg = t), y;\n }\n }, e;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return module.exports = _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 }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","// 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](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.core.compat['forum/app'];","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/Notification'];","import type Discussion from 'flarum/common/models/Discussion';\nimport app from 'flarum/forum/app';\nimport Notification from 'flarum/forum/components/Notification';\n\nexport default class SelectBestAnswerNotification extends Notification {\n icon() {\n return 'fas fa-comment-dots';\n }\n\n href() {\n const notification = this.attrs.notification;\n const discussion = notification.subject() as Discussion;\n\n return app.route.discussion(discussion);\n }\n\n content() {\n return app.translator.trans('fof-best-answer.forum.notification.content');\n }\n\n excerpt() {\n return null;\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/extend'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Button'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/utils/PostControls'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/DiscussionPage'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/CommentPost'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/extractText'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/Post'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/Component'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/icon'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/humanTime'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Link'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/ItemList'];","import app from 'flarum/forum/app';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport icon from 'flarum/common/helpers/icon';\nimport humanTime from 'flarum/common/helpers/humanTime';\nimport Link from 'flarum/common/components/Link';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport Discussion from 'flarum/common/models/Discussion';\nimport Mithril from 'mithril';\nimport Post from 'flarum/common/models/Post';\n\nexport interface ISelectBestAnswerItemAttrs extends ComponentAttrs {\n post: Post;\n discussion: Discussion;\n}\n\nexport default class SelectBestAnswerItem extends Component {\n post!: Post;\n discussion!: Discussion;\n\n oninit(vnode: Mithril.Vnode) {\n super.oninit(vnode);\n\n this.post = this.attrs.post;\n this.discussion = this.attrs.discussion;\n }\n\n view() {\n return
  • {this.items().toArray()}
  • ;\n }\n\n getSetTime(discussion: Discussion) {\n if (!discussion.bestAnswerSetAt?.()) {\n return;\n }\n const bestAnswerSetAt = discussion.bestAnswerSetAt?.();\n if (!bestAnswerSetAt) {\n return;\n }\n return humanTime(bestAnswerSetAt);\n }\n\n items(): ItemList {\n const items = new ItemList();\n\n items.add(\n 'post',\n this.post ? (\n \n {icon('fas fa-check')}\n {app.translator.trans('fof-best-answer.forum.best_answer_button')}\n \n ) : (\n \n {icon('fas fa-check')}\n {app.translator.trans('fof-best-answer.forum.best_answer_button')}\n \n )\n );\n\n const bestAnswerUser = this.discussion.bestAnswerUser?.();\n\n bestAnswerUser &&\n items.add(\n 'user',\n \n {app.translator.trans('fof-best-answer.forum.best_answer_label', {\n user: this.discussion.bestAnswerUser?.(),\n time_set: this.getSetTime(this.discussion),\n a: m.route.set(app.route.user(bestAnswerUser))} />,\n })}\n \n );\n\n return items;\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/username'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/userOnline'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/classList'];","import app from 'flarum/forum/app';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport Mithril from 'mithril';\nimport username from 'flarum/common/helpers/username';\nimport userOnline from 'flarum/common/helpers/userOnline';\nimport Link from 'flarum/common/components/Link';\nimport classList from 'flarum/common/utils/classList';\nimport SelectBestAnswerItem from './SelectBestAnswerItem';\nimport Post from 'flarum/common/models/Post';\nimport User from 'flarum/common/models/User';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport Discussion from 'flarum/common/models/Discussion';\nimport humanTime from 'flarum/common/helpers/humanTime';\n\nexport interface BestAnswerFooterPreviewAttrs extends ComponentAttrs {\n post: Post;\n user: User;\n discussion: Discussion;\n}\n\nexport default class BestAnswerFooterPreview extends Component {\n user!: User;\n post!: Post;\n discussion!: Discussion;\n\n oninit(vnode: Mithril.Vnode) {\n super.oninit(vnode);\n\n this.user = this.attrs.user;\n this.post = this.attrs.post;\n this.discussion = this.attrs.discussion;\n }\n\n view() {\n const maxLines = app.forum.attribute('fof-best-answer.show_max_lines');\n\n return (\n
    app.current.get('stream').goToNumber(this.post.number())}>\n
    \n
      {this.headerItems().toArray()}
    \n
    \n
    0 && 'Post-body--truncate')} style={{ '--max-lines': maxLines }}>\n {m.trust(this.postContent())}\n
    \n
    \n );\n }\n\n postContent() {\n return this.post.contentHtml();\n }\n\n /**\n * To maintain compatibility with existing styling, custom themes, etc, each item here must be\n * wrapped in a
  • element.\n *\n * @todo: Remove this requirement for Flarum 2.0\n */\n headerItems(): ItemList {\n const items = new ItemList();\n\n items.add('user', this.userItem()), 100;\n items.add('meta', this.metaItem()), 90;\n items.add('bestAnswer', , -100);\n\n return items;\n }\n\n userItem(): Mithril.Children {\n return (\n
  • \n
    \n {this.user && userOnline(this.user)}\n

    {this.user ? {username(this.user)} : username(this.user)}

    \n
    \n
  • \n );\n }\n\n metaItem(): Mithril.Children {\n const post = this.post;\n return (\n
  • \n {humanTime(post.createdAt())}\n
  • \n );\n }\n}\n","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport CommentPost from 'flarum/forum/components/CommentPost';\nimport PostComponent from 'flarum/forum/components/Post';\nimport SelectBestAnswerItem from './components/SelectBestAnswerItem';\nimport DiscussionPage from 'flarum/forum/components/DiscussionPage';\nimport Button from 'flarum/common/components/Button';\nimport BestAnswerFooterPreview from './components/BestAnswerFooterPreview';\n\nexport default () => {\n extend(CommentPost.prototype, 'headerItems', function (items) {\n const post = this.attrs.post;\n const discussion = post.discussion();\n\n if (discussion?.hasBestAnswer() && discussion.bestAnswerPost() && discussion.bestAnswerPost()?.id() === post.id() && !post.isHidden()) {\n items.add('isBestAnswer', , -100);\n }\n });\n\n extend(CommentPost.prototype, 'footerItems', function (items) {\n const thisPost = this.attrs.post;\n const discussion = thisPost.discussion();\n const post = discussion.hasBestAnswer() && discussion.bestAnswerPost();\n\n if (post && !post.isHidden() && thisPost.number() === 1 && !thisPost.isHidden()) {\n const user = post.user();\n\n items.add('bestAnswerPost', , -10);\n }\n });\n\n extend(PostComponent.prototype, 'elementAttrs', function (elementAttrs) {\n const post = this.attrs.post;\n const discussion = post.discussion();\n\n if (discussion?.hasBestAnswer() && discussion.bestAnswerPost() && discussion.bestAnswerPost().id() === post.id() && !post.isHidden()) {\n elementAttrs.className ? (elementAttrs.className += ' Post--bestAnswer') : (elementAttrs.className = 'Post--bestAnswer');\n }\n });\n\n extend(DiscussionPage.prototype, 'sidebarItems', function (items) {\n if (!app.forum.attribute('bestAnswerDiscussionSidebarJumpButton')) return;\n\n // @ts-ignore\n const discussion = this.discussion;\n\n if (discussion === null) return;\n\n const post = discussion.hasBestAnswer() && discussion.bestAnswerPost();\n\n if (post && !post.isHidden() && post.number() !== 1 && !discussion.bestAnswerPost()?.isHidden()) {\n items.add(\n 'jumpToBestAnswer',\n app.current.get('stream').goToNumber(post.number())}\n aria-label={app.translator.trans('fof-best-answer.forum.discussion.jump_to_best_answer_button')}\n >\n {app.translator.trans('fof-best-answer.forum.discussion.jump_to_best_answer_button')}\n ,\n 90\n );\n }\n });\n};\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/models/Discussion'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Badge'];","import Badge, { IBadgeAttrs } from 'flarum/common/components/Badge';\nimport app from 'flarum/forum/app';\nimport extractText from 'flarum/common/utils/extractText';\n\nexport default class BestAnswerBadge extends Badge {\n static initAttrs(attrs: IBadgeAttrs) {\n attrs.type = 'bestAnswer';\n attrs.icon = 'fas fa-check';\n attrs.label = extractText(app.translator.trans('fof-best-answer.forum.answered_badge'));\n }\n}\n","import type Discussion from 'flarum/common/models/Discussion';\nimport app from 'flarum/forum/app';\nimport Notification from 'flarum/forum/components/Notification';\n\nexport default class AwardedBestAnswerNotification extends Notification {\n icon() {\n return 'fas fa-check';\n }\n\n href() {\n const notification = this.attrs.notification;\n const discussion = notification.subject() as Discussion;\n\n return app.route.discussion(discussion);\n }\n\n content() {\n const user = this.attrs.notification.fromUser();\n return app.translator.trans('fof-best-answer.forum.notification.awarded', {\n user: user,\n });\n }\n\n excerpt() {\n return null;\n }\n}\n","import type Discussion from 'flarum/common/models/Discussion';\nimport app from 'flarum/forum/app';\nimport Notification from 'flarum/forum/components/Notification';\n\nexport default class BestAnswerInDiscussionNotification extends Notification {\n icon() {\n return 'fas fa-check';\n }\n\n href() {\n const notification = this.attrs.notification;\n const discussion = notification.subject() as Discussion;\n\n return app.route.discussion(discussion);\n }\n\n content() {\n const user = this.attrs.notification.fromUser();\n return app.translator.trans('fof-best-answer.forum.notification.best_answer_in_discussion', {\n user: user,\n });\n }\n\n excerpt() {\n return null;\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/NotificationGrid'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/UserCard'];","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","import { override } from 'flarum/common/extend';\n\nexport default () => {\n const FoFUserDirectory = require('@fof-user-directory');\n\n if (!FoFUserDirectory) return;\n\n override(FoFUserDirectory.SortMap.prototype, 'sortMap', (map) => ({\n ...map(),\n most_best_answers: '-bestAnswerCount',\n least_best_answers: 'bestAnswerCount',\n }));\n};\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/Search'];","function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\nexport { _asyncToGenerator as default };","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/LinkButton'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/highlight'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['tags/common/helpers/tagsLabel'];","import app from 'flarum/forum/app';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport Link from 'flarum/common/components/Link';\nimport highlight from 'flarum/common/helpers/highlight';\nimport type Discussion from 'flarum/common/models/Discussion';\nimport type Post from 'flarum/common/models/Post';\nimport type Mithril from 'mithril';\nimport tagsLabel from 'flarum/tags/common/helpers/tagsLabel';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport type Tag from 'flarum/tags/common/models/Tag';\n\nexport interface SolutionSearchItemAttrs extends ComponentAttrs {\n query: string;\n discussion: Discussion;\n bestAnswerPost: Post;\n mostRelevantPost: Post;\n tags: false | (Tag | undefined)[];\n}\n\nexport default class SolutionSearchItem extends Component {\n query!: string;\n discussion!: Discussion;\n bestAnswerPost!: Post | null | undefined;\n mostRelevantPost!: Post | null | undefined;\n tags!: false | (Tag | undefined)[];\n\n oninit(vnode: Mithril.Vnode) {\n super.oninit(vnode);\n\n this.query = this.attrs.query;\n this.discussion = this.attrs.discussion;\n this.bestAnswerPost = this.attrs.bestAnswerPost;\n this.mostRelevantPost = this.attrs.mostRelevantPost;\n this.tags = this.attrs.tags;\n }\n\n view() {\n return (\n
  • \n \n {this.viewItems().toArray()}\n \n
  • \n );\n }\n\n discussionTitle() {\n return this.discussion.title();\n }\n\n bestAnswerContent() {\n return this.bestAnswerPost?.contentPlain();\n }\n\n mostRelevantContent() {\n return this.mostRelevantPost?.contentPlain();\n }\n\n viewItems(): ItemList {\n const items = new ItemList();\n\n app.forum.attribute('showTagsInSearchResults') &&\n items.add('tags',
    {tagsLabel(this.tags)}
    , 100);\n\n items.add('discussion-title',
    {highlight(this.discussionTitle(), this.query)}
    , 90);\n\n !!this.mostRelevantPost &&\n items.add(\n 'most-relevant',\n
    {highlight(this.mostRelevantContent() ?? '', this.query, 100)}
    ,\n 80\n );\n\n !!this.bestAnswerPost &&\n items.add(\n 'best-answer',\n
    \n {highlight(this.bestAnswerContent() ?? '', this.query, 100)}\n
    ,\n 70\n );\n\n return items;\n }\n}\n","import app from 'flarum/forum/app';\nimport Discussion from 'flarum/common/models/Discussion';\nimport LinkButton from 'flarum/common/components/LinkButton';\nimport { SearchSource } from 'flarum/forum/components/Search';\nimport type Mithril from 'mithril';\nimport BestAnswerBadge from './BestAnswerBadge';\nimport SolutionSearchItem from './SolutionSearchItem';\n\nexport default class SolutionSearchSource implements SearchSource {\n protected results = new Map();\n queryString: string | null = null;\n\n async search(query: string): Promise {\n query = query.toLowerCase();\n\n this.results.set(query, []);\n\n this.setQueryString(query);\n\n const params = {\n filter: { q: this.queryString || query },\n page: { limit: this.limit() },\n include: this.includes().join(','),\n };\n\n return app.store.find('discussions', params).then((results) => {\n this.results.set(query, results);\n m.redraw();\n });\n }\n\n view(query: string): Array {\n query = query.toLowerCase();\n\n this.setQueryString(query);\n\n const results = (this.results.get(query) || []).map((discussion) => {\n const bestAnswerPost = discussion.bestAnswerPost();\n const mostRelevantPost = discussion.mostRelevantPost();\n const tags = discussion.tags();\n\n return (\n \n );\n }) as Array;\n\n return [\n
  • \n {app.translator.trans('fof-best-answer.forum.search.discussions_solutions_heading')}\n
  • ,\n
  • \n \n {app.translator.trans('fof-best-answer.forum.search.all_discussions_solutions_button', { query })}\n \n
  • ,\n ...results,\n ];\n }\n\n includes(): string[] {\n return ['mostRelevantPost', 'bestAnswerPost', 'tags'];\n }\n\n limit(): number {\n return 3;\n }\n\n queryMutators(): string[] {\n return ['is:solved'];\n }\n\n setQueryString(query: string): void {\n this.queryString = query + ' ' + this.queryMutators().join(' ');\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/DiscussionsSearchSource'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/IndexPage'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Dropdown'];","import app from 'flarum/forum/app';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport Dropdown from 'flarum/common/components/Dropdown';\nimport Button from 'flarum/common/components/Button';\nimport type Tag from 'flarum/tags/common/models/Tag';\n\nexport interface SolvedFilterAttrs extends ComponentAttrs {\n currentTag?: Tag;\n alwaysShow?: boolean;\n}\n\nexport default class SolvedFilter extends Component {\n view() {\n if (!this.shouldShowFilter()) return null;\n\n const selected = app.discussions.bestAnswer as unknown as number;\n const options = ['all', 'solved', 'unsolved'];\n\n return Dropdown.component(\n {\n buttonClassName: 'Button',\n label: app.translator.trans(\n `fof-best-answer.forum.filter.${options[selected] || Object.keys(options).map((key) => options[Number(key)])[0]}_label`\n ),\n accessibleToggleLabel: app.translator.trans('fof-best-answer.forum.filter.accessible_label'),\n },\n Object.keys(options).map((value) => {\n const label = options[Number(value)];\n const active = (selected || Object.keys(options)[0]) === value;\n\n return Button.component(\n {\n icon: active ? 'fas fa-check' : true,\n active: active,\n onclick: () => {\n app.discussions.bestAnswer = value;\n if (value === '0') {\n delete app.discussions.bestAnswer;\n }\n this.reloadDiscussions();\n },\n },\n app.translator.trans(`fof-best-answer.forum.filter.${label}_label`)\n );\n })\n );\n }\n\n reloadDiscussions(): void {\n app.discussions.refresh();\n }\n\n shouldShowFilter() {\n const { currentTag, alwaysShow } = this.attrs;\n\n if (alwaysShow) return true;\n\n if (!app.forum.attribute('showBestAnswerFilterUi')) return false;\n\n if (!currentTag?.isQnA?.()) {\n if (app.discussions.bestAnswer) {\n delete app.discussions.bestAnswer;\n app.discussions.refresh();\n }\n return false;\n }\n\n return true;\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/states/DiscussionListState'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/DiscussionComposer'];","import AwardedBestAnswerNotification from './AwardedBestAnswerNotification';\nimport BestAnswerBadge from './BestAnswerBadge';\nimport BestAnswerFooterPreview from './BestAnswerFooterPreview';\nimport BestAnswerInDiscussionNotification from './BestAnswerInDiscussionNotification';\nimport SelectBestAnswerItem from './SelectBestAnswerItem';\nimport SelectBestAnswerNotification from './SelectBestAnswerNotification';\nimport SolutionSearchItem from './SolutionSearchItem';\nimport SolutionSearchSource from './SolutionSearchSource';\nimport SolvedFilter from './SolvedFilter';\n\nexport const components = {\n SelectBestAnswerItem,\n SolutionSearchSource,\n BestAnswerFooterPreview,\n AwardedBestAnswerNotification,\n BestAnswerBadge,\n BestAnswerInDiscussionNotification,\n SelectBestAnswerNotification,\n SolutionSearchItem,\n SolvedFilter,\n};\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/extenders'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['tags/common/models/Tag'];","import Extend from 'flarum/common/extenders';\nimport Tag from 'flarum/tags/common/models/Tag';\n\nexport default [\n new Extend.Model(Tag) //\n .attribute('isQnA')\n .attribute('reminders'),\n];\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/models/Post'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/models/User'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/Model'];","import Discussion from 'flarum/common/models/Discussion';\nimport commonExtend from '../common/extend';\nimport Extend from 'flarum/common/extenders';\nimport Post from 'flarum/common/models/Post';\nimport User from 'flarum/common/models/User';\nimport Model from 'flarum/common/Model';\n\nexport default [\n ...commonExtend,\n\n new Extend.Model(Discussion) //\n .hasOne('bestAnswerPost')\n .hasOne('bestAnswerUser')\n .attribute('hasBestAnswer')\n .attribute('bestAnswerSetAt', Model.transformDate),\n\n new Extend.Model(User) //\n .attribute('bestAnswerCount'),\n\n new Extend.Model(Post) //\n .attribute('canSelectBestAnswer'),\n];\n","import app from 'flarum/forum/app';\nimport SelectBestAnswerNotification from './components/SelectBestAnswerNotification';\nimport addBestAnswerAction from './addBestAnswerAction';\nimport addBestAnswerView from './addBestAnswerView';\nimport addAnsweredBadge from './addAnsweredBadge';\nimport AwardedBestAnswerNotification from './components/AwardedBestAnswerNotification';\nimport BestAnswerInDiscussionNotification from './components/BestAnswerInDiscussionNotification';\nimport extendNotifications from './extenders/extendNotifications';\nimport addBestAnswerCountToUsers from './addBestAnswerCountToUsers';\nimport addBestAnswerCountSort from '../common/addBestAnswerCountSort';\nimport extendSearch from './extenders/extendSearch';\nimport extendDiscussionsSearchSource from './extenders/extendDiscussionSearchSource';\nimport extendIndexPage from './extenders/extendIndexPage';\nimport extendDiscussionListState from './extenders/extendDiscussionListState';\nimport extendDiscussionComposer from './extenders/extendDiscussionComposer';\n\nexport * from './components';\n\nexport { default as extend } from './extend';\n\napp.initializers.add('fof/best-answer', () => {\n app.notificationComponents.selectBestAnswer = SelectBestAnswerNotification;\n app.notificationComponents.awardedBestAnswer = AwardedBestAnswerNotification;\n app.notificationComponents.bestAnswerInDiscussion = BestAnswerInDiscussionNotification;\n\n addAnsweredBadge();\n addBestAnswerAction();\n addBestAnswerView();\n addBestAnswerCountToUsers();\n addBestAnswerCountSort();\n\n extendNotifications();\n extendSearch();\n extendDiscussionsSearchSource();\n extendIndexPage();\n extendDiscussionListState();\n extendDiscussionComposer();\n});\n","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport Button from 'flarum/common/components/Button';\nimport PostControls from 'flarum/forum/utils/PostControls';\nimport DiscussionPage from 'flarum/forum/components/DiscussionPage';\nimport CommentPost from 'flarum/forum/components/CommentPost';\nimport Discussion from 'flarum/common/models/Discussion';\nimport Post from 'flarum/common/models/Post';\nimport extractText from 'flarum/common/utils/extractText';\n\nexport default function addBestAnswerAction() {\n const ineligible = (discussion: Discussion, post: Post) => {\n return post.isHidden() || post.number() === 1 || !post.canSelectBestAnswer() || !app.session.user;\n };\n\n const isThisBestAnswer = (discussion: Discussion, post: Post): boolean => {\n const bestAnswerPost = discussion.bestAnswerPost();\n const hasBestAnswer = discussion.hasBestAnswer();\n return hasBestAnswer !== undefined && hasBestAnswer && bestAnswerPost !== null && bestAnswerPost.id() === post.id();\n };\n\n const actionLabel = (isBestAnswer: boolean): string => {\n return extractText(app.translator.trans(isBestAnswer ? 'fof-best-answer.forum.remove_best_answer' : 'fof-best-answer.forum.this_best_answer'));\n };\n\n const saveDiscussion = (discussion: Discussion, isBestAnswer: boolean, post: Post) =>\n discussion\n .save(\n {\n bestAnswerPostId: isBestAnswer ? post.id() : 0,\n bestAnswerUserId: app.session.user?.id(),\n relationships: isBestAnswer ? { bestAnswerPost: post, bestAnswerUser: app.session.user } : { bestAnswerPost: null },\n },\n {\n params: {\n include: 'tags',\n },\n }\n )\n .then(() => {\n if (!isBestAnswer) {\n if (discussion.data.relationships) {\n delete discussion.data.relationships.bestAnswerPost;\n delete discussion.data.relationships.bestAnswerUser;\n }\n }\n\n if (app.current.matches(DiscussionPage)) {\n app.current.get('stream').update();\n }\n\n m.redraw();\n\n if (isBestAnswer) {\n m.route.set(app.route.discussion(discussion));\n }\n });\n\n extend(PostControls, 'moderationControls', function (items, post) {\n if (app.forum.attribute('useAlternativeBestAnswerUi')) return;\n\n const discussion = post.discussion();\n let isBestAnswer = isThisBestAnswer(discussion, post);\n\n post.pushAttributes({ isBestAnswer });\n\n if (post.contentType() !== 'comment') return;\n\n if (ineligible(discussion, post) || !app.current.matches(DiscussionPage)) return;\n\n items.add(\n 'bestAnswer',\n {\n isBestAnswer = !isBestAnswer;\n\n saveDiscussion(discussion, isBestAnswer, post).finally(() => {\n isBestAnswer = isThisBestAnswer(discussion, post);\n });\n }}\n >\n {actionLabel(isBestAnswer)}\n \n );\n });\n\n extend(CommentPost.prototype, 'actionItems', function (items) {\n if (!app.forum.attribute('useAlternativeBestAnswerUi')) return;\n\n const post = this.attrs.post;\n const discussion = this.attrs.post.discussion();\n let isBestAnswer = isThisBestAnswer(discussion, post);\n let hasBestAnswer = discussion.bestAnswerPost() !== null;\n\n post.pushAttributes({ isBestAnswer });\n\n if (ineligible(discussion, post) || !app.current.matches(DiscussionPage)) return;\n\n items.add(\n 'bestAnswer',\n {\n hasBestAnswer = !hasBestAnswer;\n isBestAnswer = !isBestAnswer;\n\n saveDiscussion(discussion, isBestAnswer, post).finally(() => {\n hasBestAnswer = !!discussion.hasBestAnswer() && discussion.bestAnswerPost() !== null;\n isBestAnswer = isThisBestAnswer(discussion, post);\n });\n }}\n >\n {actionLabel(isBestAnswer)}\n \n );\n });\n}\n","import { extend } from 'flarum/common/extend';\nimport Discussion from 'flarum/common/models/Discussion';\nimport BestAnswerBadge from './components/BestAnswerBadge';\n\nexport default function () {\n extend(Discussion.prototype, 'badges', function (this: Discussion, items) {\n if (this.hasBestAnswer() && !items.has('hidden')) {\n items.add('bestAnswer', );\n }\n });\n}\n","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport UserCard from 'flarum/forum/components/UserCard';\nimport icon from 'flarum/common/helpers/icon';\n\nimport type Mithril from 'mithril';\nimport type User from 'flarum/common/models/User';\n\nexport default function addBestAnswerCountToUsers() {\n extend(UserCard.prototype, 'infoItems', function (items: ItemList) {\n // @ts-expect-error\n const user = this.attrs.user as User;\n\n items.add(\n 'best-answer-count',\n \n {icon('fas fa-check')}\n {app.translator.trans('fof-best-answer.forum.user.best-answer-count', {\n count: user.bestAnswerCount(),\n })}\n ,\n 55\n );\n });\n}\n","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport NotificationGrid from 'flarum/forum/components/NotificationGrid';\nimport type Mithril from 'mithril';\n\nexport default function () {\n extend(NotificationGrid.prototype, 'notificationTypes', function (items: ItemList<{ name: string; icon: string; label: Mithril.Children }>) {\n items.add('awardedBestAnswer', {\n name: 'awardedBestAnswer',\n icon: 'fas fa-check',\n label: app.translator.trans('fof-best-answer.forum.notification.preferences.awarded_best_answer'),\n });\n items.add('bestAnswerInDiscussion', {\n name: 'bestAnswerInDiscussion',\n icon: 'fas fa-check',\n label: app.translator.trans('fof-best-answer.forum.notification.preferences.best_answer_in_discussion'),\n });\n items.add('selectBestAnswer', {\n name: 'selectBestAnswer',\n icon: 'fas fa-stopwatch',\n label: app.translator.trans('fof-best-answer.forum.notification.preferences.select_best_answer'),\n });\n });\n}\n","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport Search, { SearchSource } from 'flarum/forum/components/Search';\nimport SolutionSearchSource from '../components/SolutionSearchSource';\n\nexport default function extendSearch() {\n extend(Search.prototype, 'sourceItems', function (items: ItemList) {\n if (app.forum.attribute('solutionSearchEnabled')) {\n items.add('solution', new SolutionSearchSource(), 110);\n }\n });\n}\n","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport DiscussionsSearchSource from 'flarum/forum/components/DiscussionsSearchSource';\n\nexport default function extendDiscussionsSearchSource() {\n extend(DiscussionsSearchSource.prototype, 'queryMutators', function (mutators: string[]) {\n // This will only apply when using flarum/core 1.8.6 or newer\n if (app.forum.attribute('removeSolutionResultsFromMainSearch')) {\n mutators.push('-is:solved');\n }\n });\n}\n","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport IndexPage from 'flarum/forum/components/IndexPage';\nimport SolvedFilter from '../components/SolvedFilter';\nimport type Tag from 'flarum/tags/common/models/Tag';\n\nexport default function extendIndexPage() {\n extend(IndexPage.prototype, 'sidebarItems', function (items) {\n const tag = this.currentTag();\n\n if (!tag?.isQnA?.()) return;\n\n const canStartDiscussion = app.forum.attribute('canStartDiscussion') || !app.session.user;\n\n if (!items.has('newDiscussion')) return;\n\n const cta = items.get('newDiscussion');\n cta.children = app.translator.trans(\n canStartDiscussion ? 'fof-best-answer.forum.index.ask_question' : 'fof-best-answer.forum.index.cannot_ask_question'\n );\n\n if (items.has('startDiscussion')) {\n items.setContent('startDiscussion', cta);\n }\n });\n\n extend(IndexPage.prototype, 'viewItems', function (items) {\n const currentTag: Tag | undefined = this.currentTag();\n\n if (!currentTag) return;\n\n items.add('solved-filter', );\n });\n}\n","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport DiscussionListState from 'flarum/forum/states/DiscussionListState';\nimport type { PaginatedListParams } from 'flarum/common/states/PaginatedListState';\n\nexport default function extendDiscussionListState() {\n extend(DiscussionListState.prototype, 'requestParams', function (params: PaginatedListParams) {\n if (app.discussions.bestAnswer) {\n const negate = app.discussions.bestAnswer === '2';\n const prepend = negate ? '-' : '';\n\n if (!params.filter) {\n params.filter = {};\n }\n\n params.filter[`${prepend}solved-discussions`] = 'true';\n\n if (params.filter.q) {\n params.filter.q += ` ${prepend}is:solved`;\n }\n }\n });\n}\n","import { extend } from 'flarum/common/extend';\nimport app from 'flarum/forum/app';\nimport DiscussionComposer from 'flarum/forum/components/DiscussionComposer';\nimport type Tag from 'flarum/tags/common/models/Tag';\n\nexport default function extendDiscussionComposer() {\n extend(DiscussionComposer.prototype, 'headerItems', function (items) {\n const tags = this.composer.fields.tags as Tag[];\n if (tags === undefined) return;\n\n const qna = tags.some((t) => t.isQnA());\n\n if (!qna) return;\n\n // @ts-expect-error\n this.attrs.titlePlaceholder = app.translator.trans('fof-best-answer.forum.composer.titlePlaceholder');\n\n if (items.has('discussionTitle')) {\n items.setContent(\n 'discussionTitle',\n

    \n \n

    \n );\n }\n });\n}\n"],"names":["module","exports","flarum","extensions","_typeof","require","_regeneratorRuntime","e","__esModule","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","this","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","delegateYield","runtime","regeneratorRuntime","accidentalStrictMode","globalThis","Function","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","getter","definition","key","get","obj","prop","core","compat","_setPrototypeOf","bind","_inheritsLoose","SelectBestAnswerNotification","_Notification","apply","arguments","_proto","icon","href","discussion","attrs","notification","subject","app","content","trans","excerpt","Notification","SelectBestAnswerItem","_Component","_this","_len","args","Array","_key","concat","post","oninit","vnode","view","m","className","items","toArray","getSetTime","bestAnswerSetAt","humanTime","_this$discussion$best","_this$discussion","_this$discussion$best2","_this$discussion2","ItemList","add","Link","number","bestAnswerUser","user","time_set","onclick","route","set","Component","BestAnswerFooterPreview","_this2","maxLines","attribute","goToNumber","headerItems","classList","style","trust","postContent","contentHtml","userItem","metaItem","userOnline","username","createdAt","BestAnswerBadge","_Badge","initAttrs","label","extractText","Badge","AwardedBestAnswerNotification","fromUser","BestAnswerInDiscussionNotification","_extends","assign","asyncGeneratorStep","SolutionSearchItem","query","bestAnswerPost","mostRelevantPost","tags","id","viewItems","discussionTitle","title","bestAnswerContent","_this$bestAnswerPost","contentPlain","mostRelevantContent","_this$mostRelevantPos","_this$mostRelevantCon","_this$bestAnswerConte","tagsLabel","highlight","SolutionSearchSource","results","Map","queryString","search","_search","_callee","params","_context","toLowerCase","setQueryString","filter","q","page","limit","include","includes","join","find","redraw","_next","_throw","_x","map","LinkButton","queryMutators","SolvedFilter","shouldShowFilter","selected","bestAnswer","options","Dropdown","buttonClassName","Number","accessibleToggleLabel","active","Button","reloadDiscussions","refresh","_this$attrs","currentTag","alwaysShow","isQnA","components","Extend","Tag","commonExtend","Discussion","hasOne","Model","User","Post","ineligible","isThisBestAnswer","actionLabel","saveDiscussion","FoFUserDirectory","selectBestAnswer","awardedBestAnswer","bestAnswerInDiscussion","extend","hasBestAnswer","has","isHidden","canSelectBestAnswer","isBestAnswer","_app$session$user","save","bestAnswerPostId","bestAnswerUserId","relationships","data","matches","DiscussionPage","update","PostControls","pushAttributes","contentType","CommentPost","_discussion$bestAnswe","thisPost","PostComponent","elementAttrs","_discussion$bestAnswe2","UserCard","count","bestAnswerCount","override","SortMap","most_best_answers","least_best_answers","NotificationGrid","Search","DiscussionsSearchSource","mutators","IndexPage","tag","canStartDiscussion","cta","children","setContent","DiscussionListState","prepend","DiscussionComposer","composer","fields","some","titlePlaceholder","bidi","placeholder","disabled","onkeydown"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"forum.js","mappings":"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","sources":["webpack://@fof/best-answer/./src/common/addBestAnswerCountSort.ts","webpack://@fof/best-answer/./src/common/extend.ts","webpack://@fof/best-answer/./src/forum/addAnsweredBadge.tsx","webpack://@fof/best-answer/./src/forum/addBestAnswerAction.tsx","webpack://@fof/best-answer/./src/forum/addBestAnswerCountToUsers.tsx","webpack://@fof/best-answer/./src/forum/addBestAnswerView.tsx","webpack://@fof/best-answer/./src/forum/components/AwardedBestAnswerNotification.ts","webpack://@fof/best-answer/./src/forum/components/BestAnswerBadge.tsx","webpack://@fof/best-answer/./src/forum/components/BestAnswerFooterPreview.tsx","webpack://@fof/best-answer/./src/forum/components/BestAnswerInDiscussionNotification.ts","webpack://@fof/best-answer/./src/forum/components/SelectBestAnswerItem.tsx","webpack://@fof/best-answer/./src/forum/components/SelectBestAnswerNotification.ts","webpack://@fof/best-answer/./src/forum/components/SolutionSearchItem.tsx","webpack://@fof/best-answer/./src/forum/components/SolutionSearchSource.tsx","webpack://@fof/best-answer/./src/forum/components/SolvedFilter.tsx","webpack://@fof/best-answer/./src/forum/components/index.ts","webpack://@fof/best-answer/./src/forum/extend.ts","webpack://@fof/best-answer/./src/forum/extenders/extendDiscussionComposer.tsx","webpack://@fof/best-answer/./src/forum/extenders/extendDiscussionListState.tsx","webpack://@fof/best-answer/./src/forum/extenders/extendDiscussionSearchSource.tsx","webpack://@fof/best-answer/./src/forum/extenders/extendIndexPage.tsx","webpack://@fof/best-answer/./src/forum/extenders/extendNotifications.ts","webpack://@fof/best-answer/./src/forum/extenders/extendSearch.ts","webpack://@fof/best-answer/./src/forum/index.ts","webpack://@fof/best-answer/external assign \"flarum.extensions['fof-user-directory']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/Component']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/Model']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/components/Badge']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/components/Button']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/components/Dropdown']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/components/Link']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/components/LinkButton']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/extend']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/extenders']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/helpers/highlight']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/helpers/humanTime']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/helpers/icon']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/helpers/userOnline']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/helpers/username']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/models/Discussion']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/models/Post']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/models/User']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/utils/ItemList']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/utils/classList']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['common/utils/extractText']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/app']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/components/CommentPost']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/components/DiscussionComposer']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/components/DiscussionPage']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/components/DiscussionsSearchSource']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/components/IndexPage']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/components/Notification']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/components/NotificationGrid']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/components/Post']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/components/Search']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/components/UserCard']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/states/DiscussionListState']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['forum/utils/PostControls']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['tags/common/helpers/tagsLabel']\"","webpack://@fof/best-answer/external root \"flarum.core.compat['tags/common/models/Tag']\"","webpack://@fof/best-answer/./node_modules/@babel/runtime/helpers/regeneratorRuntime.js","webpack://@fof/best-answer/./node_modules/@babel/runtime/helpers/typeof.js","webpack://@fof/best-answer/./node_modules/@babel/runtime/regenerator/index.js","webpack://@fof/best-answer/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://@fof/best-answer/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://@fof/best-answer/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://@fof/best-answer/./node_modules/@babel/runtime/helpers/esm/readOnlyError.js","webpack://@fof/best-answer/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://@fof/best-answer/webpack/bootstrap","webpack://@fof/best-answer/webpack/runtime/compat get default export","webpack://@fof/best-answer/webpack/runtime/define property getters","webpack://@fof/best-answer/webpack/runtime/hasOwnProperty shorthand","webpack://@fof/best-answer/webpack/runtime/make namespace object","webpack://@fof/best-answer/./forum.ts"],"sourcesContent":["import { override } from 'flarum/common/extend';\n\nexport default () => {\n const FoFUserDirectory = require('@fof-user-directory');\n\n if (!FoFUserDirectory) return;\n\n override(FoFUserDirectory.SortMap.prototype, 'sortMap', (map) => ({\n ...map(),\n most_best_answers: '-bestAnswerCount',\n least_best_answers: 'bestAnswerCount',\n }));\n};\n","import Extend from 'flarum/common/extenders';\nimport Tag from 'flarum/tags/common/models/Tag';\n\nexport default [\n new Extend.Model(Tag) //\n .attribute('isQnA')\n .attribute('reminders'),\n];\n","import { extend } from 'flarum/common/extend';\nimport Discussion from 'flarum/common/models/Discussion';\nimport BestAnswerBadge from './components/BestAnswerBadge';\n\nexport default function () {\n extend(Discussion.prototype, 'badges', function (this: Discussion, items) {\n if (this.hasBestAnswer() && !items.has('hidden')) {\n items.add('bestAnswer', );\n }\n });\n}\n","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport Button from 'flarum/common/components/Button';\nimport PostControls from 'flarum/forum/utils/PostControls';\nimport DiscussionPage from 'flarum/forum/components/DiscussionPage';\nimport CommentPost from 'flarum/forum/components/CommentPost';\nimport Discussion from 'flarum/common/models/Discussion';\nimport Post from 'flarum/common/models/Post';\nimport extractText from 'flarum/common/utils/extractText';\n\nexport default function addBestAnswerAction() {\n const ineligible = (discussion: Discussion, post: Post) => {\n return post.isHidden() || post.number() === 1 || !post.canSelectBestAnswer() || !app.session.user;\n };\n\n const isThisBestAnswer = (discussion: Discussion, post: Post): boolean => {\n const bestAnswerPost = discussion.bestAnswerPost();\n const hasBestAnswer = discussion.hasBestAnswer();\n return hasBestAnswer !== undefined && hasBestAnswer && bestAnswerPost !== null && bestAnswerPost.id() === post.id();\n };\n\n const actionLabel = (isBestAnswer: boolean): string => {\n return extractText(app.translator.trans(isBestAnswer ? 'fof-best-answer.forum.remove_best_answer' : 'fof-best-answer.forum.this_best_answer'));\n };\n\n const saveDiscussion = (discussion: Discussion, isBestAnswer: boolean, post: Post) =>\n discussion\n .save(\n {\n bestAnswerPostId: isBestAnswer ? post.id() : 0,\n bestAnswerUserId: app.session.user?.id(),\n relationships: isBestAnswer ? { bestAnswerPost: post, bestAnswerUser: app.session.user } : { bestAnswerPost: null },\n },\n {\n params: {\n include: 'tags',\n },\n }\n )\n .then(() => {\n if (!isBestAnswer) {\n if (discussion.data.relationships) {\n delete discussion.data.relationships.bestAnswerPost;\n delete discussion.data.relationships.bestAnswerUser;\n }\n }\n\n if (app.current.matches(DiscussionPage)) {\n app.current.get('stream').update();\n }\n\n m.redraw();\n\n if (isBestAnswer) {\n m.route.set(app.route.discussion(discussion));\n }\n });\n\n extend(PostControls, 'moderationControls', function (items, post) {\n if (app.forum.attribute('useAlternativeBestAnswerUi')) return;\n\n const discussion = post.discussion();\n let isBestAnswer = isThisBestAnswer(discussion, post);\n\n post.pushAttributes({ isBestAnswer });\n\n if (post.contentType() !== 'comment') return;\n\n if (ineligible(discussion, post) || !app.current.matches(DiscussionPage)) return;\n\n items.add(\n 'bestAnswer',\n {\n isBestAnswer = !isBestAnswer;\n\n saveDiscussion(discussion, isBestAnswer, post).finally(() => {\n isBestAnswer = isThisBestAnswer(discussion, post);\n });\n }}\n >\n {actionLabel(isBestAnswer)}\n \n );\n });\n\n extend(CommentPost.prototype, 'actionItems', function (items) {\n if (!app.forum.attribute('useAlternativeBestAnswerUi')) return;\n\n const post = this.attrs.post;\n const discussion = this.attrs.post.discussion();\n let isBestAnswer = isThisBestAnswer(discussion, post);\n let hasBestAnswer = discussion.bestAnswerPost() !== null;\n\n post.pushAttributes({ isBestAnswer });\n\n if (ineligible(discussion, post) || !app.current.matches(DiscussionPage)) return;\n\n items.add(\n 'bestAnswer',\n {\n hasBestAnswer = !hasBestAnswer;\n isBestAnswer = !isBestAnswer;\n\n saveDiscussion(discussion, isBestAnswer, post).finally(() => {\n hasBestAnswer = !!discussion.hasBestAnswer() && discussion.bestAnswerPost() !== null;\n isBestAnswer = isThisBestAnswer(discussion, post);\n });\n }}\n >\n {actionLabel(isBestAnswer)}\n \n );\n });\n}\n","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport UserCard from 'flarum/forum/components/UserCard';\nimport icon from 'flarum/common/helpers/icon';\n\nimport type Mithril from 'mithril';\nimport type User from 'flarum/common/models/User';\n\nexport default function addBestAnswerCountToUsers() {\n extend(UserCard.prototype, 'infoItems', function (items: ItemList) {\n // @ts-expect-error\n const user = this.attrs.user as User;\n\n items.add(\n 'best-answer-count',\n \n {icon('fas fa-check')}\n {app.translator.trans('fof-best-answer.forum.user.best-answer-count', {\n count: user.bestAnswerCount(),\n })}\n ,\n 55\n );\n });\n}\n","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport CommentPost from 'flarum/forum/components/CommentPost';\nimport PostComponent from 'flarum/forum/components/Post';\nimport SelectBestAnswerItem from './components/SelectBestAnswerItem';\nimport DiscussionPage from 'flarum/forum/components/DiscussionPage';\nimport Button from 'flarum/common/components/Button';\nimport BestAnswerFooterPreview from './components/BestAnswerFooterPreview';\n\nexport default () => {\n extend(CommentPost.prototype, 'headerItems', function (items) {\n const post = this.attrs.post;\n const discussion = post.discussion();\n\n if (discussion?.hasBestAnswer() && discussion.bestAnswerPost() && discussion.bestAnswerPost()?.id() === post.id() && !post.isHidden()) {\n items.add('isBestAnswer', , -100);\n }\n });\n\n extend(CommentPost.prototype, 'footerItems', function (items) {\n const thisPost = this.attrs.post;\n const discussion = thisPost.discussion();\n const post = discussion.hasBestAnswer() && discussion.bestAnswerPost();\n\n if (post && !post.isHidden() && thisPost.number() === 1 && !thisPost.isHidden()) {\n const user = post.user();\n\n items.add('bestAnswerPost', , -10);\n }\n });\n\n extend(PostComponent.prototype, 'elementAttrs', function (elementAttrs) {\n const post = this.attrs.post;\n const discussion = post.discussion();\n\n if (discussion?.hasBestAnswer() && discussion.bestAnswerPost() && discussion.bestAnswerPost().id() === post.id() && !post.isHidden()) {\n elementAttrs.className ? (elementAttrs.className += ' Post--bestAnswer') : (elementAttrs.className = 'Post--bestAnswer');\n }\n });\n\n extend(DiscussionPage.prototype, 'sidebarItems', function (items) {\n if (!app.forum.attribute('bestAnswerDiscussionSidebarJumpButton')) return;\n\n // @ts-ignore\n const discussion = this.discussion;\n\n if (discussion === null) return;\n\n const post = discussion.hasBestAnswer() && discussion.bestAnswerPost();\n\n if (post && !post.isHidden() && post.number() !== 1 && !discussion.bestAnswerPost()?.isHidden()) {\n items.add(\n 'jumpToBestAnswer',\n app.current.get('stream').goToNumber(post.number())}\n aria-label={app.translator.trans('fof-best-answer.forum.discussion.jump_to_best_answer_button')}\n >\n {app.translator.trans('fof-best-answer.forum.discussion.jump_to_best_answer_button')}\n ,\n 90\n );\n }\n });\n};\n","import type Discussion from 'flarum/common/models/Discussion';\nimport app from 'flarum/forum/app';\nimport Notification from 'flarum/forum/components/Notification';\n\nexport default class AwardedBestAnswerNotification extends Notification {\n icon() {\n return 'fas fa-check';\n }\n\n href() {\n const notification = this.attrs.notification;\n const discussion = notification.subject() as Discussion;\n\n return app.route.discussion(discussion);\n }\n\n content() {\n const user = this.attrs.notification.fromUser();\n return app.translator.trans('fof-best-answer.forum.notification.awarded', {\n user: user,\n });\n }\n\n excerpt() {\n return null;\n }\n}\n","import Badge, { IBadgeAttrs } from 'flarum/common/components/Badge';\nimport app from 'flarum/forum/app';\nimport extractText from 'flarum/common/utils/extractText';\n\nexport default class BestAnswerBadge extends Badge {\n static initAttrs(attrs: IBadgeAttrs) {\n attrs.type = 'bestAnswer';\n attrs.icon = 'fas fa-check';\n attrs.label = extractText(app.translator.trans('fof-best-answer.forum.answered_badge'));\n }\n}\n","import app from 'flarum/forum/app';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport Mithril from 'mithril';\nimport username from 'flarum/common/helpers/username';\nimport userOnline from 'flarum/common/helpers/userOnline';\nimport Link from 'flarum/common/components/Link';\nimport classList from 'flarum/common/utils/classList';\nimport SelectBestAnswerItem from './SelectBestAnswerItem';\nimport Post from 'flarum/common/models/Post';\nimport User from 'flarum/common/models/User';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport Discussion from 'flarum/common/models/Discussion';\nimport humanTime from 'flarum/common/helpers/humanTime';\n\nexport interface BestAnswerFooterPreviewAttrs extends ComponentAttrs {\n post: Post;\n user: User;\n discussion: Discussion;\n}\n\nexport default class BestAnswerFooterPreview extends Component {\n user!: User;\n post!: Post;\n discussion!: Discussion;\n\n oninit(vnode: Mithril.Vnode) {\n super.oninit(vnode);\n\n this.user = this.attrs.user;\n this.post = this.attrs.post;\n this.discussion = this.attrs.discussion;\n }\n\n view() {\n const maxLines = app.forum.attribute('fof-best-answer.show_max_lines');\n\n return (\n
    app.current.get('stream').goToNumber(this.post.number())}>\n
    \n
      {this.headerItems().toArray()}
    \n
    \n
    0 && 'Post-body--truncate')} style={{ '--max-lines': maxLines }}>\n {m.trust(this.postContent())}\n
    \n
    \n );\n }\n\n postContent() {\n return this.post.contentHtml();\n }\n\n /**\n * To maintain compatibility with existing styling, custom themes, etc, each item here must be\n * wrapped in a
  • element.\n *\n * @todo: Remove this requirement for Flarum 2.0\n */\n headerItems(): ItemList {\n const items = new ItemList();\n\n items.add('user', this.userItem()), 100;\n items.add('meta', this.metaItem()), 90;\n items.add('bestAnswer', , -100);\n\n return items;\n }\n\n userItem(): Mithril.Children {\n return (\n
  • \n
    \n {this.user && userOnline(this.user)}\n

    {this.user ? {username(this.user)} : username(this.user)}

    \n
    \n
  • \n );\n }\n\n metaItem(): Mithril.Children {\n const post = this.post;\n return (\n
  • \n {humanTime(post.createdAt())}\n
  • \n );\n }\n}\n","import type Discussion from 'flarum/common/models/Discussion';\nimport app from 'flarum/forum/app';\nimport Notification from 'flarum/forum/components/Notification';\n\nexport default class BestAnswerInDiscussionNotification extends Notification {\n icon() {\n return 'fas fa-check';\n }\n\n href() {\n const notification = this.attrs.notification;\n const discussion = notification.subject() as Discussion;\n\n return app.route.discussion(discussion);\n }\n\n content() {\n const user = this.attrs.notification.fromUser();\n return app.translator.trans('fof-best-answer.forum.notification.best_answer_in_discussion', {\n user: user,\n });\n }\n\n excerpt() {\n return null;\n }\n}\n","import app from 'flarum/forum/app';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport icon from 'flarum/common/helpers/icon';\nimport humanTime from 'flarum/common/helpers/humanTime';\nimport Link from 'flarum/common/components/Link';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport Discussion from 'flarum/common/models/Discussion';\nimport Mithril from 'mithril';\nimport Post from 'flarum/common/models/Post';\n\nexport interface ISelectBestAnswerItemAttrs extends ComponentAttrs {\n post: Post;\n discussion: Discussion;\n}\n\nexport default class SelectBestAnswerItem extends Component {\n post!: Post;\n discussion!: Discussion;\n\n oninit(vnode: Mithril.Vnode) {\n super.oninit(vnode);\n\n this.post = this.attrs.post;\n this.discussion = this.attrs.discussion;\n }\n\n view() {\n return
  • {this.items().toArray()}
  • ;\n }\n\n getSetTime(discussion: Discussion) {\n if (!discussion.bestAnswerSetAt?.()) {\n return;\n }\n const bestAnswerSetAt = discussion.bestAnswerSetAt?.();\n if (!bestAnswerSetAt) {\n return;\n }\n return humanTime(bestAnswerSetAt);\n }\n\n items(): ItemList {\n const items = new ItemList();\n\n items.add(\n 'post',\n this.post ? (\n \n {icon('fas fa-check')}\n {app.translator.trans('fof-best-answer.forum.best_answer_button')}\n \n ) : (\n \n {icon('fas fa-check')}\n {app.translator.trans('fof-best-answer.forum.best_answer_button')}\n \n )\n );\n\n const bestAnswerUser = this.discussion.bestAnswerUser?.();\n\n bestAnswerUser &&\n items.add(\n 'user',\n \n {app.translator.trans('fof-best-answer.forum.best_answer_label', {\n user: this.discussion.bestAnswerUser?.(),\n time_set: this.getSetTime(this.discussion),\n a:
    m.route.set(app.route.user(bestAnswerUser))} />,\n })}\n \n );\n\n return items;\n }\n}\n","import type Discussion from 'flarum/common/models/Discussion';\nimport app from 'flarum/forum/app';\nimport Notification from 'flarum/forum/components/Notification';\n\nexport default class SelectBestAnswerNotification extends Notification {\n icon() {\n return 'fas fa-comment-dots';\n }\n\n href() {\n const notification = this.attrs.notification;\n const discussion = notification.subject() as Discussion;\n\n return app.route.discussion(discussion);\n }\n\n content() {\n return app.translator.trans('fof-best-answer.forum.notification.content');\n }\n\n excerpt() {\n return null;\n }\n}\n","import app from 'flarum/forum/app';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport Link from 'flarum/common/components/Link';\nimport highlight from 'flarum/common/helpers/highlight';\nimport type Discussion from 'flarum/common/models/Discussion';\nimport type Post from 'flarum/common/models/Post';\nimport type Mithril from 'mithril';\nimport tagsLabel from 'flarum/tags/common/helpers/tagsLabel';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport type Tag from 'flarum/tags/common/models/Tag';\n\nexport interface SolutionSearchItemAttrs extends ComponentAttrs {\n query: string;\n discussion: Discussion;\n bestAnswerPost: Post;\n mostRelevantPost: Post;\n tags: false | (Tag | undefined)[];\n}\n\nexport default class SolutionSearchItem extends Component {\n query!: string;\n discussion!: Discussion;\n bestAnswerPost!: Post | null | undefined;\n mostRelevantPost!: Post | null | undefined;\n tags!: false | (Tag | undefined)[];\n\n oninit(vnode: Mithril.Vnode) {\n super.oninit(vnode);\n\n this.query = this.attrs.query;\n this.discussion = this.attrs.discussion;\n this.bestAnswerPost = this.attrs.bestAnswerPost;\n this.mostRelevantPost = this.attrs.mostRelevantPost;\n this.tags = this.attrs.tags;\n }\n\n view() {\n return (\n
  • \n \n {this.viewItems().toArray()}\n \n
  • \n );\n }\n\n discussionTitle() {\n return this.discussion.title();\n }\n\n bestAnswerContent() {\n return this.bestAnswerPost?.contentPlain();\n }\n\n mostRelevantContent() {\n return this.mostRelevantPost?.contentPlain();\n }\n\n viewItems(): ItemList {\n const items = new ItemList();\n\n app.forum.attribute('showTagsInSearchResults') &&\n items.add('tags',
    {tagsLabel(this.tags)}
    , 100);\n\n items.add('discussion-title',
    {highlight(this.discussionTitle(), this.query)}
    , 90);\n\n !!this.mostRelevantPost &&\n items.add(\n 'most-relevant',\n
    {highlight(this.mostRelevantContent() ?? '', this.query, 100)}
    ,\n 80\n );\n\n !!this.bestAnswerPost &&\n items.add(\n 'best-answer',\n
    \n {highlight(this.bestAnswerContent() ?? '', this.query, 100)}\n
    ,\n 70\n );\n\n return items;\n }\n}\n","import app from 'flarum/forum/app';\nimport Discussion from 'flarum/common/models/Discussion';\nimport LinkButton from 'flarum/common/components/LinkButton';\nimport { SearchSource } from 'flarum/forum/components/Search';\nimport type Mithril from 'mithril';\nimport BestAnswerBadge from './BestAnswerBadge';\nimport SolutionSearchItem from './SolutionSearchItem';\n\nexport default class SolutionSearchSource implements SearchSource {\n protected results = new Map();\n queryString: string | null = null;\n\n async search(query: string): Promise {\n query = query.toLowerCase();\n\n this.results.set(query, []);\n\n this.setQueryString(query);\n\n const params = {\n filter: { q: this.queryString || query },\n page: { limit: this.limit() },\n include: this.includes().join(','),\n };\n\n return app.store.find('discussions', params).then((results) => {\n this.results.set(query, results);\n m.redraw();\n });\n }\n\n view(query: string): Array {\n query = query.toLowerCase();\n\n this.setQueryString(query);\n\n const results = (this.results.get(query) || []).map((discussion) => {\n const bestAnswerPost = discussion.bestAnswerPost();\n const mostRelevantPost = discussion.mostRelevantPost();\n const tags = discussion.tags();\n\n return (\n \n );\n }) as Array;\n\n return [\n
  • \n {app.translator.trans('fof-best-answer.forum.search.discussions_solutions_heading')}\n
  • ,\n
  • \n \n {app.translator.trans('fof-best-answer.forum.search.all_discussions_solutions_button', { query })}\n \n
  • ,\n ...results,\n ];\n }\n\n includes(): string[] {\n return ['mostRelevantPost', 'bestAnswerPost', 'tags'];\n }\n\n limit(): number {\n return 3;\n }\n\n queryMutators(): string[] {\n return ['is:solved'];\n }\n\n setQueryString(query: string): void {\n this.queryString = query + ' ' + this.queryMutators().join(' ');\n }\n}\n","import app from 'flarum/forum/app';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport Dropdown from 'flarum/common/components/Dropdown';\nimport Button from 'flarum/common/components/Button';\nimport type Tag from 'flarum/tags/common/models/Tag';\n\nexport interface SolvedFilterAttrs extends ComponentAttrs {\n currentTag?: Tag;\n alwaysShow?: boolean;\n}\n\nexport default class SolvedFilter extends Component {\n view() {\n if (!this.shouldShowFilter()) return null;\n\n const selected = app.discussions.bestAnswer as unknown as number;\n const options = ['all', 'solved', 'unsolved'];\n\n return Dropdown.component(\n {\n buttonClassName: 'Button',\n label: app.translator.trans(\n `fof-best-answer.forum.filter.${options[selected] || Object.keys(options).map((key) => options[Number(key)])[0]}_label`\n ),\n accessibleToggleLabel: app.translator.trans('fof-best-answer.forum.filter.accessible_label'),\n },\n Object.keys(options).map((value) => {\n const label = options[Number(value)];\n const active = (selected || Object.keys(options)[0]) === value;\n\n return Button.component(\n {\n icon: active ? 'fas fa-check' : true,\n active: active,\n onclick: () => {\n app.discussions.bestAnswer = value;\n if (value === '0') {\n delete app.discussions.bestAnswer;\n }\n this.reloadDiscussions();\n },\n },\n app.translator.trans(`fof-best-answer.forum.filter.${label}_label`)\n );\n })\n );\n }\n\n reloadDiscussions(): void {\n app.discussions.refresh();\n }\n\n shouldShowFilter() {\n const { currentTag, alwaysShow } = this.attrs;\n\n if (alwaysShow) return true;\n\n if (!app.forum.attribute('showBestAnswerFilterUi')) return false;\n\n if (!currentTag?.isQnA?.()) {\n if (app.discussions.bestAnswer) {\n delete app.discussions.bestAnswer;\n app.discussions.refresh();\n }\n return false;\n }\n\n return true;\n }\n}\n","import AwardedBestAnswerNotification from './AwardedBestAnswerNotification';\nimport BestAnswerBadge from './BestAnswerBadge';\nimport BestAnswerFooterPreview from './BestAnswerFooterPreview';\nimport BestAnswerInDiscussionNotification from './BestAnswerInDiscussionNotification';\nimport SelectBestAnswerItem from './SelectBestAnswerItem';\nimport SelectBestAnswerNotification from './SelectBestAnswerNotification';\nimport SolutionSearchItem from './SolutionSearchItem';\nimport SolutionSearchSource from './SolutionSearchSource';\nimport SolvedFilter from './SolvedFilter';\n\nexport const components = {\n SelectBestAnswerItem,\n SolutionSearchSource,\n BestAnswerFooterPreview,\n AwardedBestAnswerNotification,\n BestAnswerBadge,\n BestAnswerInDiscussionNotification,\n SelectBestAnswerNotification,\n SolutionSearchItem,\n SolvedFilter,\n};\n","import Discussion from 'flarum/common/models/Discussion';\nimport commonExtend from '../common/extend';\nimport Extend from 'flarum/common/extenders';\nimport Post from 'flarum/common/models/Post';\nimport User from 'flarum/common/models/User';\nimport Model from 'flarum/common/Model';\n\nexport default [\n ...commonExtend,\n\n new Extend.Model(Discussion) //\n .hasOne('bestAnswerPost')\n .hasOne('bestAnswerUser')\n .attribute('hasBestAnswer')\n .attribute('bestAnswerSetAt', Model.transformDate),\n\n new Extend.Model(User) //\n .attribute('bestAnswerCount'),\n\n new Extend.Model(Post) //\n .attribute('canSelectBestAnswer'),\n];\n","import { extend } from 'flarum/common/extend';\nimport app from 'flarum/forum/app';\nimport DiscussionComposer from 'flarum/forum/components/DiscussionComposer';\nimport type Tag from 'flarum/tags/common/models/Tag';\n\nexport default function extendDiscussionComposer() {\n extend(DiscussionComposer.prototype, 'headerItems', function (items) {\n const tags = this.composer.fields.tags as Tag[];\n if (tags === undefined) return;\n\n const qna = tags.some((t) => t.isQnA());\n\n if (!qna) return;\n\n // @ts-expect-error\n this.attrs.titlePlaceholder = app.translator.trans('fof-best-answer.forum.composer.titlePlaceholder');\n\n if (items.has('discussionTitle')) {\n items.setContent(\n 'discussionTitle',\n

    \n \n

    \n );\n }\n });\n}\n","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport DiscussionListState from 'flarum/forum/states/DiscussionListState';\nimport type { PaginatedListParams } from 'flarum/common/states/PaginatedListState';\n\nexport default function extendDiscussionListState() {\n extend(DiscussionListState.prototype, 'requestParams', function (params: PaginatedListParams) {\n if (app.discussions.bestAnswer) {\n const negate = app.discussions.bestAnswer === '2';\n const prepend = negate ? '-' : '';\n\n if (!params.filter) {\n params.filter = {};\n }\n\n params.filter[`${prepend}solved-discussions`] = 'true';\n\n if (params.filter.q) {\n params.filter.q += ` ${prepend}is:solved`;\n }\n }\n });\n}\n","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport DiscussionsSearchSource from 'flarum/forum/components/DiscussionsSearchSource';\n\nexport default function extendDiscussionsSearchSource() {\n extend(DiscussionsSearchSource.prototype, 'queryMutators', function (mutators: string[]) {\n // This will only apply when using flarum/core 1.8.6 or newer\n if (app.forum.attribute('removeSolutionResultsFromMainSearch')) {\n mutators.push('-is:solved');\n }\n });\n}\n","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport IndexPage from 'flarum/forum/components/IndexPage';\nimport SolvedFilter from '../components/SolvedFilter';\nimport type Tag from 'flarum/tags/common/models/Tag';\n\nexport default function extendIndexPage() {\n extend(IndexPage.prototype, 'sidebarItems', function (items) {\n const tag = this.currentTag();\n\n if (!tag?.isQnA?.()) return;\n\n const canStartDiscussion = app.forum.attribute('canStartDiscussion') || !app.session.user;\n\n if (!items.has('newDiscussion')) return;\n\n const cta = items.get('newDiscussion');\n cta.children = app.translator.trans(\n canStartDiscussion ? 'fof-best-answer.forum.index.ask_question' : 'fof-best-answer.forum.index.cannot_ask_question'\n );\n\n if (items.has('startDiscussion')) {\n items.setContent('startDiscussion', cta);\n }\n });\n\n extend(IndexPage.prototype, 'viewItems', function (items) {\n const currentTag: Tag | undefined = this.currentTag();\n\n if (!currentTag) return;\n\n items.add('solved-filter', );\n });\n}\n","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport NotificationGrid from 'flarum/forum/components/NotificationGrid';\nimport type Mithril from 'mithril';\n\nexport default function () {\n extend(NotificationGrid.prototype, 'notificationTypes', function (items: ItemList<{ name: string; icon: string; label: Mithril.Children }>) {\n items.add('awardedBestAnswer', {\n name: 'awardedBestAnswer',\n icon: 'fas fa-check',\n label: app.translator.trans('fof-best-answer.forum.notification.preferences.awarded_best_answer'),\n });\n items.add('bestAnswerInDiscussion', {\n name: 'bestAnswerInDiscussion',\n icon: 'fas fa-check',\n label: app.translator.trans('fof-best-answer.forum.notification.preferences.best_answer_in_discussion'),\n });\n items.add('selectBestAnswer', {\n name: 'selectBestAnswer',\n icon: 'fas fa-stopwatch',\n label: app.translator.trans('fof-best-answer.forum.notification.preferences.select_best_answer'),\n });\n });\n}\n","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport Search, { SearchSource } from 'flarum/forum/components/Search';\nimport SolutionSearchSource from '../components/SolutionSearchSource';\n\nexport default function extendSearch() {\n extend(Search.prototype, 'sourceItems', function (items: ItemList) {\n if (app.forum.attribute('solutionSearchEnabled')) {\n items.add('solution', new SolutionSearchSource(), 110);\n }\n });\n}\n","import app from 'flarum/forum/app';\nimport SelectBestAnswerNotification from './components/SelectBestAnswerNotification';\nimport addBestAnswerAction from './addBestAnswerAction';\nimport addBestAnswerView from './addBestAnswerView';\nimport addAnsweredBadge from './addAnsweredBadge';\nimport AwardedBestAnswerNotification from './components/AwardedBestAnswerNotification';\nimport BestAnswerInDiscussionNotification from './components/BestAnswerInDiscussionNotification';\nimport extendNotifications from './extenders/extendNotifications';\nimport addBestAnswerCountToUsers from './addBestAnswerCountToUsers';\nimport addBestAnswerCountSort from '../common/addBestAnswerCountSort';\nimport extendSearch from './extenders/extendSearch';\nimport extendDiscussionsSearchSource from './extenders/extendDiscussionSearchSource';\nimport extendIndexPage from './extenders/extendIndexPage';\nimport extendDiscussionListState from './extenders/extendDiscussionListState';\nimport extendDiscussionComposer from './extenders/extendDiscussionComposer';\n\nexport * from './components';\n\nexport { default as extend } from './extend';\n\napp.initializers.add('fof/best-answer', () => {\n app.notificationComponents.selectBestAnswer = SelectBestAnswerNotification;\n app.notificationComponents.awardedBestAnswer = AwardedBestAnswerNotification;\n app.notificationComponents.bestAnswerInDiscussion = BestAnswerInDiscussionNotification;\n\n addAnsweredBadge();\n addBestAnswerAction();\n addBestAnswerView();\n addBestAnswerCountToUsers();\n addBestAnswerCountSort();\n\n extendNotifications();\n extendSearch();\n extendDiscussionsSearchSource();\n extendIndexPage();\n extendDiscussionListState();\n extendDiscussionComposer();\n});\n","module.exports = flarum.extensions['fof-user-directory'];","module.exports = flarum.core.compat['common/Component'];","module.exports = flarum.core.compat['common/Model'];","module.exports = flarum.core.compat['common/components/Badge'];","module.exports = flarum.core.compat['common/components/Button'];","module.exports = flarum.core.compat['common/components/Dropdown'];","module.exports = flarum.core.compat['common/components/Link'];","module.exports = flarum.core.compat['common/components/LinkButton'];","module.exports = flarum.core.compat['common/extend'];","module.exports = flarum.core.compat['common/extenders'];","module.exports = flarum.core.compat['common/helpers/highlight'];","module.exports = flarum.core.compat['common/helpers/humanTime'];","module.exports = flarum.core.compat['common/helpers/icon'];","module.exports = flarum.core.compat['common/helpers/userOnline'];","module.exports = flarum.core.compat['common/helpers/username'];","module.exports = flarum.core.compat['common/models/Discussion'];","module.exports = flarum.core.compat['common/models/Post'];","module.exports = flarum.core.compat['common/models/User'];","module.exports = flarum.core.compat['common/utils/ItemList'];","module.exports = flarum.core.compat['common/utils/classList'];","module.exports = flarum.core.compat['common/utils/extractText'];","module.exports = flarum.core.compat['forum/app'];","module.exports = flarum.core.compat['forum/components/CommentPost'];","module.exports = flarum.core.compat['forum/components/DiscussionComposer'];","module.exports = flarum.core.compat['forum/components/DiscussionPage'];","module.exports = flarum.core.compat['forum/components/DiscussionsSearchSource'];","module.exports = flarum.core.compat['forum/components/IndexPage'];","module.exports = flarum.core.compat['forum/components/Notification'];","module.exports = flarum.core.compat['forum/components/NotificationGrid'];","module.exports = flarum.core.compat['forum/components/Post'];","module.exports = flarum.core.compat['forum/components/Search'];","module.exports = flarum.core.compat['forum/components/UserCard'];","module.exports = flarum.core.compat['forum/states/DiscussionListState'];","module.exports = flarum.core.compat['forum/utils/PostControls'];","module.exports = flarum.core.compat['tags/common/helpers/tagsLabel'];","module.exports = flarum.core.compat['tags/common/models/Tag'];","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = \"function\" == typeof Symbol ? Symbol : {},\n a = i.iterator || \"@@iterator\",\n c = i.asyncIterator || \"@@asyncIterator\",\n u = i.toStringTag || \"@@toStringTag\";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, \"\");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, \"_invoke\", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: \"normal\",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: \"throw\",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = \"suspendedStart\",\n l = \"suspendedYield\",\n f = \"executing\",\n s = \"completed\",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n [\"next\", \"throw\", \"return\"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if (\"throw\" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) {\n invoke(\"next\", t, i, a);\n }, function (t) {\n invoke(\"throw\", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke(\"throw\", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, \"_invoke\", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw Error(\"Generator is already running\");\n if (o === s) {\n if (\"throw\" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if (\"normal\" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = \"normal\", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || \"\" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) {\n var e = \"function\" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () {\n return this;\n }), define(g, \"toString\", function () {\n return \"[object Generator]\";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if (\"throw\" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if (\"root\" === i.tryLoc) return handle(\"end\");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, \"catchLoc\"),\n u = n.call(i, \"finallyLoc\");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw Error(\"try statement without catch or finally\");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if (\"throw\" === t.type) throw t.arg;\n return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n \"catch\": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if (\"throw\" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, \"next\" === this.method && (this.arg = t), y;\n }\n }, e;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return module.exports = _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 }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\nexport { _asyncToGenerator as default };","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","function _readOnlyError(r) {\n throw new TypeError('\"' + r + '\" is read-only');\n}\nexport { _readOnlyError as default };","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","// 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](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};","export * from './src/forum';\n"],"names":["override","FoFUserDirectory","require","SortMap","prototype","map","_extends","most_best_answers","least_best_answers","Extend","Tag","Model","attribute","extend","Discussion","BestAnswerBadge","items","hasBestAnswer","has","add","m","app","Button","PostControls","DiscussionPage","CommentPost","extractText","addBestAnswerAction","ineligible","discussion","post","isHidden","number","canSelectBestAnswer","session","user","isThisBestAnswer","bestAnswerPost","undefined","id","actionLabel","isBestAnswer","translator","trans","saveDiscussion","_app$session$user","save","bestAnswerPostId","bestAnswerUserId","relationships","bestAnswerUser","params","include","then","data","current","matches","get","update","redraw","route","set","forum","pushAttributes","contentType","icon","onclick","attrs","className","UserCard","addBestAnswerCountToUsers","count","bestAnswerCount","PostComponent","SelectBestAnswerItem","BestAnswerFooterPreview","_discussion$bestAnswe","thisPost","elementAttrs","_discussion$bestAnswe2","goToNumber","Notification","AwardedBestAnswerNotification","_Notification","apply","arguments","_inheritsLoose","_proto","href","notification","subject","content","fromUser","excerpt","default","Badge","_Badge","initAttrs","type","label","Component","username","userOnline","Link","classList","ItemList","humanTime","_Component","_this","_len","length","args","Array","_key","call","concat","oninit","vnode","view","_this2","maxLines","headerItems","toArray","style","trust","postContent","contentHtml","userItem","metaItem","createdAt","BestAnswerInDiscussionNotification","getSetTime","bestAnswerSetAt","_this$discussion$best","_this$discussion","_this$discussion$best2","_this$discussion2","time_set","a","SelectBestAnswerNotification","highlight","tagsLabel","SolutionSearchItem","query","mostRelevantPost","tags","viewItems","discussionTitle","title","bestAnswerContent","_this$bestAnswerPost","contentPlain","mostRelevantContent","_this$mostRelevantPos","_this$mostRelevantCon","_this$bestAnswerConte","LinkButton","SolutionSearchSource","results","Map","queryString","search","_search","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","prev","next","toLowerCase","setQueryString","filter","q","page","limit","includes","join","abrupt","store","find","stop","_x","queryMutators","Dropdown","SolvedFilter","shouldShowFilter","selected","discussions","bestAnswer","options","component","buttonClassName","Object","keys","key","Number","accessibleToggleLabel","value","active","reloadDiscussions","refresh","_this$attrs","currentTag","alwaysShow","isQnA","components","commonExtend","Post","User","hasOne","transformDate","DiscussionComposer","extendDiscussionComposer","composer","fields","qna","some","t","titlePlaceholder","setContent","bidi","placeholder","disabled","onkeydown","bind","DiscussionListState","extendDiscussionListState","negate","prepend","DiscussionsSearchSource","extendDiscussionsSearchSource","mutators","push","IndexPage","extendIndexPage","tag","canStartDiscussion","cta","children","NotificationGrid","name","Search","extendSearch","addBestAnswerView","addAnsweredBadge","extendNotifications","addBestAnswerCountSort","initializers","notificationComponents","selectBestAnswer","awardedBestAnswer","bestAnswerInDiscussion","_typeof","module","exports","e","__esModule","r","n","hasOwnProperty","o","defineProperty","i","Symbol","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","Generator","create","Context","makeInvokeMethod","tryCatch","arg","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","resolve","__await","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","TypeError","resultName","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","isNaN","displayName","isGeneratorFunction","constructor","setPrototypeOf","__proto__","awrap","async","Promise","reverse","pop","charAt","slice","rval","handle","complete","finish","_catch","delegateYield","runtime","regeneratorRuntime","accidentalStrictMode","globalThis","Function","asyncGeneratorStep","_next","_throw","assign","_readOnlyError","_setPrototypeOf"],"sourceRoot":""} \ No newline at end of file diff --git a/js/package.json b/js/package.json index f6593c9..5dde952 100644 --- a/js/package.json +++ b/js/package.json @@ -23,8 +23,5 @@ "post-build-typings": "find dist-typings -type f -name '*.d.ts' -print0 | xargs -0 sed -i 's,../src/@types,@types,g'", "check-typings": "tsc --noEmit --emitDeclarationOnly false", "check-typings-coverage": "typescript-coverage-report" - }, - "dependencies": { - "yarn": "^1.22.22" } } diff --git a/js/src/@types/shims.d.ts b/js/src/@types/shims.d.ts index bef9159..789b46b 100644 --- a/js/src/@types/shims.d.ts +++ b/js/src/@types/shims.d.ts @@ -38,7 +38,7 @@ declare module 'flarum/common/models/User' { } declare module 'flarum/common/models/Post' { - export default interface Post { - canSelectAsBestAnswer(): boolean; - } -} \ No newline at end of file + export default interface Post { + canSelectBestAnswer(): boolean; + } +} diff --git a/js/src/admin/index.ts b/js/src/admin/index.ts index 3bc6e7e..5e11117 100644 --- a/js/src/admin/index.ts +++ b/js/src/admin/index.ts @@ -25,14 +25,15 @@ app.initializers.add( permission: 'discussion.selectBestAnswerNotOwnDiscussion', }, 'reply' - ).registerPermission( + ) + .registerPermission( { - icon: 'far fa-comment', - label: app.translator.trans('fof-best-answer.admin.permissions.allow_select_own_post'), - permission: 'discussion.selectBestAnswerOwnPost', + icon: 'far fa-comment', + label: app.translator.trans('fof-best-answer.admin.permissions.allow_select_own_post'), + permission: 'discussion.selectBestAnswerOwnPost', }, 'reply' - ); + ); addBestAnswerCountSort(); }, From b447dee2aae6f7ac08ae080a34425d0b29d2d8c1 Mon Sep 17 00:00:00 2001 From: BHZoon Date: Thu, 4 Dec 2025 10:43:57 +0100 Subject: [PATCH 07/12] style: add trailing commas in integration test --- tests/integration/api/SetBestAnswerTest.php | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/tests/integration/api/SetBestAnswerTest.php b/tests/integration/api/SetBestAnswerTest.php index 8f2e316..ac65ed8 100644 --- a/tests/integration/api/SetBestAnswerTest.php +++ b/tests/integration/api/SetBestAnswerTest.php @@ -33,14 +33,14 @@ public function setUp(): void 'username' => 'normal2', 'email' => 'normal2@machine.local', 'is_email_confirmed' => 1, - 'best_answer_count' => 0 + 'best_answer_count' => 0, ], [ 'id' => 4, 'username' => 'moderator', 'email' => 'moderator@machine.local', 'is_email_confirmed' => 1, - 'best_answer_count' => 0 + 'best_answer_count' => 0, ], ], 'tags' => [ @@ -54,7 +54,7 @@ public function setUp(): void 'parent_id' => null, 'is_restricted' => false, 'is_hidden' => false, - 'is_qna' => true + 'is_qna' => true, ], ], 'discussions' => [ @@ -67,7 +67,7 @@ public function setUp(): void 'user_id' => 2, 'type' => 'comment', 'content' => 'post 1 - question', - 'created_at' => Carbon::now() + 'created_at' => Carbon::now(), ], [ 'id' => 2, @@ -75,7 +75,7 @@ public function setUp(): void 'user_id' => 1, 'type' => 'comment', 'content' => 'post 2 - answer1', - 'created_at' => Carbon::now() + 'created_at' => Carbon::now(), ], [ 'id' => 3, @@ -83,7 +83,7 @@ public function setUp(): void 'user_id' => 3, 'type' => 'comment', 'content' => 'post 2 - answer2', - 'created_at' => Carbon::now() + 'created_at' => Carbon::now(), ], [ 'id' => 4, @@ -91,7 +91,7 @@ public function setUp(): void 'user_id' => 2, 'type' => 'comment', 'content' => 'post 4 - answer by owner', - 'created_at' => Carbon::now() + 'created_at' => Carbon::now(), ], [ 'id' => 5, @@ -99,7 +99,7 @@ public function setUp(): void 'user_id' => 3, 'type' => 'comment', 'content' => 'post 5 - answer by normal2', - 'created_at' => Carbon::now() + 'created_at' => Carbon::now(), ], [ 'id' => 6, @@ -107,7 +107,7 @@ public function setUp(): void 'user_id' => 4, 'type' => 'comment', 'content' => 'post 6 - answer by moderator', - 'created_at' => Carbon::now() + 'created_at' => Carbon::now(), ], ], 'discussion_tag' => [ @@ -117,7 +117,7 @@ public function setUp(): void [ 'group_id' => 4, 'permission' => 'discussion.selectBestAnswerNotOwnDiscussion', - 'created_at' => Carbon::now() + 'created_at' => Carbon::now(), ], ['group_id' => 4, 'permission' => 'selectBestAnswerOwnPost', 'created_at' => Carbon::now()], ], From 2fc59d38ba0ed72fb007f48ae57e9b268694d9c0 Mon Sep 17 00:00:00 2001 From: BHZoon Date: Thu, 4 Dec 2025 10:54:17 +0100 Subject: [PATCH 08/12] style: fix spacing after type cast in test --- tests/integration/api/SetBestAnswerTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/integration/api/SetBestAnswerTest.php b/tests/integration/api/SetBestAnswerTest.php index ac65ed8..93dce9d 100644 --- a/tests/integration/api/SetBestAnswerTest.php +++ b/tests/integration/api/SetBestAnswerTest.php @@ -158,7 +158,7 @@ protected function getPostFromResponse(array $document, int $postId) } foreach ($document['included'] as $resource) { - if ($resource['type'] === 'posts' && (int)$resource['id'] === $postId) { + if ($resource['type'] === 'posts' && (int) $resource['id'] === $postId) { return $resource; } } From 2c08dc302322b3f011ced6ce3f39e50583bc5402 Mon Sep 17 00:00:00 2001 From: BHZoon Date: Thu, 4 Dec 2025 11:01:25 +0100 Subject: [PATCH 09/12] style: add newline at end of file --- tests/integration/api/SetBestAnswerTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/integration/api/SetBestAnswerTest.php b/tests/integration/api/SetBestAnswerTest.php index 93dce9d..c1dd62d 100644 --- a/tests/integration/api/SetBestAnswerTest.php +++ b/tests/integration/api/SetBestAnswerTest.php @@ -298,4 +298,4 @@ public function user_can_set_own_post_as_best_answer_if_permitted(int $userId) $attributes = $data['data']['attributes']; $this->assertEquals($postId, $attributes['hasBestAnswer'], "Expected best answer post ID to be {$postId}"); } -} \ No newline at end of file +} From 30fdc8bd13c2ca2d6ec230e0d3ef95f4d4259bef Mon Sep 17 00:00:00 2001 From: BHZoon Date: Thu, 4 Dec 2025 11:16:53 +0100 Subject: [PATCH 10/12] fix: check if specific post can be selected as best answer --- src/Api/PostAttributes.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Api/PostAttributes.php b/src/Api/PostAttributes.php index 4355216..f9436c5 100644 --- a/src/Api/PostAttributes.php +++ b/src/Api/PostAttributes.php @@ -29,7 +29,7 @@ public function __construct(BestAnswerRepository $bestAnswerRepository) public function __invoke(PostSerializer $serializer, Post $post, array $attributes): array { - $attributes['canSelectBestAnswer'] = $this->bestAnswerRepository->canSelectBestAnswer($serializer->getActor(), $post->discussion); + $attributes['canSelectBestAnswer'] = $this->bestAnswerRepository->canSelectPostAsBestAnswer($serializer->getActor(), $post); return $attributes; } From f414ace38264f0aefc06dcac525180f1c1de7754 Mon Sep 17 00:00:00 2001 From: BHZoon Date: Thu, 4 Dec 2025 11:53:34 +0100 Subject: [PATCH 11/12] refactor: rename canSelectBestAnswer to canSelectAsBestAnswer --- js/src/@types/shims.d.ts | 2 +- js/src/forum/addBestAnswerAction.tsx | 2 +- src/Api/PostAttributes.php | 2 +- tests/integration/api/SetBestAnswerTest.php | 4 ++-- tests/integration/api/UnsetBestAnswerTest.php | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/js/src/@types/shims.d.ts b/js/src/@types/shims.d.ts index 789b46b..523d7b0 100644 --- a/js/src/@types/shims.d.ts +++ b/js/src/@types/shims.d.ts @@ -39,6 +39,6 @@ declare module 'flarum/common/models/User' { declare module 'flarum/common/models/Post' { export default interface Post { - canSelectBestAnswer(): boolean; + canSelectAsBestAnswer(): boolean; } } diff --git a/js/src/forum/addBestAnswerAction.tsx b/js/src/forum/addBestAnswerAction.tsx index 8b25c0b..1075713 100644 --- a/js/src/forum/addBestAnswerAction.tsx +++ b/js/src/forum/addBestAnswerAction.tsx @@ -10,7 +10,7 @@ import extractText from 'flarum/common/utils/extractText'; export default function addBestAnswerAction() { const ineligible = (discussion: Discussion, post: Post) => { - return post.isHidden() || post.number() === 1 || !post.canSelectBestAnswer() || !app.session.user; + return post.isHidden() || post.number() === 1 || !post.canSelectAsBestAnswer() || !app.session.user; }; const isThisBestAnswer = (discussion: Discussion, post: Post): boolean => { diff --git a/src/Api/PostAttributes.php b/src/Api/PostAttributes.php index f9436c5..15aaf87 100644 --- a/src/Api/PostAttributes.php +++ b/src/Api/PostAttributes.php @@ -29,7 +29,7 @@ public function __construct(BestAnswerRepository $bestAnswerRepository) public function __invoke(PostSerializer $serializer, Post $post, array $attributes): array { - $attributes['canSelectBestAnswer'] = $this->bestAnswerRepository->canSelectPostAsBestAnswer($serializer->getActor(), $post); + $attributes['canSelectAsBestAnswer'] = $this->bestAnswerRepository->canSelectPostAsBestAnswer($serializer->getActor(), $post); return $attributes; } diff --git a/tests/integration/api/SetBestAnswerTest.php b/tests/integration/api/SetBestAnswerTest.php index c1dd62d..fb16895 100644 --- a/tests/integration/api/SetBestAnswerTest.php +++ b/tests/integration/api/SetBestAnswerTest.php @@ -216,7 +216,7 @@ public function user_with_permission_can_set_best_answer(int $userId) $this->assertNotNull($targetPost, 'Post 3 should be in the includes'); $this->assertTrue( - $targetPost['attributes']['canSelectBestAnswer'], + $targetPost['attributes']['canSelectAsBestAnswer'], 'Expected user to be able to set best answer on this post' ); @@ -255,7 +255,7 @@ public function user_without_permission_cannot_set_best_answer(int $userId) $this->assertNotNull($targetPost, 'Post 3 should be in the includes'); $this->assertFalse( - $targetPost['attributes']['canSelectBestAnswer'], + $targetPost['attributes']['canSelectAsBestAnswer'], 'Expected user to not be able to set best answer' ); diff --git a/tests/integration/api/UnsetBestAnswerTest.php b/tests/integration/api/UnsetBestAnswerTest.php index c8925ee..06c35db 100644 --- a/tests/integration/api/UnsetBestAnswerTest.php +++ b/tests/integration/api/UnsetBestAnswerTest.php @@ -192,7 +192,7 @@ public function user_can_unset_best_answer_in_own_discussion_and_select_a_differ $this->assertNotNull($targetPost, 'Post 3 should be included in response'); $this->assertTrue( - $targetPost['attributes']['canSelectBestAnswer'], + $targetPost['attributes']['canSelectAsBestAnswer'], 'Expected user to be able to set a best answer on Post 3' ); From c3f5438e0b127d64da14f49bd2bd437a0c905992 Mon Sep 17 00:00:00 2001 From: BHZoon Date: Fri, 5 Dec 2025 09:37:56 +0100 Subject: [PATCH 12/12] fix: correct attribute name in extend.ts and update dist --- js/dist/forum.js | 4 ++-- js/src/forum/extend.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/js/dist/forum.js b/js/dist/forum.js index d5e4c5e..682f15a 100644 --- a/js/dist/forum.js +++ b/js/dist/forum.js @@ -115,7 +115,7 @@ __webpack_require__.r(__webpack_exports__); function addBestAnswerAction() { var ineligible = function ineligible(discussion, post) { - return post.isHidden() || post.number() === 1 || !post.canSelectBestAnswer() || !(flarum_forum_app__WEBPACK_IMPORTED_MODULE_0___default().session).user; + return post.isHidden() || post.number() === 1 || !post.canSelectAsBestAnswer() || !(flarum_forum_app__WEBPACK_IMPORTED_MODULE_0___default().session).user; }; var isThisBestAnswer = function isThisBestAnswer(discussion, post) { var bestAnswerPost = discussion.bestAnswerPost(); @@ -1080,7 +1080,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ([].concat(_common_extend__WEBPACK_IMPORTED_MODULE_1__["default"], [new (flarum_common_extenders__WEBPACK_IMPORTED_MODULE_2___default().Model)((flarum_common_models_Discussion__WEBPACK_IMPORTED_MODULE_0___default())) // .hasOne('bestAnswerPost').hasOne('bestAnswerUser').attribute('hasBestAnswer').attribute('bestAnswerSetAt', (flarum_common_Model__WEBPACK_IMPORTED_MODULE_5___default().transformDate)), new (flarum_common_extenders__WEBPACK_IMPORTED_MODULE_2___default().Model)((flarum_common_models_User__WEBPACK_IMPORTED_MODULE_4___default())) // .attribute('bestAnswerCount'), new (flarum_common_extenders__WEBPACK_IMPORTED_MODULE_2___default().Model)((flarum_common_models_Post__WEBPACK_IMPORTED_MODULE_3___default())) // -.attribute('canSelectBestAnswer')])); +.attribute('canSelectAsBestAnswer')])); /***/ }), diff --git a/js/src/forum/extend.ts b/js/src/forum/extend.ts index 3f4c11d..6df7b8d 100644 --- a/js/src/forum/extend.ts +++ b/js/src/forum/extend.ts @@ -18,5 +18,5 @@ export default [ .attribute('bestAnswerCount'), new Extend.Model(Post) // - .attribute('canSelectBestAnswer'), + .attribute('canSelectAsBestAnswer'), ];