├── .editorconfig ├── .github └── workflows │ └── build.yml ├── .gitignore ├── LICENSE ├── README.md ├── composer.json ├── extend.php ├── js ├── .prettierrc.json ├── admin.js ├── dist │ ├── admin.js │ ├── admin.js.map │ ├── forum.js │ └── forum.js.map ├── forum.js ├── package.json ├── src │ ├── admin │ │ ├── extend.tsx │ │ └── index.js │ ├── common │ │ └── formatBytes.js │ └── forum │ │ ├── components │ │ └── CoverEditorModal.js │ │ ├── extend.ts │ │ └── index.tsx ├── tsconfig.json ├── webpack.config.js └── yarn.lock ├── migrations ├── 2019_10_07_000000_add_cover_column.php └── 2020_07_25_000000_add_default_cover_permissions.php ├── resources ├── less │ ├── admin.less │ └── forum.less └── locale │ ├── en.yml │ └── ru.yml └── src ├── Access └── UserPolicy.php ├── Api ├── UserResourceEndpoints.php └── UserResourceFields.php ├── Command ├── DeleteCover.php ├── DeleteCoverHandler.php ├── UploadCover.php └── UploadCoverHandler.php ├── CoverUploader.php ├── CoverValidator.php └── Event └── CoverSaving.php /.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig helps developers define and maintain consistent 2 | # coding styles between different editors and IDEs 3 | # editorconfig.org 4 | 5 | root = true 6 | 7 | [*] 8 | end_of_line = lf 9 | charset = utf-8 10 | trim_trailing_whitespace = true 11 | insert_final_newline = true 12 | indent_style = space 13 | indent_size = 2 14 | 15 | [*.{diff,md}] 16 | trim_trailing_whitespace = false 17 | 18 | [*.php] 19 | indent_size = 4 20 | -------------------------------------------------------------------------------- /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | name: JavaScript 2 | 3 | on: [workflow_dispatch, push, pull_request] 4 | 5 | jobs: 6 | run: 7 | uses: flarum/framework/.github/workflows/REUSABLE_frontend.yml@2.x 8 | with: 9 | enable_bundlewatch: false 10 | enable_prettier: true 11 | enable_typescript: false 12 | 13 | frontend_directory: ./js 14 | backend_directory: ./ 15 | js_package_manager: yarn 16 | main_git_branch: master 17 | secrets: 18 | bundlewatch_github_token: ${{ secrets.BUNDLEWATCH_GITHUB_TOKEN }} 19 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | vendor 3 | js/node_modules 4 | composer.lock 5 | tests/integration/tmp 6 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) Sami Mazouz 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ProfileCover 2 | ![latest version](https://img.shields.io/github/release/SychO9/flarum-profile-cover.svg?style=flat-square) 3 | ![flarum version](https://img.shields.io/badge/flarum-%5E1.0.0-%23e7742e?style=flat-square) 4 | ![mit license](https://img.shields.io/badge/license-MIT-green.svg?style=flat-square&color=green) 5 | ![downloads](https://img.shields.io/packagist/dt/sycho/flarum-profile-cover?color=%23f28d1a&style=flat-square) 6 | [![donate](https://img.shields.io/badge/donate-buy%20me%20a%20coffee-%23ffde39?style=flat-square)](https://www.buymeacoffee.com/sycho) 7 | 8 | A [Flarum](http://flarum.org/) extension. Adds the ability to upload a cover image to a user profile. 9 | 10 |

11 | flarum_public_admin flarum_public_u_SychOflarum_public_u_SychO (1)flarum_public_u_SychO (2) 12 |

13 | 14 | ## Installation 15 | Using composer: 16 | ```gitattributes 17 | $ composer require sycho/flarum-profile-cover:* 18 | ``` 19 | 20 | ## Updating 21 | Using composer: 22 | ```gitattributes 23 | $ composer update sycho/flarum-profile-cover 24 | ``` 25 | 26 | ## Links 27 | * [GitHub](https://github.com/SychO9/flarum-profile-cover) 28 | * [Packagist](https://packagist.org/packages/sycho/flarum-profile-cover) 29 | * [Extiverse](https://extiverse.com/extension/sycho/flarum-profile-cover) 30 | * [Discuss](https://discuss.flarum.org/d/23437-profile-cover) 31 | 32 | ## License 33 | This software is released under the MIT License. A full copy of this license is included in the package file. 34 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "sycho/flarum-profile-cover", 3 | "description": "Adds the ability to add a cover image to a profile.", 4 | "license": "MIT", 5 | "authors": [ 6 | { 7 | "name": "Sami Ilyes Mazouz", 8 | "email": "ilyasmazouz@gmail.com", 9 | "homepage": "https://sycho9.github.io" 10 | } 11 | ], 12 | "type": "flarum-extension", 13 | "homepage": "https://sycho9.github.io", 14 | "support": { 15 | "issues": "https://github.com/SychO9/flarum-profile-cover/issues", 16 | "source": "https://github.com/SychO9/flarum-profile-cover", 17 | "forum": "https://discuss.flarum.org/d/23437" 18 | }, 19 | "require": { 20 | "flarum/core": "^2.0.0-beta" 21 | }, 22 | "autoload": { 23 | "psr-4": { 24 | "SychO\\ProfileCover\\": "src/" 25 | } 26 | }, 27 | "extra": { 28 | "branch-alias": { 29 | "dev-master": "2.x-dev" 30 | }, 31 | "flarum-extension": { 32 | "title": "Profile Cover", 33 | "category": "feature", 34 | "icon": { 35 | "name": "fas fa-image", 36 | "backgroundColor": "#117187", 37 | "color": "#fff" 38 | } 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /extend.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For detailed copyright and license information, please view the 9 | * LICENSE file that was distributed with this source code. 10 | */ 11 | 12 | use Flarum\Extend; 13 | use Flarum\Foundation\Paths; 14 | use Flarum\Http\UrlGenerator; 15 | use Flarum\User\User; 16 | use SychO\ProfileCover\Access\UserPolicy; 17 | use SychO\ProfileCover\Api\UserResourceEndpoints; 18 | use SychO\ProfileCover\Api\UserResourceFields; 19 | 20 | return [ 21 | (new Extend\Frontend('forum')) 22 | ->js(__DIR__.'/js/dist/forum.js') 23 | ->css(__DIR__.'/resources/less/forum.less'), 24 | 25 | (new Extend\Frontend('admin')) 26 | ->js(__DIR__.'/js/dist/admin.js') 27 | ->css(__DIR__.'/resources/less/admin.less'), 28 | 29 | new Extend\Locales(__DIR__.'/resources/locale'), 30 | 31 | (new Extend\Model(User::class)) 32 | ->cast('cover', 'string'), 33 | 34 | (new Extend\Settings()) 35 | ->serializeToForum('sycho-profile-cover.max_size', 'sycho-profile-cover.max_size'), 36 | 37 | (new Extend\ApiResource(Flarum\Api\Resource\UserResource::class)) 38 | ->fields(UserResourceFields::class) 39 | ->endpoints(UserResourceEndpoints::class), 40 | 41 | (new Extend\Policy()) 42 | ->modelPolicy(User::class, UserPolicy::class), 43 | 44 | (new Extend\Filesystem()) 45 | ->disk('sycho-profile-cover', function (Paths $paths, UrlGenerator $url) { 46 | return [ 47 | 'root' => "$paths->public/assets/covers", 48 | 'url' => $url->to('forum')->path('assets/covers') 49 | ]; 50 | }), 51 | ]; 52 | -------------------------------------------------------------------------------- /js/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 150, 3 | "singleQuote": true, 4 | "tabWidth": 2, 5 | "trailingComma": "es5" 6 | } 7 | -------------------------------------------------------------------------------- /js/admin.js: -------------------------------------------------------------------------------- 1 | export * from './src/admin' 2 | -------------------------------------------------------------------------------- /js/dist/admin.js: -------------------------------------------------------------------------------- 1 | (()=>{var e={n:o=>{var r=o&&o.__esModule?()=>o.default:()=>o;return e.d(r,{a:r}),r},d:(o,r)=>{for(var t in r)e.o(r,t)&&!e.o(o,t)&&Object.defineProperty(o,t,{enumerable:!0,get:r[t]})},o:(e,o)=>Object.prototype.hasOwnProperty.call(e,o),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},o={};(()=>{"use strict";e.r(o),e.d(o,{extend:()=>c});const r=flarum.reg.get("core","admin/app");var t=e.n(r);const a=flarum.reg.get("core","common/extenders");var n=e.n(a);const s=flarum.reg.get("core","common/utils/withAttr");var i=e.n(s);function l(e,o){if(void 0===o&&(o=2),0===e)return"0 Bytes";const r=o<0?0:o,t=Math.floor(Math.log(e)/Math.log(1024));return parseFloat((e/Math.pow(1024,t)).toFixed(r))+" "+["Bytes","KB","MB","GB","TB","PB","EB","ZB","YB"][t]}flarum.reg.add("sychoprofile-cover","common/formatBytes",l);const c=[(new(n().Admin)).setting((()=>({setting:"sycho-profile-cover.thumbnails",type:"boolean",label:t().translator.trans("sycho-profile-cover.admin.thumbnails")}))).setting((()=>function(){const e=this.setting("sycho-profile-cover.max_size",2048);return m("div",{className:"Form-group"},m("label",null,t().translator.trans("sycho-profile-cover.admin.max_size")),m("div",{className:"ProfileCover-size-input"},m("input",{type:"number",className:"FormControl",value:e(),oninput:i()("value",e)}),m("input",{className:"FormControl",value:l(e()*Math.pow(2,10)),disabled:!0})))})).permission((()=>({icon:"fas fa-image",label:t().translator.trans("sycho-profile-cover.admin.permission.set_cover"),permission:"setProfileCover"})),"start")];t().initializers.add("sycho-profile-cover",(()=>{}))})(),module.exports=o})(); 2 | //# sourceMappingURL=admin.js.map -------------------------------------------------------------------------------- /js/dist/admin.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"admin.js","mappings":"MACA,IAAIA,EAAsB,CCA1BA,EAAyBC,IACxB,IAAIC,EAASD,GAAUA,EAAOE,WAC7B,IAAOF,EAAiB,QACxB,IAAM,EAEP,OADAD,EAAoBI,EAAEF,EAAQ,CAAEG,EAAGH,IAC5BA,CAAM,ECLdF,EAAwB,CAACM,EAASC,KACjC,IAAI,IAAIC,KAAOD,EACXP,EAAoBS,EAAEF,EAAYC,KAASR,EAAoBS,EAAEH,EAASE,IAC5EE,OAAOC,eAAeL,EAASE,EAAK,CAAEI,YAAY,EAAMC,IAAKN,EAAWC,IAE1E,ECNDR,EAAwB,CAACc,EAAKC,IAAUL,OAAOM,UAAUC,eAAeC,KAAKJ,EAAKC,GCClFf,EAAyBM,IACH,oBAAXa,QAA0BA,OAAOC,aAC1CV,OAAOC,eAAeL,EAASa,OAAOC,YAAa,CAAEC,MAAO,WAE7DX,OAAOC,eAAeL,EAAS,aAAc,CAAEe,OAAO,GAAO,G,qDCL9D,MAAM,EAA+BC,OAAOC,IAAIV,IAAI,OAAQ,a,aCA5D,MAAM,EAA+BS,OAAOC,IAAIV,IAAI,OAAQ,oB,aCA5D,MAAM,EAA+BS,OAAOC,IAAIV,IAAI,OAAQ,yB,aCA7C,SAASW,EAAYC,EAAOC,GAIzC,QAHiB,IAAbA,IACFA,EAAW,GAEC,IAAVD,EAAa,MAAO,UACxB,MACME,EAAKD,EAAW,EAAI,EAAIA,EAExBE,EAAIC,KAAKC,MAAMD,KAAKE,IAAIN,GAASI,KAAKE,IAHlC,OAIV,OAAOC,YAAYP,EAAQI,KAAKI,IAJtB,KAI6BL,IAAIM,QAAQP,IAAO,IAF5C,CAAC,QAAS,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAEIC,EACxE,CACAN,OAAOC,IAAIY,IAAI,qBAAsB,qBAAsBX,GCP3D,UAAgB,IAAI,YAAeY,SAAQ,KAAM,CAC/CA,QAAS,iCACTC,KAAM,UACNC,MAAO,eAAeC,MAAM,4CAC1BH,SAAQ,IAAM,WAChB,MAAMI,EAAUC,KAAKL,QAAQ,+BAAgC,MAC7D,OAAOM,EAAE,MAAO,CACdC,UAAW,cACVD,EAAE,QAAS,KAAM,eAAeH,MAAM,uCAAwCG,EAAE,MAAO,CACxFC,UAAW,2BACVD,EAAE,QAAS,CACZL,KAAM,SACNM,UAAW,cACXtB,MAAOmB,IACPI,QAAS,IAAS,QAASJ,KACzBE,EAAE,QAAS,CACbC,UAAW,cACXtB,MAAOG,EAAYgB,IAAYX,KAAKI,IAAI,EAAG,KAC3CY,UAAU,KAEd,IAAGC,YAAW,KAAM,CAClBC,KAAM,eACNT,MAAO,eAAeC,MAAM,kDAC5BO,WAAY,qBACV,UC1BJ,iBAAiBX,IAAI,uBAAuB,Q","sources":["webpack://@sycho/flarum-profile-cover/webpack/bootstrap","webpack://@sycho/flarum-profile-cover/webpack/runtime/compat get default export","webpack://@sycho/flarum-profile-cover/webpack/runtime/define property getters","webpack://@sycho/flarum-profile-cover/webpack/runtime/hasOwnProperty shorthand","webpack://@sycho/flarum-profile-cover/webpack/runtime/make namespace object","webpack://@sycho/flarum-profile-cover/external root \"flarum.reg.get('core', 'admin/app')\"","webpack://@sycho/flarum-profile-cover/external root \"flarum.reg.get('core', 'common/extenders')\"","webpack://@sycho/flarum-profile-cover/external root \"flarum.reg.get('core', 'common/utils/withAttr')\"","webpack://@sycho/flarum-profile-cover/./src/common/formatBytes.js","webpack://@sycho/flarum-profile-cover/./src/admin/extend.tsx","webpack://@sycho/flarum-profile-cover/./src/admin/index.js"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'admin/app');","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'common/extenders');","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'common/utils/withAttr');","export default function formatBytes(bytes, decimals) {\n if (decimals === void 0) {\n decimals = 2;\n }\n if (bytes === 0) return '0 Bytes';\n const k = 1024;\n const dm = decimals < 0 ? 0 : decimals;\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];\n}\nflarum.reg.add('sychoprofile-cover', 'common/formatBytes', formatBytes);","import Extend from 'flarum/common/extenders';\nimport app from 'flarum/admin/app';\nimport withAttr from 'flarum/common/utils/withAttr';\nimport formatBytes from '../common/formatBytes';\nexport default [new Extend.Admin().setting(() => ({\n setting: 'sycho-profile-cover.thumbnails',\n type: 'boolean',\n label: app.translator.trans('sycho-profile-cover.admin.thumbnails')\n})).setting(() => function () {\n const maxSize = this.setting('sycho-profile-cover.max_size', 2048);\n return m(\"div\", {\n className: \"Form-group\"\n }, m(\"label\", null, app.translator.trans('sycho-profile-cover.admin.max_size')), m(\"div\", {\n className: \"ProfileCover-size-input\"\n }, m(\"input\", {\n type: \"number\",\n className: \"FormControl\",\n value: maxSize(),\n oninput: withAttr('value', maxSize)\n }), m(\"input\", {\n className: \"FormControl\",\n value: formatBytes(maxSize() * Math.pow(2, 10)),\n disabled: true\n })));\n}).permission(() => ({\n icon: 'fas fa-image',\n label: app.translator.trans('sycho-profile-cover.admin.permission.set_cover'),\n permission: 'setProfileCover'\n}), 'start')];","import app from 'flarum/admin/app';\nexport { default as extend } from './extend';\napp.initializers.add('sycho-profile-cover', () => {\n //\n});"],"names":["__webpack_require__","module","getter","__esModule","d","a","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","flarum","reg","formatBytes","bytes","decimals","dm","i","Math","floor","log","parseFloat","pow","toFixed","add","setting","type","label","trans","maxSize","this","m","className","oninput","disabled","permission","icon"],"sourceRoot":""} -------------------------------------------------------------------------------- /js/dist/forum.js: -------------------------------------------------------------------------------- 1 | (()=>{var t={n:e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return t.d(r,{a:r}),r},d:(e,r)=>{for(var o in r)t.o(r,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};(()=>{"use strict";t.r(e),t.d(e,{extend:()=>k});const r=flarum.reg.get("core","forum/app");var o=t.n(r);const s=flarum.reg.get("core","common/extend"),a=flarum.reg.get("core","forum/components/UserCard");var n=t.n(a);const i=flarum.reg.get("core","forum/utils/UserControls");var c=t.n(i);const l=flarum.reg.get("core","common/components/Button");var u=t.n(l);const d=flarum.reg.get("core","common/components/Form");var h=t.n(d);const f=flarum.reg.get("core","common/components/Modal");var v=t.n(f);const g=flarum.reg.get("core","common/utils/ItemList");var p=t.n(g);const b=flarum.reg.get("core","common/components/LoadingIndicator");var y=t.n(b);function B(t,e){if(void 0===e&&(e=2),0===t)return"0 Bytes";const r=e<0?0:e,o=Math.floor(Math.log(t)/Math.log(1024));return parseFloat((t/Math.pow(1024,o)).toFixed(r))+" "+["Bytes","KB","MB","GB","TB","PB","EB","ZB","YB"][o]}flarum.reg.add("sychoprofile-cover","common/formatBytes",B);class w extends(v()){oninit(t){super.oninit(t),this.maxSize=parseFloat(o().forum.attribute("sycho-profile-cover.max_size")||2048),this.alertAttrs={content:o().translator.trans("sycho-profile-cover.forum.notice",{size:B(this.maxSize*Math.pow(2,10))})},this.loading=!1,this.cover=this.attrs.user.cover_thumbnail()||this.attrs.user.cover(),this.context=""}content(){let t={},e="Modal-image CoverEditor-cover";return this.cover&&(t.style={backgroundImage:"url(".concat(this.cover,")")},e+=" CoverEditor-active"),[m("div",Object.assign({className:e},t),this.loading?m(y(),null):""),m("div",{className:"Modal-body"},m(h(),{className:"Form--centered"},this.fieldsItems().toArray()))]}className(){return"Cover-modal Modal--small"}title(){return o().translator.trans("sycho-profile-cover.forum.edit_cover")}fieldsItems(){const t=new(p());return t.add("actions",this.controlItems().toArray()),t}controlItems(){const t=new(p());return t.add("upload",m(u(),{icon:"fas fa-upload",className:"Button Button--block Button--primary",onclick:this.openPicker.bind(this)},o().translator.trans("core.forum.user.avatar_upload_button"))),t.add("remove",m(u(),{icon:"fas fa-times",className:"Button Button--block",onclick:this.remove.bind(this)},o().translator.trans("core.forum.user.avatar_remove_button"))),t}openPicker(){$('').appendTo("body").hide().click().on("change",(t=>{this.upload($(t.target)[0].files[0])}))}upload(t){if(this.loading)return;const e=new FormData;e.append("cover",t),this.loading=!0,this.context="added",m.redraw(),o().request({method:"POST",url:"".concat(o().forum.attribute("apiUrl"),"/users/").concat(this.attrs.user.id(),"/cover"),serialize:t=>t,body:e}).then(this.success.bind(this),this.failure.bind(this))}remove(){this.loading=!0,this.context="removed",m.redraw(),o().request({method:"DELETE",url:"".concat(o().forum.attribute("apiUrl"),"/users/").concat(this.attrs.user.id(),"/cover")}).then(this.success.bind(this),this.failure.bind(this))}success(t){o().store.pushPayload(t),this.showAlert("success"),this.loading=!1,m.redraw(),this.hide()}failure(){this.showAlert("error"),this.loading=!1,m.redraw()}showAlert(t){this.alertAttrs.content=o().translator.trans("sycho-profile-cover.forum.".concat(this.context,".").concat(t)),this.alertAttrs.type=t}}flarum.reg.add("sychoprofile-cover","forum/components/CoverEditorModal",w);const x=flarum.reg.get("core","common/extenders");var M=t.n(x);const _=flarum.reg.get("core","common/models/User");var P=t.n(_);const k=[new(M().Model)(P()).attribute("cover").attribute("cover_thumbnail").attribute("canSetProfileCover")];o().initializers.add("sycho-profile-cover",(()=>{(0,s.extend)(n().prototype,"view",(function(t){if(!t.attrs.style||!this.attrs.user.cover())return;let e=this.attrs.user.cover(),r=this.attrs.user.cover_thumbnail();e&&(this.attrs.controlsButtonClassName.includes("Button--icon")&&r&&(e=r),t.attrs.style=Object.assign(t.attrs.style,{"--background-image":"url(".concat(e,")")}))})),(0,s.extend)(c(),"moderationControls",(function(t,e){if(e.canSetProfileCover())return t.add("cover",m(u(),{icon:"fas fa-image",onclick:()=>o().modal.show(w,{user:e})},o().translator.trans("sycho-profile-cover.forum.cover"))),t}))}))})(),module.exports=e})(); 2 | //# sourceMappingURL=forum.js.map -------------------------------------------------------------------------------- /js/dist/forum.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"forum.js","mappings":"MACA,IAAIA,EAAsB,CCA1BA,EAAyBC,IACxB,IAAIC,EAASD,GAAUA,EAAOE,WAC7B,IAAOF,EAAiB,QACxB,IAAM,EAEP,OADAD,EAAoBI,EAAEF,EAAQ,CAAEG,EAAGH,IAC5BA,CAAM,ECLdF,EAAwB,CAACM,EAASC,KACjC,IAAI,IAAIC,KAAOD,EACXP,EAAoBS,EAAEF,EAAYC,KAASR,EAAoBS,EAAEH,EAASE,IAC5EE,OAAOC,eAAeL,EAASE,EAAK,CAAEI,YAAY,EAAMC,IAAKN,EAAWC,IAE1E,ECNDR,EAAwB,CAACc,EAAKC,IAAUL,OAAOM,UAAUC,eAAeC,KAAKJ,EAAKC,GCClFf,EAAyBM,IACH,oBAAXa,QAA0BA,OAAOC,aAC1CV,OAAOC,eAAeL,EAASa,OAAOC,YAAa,CAAEC,MAAO,WAE7DX,OAAOC,eAAeL,EAAS,aAAc,CAAEe,OAAO,GAAO,G,qDCL9D,MAAM,EAA+BC,OAAOC,IAAIV,IAAI,OAAQ,a,aCA5D,MAAM,EAA+BS,OAAOC,IAAIV,IAAI,OAAQ,iBCAtD,EAA+BS,OAAOC,IAAIV,IAAI,OAAQ,6B,aCA5D,MAAM,EAA+BS,OAAOC,IAAIV,IAAI,OAAQ,4B,aCA5D,MAAM,EAA+BS,OAAOC,IAAIV,IAAI,OAAQ,4B,aCA5D,MAAM,EAA+BS,OAAOC,IAAIV,IAAI,OAAQ,0B,aCA5D,MAAM,EAA+BS,OAAOC,IAAIV,IAAI,OAAQ,2B,aCA5D,MAAM,EAA+BS,OAAOC,IAAIV,IAAI,OAAQ,yB,aCA5D,MAAM,EAA+BS,OAAOC,IAAIV,IAAI,OAAQ,sC,aCA7C,SAASW,EAAYC,EAAOC,GAIzC,QAHiB,IAAbA,IACFA,EAAW,GAEC,IAAVD,EAAa,MAAO,UACxB,MACME,EAAKD,EAAW,EAAI,EAAIA,EAExBE,EAAIC,KAAKC,MAAMD,KAAKE,IAAIN,GAASI,KAAKE,IAHlC,OAIV,OAAOC,YAAYP,EAAQI,KAAKI,IAJtB,KAI6BL,IAAIM,QAAQP,IAAO,IAF5C,CAAC,QAAS,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAEIC,EACxE,CACAN,OAAOC,IAAIY,IAAI,qBAAsB,qBAAsBX,GCJ5C,MAAMY,UAAyB,KAC5C,MAAAC,CAAOC,GACLC,MAAMF,OAAOC,GACbE,KAAKC,QAAUT,WAAW,UAAUU,UAAU,iCAAmC,MACjFF,KAAKG,WAAa,CAChBC,QAAS,eAAeC,MAAM,mCAAoC,CAChEC,KAAMtB,EAAYgB,KAAKC,QAAUZ,KAAKI,IAAI,EAAG,QAGjDO,KAAKO,SAAU,EACfP,KAAKQ,MAAQR,KAAKS,MAAMC,KAAKC,mBAAqBX,KAAKS,MAAMC,KAAKF,QAClER,KAAKY,QAAU,EACjB,CACA,OAAAR,GACE,IAAIK,EAAQ,CAAC,EACTI,EAAY,gCAOhB,OANIb,KAAKQ,QACPC,EAAMK,MAAQ,CACZC,gBAAiB,OAAOC,OAAOhB,KAAKQ,MAAO,MAE7CK,GAAa,uBAER,CAACI,EAAE,MAAO/C,OAAOgD,OAAO,CAC7BL,UAAWA,GACVJ,GAAQT,KAAKO,QAAUU,EAAE,IAAkB,MAAQ,IAAKA,EAAE,MAAO,CAClEJ,UAAW,cACVI,EAAE,IAAM,CACTJ,UAAW,kBACVb,KAAKmB,cAAcC,YACxB,CACA,SAAAP,GACE,MAAO,0BACT,CACA,KAAAQ,GACE,OAAO,eAAehB,MAAM,uCAC9B,CACA,WAAAc,GACE,MAAMG,EAAQ,IAAI,KAElB,OADAA,EAAM3B,IAAI,UAAWK,KAAKuB,eAAeH,WAClCE,CACT,CACA,YAAAC,GACE,MAAMD,EAAQ,IAAI,KAWlB,OAVAA,EAAM3B,IAAI,SAAUsB,EAAE,IAAQ,CAC5BO,KAAM,gBACNX,UAAW,uCACXY,QAASzB,KAAK0B,WAAWC,KAAK3B,OAC7B,eAAeK,MAAM,0CACxBiB,EAAM3B,IAAI,SAAUsB,EAAE,IAAQ,CAC5BO,KAAM,eACNX,UAAW,uBACXY,QAASzB,KAAK4B,OAAOD,KAAK3B,OACzB,eAAeK,MAAM,0CACjBiB,CACT,CACA,UAAAI,GACgBG,EAAE,uBACVC,SAAS,QAAQC,OAAOC,QAAQC,GAAG,UAAUC,IACjDlC,KAAKmC,OAAON,EAAEK,EAAEE,QAAQ,GAAGC,MAAM,GAAG,GAExC,CACA,MAAAF,CAAOG,GACL,GAAItC,KAAKO,QAAS,OAClB,MAAMgC,EAAO,IAAIC,SACjBD,EAAKE,OAAO,QAASH,GACrBtC,KAAKO,SAAU,EACfP,KAAKY,QAAU,QACfK,EAAEyB,SACF,YAAY,CACVC,OAAQ,OACRC,IAAK,GAAG5B,OAAO,UAAUd,UAAU,UAAW,WAAWc,OAAOhB,KAAKS,MAAMC,KAAKmC,KAAM,UACtFC,UAAWC,GAAOA,EAClBC,KAAMT,IACLU,KAAKjD,KAAKkD,QAAQvB,KAAK3B,MAAOA,KAAKmD,QAAQxB,KAAK3B,MACrD,CACA,MAAA4B,GACE5B,KAAKO,SAAU,EACfP,KAAKY,QAAU,UACfK,EAAEyB,SACF,YAAY,CACVC,OAAQ,SACRC,IAAK,GAAG5B,OAAO,UAAUd,UAAU,UAAW,WAAWc,OAAOhB,KAAKS,MAAMC,KAAKmC,KAAM,YACrFI,KAAKjD,KAAKkD,QAAQvB,KAAK3B,MAAOA,KAAKmD,QAAQxB,KAAK3B,MACrD,CACA,OAAAkD,CAAQE,GACN,UAAUC,YAAYD,GACtBpD,KAAKsD,UAAU,WACftD,KAAKO,SAAU,EACfU,EAAEyB,SACF1C,KAAK+B,MACP,CACA,OAAAoB,GACEnD,KAAKsD,UAAU,SACftD,KAAKO,SAAU,EACfU,EAAEyB,QACJ,CACA,SAAAY,CAAUC,GACRvD,KAAKG,WAAWC,QAAU,eAAeC,MAAM,6BAA6BW,OAAOhB,KAAKY,QAAS,KAAKI,OAAOuC,IAC7GvD,KAAKG,WAAWoD,KAAOA,CACzB,EAEFzE,OAAOC,IAAIY,IAAI,qBAAsB,oCAAqCC,GC5G1E,MAAM,EAA+Bd,OAAOC,IAAIV,IAAI,OAAQ,oB,aCA5D,MAAM,EAA+BS,OAAOC,IAAIV,IAAI,OAAQ,sB,aCE5D,SAAgB,IAAI,WAAa,KAAM6B,UAAU,SAASA,UAAU,mBAAmBA,UAAU,uBCKjG,iBAAiBP,IAAI,uBAAuB,MAC1C,IAAA6D,QAAO,cAAoB,QAAQ,SAAUC,GAC3C,IAAKA,EAAKhD,MAAMK,QAAUd,KAAKS,MAAMC,KAAKF,QAAS,OACnD,IAAIkD,EAAW1D,KAAKS,MAAMC,KAAKF,QAC3BmD,EAAe3D,KAAKS,MAAMC,KAAKC,kBAC9B+C,IACD1D,KAAKS,MAAMmD,wBAAwBC,SAAS,iBAAmBF,IACjED,EAAWC,GAEbF,EAAKhD,MAAMK,MAAQ5C,OAAOgD,OAAOuC,EAAKhD,MAAMK,MAAO,CACjD,qBAAsB,OAAOE,OAAO0C,EAAU,OAElD,KACA,IAAAF,QAAO,IAAc,sBAAsB,SAAUlC,EAAOZ,GAC1D,GAAKA,EAAKoD,qBAOV,OANAxC,EAAM3B,IAAI,QAASsB,EAAE,IAAQ,CAC3BO,KAAM,eACNC,QAAS,IAAM,UAAUsC,KAAKnE,EAAkB,CAC9Cc,UAED,eAAeL,MAAM,qCACjBiB,CACT,GAAE,G","sources":["webpack://@sycho/flarum-profile-cover/webpack/bootstrap","webpack://@sycho/flarum-profile-cover/webpack/runtime/compat get default export","webpack://@sycho/flarum-profile-cover/webpack/runtime/define property getters","webpack://@sycho/flarum-profile-cover/webpack/runtime/hasOwnProperty shorthand","webpack://@sycho/flarum-profile-cover/webpack/runtime/make namespace object","webpack://@sycho/flarum-profile-cover/external root \"flarum.reg.get('core', 'forum/app')\"","webpack://@sycho/flarum-profile-cover/external root \"flarum.reg.get('core', 'common/extend')\"","webpack://@sycho/flarum-profile-cover/external root \"flarum.reg.get('core', 'forum/components/UserCard')\"","webpack://@sycho/flarum-profile-cover/external root \"flarum.reg.get('core', 'forum/utils/UserControls')\"","webpack://@sycho/flarum-profile-cover/external root \"flarum.reg.get('core', 'common/components/Button')\"","webpack://@sycho/flarum-profile-cover/external root \"flarum.reg.get('core', 'common/components/Form')\"","webpack://@sycho/flarum-profile-cover/external root \"flarum.reg.get('core', 'common/components/Modal')\"","webpack://@sycho/flarum-profile-cover/external root \"flarum.reg.get('core', 'common/utils/ItemList')\"","webpack://@sycho/flarum-profile-cover/external root \"flarum.reg.get('core', 'common/components/LoadingIndicator')\"","webpack://@sycho/flarum-profile-cover/./src/common/formatBytes.js","webpack://@sycho/flarum-profile-cover/./src/forum/components/CoverEditorModal.js","webpack://@sycho/flarum-profile-cover/external root \"flarum.reg.get('core', 'common/extenders')\"","webpack://@sycho/flarum-profile-cover/external root \"flarum.reg.get('core', 'common/models/User')\"","webpack://@sycho/flarum-profile-cover/./src/forum/extend.ts","webpack://@sycho/flarum-profile-cover/./src/forum/index.tsx"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'forum/app');","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'common/extend');","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'forum/components/UserCard');","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'forum/utils/UserControls');","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'common/components/Button');","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'common/components/Form');","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'common/components/Modal');","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'common/utils/ItemList');","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'common/components/LoadingIndicator');","export default function formatBytes(bytes, decimals) {\n if (decimals === void 0) {\n decimals = 2;\n }\n if (bytes === 0) return '0 Bytes';\n const k = 1024;\n const dm = decimals < 0 ? 0 : decimals;\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];\n}\nflarum.reg.add('sychoprofile-cover', 'common/formatBytes', formatBytes);","import Form from 'flarum/common/components/Form';\nimport app from 'flarum/forum/app';\nimport Modal from 'flarum/common/components/Modal';\nimport Button from 'flarum/common/components/Button';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport LoadingIndicator from 'flarum/common/components/LoadingIndicator';\nimport formatBytes from '../../common/formatBytes';\nexport default class CoverEditorModal extends Modal {\n oninit(vnode) {\n super.oninit(vnode);\n this.maxSize = parseFloat(app.forum.attribute('sycho-profile-cover.max_size') || 2048);\n this.alertAttrs = {\n content: app.translator.trans('sycho-profile-cover.forum.notice', {\n size: formatBytes(this.maxSize * Math.pow(2, 10))\n })\n };\n this.loading = false;\n this.cover = this.attrs.user.cover_thumbnail() || this.attrs.user.cover();\n this.context = '';\n }\n content() {\n let attrs = {};\n let className = 'Modal-image CoverEditor-cover';\n if (this.cover) {\n attrs.style = {\n backgroundImage: \"url(\".concat(this.cover, \")\")\n };\n className += ' CoverEditor-active';\n }\n return [m(\"div\", Object.assign({\n className: className\n }, attrs), this.loading ? m(LoadingIndicator, null) : ''), m(\"div\", {\n className: \"Modal-body\"\n }, m(Form, {\n className: \"Form--centered\"\n }, this.fieldsItems().toArray()))];\n }\n className() {\n return 'Cover-modal Modal--small';\n }\n title() {\n return app.translator.trans('sycho-profile-cover.forum.edit_cover');\n }\n fieldsItems() {\n const items = new ItemList();\n items.add('actions', this.controlItems().toArray());\n return items;\n }\n controlItems() {\n const items = new ItemList();\n items.add('upload', m(Button, {\n icon: \"fas fa-upload\",\n className: \"Button Button--block Button--primary\",\n onclick: this.openPicker.bind(this)\n }, app.translator.trans('core.forum.user.avatar_upload_button')));\n items.add('remove', m(Button, {\n icon: \"fas fa-times\",\n className: \"Button Button--block\",\n onclick: this.remove.bind(this)\n }, app.translator.trans('core.forum.user.avatar_remove_button')));\n return items;\n }\n openPicker() {\n const input = $('');\n input.appendTo('body').hide().click().on('change', e => {\n this.upload($(e.target)[0].files[0]);\n });\n }\n upload(file) {\n if (this.loading) return;\n const data = new FormData();\n data.append('cover', file);\n this.loading = true;\n this.context = 'added';\n m.redraw();\n app.request({\n method: 'POST',\n url: \"\".concat(app.forum.attribute('apiUrl'), \"/users/\").concat(this.attrs.user.id(), \"/cover\"),\n serialize: raw => raw,\n body: data\n }).then(this.success.bind(this), this.failure.bind(this));\n }\n remove() {\n this.loading = true;\n this.context = 'removed';\n m.redraw();\n app.request({\n method: 'DELETE',\n url: \"\".concat(app.forum.attribute('apiUrl'), \"/users/\").concat(this.attrs.user.id(), \"/cover\")\n }).then(this.success.bind(this), this.failure.bind(this));\n }\n success(response) {\n app.store.pushPayload(response);\n this.showAlert('success');\n this.loading = false;\n m.redraw();\n this.hide();\n }\n failure() {\n this.showAlert('error');\n this.loading = false;\n m.redraw();\n }\n showAlert(type) {\n this.alertAttrs.content = app.translator.trans(\"sycho-profile-cover.forum.\".concat(this.context, \".\").concat(type));\n this.alertAttrs.type = type;\n }\n}\nflarum.reg.add('sychoprofile-cover', 'forum/components/CoverEditorModal', CoverEditorModal);","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'common/extenders');","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.reg.get('core', 'common/models/User');","import Extend from 'flarum/common/extenders';\nimport User from 'flarum/common/models/User';\nexport default [new Extend.Model(User).attribute('cover').attribute('cover_thumbnail').attribute('canSetProfileCover')];","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport UserCard from 'flarum/forum/components/UserCard';\nimport UserControls from 'flarum/forum/utils/UserControls';\nimport Button from 'flarum/common/components/Button';\nimport CoverEditorModal from './components/CoverEditorModal';\nexport { default as extend } from './extend';\napp.initializers.add('sycho-profile-cover', () => {\n extend(UserCard.prototype, 'view', function (view) {\n if (!view.attrs.style || !this.attrs.user.cover()) return;\n let coverUrl = this.attrs.user.cover();\n let thumbnailUrl = this.attrs.user.cover_thumbnail();\n if (!coverUrl) return;\n if (this.attrs.controlsButtonClassName.includes('Button--icon') && thumbnailUrl) {\n coverUrl = thumbnailUrl;\n }\n view.attrs.style = Object.assign(view.attrs.style, {\n '--background-image': \"url(\".concat(coverUrl, \")\")\n });\n });\n extend(UserControls, 'moderationControls', function (items, user) {\n if (!user.canSetProfileCover()) return;\n items.add('cover', m(Button, {\n icon: \"fas fa-image\",\n onclick: () => app.modal.show(CoverEditorModal, {\n user\n })\n }, app.translator.trans('sycho-profile-cover.forum.cover')));\n return items;\n });\n});"],"names":["__webpack_require__","module","getter","__esModule","d","a","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","flarum","reg","formatBytes","bytes","decimals","dm","i","Math","floor","log","parseFloat","pow","toFixed","add","CoverEditorModal","oninit","vnode","super","this","maxSize","attribute","alertAttrs","content","trans","size","loading","cover","attrs","user","cover_thumbnail","context","className","style","backgroundImage","concat","m","assign","fieldsItems","toArray","title","items","controlItems","icon","onclick","openPicker","bind","remove","$","appendTo","hide","click","on","e","upload","target","files","file","data","FormData","append","redraw","method","url","id","serialize","raw","body","then","success","failure","response","pushPayload","showAlert","type","extend","view","coverUrl","thumbnailUrl","controlsButtonClassName","includes","canSetProfileCover","show"],"sourceRoot":""} -------------------------------------------------------------------------------- /js/forum.js: -------------------------------------------------------------------------------- 1 | export * from './src/forum' -------------------------------------------------------------------------------- /js/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@sycho/flarum-profile-cover", 3 | "version": "1.1.6", 4 | "prettier": "@flarum/prettier-config", 5 | "devDependencies": { 6 | "@flarum/prettier-config": "^1.0.0", 7 | "flarum-tsconfig": "^2.0.0", 8 | "flarum-webpack-config": "^3.0.0", 9 | "prettier": "^2.5.1", 10 | "typescript": "^4.5.4", 11 | "typescript-coverage-report": "^0.6.1", 12 | "webpack": "^5.65.0", 13 | "webpack-cli": "^4.9.1" 14 | }, 15 | "scripts": { 16 | "dev": "webpack --mode development --watch", 17 | "build": "webpack --mode production", 18 | "analyze": "cross-env ANALYZER=true <%= params.jsPackageManager %> run build", 19 | "format": "prettier --write src", 20 | "format-check": "prettier --check src", 21 | "clean-typings": "npx rimraf dist-typings && mkdir dist-typings", 22 | "build-typings": "<%= params.jsPackageManager %> run clean-typings && ([ -e src/@types ] && cp -r src/@types dist-typings/@types || true) && tsc && <%= params.jsPackageManager %> run post-build-typings", 23 | "post-build-typings": "find dist-typings -type f -name '*.d.ts' -print0 | xargs -0 sed -i 's,../src/@types,@types,g'", 24 | "check-typings": "tsc --noEmit --emitDeclarationOnly false", 25 | "check-typings-coverage": "typescript-coverage-report" 26 | } 27 | } -------------------------------------------------------------------------------- /js/src/admin/extend.tsx: -------------------------------------------------------------------------------- 1 | import Extend from 'flarum/common/extenders'; 2 | import app from 'flarum/admin/app'; 3 | import withAttr from 'flarum/common/utils/withAttr'; 4 | import formatBytes from '../common/formatBytes'; 5 | 6 | export default [ 7 | new Extend.Admin() 8 | .setting(() => ({ 9 | setting: 'sycho-profile-cover.thumbnails', 10 | type: 'boolean', 11 | label: app.translator.trans('sycho-profile-cover.admin.thumbnails'), 12 | })) 13 | .setting( 14 | () => 15 | function () { 16 | const maxSize = this.setting('sycho-profile-cover.max_size', 2048); 17 | 18 | return ( 19 |
20 | 21 |
22 | 23 | 24 |
25 |
26 | ); 27 | } 28 | ) 29 | .permission( 30 | () => ({ 31 | icon: 'fas fa-image', 32 | label: app.translator.trans('sycho-profile-cover.admin.permission.set_cover'), 33 | permission: 'setProfileCover', 34 | }), 35 | 'start' 36 | ), 37 | ]; 38 | -------------------------------------------------------------------------------- /js/src/admin/index.js: -------------------------------------------------------------------------------- 1 | import app from 'flarum/admin/app'; 2 | 3 | export { default as extend } from './extend'; 4 | 5 | app.initializers.add('sycho-profile-cover', () => { 6 | // 7 | }); 8 | -------------------------------------------------------------------------------- /js/src/common/formatBytes.js: -------------------------------------------------------------------------------- 1 | export default function formatBytes(bytes, decimals = 2) { 2 | if (bytes === 0) return '0 Bytes'; 3 | 4 | const k = 1024; 5 | const dm = decimals < 0 ? 0 : decimals; 6 | const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']; 7 | 8 | const i = Math.floor(Math.log(bytes) / Math.log(k)); 9 | 10 | return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i]; 11 | } 12 | -------------------------------------------------------------------------------- /js/src/forum/components/CoverEditorModal.js: -------------------------------------------------------------------------------- 1 | import Form from 'flarum/common/components/Form'; 2 | import app from 'flarum/forum/app'; 3 | import Modal from 'flarum/common/components/Modal'; 4 | import Button from 'flarum/common/components/Button'; 5 | import ItemList from 'flarum/common/utils/ItemList'; 6 | import LoadingIndicator from 'flarum/common/components/LoadingIndicator'; 7 | import formatBytes from '../../common/formatBytes'; 8 | 9 | export default class CoverEditorModal extends Modal { 10 | oninit(vnode) { 11 | super.oninit(vnode); 12 | 13 | this.maxSize = parseFloat(app.forum.attribute('sycho-profile-cover.max_size') || 2048); 14 | 15 | this.alertAttrs = { 16 | content: app.translator.trans('sycho-profile-cover.forum.notice', { size: formatBytes(this.maxSize * Math.pow(2, 10)) }), 17 | }; 18 | 19 | this.loading = false; 20 | this.cover = this.attrs.user.cover_thumbnail() || this.attrs.user.cover(); 21 | this.context = ''; 22 | } 23 | 24 | content() { 25 | let attrs = {}; 26 | let className = 'Modal-image CoverEditor-cover'; 27 | 28 | if (this.cover) { 29 | attrs.style = { backgroundImage: `url(${this.cover})` }; 30 | className += ' CoverEditor-active'; 31 | } 32 | 33 | return [ 34 |
35 | {this.loading ? : ''} 36 |
, 37 | 38 |
39 |
{this.fieldsItems().toArray()}
40 |
, 41 | ]; 42 | } 43 | 44 | className() { 45 | return 'Cover-modal Modal--small'; 46 | } 47 | 48 | title() { 49 | return app.translator.trans('sycho-profile-cover.forum.edit_cover'); 50 | } 51 | 52 | fieldsItems() { 53 | const items = new ItemList(); 54 | 55 | items.add('actions', this.controlItems().toArray()); 56 | 57 | return items; 58 | } 59 | 60 | controlItems() { 61 | const items = new ItemList(); 62 | 63 | items.add( 64 | 'upload', 65 | 68 | ); 69 | 70 | items.add( 71 | 'remove', 72 | 75 | ); 76 | 77 | return items; 78 | } 79 | 80 | openPicker() { 81 | const input = $(''); 82 | 83 | input 84 | .appendTo('body') 85 | .hide() 86 | .click() 87 | .on('change', (e) => { 88 | this.upload($(e.target)[0].files[0]); 89 | }); 90 | } 91 | 92 | upload(file) { 93 | if (this.loading) return; 94 | 95 | const data = new FormData(); 96 | data.append('cover', file); 97 | 98 | this.loading = true; 99 | this.context = 'added'; 100 | m.redraw(); 101 | 102 | app 103 | .request({ 104 | method: 'POST', 105 | url: `${app.forum.attribute('apiUrl')}/users/${this.attrs.user.id()}/cover`, 106 | serialize: (raw) => raw, 107 | body: data, 108 | }) 109 | .then(this.success.bind(this), this.failure.bind(this)); 110 | } 111 | 112 | remove() { 113 | this.loading = true; 114 | this.context = 'removed'; 115 | m.redraw(); 116 | 117 | app 118 | .request({ 119 | method: 'DELETE', 120 | url: `${app.forum.attribute('apiUrl')}/users/${this.attrs.user.id()}/cover`, 121 | }) 122 | .then(this.success.bind(this), this.failure.bind(this)); 123 | } 124 | 125 | success(response) { 126 | app.store.pushPayload(response); 127 | 128 | this.showAlert('success'); 129 | this.loading = false; 130 | m.redraw(); 131 | this.hide(); 132 | } 133 | 134 | failure() { 135 | this.showAlert('error'); 136 | this.loading = false; 137 | m.redraw(); 138 | } 139 | 140 | showAlert(type) { 141 | this.alertAttrs.content = app.translator.trans(`sycho-profile-cover.forum.${this.context}.${type}`); 142 | this.alertAttrs.type = type; 143 | } 144 | } 145 | -------------------------------------------------------------------------------- /js/src/forum/extend.ts: -------------------------------------------------------------------------------- 1 | import Extend from 'flarum/common/extenders'; 2 | import User from 'flarum/common/models/User'; 3 | 4 | export default [ 5 | new Extend.Model(User).attribute('cover').attribute('cover_thumbnail').attribute('canSetProfileCover'), 6 | ]; 7 | -------------------------------------------------------------------------------- /js/src/forum/index.tsx: -------------------------------------------------------------------------------- 1 | import app from 'flarum/forum/app'; 2 | import { extend } from 'flarum/common/extend'; 3 | import UserCard from 'flarum/forum/components/UserCard'; 4 | import UserControls from 'flarum/forum/utils/UserControls'; 5 | import Button from 'flarum/common/components/Button'; 6 | import type Mithril from 'mithril'; 7 | import CoverEditorModal from './components/CoverEditorModal'; 8 | 9 | export { default as extend } from './extend'; 10 | 11 | app.initializers.add('sycho-profile-cover', () => { 12 | extend(UserCard.prototype, 'view', function (view: Mithril.Vnode) { 13 | if (!view.attrs.style || !this.attrs.user.cover()) return; 14 | 15 | let coverUrl = this.attrs.user.cover(); 16 | let thumbnailUrl = this.attrs.user.cover_thumbnail(); 17 | 18 | if (!coverUrl) return; 19 | 20 | if (this.attrs.controlsButtonClassName.includes('Button--icon') && thumbnailUrl) { 21 | coverUrl = thumbnailUrl; 22 | } 23 | 24 | view.attrs.style = Object.assign(view.attrs.style, { 25 | '--background-image': `url(${coverUrl})`, 26 | }); 27 | }); 28 | 29 | extend(UserControls, 'moderationControls', function (items, user) { 30 | if (!user.canSetProfileCover()) return; 31 | 32 | items.add( 33 | 'cover', 34 | 37 | ); 38 | 39 | return items; 40 | }); 41 | }); 42 | -------------------------------------------------------------------------------- /js/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | // Use Flarum's tsconfig as a starting point 3 | "extends": "flarum-tsconfig", 4 | // This will match all .ts, .tsx, .d.ts, .js, .jsx files in your `src` folder 5 | // and also tells your Typescript server to read core's global typings for 6 | // access to `dayjs` and `$` in the global namespace. 7 | "include": ["src/**/*", "../vendor/flarum/core/js/dist-typings/@types/**/*"], 8 | "compilerOptions": { 9 | // This will output typings to `dist-typings` 10 | "declarationDir": "./dist-typings", 11 | "baseUrl": ".", 12 | "paths": { 13 | "flarum/*": ["../vendor/flarum/core/js/dist-typings/*"] 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /js/webpack.config.js: -------------------------------------------------------------------------------- 1 | module.exports = require('flarum-webpack-config')(); -------------------------------------------------------------------------------- /js/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@ampproject/remapping@^2.2.0": 6 | version "2.3.0" 7 | resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4" 8 | integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== 9 | dependencies: 10 | "@jridgewell/gen-mapping" "^0.3.5" 11 | "@jridgewell/trace-mapping" "^0.3.24" 12 | 13 | "@babel/code-frame@^7.25.9", "@babel/code-frame@^7.26.0", "@babel/code-frame@^7.26.2": 14 | version "7.26.2" 15 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.26.2.tgz#4b5fab97d33338eff916235055f0ebc21e573a85" 16 | integrity sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ== 17 | dependencies: 18 | "@babel/helper-validator-identifier" "^7.25.9" 19 | js-tokens "^4.0.0" 20 | picocolors "^1.0.0" 21 | 22 | "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.25.9", "@babel/compat-data@^7.26.0": 23 | version "7.26.3" 24 | resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.26.3.tgz#99488264a56b2aded63983abd6a417f03b92ed02" 25 | integrity sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g== 26 | 27 | "@babel/core@^7.20.2": 28 | version "7.26.0" 29 | resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.26.0.tgz#d78b6023cc8f3114ccf049eb219613f74a747b40" 30 | integrity sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg== 31 | dependencies: 32 | "@ampproject/remapping" "^2.2.0" 33 | "@babel/code-frame" "^7.26.0" 34 | "@babel/generator" "^7.26.0" 35 | "@babel/helper-compilation-targets" "^7.25.9" 36 | "@babel/helper-module-transforms" "^7.26.0" 37 | "@babel/helpers" "^7.26.0" 38 | "@babel/parser" "^7.26.0" 39 | "@babel/template" "^7.25.9" 40 | "@babel/traverse" "^7.25.9" 41 | "@babel/types" "^7.26.0" 42 | convert-source-map "^2.0.0" 43 | debug "^4.1.0" 44 | gensync "^1.0.0-beta.2" 45 | json5 "^2.2.3" 46 | semver "^6.3.1" 47 | 48 | "@babel/generator@^7.26.0", "@babel/generator@^7.26.3": 49 | version "7.26.3" 50 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.26.3.tgz#ab8d4360544a425c90c248df7059881f4b2ce019" 51 | integrity sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ== 52 | dependencies: 53 | "@babel/parser" "^7.26.3" 54 | "@babel/types" "^7.26.3" 55 | "@jridgewell/gen-mapping" "^0.3.5" 56 | "@jridgewell/trace-mapping" "^0.3.25" 57 | jsesc "^3.0.2" 58 | 59 | "@babel/helper-annotate-as-pure@^7.25.9": 60 | version "7.25.9" 61 | resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz#d8eac4d2dc0d7b6e11fa6e535332e0d3184f06b4" 62 | integrity sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g== 63 | dependencies: 64 | "@babel/types" "^7.25.9" 65 | 66 | "@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.25.9": 67 | version "7.25.9" 68 | resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz#55af025ce365be3cdc0c1c1e56c6af617ce88875" 69 | integrity sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ== 70 | dependencies: 71 | "@babel/compat-data" "^7.25.9" 72 | "@babel/helper-validator-option" "^7.25.9" 73 | browserslist "^4.24.0" 74 | lru-cache "^5.1.1" 75 | semver "^6.3.1" 76 | 77 | "@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.25.9": 78 | version "7.25.9" 79 | resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz#7644147706bb90ff613297d49ed5266bde729f83" 80 | integrity sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ== 81 | dependencies: 82 | "@babel/helper-annotate-as-pure" "^7.25.9" 83 | "@babel/helper-member-expression-to-functions" "^7.25.9" 84 | "@babel/helper-optimise-call-expression" "^7.25.9" 85 | "@babel/helper-replace-supers" "^7.25.9" 86 | "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" 87 | "@babel/traverse" "^7.25.9" 88 | semver "^6.3.1" 89 | 90 | "@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.25.9": 91 | version "7.26.3" 92 | resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.26.3.tgz#5169756ecbe1d95f7866b90bb555b022595302a0" 93 | integrity sha512-G7ZRb40uUgdKOQqPLjfD12ZmGA54PzqDFUv2BKImnC9QIfGhIHKvVML0oN8IUiDq4iRqpq74ABpvOaerfWdong== 94 | dependencies: 95 | "@babel/helper-annotate-as-pure" "^7.25.9" 96 | regexpu-core "^6.2.0" 97 | semver "^6.3.1" 98 | 99 | "@babel/helper-define-polyfill-provider@^0.6.2", "@babel/helper-define-polyfill-provider@^0.6.3": 100 | version "0.6.3" 101 | resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.3.tgz#f4f2792fae2ef382074bc2d713522cf24e6ddb21" 102 | integrity sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg== 103 | dependencies: 104 | "@babel/helper-compilation-targets" "^7.22.6" 105 | "@babel/helper-plugin-utils" "^7.22.5" 106 | debug "^4.1.1" 107 | lodash.debounce "^4.0.8" 108 | resolve "^1.14.2" 109 | 110 | "@babel/helper-member-expression-to-functions@^7.25.9": 111 | version "7.25.9" 112 | resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz#9dfffe46f727005a5ea29051ac835fb735e4c1a3" 113 | integrity sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ== 114 | dependencies: 115 | "@babel/traverse" "^7.25.9" 116 | "@babel/types" "^7.25.9" 117 | 118 | "@babel/helper-module-imports@^7.25.9": 119 | version "7.25.9" 120 | resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz#e7f8d20602ebdbf9ebbea0a0751fb0f2a4141715" 121 | integrity sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw== 122 | dependencies: 123 | "@babel/traverse" "^7.25.9" 124 | "@babel/types" "^7.25.9" 125 | 126 | "@babel/helper-module-transforms@^7.25.9", "@babel/helper-module-transforms@^7.26.0": 127 | version "7.26.0" 128 | resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz#8ce54ec9d592695e58d84cd884b7b5c6a2fdeeae" 129 | integrity sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw== 130 | dependencies: 131 | "@babel/helper-module-imports" "^7.25.9" 132 | "@babel/helper-validator-identifier" "^7.25.9" 133 | "@babel/traverse" "^7.25.9" 134 | 135 | "@babel/helper-optimise-call-expression@^7.25.9": 136 | version "7.25.9" 137 | resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz#3324ae50bae7e2ab3c33f60c9a877b6a0146b54e" 138 | integrity sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ== 139 | dependencies: 140 | "@babel/types" "^7.25.9" 141 | 142 | "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.25.9": 143 | version "7.25.9" 144 | resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz#9cbdd63a9443a2c92a725cca7ebca12cc8dd9f46" 145 | integrity sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw== 146 | 147 | "@babel/helper-remap-async-to-generator@^7.25.9": 148 | version "7.25.9" 149 | resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz#e53956ab3d5b9fb88be04b3e2f31b523afd34b92" 150 | integrity sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw== 151 | dependencies: 152 | "@babel/helper-annotate-as-pure" "^7.25.9" 153 | "@babel/helper-wrap-function" "^7.25.9" 154 | "@babel/traverse" "^7.25.9" 155 | 156 | "@babel/helper-replace-supers@^7.25.9": 157 | version "7.25.9" 158 | resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.25.9.tgz#ba447224798c3da3f8713fc272b145e33da6a5c5" 159 | integrity sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ== 160 | dependencies: 161 | "@babel/helper-member-expression-to-functions" "^7.25.9" 162 | "@babel/helper-optimise-call-expression" "^7.25.9" 163 | "@babel/traverse" "^7.25.9" 164 | 165 | "@babel/helper-skip-transparent-expression-wrappers@^7.25.9": 166 | version "7.25.9" 167 | resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz#0b2e1b62d560d6b1954893fd2b705dc17c91f0c9" 168 | integrity sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA== 169 | dependencies: 170 | "@babel/traverse" "^7.25.9" 171 | "@babel/types" "^7.25.9" 172 | 173 | "@babel/helper-string-parser@^7.25.9": 174 | version "7.25.9" 175 | resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz#1aabb72ee72ed35789b4bbcad3ca2862ce614e8c" 176 | integrity sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA== 177 | 178 | "@babel/helper-validator-identifier@^7.25.9": 179 | version "7.25.9" 180 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz#24b64e2c3ec7cd3b3c547729b8d16871f22cbdc7" 181 | integrity sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ== 182 | 183 | "@babel/helper-validator-option@^7.25.9": 184 | version "7.25.9" 185 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz#86e45bd8a49ab7e03f276577f96179653d41da72" 186 | integrity sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw== 187 | 188 | "@babel/helper-wrap-function@^7.25.9": 189 | version "7.25.9" 190 | resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz#d99dfd595312e6c894bd7d237470025c85eea9d0" 191 | integrity sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g== 192 | dependencies: 193 | "@babel/template" "^7.25.9" 194 | "@babel/traverse" "^7.25.9" 195 | "@babel/types" "^7.25.9" 196 | 197 | "@babel/helpers@^7.26.0": 198 | version "7.26.0" 199 | resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.26.0.tgz#30e621f1eba5aa45fe6f4868d2e9154d884119a4" 200 | integrity sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw== 201 | dependencies: 202 | "@babel/template" "^7.25.9" 203 | "@babel/types" "^7.26.0" 204 | 205 | "@babel/parser@^7.25.9", "@babel/parser@^7.26.0", "@babel/parser@^7.26.3": 206 | version "7.26.3" 207 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.26.3.tgz#8c51c5db6ddf08134af1ddbacf16aaab48bac234" 208 | integrity sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA== 209 | dependencies: 210 | "@babel/types" "^7.26.3" 211 | 212 | "@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.25.9": 213 | version "7.25.9" 214 | resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz#cc2e53ebf0a0340777fff5ed521943e253b4d8fe" 215 | integrity sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g== 216 | dependencies: 217 | "@babel/helper-plugin-utils" "^7.25.9" 218 | "@babel/traverse" "^7.25.9" 219 | 220 | "@babel/plugin-bugfix-safari-class-field-initializer-scope@^7.25.9": 221 | version "7.25.9" 222 | resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz#af9e4fb63ccb8abcb92375b2fcfe36b60c774d30" 223 | integrity sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw== 224 | dependencies: 225 | "@babel/helper-plugin-utils" "^7.25.9" 226 | 227 | "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.25.9": 228 | version "7.25.9" 229 | 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.9.tgz#e8dc26fcd616e6c5bf2bd0d5a2c151d4f92a9137" 230 | integrity sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug== 231 | dependencies: 232 | "@babel/helper-plugin-utils" "^7.25.9" 233 | 234 | "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.25.9": 235 | version "7.25.9" 236 | resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz#807a667f9158acac6f6164b4beb85ad9ebc9e1d1" 237 | integrity sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g== 238 | dependencies: 239 | "@babel/helper-plugin-utils" "^7.25.9" 240 | "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" 241 | "@babel/plugin-transform-optional-chaining" "^7.25.9" 242 | 243 | "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.25.9": 244 | version "7.25.9" 245 | resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz#de7093f1e7deaf68eadd7cc6b07f2ab82543269e" 246 | integrity sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg== 247 | dependencies: 248 | "@babel/helper-plugin-utils" "^7.25.9" 249 | "@babel/traverse" "^7.25.9" 250 | 251 | "@babel/plugin-proposal-class-properties@^7.18.6": 252 | version "7.18.6" 253 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" 254 | integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== 255 | dependencies: 256 | "@babel/helper-create-class-features-plugin" "^7.18.6" 257 | "@babel/helper-plugin-utils" "^7.18.6" 258 | 259 | "@babel/plugin-proposal-private-methods@^7.18.6": 260 | version "7.18.6" 261 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea" 262 | integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA== 263 | dependencies: 264 | "@babel/helper-create-class-features-plugin" "^7.18.6" 265 | "@babel/helper-plugin-utils" "^7.18.6" 266 | 267 | "@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": 268 | version "7.21.0-placeholder-for-preset-env.2" 269 | 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" 270 | integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== 271 | 272 | "@babel/plugin-syntax-import-assertions@^7.26.0": 273 | version "7.26.0" 274 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz#620412405058efa56e4a564903b79355020f445f" 275 | integrity sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg== 276 | dependencies: 277 | "@babel/helper-plugin-utils" "^7.25.9" 278 | 279 | "@babel/plugin-syntax-import-attributes@^7.26.0": 280 | version "7.26.0" 281 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz#3b1412847699eea739b4f2602c74ce36f6b0b0f7" 282 | integrity sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A== 283 | dependencies: 284 | "@babel/helper-plugin-utils" "^7.25.9" 285 | 286 | "@babel/plugin-syntax-jsx@^7.25.9": 287 | version "7.25.9" 288 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz#a34313a178ea56f1951599b929c1ceacee719290" 289 | integrity sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA== 290 | dependencies: 291 | "@babel/helper-plugin-utils" "^7.25.9" 292 | 293 | "@babel/plugin-syntax-typescript@^7.25.9": 294 | version "7.25.9" 295 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz#67dda2b74da43727cf21d46cf9afef23f4365399" 296 | integrity sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ== 297 | dependencies: 298 | "@babel/helper-plugin-utils" "^7.25.9" 299 | 300 | "@babel/plugin-syntax-unicode-sets-regex@^7.18.6": 301 | version "7.18.6" 302 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" 303 | integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== 304 | dependencies: 305 | "@babel/helper-create-regexp-features-plugin" "^7.18.6" 306 | "@babel/helper-plugin-utils" "^7.18.6" 307 | 308 | "@babel/plugin-transform-arrow-functions@^7.25.9": 309 | version "7.25.9" 310 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz#7821d4410bee5daaadbb4cdd9a6649704e176845" 311 | integrity sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg== 312 | dependencies: 313 | "@babel/helper-plugin-utils" "^7.25.9" 314 | 315 | "@babel/plugin-transform-async-generator-functions@^7.25.9": 316 | version "7.25.9" 317 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.9.tgz#1b18530b077d18a407c494eb3d1d72da505283a2" 318 | integrity sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw== 319 | dependencies: 320 | "@babel/helper-plugin-utils" "^7.25.9" 321 | "@babel/helper-remap-async-to-generator" "^7.25.9" 322 | "@babel/traverse" "^7.25.9" 323 | 324 | "@babel/plugin-transform-async-to-generator@^7.25.9": 325 | version "7.25.9" 326 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz#c80008dacae51482793e5a9c08b39a5be7e12d71" 327 | integrity sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ== 328 | dependencies: 329 | "@babel/helper-module-imports" "^7.25.9" 330 | "@babel/helper-plugin-utils" "^7.25.9" 331 | "@babel/helper-remap-async-to-generator" "^7.25.9" 332 | 333 | "@babel/plugin-transform-block-scoped-functions@^7.25.9": 334 | version "7.25.9" 335 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.9.tgz#5700691dbd7abb93de300ca7be94203764fce458" 336 | integrity sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA== 337 | dependencies: 338 | "@babel/helper-plugin-utils" "^7.25.9" 339 | 340 | "@babel/plugin-transform-block-scoping@^7.25.9": 341 | version "7.25.9" 342 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz#c33665e46b06759c93687ca0f84395b80c0473a1" 343 | integrity sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg== 344 | dependencies: 345 | "@babel/helper-plugin-utils" "^7.25.9" 346 | 347 | "@babel/plugin-transform-class-properties@^7.25.9": 348 | version "7.25.9" 349 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz#a8ce84fedb9ad512549984101fa84080a9f5f51f" 350 | integrity sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q== 351 | dependencies: 352 | "@babel/helper-create-class-features-plugin" "^7.25.9" 353 | "@babel/helper-plugin-utils" "^7.25.9" 354 | 355 | "@babel/plugin-transform-class-static-block@^7.26.0": 356 | version "7.26.0" 357 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz#6c8da219f4eb15cae9834ec4348ff8e9e09664a0" 358 | integrity sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ== 359 | dependencies: 360 | "@babel/helper-create-class-features-plugin" "^7.25.9" 361 | "@babel/helper-plugin-utils" "^7.25.9" 362 | 363 | "@babel/plugin-transform-classes@^7.25.9": 364 | version "7.25.9" 365 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz#7152457f7880b593a63ade8a861e6e26a4469f52" 366 | integrity sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg== 367 | dependencies: 368 | "@babel/helper-annotate-as-pure" "^7.25.9" 369 | "@babel/helper-compilation-targets" "^7.25.9" 370 | "@babel/helper-plugin-utils" "^7.25.9" 371 | "@babel/helper-replace-supers" "^7.25.9" 372 | "@babel/traverse" "^7.25.9" 373 | globals "^11.1.0" 374 | 375 | "@babel/plugin-transform-computed-properties@^7.25.9": 376 | version "7.25.9" 377 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz#db36492c78460e534b8852b1d5befe3c923ef10b" 378 | integrity sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA== 379 | dependencies: 380 | "@babel/helper-plugin-utils" "^7.25.9" 381 | "@babel/template" "^7.25.9" 382 | 383 | "@babel/plugin-transform-destructuring@^7.25.9": 384 | version "7.25.9" 385 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz#966ea2595c498224340883602d3cfd7a0c79cea1" 386 | integrity sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ== 387 | dependencies: 388 | "@babel/helper-plugin-utils" "^7.25.9" 389 | 390 | "@babel/plugin-transform-dotall-regex@^7.25.9": 391 | version "7.25.9" 392 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz#bad7945dd07734ca52fe3ad4e872b40ed09bb09a" 393 | integrity sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA== 394 | dependencies: 395 | "@babel/helper-create-regexp-features-plugin" "^7.25.9" 396 | "@babel/helper-plugin-utils" "^7.25.9" 397 | 398 | "@babel/plugin-transform-duplicate-keys@^7.25.9": 399 | version "7.25.9" 400 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz#8850ddf57dce2aebb4394bb434a7598031059e6d" 401 | integrity sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw== 402 | dependencies: 403 | "@babel/helper-plugin-utils" "^7.25.9" 404 | 405 | "@babel/plugin-transform-duplicate-named-capturing-groups-regex@^7.25.9": 406 | version "7.25.9" 407 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz#6f7259b4de127721a08f1e5165b852fcaa696d31" 408 | integrity sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog== 409 | dependencies: 410 | "@babel/helper-create-regexp-features-plugin" "^7.25.9" 411 | "@babel/helper-plugin-utils" "^7.25.9" 412 | 413 | "@babel/plugin-transform-dynamic-import@^7.25.9": 414 | version "7.25.9" 415 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz#23e917de63ed23c6600c5dd06d94669dce79f7b8" 416 | integrity sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg== 417 | dependencies: 418 | "@babel/helper-plugin-utils" "^7.25.9" 419 | 420 | "@babel/plugin-transform-exponentiation-operator@^7.25.9": 421 | version "7.26.3" 422 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.26.3.tgz#e29f01b6de302c7c2c794277a48f04a9ca7f03bc" 423 | integrity sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ== 424 | dependencies: 425 | "@babel/helper-plugin-utils" "^7.25.9" 426 | 427 | "@babel/plugin-transform-export-namespace-from@^7.25.9": 428 | version "7.25.9" 429 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz#90745fe55053394f554e40584cda81f2c8a402a2" 430 | integrity sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww== 431 | dependencies: 432 | "@babel/helper-plugin-utils" "^7.25.9" 433 | 434 | "@babel/plugin-transform-for-of@^7.25.9": 435 | version "7.25.9" 436 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz#4bdc7d42a213397905d89f02350c5267866d5755" 437 | integrity sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A== 438 | dependencies: 439 | "@babel/helper-plugin-utils" "^7.25.9" 440 | "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" 441 | 442 | "@babel/plugin-transform-function-name@^7.25.9": 443 | version "7.25.9" 444 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz#939d956e68a606661005bfd550c4fc2ef95f7b97" 445 | integrity sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA== 446 | dependencies: 447 | "@babel/helper-compilation-targets" "^7.25.9" 448 | "@babel/helper-plugin-utils" "^7.25.9" 449 | "@babel/traverse" "^7.25.9" 450 | 451 | "@babel/plugin-transform-json-strings@^7.25.9": 452 | version "7.25.9" 453 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz#c86db407cb827cded902a90c707d2781aaa89660" 454 | integrity sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw== 455 | dependencies: 456 | "@babel/helper-plugin-utils" "^7.25.9" 457 | 458 | "@babel/plugin-transform-literals@^7.25.9": 459 | version "7.25.9" 460 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz#1a1c6b4d4aa59bc4cad5b6b3a223a0abd685c9de" 461 | integrity sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ== 462 | dependencies: 463 | "@babel/helper-plugin-utils" "^7.25.9" 464 | 465 | "@babel/plugin-transform-logical-assignment-operators@^7.25.9": 466 | version "7.25.9" 467 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz#b19441a8c39a2fda0902900b306ea05ae1055db7" 468 | integrity sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q== 469 | dependencies: 470 | "@babel/helper-plugin-utils" "^7.25.9" 471 | 472 | "@babel/plugin-transform-member-expression-literals@^7.25.9": 473 | version "7.25.9" 474 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz#63dff19763ea64a31f5e6c20957e6a25e41ed5de" 475 | integrity sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA== 476 | dependencies: 477 | "@babel/helper-plugin-utils" "^7.25.9" 478 | 479 | "@babel/plugin-transform-modules-amd@^7.25.9": 480 | version "7.25.9" 481 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz#49ba478f2295101544abd794486cd3088dddb6c5" 482 | integrity sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw== 483 | dependencies: 484 | "@babel/helper-module-transforms" "^7.25.9" 485 | "@babel/helper-plugin-utils" "^7.25.9" 486 | 487 | "@babel/plugin-transform-modules-commonjs@^7.25.9": 488 | version "7.26.3" 489 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz#8f011d44b20d02c3de44d8850d971d8497f981fb" 490 | integrity sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ== 491 | dependencies: 492 | "@babel/helper-module-transforms" "^7.26.0" 493 | "@babel/helper-plugin-utils" "^7.25.9" 494 | 495 | "@babel/plugin-transform-modules-systemjs@^7.25.9": 496 | version "7.25.9" 497 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz#8bd1b43836269e3d33307151a114bcf3ba6793f8" 498 | integrity sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA== 499 | dependencies: 500 | "@babel/helper-module-transforms" "^7.25.9" 501 | "@babel/helper-plugin-utils" "^7.25.9" 502 | "@babel/helper-validator-identifier" "^7.25.9" 503 | "@babel/traverse" "^7.25.9" 504 | 505 | "@babel/plugin-transform-modules-umd@^7.25.9": 506 | version "7.25.9" 507 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz#6710079cdd7c694db36529a1e8411e49fcbf14c9" 508 | integrity sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw== 509 | dependencies: 510 | "@babel/helper-module-transforms" "^7.25.9" 511 | "@babel/helper-plugin-utils" "^7.25.9" 512 | 513 | "@babel/plugin-transform-named-capturing-groups-regex@^7.25.9": 514 | version "7.25.9" 515 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz#454990ae6cc22fd2a0fa60b3a2c6f63a38064e6a" 516 | integrity sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA== 517 | dependencies: 518 | "@babel/helper-create-regexp-features-plugin" "^7.25.9" 519 | "@babel/helper-plugin-utils" "^7.25.9" 520 | 521 | "@babel/plugin-transform-new-target@^7.25.9": 522 | version "7.25.9" 523 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz#42e61711294b105c248336dcb04b77054ea8becd" 524 | integrity sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ== 525 | dependencies: 526 | "@babel/helper-plugin-utils" "^7.25.9" 527 | 528 | "@babel/plugin-transform-nullish-coalescing-operator@^7.25.9": 529 | version "7.25.9" 530 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.9.tgz#bcb1b0d9e948168102d5f7104375ca21c3266949" 531 | integrity sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog== 532 | dependencies: 533 | "@babel/helper-plugin-utils" "^7.25.9" 534 | 535 | "@babel/plugin-transform-numeric-separator@^7.25.9": 536 | version "7.25.9" 537 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz#bfed75866261a8b643468b0ccfd275f2033214a1" 538 | integrity sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q== 539 | dependencies: 540 | "@babel/helper-plugin-utils" "^7.25.9" 541 | 542 | "@babel/plugin-transform-object-assign@^7.18.6": 543 | version "7.25.9" 544 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.25.9.tgz#686203d53ee688d1642bf3a8c751dfb3981021c8" 545 | integrity sha512-I/Vl1aQnPsrrn837oLbo+VQtkNcjuuiATqwmuweg4fTauwHHQoxyjmjjOVKyO8OaTxgqYTKW3LuQsykXjDf5Ag== 546 | dependencies: 547 | "@babel/helper-plugin-utils" "^7.25.9" 548 | 549 | "@babel/plugin-transform-object-rest-spread@^7.25.9": 550 | version "7.25.9" 551 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz#0203725025074164808bcf1a2cfa90c652c99f18" 552 | integrity sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg== 553 | dependencies: 554 | "@babel/helper-compilation-targets" "^7.25.9" 555 | "@babel/helper-plugin-utils" "^7.25.9" 556 | "@babel/plugin-transform-parameters" "^7.25.9" 557 | 558 | "@babel/plugin-transform-object-super@^7.25.9": 559 | version "7.25.9" 560 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz#385d5de135162933beb4a3d227a2b7e52bb4cf03" 561 | integrity sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A== 562 | dependencies: 563 | "@babel/helper-plugin-utils" "^7.25.9" 564 | "@babel/helper-replace-supers" "^7.25.9" 565 | 566 | "@babel/plugin-transform-optional-catch-binding@^7.25.9": 567 | version "7.25.9" 568 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz#10e70d96d52bb1f10c5caaac59ac545ea2ba7ff3" 569 | integrity sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g== 570 | dependencies: 571 | "@babel/helper-plugin-utils" "^7.25.9" 572 | 573 | "@babel/plugin-transform-optional-chaining@^7.25.9": 574 | version "7.25.9" 575 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz#e142eb899d26ef715435f201ab6e139541eee7dd" 576 | integrity sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A== 577 | dependencies: 578 | "@babel/helper-plugin-utils" "^7.25.9" 579 | "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" 580 | 581 | "@babel/plugin-transform-parameters@^7.25.9": 582 | version "7.25.9" 583 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz#b856842205b3e77e18b7a7a1b94958069c7ba257" 584 | integrity sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g== 585 | dependencies: 586 | "@babel/helper-plugin-utils" "^7.25.9" 587 | 588 | "@babel/plugin-transform-private-methods@^7.25.9": 589 | version "7.25.9" 590 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz#847f4139263577526455d7d3223cd8bda51e3b57" 591 | integrity sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw== 592 | dependencies: 593 | "@babel/helper-create-class-features-plugin" "^7.25.9" 594 | "@babel/helper-plugin-utils" "^7.25.9" 595 | 596 | "@babel/plugin-transform-private-property-in-object@^7.25.9": 597 | version "7.25.9" 598 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz#9c8b73e64e6cc3cbb2743633885a7dd2c385fe33" 599 | integrity sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw== 600 | dependencies: 601 | "@babel/helper-annotate-as-pure" "^7.25.9" 602 | "@babel/helper-create-class-features-plugin" "^7.25.9" 603 | "@babel/helper-plugin-utils" "^7.25.9" 604 | 605 | "@babel/plugin-transform-property-literals@^7.25.9": 606 | version "7.25.9" 607 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz#d72d588bd88b0dec8b62e36f6fda91cedfe28e3f" 608 | integrity sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA== 609 | dependencies: 610 | "@babel/helper-plugin-utils" "^7.25.9" 611 | 612 | "@babel/plugin-transform-react-display-name@^7.25.9": 613 | version "7.25.9" 614 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.9.tgz#4b79746b59efa1f38c8695065a92a9f5afb24f7d" 615 | integrity sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ== 616 | dependencies: 617 | "@babel/helper-plugin-utils" "^7.25.9" 618 | 619 | "@babel/plugin-transform-react-jsx-development@^7.25.9": 620 | version "7.25.9" 621 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.25.9.tgz#8fd220a77dd139c07e25225a903b8be8c829e0d7" 622 | integrity sha512-9mj6rm7XVYs4mdLIpbZnHOYdpW42uoiBCTVowg7sP1thUOiANgMb4UtpRivR0pp5iL+ocvUv7X4mZgFRpJEzGw== 623 | dependencies: 624 | "@babel/plugin-transform-react-jsx" "^7.25.9" 625 | 626 | "@babel/plugin-transform-react-jsx@^7.19.0", "@babel/plugin-transform-react-jsx@^7.25.9": 627 | version "7.25.9" 628 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.9.tgz#06367940d8325b36edff5e2b9cbe782947ca4166" 629 | integrity sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw== 630 | dependencies: 631 | "@babel/helper-annotate-as-pure" "^7.25.9" 632 | "@babel/helper-module-imports" "^7.25.9" 633 | "@babel/helper-plugin-utils" "^7.25.9" 634 | "@babel/plugin-syntax-jsx" "^7.25.9" 635 | "@babel/types" "^7.25.9" 636 | 637 | "@babel/plugin-transform-react-pure-annotations@^7.25.9": 638 | version "7.25.9" 639 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.25.9.tgz#ea1c11b2f9dbb8e2d97025f43a3b5bc47e18ae62" 640 | integrity sha512-KQ/Takk3T8Qzj5TppkS1be588lkbTp5uj7w6a0LeQaTMSckU/wK0oJ/pih+T690tkgI5jfmg2TqDJvd41Sj1Cg== 641 | dependencies: 642 | "@babel/helper-annotate-as-pure" "^7.25.9" 643 | "@babel/helper-plugin-utils" "^7.25.9" 644 | 645 | "@babel/plugin-transform-regenerator@^7.25.9": 646 | version "7.25.9" 647 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz#03a8a4670d6cebae95305ac6defac81ece77740b" 648 | integrity sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg== 649 | dependencies: 650 | "@babel/helper-plugin-utils" "^7.25.9" 651 | regenerator-transform "^0.15.2" 652 | 653 | "@babel/plugin-transform-regexp-modifiers@^7.26.0": 654 | version "7.26.0" 655 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz#2f5837a5b5cd3842a919d8147e9903cc7455b850" 656 | integrity sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw== 657 | dependencies: 658 | "@babel/helper-create-regexp-features-plugin" "^7.25.9" 659 | "@babel/helper-plugin-utils" "^7.25.9" 660 | 661 | "@babel/plugin-transform-reserved-words@^7.25.9": 662 | version "7.25.9" 663 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz#0398aed2f1f10ba3f78a93db219b27ef417fb9ce" 664 | integrity sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg== 665 | dependencies: 666 | "@babel/helper-plugin-utils" "^7.25.9" 667 | 668 | "@babel/plugin-transform-runtime@^7.19.6": 669 | version "7.25.9" 670 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.9.tgz#62723ea3f5b31ffbe676da9d6dae17138ae580ea" 671 | integrity sha512-nZp7GlEl+yULJrClz0SwHPqir3lc0zsPrDHQUcxGspSL7AKrexNSEfTbfqnDNJUO13bgKyfuOLMF8Xqtu8j3YQ== 672 | dependencies: 673 | "@babel/helper-module-imports" "^7.25.9" 674 | "@babel/helper-plugin-utils" "^7.25.9" 675 | babel-plugin-polyfill-corejs2 "^0.4.10" 676 | babel-plugin-polyfill-corejs3 "^0.10.6" 677 | babel-plugin-polyfill-regenerator "^0.6.1" 678 | semver "^6.3.1" 679 | 680 | "@babel/plugin-transform-shorthand-properties@^7.25.9": 681 | version "7.25.9" 682 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz#bb785e6091f99f826a95f9894fc16fde61c163f2" 683 | integrity sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng== 684 | dependencies: 685 | "@babel/helper-plugin-utils" "^7.25.9" 686 | 687 | "@babel/plugin-transform-spread@^7.25.9": 688 | version "7.25.9" 689 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz#24a35153931b4ba3d13cec4a7748c21ab5514ef9" 690 | integrity sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A== 691 | dependencies: 692 | "@babel/helper-plugin-utils" "^7.25.9" 693 | "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" 694 | 695 | "@babel/plugin-transform-sticky-regex@^7.25.9": 696 | version "7.25.9" 697 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz#c7f02b944e986a417817b20ba2c504dfc1453d32" 698 | integrity sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA== 699 | dependencies: 700 | "@babel/helper-plugin-utils" "^7.25.9" 701 | 702 | "@babel/plugin-transform-template-literals@^7.25.9": 703 | version "7.25.9" 704 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.9.tgz#6dbd4a24e8fad024df76d1fac6a03cf413f60fe1" 705 | integrity sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw== 706 | dependencies: 707 | "@babel/helper-plugin-utils" "^7.25.9" 708 | 709 | "@babel/plugin-transform-typeof-symbol@^7.25.9": 710 | version "7.25.9" 711 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.9.tgz#224ba48a92869ddbf81f9b4a5f1204bbf5a2bc4b" 712 | integrity sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA== 713 | dependencies: 714 | "@babel/helper-plugin-utils" "^7.25.9" 715 | 716 | "@babel/plugin-transform-typescript@^7.25.9": 717 | version "7.26.3" 718 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.26.3.tgz#3d6add9c78735623317387ee26d5ada540eee3fd" 719 | integrity sha512-6+5hpdr6mETwSKjmJUdYw0EIkATiQhnELWlE3kJFBwSg/BGIVwVaVbX+gOXBCdc7Ln1RXZxyWGecIXhUfnl7oA== 720 | dependencies: 721 | "@babel/helper-annotate-as-pure" "^7.25.9" 722 | "@babel/helper-create-class-features-plugin" "^7.25.9" 723 | "@babel/helper-plugin-utils" "^7.25.9" 724 | "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" 725 | "@babel/plugin-syntax-typescript" "^7.25.9" 726 | 727 | "@babel/plugin-transform-unicode-escapes@^7.25.9": 728 | version "7.25.9" 729 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz#a75ef3947ce15363fccaa38e2dd9bc70b2788b82" 730 | integrity sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q== 731 | dependencies: 732 | "@babel/helper-plugin-utils" "^7.25.9" 733 | 734 | "@babel/plugin-transform-unicode-property-regex@^7.25.9": 735 | version "7.25.9" 736 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz#a901e96f2c1d071b0d1bb5dc0d3c880ce8f53dd3" 737 | integrity sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg== 738 | dependencies: 739 | "@babel/helper-create-regexp-features-plugin" "^7.25.9" 740 | "@babel/helper-plugin-utils" "^7.25.9" 741 | 742 | "@babel/plugin-transform-unicode-regex@^7.25.9": 743 | version "7.25.9" 744 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz#5eae747fe39eacf13a8bd006a4fb0b5d1fa5e9b1" 745 | integrity sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA== 746 | dependencies: 747 | "@babel/helper-create-regexp-features-plugin" "^7.25.9" 748 | "@babel/helper-plugin-utils" "^7.25.9" 749 | 750 | "@babel/plugin-transform-unicode-sets-regex@^7.25.9": 751 | version "7.25.9" 752 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz#65114c17b4ffc20fa5b163c63c70c0d25621fabe" 753 | integrity sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ== 754 | dependencies: 755 | "@babel/helper-create-regexp-features-plugin" "^7.25.9" 756 | "@babel/helper-plugin-utils" "^7.25.9" 757 | 758 | "@babel/preset-env@^7.20.2": 759 | version "7.26.0" 760 | resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.26.0.tgz#30e5c6bc1bcc54865bff0c5a30f6d4ccdc7fa8b1" 761 | integrity sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw== 762 | dependencies: 763 | "@babel/compat-data" "^7.26.0" 764 | "@babel/helper-compilation-targets" "^7.25.9" 765 | "@babel/helper-plugin-utils" "^7.25.9" 766 | "@babel/helper-validator-option" "^7.25.9" 767 | "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.25.9" 768 | "@babel/plugin-bugfix-safari-class-field-initializer-scope" "^7.25.9" 769 | "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.25.9" 770 | "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.25.9" 771 | "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.25.9" 772 | "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" 773 | "@babel/plugin-syntax-import-assertions" "^7.26.0" 774 | "@babel/plugin-syntax-import-attributes" "^7.26.0" 775 | "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" 776 | "@babel/plugin-transform-arrow-functions" "^7.25.9" 777 | "@babel/plugin-transform-async-generator-functions" "^7.25.9" 778 | "@babel/plugin-transform-async-to-generator" "^7.25.9" 779 | "@babel/plugin-transform-block-scoped-functions" "^7.25.9" 780 | "@babel/plugin-transform-block-scoping" "^7.25.9" 781 | "@babel/plugin-transform-class-properties" "^7.25.9" 782 | "@babel/plugin-transform-class-static-block" "^7.26.0" 783 | "@babel/plugin-transform-classes" "^7.25.9" 784 | "@babel/plugin-transform-computed-properties" "^7.25.9" 785 | "@babel/plugin-transform-destructuring" "^7.25.9" 786 | "@babel/plugin-transform-dotall-regex" "^7.25.9" 787 | "@babel/plugin-transform-duplicate-keys" "^7.25.9" 788 | "@babel/plugin-transform-duplicate-named-capturing-groups-regex" "^7.25.9" 789 | "@babel/plugin-transform-dynamic-import" "^7.25.9" 790 | "@babel/plugin-transform-exponentiation-operator" "^7.25.9" 791 | "@babel/plugin-transform-export-namespace-from" "^7.25.9" 792 | "@babel/plugin-transform-for-of" "^7.25.9" 793 | "@babel/plugin-transform-function-name" "^7.25.9" 794 | "@babel/plugin-transform-json-strings" "^7.25.9" 795 | "@babel/plugin-transform-literals" "^7.25.9" 796 | "@babel/plugin-transform-logical-assignment-operators" "^7.25.9" 797 | "@babel/plugin-transform-member-expression-literals" "^7.25.9" 798 | "@babel/plugin-transform-modules-amd" "^7.25.9" 799 | "@babel/plugin-transform-modules-commonjs" "^7.25.9" 800 | "@babel/plugin-transform-modules-systemjs" "^7.25.9" 801 | "@babel/plugin-transform-modules-umd" "^7.25.9" 802 | "@babel/plugin-transform-named-capturing-groups-regex" "^7.25.9" 803 | "@babel/plugin-transform-new-target" "^7.25.9" 804 | "@babel/plugin-transform-nullish-coalescing-operator" "^7.25.9" 805 | "@babel/plugin-transform-numeric-separator" "^7.25.9" 806 | "@babel/plugin-transform-object-rest-spread" "^7.25.9" 807 | "@babel/plugin-transform-object-super" "^7.25.9" 808 | "@babel/plugin-transform-optional-catch-binding" "^7.25.9" 809 | "@babel/plugin-transform-optional-chaining" "^7.25.9" 810 | "@babel/plugin-transform-parameters" "^7.25.9" 811 | "@babel/plugin-transform-private-methods" "^7.25.9" 812 | "@babel/plugin-transform-private-property-in-object" "^7.25.9" 813 | "@babel/plugin-transform-property-literals" "^7.25.9" 814 | "@babel/plugin-transform-regenerator" "^7.25.9" 815 | "@babel/plugin-transform-regexp-modifiers" "^7.26.0" 816 | "@babel/plugin-transform-reserved-words" "^7.25.9" 817 | "@babel/plugin-transform-shorthand-properties" "^7.25.9" 818 | "@babel/plugin-transform-spread" "^7.25.9" 819 | "@babel/plugin-transform-sticky-regex" "^7.25.9" 820 | "@babel/plugin-transform-template-literals" "^7.25.9" 821 | "@babel/plugin-transform-typeof-symbol" "^7.25.9" 822 | "@babel/plugin-transform-unicode-escapes" "^7.25.9" 823 | "@babel/plugin-transform-unicode-property-regex" "^7.25.9" 824 | "@babel/plugin-transform-unicode-regex" "^7.25.9" 825 | "@babel/plugin-transform-unicode-sets-regex" "^7.25.9" 826 | "@babel/preset-modules" "0.1.6-no-external-plugins" 827 | babel-plugin-polyfill-corejs2 "^0.4.10" 828 | babel-plugin-polyfill-corejs3 "^0.10.6" 829 | babel-plugin-polyfill-regenerator "^0.6.1" 830 | core-js-compat "^3.38.1" 831 | semver "^6.3.1" 832 | 833 | "@babel/preset-modules@0.1.6-no-external-plugins": 834 | version "0.1.6-no-external-plugins" 835 | resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a" 836 | integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== 837 | dependencies: 838 | "@babel/helper-plugin-utils" "^7.0.0" 839 | "@babel/types" "^7.4.4" 840 | esutils "^2.0.2" 841 | 842 | "@babel/preset-react@^7.18.6": 843 | version "7.26.3" 844 | resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.26.3.tgz#7c5e028d623b4683c1f83a0bd4713b9100560caa" 845 | integrity sha512-Nl03d6T9ky516DGK2YMxrTqvnpUW63TnJMOMonj+Zae0JiPC5BC9xPMSL6L8fiSpA5vP88qfygavVQvnLp+6Cw== 846 | dependencies: 847 | "@babel/helper-plugin-utils" "^7.25.9" 848 | "@babel/helper-validator-option" "^7.25.9" 849 | "@babel/plugin-transform-react-display-name" "^7.25.9" 850 | "@babel/plugin-transform-react-jsx" "^7.25.9" 851 | "@babel/plugin-transform-react-jsx-development" "^7.25.9" 852 | "@babel/plugin-transform-react-pure-annotations" "^7.25.9" 853 | 854 | "@babel/preset-typescript@^7.18.6": 855 | version "7.26.0" 856 | resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.26.0.tgz#4a570f1b8d104a242d923957ffa1eaff142a106d" 857 | integrity sha512-NMk1IGZ5I/oHhoXEElcm+xUnL/szL6xflkFZmoEU9xj1qSJXpiS7rsspYo92B4DRCDvZn2erT5LdsCeXAKNCkg== 858 | dependencies: 859 | "@babel/helper-plugin-utils" "^7.25.9" 860 | "@babel/helper-validator-option" "^7.25.9" 861 | "@babel/plugin-syntax-jsx" "^7.25.9" 862 | "@babel/plugin-transform-modules-commonjs" "^7.25.9" 863 | "@babel/plugin-transform-typescript" "^7.25.9" 864 | 865 | "@babel/runtime@^7.1.2", "@babel/runtime@^7.20.1", "@babel/runtime@^7.8.4": 866 | version "7.26.0" 867 | resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.26.0.tgz#8600c2f595f277c60815256418b85356a65173c1" 868 | integrity sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw== 869 | dependencies: 870 | regenerator-runtime "^0.14.0" 871 | 872 | "@babel/template@^7.25.9": 873 | version "7.25.9" 874 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.25.9.tgz#ecb62d81a8a6f5dc5fe8abfc3901fc52ddf15016" 875 | integrity sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg== 876 | dependencies: 877 | "@babel/code-frame" "^7.25.9" 878 | "@babel/parser" "^7.25.9" 879 | "@babel/types" "^7.25.9" 880 | 881 | "@babel/traverse@^7.25.9": 882 | version "7.26.4" 883 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.26.4.tgz#ac3a2a84b908dde6d463c3bfa2c5fdc1653574bd" 884 | integrity sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w== 885 | dependencies: 886 | "@babel/code-frame" "^7.26.2" 887 | "@babel/generator" "^7.26.3" 888 | "@babel/parser" "^7.26.3" 889 | "@babel/template" "^7.25.9" 890 | "@babel/types" "^7.26.3" 891 | debug "^4.3.1" 892 | globals "^11.1.0" 893 | 894 | "@babel/types@^7.25.9", "@babel/types@^7.26.0", "@babel/types@^7.26.3", "@babel/types@^7.4.4": 895 | version "7.26.3" 896 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.26.3.tgz#37e79830f04c2b5687acc77db97fbc75fb81f3c0" 897 | integrity sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA== 898 | dependencies: 899 | "@babel/helper-string-parser" "^7.25.9" 900 | "@babel/helper-validator-identifier" "^7.25.9" 901 | 902 | "@colors/colors@1.5.0": 903 | version "1.5.0" 904 | resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" 905 | integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== 906 | 907 | "@discoveryjs/json-ext@0.5.7", "@discoveryjs/json-ext@^0.5.0": 908 | version "0.5.7" 909 | resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" 910 | integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== 911 | 912 | "@flarum/prettier-config@^1.0.0": 913 | version "1.0.0" 914 | resolved "https://registry.yarnpkg.com/@flarum/prettier-config/-/prettier-config-1.0.0.tgz#3ce431fa376994e8133e313dbe7c4ee3d3fe1a39" 915 | integrity sha512-3/AcliIi5jPt4i7COb5hsLv6hm4EeXT9yI9I2EuEvhPi2QR+O9Y/8wrqRuO5mDkRzCIhUY+mjIL/f9770Zwfqg== 916 | 917 | "@hypnosphi/create-react-context@^0.3.1": 918 | version "0.3.1" 919 | resolved "https://registry.yarnpkg.com/@hypnosphi/create-react-context/-/create-react-context-0.3.1.tgz#f8bfebdc7665f5d426cba3753e0e9c7d3154d7c6" 920 | integrity sha512-V1klUed202XahrWJLLOT3EXNeCpFHCcJntdFGI15ntCwau+jfT386w7OFTMaCqOgXUH1fa0w/I1oZs+i/Rfr0A== 921 | dependencies: 922 | gud "^1.0.0" 923 | warning "^4.0.3" 924 | 925 | "@jridgewell/gen-mapping@^0.3.5": 926 | version "0.3.8" 927 | resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz#4f0e06362e01362f823d348f1872b08f666d8142" 928 | integrity sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA== 929 | dependencies: 930 | "@jridgewell/set-array" "^1.2.1" 931 | "@jridgewell/sourcemap-codec" "^1.4.10" 932 | "@jridgewell/trace-mapping" "^0.3.24" 933 | 934 | "@jridgewell/resolve-uri@^3.1.0": 935 | version "3.1.2" 936 | resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" 937 | integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== 938 | 939 | "@jridgewell/set-array@^1.2.1": 940 | version "1.2.1" 941 | resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" 942 | integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== 943 | 944 | "@jridgewell/source-map@^0.3.3": 945 | version "0.3.6" 946 | resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.6.tgz#9d71ca886e32502eb9362c9a74a46787c36df81a" 947 | integrity sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ== 948 | dependencies: 949 | "@jridgewell/gen-mapping" "^0.3.5" 950 | "@jridgewell/trace-mapping" "^0.3.25" 951 | 952 | "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": 953 | version "1.5.0" 954 | resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" 955 | integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== 956 | 957 | "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": 958 | version "0.3.25" 959 | resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" 960 | integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== 961 | dependencies: 962 | "@jridgewell/resolve-uri" "^3.1.0" 963 | "@jridgewell/sourcemap-codec" "^1.4.14" 964 | 965 | "@nodelib/fs.scandir@2.1.5": 966 | version "2.1.5" 967 | resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" 968 | integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== 969 | dependencies: 970 | "@nodelib/fs.stat" "2.0.5" 971 | run-parallel "^1.1.9" 972 | 973 | "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": 974 | version "2.0.5" 975 | resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" 976 | integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== 977 | 978 | "@nodelib/fs.walk@^1.2.3": 979 | version "1.2.8" 980 | resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" 981 | integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== 982 | dependencies: 983 | "@nodelib/fs.scandir" "2.1.5" 984 | fastq "^1.6.0" 985 | 986 | "@polka/url@^1.0.0-next.24": 987 | version "1.0.0-next.28" 988 | resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.28.tgz#d45e01c4a56f143ee69c54dd6b12eade9e270a73" 989 | integrity sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw== 990 | 991 | "@semantic-ui-react/event-stack@^3.1.0": 992 | version "3.1.3" 993 | resolved "https://registry.yarnpkg.com/@semantic-ui-react/event-stack/-/event-stack-3.1.3.tgz#2862d2631d67dd846c705db2fc1ede1c468be3a1" 994 | integrity sha512-FdTmJyWvJaYinHrKRsMLDrz4tTMGdFfds299Qory53hBugiDvGC0tEJf+cHsi5igDwWb/CLOgOiChInHwq8URQ== 995 | dependencies: 996 | exenv "^1.2.2" 997 | prop-types "^15.6.2" 998 | 999 | "@stardust-ui/react-component-event-listener@~0.38.0": 1000 | version "0.38.0" 1001 | resolved "https://registry.yarnpkg.com/@stardust-ui/react-component-event-listener/-/react-component-event-listener-0.38.0.tgz#1787faded94b40ad41226e6289baf13e701c6e7f" 1002 | integrity sha512-sIP/e0dyOrrlb8K7KWumfMxj/gAifswTBC4o68Aa+C/GA73ccRp/6W1VlHvF/dlOR4KLsA+5SKnhjH36xzPsWg== 1003 | dependencies: 1004 | "@babel/runtime" "^7.1.2" 1005 | prop-types "^15.7.2" 1006 | 1007 | "@stardust-ui/react-component-ref@~0.38.0": 1008 | version "0.38.0" 1009 | resolved "https://registry.yarnpkg.com/@stardust-ui/react-component-ref/-/react-component-ref-0.38.0.tgz#52d555f2d5edd213c923c93a106f7de940e427ef" 1010 | integrity sha512-xjs6WnvJVueSIXMWw0C3oWIgAPpcD03qw43oGOjUXqFktvpNkB73JoKIhS4sCrtQxBdct75qqr4ZL6JiyPcESw== 1011 | dependencies: 1012 | "@babel/runtime" "^7.1.2" 1013 | prop-types "^15.7.2" 1014 | react-is "^16.6.3" 1015 | 1016 | "@types/eslint-scope@^3.7.7": 1017 | version "3.7.7" 1018 | resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz#3108bd5f18b0cdb277c867b3dd449c9ed7079ac5" 1019 | integrity sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg== 1020 | dependencies: 1021 | "@types/eslint" "*" 1022 | "@types/estree" "*" 1023 | 1024 | "@types/eslint@*": 1025 | version "9.6.1" 1026 | resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-9.6.1.tgz#d5795ad732ce81715f27f75da913004a56751584" 1027 | integrity sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag== 1028 | dependencies: 1029 | "@types/estree" "*" 1030 | "@types/json-schema" "*" 1031 | 1032 | "@types/estree@*", "@types/estree@^1.0.6": 1033 | version "1.0.6" 1034 | resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" 1035 | integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== 1036 | 1037 | "@types/jquery@^3.5.5": 1038 | version "3.5.32" 1039 | resolved "https://registry.yarnpkg.com/@types/jquery/-/jquery-3.5.32.tgz#3eb0da20611b92c7c49ebed6163b52a4fdc57def" 1040 | integrity sha512-b9Xbf4CkMqS02YH8zACqN1xzdxc3cO735Qe5AbSUFmyOiaWAbcpqh9Wna+Uk0vgACvoQHpWDg2rGdHkYPLmCiQ== 1041 | dependencies: 1042 | "@types/sizzle" "*" 1043 | 1044 | "@types/json-schema@*", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": 1045 | version "7.0.15" 1046 | resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" 1047 | integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== 1048 | 1049 | "@types/mithril@^2.0.7": 1050 | version "2.2.7" 1051 | resolved "https://registry.yarnpkg.com/@types/mithril/-/mithril-2.2.7.tgz#1952ac0fbd4816b49260fde69b766fec0df6db7c" 1052 | integrity sha512-uetxoYizBMHPELl6DSZUfO6Q/aOm+h0NUCv9bVAX2iAxfrdBSOvU9KKFl+McTtxR13F+BReYLY814pJsZvnSxg== 1053 | 1054 | "@types/node@*": 1055 | version "22.10.5" 1056 | resolved "https://registry.yarnpkg.com/@types/node/-/node-22.10.5.tgz#95af89a3fb74a2bb41ef9927f206e6472026e48b" 1057 | integrity sha512-F8Q+SeGimwOo86fiovQh8qiXfFEh2/ocYv7tU5pJ3EXMSSxk1Joj5wefpFK2fHTf/N6HKGSxIDBT9f3gCxXPkQ== 1058 | dependencies: 1059 | undici-types "~6.20.0" 1060 | 1061 | "@types/sizzle@*": 1062 | version "2.3.9" 1063 | resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.9.tgz#d4597dbd4618264c414d7429363e3f50acb66ea2" 1064 | integrity sha512-xzLEyKB50yqCUPUJkIsrVvoWNfFUbIZI+RspLWt8u+tIW/BetMBZtgV2LY/2o+tYH8dRvQ+eoPf3NdhQCcLE2w== 1065 | 1066 | "@types/throttle-debounce@^2.1.0": 1067 | version "2.1.0" 1068 | resolved "https://registry.yarnpkg.com/@types/throttle-debounce/-/throttle-debounce-2.1.0.tgz#1c3df624bfc4b62f992d3012b84c56d41eab3776" 1069 | integrity sha512-5eQEtSCoESnh2FsiLTxE121IiE60hnMqcb435fShf4bpLRjEu1Eoekht23y6zXS9Ts3l+Szu3TARnTsA0GkOkQ== 1070 | 1071 | "@webassemblyjs/ast@1.14.1", "@webassemblyjs/ast@^1.14.1": 1072 | version "1.14.1" 1073 | resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.14.1.tgz#a9f6a07f2b03c95c8d38c4536a1fdfb521ff55b6" 1074 | integrity sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ== 1075 | dependencies: 1076 | "@webassemblyjs/helper-numbers" "1.13.2" 1077 | "@webassemblyjs/helper-wasm-bytecode" "1.13.2" 1078 | 1079 | "@webassemblyjs/floating-point-hex-parser@1.13.2": 1080 | version "1.13.2" 1081 | resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz#fcca1eeddb1cc4e7b6eed4fc7956d6813b21b9fb" 1082 | integrity sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA== 1083 | 1084 | "@webassemblyjs/helper-api-error@1.13.2": 1085 | version "1.13.2" 1086 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz#e0a16152248bc38daee76dd7e21f15c5ef3ab1e7" 1087 | integrity sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ== 1088 | 1089 | "@webassemblyjs/helper-buffer@1.14.1": 1090 | version "1.14.1" 1091 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz#822a9bc603166531f7d5df84e67b5bf99b72b96b" 1092 | integrity sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA== 1093 | 1094 | "@webassemblyjs/helper-numbers@1.13.2": 1095 | version "1.13.2" 1096 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz#dbd932548e7119f4b8a7877fd5a8d20e63490b2d" 1097 | integrity sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA== 1098 | dependencies: 1099 | "@webassemblyjs/floating-point-hex-parser" "1.13.2" 1100 | "@webassemblyjs/helper-api-error" "1.13.2" 1101 | "@xtuc/long" "4.2.2" 1102 | 1103 | "@webassemblyjs/helper-wasm-bytecode@1.13.2": 1104 | version "1.13.2" 1105 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz#e556108758f448aae84c850e593ce18a0eb31e0b" 1106 | integrity sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA== 1107 | 1108 | "@webassemblyjs/helper-wasm-section@1.14.1": 1109 | version "1.14.1" 1110 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz#9629dda9c4430eab54b591053d6dc6f3ba050348" 1111 | integrity sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw== 1112 | dependencies: 1113 | "@webassemblyjs/ast" "1.14.1" 1114 | "@webassemblyjs/helper-buffer" "1.14.1" 1115 | "@webassemblyjs/helper-wasm-bytecode" "1.13.2" 1116 | "@webassemblyjs/wasm-gen" "1.14.1" 1117 | 1118 | "@webassemblyjs/ieee754@1.13.2": 1119 | version "1.13.2" 1120 | resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz#1c5eaace1d606ada2c7fd7045ea9356c59ee0dba" 1121 | integrity sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw== 1122 | dependencies: 1123 | "@xtuc/ieee754" "^1.2.0" 1124 | 1125 | "@webassemblyjs/leb128@1.13.2": 1126 | version "1.13.2" 1127 | resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.13.2.tgz#57c5c3deb0105d02ce25fa3fd74f4ebc9fd0bbb0" 1128 | integrity sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw== 1129 | dependencies: 1130 | "@xtuc/long" "4.2.2" 1131 | 1132 | "@webassemblyjs/utf8@1.13.2": 1133 | version "1.13.2" 1134 | resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.13.2.tgz#917a20e93f71ad5602966c2d685ae0c6c21f60f1" 1135 | integrity sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ== 1136 | 1137 | "@webassemblyjs/wasm-edit@^1.14.1": 1138 | version "1.14.1" 1139 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz#ac6689f502219b59198ddec42dcd496b1004d597" 1140 | integrity sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ== 1141 | dependencies: 1142 | "@webassemblyjs/ast" "1.14.1" 1143 | "@webassemblyjs/helper-buffer" "1.14.1" 1144 | "@webassemblyjs/helper-wasm-bytecode" "1.13.2" 1145 | "@webassemblyjs/helper-wasm-section" "1.14.1" 1146 | "@webassemblyjs/wasm-gen" "1.14.1" 1147 | "@webassemblyjs/wasm-opt" "1.14.1" 1148 | "@webassemblyjs/wasm-parser" "1.14.1" 1149 | "@webassemblyjs/wast-printer" "1.14.1" 1150 | 1151 | "@webassemblyjs/wasm-gen@1.14.1": 1152 | version "1.14.1" 1153 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz#991e7f0c090cb0bb62bbac882076e3d219da9570" 1154 | integrity sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg== 1155 | dependencies: 1156 | "@webassemblyjs/ast" "1.14.1" 1157 | "@webassemblyjs/helper-wasm-bytecode" "1.13.2" 1158 | "@webassemblyjs/ieee754" "1.13.2" 1159 | "@webassemblyjs/leb128" "1.13.2" 1160 | "@webassemblyjs/utf8" "1.13.2" 1161 | 1162 | "@webassemblyjs/wasm-opt@1.14.1": 1163 | version "1.14.1" 1164 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz#e6f71ed7ccae46781c206017d3c14c50efa8106b" 1165 | integrity sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw== 1166 | dependencies: 1167 | "@webassemblyjs/ast" "1.14.1" 1168 | "@webassemblyjs/helper-buffer" "1.14.1" 1169 | "@webassemblyjs/wasm-gen" "1.14.1" 1170 | "@webassemblyjs/wasm-parser" "1.14.1" 1171 | 1172 | "@webassemblyjs/wasm-parser@1.14.1", "@webassemblyjs/wasm-parser@^1.14.1": 1173 | version "1.14.1" 1174 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz#b3e13f1893605ca78b52c68e54cf6a865f90b9fb" 1175 | integrity sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ== 1176 | dependencies: 1177 | "@webassemblyjs/ast" "1.14.1" 1178 | "@webassemblyjs/helper-api-error" "1.13.2" 1179 | "@webassemblyjs/helper-wasm-bytecode" "1.13.2" 1180 | "@webassemblyjs/ieee754" "1.13.2" 1181 | "@webassemblyjs/leb128" "1.13.2" 1182 | "@webassemblyjs/utf8" "1.13.2" 1183 | 1184 | "@webassemblyjs/wast-printer@1.14.1": 1185 | version "1.14.1" 1186 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz#3bb3e9638a8ae5fdaf9610e7a06b4d9f9aa6fe07" 1187 | integrity sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw== 1188 | dependencies: 1189 | "@webassemblyjs/ast" "1.14.1" 1190 | "@xtuc/long" "4.2.2" 1191 | 1192 | "@webpack-cli/configtest@^1.2.0": 1193 | version "1.2.0" 1194 | resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.2.0.tgz#7b20ce1c12533912c3b217ea68262365fa29a6f5" 1195 | integrity sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg== 1196 | 1197 | "@webpack-cli/info@^1.5.0": 1198 | version "1.5.0" 1199 | resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.5.0.tgz#6c78c13c5874852d6e2dd17f08a41f3fe4c261b1" 1200 | integrity sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ== 1201 | dependencies: 1202 | envinfo "^7.7.3" 1203 | 1204 | "@webpack-cli/serve@^1.7.0": 1205 | version "1.7.0" 1206 | resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.7.0.tgz#e1993689ac42d2b16e9194376cfb6753f6254db1" 1207 | integrity sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q== 1208 | 1209 | "@xtuc/ieee754@^1.2.0": 1210 | version "1.2.0" 1211 | resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" 1212 | integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== 1213 | 1214 | "@xtuc/long@4.2.2": 1215 | version "4.2.2" 1216 | resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" 1217 | integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== 1218 | 1219 | acorn-walk@^8.0.0: 1220 | version "8.3.4" 1221 | resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.4.tgz#794dd169c3977edf4ba4ea47583587c5866236b7" 1222 | integrity sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g== 1223 | dependencies: 1224 | acorn "^8.11.0" 1225 | 1226 | acorn@^8.0.4, acorn@^8.11.0, acorn@^8.14.0, acorn@^8.8.2: 1227 | version "8.14.0" 1228 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.0.tgz#063e2c70cac5fb4f6467f0b11152e04c682795b0" 1229 | integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA== 1230 | 1231 | ajv-formats@^2.1.1: 1232 | version "2.1.1" 1233 | resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" 1234 | integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== 1235 | dependencies: 1236 | ajv "^8.0.0" 1237 | 1238 | ajv-keywords@^3.5.2: 1239 | version "3.5.2" 1240 | resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" 1241 | integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== 1242 | 1243 | ajv-keywords@^5.1.0: 1244 | version "5.1.0" 1245 | resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16" 1246 | integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== 1247 | dependencies: 1248 | fast-deep-equal "^3.1.3" 1249 | 1250 | ajv@^6.12.5: 1251 | version "6.12.6" 1252 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" 1253 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== 1254 | dependencies: 1255 | fast-deep-equal "^3.1.1" 1256 | fast-json-stable-stringify "^2.0.0" 1257 | json-schema-traverse "^0.4.1" 1258 | uri-js "^4.2.2" 1259 | 1260 | ajv@^8.0.0, ajv@^8.9.0: 1261 | version "8.17.1" 1262 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.17.1.tgz#37d9a5c776af6bc92d7f4f9510eba4c0a60d11a6" 1263 | integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== 1264 | dependencies: 1265 | fast-deep-equal "^3.1.3" 1266 | fast-uri "^3.0.1" 1267 | json-schema-traverse "^1.0.0" 1268 | require-from-string "^2.0.2" 1269 | 1270 | ansi-regex@^5.0.1: 1271 | version "5.0.1" 1272 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" 1273 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== 1274 | 1275 | ansi-styles@^4.1.0: 1276 | version "4.3.0" 1277 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" 1278 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 1279 | dependencies: 1280 | color-convert "^2.0.1" 1281 | 1282 | babel-loader@^9.1.0: 1283 | version "9.2.1" 1284 | resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-9.2.1.tgz#04c7835db16c246dd19ba0914418f3937797587b" 1285 | integrity sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA== 1286 | dependencies: 1287 | find-cache-dir "^4.0.0" 1288 | schema-utils "^4.0.0" 1289 | 1290 | babel-plugin-polyfill-corejs2@^0.4.10: 1291 | version "0.4.12" 1292 | resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.12.tgz#ca55bbec8ab0edeeef3d7b8ffd75322e210879a9" 1293 | integrity sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og== 1294 | dependencies: 1295 | "@babel/compat-data" "^7.22.6" 1296 | "@babel/helper-define-polyfill-provider" "^0.6.3" 1297 | semver "^6.3.1" 1298 | 1299 | babel-plugin-polyfill-corejs3@^0.10.6: 1300 | version "0.10.6" 1301 | resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz#2deda57caef50f59c525aeb4964d3b2f867710c7" 1302 | integrity sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA== 1303 | dependencies: 1304 | "@babel/helper-define-polyfill-provider" "^0.6.2" 1305 | core-js-compat "^3.38.0" 1306 | 1307 | babel-plugin-polyfill-regenerator@^0.6.1: 1308 | version "0.6.3" 1309 | resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.3.tgz#abeb1f3f1c762eace37587f42548b08b57789bc8" 1310 | integrity sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q== 1311 | dependencies: 1312 | "@babel/helper-define-polyfill-provider" "^0.6.3" 1313 | 1314 | balanced-match@^1.0.0: 1315 | version "1.0.2" 1316 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 1317 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 1318 | 1319 | big.js@^5.2.2: 1320 | version "5.2.2" 1321 | resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" 1322 | integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== 1323 | 1324 | brace-expansion@^1.1.7: 1325 | version "1.1.11" 1326 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 1327 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 1328 | dependencies: 1329 | balanced-match "^1.0.0" 1330 | concat-map "0.0.1" 1331 | 1332 | brace-expansion@^2.0.1: 1333 | version "2.0.1" 1334 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" 1335 | integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== 1336 | dependencies: 1337 | balanced-match "^1.0.0" 1338 | 1339 | braces@^3.0.3: 1340 | version "3.0.3" 1341 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" 1342 | integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== 1343 | dependencies: 1344 | fill-range "^7.1.1" 1345 | 1346 | browserslist@^4.24.0, browserslist@^4.24.3: 1347 | version "4.24.4" 1348 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.4.tgz#c6b2865a3f08bcb860a0e827389003b9fe686e4b" 1349 | integrity sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A== 1350 | dependencies: 1351 | caniuse-lite "^1.0.30001688" 1352 | electron-to-chromium "^1.5.73" 1353 | node-releases "^2.0.19" 1354 | update-browserslist-db "^1.1.1" 1355 | 1356 | buffer-from@^1.0.0: 1357 | version "1.1.2" 1358 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" 1359 | integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== 1360 | 1361 | call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1: 1362 | version "1.0.1" 1363 | resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz#32e5892e6361b29b0b545ba6f7763378daca2840" 1364 | integrity sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g== 1365 | dependencies: 1366 | es-errors "^1.3.0" 1367 | function-bind "^1.1.2" 1368 | 1369 | call-bind@^1.0.7, call-bind@^1.0.8: 1370 | version "1.0.8" 1371 | resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.8.tgz#0736a9660f537e3388826f440d5ec45f744eaa4c" 1372 | integrity sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww== 1373 | dependencies: 1374 | call-bind-apply-helpers "^1.0.0" 1375 | es-define-property "^1.0.0" 1376 | get-intrinsic "^1.2.4" 1377 | set-function-length "^1.2.2" 1378 | 1379 | call-bound@^1.0.2: 1380 | version "1.0.3" 1381 | resolved "https://registry.yarnpkg.com/call-bound/-/call-bound-1.0.3.tgz#41cfd032b593e39176a71533ab4f384aa04fd681" 1382 | integrity sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA== 1383 | dependencies: 1384 | call-bind-apply-helpers "^1.0.1" 1385 | get-intrinsic "^1.2.6" 1386 | 1387 | caniuse-lite@^1.0.30001688: 1388 | version "1.0.30001692" 1389 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001692.tgz#4585729d95e6b95be5b439da6ab55250cd125bf9" 1390 | integrity sha512-A95VKan0kdtrsnMubMKxEKUKImOPSuCpYgxSQBo036P5YYgVIcOYJEgt/txJWqObiRQeISNCfef9nvlQ0vbV7A== 1391 | 1392 | chalk@^4.0.0: 1393 | version "4.1.2" 1394 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" 1395 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== 1396 | dependencies: 1397 | ansi-styles "^4.1.0" 1398 | supports-color "^7.1.0" 1399 | 1400 | chrome-trace-event@^1.0.2: 1401 | version "1.0.4" 1402 | resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz#05bffd7ff928465093314708c93bdfa9bd1f0f5b" 1403 | integrity sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ== 1404 | 1405 | classnames@^2.2.6: 1406 | version "2.5.1" 1407 | resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.5.1.tgz#ba774c614be0f016da105c858e7159eae8e7687b" 1408 | integrity sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow== 1409 | 1410 | cli-table3@^0.6.1: 1411 | version "0.6.5" 1412 | resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.5.tgz#013b91351762739c16a9567c21a04632e449bf2f" 1413 | integrity sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ== 1414 | dependencies: 1415 | string-width "^4.2.0" 1416 | optionalDependencies: 1417 | "@colors/colors" "1.5.0" 1418 | 1419 | clone-deep@^4.0.1: 1420 | version "4.0.1" 1421 | resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" 1422 | integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== 1423 | dependencies: 1424 | is-plain-object "^2.0.4" 1425 | kind-of "^6.0.2" 1426 | shallow-clone "^3.0.0" 1427 | 1428 | color-convert@^2.0.1: 1429 | version "2.0.1" 1430 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 1431 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 1432 | dependencies: 1433 | color-name "~1.1.4" 1434 | 1435 | color-name@~1.1.4: 1436 | version "1.1.4" 1437 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 1438 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 1439 | 1440 | colorette@^2.0.14: 1441 | version "2.0.20" 1442 | resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" 1443 | integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== 1444 | 1445 | commander@^2.20.0: 1446 | version "2.20.3" 1447 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" 1448 | integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== 1449 | 1450 | commander@^5.0.0: 1451 | version "5.1.0" 1452 | resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" 1453 | integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== 1454 | 1455 | commander@^7.0.0, commander@^7.2.0: 1456 | version "7.2.0" 1457 | resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" 1458 | integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== 1459 | 1460 | common-path-prefix@^3.0.0: 1461 | version "3.0.0" 1462 | resolved "https://registry.yarnpkg.com/common-path-prefix/-/common-path-prefix-3.0.0.tgz#7d007a7e07c58c4b4d5f433131a19141b29f11e0" 1463 | integrity sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w== 1464 | 1465 | concat-map@0.0.1: 1466 | version "0.0.1" 1467 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 1468 | integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== 1469 | 1470 | convert-source-map@^2.0.0: 1471 | version "2.0.0" 1472 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" 1473 | integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== 1474 | 1475 | core-js-compat@^3.38.0, core-js-compat@^3.38.1: 1476 | version "3.40.0" 1477 | resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.40.0.tgz#7485912a5a4a4315c2fdb2cbdc623e6881c88b38" 1478 | integrity sha512-0XEDpr5y5mijvw8Lbc6E5AkjrHfp7eEoPlu36SWeAbcL8fn1G1ANe8DBlo2XoNN89oVpxWwOjYIPVzR4ZvsKCQ== 1479 | dependencies: 1480 | browserslist "^4.24.3" 1481 | 1482 | cross-spawn@^7.0.3: 1483 | version "7.0.6" 1484 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" 1485 | integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== 1486 | dependencies: 1487 | path-key "^3.1.0" 1488 | shebang-command "^2.0.0" 1489 | which "^2.0.1" 1490 | 1491 | dayjs@^1.10.4: 1492 | version "1.11.13" 1493 | resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.13.tgz#92430b0139055c3ebb60150aa13e860a4b5a366c" 1494 | integrity sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg== 1495 | 1496 | debounce@^1.2.1: 1497 | version "1.2.1" 1498 | resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5" 1499 | integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== 1500 | 1501 | debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: 1502 | version "4.4.0" 1503 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.0.tgz#2b3f2aea2ffeb776477460267377dc8710faba8a" 1504 | integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA== 1505 | dependencies: 1506 | ms "^2.1.3" 1507 | 1508 | deep-equal@^1.1.1: 1509 | version "1.1.2" 1510 | resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.2.tgz#78a561b7830eef3134c7f6f3a3d6af272a678761" 1511 | integrity sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg== 1512 | dependencies: 1513 | is-arguments "^1.1.1" 1514 | is-date-object "^1.0.5" 1515 | is-regex "^1.1.4" 1516 | object-is "^1.1.5" 1517 | object-keys "^1.1.1" 1518 | regexp.prototype.flags "^1.5.1" 1519 | 1520 | define-data-property@^1.0.1, define-data-property@^1.1.4: 1521 | version "1.1.4" 1522 | resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" 1523 | integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== 1524 | dependencies: 1525 | es-define-property "^1.0.0" 1526 | es-errors "^1.3.0" 1527 | gopd "^1.0.1" 1528 | 1529 | define-properties@^1.2.1: 1530 | version "1.2.1" 1531 | resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" 1532 | integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== 1533 | dependencies: 1534 | define-data-property "^1.0.1" 1535 | has-property-descriptors "^1.0.0" 1536 | object-keys "^1.1.1" 1537 | 1538 | dunder-proto@^1.0.1: 1539 | version "1.0.1" 1540 | resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a" 1541 | integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== 1542 | dependencies: 1543 | call-bind-apply-helpers "^1.0.1" 1544 | es-errors "^1.3.0" 1545 | gopd "^1.2.0" 1546 | 1547 | duplexer@^0.1.2: 1548 | version "0.1.2" 1549 | resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" 1550 | integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== 1551 | 1552 | electron-to-chromium@^1.5.73: 1553 | version "1.5.80" 1554 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.80.tgz#ca7a8361d7305f0ec9e203ce4e633cbb8a8ef1b1" 1555 | integrity sha512-LTrKpW0AqIuHwmlVNV+cjFYTnXtM9K37OGhpe0ZI10ScPSxqVSryZHIY3WnCS5NSYbBODRTZyhRMS2h5FAEqAw== 1556 | 1557 | emoji-regex@^8.0.0: 1558 | version "8.0.0" 1559 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" 1560 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== 1561 | 1562 | emojis-list@^3.0.0: 1563 | version "3.0.0" 1564 | resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" 1565 | integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== 1566 | 1567 | enhanced-resolve@^5.17.1: 1568 | version "5.18.0" 1569 | resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.18.0.tgz#91eb1db193896b9801251eeff1c6980278b1e404" 1570 | integrity sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ== 1571 | dependencies: 1572 | graceful-fs "^4.2.4" 1573 | tapable "^2.2.0" 1574 | 1575 | envinfo@^7.7.3: 1576 | version "7.14.0" 1577 | resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.14.0.tgz#26dac5db54418f2a4c1159153a0b2ae980838aae" 1578 | integrity sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg== 1579 | 1580 | es-define-property@^1.0.0, es-define-property@^1.0.1: 1581 | version "1.0.1" 1582 | resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa" 1583 | integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== 1584 | 1585 | es-errors@^1.3.0: 1586 | version "1.3.0" 1587 | resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" 1588 | integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== 1589 | 1590 | es-module-lexer@^1.2.1: 1591 | version "1.6.0" 1592 | resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.6.0.tgz#da49f587fd9e68ee2404fe4e256c0c7d3a81be21" 1593 | integrity sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ== 1594 | 1595 | es-object-atoms@^1.0.0: 1596 | version "1.0.0" 1597 | resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.0.0.tgz#ddb55cd47ac2e240701260bc2a8e31ecb643d941" 1598 | integrity sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw== 1599 | dependencies: 1600 | es-errors "^1.3.0" 1601 | 1602 | escalade@^3.2.0: 1603 | version "3.2.0" 1604 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" 1605 | integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== 1606 | 1607 | escape-string-regexp@^4.0.0: 1608 | version "4.0.0" 1609 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" 1610 | integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== 1611 | 1612 | eslint-scope@5.1.1: 1613 | version "5.1.1" 1614 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" 1615 | integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== 1616 | dependencies: 1617 | esrecurse "^4.3.0" 1618 | estraverse "^4.1.1" 1619 | 1620 | esrecurse@^4.3.0: 1621 | version "4.3.0" 1622 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" 1623 | integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== 1624 | dependencies: 1625 | estraverse "^5.2.0" 1626 | 1627 | estraverse@^4.1.1: 1628 | version "4.3.0" 1629 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" 1630 | integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== 1631 | 1632 | estraverse@^5.2.0: 1633 | version "5.3.0" 1634 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" 1635 | integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== 1636 | 1637 | esutils@^2.0.2: 1638 | version "2.0.3" 1639 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" 1640 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== 1641 | 1642 | events@^3.2.0: 1643 | version "3.3.0" 1644 | resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" 1645 | integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== 1646 | 1647 | exenv@^1.2.2: 1648 | version "1.2.2" 1649 | resolved "https://registry.yarnpkg.com/exenv/-/exenv-1.2.2.tgz#2ae78e85d9894158670b03d47bec1f03bd91bb9d" 1650 | integrity sha512-Z+ktTxTwv9ILfgKCk32OX3n/doe+OcLTRtqK9pcL+JsP3J1/VW8Uvl4ZjLlKqeW4rzK4oesDOGMEMRIZqtP4Iw== 1651 | 1652 | fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: 1653 | version "3.1.3" 1654 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" 1655 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== 1656 | 1657 | fast-glob@3: 1658 | version "3.3.3" 1659 | resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.3.tgz#d06d585ce8dba90a16b0505c543c3ccfb3aeb818" 1660 | integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg== 1661 | dependencies: 1662 | "@nodelib/fs.stat" "^2.0.2" 1663 | "@nodelib/fs.walk" "^1.2.3" 1664 | glob-parent "^5.1.2" 1665 | merge2 "^1.3.0" 1666 | micromatch "^4.0.8" 1667 | 1668 | fast-json-stable-stringify@^2.0.0: 1669 | version "2.1.0" 1670 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" 1671 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== 1672 | 1673 | fast-uri@^3.0.1: 1674 | version "3.0.5" 1675 | resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.0.5.tgz#19f5f9691d0dab9b85861a7bb5d98fca961da9cd" 1676 | integrity sha512-5JnBCWpFlMo0a3ciDy/JckMzzv1U9coZrIhedq+HXxxUfDTAiS0LA8OKVao4G9BxmCVck/jtA5r3KAtRWEyD8Q== 1677 | 1678 | fastest-levenshtein@^1.0.12: 1679 | version "1.0.16" 1680 | resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" 1681 | integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== 1682 | 1683 | fastq@^1.6.0: 1684 | version "1.18.0" 1685 | resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.18.0.tgz#d631d7e25faffea81887fe5ea8c9010e1b36fee0" 1686 | integrity sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw== 1687 | dependencies: 1688 | reusify "^1.0.4" 1689 | 1690 | fill-range@^7.1.1: 1691 | version "7.1.1" 1692 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" 1693 | integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== 1694 | dependencies: 1695 | to-regex-range "^5.0.1" 1696 | 1697 | find-cache-dir@^4.0.0: 1698 | version "4.0.0" 1699 | resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-4.0.0.tgz#a30ee0448f81a3990708f6453633c733e2f6eec2" 1700 | integrity sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg== 1701 | dependencies: 1702 | common-path-prefix "^3.0.0" 1703 | pkg-dir "^7.0.0" 1704 | 1705 | find-up@^4.0.0: 1706 | version "4.1.0" 1707 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" 1708 | integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== 1709 | dependencies: 1710 | locate-path "^5.0.0" 1711 | path-exists "^4.0.0" 1712 | 1713 | find-up@^6.3.0: 1714 | version "6.3.0" 1715 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-6.3.0.tgz#2abab3d3280b2dc7ac10199ef324c4e002c8c790" 1716 | integrity sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw== 1717 | dependencies: 1718 | locate-path "^7.1.0" 1719 | path-exists "^5.0.0" 1720 | 1721 | flarum-tsconfig@^2.0.0: 1722 | version "2.0.0" 1723 | resolved "https://registry.yarnpkg.com/flarum-tsconfig/-/flarum-tsconfig-2.0.0.tgz#72cd1f8cb5e5c8f58acad599a2c05f3e00df928b" 1724 | integrity sha512-YEyYu9uZCc7WIXw4Q+W60aC2RVSw7/K0tlaVfQrJbovw6Uu0dIV5AdRRtpJFGjVhzv+OmMfbQeG5aI+xxf/gvQ== 1725 | dependencies: 1726 | "@types/jquery" "^3.5.5" 1727 | "@types/mithril" "^2.0.7" 1728 | "@types/throttle-debounce" "^2.1.0" 1729 | dayjs "^1.10.4" 1730 | 1731 | flarum-webpack-config@^3.0.0: 1732 | version "3.0.0" 1733 | resolved "https://registry.yarnpkg.com/flarum-webpack-config/-/flarum-webpack-config-3.0.0.tgz#f61a0c0230ef4d9b3bb6adc683833d6477321461" 1734 | integrity sha512-wqJlTL8vW4TXoY7TwjdN6oNdRaoec0F6ESmD3XX3hpjRt3NB7VGu0Y6XsNSA1wDa3v77Cz1vvOY590vqtIGQlQ== 1735 | dependencies: 1736 | "@babel/core" "^7.20.2" 1737 | "@babel/plugin-proposal-class-properties" "^7.18.6" 1738 | "@babel/plugin-proposal-private-methods" "^7.18.6" 1739 | "@babel/plugin-transform-object-assign" "^7.18.6" 1740 | "@babel/plugin-transform-react-jsx" "^7.19.0" 1741 | "@babel/plugin-transform-runtime" "^7.19.6" 1742 | "@babel/preset-env" "^7.20.2" 1743 | "@babel/preset-react" "^7.18.6" 1744 | "@babel/preset-typescript" "^7.18.6" 1745 | "@babel/runtime" "^7.20.1" 1746 | babel-loader "^9.1.0" 1747 | loader-utils "^1.4.0" 1748 | schema-utils "^3.0.0" 1749 | typescript "^4.9.3" 1750 | webpack "^5.76.0" 1751 | webpack-bundle-analyzer "^4.7.0" 1752 | 1753 | flat@^5.0.2: 1754 | version "5.0.2" 1755 | resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" 1756 | integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== 1757 | 1758 | fs.realpath@^1.0.0: 1759 | version "1.0.0" 1760 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 1761 | integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== 1762 | 1763 | function-bind@^1.1.2: 1764 | version "1.1.2" 1765 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" 1766 | integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== 1767 | 1768 | functions-have-names@^1.2.3: 1769 | version "1.2.3" 1770 | resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" 1771 | integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== 1772 | 1773 | gensync@^1.0.0-beta.2: 1774 | version "1.0.0-beta.2" 1775 | resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" 1776 | integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== 1777 | 1778 | get-intrinsic@^1.2.4, get-intrinsic@^1.2.6: 1779 | version "1.2.7" 1780 | resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.7.tgz#dcfcb33d3272e15f445d15124bc0a216189b9044" 1781 | integrity sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA== 1782 | dependencies: 1783 | call-bind-apply-helpers "^1.0.1" 1784 | es-define-property "^1.0.1" 1785 | es-errors "^1.3.0" 1786 | es-object-atoms "^1.0.0" 1787 | function-bind "^1.1.2" 1788 | get-proto "^1.0.0" 1789 | gopd "^1.2.0" 1790 | has-symbols "^1.1.0" 1791 | hasown "^2.0.2" 1792 | math-intrinsics "^1.1.0" 1793 | 1794 | get-proto@^1.0.0, get-proto@^1.0.1: 1795 | version "1.0.1" 1796 | resolved "https://registry.yarnpkg.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1" 1797 | integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== 1798 | dependencies: 1799 | dunder-proto "^1.0.1" 1800 | es-object-atoms "^1.0.0" 1801 | 1802 | glob-parent@^5.1.2: 1803 | version "5.1.2" 1804 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" 1805 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== 1806 | dependencies: 1807 | is-glob "^4.0.1" 1808 | 1809 | glob-to-regexp@^0.4.1: 1810 | version "0.4.1" 1811 | resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" 1812 | integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== 1813 | 1814 | glob@^7.1.3: 1815 | version "7.2.3" 1816 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" 1817 | integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== 1818 | dependencies: 1819 | fs.realpath "^1.0.0" 1820 | inflight "^1.0.4" 1821 | inherits "2" 1822 | minimatch "^3.1.1" 1823 | once "^1.3.0" 1824 | path-is-absolute "^1.0.0" 1825 | 1826 | globals@^11.1.0: 1827 | version "11.12.0" 1828 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" 1829 | integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== 1830 | 1831 | gopd@^1.0.1, gopd@^1.2.0: 1832 | version "1.2.0" 1833 | resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1" 1834 | integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== 1835 | 1836 | graceful-fs@^4.1.2, graceful-fs@^4.2.11, graceful-fs@^4.2.4: 1837 | version "4.2.11" 1838 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" 1839 | integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== 1840 | 1841 | gud@^1.0.0: 1842 | version "1.0.0" 1843 | resolved "https://registry.yarnpkg.com/gud/-/gud-1.0.0.tgz#a489581b17e6a70beca9abe3ae57de7a499852c0" 1844 | integrity sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw== 1845 | 1846 | gzip-size@^6.0.0: 1847 | version "6.0.0" 1848 | resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462" 1849 | integrity sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q== 1850 | dependencies: 1851 | duplexer "^0.1.2" 1852 | 1853 | has-flag@^4.0.0: 1854 | version "4.0.0" 1855 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 1856 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 1857 | 1858 | has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: 1859 | version "1.0.2" 1860 | resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" 1861 | integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== 1862 | dependencies: 1863 | es-define-property "^1.0.0" 1864 | 1865 | has-symbols@^1.0.3, has-symbols@^1.1.0: 1866 | version "1.1.0" 1867 | resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338" 1868 | integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== 1869 | 1870 | has-tostringtag@^1.0.2: 1871 | version "1.0.2" 1872 | resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" 1873 | integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== 1874 | dependencies: 1875 | has-symbols "^1.0.3" 1876 | 1877 | hasown@^2.0.2: 1878 | version "2.0.2" 1879 | resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" 1880 | integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== 1881 | dependencies: 1882 | function-bind "^1.1.2" 1883 | 1884 | html-escaper@^2.0.2: 1885 | version "2.0.2" 1886 | resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" 1887 | integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== 1888 | 1889 | import-local@^3.0.2: 1890 | version "3.2.0" 1891 | resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.2.0.tgz#c3d5c745798c02a6f8b897726aba5100186ee260" 1892 | integrity sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA== 1893 | dependencies: 1894 | pkg-dir "^4.2.0" 1895 | resolve-cwd "^3.0.0" 1896 | 1897 | inflight@^1.0.4: 1898 | version "1.0.6" 1899 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 1900 | integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== 1901 | dependencies: 1902 | once "^1.3.0" 1903 | wrappy "1" 1904 | 1905 | inherits@2: 1906 | version "2.0.4" 1907 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 1908 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 1909 | 1910 | interpret@^2.2.0: 1911 | version "2.2.0" 1912 | resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" 1913 | integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== 1914 | 1915 | is-arguments@^1.1.1: 1916 | version "1.2.0" 1917 | resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.2.0.tgz#ad58c6aecf563b78ef2bf04df540da8f5d7d8e1b" 1918 | integrity sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA== 1919 | dependencies: 1920 | call-bound "^1.0.2" 1921 | has-tostringtag "^1.0.2" 1922 | 1923 | is-core-module@^2.16.0: 1924 | version "2.16.1" 1925 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4" 1926 | integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w== 1927 | dependencies: 1928 | hasown "^2.0.2" 1929 | 1930 | is-date-object@^1.0.5: 1931 | version "1.1.0" 1932 | resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.1.0.tgz#ad85541996fc7aa8b2729701d27b7319f95d82f7" 1933 | integrity sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg== 1934 | dependencies: 1935 | call-bound "^1.0.2" 1936 | has-tostringtag "^1.0.2" 1937 | 1938 | is-extglob@^2.1.1: 1939 | version "2.1.1" 1940 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 1941 | integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== 1942 | 1943 | is-fullwidth-code-point@^3.0.0: 1944 | version "3.0.0" 1945 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" 1946 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== 1947 | 1948 | is-glob@^4.0.1: 1949 | version "4.0.3" 1950 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" 1951 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== 1952 | dependencies: 1953 | is-extglob "^2.1.1" 1954 | 1955 | is-number@^7.0.0: 1956 | version "7.0.0" 1957 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 1958 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 1959 | 1960 | is-plain-object@^2.0.4: 1961 | version "2.0.4" 1962 | resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" 1963 | integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== 1964 | dependencies: 1965 | isobject "^3.0.1" 1966 | 1967 | is-regex@^1.1.4: 1968 | version "1.2.1" 1969 | resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.2.1.tgz#76d70a3ed10ef9be48eb577887d74205bf0cad22" 1970 | integrity sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g== 1971 | dependencies: 1972 | call-bound "^1.0.2" 1973 | gopd "^1.2.0" 1974 | has-tostringtag "^1.0.2" 1975 | hasown "^2.0.2" 1976 | 1977 | isexe@^2.0.0: 1978 | version "2.0.0" 1979 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 1980 | integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== 1981 | 1982 | isobject@^3.0.1: 1983 | version "3.0.1" 1984 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" 1985 | integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== 1986 | 1987 | jest-worker@^27.4.5: 1988 | version "27.5.1" 1989 | resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" 1990 | integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== 1991 | dependencies: 1992 | "@types/node" "*" 1993 | merge-stream "^2.0.0" 1994 | supports-color "^8.0.0" 1995 | 1996 | "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: 1997 | version "4.0.0" 1998 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 1999 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 2000 | 2001 | jsesc@^3.0.2: 2002 | version "3.1.0" 2003 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.1.0.tgz#74d335a234f67ed19907fdadfac7ccf9d409825d" 2004 | integrity sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA== 2005 | 2006 | jsesc@~3.0.2: 2007 | version "3.0.2" 2008 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.0.2.tgz#bb8b09a6597ba426425f2e4a07245c3d00b9343e" 2009 | integrity sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g== 2010 | 2011 | json-parse-even-better-errors@^2.3.1: 2012 | version "2.3.1" 2013 | resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" 2014 | integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== 2015 | 2016 | json-schema-traverse@^0.4.1: 2017 | version "0.4.1" 2018 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" 2019 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== 2020 | 2021 | json-schema-traverse@^1.0.0: 2022 | version "1.0.0" 2023 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" 2024 | integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== 2025 | 2026 | json5@^1.0.1: 2027 | version "1.0.2" 2028 | resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" 2029 | integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== 2030 | dependencies: 2031 | minimist "^1.2.0" 2032 | 2033 | json5@^2.2.3: 2034 | version "2.2.3" 2035 | resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" 2036 | integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== 2037 | 2038 | keyboard-key@^1.0.4: 2039 | version "1.1.0" 2040 | resolved "https://registry.yarnpkg.com/keyboard-key/-/keyboard-key-1.1.0.tgz#6f2e8e37fa11475bb1f1d65d5174f1b35653f5b7" 2041 | integrity sha512-qkBzPTi3rlAKvX7k0/ub44sqOfXeLc/jcnGGmj5c7BJpU8eDrEVPyhCvNYAaoubbsLm9uGWwQJO1ytQK1a9/dQ== 2042 | 2043 | kind-of@^6.0.2: 2044 | version "6.0.3" 2045 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" 2046 | integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== 2047 | 2048 | loader-runner@^4.2.0: 2049 | version "4.3.0" 2050 | resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" 2051 | integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== 2052 | 2053 | loader-utils@^1.4.0: 2054 | version "1.4.2" 2055 | resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.2.tgz#29a957f3a63973883eb684f10ffd3d151fec01a3" 2056 | integrity sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg== 2057 | dependencies: 2058 | big.js "^5.2.2" 2059 | emojis-list "^3.0.0" 2060 | json5 "^1.0.1" 2061 | 2062 | locate-path@^5.0.0: 2063 | version "5.0.0" 2064 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" 2065 | integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== 2066 | dependencies: 2067 | p-locate "^4.1.0" 2068 | 2069 | locate-path@^7.1.0: 2070 | version "7.2.0" 2071 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-7.2.0.tgz#69cb1779bd90b35ab1e771e1f2f89a202c2a8a8a" 2072 | integrity sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA== 2073 | dependencies: 2074 | p-locate "^6.0.0" 2075 | 2076 | lodash.debounce@^4.0.8: 2077 | version "4.0.8" 2078 | resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" 2079 | integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== 2080 | 2081 | lodash@^4.17.15: 2082 | version "4.17.21" 2083 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" 2084 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== 2085 | 2086 | loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: 2087 | version "1.4.0" 2088 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" 2089 | integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== 2090 | dependencies: 2091 | js-tokens "^3.0.0 || ^4.0.0" 2092 | 2093 | lru-cache@^5.1.1: 2094 | version "5.1.1" 2095 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" 2096 | integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== 2097 | dependencies: 2098 | yallist "^3.0.2" 2099 | 2100 | math-intrinsics@^1.1.0: 2101 | version "1.1.0" 2102 | resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9" 2103 | integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== 2104 | 2105 | merge-stream@^2.0.0: 2106 | version "2.0.0" 2107 | resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" 2108 | integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== 2109 | 2110 | merge2@^1.3.0: 2111 | version "1.4.1" 2112 | resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" 2113 | integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== 2114 | 2115 | micromatch@^4.0.8: 2116 | version "4.0.8" 2117 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" 2118 | integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== 2119 | dependencies: 2120 | braces "^3.0.3" 2121 | picomatch "^2.3.1" 2122 | 2123 | mime-db@1.52.0: 2124 | version "1.52.0" 2125 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" 2126 | integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== 2127 | 2128 | mime-types@^2.1.27: 2129 | version "2.1.35" 2130 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" 2131 | integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== 2132 | dependencies: 2133 | mime-db "1.52.0" 2134 | 2135 | "minimatch@6 || 7 || 8 || 9 || 10": 2136 | version "10.0.1" 2137 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.0.1.tgz#ce0521856b453c86e25f2c4c0d03e6ff7ddc440b" 2138 | integrity sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ== 2139 | dependencies: 2140 | brace-expansion "^2.0.1" 2141 | 2142 | minimatch@^3.1.1: 2143 | version "3.1.2" 2144 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" 2145 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== 2146 | dependencies: 2147 | brace-expansion "^1.1.7" 2148 | 2149 | minimist@^1.2.0: 2150 | version "1.2.8" 2151 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" 2152 | integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== 2153 | 2154 | mrmime@^2.0.0: 2155 | version "2.0.0" 2156 | resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-2.0.0.tgz#151082a6e06e59a9a39b46b3e14d5cfe92b3abb4" 2157 | integrity sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw== 2158 | 2159 | ms@^2.1.3: 2160 | version "2.1.3" 2161 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" 2162 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== 2163 | 2164 | ncp@^2.0.0: 2165 | version "2.0.0" 2166 | resolved "https://registry.yarnpkg.com/ncp/-/ncp-2.0.0.tgz#195a21d6c46e361d2fb1281ba38b91e9df7bdbb3" 2167 | integrity sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA== 2168 | 2169 | neo-async@^2.6.2: 2170 | version "2.6.2" 2171 | resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" 2172 | integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== 2173 | 2174 | node-releases@^2.0.19: 2175 | version "2.0.19" 2176 | resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.19.tgz#9e445a52950951ec4d177d843af370b411caf314" 2177 | integrity sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw== 2178 | 2179 | normalize-path@3: 2180 | version "3.0.0" 2181 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" 2182 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 2183 | 2184 | object-assign@^4.1.1: 2185 | version "4.1.1" 2186 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 2187 | integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== 2188 | 2189 | object-is@^1.1.5: 2190 | version "1.1.6" 2191 | resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.6.tgz#1a6a53aed2dd8f7e6775ff870bea58545956ab07" 2192 | integrity sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q== 2193 | dependencies: 2194 | call-bind "^1.0.7" 2195 | define-properties "^1.2.1" 2196 | 2197 | object-keys@^1.1.1: 2198 | version "1.1.1" 2199 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" 2200 | integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== 2201 | 2202 | once@^1.3.0: 2203 | version "1.4.0" 2204 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 2205 | integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== 2206 | dependencies: 2207 | wrappy "1" 2208 | 2209 | opener@^1.5.2: 2210 | version "1.5.2" 2211 | resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" 2212 | integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== 2213 | 2214 | p-limit@^2.2.0: 2215 | version "2.3.0" 2216 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" 2217 | integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== 2218 | dependencies: 2219 | p-try "^2.0.0" 2220 | 2221 | p-limit@^4.0.0: 2222 | version "4.0.0" 2223 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644" 2224 | integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== 2225 | dependencies: 2226 | yocto-queue "^1.0.0" 2227 | 2228 | p-locate@^4.1.0: 2229 | version "4.1.0" 2230 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" 2231 | integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== 2232 | dependencies: 2233 | p-limit "^2.2.0" 2234 | 2235 | p-locate@^6.0.0: 2236 | version "6.0.0" 2237 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-6.0.0.tgz#3da9a49d4934b901089dca3302fa65dc5a05c04f" 2238 | integrity sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw== 2239 | dependencies: 2240 | p-limit "^4.0.0" 2241 | 2242 | p-try@^2.0.0: 2243 | version "2.2.0" 2244 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" 2245 | integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== 2246 | 2247 | path-exists@^4.0.0: 2248 | version "4.0.0" 2249 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" 2250 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== 2251 | 2252 | path-exists@^5.0.0: 2253 | version "5.0.0" 2254 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-5.0.0.tgz#a6aad9489200b21fab31e49cf09277e5116fb9e7" 2255 | integrity sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ== 2256 | 2257 | path-is-absolute@^1.0.0: 2258 | version "1.0.1" 2259 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 2260 | integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== 2261 | 2262 | path-key@^3.1.0: 2263 | version "3.1.1" 2264 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" 2265 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== 2266 | 2267 | path-parse@^1.0.7: 2268 | version "1.0.7" 2269 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" 2270 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== 2271 | 2272 | picocolors@^1.0.0, picocolors@^1.1.1: 2273 | version "1.1.1" 2274 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" 2275 | integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== 2276 | 2277 | picomatch@^2.3.1: 2278 | version "2.3.1" 2279 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" 2280 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== 2281 | 2282 | pkg-dir@^4.2.0: 2283 | version "4.2.0" 2284 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" 2285 | integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== 2286 | dependencies: 2287 | find-up "^4.0.0" 2288 | 2289 | pkg-dir@^7.0.0: 2290 | version "7.0.0" 2291 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-7.0.0.tgz#8f0c08d6df4476756c5ff29b3282d0bab7517d11" 2292 | integrity sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA== 2293 | dependencies: 2294 | find-up "^6.3.0" 2295 | 2296 | popper.js@^1.14.4: 2297 | version "1.16.1" 2298 | resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.1.tgz#2a223cb3dc7b6213d740e40372be40de43e65b1b" 2299 | integrity sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ== 2300 | 2301 | prettier@^2.5.1: 2302 | version "2.8.8" 2303 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" 2304 | integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== 2305 | 2306 | prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2: 2307 | version "15.8.1" 2308 | resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" 2309 | integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== 2310 | dependencies: 2311 | loose-envify "^1.4.0" 2312 | object-assign "^4.1.1" 2313 | react-is "^16.13.1" 2314 | 2315 | punycode@^2.1.0: 2316 | version "2.3.1" 2317 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" 2318 | integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== 2319 | 2320 | queue-microtask@^1.2.2: 2321 | version "1.2.3" 2322 | resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" 2323 | integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== 2324 | 2325 | randombytes@^2.1.0: 2326 | version "2.1.0" 2327 | resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" 2328 | integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== 2329 | dependencies: 2330 | safe-buffer "^5.1.0" 2331 | 2332 | react-dom@^16.13.1: 2333 | version "16.14.0" 2334 | resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.14.0.tgz#7ad838ec29a777fb3c75c3a190f661cf92ab8b89" 2335 | integrity sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw== 2336 | dependencies: 2337 | loose-envify "^1.1.0" 2338 | object-assign "^4.1.1" 2339 | prop-types "^15.6.2" 2340 | scheduler "^0.19.1" 2341 | 2342 | react-is@^16.13.1, react-is@^16.6.3, react-is@^16.8.6: 2343 | version "16.13.1" 2344 | resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" 2345 | integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== 2346 | 2347 | react-popper@^1.3.4: 2348 | version "1.3.11" 2349 | resolved "https://registry.yarnpkg.com/react-popper/-/react-popper-1.3.11.tgz#a2cc3f0a67b75b66cfa62d2c409f9dd1fcc71ffd" 2350 | integrity sha512-VSA/bS+pSndSF2fiasHK/PTEEAyOpX60+H5EPAjoArr8JGm+oihu4UbrqcEBpQibJxBVCpYyjAX7abJ+7DoYVg== 2351 | dependencies: 2352 | "@babel/runtime" "^7.1.2" 2353 | "@hypnosphi/create-react-context" "^0.3.1" 2354 | deep-equal "^1.1.1" 2355 | popper.js "^1.14.4" 2356 | prop-types "^15.6.1" 2357 | typed-styles "^0.0.7" 2358 | warning "^4.0.2" 2359 | 2360 | react@^16.13.1: 2361 | version "16.14.0" 2362 | resolved "https://registry.yarnpkg.com/react/-/react-16.14.0.tgz#94d776ddd0aaa37da3eda8fc5b6b18a4c9a3114d" 2363 | integrity sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g== 2364 | dependencies: 2365 | loose-envify "^1.1.0" 2366 | object-assign "^4.1.1" 2367 | prop-types "^15.6.2" 2368 | 2369 | rechoir@^0.7.0: 2370 | version "0.7.1" 2371 | resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.1.tgz#9478a96a1ca135b5e88fc027f03ee92d6c645686" 2372 | integrity sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg== 2373 | dependencies: 2374 | resolve "^1.9.0" 2375 | 2376 | regenerate-unicode-properties@^10.2.0: 2377 | version "10.2.0" 2378 | resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz#626e39df8c372338ea9b8028d1f99dc3fd9c3db0" 2379 | integrity sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA== 2380 | dependencies: 2381 | regenerate "^1.4.2" 2382 | 2383 | regenerate@^1.4.2: 2384 | version "1.4.2" 2385 | resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" 2386 | integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== 2387 | 2388 | regenerator-runtime@^0.14.0: 2389 | version "0.14.1" 2390 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" 2391 | integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== 2392 | 2393 | regenerator-transform@^0.15.2: 2394 | version "0.15.2" 2395 | resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4" 2396 | integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== 2397 | dependencies: 2398 | "@babel/runtime" "^7.8.4" 2399 | 2400 | regexp.prototype.flags@^1.5.1: 2401 | version "1.5.4" 2402 | resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz#1ad6c62d44a259007e55b3970e00f746efbcaa19" 2403 | integrity sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA== 2404 | dependencies: 2405 | call-bind "^1.0.8" 2406 | define-properties "^1.2.1" 2407 | es-errors "^1.3.0" 2408 | get-proto "^1.0.1" 2409 | gopd "^1.2.0" 2410 | set-function-name "^2.0.2" 2411 | 2412 | regexpu-core@^6.2.0: 2413 | version "6.2.0" 2414 | resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-6.2.0.tgz#0e5190d79e542bf294955dccabae04d3c7d53826" 2415 | integrity sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA== 2416 | dependencies: 2417 | regenerate "^1.4.2" 2418 | regenerate-unicode-properties "^10.2.0" 2419 | regjsgen "^0.8.0" 2420 | regjsparser "^0.12.0" 2421 | unicode-match-property-ecmascript "^2.0.0" 2422 | unicode-match-property-value-ecmascript "^2.1.0" 2423 | 2424 | regjsgen@^0.8.0: 2425 | version "0.8.0" 2426 | resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.8.0.tgz#df23ff26e0c5b300a6470cad160a9d090c3a37ab" 2427 | integrity sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q== 2428 | 2429 | regjsparser@^0.12.0: 2430 | version "0.12.0" 2431 | resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.12.0.tgz#0e846df6c6530586429377de56e0475583b088dc" 2432 | integrity sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ== 2433 | dependencies: 2434 | jsesc "~3.0.2" 2435 | 2436 | require-from-string@^2.0.2: 2437 | version "2.0.2" 2438 | resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" 2439 | integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== 2440 | 2441 | resolve-cwd@^3.0.0: 2442 | version "3.0.0" 2443 | resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" 2444 | integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== 2445 | dependencies: 2446 | resolve-from "^5.0.0" 2447 | 2448 | resolve-from@^5.0.0: 2449 | version "5.0.0" 2450 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" 2451 | integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== 2452 | 2453 | resolve@^1.14.2, resolve@^1.9.0: 2454 | version "1.22.10" 2455 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.10.tgz#b663e83ffb09bbf2386944736baae803029b8b39" 2456 | integrity sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w== 2457 | dependencies: 2458 | is-core-module "^2.16.0" 2459 | path-parse "^1.0.7" 2460 | supports-preserve-symlinks-flag "^1.0.0" 2461 | 2462 | reusify@^1.0.4: 2463 | version "1.0.4" 2464 | resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" 2465 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== 2466 | 2467 | rimraf@^3.0.2: 2468 | version "3.0.2" 2469 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" 2470 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== 2471 | dependencies: 2472 | glob "^7.1.3" 2473 | 2474 | run-parallel@^1.1.9: 2475 | version "1.2.0" 2476 | resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" 2477 | integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== 2478 | dependencies: 2479 | queue-microtask "^1.2.2" 2480 | 2481 | safe-buffer@^5.1.0: 2482 | version "5.2.1" 2483 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 2484 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 2485 | 2486 | scheduler@^0.19.1: 2487 | version "0.19.1" 2488 | resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196" 2489 | integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA== 2490 | dependencies: 2491 | loose-envify "^1.1.0" 2492 | object-assign "^4.1.1" 2493 | 2494 | schema-utils@^3.0.0, schema-utils@^3.2.0: 2495 | version "3.3.0" 2496 | resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" 2497 | integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== 2498 | dependencies: 2499 | "@types/json-schema" "^7.0.8" 2500 | ajv "^6.12.5" 2501 | ajv-keywords "^3.5.2" 2502 | 2503 | schema-utils@^4.0.0, schema-utils@^4.3.0: 2504 | version "4.3.0" 2505 | resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.3.0.tgz#3b669f04f71ff2dfb5aba7ce2d5a9d79b35622c0" 2506 | integrity sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g== 2507 | dependencies: 2508 | "@types/json-schema" "^7.0.9" 2509 | ajv "^8.9.0" 2510 | ajv-formats "^2.1.1" 2511 | ajv-keywords "^5.1.0" 2512 | 2513 | semantic-ui-react@^0.88.2: 2514 | version "0.88.2" 2515 | resolved "https://registry.yarnpkg.com/semantic-ui-react/-/semantic-ui-react-0.88.2.tgz#3d4b54f8b799769b412435c8531475fd34aa4149" 2516 | integrity sha512-+02kN2z8PuA/cMdvDUsHhbJmBzxxgOXVHMFr9XK7zGb0wkW9A6OPQMFokWz7ozlVtKjN6r7zsb+Qvjk/qq1OWw== 2517 | dependencies: 2518 | "@babel/runtime" "^7.1.2" 2519 | "@semantic-ui-react/event-stack" "^3.1.0" 2520 | "@stardust-ui/react-component-event-listener" "~0.38.0" 2521 | "@stardust-ui/react-component-ref" "~0.38.0" 2522 | classnames "^2.2.6" 2523 | keyboard-key "^1.0.4" 2524 | lodash "^4.17.15" 2525 | prop-types "^15.7.2" 2526 | react-is "^16.8.6" 2527 | react-popper "^1.3.4" 2528 | shallowequal "^1.1.0" 2529 | 2530 | semver@^6.3.1: 2531 | version "6.3.1" 2532 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" 2533 | integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== 2534 | 2535 | serialize-javascript@^6.0.2: 2536 | version "6.0.2" 2537 | resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" 2538 | integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== 2539 | dependencies: 2540 | randombytes "^2.1.0" 2541 | 2542 | set-function-length@^1.2.2: 2543 | version "1.2.2" 2544 | resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" 2545 | integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== 2546 | dependencies: 2547 | define-data-property "^1.1.4" 2548 | es-errors "^1.3.0" 2549 | function-bind "^1.1.2" 2550 | get-intrinsic "^1.2.4" 2551 | gopd "^1.0.1" 2552 | has-property-descriptors "^1.0.2" 2553 | 2554 | set-function-name@^2.0.2: 2555 | version "2.0.2" 2556 | resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.2.tgz#16a705c5a0dc2f5e638ca96d8a8cd4e1c2b90985" 2557 | integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== 2558 | dependencies: 2559 | define-data-property "^1.1.4" 2560 | es-errors "^1.3.0" 2561 | functions-have-names "^1.2.3" 2562 | has-property-descriptors "^1.0.2" 2563 | 2564 | shallow-clone@^3.0.0: 2565 | version "3.0.1" 2566 | resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" 2567 | integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== 2568 | dependencies: 2569 | kind-of "^6.0.2" 2570 | 2571 | shallowequal@^1.1.0: 2572 | version "1.1.0" 2573 | resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" 2574 | integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== 2575 | 2576 | shebang-command@^2.0.0: 2577 | version "2.0.0" 2578 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" 2579 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== 2580 | dependencies: 2581 | shebang-regex "^3.0.0" 2582 | 2583 | shebang-regex@^3.0.0: 2584 | version "3.0.0" 2585 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" 2586 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== 2587 | 2588 | sirv@^2.0.3: 2589 | version "2.0.4" 2590 | resolved "https://registry.yarnpkg.com/sirv/-/sirv-2.0.4.tgz#5dd9a725c578e34e449f332703eb2a74e46a29b0" 2591 | integrity sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ== 2592 | dependencies: 2593 | "@polka/url" "^1.0.0-next.24" 2594 | mrmime "^2.0.0" 2595 | totalist "^3.0.0" 2596 | 2597 | source-map-support@~0.5.20: 2598 | version "0.5.21" 2599 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" 2600 | integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== 2601 | dependencies: 2602 | buffer-from "^1.0.0" 2603 | source-map "^0.6.0" 2604 | 2605 | source-map@^0.6.0: 2606 | version "0.6.1" 2607 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 2608 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 2609 | 2610 | string-width@^4.2.0: 2611 | version "4.2.3" 2612 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" 2613 | integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== 2614 | dependencies: 2615 | emoji-regex "^8.0.0" 2616 | is-fullwidth-code-point "^3.0.0" 2617 | strip-ansi "^6.0.1" 2618 | 2619 | strip-ansi@^6.0.1: 2620 | version "6.0.1" 2621 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" 2622 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== 2623 | dependencies: 2624 | ansi-regex "^5.0.1" 2625 | 2626 | supports-color@^7.1.0: 2627 | version "7.2.0" 2628 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" 2629 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 2630 | dependencies: 2631 | has-flag "^4.0.0" 2632 | 2633 | supports-color@^8.0.0: 2634 | version "8.1.1" 2635 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" 2636 | integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== 2637 | dependencies: 2638 | has-flag "^4.0.0" 2639 | 2640 | supports-preserve-symlinks-flag@^1.0.0: 2641 | version "1.0.0" 2642 | resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" 2643 | integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== 2644 | 2645 | tapable@^2.1.1, tapable@^2.2.0: 2646 | version "2.2.1" 2647 | resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" 2648 | integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== 2649 | 2650 | terser-webpack-plugin@^5.3.10: 2651 | version "5.3.11" 2652 | resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.11.tgz#93c21f44ca86634257cac176f884f942b7ba3832" 2653 | integrity sha512-RVCsMfuD0+cTt3EwX8hSl2Ks56EbFHWmhluwcqoPKtBnfjiT6olaq7PRIRfhyU8nnC2MrnDrBLfrD/RGE+cVXQ== 2654 | dependencies: 2655 | "@jridgewell/trace-mapping" "^0.3.25" 2656 | jest-worker "^27.4.5" 2657 | schema-utils "^4.3.0" 2658 | serialize-javascript "^6.0.2" 2659 | terser "^5.31.1" 2660 | 2661 | terser@^5.31.1: 2662 | version "5.37.0" 2663 | resolved "https://registry.yarnpkg.com/terser/-/terser-5.37.0.tgz#38aa66d1cfc43d0638fab54e43ff8a4f72a21ba3" 2664 | integrity sha512-B8wRRkmre4ERucLM/uXx4MOV5cbnOlVAqUst+1+iLKPI0dOgFO28f84ptoQt9HEI537PMzfYa/d+GEPKTRXmYA== 2665 | dependencies: 2666 | "@jridgewell/source-map" "^0.3.3" 2667 | acorn "^8.8.2" 2668 | commander "^2.20.0" 2669 | source-map-support "~0.5.20" 2670 | 2671 | to-regex-range@^5.0.1: 2672 | version "5.0.1" 2673 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 2674 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 2675 | dependencies: 2676 | is-number "^7.0.0" 2677 | 2678 | totalist@^3.0.0: 2679 | version "3.0.1" 2680 | resolved "https://registry.yarnpkg.com/totalist/-/totalist-3.0.1.tgz#ba3a3d600c915b1a97872348f79c127475f6acf8" 2681 | integrity sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ== 2682 | 2683 | "tslib@1 || 2": 2684 | version "2.8.1" 2685 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" 2686 | integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== 2687 | 2688 | tslib@^1.8.1: 2689 | version "1.14.1" 2690 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" 2691 | integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== 2692 | 2693 | tsutils@3: 2694 | version "3.21.0" 2695 | resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" 2696 | integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== 2697 | dependencies: 2698 | tslib "^1.8.1" 2699 | 2700 | type-coverage-core@^2.17.2: 2701 | version "2.29.7" 2702 | resolved "https://registry.yarnpkg.com/type-coverage-core/-/type-coverage-core-2.29.7.tgz#dbc50f88e7eaf4fab6ca6fbf1811a3612cfdf451" 2703 | integrity sha512-bt+bnXekw3p5NnqiZpNupOOxfUKGw2Z/YJedfGHkxpeyGLK7DZ59a6Wds8eq1oKjJc5Wulp2xL207z8FjFO14Q== 2704 | dependencies: 2705 | fast-glob "3" 2706 | minimatch "6 || 7 || 8 || 9 || 10" 2707 | normalize-path "3" 2708 | tslib "1 || 2" 2709 | tsutils "3" 2710 | 2711 | typed-styles@^0.0.7: 2712 | version "0.0.7" 2713 | resolved "https://registry.yarnpkg.com/typed-styles/-/typed-styles-0.0.7.tgz#93392a008794c4595119ff62dde6809dbc40a3d9" 2714 | integrity sha512-pzP0PWoZUhsECYjABgCGQlRGL1n7tOHsgwYv3oIiEpJwGhFTuty/YNeduxQYzXXa3Ge5BdT6sHYIQYpl4uJ+5Q== 2715 | 2716 | typescript-coverage-report@^0.6.1: 2717 | version "0.6.4" 2718 | resolved "https://registry.yarnpkg.com/typescript-coverage-report/-/typescript-coverage-report-0.6.4.tgz#3a7a7724c0f27de50d2a0708c7b7b7088bed2055" 2719 | integrity sha512-G+0OFYxwN5oRbORlU1nKYtO00G567lcl4+nbg3MU3Y9ayFnh677dMHmAL4JGP/4Cb1IBN5h/DUQDr/z9X+9lag== 2720 | dependencies: 2721 | chalk "^4.0.0" 2722 | cli-table3 "^0.6.1" 2723 | commander "^5.0.0" 2724 | ncp "^2.0.0" 2725 | react "^16.13.1" 2726 | react-dom "^16.13.1" 2727 | rimraf "^3.0.2" 2728 | semantic-ui-react "^0.88.2" 2729 | type-coverage-core "^2.17.2" 2730 | 2731 | typescript@^4.5.4, typescript@^4.9.3: 2732 | version "4.9.5" 2733 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" 2734 | integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== 2735 | 2736 | undici-types@~6.20.0: 2737 | version "6.20.0" 2738 | resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.20.0.tgz#8171bf22c1f588d1554d55bf204bc624af388433" 2739 | integrity sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg== 2740 | 2741 | unicode-canonical-property-names-ecmascript@^2.0.0: 2742 | version "2.0.1" 2743 | resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz#cb3173fe47ca743e228216e4a3ddc4c84d628cc2" 2744 | integrity sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg== 2745 | 2746 | unicode-match-property-ecmascript@^2.0.0: 2747 | version "2.0.0" 2748 | resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" 2749 | integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== 2750 | dependencies: 2751 | unicode-canonical-property-names-ecmascript "^2.0.0" 2752 | unicode-property-aliases-ecmascript "^2.0.0" 2753 | 2754 | unicode-match-property-value-ecmascript@^2.1.0: 2755 | version "2.2.0" 2756 | resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz#a0401aee72714598f739b68b104e4fe3a0cb3c71" 2757 | integrity sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg== 2758 | 2759 | unicode-property-aliases-ecmascript@^2.0.0: 2760 | version "2.1.0" 2761 | resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" 2762 | integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== 2763 | 2764 | update-browserslist-db@^1.1.1: 2765 | version "1.1.2" 2766 | resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz#97e9c96ab0ae7bcac08e9ae5151d26e6bc6b5580" 2767 | integrity sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg== 2768 | dependencies: 2769 | escalade "^3.2.0" 2770 | picocolors "^1.1.1" 2771 | 2772 | uri-js@^4.2.2: 2773 | version "4.4.1" 2774 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" 2775 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== 2776 | dependencies: 2777 | punycode "^2.1.0" 2778 | 2779 | warning@^4.0.2, warning@^4.0.3: 2780 | version "4.0.3" 2781 | resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" 2782 | integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w== 2783 | dependencies: 2784 | loose-envify "^1.0.0" 2785 | 2786 | watchpack@^2.4.1: 2787 | version "2.4.2" 2788 | resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.2.tgz#2feeaed67412e7c33184e5a79ca738fbd38564da" 2789 | integrity sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw== 2790 | dependencies: 2791 | glob-to-regexp "^0.4.1" 2792 | graceful-fs "^4.1.2" 2793 | 2794 | webpack-bundle-analyzer@^4.7.0: 2795 | version "4.10.2" 2796 | resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.2.tgz#633af2862c213730be3dbdf40456db171b60d5bd" 2797 | integrity sha512-vJptkMm9pk5si4Bv922ZbKLV8UTT4zib4FPgXMhgzUny0bfDDkLXAVQs3ly3fS4/TN9ROFtb0NFrm04UXFE/Vw== 2798 | dependencies: 2799 | "@discoveryjs/json-ext" "0.5.7" 2800 | acorn "^8.0.4" 2801 | acorn-walk "^8.0.0" 2802 | commander "^7.2.0" 2803 | debounce "^1.2.1" 2804 | escape-string-regexp "^4.0.0" 2805 | gzip-size "^6.0.0" 2806 | html-escaper "^2.0.2" 2807 | opener "^1.5.2" 2808 | picocolors "^1.0.0" 2809 | sirv "^2.0.3" 2810 | ws "^7.3.1" 2811 | 2812 | webpack-cli@^4.9.1: 2813 | version "4.10.0" 2814 | resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.10.0.tgz#37c1d69c8d85214c5a65e589378f53aec64dab31" 2815 | integrity sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w== 2816 | dependencies: 2817 | "@discoveryjs/json-ext" "^0.5.0" 2818 | "@webpack-cli/configtest" "^1.2.0" 2819 | "@webpack-cli/info" "^1.5.0" 2820 | "@webpack-cli/serve" "^1.7.0" 2821 | colorette "^2.0.14" 2822 | commander "^7.0.0" 2823 | cross-spawn "^7.0.3" 2824 | fastest-levenshtein "^1.0.12" 2825 | import-local "^3.0.2" 2826 | interpret "^2.2.0" 2827 | rechoir "^0.7.0" 2828 | webpack-merge "^5.7.3" 2829 | 2830 | webpack-merge@^5.7.3: 2831 | version "5.10.0" 2832 | resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.10.0.tgz#a3ad5d773241e9c682803abf628d4cd62b8a4177" 2833 | integrity sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA== 2834 | dependencies: 2835 | clone-deep "^4.0.1" 2836 | flat "^5.0.2" 2837 | wildcard "^2.0.0" 2838 | 2839 | webpack-sources@^3.2.3: 2840 | version "3.2.3" 2841 | resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" 2842 | integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== 2843 | 2844 | webpack@^5.65.0, webpack@^5.76.0: 2845 | version "5.97.1" 2846 | resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.97.1.tgz#972a8320a438b56ff0f1d94ade9e82eac155fa58" 2847 | integrity sha512-EksG6gFY3L1eFMROS/7Wzgrii5mBAFe4rIr3r2BTfo7bcc+DWwFZ4OJ/miOuHJO/A85HwyI4eQ0F6IKXesO7Fg== 2848 | dependencies: 2849 | "@types/eslint-scope" "^3.7.7" 2850 | "@types/estree" "^1.0.6" 2851 | "@webassemblyjs/ast" "^1.14.1" 2852 | "@webassemblyjs/wasm-edit" "^1.14.1" 2853 | "@webassemblyjs/wasm-parser" "^1.14.1" 2854 | acorn "^8.14.0" 2855 | browserslist "^4.24.0" 2856 | chrome-trace-event "^1.0.2" 2857 | enhanced-resolve "^5.17.1" 2858 | es-module-lexer "^1.2.1" 2859 | eslint-scope "5.1.1" 2860 | events "^3.2.0" 2861 | glob-to-regexp "^0.4.1" 2862 | graceful-fs "^4.2.11" 2863 | json-parse-even-better-errors "^2.3.1" 2864 | loader-runner "^4.2.0" 2865 | mime-types "^2.1.27" 2866 | neo-async "^2.6.2" 2867 | schema-utils "^3.2.0" 2868 | tapable "^2.1.1" 2869 | terser-webpack-plugin "^5.3.10" 2870 | watchpack "^2.4.1" 2871 | webpack-sources "^3.2.3" 2872 | 2873 | which@^2.0.1: 2874 | version "2.0.2" 2875 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" 2876 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== 2877 | dependencies: 2878 | isexe "^2.0.0" 2879 | 2880 | wildcard@^2.0.0: 2881 | version "2.0.1" 2882 | resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67" 2883 | integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== 2884 | 2885 | wrappy@1: 2886 | version "1.0.2" 2887 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 2888 | integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== 2889 | 2890 | ws@^7.3.1: 2891 | version "7.5.10" 2892 | resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" 2893 | integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== 2894 | 2895 | yallist@^3.0.2: 2896 | version "3.1.1" 2897 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" 2898 | integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== 2899 | 2900 | yocto-queue@^1.0.0: 2901 | version "1.1.1" 2902 | resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.1.1.tgz#fef65ce3ac9f8a32ceac5a634f74e17e5b232110" 2903 | integrity sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g== 2904 | -------------------------------------------------------------------------------- /migrations/2019_10_07_000000_add_cover_column.php: -------------------------------------------------------------------------------- 1 | function (Builder $schema) { 8 | if ($schema->hasColumn('users', 'cover')) { 9 | return; 10 | } 11 | 12 | $schema->table('users', function (Blueprint $table) { 13 | $table->string('cover', 150)->nullable(); 14 | }); 15 | }, 16 | 17 | 'down' => function (Builder $schema) { 18 | $schema->table('users', function (Blueprint $table) { 19 | $table->removeColumn('cover'); 20 | }); 21 | }, 22 | ]; 23 | -------------------------------------------------------------------------------- /migrations/2020_07_25_000000_add_default_cover_permissions.php: -------------------------------------------------------------------------------- 1 | Group::MEMBER_ID, 8 | ]); 9 | -------------------------------------------------------------------------------- /resources/less/admin.less: -------------------------------------------------------------------------------- 1 | .ProfileCover-size-input :first-child { 2 | margin-bottom: 1px; 3 | border-bottom-left-radius: 0; 4 | border-bottom-right-radius: 0; 5 | } 6 | 7 | .ProfileCover-size-input :last-child { 8 | border-top-left-radius: 0; 9 | border-top-right-radius: 0; 10 | } 11 | -------------------------------------------------------------------------------- /resources/less/forum.less: -------------------------------------------------------------------------------- 1 | .UserHero, .CoverEditor-cover, body.dark .UserPage .Hero, .UserCard { 2 | background-image: var(--background-image); 3 | background-position: center; 4 | background-size: 100%; 5 | background-repeat: no-repeat; 6 | } 7 | 8 | .CoverEditor-active { 9 | height: 108px; 10 | } 11 | 12 | .CoverEditor-active .LoadingIndicator-container { 13 | height: 100%; 14 | background-color: rgba(0, 0, 0, 0.87); 15 | } 16 | -------------------------------------------------------------------------------- /resources/locale/en.yml: -------------------------------------------------------------------------------- 1 | sycho-profile-cover: 2 | admin: 3 | thumbnails: Create thumbnails 4 | max_size: Maximum profile cover image size (in KB) 5 | permission: 6 | set_cover: Set Profile Cover 7 | forum: 8 | cover: Cover 9 | edit_cover: Edit Cover 10 | notice: "Maximum size: {size}" 11 | added: 12 | success: Profile cover updated. 13 | error: Image could not be uploaded. 14 | removed: 15 | success: Profile cover removed. 16 | error: Could not remove cover, try again later. 17 | -------------------------------------------------------------------------------- /resources/locale/ru.yml: -------------------------------------------------------------------------------- 1 | sycho-profile-cover: 2 | admin: 3 | thumbnails: Создать миниатюры 4 | max_size: Максимальный размер изображения обложки профиля (в КБ) 5 | permission: 6 | set_cover: Установить обложку профиля 7 | forum: 8 | cover: Обложка 9 | edit_cover: Редактировать обложку 10 | notice: "Максимальный размер: {size}" 11 | added: 12 | success: Обложка профиля обновлена. 13 | error: Изображение не может быть загружено. 14 | removed: 15 | success: Обложка профиля удалена. 16 | error: Не удалось снять обложку, попробуйте позже. 17 | -------------------------------------------------------------------------------- /src/Access/UserPolicy.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For detailed copyright and license information, please view the 9 | * LICENSE file that was distributed with this source code. 10 | */ 11 | 12 | namespace SychO\ProfileCover\Access; 13 | 14 | use Flarum\User\User; 15 | use Flarum\User\Access\AbstractPolicy; 16 | 17 | class UserPolicy extends AbstractPolicy 18 | { 19 | public function setProfileCover(User $actor, User $user) 20 | { 21 | if ($actor->hasPermission('setProfileCover') 22 | && 23 | ( 24 | $actor->id === $user->id 25 | || 26 | ( 27 | $actor->id !== $user->id && $actor->can('edit', $user) 28 | ) 29 | ) 30 | ) 31 | return $this->allow(); 32 | else 33 | return $this->deny(); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/Api/UserResourceEndpoints.php: -------------------------------------------------------------------------------- 1 | route('POST', '/{id}/cover') 24 | ->action(function (Context $context) { 25 | $file = Arr::get($context->request->getUploadedFiles(), 'cover'); 26 | 27 | return $this->bus->dispatch( 28 | new UploadCover($context->modelId, $file, $context->getActor()) 29 | ); 30 | }), 31 | Endpoint\Endpoint::make('cover.delete') 32 | ->route('DELETE', '/{id}/cover') 33 | ->action(function (Context $context) { 34 | return $this->bus->dispatch( 35 | new DeleteCover(Arr::get($context->request->getQueryParams(), 'id'), $context->getActor()) 36 | ); 37 | }), 38 | ]; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /src/Api/UserResourceFields.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For detailed copyright and license information, please view the 9 | * LICENSE file that was distributed with this source code. 10 | */ 11 | 12 | namespace SychO\ProfileCover\Api; 13 | 14 | use Flarum\Api\Context; 15 | use Flarum\Api\Schema; 16 | use Flarum\Foundation\Paths; 17 | use Flarum\User\User; 18 | use Illuminate\Contracts\Filesystem\Factory; 19 | use Illuminate\Contracts\Filesystem\Filesystem; 20 | 21 | class UserResourceFields 22 | { 23 | protected Filesystem $coversDir; 24 | 25 | public function __construct(protected Paths $paths, Factory $filesystem) 26 | { 27 | $this->coversDir = $filesystem->disk('sycho-profile-cover'); 28 | } 29 | 30 | public function __invoke(): array 31 | { 32 | return [ 33 | Schema\Str::make('cover') 34 | ->get(fn (User $user) => $user->cover ? $this->coversDir->url($user->cover) : $user->cover), 35 | Schema\Str::make('cover_thumbnail') 36 | ->get(fn (User $user) => $this->thumbnailUrl($user->cover)), 37 | Schema\Boolean::make('canSetProfileCover') 38 | ->get(fn (User $user, Context $context) => $context->getActor()->can('setProfileCover', $user)), 39 | ]; 40 | } 41 | 42 | public function thumbnailUrl(?string $imageName): ?string 43 | { 44 | if (empty($imageName)) { 45 | return null; 46 | } 47 | 48 | $thumbnailName = 'thumbnails/' . $imageName; 49 | return $this->coversDir->url($thumbnailName); 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /src/Command/DeleteCover.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For detailed copyright and license information, please view the 9 | * LICENSE file that was distributed with this source code. 10 | */ 11 | 12 | namespace SychO\ProfileCover\Command; 13 | 14 | use Flarum\User\Command\DeleteAvatar; 15 | 16 | class DeleteCover extends DeleteAvatar 17 | { 18 | // 19 | } 20 | -------------------------------------------------------------------------------- /src/Command/DeleteCoverHandler.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For detailed copyright and license information, please view the 9 | * LICENSE file that was distributed with this source code. 10 | */ 11 | 12 | namespace SychO\ProfileCover\Command; 13 | 14 | use Flarum\Foundation\DispatchEventsTrait; 15 | use Flarum\User\UserRepository; 16 | use Illuminate\Contracts\Events\Dispatcher; 17 | use SychO\ProfileCover\CoverUploader; 18 | 19 | class DeleteCoverHandler 20 | { 21 | use DispatchEventsTrait; 22 | 23 | /** 24 | * @param Dispatcher $events 25 | */ 26 | public function __construct(Dispatcher $events, protected UserRepository $users, protected CoverUploader $uploader) 27 | { 28 | $this->events = $events; 29 | } 30 | 31 | /** 32 | * @param DeleteCover $command 33 | * @return \Flarum\User\User 34 | * @throws \Flarum\User\Exception\PermissionDeniedException 35 | */ 36 | public function handle(DeleteCover $command) 37 | { 38 | $actor = $command->actor; 39 | 40 | $user = $this->users->findOrFail($command->userId); 41 | 42 | $actor->assertCan('setProfileCover', $user); 43 | 44 | $this->uploader->remove($user); 45 | 46 | $user->save(); 47 | 48 | $this->dispatchEventsFor($user, $actor); 49 | 50 | return $user; 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /src/Command/UploadCover.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For detailed copyright and license information, please view the 9 | * LICENSE file that was distributed with this source code. 10 | */ 11 | 12 | namespace SychO\ProfileCover\Command; 13 | 14 | use Flarum\User\Command\UploadAvatar; 15 | 16 | class UploadCover extends UploadAvatar 17 | { 18 | // 19 | } 20 | -------------------------------------------------------------------------------- /src/Command/UploadCoverHandler.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For detailed copyright and license information, please view the 9 | * LICENSE file that was distributed with this source code. 10 | */ 11 | 12 | namespace SychO\ProfileCover\Command; 13 | 14 | use Flarum\User\User; 15 | use SychO\ProfileCover\CoverUploader; 16 | use SychO\ProfileCover\CoverValidator; 17 | use SychO\ProfileCover\Event\CoverSaving; 18 | use Flarum\Foundation\DispatchEventsTrait; 19 | use Flarum\User\UserRepository; 20 | use Illuminate\Contracts\Events\Dispatcher; 21 | use Intervention\Image\ImageManager; 22 | 23 | class UploadCoverHandler 24 | { 25 | use DispatchEventsTrait; 26 | 27 | public function __construct( 28 | protected Dispatcher $events, 29 | protected UserRepository $users, 30 | protected CoverUploader $uploader, 31 | protected CoverValidator $validator, 32 | protected ImageManager $imageManager 33 | ) { 34 | } 35 | 36 | public function handle(UploadCover $command): User 37 | { 38 | $actor = $command->actor; 39 | 40 | $user = $this->users->findOrFail($command->userId); 41 | 42 | $actor->assertCan('setProfileCover', $user); 43 | 44 | $this->validator->assertValid(['cover' => $command->file]); 45 | 46 | $image = $this->imageManager->read($command->file->getStream()->getMetadata('uri')); 47 | 48 | $this->events->dispatch( 49 | new CoverSaving($user, $actor, $image) 50 | ); 51 | 52 | $this->uploader->upload($user, $image); 53 | 54 | $user->save(); 55 | 56 | $this->dispatchEventsFor($user, $actor); 57 | 58 | return $user; 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /src/CoverUploader.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For detailed copyright and license information, please view the 9 | * LICENSE file that was distributed with this source code. 10 | */ 11 | 12 | namespace SychO\ProfileCover; 13 | 14 | use Illuminate\Support\Str; 15 | use Intervention\Image\Image; 16 | use Illuminate\Contracts\Filesystem\Factory; 17 | use Illuminate\Contracts\Filesystem\Filesystem; 18 | use Flarum\User\User; 19 | use Flarum\Settings\SettingsRepositoryInterface; 20 | 21 | class CoverUploader 22 | { 23 | protected Filesystem $coversDir; 24 | 25 | public function __construct(Factory $filesystem, protected SettingsRepositoryInterface $config) 26 | { 27 | $this->coversDir = $filesystem->disk('sycho-profile-cover'); 28 | } 29 | 30 | public function upload(User $user, Image $image): void 31 | { 32 | $makeThumb = $this->config->get('sycho-profile-cover.thumbnails', 0) == 1; 33 | 34 | if ($image->width() > 2500) { 35 | $image->scale(2500); 36 | } 37 | 38 | $encodedImage = $image->toJpg(); 39 | $coverPath = Str::random() . '.jpg'; 40 | 41 | $this->remove($user); 42 | $user->cover = $coverPath; 43 | 44 | if ($makeThumb) { 45 | $thumbnail = clone $image; 46 | $thumbnailPath = 'thumbnails/' . $coverPath; 47 | 48 | $thumbnail->scale(500)->crop(500, 144); 49 | $encodedThumbnail = $thumbnail->toJpg(); 50 | 51 | $this->coversDir->put($thumbnailPath, $encodedThumbnail); 52 | } 53 | 54 | $this->coversDir->put($coverPath, $encodedImage); 55 | } 56 | 57 | public function remove(User $user): void 58 | { 59 | $coverPath = $user->cover; 60 | 61 | if (empty($coverPath)) 62 | return; 63 | 64 | $user->afterSave(function () use ($coverPath) { 65 | $thumbnailPath = 'thumbnails/' . $coverPath; 66 | 67 | if ($this->coversDir->exists($coverPath)) { 68 | $this->coversDir->delete($coverPath); 69 | } 70 | 71 | if ($this->coversDir->exists($thumbnailPath)) { 72 | $this->coversDir->delete($thumbnailPath); 73 | } 74 | }); 75 | 76 | $user->cover = null; 77 | } 78 | } 79 | -------------------------------------------------------------------------------- /src/CoverValidator.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For detailed copyright and license information, please view the 9 | * LICENSE file that was distributed with this source code. 10 | */ 11 | 12 | namespace SychO\ProfileCover; 13 | 14 | use Flarum\Settings\SettingsRepositoryInterface; 15 | use Flarum\Locale\TranslatorInterface; 16 | use Flarum\User\AvatarValidator; 17 | use Illuminate\Validation\Factory; 18 | use Intervention\Image\ImageManager; 19 | 20 | class CoverValidator extends AvatarValidator 21 | { 22 | public function __construct( 23 | Factory $validator, 24 | TranslatorInterface $translator, 25 | ImageManager $imageManager, 26 | protected SettingsRepositoryInterface $config 27 | ) { 28 | parent::__construct($validator, $translator, $imageManager); 29 | } 30 | 31 | public function assertValid(array $attributes): void 32 | { 33 | $this->laravelValidator = $this->makeValidator($attributes); 34 | 35 | $this->assertFileRequired($attributes['cover']); 36 | $this->assertFileMimes($attributes['cover']); 37 | $this->assertFileSize($attributes['cover']); 38 | } 39 | 40 | protected function getMaxSize(): int 41 | { 42 | return (int) ($this->config->get('sycho-profile-cover.max_size') ?? 2048); 43 | } 44 | 45 | protected function getAllowedTypes(): array 46 | { 47 | return ['jpeg', 'jpg', 'png', 'bmp']; 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /src/Event/CoverSaving.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For detailed copyright and license information, please view the 9 | * LICENSE file that was distributed with this source code. 10 | */ 11 | 12 | namespace SychO\ProfileCover\Event; 13 | 14 | use Flarum\User\User; 15 | use Intervention\Image\Image; 16 | 17 | class CoverSaving 18 | { 19 | public function __construct( 20 | public User $user, 21 | public User $actor, 22 | public Image $image 23 | ) { 24 | } 25 | } 26 | --------------------------------------------------------------------------------