diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..8b98cdd --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,21 @@ +name: Deploy to pages + +on: + push: + branches: + - master + +jobs: + deploy: + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Deploy to GitHub Pages + uses: peaceiris/actions-gh-pages@v3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_branch: gh-pages + publish_dir: ./build diff --git a/.gitignore b/.gitignore index a547bf3..b2a294d 100644 --- a/.gitignore +++ b/.gitignore @@ -8,10 +8,11 @@ pnpm-debug.log* lerna-debug.log* node_modules -dist dist-ssr *.local +.env + # Editor directories and files .vscode/* !.vscode/extensions.json diff --git a/README.md b/README.md index 40ede56..c8f0011 100644 --- a/README.md +++ b/README.md @@ -1,54 +1,80 @@ -# React + TypeScript + Vite - -This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. - -Currently, two official plugins are available: - -- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh -- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh - -## Expanding the ESLint configuration - -If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules: - -```js -export default tseslint.config({ - extends: [ - // Remove ...tseslint.configs.recommended and replace with this - ...tseslint.configs.recommendedTypeChecked, - // Alternatively, use this for stricter rules - ...tseslint.configs.strictTypeChecked, - // Optionally, add this for stylistic rules - ...tseslint.configs.stylisticTypeChecked, - ], - languageOptions: { - // other options... - parserOptions: { - project: ['./tsconfig.node.json', './tsconfig.app.json'], - tsconfigRootDir: import.meta.dirname, - }, - }, -}) +![Иллюстрация к проекту](for_readme/preview.png) + +![react version](https://img.shields.io/badge/react-19.0.0-brightgreen) +![react-router-dom version](https://img.shields.io/badge/react--router--dom-7.5.0-brightgreen) +![sass version](https://img.shields.io/badge/sass-1.86.0-brightgreen) +![mobx version](https://img.shields.io/badge/mobx-6.13.7-brightgreen) +![eslint version](https://img.shields.io/badge/eslint-9.21.0-brightgreen) +![webpack version](https://img.shields.io/badge/webpack-5.99.8-brightgreen) + +Потыкать можно -> ✨[здесь](https://vellun.github.io/github-client)✨ <- + +- [Что реализовано](#что-реализовано) + - [1. Поиск и фильтрация](#1-поиск-и-фильтрация) + - [2. История просмотров](#2-история-просмотров) + - [3. Аутентификация](#3-аутентификация) + - [4. Страница профиля](#4-страница-профиля) + - [5. Адаптив и тёмная тема](#5-адаптив-и-тёмная-тема) +- [Локальный запуск](#запуск-проекта) + - [1. Клонировать проект](#1-клонировать-проект) + - [2. Перейти в директорию проекта](#2-перейти-в-директорию-проекта) + - [3. Установить зависимости](#3-установить-зависимости) + - [4. Запустить](#4-запустить) + +![Иллюстрация к проекту](for_readme/screen.png) + +## Что реализовано + +### 1. Поиск и фильтрация: + +- Поиск репозиториев и пользователей +- Фильтрация результатов по различным параметрам + +### 2. История просмотров: + +- Сохранение и отображение последних просмотренных репозиториев; реализовано через LocalStorage + +### 3. Аутентификация + +- Аутентификация через GitHub; реализовано через Firebase + +### 4. Страница профиля: + +- Отображение информации о пользователе и его репозиториях +- Возможность поиска и фильтрации по репозиториям пользователя + +### 5. Адаптив и тёмная тема + +![Иллюстрация к проекту](for_readme/phone-screen.png) + +## Локальный запуск + +### 1. Клонировать проект + +```bash +git clone https://github.com/vellun/github-client +``` + +### 2. Перейти в директорию проекта + +```bash +cd github-client ``` -You can also install [eslint-plugin-react-x](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-x) and [eslint-plugin-react-dom](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-dom) for React-specific lint rules: - -```js -// eslint.config.js -import reactX from 'eslint-plugin-react-x' -import reactDom from 'eslint-plugin-react-dom' - -export default tseslint.config({ - plugins: { - // Add the react-x and react-dom plugins - 'react-x': reactX, - 'react-dom': reactDom, - }, - rules: { - // other rules... - // Enable its recommended typescript rules - ...reactX.configs['recommended-typescript'].rules, - ...reactDom.configs.recommended.rules, - }, -}) +### 3. Установить зависимости + +```bash +yarn install +``` + +### 4. Запустить + +```bash +yarn start +``` + +По умолчанию приложение будет доступно на порту 3000 + +```bash +http://localhost:3000 ``` diff --git a/babel.config.json b/babel.config.json new file mode 100644 index 0000000..5a70e34 --- /dev/null +++ b/babel.config.json @@ -0,0 +1,12 @@ +{ + "presets": [ + "@babel/preset-env", + "@babel/preset-typescript", + [ + "@babel/preset-react", + { + "runtime": "automatic" + } + ] + ] +} diff --git a/build/4f79c7fafd25c3002842.svg b/build/4f79c7fafd25c3002842.svg new file mode 100644 index 0000000..fe96247 --- /dev/null +++ b/build/4f79c7fafd25c3002842.svg @@ -0,0 +1,4 @@ + + + + diff --git a/build/6cd35edfbc0d7a417131.woff2 b/build/6cd35edfbc0d7a417131.woff2 new file mode 100644 index 0000000..8d1ec3a Binary files /dev/null and b/build/6cd35edfbc0d7a417131.woff2 differ diff --git a/build/79c879ba62b8c1d4a12e.svg b/build/79c879ba62b8c1d4a12e.svg new file mode 100644 index 0000000..3a6cdf8 --- /dev/null +++ b/build/79c879ba62b8c1d4a12e.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/build/96a74902d342e68398a1.svg b/build/96a74902d342e68398a1.svg new file mode 100644 index 0000000..3f5f1c9 --- /dev/null +++ b/build/96a74902d342e68398a1.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/build/a25806274237d06e00a6.woff2 b/build/a25806274237d06e00a6.woff2 new file mode 100644 index 0000000..30370cf Binary files /dev/null and b/build/a25806274237d06e00a6.woff2 differ diff --git a/build/c410233389a1e4104d3b.svg b/build/c410233389a1e4104d3b.svg new file mode 100644 index 0000000..d123ec0 --- /dev/null +++ b/build/c410233389a1e4104d3b.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/build/css/main.a6427d23.css b/build/css/main.a6427d23.css new file mode 100644 index 0000000..1d4873b --- /dev/null +++ b/build/css/main.a6427d23.css @@ -0,0 +1,43 @@ +.Ka5fPsYxacZl4ePmhDIN{-webkit-box-orient:vertical;overflow:hidden;color:inherit}.KNMMibJCg2xw12AVAk0J{color:#518581}.K8SFZOvp5hQ3knn4woW6{color:#afadb5}.W8k76chJqQ9tKDqxqzGv{color:var(--text-primary)}.mtl4rjHSTNU_VAkSpYc3{font-size:12px;line-height:16px}.Jh9KOHISf4desSIf5_Kz{font-size:14px;line-height:18px}.eYYEaSEUuxnNQPVOR8Yf{font-size:16px;line-height:20px}.erRarltR19mAqYa_fyFe{font-size:18px;line-height:22px}.fsqRJuwm8uLKpLZxwvDN{font-size:20px;line-height:24px}.rRFfPQmj4w2rdU6iHBvI{font-size:clamp(1.75rem,1.4166666667rem + 1.4814814815vw,2.75rem);line-height:clamp(2rem,1.6666666667rem + 1.4814814815vw,3rem);text-align:center}.HiZsCnmN9E8vYDC9Ni_g{font-size:clamp(0.875rem,0.8333333333rem + 0.1851851852vw,1rem);margin:0}.g5c6FaQqBxaJNzQi_c_o{font-weight:400}.GaJhEbOPSW6F3FV6S8lS{font-weight:500}.JQ_U5uvDRaSLLC4FeVmn{font-weight:700} +@keyframes AckVx22tOKuvpKtqVRt2{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.nEUlsqYnsEu945pEytjk{fill:#518581;animation:AckVx22tOKuvpKtqVRt2 2s linear infinite;margin:auto}.QVQyMXAEFfLIF24ZZTIC{width:60px;height:60px}.rOMVspHpRkQZSeG1EyKx{width:48px;height:48px}.jo9UiAd2v11VIiB8nrni{width:24px;height:24px} +.b_aG7bzo5aM2mIR7O3BA{display:flex;align-items:center;justify-content:space-between;cursor:pointer;border:none;outline:none;background-color:#1f883d;color:#fff;padding:14px 20px;transition:.2s;border-radius:6px}.b_aG7bzo5aM2mIR7O3BA:hover{background-color:#86aaa7}.xJtxeg7TzKTmtTzYl81T:hover{background-color:#518581}.fyF3Q9Pqj26QCMVeJQFg:disabled{background-color:#518581}.b_aG7bzo5aM2mIR7O3BA:active{background-color:#08531d}.b_aG7bzo5aM2mIR7O3BA:disabled{background-color:#d9d9d9}.b_aG7bzo5aM2mIR7O3BA:disabled:hover{background-color:#d9d9d9} +.fJkS95iosNF5iEilDiOQ{fill:#518581}.QtMrk8xf6jPEr2u2R972{fill:#afadb5}.YYDozKFhxWAqAnxLPKoe{fill:var(--text-primary)}.fJkS95iosNF5iEilDiOQ{fill:#ff9432}.rmcOkvqxeBy9kICaCy1g{stroke:#518581}.dEfaxKlvwk2JGJny37ii{stroke:#afadb5}.xV3_11jw2cC9UisHSNwx{stroke:var(--text-primary)} +.wXtLhPLKNmOlVIbs7UAm{border-radius:50%} +.DEpEvFXm0ho8aaf9Ct5W{display:flex;align-items:center;justify-content:space-between;padding-left:100px;padding-right:100px;border-bottom:2px solid #d9d9d9;background-color:var(--body-background)}.uY6JrQynwy0ON9TjPs9S,.mWBOHF5FlXiphmf6967i{display:flex;align-items:center;justify-content:space-between;gap:14px}.cWStqWIQeXVICFX8MzJ8{display:flex;align-items:center;gap:2.5rem}.DGkFHK2RJ8RgNTQ8p58t{display:none}@media(max-width: 90rem){.DEpEvFXm0ho8aaf9Ct5W{padding-left:3.125rem;padding-right:3.125rem}}@media(max-width: 28.75rem){.DEpEvFXm0ho8aaf9Ct5W{padding-left:1.25rem;padding-right:1.25rem}}@media(max-width: 37.5rem){.NdvOIQqpge4Ogb5aBji6{display:none}.cWStqWIQeXVICFX8MzJ8{gap:1.25rem}} + +.vSd8sJ2l5JdlM1J5ELou{background-color:var(--body-background);width:320px;border-radius:6px}.qpSwKPerbJBQaUfGYFBb{transform:rotate(45deg);align-self:flex-start;cursor:pointer;font-size:30px;color:gray}.C7RfzsLO7t_s8h7aLZKM{padding:20px}.TVLlqh7B9xc5PCiJHdSN{display:flex;align-items:center;gap:10px;justify-content:space-between;margin-bottom:20px}.jvkUqQCEHdw8vs5N89Jw{display:flex;align-items:center;gap:10px}.M8COpvLv8d_P4sJ6brKe{list-style:none;padding:0;margin:0}.mdYOUscRiNZi7gbQSbht{display:block;padding:10px 0;text-decoration:none}.mdYOUscRiNZi7gbQSbht:hover{background-color:#f0f0f0}.mdYOUscRiNZi7gbQSbht:hover{color:#518581} +.YCV5wMKgJsPz78jGpiPF{position:fixed;top:0;height:100%;z-index:1001;right:-360px;transition:.5s}.iNeyc0vAcuEEDq_hmTR4{display:flex;align-items:center;gap:10px}.Rh0MzRYOKU5jOig4jHwE{right:0}.L3K_ADVb86xa37IjdBzt{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);z-index:1000}.PqSzW6rs0IDgW20eKfVk{display:none} +.KSjUh4GhWxaLniZGySEa{max-width:1440px;margin:0 auto;min-height:100vh}.KF6pB8gk0zrXz_ylFpWn{background-color:var(--body-background)}.lMygak1Ek_sVOG4Syo_Q{background-color:var(--background-accent)} +@font-face{font-family:"Roboto";src:url(../a25806274237d06e00a6.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:"Roboto";src:url(../fc0337b9cf1cce2e6e1e.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:"Roboto";src:url(../6cd35edfbc0d7a417131.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}html,body{font-family:"Roboto";margin:0;padding:0}*{padding:0;box-sizing:border-box}button{background:none;border:none}.link{text-decoration:none;color:#000}.noMarginText{margin:0}.flex-container{margin-left:100px;margin-right:100px;display:flex;flex-direction:column;align-items:center;justify-content:center;max-width:1440px}.container{margin-left:100px;margin-right:100px;margin-top:0;max-width:1440px}.form{text-align:center;background-color:var(--card-background);border-radius:6px;padding:24px 100px;border:1px solid #d9d9d9}@media(max-width: 720px){.form{padding:24px 30px}}@media(max-width: 90rem){.flex-container,.container{margin-left:3.125rem;margin-right:3.125rem}}@media(max-width: 28.75rem){.flex-container,.container{margin-left:1.25rem;margin-right:1.25rem}} +.kAYDswAvA1AJoAzRV4rY{width:100%}.GRggPQ1rZgvcyCxPPgvw{border:none;height:100%;width:100%;display:block;padding:14px 12px;border-radius:6px;background-color:var(--input-bg);color:var(--text-primary)}.GRggPQ1rZgvcyCxPPgvw:focus{outline:none;border:1px solid #518581}.GRggPQ1rZgvcyCxPPgvw:disabled{background-color:#fff}.oYmXiXL5Sf6H3JTbpBcW{height:52px;position:relative;width:100%}.o73PkyM7_jYMYZreLhfw{position:absolute;right:12px;bottom:50%;transform:translateY(50%)} +.tfH6XxKoJ5RNHy71p3JQ{position:relative}.X8d_PFLvHo9kXwsiz5De{box-sizing:border-box;color:#afadb5;border-radius:6px;background-color:var(--input-bg)}.G9p5nfaNYvImPYc9O2H0{box-shadow:0 4px 10px rgba(0,0,0,.25);position:absolute;background-color:var(--input-bg);width:100%;top:calc(100% + 8px)}.g1kHmht5mOZaDvxuSo0W{display:flex;align-items:center;padding:14px 12px;color:var(--text-primary);cursor:pointer}.Y8eC2vhHNKDlpniQXf3A{color:#518581}.Y8eC2vhHNKDlpniQXf3A:hover{color:#afadb5}.X8d_PFLvHo9kXwsiz5De:focus{color:#151411}.X8d_PFLvHo9kXwsiz5De:checked{color:#afadb5}.X8d_PFLvHo9kXwsiz5De:disabled{color:#151411;opacity:.8} +.j4ycrrEYXGNDvNx6UcaB{z-index:2;width:30%}@media(max-width: 61.25rem){.j4ycrrEYXGNDvNx6UcaB{width:50%}}@media(max-width: 35.625rem){.j4ycrrEYXGNDvNx6UcaB{width:100%}} +.PkUinbEv0d5ZeozvVMEx{width:100%;display:flex;flex-direction:column;gap:20px;margin-bottom:36px} +.XF3csXyoIU629j2l4mPA{display:flex;align-items:center;justify-content:space-between;gap:20px}.QK9fV3TK9X_iCPK9FhWQ{z-index:1} +.a5ocFuOT9KNU75Ybcchu{border:1px solid #d9d9d9;border-radius:6px;padding:12px 14px;background-color:var(--card-background);height:100%;transition:.2s}.lPI5ymyiRuR9zd0sduBn{display:flex;align-items:center;gap:12px}.a5ocFuOT9KNU75Ybcchu:hover{box-shadow:0 4px 10px rgba(0,0,0,.25)}.HNOwmFvC2rg5nrv9KwUQ{margin:0;margin-bottom:4px}.SXQfgH4TxlPRMJ2eFeVn{display:flex;align-items:center;gap:6px}.mloeXFIEpwhM0WCBHQhw{width:8px;height:8px;border-radius:50%}.Rbrd3HFT4QpyXQ28dLb_{border:1px solid #d9d9d9;border-radius:20px;padding:4px 14px}.tGBGAXZxrDYIf3txwusN{margin:0} +.yMFcdPZnP5eQFnfQBAND{margin-bottom:24px;width:100%}.e1QEYk63D0x0fyMIU_aS{display:grid;grid-template-columns:repeat(3, 1fr);gap:14px}@media(max-width: 40.625rem){.e1QEYk63D0x0fyMIU_aS{grid-template-columns:repeat(1, 1fr)}} +.D8WW6HDnkKOTfMUkRRDB{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}._RkLPlxF6GaCCS9a6MJT{cursor:pointer}.sepfeUIwnpSzRGTtdZHg:disabled{cursor:auto}.Dw8JswjfAF3p8WuDovrd{transform:rotate(180deg)}.Kd372dg58p2MjlIzBb2l{height:38px}.QxUbXoMwYqmjTLhucOft{margin:0}.ZflM936PrQyOEbkgW9O2{width:42px;height:100%}@media(max-width: 30rem){.ZflM936PrQyOEbkgW9O2{width:2.375rem}}.lADI069D1hLFvue8LaDr{background-color:#1f883d;color:#fff} +.t3s26QVSgcFUkHVBkvzg{width:360px;transition:.2s;border-radius:6px;height:100%;background-color:var(--card-background)}.t3s26QVSgcFUkHVBkvzg:hover{box-shadow:0 4px 10px rgba(0,0,0,.25)}.qAAdtrqF0s8BZJnbuUHA{display:block;width:100%;height:348px;background-color:#d9d9d9;border-top-left-radius:6px;border-top-right-radius:6px}.dvXxU4NG31BDNd51MRkU{padding:24px 12px}.rOYO55tDMjaL0CqJdppg{display:flex;align-items:center;margin-top:20px;justify-content:space-between}.JJaIwiO_gZ02P4SzZTMP{margin:8px 0}.qd6yvPCVIllmofRExp1H,.pagCkcGUly88oD4EOe3v{margin-top:0} +.mLMVBzIysyJ3Erg1iZQo{display:flex;flex-wrap:wrap;justify-content:center;align-items:stretch;gap:5rem;margin-bottom:40px}.x56m5wgI_7RCeuzEmm6g{display:flex;align-items:center;gap:15px}.VRyZKjfiwcBto8ATj8gR{display:flex;align-items:center;gap:4px}.Ol3S0C0d9CkI6WIAXK54{text-decoration:none}@media(max-width: 83.75rem){.mLMVBzIysyJ3Erg1iZQo{gap:2.5rem}} +.H6VCEbQq522fJE99xCAU{margin-bottom:60px}.JwaLrhTuCmM5E2spuJGq{margin-right:auto}.ntH18PSv9lDZqcRat3i2{justify-content:start} + +.eWzdOgLAMjIObbX8D8mo{display:flex;align-items:center;justify-content:space-between;border:1px solid #d9d9d9;border-radius:6px;background-color:var(--card-background);padding:14px;transition:.2s}.KSxqmHBMS3mmpVLPI2hr{display:flex;align-items:center;gap:14px}.eWzdOgLAMjIObbX8D8mo:hover{box-shadow:0 4px 10px rgba(0,0,0,.25)} +.Wf0vr4UK9j09ZM8T3Va8{width:100%;margin-bottom:40px;display:flex;flex-direction:column;gap:20px} +.hfTXuSxE1YFNxojn4EQR{width:20px;height:20px;position:relative;display:inline-block;box-sizing:border-box;background-color:#fff;border:1px solid #d9d9d9}.aQ1h_OjvJYwkuWxCTqgJ{appearance:none}.hfTXuSxE1YFNxojn4EQR:hover{border:1px solid #518581}.eRTT7RKJbsV1jkTjel0d{display:none;position:absolute;top:-1px;left:-1px}.aQ1h_OjvJYwkuWxCTqgJ:checked+.eRTT7RKJbsV1jkTjel0d{display:block}.XxgkyIY4WMuichBtPEad{background-color:hsla(0,0%,100%,.5019607843);border:1px solid hsla(0,0%,100%,0)}.XxgkyIY4WMuichBtPEad:hover{background-color:hsla(0,0%,100%,.5019607843);border:1px solid hsla(0,0%,100%,0)}.QfZG5iSbyYkVBkqFWyng .lcDPpEO9uopoXDUFH3tK{stroke:rgba(0,0,0,.2)} +.uCOo9HuJQOOOQF8oaJIw{height:90vh}.dy8Ub8OBcO15zV5WrZS7{background-color:var(--card-background)}.fTNpKCVWgcUMQarQzOrD{display:block;margin-bottom:12px;border:1px solid #d9d9d9;border-radius:6px}.bPUKWfxOjFf6iLA0pV8X{display:flex;align-items:center;text-align:left;gap:8px;margin-bottom:14px}.bH8U3nu_nzo2Npu8Qx3Q{flex-shrink:0} +.xPH0qC4MFXgN6CunGYZV{height:90vh} +.w4xUK5mGjdc7WDoK_wR3{display:flex;align-items:center;gap:8px;cursor:pointer}.EFKUafsXtSvQdgNN97z0{border-radius:50%}.Bf926UGnW_uwbjlZIo2G{margin:0} +.WvBmOlfQ86hqLSV7z21_{display:flex;flex-direction:column;gap:8px;margin-bottom:38px}.L40Mk8_Mh5DFHTajlU1S{display:flex;gap:2px}.f3yhSH2eLRwCLMpZkqkr{margin:0;line-height:22px}.WheS45BMg69Tb91uon9_{vertical-align:sub;text-align:center;background-color:#d9d9d9;border-radius:50%;padding:0px 5px;padding-bottom:20px;height:16px}.No44PVJcpptGfP3Zq67b{font-size:10px;line-height:10px;color:rgba(0,0,0,.62)} +.QN89xHhl2y29FSJzGH8O{margin-bottom:38px}.PxBrygBo8qRFy4UEQlxh{margin:0;line-height:22px;margin-bottom:8px}.OtWkN2gEE0JKHN4sPv0Y{display:flex;align-items:center;width:300px;column-gap:20px;row-gap:4px;flex-wrap:wrap}.y6SD9mHdJOIX6DAcE7ai{display:flex;align-items:center;width:300px;height:10px;border-radius:6px;overflow:hidden;gap:2px;margin-bottom:8px}.SLR2fkambmgEhBUcfsT2{width:8px;height:8px;border-radius:50%}.pDbU1z1LPI5ld_8aBHXd{display:flex;align-items:center;gap:5px} +.Yqvgc9ujwLwIAbnH3noZ{border:1px solid #d9d9d9;border-radius:4px;max-width:900px;color:var(--text-primary)}.J2pItUpyIOT2x4dcsCMg{margin:16px}.cOt9FSYCtGWwiDgltPty{margin:32px}.cOt9FSYCtGWwiDgltPty img{max-width:100%}.cOt9FSYCtGWwiDgltPty pre{background-color:var(--body-background);padding:16px;border-radius:4px;width:100%;overflow-x:auto}@media(max-width: 500px){.cOt9FSYCtGWwiDgltPty{margin:22px}}@media(max-width: 400px){.cOt9FSYCtGWwiDgltPty{word-break:break-all}} +.CcvO5hcTURXeY5hBQQEb{display:flex;align-items:center;gap:8px}.jObwfxL9HGpOIxZo8SXr{color:#0080ff;text-decoration:none} +.SmOo5jWkAjmTKKr3qiPp{display:flex;align-items:center;gap:8px}.WuobFusEJvVFHNC8ITih{display:flex;align-items:center} +.nAHMoaGJhVoDstTqTO6g{display:flex;flex-direction:column;gap:8px;margin-bottom:20px} +.EXhW1wG_btsOkzn3PLOP{display:flex;align-items:center;justify-content:left;gap:16px}.xJ6RzMe8tA9hWuQp24Lg{width:40px;height:40px;border-radius:6px}.pz29mkDTLVykt_QmIJrK{transform:rotate(90deg)}.nDiRQYwJSzek9a4fyAVe{cursor:pointer} +.lkGNKeuA6HuDG8YnjymA{background-color:#daedff;border-radius:20px;color:#06c;padding:4px 16px}.rtRECbgPNa30Vol9AylQ{margin:0} +.Tn2CYZ_YKTJvOdrosRib{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:20px} +.Nbrhc11l18wkwHKWiuDV{padding-bottom:80px;min-height:100vh}.uxYI7YpvBC16FPZyFKtw{display:flex;gap:5rem}@media(max-width: 37.5rem){.uxYI7YpvBC16FPZyFKtw{gap:2.5rem}}@media(max-width: 34.375rem){.uxYI7YpvBC16FPZyFKtw{flex-direction:column;row-gap:0.3125rem}} + +.Mc2YkCqycRZBU49ZrDMZ{padding:40px 0 80px 0;display:flex;justify-content:space-between;gap:20px}._4jWM90p8vml9HFtprYr{display:flex;flex-direction:column}.d9YN9tZUHtadPudqbeKj{display:flex;flex-direction:column;align-items:end}.gZNvSOGc6UA8m9v_itWE{display:flex;align-items:center;gap:12px;margin-bottom:14px}@media(max-width: 1250px){.Mc2YkCqycRZBU49ZrDMZ{flex-direction:column;justify-content:center;align-items:center}} + +:root{--body-background-light: #f6f8fa;--background-accent-light: #ffffff;--card-background-light: #ffffff;--text-primary-light: #000000;--input-bg-light: #ffffff;--body-background-dark: #222521;--background-accent-dark: #30342e;--card-background-dark: #363c33;--text-primary-dark: #e0eee1;--input-bg-dark: #151714}[data-theme=light]{--body-background: var(--body-background-light);--background-accent: var(--background-accent-light);--card-background: var(--card-background-light);--text-primary: var(--text-primary-light);--input-bg: var(--input-bg-light)}[data-theme=dark]{--body-background: var(--body-background-dark);--background-accent: var(--background-accent-dark);--text-primary: var(--text-primary-dark);--card-background: var(--card-background-dark);--input-bg: var(--input-bg-dark)} diff --git a/build/d4001b01be80f1503bb5.svg b/build/d4001b01be80f1503bb5.svg new file mode 100644 index 0000000..619fc83 --- /dev/null +++ b/build/d4001b01be80f1503bb5.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/build/fc0337b9cf1cce2e6e1e.woff2 b/build/fc0337b9cf1cce2e6e1e.woff2 new file mode 100644 index 0000000..02bf764 Binary files /dev/null and b/build/fc0337b9cf1cce2e6e1e.woff2 differ diff --git a/build/index.html b/build/index.html new file mode 100644 index 0000000..883322e --- /dev/null +++ b/build/index.html @@ -0,0 +1 @@ +Github Client
\ No newline at end of file diff --git a/build/main.ddff6504bc3c08afa8a8.js b/build/main.ddff6504bc3c08afa8a8.js new file mode 100644 index 0000000..f8a6465 --- /dev/null +++ b/build/main.ddff6504bc3c08afa8a8.js @@ -0,0 +1,2 @@ +/*! For license information please see main.ddff6504bc3c08afa8a8.js.LICENSE.txt */ +(()=>{var e={76:e=>{"use strict";e.exports=Function.prototype.call},251:(e,t)=>{t.read=function(e,t,n,r,o){var i,a,s=8*o-r-1,l=(1<>1,c=-7,f=n?o-1:0,h=n?-1:1,d=e[t+f];for(f+=h,i=d&(1<<-c)-1,d>>=-c,c+=s;c>0;i=256*i+e[t+f],f+=h,c-=8);for(a=i&(1<<-c)-1,i>>=-c,c+=r;c>0;a=256*a+e[t+f],f+=h,c-=8);if(0===i)i=1-u;else{if(i===l)return a?NaN:1/0*(d?-1:1);a+=Math.pow(2,r),i-=u}return(d?-1:1)*a*Math.pow(2,i-r)},t.write=function(e,t,n,r,o,i){var a,s,l,u=8*i-o-1,c=(1<>1,h=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:i-1,p=r?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=c):(a=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-a))<1&&(a--,l*=2),(t+=a+f>=1?h/l:h*Math.pow(2,1-f))*l>=2&&(a++,l/=2),a+f>=c?(s=0,a=c):a+f>=1?(s=(t*l-1)*Math.pow(2,o),a+=f):(s=t*Math.pow(2,f-1)*Math.pow(2,o),a=0));o>=8;e[n+d]=255&s,d+=p,s/=256,o-=8);for(a=a<0;e[n+d]=255&a,d+=p,a/=256,u-=8);e[n+d-p]|=128*m}},414:e=>{"use strict";e.exports=Math.round},453:(e,t,n)=>{"use strict";var r,o=n(9612),i=n(9383),a=n(1237),s=n(9290),l=n(9538),u=n(8068),c=n(9675),f=n(5345),h=n(1514),d=n(8968),p=n(6188),m=n(8002),g=n(5880),y=n(414),v=n(3093),b=Function,w=function(e){try{return b('"use strict"; return ('+e+").constructor;")()}catch(e){}},_=n(5795),S=n(655),k=function(){throw new c},x=_?function(){try{return k}catch(e){try{return _(arguments,"callee").get}catch(e){return k}}}():k,E=n(4039)(),O=n(3628),P=n(1064),C=n(8648),T=n(1002),A=n(76),I={},j="undefined"!=typeof Uint8Array&&O?O(Uint8Array):r,R={__proto__:null,"%AggregateError%":"undefined"==typeof AggregateError?r:AggregateError,"%Array%":Array,"%ArrayBuffer%":"undefined"==typeof ArrayBuffer?r:ArrayBuffer,"%ArrayIteratorPrototype%":E&&O?O([][Symbol.iterator]()):r,"%AsyncFromSyncIteratorPrototype%":r,"%AsyncFunction%":I,"%AsyncGenerator%":I,"%AsyncGeneratorFunction%":I,"%AsyncIteratorPrototype%":I,"%Atomics%":"undefined"==typeof Atomics?r:Atomics,"%BigInt%":"undefined"==typeof BigInt?r:BigInt,"%BigInt64Array%":"undefined"==typeof BigInt64Array?r:BigInt64Array,"%BigUint64Array%":"undefined"==typeof BigUint64Array?r:BigUint64Array,"%Boolean%":Boolean,"%DataView%":"undefined"==typeof DataView?r:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":i,"%eval%":eval,"%EvalError%":a,"%Float16Array%":"undefined"==typeof Float16Array?r:Float16Array,"%Float32Array%":"undefined"==typeof Float32Array?r:Float32Array,"%Float64Array%":"undefined"==typeof Float64Array?r:Float64Array,"%FinalizationRegistry%":"undefined"==typeof FinalizationRegistry?r:FinalizationRegistry,"%Function%":b,"%GeneratorFunction%":I,"%Int8Array%":"undefined"==typeof Int8Array?r:Int8Array,"%Int16Array%":"undefined"==typeof Int16Array?r:Int16Array,"%Int32Array%":"undefined"==typeof Int32Array?r:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":E&&O?O(O([][Symbol.iterator]())):r,"%JSON%":"object"==typeof JSON?JSON:r,"%Map%":"undefined"==typeof Map?r:Map,"%MapIteratorPrototype%":"undefined"!=typeof Map&&E&&O?O((new Map)[Symbol.iterator]()):r,"%Math%":Math,"%Number%":Number,"%Object%":o,"%Object.getOwnPropertyDescriptor%":_,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"==typeof Promise?r:Promise,"%Proxy%":"undefined"==typeof Proxy?r:Proxy,"%RangeError%":s,"%ReferenceError%":l,"%Reflect%":"undefined"==typeof Reflect?r:Reflect,"%RegExp%":RegExp,"%Set%":"undefined"==typeof Set?r:Set,"%SetIteratorPrototype%":"undefined"!=typeof Set&&E&&O?O((new Set)[Symbol.iterator]()):r,"%SharedArrayBuffer%":"undefined"==typeof SharedArrayBuffer?r:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":E&&O?O(""[Symbol.iterator]()):r,"%Symbol%":E?Symbol:r,"%SyntaxError%":u,"%ThrowTypeError%":x,"%TypedArray%":j,"%TypeError%":c,"%Uint8Array%":"undefined"==typeof Uint8Array?r:Uint8Array,"%Uint8ClampedArray%":"undefined"==typeof Uint8ClampedArray?r:Uint8ClampedArray,"%Uint16Array%":"undefined"==typeof Uint16Array?r:Uint16Array,"%Uint32Array%":"undefined"==typeof Uint32Array?r:Uint32Array,"%URIError%":f,"%WeakMap%":"undefined"==typeof WeakMap?r:WeakMap,"%WeakRef%":"undefined"==typeof WeakRef?r:WeakRef,"%WeakSet%":"undefined"==typeof WeakSet?r:WeakSet,"%Function.prototype.call%":A,"%Function.prototype.apply%":T,"%Object.defineProperty%":S,"%Object.getPrototypeOf%":P,"%Math.abs%":h,"%Math.floor%":d,"%Math.max%":p,"%Math.min%":m,"%Math.pow%":g,"%Math.round%":y,"%Math.sign%":v,"%Reflect.getPrototypeOf%":C};if(O)try{null.error}catch(e){var L=O(O(e));R["%Error.prototype%"]=L}var N=function e(t){var n;if("%AsyncFunction%"===t)n=w("async function () {}");else if("%GeneratorFunction%"===t)n=w("function* () {}");else if("%AsyncGeneratorFunction%"===t)n=w("async function* () {}");else if("%AsyncGenerator%"===t){var r=e("%AsyncGeneratorFunction%");r&&(n=r.prototype)}else if("%AsyncIteratorPrototype%"===t){var o=e("%AsyncGenerator%");o&&O&&(n=O(o.prototype))}return R[t]=n,n},D={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},M=n(6743),F=n(9957),B=M.call(A,Array.prototype.concat),U=M.call(T,Array.prototype.splice),z=M.call(A,String.prototype.replace),V=M.call(A,String.prototype.slice),H=M.call(A,RegExp.prototype.exec),$=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,W=/\\(\\)?/g,G=function(e,t){var n,r=e;if(F(D,r)&&(r="%"+(n=D[r])[0]+"%"),F(R,r)){var o=R[r];if(o===I&&(o=N(r)),void 0===o&&!t)throw new c("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:n,name:r,value:o}}throw new u("intrinsic "+e+" does not exist!")};e.exports=function(e,t){if("string"!=typeof e||0===e.length)throw new c("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!=typeof t)throw new c('"allowMissing" argument must be a boolean');if(null===H(/^%?[^%]*%?$/,e))throw new u("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var n=function(e){var t=V(e,0,1),n=V(e,-1);if("%"===t&&"%"!==n)throw new u("invalid intrinsic syntax, expected closing `%`");if("%"===n&&"%"!==t)throw new u("invalid intrinsic syntax, expected opening `%`");var r=[];return z(e,$,(function(e,t,n,o){r[r.length]=n?z(o,W,"$1"):t||e})),r}(e),r=n.length>0?n[0]:"",o=G("%"+r+"%",t),i=o.name,a=o.value,s=!1,l=o.alias;l&&(r=l[0],U(n,B([0,1],l)));for(var f=1,h=!0;f=n.length){var g=_(a,d);a=(h=!!g)&&"get"in g&&!("originalValue"in g.get)?g.get:a[d]}else h=F(a,d),a=a[d];h&&!s&&(R[i]=a)}}return a}},507:(e,t,n)=>{"use strict";var r=n(453),o=n(6556),i=n(8859),a=n(9675),s=r("%Map%",!0),l=o("Map.prototype.get",!0),u=o("Map.prototype.set",!0),c=o("Map.prototype.has",!0),f=o("Map.prototype.delete",!0),h=o("Map.prototype.size",!0);e.exports=!!s&&function(){var e,t={assert:function(e){if(!t.has(e))throw new a("Side channel does not contain "+i(e))},delete:function(t){if(e){var n=f(e,t);return 0===h(e)&&(e=void 0),n}return!1},get:function(t){if(e)return l(e,t)},has:function(t){return!!e&&c(e,t)},set:function(t,n){e||(e=new s),u(e,t,n)}};return t}},655:e=>{"use strict";var t=Object.defineProperty||!1;if(t)try{t({},"a",{value:1})}catch(e){t=!1}e.exports=t},920:(e,t,n)=>{"use strict";var r=n(9675),o=n(8859),i=n(4803),a=n(507),s=n(2271)||a||i;e.exports=function(){var e,t={assert:function(e){if(!t.has(e))throw new r("Side channel does not contain "+o(e))},delete:function(t){return!!e&&e.delete(t)},get:function(t){return e&&e.get(t)},has:function(t){return!!e&&e.has(t)},set:function(t,n){e||(e=s()),e.set(t,n)}};return t}},961:(e,t,n)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),e.exports=n(6221)},1002:e=>{"use strict";e.exports=Function.prototype.apply},1064:(e,t,n)=>{"use strict";var r=n(9612);e.exports=r.getPrototypeOf||null},1133:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var n=null;if(!e||"string"!=typeof e)return n;var r=(0,o.default)(e),i="function"==typeof t;return r.forEach((function(e){if("declaration"===e.type){var r=e.property,o=e.value;i?t(r,o,e):o&&((n=n||{})[r]=o)}})),n};var o=r(n(9788))},1237:e=>{"use strict";e.exports=EvalError},1247:(e,t,n)=>{"use strict";var r=n(9982),o=n(6540),i=n(961);function a(e){var t="https://react.dev/errors/"+e;if(1)":-1--o||l[r]!==u[o]){var c="\n"+l[r].replace(" at new "," at ");return e.displayName&&c.includes("")&&(c=c.replace("",e.displayName)),c}}while(1<=r&&0<=o);break}}}finally{j=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:"")?I(n):""}function L(e){switch(e.tag){case 26:case 27:case 5:return I(e.type);case 16:return I("Lazy");case 13:return I("Suspense");case 19:return I("SuspenseList");case 0:case 15:return R(e.type,!1);case 11:return R(e.type.render,!1);case 1:return R(e.type,!0);default:return""}}function N(e){try{var t="";do{t+=L(e),e=e.return}while(e);return t}catch(e){return"\nError generating stack: "+e.message+"\n"+e.stack}}function D(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{!!(4098&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function M(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&null!==(e=e.alternate)&&(t=e.memoizedState),null!==t)return t.dehydrated}return null}function F(e){if(D(e)!==e)throw Error(a(188))}function B(e){var t=e.tag;if(5===t||26===t||27===t||6===t)return e;for(e=e.child;null!==e;){if(null!==(t=B(e)))return t;e=e.sibling}return null}var U=Array.isArray,z=i.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,V={pending:!1,data:null,method:null,action:null},H=[],$=-1;function W(e){return{current:e}}function G(e){0>$||(e.current=H[$],H[$]=null,$--)}function q(e,t){$++,H[$]=e.current,e.current=t}var K=W(null),J=W(null),Q=W(null),Y=W(null);function X(e,t){switch(q(Q,t),q(J,e),q(K,null),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)&&(t=t.namespaceURI)?Jc(t):0;break;default:if(t=(e=8===e?t.parentNode:t).tagName,e=e.namespaceURI)t=Qc(e=Jc(e),t);else switch(t){case"svg":t=1;break;case"math":t=2;break;default:t=0}}G(K),q(K,t)}function Z(){G(K),G(J),G(Q)}function ee(e){null!==e.memoizedState&&q(Y,e);var t=K.current,n=Qc(t,e.type);t!==n&&(q(J,e),q(K,n))}function te(e){J.current===e&&(G(K),G(J)),Y.current===e&&(G(Y),Df._currentValue=V)}var ne=Object.prototype.hasOwnProperty,re=r.unstable_scheduleCallback,oe=r.unstable_cancelCallback,ie=r.unstable_shouldYield,ae=r.unstable_requestPaint,se=r.unstable_now,le=r.unstable_getCurrentPriorityLevel,ue=r.unstable_ImmediatePriority,ce=r.unstable_UserBlockingPriority,fe=r.unstable_NormalPriority,he=r.unstable_LowPriority,de=r.unstable_IdlePriority,pe=r.log,me=r.unstable_setDisableYieldValue,ge=null,ye=null;function ve(e){if("function"==typeof pe&&me(e),ye&&"function"==typeof ye.setStrictMode)try{ye.setStrictMode(ge,e)}catch(e){}}var be=Math.clz32?Math.clz32:function(e){return 0==(e>>>=0)?32:31-(we(e)/_e|0)|0},we=Math.log,_e=Math.LN2,Se=128,ke=4194304;function xe(e){var t=42&e;if(0!==t)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return 4194176&e;case 4194304:case 8388608:case 16777216:case 33554432:return 62914560&e;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function Ee(e,t){var n=e.pendingLanes;if(0===n)return 0;var r=0,o=e.suspendedLanes,i=e.pingedLanes,a=e.warmLanes;e=0!==e.finishedLanes;var s=134217727&n;return 0!==s?0!=(n=s&~o)?r=xe(n):0!=(i&=s)?r=xe(i):e||0!=(a=s&~a)&&(r=xe(a)):0!=(s=n&~o)?r=xe(s):0!==i?r=xe(i):e||0!=(a=n&~a)&&(r=xe(a)),0===r?0:0===t||t===r||t&o||!((o=r&-r)>=(a=t&-t)||32===o&&4194176&a)?r:t}function Oe(e,t){return!(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)}function Pe(e,t){switch(e){case 1:case 2:case 4:case 8:return t+250;case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;default:return-1}}function Ce(){var e=Se;return!(4194176&(Se<<=1))&&(Se=128),e}function Te(){var e=ke;return!(62914560&(ke<<=1))&&(ke=4194304),e}function Ae(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Ie(e,t){e.pendingLanes|=t,268435456!==t&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function je(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var r=31-be(t);e.entangledLanes|=t,e.entanglements[r]=1073741824|e.entanglements[r]|4194218&n}function Re(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-be(n),o=1<=_n),xn=String.fromCharCode(32),En=!1;function On(e,t){switch(e){case"keyup":return-1!==bn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Pn(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Cn=!1,Tn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function An(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Tn[e.type]:"textarea"===t}function In(e,t,n,r){It?jt?jt.push(r):jt=[r]:It=r,0<(t=Nc(t,"onChange")).length&&(n=new Yt("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var jn=null,Rn=null;function Ln(e){Pc(e,0)}function Nn(e){if(ft(Ke(e)))return e}function Dn(e,t){if("change"===e)return t}var Mn=!1;if(tt){var Fn;if(tt){var Bn="oninput"in document;if(!Bn){var Un=document.createElement("div");Un.setAttribute("oninput","return;"),Bn="function"==typeof Un.oninput}Fn=Bn}else Fn=!1;Mn=Fn&&(!document.documentMode||9=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=Jn(r)}}function Yn(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?Yn(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function Xn(e){for(var t=ht((e=null!=e&&null!=e.ownerDocument&&null!=e.ownerDocument.defaultView?e.ownerDocument.defaultView:window).document);t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(e){n=!1}if(!n)break;t=ht((e=t.contentWindow).document)}return t}function Zn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}function er(e,t){var n=Xn(t);t=e.focusedElem;var r=e.selectionRange;if(n!==t&&t&&t.ownerDocument&&Yn(t.ownerDocument.documentElement,t)){if(null!==r&&Zn(t))if(e=r.start,void 0===(n=r.end)&&(n=e),"selectionStart"in t)t.selectionStart=e,t.selectionEnd=Math.min(n,t.value.length);else if((n=(e=t.ownerDocument||document)&&e.defaultView||window).getSelection){n=n.getSelection();var o=t.textContent.length,i=Math.min(r.start,o);r=void 0===r.end?i:Math.min(r.end,o),!n.extend&&i>r&&(o=r,r=i,i=o),o=Qn(t,i);var a=Qn(t,r);o&&a&&(1!==n.rangeCount||n.anchorNode!==o.node||n.anchorOffset!==o.offset||n.focusNode!==a.node||n.focusOffset!==a.offset)&&((e=e.createRange()).setStart(o.node,o.offset),n.removeAllRanges(),i>r?(n.addRange(e),n.extend(a.node,a.offset)):(e.setEnd(a.node,a.offset),n.addRange(e)))}for(e=[],n=t;n=n.parentNode;)1===n.nodeType&&e.push({element:n,left:n.scrollLeft,top:n.scrollTop});for("function"==typeof t.focus&&t.focus(),t=0;t=document.documentMode,nr=null,rr=null,or=null,ir=!1;function ar(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;ir||null==nr||nr!==ht(r)||(r="selectionStart"in(r=nr)&&Zn(r)?{start:r.selectionStart,end:r.selectionEnd}:{anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},or&&Kn(or,r)||(or=r,0<(r=Nc(rr,"onSelect")).length&&(t=new Yt("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=nr)))}function sr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var lr={animationend:sr("Animation","AnimationEnd"),animationiteration:sr("Animation","AnimationIteration"),animationstart:sr("Animation","AnimationStart"),transitionrun:sr("Transition","TransitionRun"),transitionstart:sr("Transition","TransitionStart"),transitioncancel:sr("Transition","TransitionCancel"),transitionend:sr("Transition","TransitionEnd")},ur={},cr={};function fr(e){if(ur[e])return ur[e];if(!lr[e])return e;var t,n=lr[e];for(t in n)if(n.hasOwnProperty(t)&&t in cr)return ur[e]=n[t];return e}tt&&(cr=document.createElement("div").style,"AnimationEvent"in window||(delete lr.animationend.animation,delete lr.animationiteration.animation,delete lr.animationstart.animation),"TransitionEvent"in window||delete lr.transitionend.transition);var hr=fr("animationend"),dr=fr("animationiteration"),pr=fr("animationstart"),mr=fr("transitionrun"),gr=fr("transitionstart"),yr=fr("transitioncancel"),vr=fr("transitionend"),br=new Map,wr="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll scrollEnd toggle touchMove waiting wheel".split(" ");function _r(e,t){br.set(e,t),Ze(t,[e])}var Sr=[],kr=0,xr=0;function Er(){for(var e=kr,t=xr=kr=0;t>=a,o-=a,zr=1<<32-be(t)+o|n<h?(d=f,f=null):d=f.sibling;var p=y(o,f,s[h],l);if(null===p){null===f&&(f=d);break}e&&f&&null===p.alternate&&t(o,f),a=i(p,a,h),null===c?u=p:c.sibling=p,c=p,f=d}if(h===s.length)return n(o,f),Jr&&Hr(o,h),u;if(null===f){for(;hd?(p=h,h=null):p=h.sibling;var b=y(o,h,m.value,u);if(null===b){null===h&&(h=p);break}e&&h&&null===b.alternate&&t(o,h),s=i(b,s,d),null===f?c=b:f.sibling=b,f=b,h=p}if(m.done)return n(o,h),Jr&&Hr(o,d),c;if(null===h){for(;!m.done;d++,m=l.next())null!==(m=g(o,m.value,u))&&(s=i(m,s,d),null===f?c=m:f.sibling=m,f=m);return Jr&&Hr(o,d),c}for(h=r(h);!m.done;d++,m=l.next())null!==(m=v(h,o,d,m.value,u))&&(e&&null!==m.alternate&&h.delete(null===m.key?d:m.key),s=i(m,s,d),null===f?c=m:f.sibling=m,f=m);return e&&h.forEach((function(e){return t(o,e)})),Jr&&Hr(o,d),c}(f,h,d=_.call(d),p)}if("function"==typeof d.then)return b(f,h,go(d),p);if(d.$$typeof===m)return b(f,h,Es(f,d),p);vo(f,d)}return"string"==typeof d&&""!==d||"number"==typeof d||"bigint"==typeof d?(d=""+d,null!==h&&6===h.tag?(n(f,h.sibling),(p=o(h,d)).return=f,f=p):(n(f,h),(p=zl(d,f.mode,p)).return=f,f=p),s(f)):n(f,h)}return function(e,t,n,r){try{mo=0;var o=b(e,t,n,r);return po=null,o}catch(t){if(t===io)throw t;var i=Ll(29,t,null,e.mode);return i.lanes=r,i.return=e,i}}}var _o=wo(!0),So=wo(!1),ko=W(null),xo=W(0);function Eo(e,t){q(xo,e=lu),q(ko,t),lu=e|t.baseLanes}function Oo(){q(xo,lu),q(ko,ko.current)}function Po(){lu=xo.current,G(ko),G(xo)}var Co=W(null),To=null;function Ao(e){var t=e.alternate;q(Lo,1&Lo.current),q(Co,e),null===To&&(null===t||null!==ko.current||null!==t.memoizedState)&&(To=e)}function Io(e){if(22===e.tag){if(q(Lo,Lo.current),q(Co,e),null===To){var t=e.alternate;null!==t&&null!==t.memoizedState&&(To=e)}}else jo()}function jo(){q(Lo,Lo.current),q(Co,Co.current)}function Ro(e){G(Co),To===e&&(To=null),G(Lo)}var Lo=W(0);function No(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(128&t.flags)return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Do="undefined"!=typeof AbortController?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(t,n){e.push(n)}};this.abort=function(){t.aborted=!0,e.forEach((function(e){return e()}))}},Mo=r.unstable_scheduleCallback,Fo=r.unstable_NormalPriority,Bo={$$typeof:m,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function Uo(){return{controller:new Do,data:new Map,refCount:0}}function zo(e){e.refCount--,0===e.refCount&&Mo(Fo,(function(){e.controller.abort()}))}var Vo=null,Ho=0,$o=0,Wo=null;function Go(){if(0==--Ho&&null!==Vo){null!==Wo&&(Wo.status="fulfilled");var e=Vo;Vo=null,$o=0,Wo=null;for(var t=0;ti?i:8;var a,s,l,u=T.T,c={};T.T=c,wa(e,!1,t,n);try{var f=o(),h=T.S;null!==h&&h(c,f),null!==f&&"object"==typeof f&&"function"==typeof f.then?ba(e,t,(a=r,s=[],l={status:"pending",value:null,reason:null,then:function(e){s.push(e)}},f.then((function(){l.status="fulfilled",l.value=a;for(var e=0;e title"))),Wc(i,r,n),i[Me]=e,Qe(i),r=i;break e;case"link":var s=Pf("link","href",o).get(r+(n.href||""));if(s)for(var l=0;l<\/script>",e=e.removeChild(e.firstChild);break;case"select":e="string"==typeof r.is?o.createElement("select",{is:r.is}):o.createElement("select"),r.multiple?e.multiple=!0:r.size&&(e.size=r.size);break;default:e="string"==typeof r.is?o.createElement(n,{is:r.is}):o.createElement(n)}}e[Me]=t,e[Fe]=r;e:for(o=t.child;null!==o;){if(5===o.tag||6===o.tag)e.appendChild(o.stateNode);else if(4!==o.tag&&27!==o.tag&&null!==o.child){o.child.return=o,o=o.child;continue}if(o===t)break e;for(;null===o.sibling;){if(null===o.return||o.return===t)break e;o=o.return}o.sibling.return=o.return,o=o.sibling}t.stateNode=e;e:switch(Wc(e,n,r),n){case"button":case"input":case"select":case"textarea":e=!!r.autoFocus;break e;case"img":e=!0;break e;default:e=!1}e&&Hl(t)}}return ql(t),t.flags&=-16777217,null;case 6:if(e&&null!=t.stateNode)e.memoizedProps!==r&&Hl(t);else{if("string"!=typeof r&&null===t.stateNode)throw Error(a(166));if(e=Q.current,no(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,null!==(o=qr))switch(o.tag){case 27:case 5:r=o.memoizedProps}e[Me]=t,(e=!!(e.nodeValue===n||null!==r&&!0===r.suppressHydrationWarning||zc(e.nodeValue,n)))||Zr(t)}else(e=Kc(e).createTextNode(r))[Me]=t,t.stateNode=e}return ql(t),null;case 13:if(r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(o=no(t),null!==r&&null!==r.dehydrated){if(null===e){if(!o)throw Error(a(318));if(!(o=null!==(o=t.memoizedState)?o.dehydrated:null))throw Error(a(317));o[Me]=t}else ro(),!(128&t.flags)&&(t.memoizedState=null),t.flags|=4;ql(t),o=!1}else null!==Qr&&(Ru(Qr),Qr=null),o=!0;if(!o)return 256&t.flags?(Ro(t),t):(Ro(t),null)}if(Ro(t),128&t.flags)return t.lanes=n,t;if(n=null!==r,e=null!==e&&null!==e.memoizedState,n){o=null,null!==(r=t.child).alternate&&null!==r.alternate.memoizedState&&null!==r.alternate.memoizedState.cachePool&&(o=r.alternate.memoizedState.cachePool.pool);var i=null;null!==r.memoizedState&&null!==r.memoizedState.cachePool&&(i=r.memoizedState.cachePool.pool),i!==o&&(r.flags|=2048)}return n!==e&&n&&(t.child.flags|=8192),Wl(t,t.updateQueue),ql(t),null;case 4:return Z(),null===e&&Ic(t.stateNode.containerInfo),ql(t),null;case 10:return vs(t.type),ql(t),null;case 19:if(G(Lo),null===(o=t.memoizedState))return ql(t),null;if(r=!!(128&t.flags),null===(i=o.rendering))if(r)Gl(o,!1);else{if(0!==uu||null!==e&&128&e.flags)for(e=t.child;null!==e;){if(null!==(i=No(e))){for(t.flags|=128,Gl(o,!1),e=i.updateQueue,t.updateQueue=e,Wl(t,e),t.subtreeFlags=0,e=n,n=t.child;null!==n;)Ml(n,e),n=n.sibling;return q(Lo,1&Lo.current|2),t.child}e=e.sibling}null!==o.tail&&se()>bu&&(t.flags|=128,r=!0,Gl(o,!1),t.lanes=4194304)}else{if(!r)if(null!==(e=No(i))){if(t.flags|=128,r=!0,e=e.updateQueue,t.updateQueue=e,Wl(t,e),Gl(o,!0),null===o.tail&&"hidden"===o.tailMode&&!i.alternate&&!Jr)return ql(t),null}else 2*se()-o.renderingStartTime>bu&&536870912!==n&&(t.flags|=128,r=!0,Gl(o,!1),t.lanes=4194304);o.isBackwards?(i.sibling=t.child,t.child=i):(null!==(e=o.last)?e.sibling=i:t.child=i,o.last=i)}return null!==o.tail?(t=o.tail,o.rendering=t,o.tail=t.sibling,o.renderingStartTime=se(),t.sibling=null,e=Lo.current,q(Lo,r?1&e|2:1&e),t):(ql(t),null);case 22:case 23:return Ro(t),Po(),r=null!==t.memoizedState,null!==e?null!==e.memoizedState!==r&&(t.flags|=8192):r&&(t.flags|=8192),r?!!(536870912&n)&&!(128&t.flags)&&(ql(t),6&t.subtreeFlags&&(t.flags|=8192)):ql(t),null!==(n=t.updateQueue)&&Wl(t,n.retryQueue),n=null,null!==e&&null!==e.memoizedState&&null!==e.memoizedState.cachePool&&(n=e.memoizedState.cachePool.pool),r=null,null!==t.memoizedState&&null!==t.memoizedState.cachePool&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),null!==e&&G(Ko),null;case 24:return n=null,null!==e&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),vs(Bo),ql(t),null;case 25:return null}throw Error(a(156,t.tag))}function Jl(e,t){switch(Gr(t),t.tag){case 1:return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return vs(Bo),Z(),65536&(e=t.flags)&&!(128&e)?(t.flags=-65537&e|128,t):null;case 26:case 27:case 5:return te(t),null;case 13:if(Ro(t),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(a(340));ro()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return G(Lo),null;case 4:return Z(),null;case 10:return vs(t.type),null;case 22:case 23:return Ro(t),Po(),null!==e&&G(Ko),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 24:return vs(Bo),null;default:return null}}function Ql(e,t){switch(Gr(t),t.tag){case 3:vs(Bo),Z();break;case 26:case 27:case 5:te(t);break;case 4:Z();break;case 13:Ro(t);break;case 19:G(Lo);break;case 10:vs(t.type);break;case 22:case 23:Ro(t),Po(),null!==e&&G(Ko);break;case 24:vs(Bo)}}var Yl={getCacheForType:function(e){var t=xs(Bo),n=t.data.get(e);return void 0===n&&(n=e(),t.data.set(e,n)),n}},Xl="function"==typeof WeakMap?WeakMap:Map,Zl=0,eu=null,tu=null,nu=0,ru=0,ou=null,iu=!1,au=!1,su=!1,lu=0,uu=0,cu=0,fu=0,hu=0,du=0,pu=0,mu=null,gu=null,yu=!1,vu=0,bu=1/0,wu=null,_u=null,Su=!1,ku=null,xu=0,Eu=0,Ou=null,Pu=0,Cu=null;function Tu(){return 2&Zl&&0!==nu?nu&-nu:null!==T.T?0!==$o?$o:wc():Ne()}function Au(){0===du&&(du=536870912&nu&&!Jr?536870912:Ce());var e=Co.current;return null!==e&&(e.flags|=32),du}function Iu(e,t,n){(e===eu&&2===ru||null!==e.cancelPendingCommit)&&(Bu(e,0),Du(e,nu,du,!1)),Ie(e,n),2&Zl&&e===eu||(e===eu&&(!(2&Zl)&&(fu|=n),4===uu&&Du(e,nu,du,!1)),pc(e))}function ju(e,t,n){if(6&Zl)throw Error(a(327));for(var r=!n&&!(60&t)&&!(t&e.expiredLanes)||Oe(e,t),o=r?function(e,t){var n=Zl;Zl|=2;var r=zu(),o=Vu();eu!==e||nu!==t?(wu=null,bu=se()+500,Bu(e,t)):au=Oe(e,t);e:for(;;)try{if(0!==ru&&null!==tu){t=tu;var i=ou;t:switch(ru){case 1:ru=0,ou=null,Ju(e,t,i,1);break;case 2:if(lo(i)){ru=0,ou=null,Ku(t);break}t=function(){2===ru&&eu===e&&(ru=7),pc(e)},i.then(t,t);break e;case 3:ru=7;break e;case 4:ru=5;break e;case 7:lo(i)?(ru=0,ou=null,Ku(t)):(ru=0,ou=null,Ju(e,t,i,7));break;case 5:var s=null;switch(tu.tag){case 26:s=tu.memoizedState;case 5:case 27:var l=tu;if(!s||Tf(s)){ru=0,ou=null;var u=l.sibling;if(null!==u)tu=u;else{var c=l.return;null!==c?(tu=c,Qu(c)):tu=null}break t}}ru=0,ou=null,Ju(e,t,i,5);break;case 6:ru=0,ou=null,Ju(e,t,i,6);break;case 8:Fu(),uu=6;break e;default:throw Error(a(462))}}Gu();break}catch(t){Uu(e,t)}return gs=ms=null,T.H=r,T.A=o,Zl=n,null!==tu?0:(eu=null,nu=0,Er(),uu)}(e,t):$u(e,t,!0),i=r;;){if(0===o){au&&!r&&Du(e,t,0,!1);break}if(6===o)Du(e,t,0,!iu);else{if(n=e.current.alternate,i&&!Nu(n)){o=$u(e,t,!1),i=!1;continue}if(2===o){if(i=t,e.errorRecoveryDisabledLanes&i)var s=0;else s=0!=(s=-536870913&e.pendingLanes)?s:536870912&s?536870912:0;if(0!==s){t=s;e:{var l=e;o=mu;var u=l.current.memoizedState.isDehydrated;if(u&&(Bu(l,s).flags|=256),2!==(s=$u(l,s,!1))){if(su&&!u){l.errorRecoveryDisabledLanes|=i,fu|=i,o=4;break e}i=gu,gu=o,null!==i&&Ru(i)}o=s}if(i=!1,2!==o)continue}}if(1===o){Bu(e,0),Du(e,t,0,!0);break}e:{switch(r=e,o){case 0:case 1:throw Error(a(345));case 4:if((4194176&t)===t){Du(r,t,du,!iu);break e}break;case 2:gu=null;break;case 3:case 5:break;default:throw Error(a(329))}if(r.finishedWork=n,r.finishedLanes=t,(62914560&t)===t&&10<(i=vu+300-se())){if(Du(r,t,du,!iu),0!==Ee(r,0))break e;r.timeoutHandle=Zc(Lu.bind(null,r,n,gu,wu,yu,t,du,fu,pu,iu,2,-0,0),i)}else Lu(r,n,gu,wu,yu,t,du,fu,pu,iu,0,-0,0)}}break}pc(e)}function Ru(e){null===gu?gu=e:gu.push.apply(gu,e)}function Lu(e,t,n,r,o,i,s,l,u,c,f,h,d){var p=t.subtreeFlags;if((8192&p||!(16785408&~p))&&(Af={stylesheets:null,count:0,unsuspend:If},Pl(t),null!==(t=function(){if(null===Af)throw Error(a(475));var e=Af;return e.stylesheets&&0===e.count&&Lf(e,e.stylesheets),0n?32:n,T.T=null,null===ku)var i=!1;else{n=Ou,Ou=null;var s=ku,l=xu;if(ku=null,xu=0,6&Zl)throw Error(a(331));var u=Zl;if(Zl|=4,Al(s.current),Sl(s,s.current,l,n),Zl=u,mc(0,!1),ye&&"function"==typeof ye.onPostCommitFiberRoot)try{ye.onPostCommitFiberRoot(ge,s)}catch(e){}i=!0}return i}finally{z.p=o,T.T=r,Zu(e,t)}}return!1}function tc(e,t,n){t=Rr(n,t),null!==(e=Is(e,t=Ba(e.stateNode,t,2),2))&&(Ie(e,2),pc(e))}function nc(e,t,n){if(3===e.tag)tc(e,e,n);else for(;null!==t;){if(3===t.tag){tc(t,e,n);break}if(1===t.tag){var r=t.stateNode;if("function"==typeof t.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===_u||!_u.has(r))){e=Rr(n,e),null!==(r=Is(t,n=Ua(2),2))&&(za(n,r,t,e),Ie(r,2),pc(r));break}}t=t.return}}function rc(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new Xl;var o=new Set;r.set(t,o)}else void 0===(o=r.get(t))&&(o=new Set,r.set(t,o));o.has(n)||(su=!0,o.add(n),e=oc.bind(null,e,t,n),t.then(e,e))}function oc(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,eu===e&&(nu&n)===n&&(4===uu||3===uu&&(62914560&nu)===nu&&300>se()-vu?!(2&Zl)&&Bu(e,0):hu|=n,pu===nu&&(pu=0)),pc(e)}function ic(e,t){0===t&&(t=Te()),null!==(e=Cr(e,t))&&(Ie(e,t),pc(e))}function ac(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),ic(e,n)}function sc(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,o=e.memoizedState;null!==o&&(n=o.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(a(314))}null!==r&&r.delete(t),ic(e,n)}var lc=null,uc=null,cc=!1,fc=!1,hc=!1,dc=0;function pc(e){var t;e!==uc&&null===e.next&&(null===uc?lc=uc=e:uc=uc.next=e),fc=!0,cc||(cc=!0,t=gc,nf((function(){6&Zl?re(ue,t):t()})))}function mc(e,t){if(!hc&&fc){hc=!0;do{for(var n=!1,r=lc;null!==r;){if(!t)if(0!==e){var o=r.pendingLanes;if(0===o)var i=0;else{var a=r.suspendedLanes,s=r.pingedLanes;i=(1<<31-be(42|e)+1)-1,i=201326677&(i&=o&~(a&~s))?201326677&i|1:i?2|i:0}0!==i&&(n=!0,bc(r,i))}else i=nu,!(3&(i=Ee(r,r===eu?i:0)))||Oe(r,i)||(n=!0,bc(r,i));r=r.next}}while(n);hc=!1}}function gc(){fc=cc=!1;var e,t=0;0!==dc&&(((e=window.event)&&"popstate"===e.type?e!==Xc&&(Xc=e,!0):(Xc=null,!1))&&(t=dc),dc=0);for(var n=se(),r=null,o=lc;null!==o;){var i=o.next,a=yc(o,n);0===a?(o.next=null,null===r?lc=i:r.next=i,null===i&&(uc=r)):(r=o,(0!==t||3&a)&&(fc=!0)),o=i}mc(t,!1)}function yc(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,o=e.expirationTimes,i=-62914561&e.pendingLanes;0 title"):null)}function Tf(e){return!!("stylesheet"!==e.type||3&e.state.loading)}var Af=null;function If(){}function jf(){if(this.count--,0===this.count)if(this.stylesheets)Lf(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}var Rf=null;function Lf(e,t){e.stylesheets=null,null!==e.unsuspend&&(e.count++,Rf=new Map,t.forEach(Nf,e),Rf=null,jf.call(e))}function Nf(e,t){if(!(4&t.state.loading)){var n=Rf.get(e);if(n)var r=n.get(null);else{n=new Map,Rf.set(e,n);for(var o=e.querySelectorAll("link[data-precedence],style[data-precedence]"),i=0;i{"use strict";e.exports=function(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"==typeof Symbol.iterator)return!0;var e={},t=Symbol("test"),n=Object(t);if("string"==typeof t)return!1;if("[object Symbol]"!==Object.prototype.toString.call(t))return!1;if("[object Symbol]"!==Object.prototype.toString.call(n))return!1;for(var r in e[t]=42,e)return!1;if("function"==typeof Object.keys&&0!==Object.keys(e).length)return!1;if("function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(e).length)return!1;var o=Object.getOwnPropertySymbols(e);if(1!==o.length||o[0]!==t)return!1;if(!Object.prototype.propertyIsEnumerable.call(e,t))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){var i=Object.getOwnPropertyDescriptor(e,t);if(42!==i.value||!0!==i.enumerable)return!1}return!0}},1514:e=>{"use strict";e.exports=Math.abs},2271:(e,t,n)=>{"use strict";var r=n(453),o=n(6556),i=n(8859),a=n(507),s=n(9675),l=r("%WeakMap%",!0),u=o("WeakMap.prototype.get",!0),c=o("WeakMap.prototype.set",!0),f=o("WeakMap.prototype.has",!0),h=o("WeakMap.prototype.delete",!0);e.exports=l?function(){var e,t,n={assert:function(e){if(!n.has(e))throw new s("Side channel does not contain "+i(e))},delete:function(n){if(l&&n&&("object"==typeof n||"function"==typeof n)){if(e)return h(e,n)}else if(a&&t)return t.delete(n);return!1},get:function(n){return l&&n&&("object"==typeof n||"function"==typeof n)&&e?u(e,n):t&&t.get(n)},has:function(n){return l&&n&&("object"==typeof n||"function"==typeof n)&&e?f(e,n):!!t&&t.has(n)},set:function(n,r){l&&n&&("object"==typeof n||"function"==typeof n)?(e||(e=new l),c(e,n,r)):a&&(t||(t=a()),t.set(n,r))}};return n}:a},2634:()=>{},2642:(e,t,n)=>{"use strict";var r=n(7720),o=Object.prototype.hasOwnProperty,i=Array.isArray,a={allowDots:!1,allowEmptyArrays:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decodeDotInKeys:!1,decoder:r.decode,delimiter:"&",depth:5,duplicates:"combine",ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictDepth:!1,strictNullHandling:!1,throwOnLimitExceeded:!1},s=function(e){return e.replace(/&#(\d+);/g,(function(e,t){return String.fromCharCode(parseInt(t,10))}))},l=function(e,t,n){if(e&&"string"==typeof e&&t.comma&&e.indexOf(",")>-1)return e.split(",");if(t.throwOnLimitExceeded&&n>=t.arrayLimit)throw new RangeError("Array limit exceeded. Only "+t.arrayLimit+" element"+(1===t.arrayLimit?"":"s")+" allowed in an array.");return e},u=function(e,t,n,i){if(e){var a=n.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,s=/(\[[^[\]]*])/g,u=n.depth>0&&/(\[[^[\]]*])/.exec(a),c=u?a.slice(0,u.index):a,f=[];if(c){if(!n.plainObjects&&o.call(Object.prototype,c)&&!n.allowPrototypes)return;f.push(c)}for(var h=0;n.depth>0&&null!==(u=s.exec(a))&&h0&&"[]"===e[e.length-1]){var a=e.slice(0,-1).join("");i=Array.isArray(t)&&t[a]?t[a].length:0}for(var s=o?t:l(t,n,i),u=e.length-1;u>=0;--u){var c,f=e[u];if("[]"===f&&n.parseArrays)c=n.allowEmptyArrays&&(""===s||n.strictNullHandling&&null===s)?[]:r.combine([],s);else{c=n.plainObjects?{__proto__:null}:{};var h="["===f.charAt(0)&&"]"===f.charAt(f.length-1)?f.slice(1,-1):f,d=n.decodeDotInKeys?h.replace(/%2E/g,"."):h,p=parseInt(d,10);n.parseArrays||""!==d?!isNaN(p)&&f!==d&&String(p)===d&&p>=0&&n.parseArrays&&p<=n.arrayLimit?(c=[])[p]=s:"__proto__"!==d&&(c[d]=s):c={0:s}}s=c}return s}(f,t,n,i)}};e.exports=function(e,t){var n=function(e){if(!e)return a;if(void 0!==e.allowEmptyArrays&&"boolean"!=typeof e.allowEmptyArrays)throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(void 0!==e.decodeDotInKeys&&"boolean"!=typeof e.decodeDotInKeys)throw new TypeError("`decodeDotInKeys` option can only be `true` or `false`, when provided");if(null!==e.decoder&&void 0!==e.decoder&&"function"!=typeof e.decoder)throw new TypeError("Decoder has to be a function.");if(void 0!==e.charset&&"utf-8"!==e.charset&&"iso-8859-1"!==e.charset)throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");if(void 0!==e.throwOnLimitExceeded&&"boolean"!=typeof e.throwOnLimitExceeded)throw new TypeError("`throwOnLimitExceeded` option must be a boolean");var t=void 0===e.charset?a.charset:e.charset,n=void 0===e.duplicates?a.duplicates:e.duplicates;if("combine"!==n&&"first"!==n&&"last"!==n)throw new TypeError("The duplicates option must be either combine, first, or last");return{allowDots:void 0===e.allowDots?!0===e.decodeDotInKeys||a.allowDots:!!e.allowDots,allowEmptyArrays:"boolean"==typeof e.allowEmptyArrays?!!e.allowEmptyArrays:a.allowEmptyArrays,allowPrototypes:"boolean"==typeof e.allowPrototypes?e.allowPrototypes:a.allowPrototypes,allowSparse:"boolean"==typeof e.allowSparse?e.allowSparse:a.allowSparse,arrayLimit:"number"==typeof e.arrayLimit?e.arrayLimit:a.arrayLimit,charset:t,charsetSentinel:"boolean"==typeof e.charsetSentinel?e.charsetSentinel:a.charsetSentinel,comma:"boolean"==typeof e.comma?e.comma:a.comma,decodeDotInKeys:"boolean"==typeof e.decodeDotInKeys?e.decodeDotInKeys:a.decodeDotInKeys,decoder:"function"==typeof e.decoder?e.decoder:a.decoder,delimiter:"string"==typeof e.delimiter||r.isRegExp(e.delimiter)?e.delimiter:a.delimiter,depth:"number"==typeof e.depth||!1===e.depth?+e.depth:a.depth,duplicates:n,ignoreQueryPrefix:!0===e.ignoreQueryPrefix,interpretNumericEntities:"boolean"==typeof e.interpretNumericEntities?e.interpretNumericEntities:a.interpretNumericEntities,parameterLimit:"number"==typeof e.parameterLimit?e.parameterLimit:a.parameterLimit,parseArrays:!1!==e.parseArrays,plainObjects:"boolean"==typeof e.plainObjects?e.plainObjects:a.plainObjects,strictDepth:"boolean"==typeof e.strictDepth?!!e.strictDepth:a.strictDepth,strictNullHandling:"boolean"==typeof e.strictNullHandling?e.strictNullHandling:a.strictNullHandling,throwOnLimitExceeded:"boolean"==typeof e.throwOnLimitExceeded&&e.throwOnLimitExceeded}}(t);if(""===e||null==e)return n.plainObjects?{__proto__:null}:{};for(var c="string"==typeof e?function(e,t){var n={__proto__:null},u=t.ignoreQueryPrefix?e.replace(/^\?/,""):e;u=u.replace(/%5B/gi,"[").replace(/%5D/gi,"]");var c=t.parameterLimit===1/0?void 0:t.parameterLimit,f=u.split(t.delimiter,t.throwOnLimitExceeded?c+1:c);if(t.throwOnLimitExceeded&&f.length>c)throw new RangeError("Parameter limit exceeded. Only "+c+" parameter"+(1===c?"":"s")+" allowed.");var h,d=-1,p=t.charset;if(t.charsetSentinel)for(h=0;h-1&&(g=i(g)?[g]:g);var w=o.call(n,m);w&&"combine"===t.duplicates?n[m]=r.combine(n[m],g):w&&"last"!==t.duplicates||(n[m]=g)}return n}(e,n):e,f=n.plainObjects?{__proto__:null}:{},h=Object.keys(c),d=0;d{"use strict";var t=Object.prototype.hasOwnProperty,n=Object.prototype.toString,r=Object.defineProperty,o=Object.getOwnPropertyDescriptor,i=function(e){return"function"==typeof Array.isArray?Array.isArray(e):"[object Array]"===n.call(e)},a=function(e){if(!e||"[object Object]"!==n.call(e))return!1;var r,o=t.call(e,"constructor"),i=e.constructor&&e.constructor.prototype&&t.call(e.constructor.prototype,"isPrototypeOf");if(e.constructor&&!o&&!i)return!1;for(r in e);return void 0===r||t.call(e,r)},s=function(e,t){r&&"__proto__"===t.name?r(e,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):e[t.name]=t.newValue},l=function(e,n){if("__proto__"===n){if(!t.call(e,n))return;if(o)return o(e,n).value}return e[n]};e.exports=function e(){var t,n,r,o,u,c,f=arguments[0],h=1,d=arguments.length,p=!1;for("boolean"==typeof f&&(p=f,f=arguments[1]||{},h=2),(null==f||"object"!=typeof f&&"function"!=typeof f)&&(f={});h{"use strict";var r=n(4459);e.exports=function(e){return r(e)||0===e?e:e<0?-1:1}},3126:(e,t,n)=>{"use strict";var r=n(6743),o=n(9675),i=n(76),a=n(3144);e.exports=function(e){if(e.length<1||"function"!=typeof e[0])throw new o("a function is required");return a(r,i,e)}},3144:(e,t,n)=>{"use strict";var r=n(6743),o=n(1002),i=n(76),a=n(7119);e.exports=a||r.call(i,o)},3628:(e,t,n)=>{"use strict";var r=n(8648),o=n(1064),i=n(7176);e.exports=r?function(e){return r(e)}:o?function(e){if(!e||"object"!=typeof e&&"function"!=typeof e)throw new TypeError("getProto: not an object");return o(e)}:i?function(e){return i(e)}:null},4039:(e,t,n)=>{"use strict";var r="undefined"!=typeof Symbol&&Symbol,o=n(1333);e.exports=function(){return"function"==typeof r&&"function"==typeof Symbol&&"symbol"==typeof r("foo")&&"symbol"==typeof Symbol("bar")&&o()}},4459:e=>{"use strict";e.exports=Number.isNaN||function(e){return e!=e}},4477:(e,t)=>{"use strict";function n(e,t){var n=e.length;e.push(t);e:for(;0>>1,o=e[r];if(!(0>>1;ri(l,n))ui(c,l)?(e[r]=c,e[u]=n,r=u):(e[r]=l,e[s]=n,r=s);else{if(!(ui(c,n)))break e;e[r]=c,e[u]=n,r=u}}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if(t.unstable_now=void 0,"object"==typeof performance&&"function"==typeof performance.now){var a=performance;t.unstable_now=function(){return a.now()}}else{var s=Date,l=s.now();t.unstable_now=function(){return s.now()-l}}var u=[],c=[],f=1,h=null,d=3,p=!1,m=!1,g=!1,y="function"==typeof setTimeout?setTimeout:null,v="function"==typeof clearTimeout?clearTimeout:null,b="undefined"!=typeof setImmediate?setImmediate:null;function w(e){for(var t=r(c);null!==t;){if(null===t.callback)o(c);else{if(!(t.startTime<=e))break;o(c),t.sortIndex=t.expirationTime,n(u,t)}t=r(c)}}function _(e){if(g=!1,w(e),!m)if(null!==r(u))m=!0,I();else{var t=r(c);null!==t&&j(_,t.startTime-e)}}var S,k=!1,x=-1,E=5,O=-1;function P(){return!(t.unstable_now()-Oe&&P());){var a=h.callback;if("function"==typeof a){h.callback=null,d=h.priorityLevel;var s=a(h.expirationTime<=e);if(e=t.unstable_now(),"function"==typeof s){h.callback=s,w(e),n=!0;break t}h===r(u)&&o(u),w(e)}else o(u);h=r(u)}if(null!==h)n=!0;else{var l=r(c);null!==l&&j(_,l.startTime-e),n=!1}}break e}finally{h=null,d=i,p=!1}n=void 0}}finally{n?S():k=!1}}}if("function"==typeof b)S=function(){b(C)};else if("undefined"!=typeof MessageChannel){var T=new MessageChannel,A=T.port2;T.port1.onmessage=C,S=function(){A.postMessage(null)}}else S=function(){y(C,0)};function I(){k||(k=!0,S())}function j(e,n){x=y((function(){e(t.unstable_now())}),n)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){m||p||(m=!0,I())},t.unstable_forceFrameRate=function(e){0>e||125a?(e.sortIndex=i,n(c,e),null===r(u)&&e===r(c)&&(g?(v(x),x=-1):g=!0,j(_,i-a))):(e.sortIndex=s,n(u,e),m||p||(m=!0,I())),e},t.unstable_shouldYield=P,t.unstable_wrapCallback=function(e){var t=d;return function(){var n=d;d=t;try{return e.apply(this,arguments)}finally{d=n}}}},4765:e=>{"use strict";var t=String.prototype.replace,n=/%20/g,r="RFC3986";e.exports={default:r,formatters:{RFC1738:function(e){return t.call(e,n,"+")},RFC3986:function(e){return String(e)}},RFC1738:"RFC1738",RFC3986:r}},4803:(e,t,n)=>{"use strict";var r=n(8859),o=n(9675),i=function(e,t,n){for(var r,o=e;null!=(r=o.next);o=r)if(r.key===t)return o.next=r.next,n||(r.next=e.next,e.next=r),r};e.exports=function(){var e,t={assert:function(e){if(!t.has(e))throw new o("Side channel does not contain "+r(e))},delete:function(t){var n=e&&e.next,r=function(e,t){if(e)return i(e,t,!0)}(e,t);return r&&n&&n===r&&(e=void 0),!!r},get:function(t){return function(e,t){if(e){var n=i(e,t);return n&&n.value}}(e,t)},has:function(t){return function(e,t){return!!e&&!!i(e,t)}(e,t)},set:function(t,n){e||(e={next:void 0}),function(e,t,n){var r=i(e,t);r?r.value=n:e.next={key:t,next:e.next,value:n}}(e,t,n)}};return t}},4848:(e,t,n)=>{"use strict";e.exports=n(9698)},5229:function(e,t,n){"use strict";var r=(this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}})(n(1133)),o=n(8917);function i(e,t){var n={};return e&&"string"==typeof e?((0,r.default)(e,(function(e,r){e&&r&&(n[(0,o.camelCase)(e,t)]=r)})),n):n}i.default=i,e.exports=i},5338:(e,t,n)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),e.exports=n(1247)},5345:e=>{"use strict";e.exports=URIError},5373:(e,t,n)=>{"use strict";var r=n(8636),o=n(2642),i=n(4765);e.exports={formats:i,parse:o,stringify:r}},5795:(e,t,n)=>{"use strict";var r=n(6549);if(r)try{r([],"length")}catch(e){r=null}e.exports=r},5880:e=>{"use strict";e.exports=Math.pow},6188:e=>{"use strict";e.exports=Math.max},6221:(e,t,n)=>{"use strict";var r=n(6540);function o(e){var t="https://react.dev/errors/"+e;if(1{"use strict";e.exports=n(9869)},6549:e=>{"use strict";e.exports=Object.getOwnPropertyDescriptor},6556:(e,t,n)=>{"use strict";var r=n(453),o=n(3126),i=o([r("%String.prototype.indexOf%")]);e.exports=function(e,t){var n=r(e,!!t);return"function"==typeof n&&i(e,".prototype.")>-1?o([n]):n}},6743:(e,t,n)=>{"use strict";var r=n(9353);e.exports=Function.prototype.bind||r},6942:(e,t)=>{var n;!function(){"use strict";var r={}.hasOwnProperty;function o(){for(var e="",t=0;t{"use strict";e.exports="undefined"!=typeof Reflect&&Reflect&&Reflect.apply},7176:(e,t,n)=>{"use strict";var r,o=n(3126),i=n(5795);try{r=[].__proto__===Array.prototype}catch(e){if(!e||"object"!=typeof e||!("code"in e)||"ERR_PROTO_ACCESS"!==e.code)throw e}var a=!!r&&i&&i(Object.prototype,"__proto__"),s=Object,l=s.getPrototypeOf;e.exports=a&&"function"==typeof a.get?o([a.get]):"function"==typeof l&&function(e){return l(null==e?e:s(e))}},7526:(e,t)=>{"use strict";t.byteLength=function(e){var t=s(e),n=t[0],r=t[1];return 3*(n+r)/4-r},t.toByteArray=function(e){var t,n,i=s(e),a=i[0],l=i[1],u=new o(function(e,t,n){return 3*(t+n)/4-n}(0,a,l)),c=0,f=l>0?a-4:a;for(n=0;n>16&255,u[c++]=t>>8&255,u[c++]=255&t;return 2===l&&(t=r[e.charCodeAt(n)]<<2|r[e.charCodeAt(n+1)]>>4,u[c++]=255&t),1===l&&(t=r[e.charCodeAt(n)]<<10|r[e.charCodeAt(n+1)]<<4|r[e.charCodeAt(n+2)]>>2,u[c++]=t>>8&255,u[c++]=255&t),u},t.fromByteArray=function(e){for(var t,r=e.length,o=r%3,i=[],a=16383,s=0,u=r-o;su?u:s+a));return 1===o?(t=e[r-1],i.push(n[t>>2]+n[t<<4&63]+"==")):2===o&&(t=(e[r-2]<<8)+e[r-1],i.push(n[t>>10]+n[t>>4&63]+n[t<<2&63]+"=")),i.join("")};for(var n=[],r=[],o="undefined"!=typeof Uint8Array?Uint8Array:Array,i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0;a<64;++a)n[a]=i[a],r[i.charCodeAt(a)]=a;function s(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function l(e,t,r){for(var o,i,a=[],s=t;s>18&63]+n[i>>12&63]+n[i>>6&63]+n[63&i]);return a.join("")}r["-".charCodeAt(0)]=62,r["_".charCodeAt(0)]=63},7720:(e,t,n)=>{"use strict";var r=n(4765),o=Object.prototype.hasOwnProperty,i=Array.isArray,a=function(){for(var e=[],t=0;t<256;++t)e.push("%"+((t<16?"0":"")+t.toString(16)).toUpperCase());return e}(),s=function(e,t){for(var n=t&&t.plainObjects?{__proto__:null}:{},r=0;r1;){var t=e.pop(),n=t.obj[t.prop];if(i(n)){for(var r=[],o=0;o=l?s.slice(c,c+l):s,h=[],d=0;d=48&&p<=57||p>=65&&p<=90||p>=97&&p<=122||i===r.RFC1738&&(40===p||41===p)?h[h.length]=f.charAt(d):p<128?h[h.length]=a[p]:p<2048?h[h.length]=a[192|p>>6]+a[128|63&p]:p<55296||p>=57344?h[h.length]=a[224|p>>12]+a[128|p>>6&63]+a[128|63&p]:(d+=1,p=65536+((1023&p)<<10|1023&f.charCodeAt(d)),h[h.length]=a[240|p>>18]+a[128|p>>12&63]+a[128|p>>6&63]+a[128|63&p])}u+=h.join("")}return u},isBuffer:function(e){return!(!e||"object"!=typeof e||!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e)))},isRegExp:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},maybeMap:function(e,t){if(i(e)){for(var n=[],r=0;r{"use strict";e.exports=Math.min},8068:e=>{"use strict";e.exports=SyntaxError},8232:(e,t)=>{"use strict";Object.prototype.toString},8287:(e,t,n)=>{"use strict";const r=n(7526),o=n(251),i="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;t.hp=l,t.IS=50;const a=2147483647;function s(e){if(e>a)throw new RangeError('The value "'+e+'" is invalid for option "size"');const t=new Uint8Array(e);return Object.setPrototypeOf(t,l.prototype),t}function l(e,t,n){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return f(e)}return u(e,t,n)}function u(e,t,n){if("string"==typeof e)return function(e,t){if("string"==typeof t&&""!==t||(t="utf8"),!l.isEncoding(t))throw new TypeError("Unknown encoding: "+t);const n=0|m(e,t);let r=s(n);const o=r.write(e,t);return o!==n&&(r=r.slice(0,o)),r}(e,t);if(ArrayBuffer.isView(e))return function(e){if(J(e,Uint8Array)){const t=new Uint8Array(e);return d(t.buffer,t.byteOffset,t.byteLength)}return h(e)}(e);if(null==e)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(J(e,ArrayBuffer)||e&&J(e.buffer,ArrayBuffer))return d(e,t,n);if("undefined"!=typeof SharedArrayBuffer&&(J(e,SharedArrayBuffer)||e&&J(e.buffer,SharedArrayBuffer)))return d(e,t,n);if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');const r=e.valueOf&&e.valueOf();if(null!=r&&r!==e)return l.from(r,t,n);const o=function(e){if(l.isBuffer(e)){const t=0|p(e.length),n=s(t);return 0===n.length||e.copy(n,0,0,t),n}return void 0!==e.length?"number"!=typeof e.length||Q(e.length)?s(0):h(e):"Buffer"===e.type&&Array.isArray(e.data)?h(e.data):void 0}(e);if(o)return o;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return l.from(e[Symbol.toPrimitive]("string"),t,n);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function c(e){if("number"!=typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function f(e){return c(e),s(e<0?0:0|p(e))}function h(e){const t=e.length<0?0:0|p(e.length),n=s(t);for(let r=0;r=a)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a.toString(16)+" bytes");return 0|e}function m(e,t){if(l.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||J(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);const n=e.length,r=arguments.length>2&&!0===arguments[2];if(!r&&0===n)return 0;let o=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":return G(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return q(e).length;default:if(o)return r?-1:G(e).length;t=(""+t).toLowerCase(),o=!0}}function g(e,t,n){let r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return A(this,t,n);case"utf8":case"utf-8":return O(this,t,n);case"ascii":return C(this,t,n);case"latin1":case"binary":return T(this,t,n);case"base64":return E(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return I(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function y(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}function v(e,t,n,r,o){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),Q(n=+n)&&(n=o?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(o)return-1;n=e.length-1}else if(n<0){if(!o)return-1;n=0}if("string"==typeof t&&(t=l.from(t,r)),l.isBuffer(t))return 0===t.length?-1:b(e,t,n,r,o);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):b(e,[t],n,r,o);throw new TypeError("val must be string, number or Buffer")}function b(e,t,n,r,o){let i,a=1,s=e.length,l=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,s/=2,l/=2,n/=2}function u(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(o){let r=-1;for(i=n;is&&(n=s-l),i=n;i>=0;i--){let n=!0;for(let r=0;ro&&(r=o):r=o;const i=t.length;let a;for(r>i/2&&(r=i/2),a=0;a>8,o=n%256,i.push(o),i.push(r);return i}(t,e.length-n),e,n,r)}function E(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function O(e,t,n){n=Math.min(e.length,n);const r=[];let o=t;for(;o239?4:t>223?3:t>191?2:1;if(o+a<=n){let n,r,s,l;switch(a){case 1:t<128&&(i=t);break;case 2:n=e[o+1],128==(192&n)&&(l=(31&t)<<6|63&n,l>127&&(i=l));break;case 3:n=e[o+1],r=e[o+2],128==(192&n)&&128==(192&r)&&(l=(15&t)<<12|(63&n)<<6|63&r,l>2047&&(l<55296||l>57343)&&(i=l));break;case 4:n=e[o+1],r=e[o+2],s=e[o+3],128==(192&n)&&128==(192&r)&&128==(192&s)&&(l=(15&t)<<18|(63&n)<<12|(63&r)<<6|63&s,l>65535&&l<1114112&&(i=l))}}null===i?(i=65533,a=1):i>65535&&(i-=65536,r.push(i>>>10&1023|55296),i=56320|1023&i),r.push(i),o+=a}return function(e){const t=e.length;if(t<=P)return String.fromCharCode.apply(String,e);let n="",r=0;for(;rr.length?(l.isBuffer(t)||(t=l.from(t)),t.copy(r,o)):Uint8Array.prototype.set.call(r,t,o);else{if(!l.isBuffer(t))throw new TypeError('"list" argument must be an Array of Buffers');t.copy(r,o)}o+=t.length}return r},l.byteLength=m,l.prototype._isBuffer=!0,l.prototype.swap16=function(){const e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let t=0;tn&&(e+=" ... "),""},i&&(l.prototype[i]=l.prototype.inspect),l.prototype.compare=function(e,t,n,r,o){if(J(e,Uint8Array)&&(e=l.from(e,e.offset,e.byteLength)),!l.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===o&&(o=this.length),t<0||n>e.length||r<0||o>this.length)throw new RangeError("out of range index");if(r>=o&&t>=n)return 0;if(r>=o)return-1;if(t>=n)return 1;if(this===e)return 0;let i=(o>>>=0)-(r>>>=0),a=(n>>>=0)-(t>>>=0);const s=Math.min(i,a),u=this.slice(r,o),c=e.slice(t,n);for(let e=0;e>>=0,isFinite(n)?(n>>>=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}const o=this.length-t;if((void 0===n||n>o)&&(n=o),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");let i=!1;for(;;)switch(r){case"hex":return w(this,e,t,n);case"utf8":case"utf-8":return _(this,e,t,n);case"ascii":case"latin1":case"binary":return S(this,e,t,n);case"base64":return k(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return x(this,e,t,n);default:if(i)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),i=!0}},l.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};const P=4096;function C(e,t,n){let r="";n=Math.min(e.length,n);for(let o=t;or)&&(n=r);let o="";for(let r=t;rn)throw new RangeError("Trying to access beyond buffer length")}function R(e,t,n,r,o,i){if(!l.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||te.length)throw new RangeError("Index out of range")}function L(e,t,n,r,o){V(t,r,o,e,n,7);let i=Number(t&BigInt(4294967295));e[n++]=i,i>>=8,e[n++]=i,i>>=8,e[n++]=i,i>>=8,e[n++]=i;let a=Number(t>>BigInt(32)&BigInt(4294967295));return e[n++]=a,a>>=8,e[n++]=a,a>>=8,e[n++]=a,a>>=8,e[n++]=a,n}function N(e,t,n,r,o){V(t,r,o,e,n,7);let i=Number(t&BigInt(4294967295));e[n+7]=i,i>>=8,e[n+6]=i,i>>=8,e[n+5]=i,i>>=8,e[n+4]=i;let a=Number(t>>BigInt(32)&BigInt(4294967295));return e[n+3]=a,a>>=8,e[n+2]=a,a>>=8,e[n+1]=a,a>>=8,e[n]=a,n+8}function D(e,t,n,r,o,i){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function M(e,t,n,r,i){return t=+t,n>>>=0,i||D(e,0,n,4),o.write(e,t,n,r,23,4),n+4}function F(e,t,n,r,i){return t=+t,n>>>=0,i||D(e,0,n,8),o.write(e,t,n,r,52,8),n+8}l.prototype.slice=function(e,t){const n=this.length;(e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t>>=0,t>>>=0,n||j(e,t,this.length);let r=this[e],o=1,i=0;for(;++i>>=0,t>>>=0,n||j(e,t,this.length);let r=this[e+--t],o=1;for(;t>0&&(o*=256);)r+=this[e+--t]*o;return r},l.prototype.readUint8=l.prototype.readUInt8=function(e,t){return e>>>=0,t||j(e,1,this.length),this[e]},l.prototype.readUint16LE=l.prototype.readUInt16LE=function(e,t){return e>>>=0,t||j(e,2,this.length),this[e]|this[e+1]<<8},l.prototype.readUint16BE=l.prototype.readUInt16BE=function(e,t){return e>>>=0,t||j(e,2,this.length),this[e]<<8|this[e+1]},l.prototype.readUint32LE=l.prototype.readUInt32LE=function(e,t){return e>>>=0,t||j(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},l.prototype.readUint32BE=l.prototype.readUInt32BE=function(e,t){return e>>>=0,t||j(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},l.prototype.readBigUInt64LE=X((function(e){H(e>>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||$(e,this.length-8);const r=t+256*this[++e]+65536*this[++e]+this[++e]*2**24,o=this[++e]+256*this[++e]+65536*this[++e]+n*2**24;return BigInt(r)+(BigInt(o)<>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||$(e,this.length-8);const r=t*2**24+65536*this[++e]+256*this[++e]+this[++e],o=this[++e]*2**24+65536*this[++e]+256*this[++e]+n;return(BigInt(r)<>>=0,t>>>=0,n||j(e,t,this.length);let r=this[e],o=1,i=0;for(;++i=o&&(r-=Math.pow(2,8*t)),r},l.prototype.readIntBE=function(e,t,n){e>>>=0,t>>>=0,n||j(e,t,this.length);let r=t,o=1,i=this[e+--r];for(;r>0&&(o*=256);)i+=this[e+--r]*o;return o*=128,i>=o&&(i-=Math.pow(2,8*t)),i},l.prototype.readInt8=function(e,t){return e>>>=0,t||j(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},l.prototype.readInt16LE=function(e,t){e>>>=0,t||j(e,2,this.length);const n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},l.prototype.readInt16BE=function(e,t){e>>>=0,t||j(e,2,this.length);const n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},l.prototype.readInt32LE=function(e,t){return e>>>=0,t||j(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},l.prototype.readInt32BE=function(e,t){return e>>>=0,t||j(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},l.prototype.readBigInt64LE=X((function(e){H(e>>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||$(e,this.length-8);const r=this[e+4]+256*this[e+5]+65536*this[e+6]+(n<<24);return(BigInt(r)<>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||$(e,this.length-8);const r=(t<<24)+65536*this[++e]+256*this[++e]+this[++e];return(BigInt(r)<>>=0,t||j(e,4,this.length),o.read(this,e,!0,23,4)},l.prototype.readFloatBE=function(e,t){return e>>>=0,t||j(e,4,this.length),o.read(this,e,!1,23,4)},l.prototype.readDoubleLE=function(e,t){return e>>>=0,t||j(e,8,this.length),o.read(this,e,!0,52,8)},l.prototype.readDoubleBE=function(e,t){return e>>>=0,t||j(e,8,this.length),o.read(this,e,!1,52,8)},l.prototype.writeUintLE=l.prototype.writeUIntLE=function(e,t,n,r){e=+e,t>>>=0,n>>>=0,r||R(this,e,t,n,Math.pow(2,8*n)-1,0);let o=1,i=0;for(this[t]=255&e;++i>>=0,n>>>=0,r||R(this,e,t,n,Math.pow(2,8*n)-1,0);let o=n-1,i=1;for(this[t+o]=255&e;--o>=0&&(i*=256);)this[t+o]=e/i&255;return t+n},l.prototype.writeUint8=l.prototype.writeUInt8=function(e,t,n){return e=+e,t>>>=0,n||R(this,e,t,1,255,0),this[t]=255&e,t+1},l.prototype.writeUint16LE=l.prototype.writeUInt16LE=function(e,t,n){return e=+e,t>>>=0,n||R(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},l.prototype.writeUint16BE=l.prototype.writeUInt16BE=function(e,t,n){return e=+e,t>>>=0,n||R(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},l.prototype.writeUint32LE=l.prototype.writeUInt32LE=function(e,t,n){return e=+e,t>>>=0,n||R(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},l.prototype.writeUint32BE=l.prototype.writeUInt32BE=function(e,t,n){return e=+e,t>>>=0,n||R(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},l.prototype.writeBigUInt64LE=X((function(e,t=0){return L(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),l.prototype.writeBigUInt64BE=X((function(e,t=0){return N(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),l.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t>>>=0,!r){const r=Math.pow(2,8*n-1);R(this,e,t,n,r-1,-r)}let o=0,i=1,a=0;for(this[t]=255&e;++o>>=0,!r){const r=Math.pow(2,8*n-1);R(this,e,t,n,r-1,-r)}let o=n-1,i=1,a=0;for(this[t+o]=255&e;--o>=0&&(i*=256);)e<0&&0===a&&0!==this[t+o+1]&&(a=1),this[t+o]=(e/i|0)-a&255;return t+n},l.prototype.writeInt8=function(e,t,n){return e=+e,t>>>=0,n||R(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},l.prototype.writeInt16LE=function(e,t,n){return e=+e,t>>>=0,n||R(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},l.prototype.writeInt16BE=function(e,t,n){return e=+e,t>>>=0,n||R(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},l.prototype.writeInt32LE=function(e,t,n){return e=+e,t>>>=0,n||R(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},l.prototype.writeInt32BE=function(e,t,n){return e=+e,t>>>=0,n||R(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},l.prototype.writeBigInt64LE=X((function(e,t=0){return L(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),l.prototype.writeBigInt64BE=X((function(e,t=0){return N(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),l.prototype.writeFloatLE=function(e,t,n){return M(this,e,t,!0,n)},l.prototype.writeFloatBE=function(e,t,n){return M(this,e,t,!1,n)},l.prototype.writeDoubleLE=function(e,t,n){return F(this,e,t,!0,n)},l.prototype.writeDoubleBE=function(e,t,n){return F(this,e,t,!1,n)},l.prototype.copy=function(e,t,n,r){if(!l.isBuffer(e))throw new TypeError("argument should be a Buffer");if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(o=t;o=r+4;n-=3)t=`_${e.slice(n-3,n)}${t}`;return`${e.slice(0,n)}${t}`}function V(e,t,n,r,o,i){if(e>n||e3?0===t||t===BigInt(0)?`>= 0${r} and < 2${r} ** ${8*(i+1)}${r}`:`>= -(2${r} ** ${8*(i+1)-1}${r}) and < 2 ** ${8*(i+1)-1}${r}`:`>= ${t}${r} and <= ${n}${r}`,new B.ERR_OUT_OF_RANGE("value",o,e)}!function(e,t,n){H(t,"offset"),void 0!==e[t]&&void 0!==e[t+n]||$(t,e.length-(n+1))}(r,o,i)}function H(e,t){if("number"!=typeof e)throw new B.ERR_INVALID_ARG_TYPE(t,"number",e)}function $(e,t,n){if(Math.floor(e)!==e)throw H(e,n),new B.ERR_OUT_OF_RANGE(n||"offset","an integer",e);if(t<0)throw new B.ERR_BUFFER_OUT_OF_BOUNDS;throw new B.ERR_OUT_OF_RANGE(n||"offset",`>= ${n?1:0} and <= ${t}`,e)}U("ERR_BUFFER_OUT_OF_BOUNDS",(function(e){return e?`${e} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"}),RangeError),U("ERR_INVALID_ARG_TYPE",(function(e,t){return`The "${e}" argument must be of type number. Received type ${typeof t}`}),TypeError),U("ERR_OUT_OF_RANGE",(function(e,t,n){let r=`The value of "${e}" is out of range.`,o=n;return Number.isInteger(n)&&Math.abs(n)>2**32?o=z(String(n)):"bigint"==typeof n&&(o=String(n),(n>BigInt(2)**BigInt(32)||n<-(BigInt(2)**BigInt(32)))&&(o=z(o)),o+="n"),r+=` It must be ${t}. Received ${o}`,r}),RangeError);const W=/[^+/0-9A-Za-z-_]/g;function G(e,t){let n;t=t||1/0;const r=e.length;let o=null;const i=[];for(let a=0;a55295&&n<57344){if(!o){if(n>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&i.push(239,191,189);continue}o=n;continue}if(n<56320){(t-=3)>-1&&i.push(239,191,189),o=n;continue}n=65536+(o-55296<<10|n-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,n<128){if((t-=1)<0)break;i.push(n)}else if(n<2048){if((t-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function q(e){return r.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(W,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function K(e,t,n,r){let o;for(o=0;o=t.length||o>=e.length);++o)t[o+n]=e[o];return o}function J(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function Q(e){return e!=e}const Y=function(){const e="0123456789abcdef",t=new Array(256);for(let n=0;n<16;++n){const r=16*n;for(let o=0;o<16;++o)t[r+o]=e[n]+e[o]}return t}();function X(e){return"undefined"==typeof BigInt?Z:e}function Z(){throw new Error("BigInt not supported")}},8493:(e,t,n)=>{"use strict";var r=n(6540),o="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},i=r.useState,a=r.useEffect,s=r.useLayoutEffect,l=r.useDebugValue;function u(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!o(e,n)}catch(e){return!0}}var c="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var n=t(),r=i({inst:{value:n,getSnapshot:t}}),o=r[0].inst,c=r[1];return s((function(){o.value=n,o.getSnapshot=t,u(o)&&c({inst:o})}),[e,n,t]),a((function(){return u(o)&&c({inst:o}),e((function(){u(o)&&c({inst:o})}))}),[e]),l(n),n};t.useSyncExternalStore=void 0!==r.useSyncExternalStore?r.useSyncExternalStore:c},8636:(e,t,n)=>{"use strict";var r=n(920),o=n(7720),i=n(4765),a=Object.prototype.hasOwnProperty,s={brackets:function(e){return e+"[]"},comma:"comma",indices:function(e,t){return e+"["+t+"]"},repeat:function(e){return e}},l=Array.isArray,u=Array.prototype.push,c=function(e,t){u.apply(e,l(t)?t:[t])},f=Date.prototype.toISOString,h=i.default,d={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,commaRoundTrip:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:o.encode,encodeValuesOnly:!1,filter:void 0,format:h,formatter:i.formatters[h],indices:!1,serializeDate:function(e){return f.call(e)},skipNulls:!1,strictNullHandling:!1},p={},m=function e(t,n,i,a,s,u,f,h,m,g,y,v,b,w,_,S,k,x){for(var E,O=t,P=x,C=0,T=!1;void 0!==(P=P.get(p))&&!T;){var A=P.get(t);if(C+=1,void 0!==A){if(A===C)throw new RangeError("Cyclic object value");T=!0}void 0===P.get(p)&&(C=0)}if("function"==typeof g?O=g(n,O):O instanceof Date?O=b(O):"comma"===i&&l(O)&&(O=o.maybeMap(O,(function(e){return e instanceof Date?b(e):e}))),null===O){if(u)return m&&!S?m(n,d.encoder,k,"key",w):n;O=""}if("string"==typeof(E=O)||"number"==typeof E||"boolean"==typeof E||"symbol"==typeof E||"bigint"==typeof E||o.isBuffer(O))return m?[_(S?n:m(n,d.encoder,k,"key",w))+"="+_(m(O,d.encoder,k,"value",w))]:[_(n)+"="+_(String(O))];var I,j=[];if(void 0===O)return j;if("comma"===i&&l(O))S&&m&&(O=o.maybeMap(O,m)),I=[{value:O.length>0?O.join(",")||null:void 0}];else if(l(g))I=g;else{var R=Object.keys(O);I=y?R.sort(y):R}var L=h?String(n).replace(/\./g,"%2E"):String(n),N=a&&l(O)&&1===O.length?L+"[]":L;if(s&&l(O)&&0===O.length)return N+"[]";for(var D=0;D0?_+w:""}},8648:e=>{"use strict";e.exports="undefined"!=typeof Reflect&&Reflect.getPrototypeOf||null},8859:(e,t,n)=>{var r="function"==typeof Map&&Map.prototype,o=Object.getOwnPropertyDescriptor&&r?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,i=r&&o&&"function"==typeof o.get?o.get:null,a=r&&Map.prototype.forEach,s="function"==typeof Set&&Set.prototype,l=Object.getOwnPropertyDescriptor&&s?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,u=s&&l&&"function"==typeof l.get?l.get:null,c=s&&Set.prototype.forEach,f="function"==typeof WeakMap&&WeakMap.prototype?WeakMap.prototype.has:null,h="function"==typeof WeakSet&&WeakSet.prototype?WeakSet.prototype.has:null,d="function"==typeof WeakRef&&WeakRef.prototype?WeakRef.prototype.deref:null,p=Boolean.prototype.valueOf,m=Object.prototype.toString,g=Function.prototype.toString,y=String.prototype.match,v=String.prototype.slice,b=String.prototype.replace,w=String.prototype.toUpperCase,_=String.prototype.toLowerCase,S=RegExp.prototype.test,k=Array.prototype.concat,x=Array.prototype.join,E=Array.prototype.slice,O=Math.floor,P="function"==typeof BigInt?BigInt.prototype.valueOf:null,C=Object.getOwnPropertySymbols,T="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?Symbol.prototype.toString:null,A="function"==typeof Symbol&&"object"==typeof Symbol.iterator,I="function"==typeof Symbol&&Symbol.toStringTag&&(Symbol.toStringTag,1)?Symbol.toStringTag:null,j=Object.prototype.propertyIsEnumerable,R=("function"==typeof Reflect?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(e){return e.__proto__}:null);function L(e,t){if(e===1/0||e===-1/0||e!=e||e&&e>-1e3&&e<1e3||S.call(/e/,t))return t;var n=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if("number"==typeof e){var r=e<0?-O(-e):O(e);if(r!==e){var o=String(r),i=v.call(t,o.length+1);return b.call(o,n,"$&_")+"."+b.call(b.call(i,/([0-9]{3})/g,"$&_"),/_$/,"")}}return b.call(t,n,"$&_")}var N=n(2634),D=N.custom,M=W(D)?D:null,F={__proto__:null,double:'"',single:"'"},B={__proto__:null,double:/(["\\])/g,single:/(['\\])/g};function U(e,t,n){var r=n.quoteStyle||t,o=F[r];return o+e+o}function z(e){return b.call(String(e),/"/g,""")}function V(e){return!I||!("object"==typeof e&&(I in e||void 0!==e[I]))}function H(e){return"[object Array]"===K(e)&&V(e)}function $(e){return"[object RegExp]"===K(e)&&V(e)}function W(e){if(A)return e&&"object"==typeof e&&e instanceof Symbol;if("symbol"==typeof e)return!0;if(!e||"object"!=typeof e||!T)return!1;try{return T.call(e),!0}catch(e){}return!1}e.exports=function e(t,r,o,s){var l=r||{};if(q(l,"quoteStyle")&&!q(F,l.quoteStyle))throw new TypeError('option "quoteStyle" must be "single" or "double"');if(q(l,"maxStringLength")&&("number"==typeof l.maxStringLength?l.maxStringLength<0&&l.maxStringLength!==1/0:null!==l.maxStringLength))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var m=!q(l,"customInspect")||l.customInspect;if("boolean"!=typeof m&&"symbol"!==m)throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(q(l,"indent")&&null!==l.indent&&"\t"!==l.indent&&!(parseInt(l.indent,10)===l.indent&&l.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(q(l,"numericSeparator")&&"boolean"!=typeof l.numericSeparator)throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var w=l.numericSeparator;if(void 0===t)return"undefined";if(null===t)return"null";if("boolean"==typeof t)return t?"true":"false";if("string"==typeof t)return Q(t,l);if("number"==typeof t){if(0===t)return 1/0/t>0?"0":"-0";var S=String(t);return w?L(t,S):S}if("bigint"==typeof t){var O=String(t)+"n";return w?L(t,O):O}var C=void 0===l.depth?5:l.depth;if(void 0===o&&(o=0),o>=C&&C>0&&"object"==typeof t)return H(t)?"[Array]":"[Object]";var D,B=function(e,t){var n;if("\t"===e.indent)n="\t";else{if(!("number"==typeof e.indent&&e.indent>0))return null;n=x.call(Array(e.indent+1)," ")}return{base:n,prev:x.call(Array(t+1),n)}}(l,o);if(void 0===s)s=[];else if(J(s,t)>=0)return"[Circular]";function G(t,n,r){if(n&&(s=E.call(s)).push(n),r){var i={depth:l.depth};return q(l,"quoteStyle")&&(i.quoteStyle=l.quoteStyle),e(t,i,o+1,s)}return e(t,l,o+1,s)}if("function"==typeof t&&!$(t)){var Y=function(e){if(e.name)return e.name;var t=y.call(g.call(e),/^function\s*([\w$]+)/);return t?t[1]:null}(t),re=ne(t,G);return"[Function"+(Y?": "+Y:" (anonymous)")+"]"+(re.length>0?" { "+x.call(re,", ")+" }":"")}if(W(t)){var oe=A?b.call(String(t),/^(Symbol\(.*\))_[^)]*$/,"$1"):T.call(t);return"object"!=typeof t||A?oe:X(oe)}if((D=t)&&"object"==typeof D&&("undefined"!=typeof HTMLElement&&D instanceof HTMLElement||"string"==typeof D.nodeName&&"function"==typeof D.getAttribute)){for(var ie="<"+_.call(String(t.nodeName)),ae=t.attributes||[],se=0;se"}if(H(t)){if(0===t.length)return"[]";var le=ne(t,G);return B&&!function(e){for(var t=0;t=0)return!1;return!0}(le)?"["+te(le,B)+"]":"[ "+x.call(le,", ")+" ]"}if(function(e){return"[object Error]"===K(e)&&V(e)}(t)){var ue=ne(t,G);return"cause"in Error.prototype||!("cause"in t)||j.call(t,"cause")?0===ue.length?"["+String(t)+"]":"{ ["+String(t)+"] "+x.call(ue,", ")+" }":"{ ["+String(t)+"] "+x.call(k.call("[cause]: "+G(t.cause),ue),", ")+" }"}if("object"==typeof t&&m){if(M&&"function"==typeof t[M]&&N)return N(t,{depth:C-o});if("symbol"!==m&&"function"==typeof t.inspect)return t.inspect()}if(function(e){if(!i||!e||"object"!=typeof e)return!1;try{i.call(e);try{u.call(e)}catch(e){return!0}return e instanceof Map}catch(e){}return!1}(t)){var ce=[];return a&&a.call(t,(function(e,n){ce.push(G(n,t,!0)+" => "+G(e,t))})),ee("Map",i.call(t),ce,B)}if(function(e){if(!u||!e||"object"!=typeof e)return!1;try{u.call(e);try{i.call(e)}catch(e){return!0}return e instanceof Set}catch(e){}return!1}(t)){var fe=[];return c&&c.call(t,(function(e){fe.push(G(e,t))})),ee("Set",u.call(t),fe,B)}if(function(e){if(!f||!e||"object"!=typeof e)return!1;try{f.call(e,f);try{h.call(e,h)}catch(e){return!0}return e instanceof WeakMap}catch(e){}return!1}(t))return Z("WeakMap");if(function(e){if(!h||!e||"object"!=typeof e)return!1;try{h.call(e,h);try{f.call(e,f)}catch(e){return!0}return e instanceof WeakSet}catch(e){}return!1}(t))return Z("WeakSet");if(function(e){if(!d||!e||"object"!=typeof e)return!1;try{return d.call(e),!0}catch(e){}return!1}(t))return Z("WeakRef");if(function(e){return"[object Number]"===K(e)&&V(e)}(t))return X(G(Number(t)));if(function(e){if(!e||"object"!=typeof e||!P)return!1;try{return P.call(e),!0}catch(e){}return!1}(t))return X(G(P.call(t)));if(function(e){return"[object Boolean]"===K(e)&&V(e)}(t))return X(p.call(t));if(function(e){return"[object String]"===K(e)&&V(e)}(t))return X(G(String(t)));if("undefined"!=typeof window&&t===window)return"{ [object Window] }";if("undefined"!=typeof globalThis&&t===globalThis||void 0!==n.g&&t===n.g)return"{ [object globalThis] }";if(!function(e){return"[object Date]"===K(e)&&V(e)}(t)&&!$(t)){var he=ne(t,G),de=R?R(t)===Object.prototype:t instanceof Object||t.constructor===Object,pe=t instanceof Object?"":"null prototype",me=!de&&I&&Object(t)===t&&I in t?v.call(K(t),8,-1):pe?"Object":"",ge=(de||"function"!=typeof t.constructor?"":t.constructor.name?t.constructor.name+" ":"")+(me||pe?"["+x.call(k.call([],me||[],pe||[]),": ")+"] ":"");return 0===he.length?ge+"{}":B?ge+"{"+te(he,B)+"}":ge+"{ "+x.call(he,", ")+" }"}return String(t)};var G=Object.prototype.hasOwnProperty||function(e){return e in this};function q(e,t){return G.call(e,t)}function K(e){return m.call(e)}function J(e,t){if(e.indexOf)return e.indexOf(t);for(var n=0,r=e.length;nt.maxStringLength){var n=e.length-t.maxStringLength,r="... "+n+" more character"+(n>1?"s":"");return Q(v.call(e,0,t.maxStringLength),t)+r}var o=B[t.quoteStyle||"single"];return o.lastIndex=0,U(b.call(b.call(e,o,"\\$1"),/[\x00-\x1f]/g,Y),"single",t)}function Y(e){var t=e.charCodeAt(0),n={8:"b",9:"t",10:"n",12:"f",13:"r"}[t];return n?"\\"+n:"\\x"+(t<16?"0":"")+w.call(t.toString(16))}function X(e){return"Object("+e+")"}function Z(e){return e+" { ? }"}function ee(e,t,n,r){return e+" ("+t+") {"+(r?te(n,r):x.call(n,", "))+"}"}function te(e,t){if(0===e.length)return"";var n="\n"+t.prev+t.base;return n+x.call(e,","+n)+"\n"+t.prev}function ne(e,t){var n=H(e),r=[];if(n){r.length=e.length;for(var o=0;o{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.camelCase=void 0;var n=/^--[a-zA-Z0-9_-]+$/,r=/-([a-z])/g,o=/^[^-]+$/,i=/^-(webkit|moz|ms|o|khtml)-/,a=/^-(ms)-/,s=function(e,t){return t.toUpperCase()},l=function(e,t){return"".concat(t,"-")};t.camelCase=function(e,t){return void 0===t&&(t={}),function(e){return!e||o.test(e)||n.test(e)}(e)?e:(e=e.toLowerCase(),(e=t.reactCompat?e.replace(a,l):e.replace(i,l)).replace(r,s))}},8968:e=>{"use strict";e.exports=Math.floor},9290:e=>{"use strict";e.exports=RangeError},9353:e=>{"use strict";var t=Object.prototype.toString,n=Math.max,r=function(e,t){for(var n=[],r=0;r{"use strict";e.exports=Error},9538:e=>{"use strict";e.exports=ReferenceError},9612:e=>{"use strict";e.exports=Object},9675:e=>{"use strict";e.exports=TypeError},9698:(e,t)=>{"use strict";var n=Symbol.for("react.transitional.element"),r=Symbol.for("react.fragment");function o(e,t,r){var o=null;if(void 0!==r&&(o=""+r),void 0!==t.key&&(o=""+t.key),"key"in t)for(var i in r={},t)"key"!==i&&(r[i]=t[i]);else r=t;return t=r.ref,{$$typeof:n,type:e,key:o,ref:void 0!==t?t:null,props:r}}t.Fragment=r,t.jsx=o,t.jsxs=o},9788:e=>{var t=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,n=/\n/g,r=/^\s*/,o=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,i=/^:\s*/,a=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,s=/^[;\s]*/,l=/^\s+|\s+$/g,u="";function c(e){return e?e.replace(l,u):u}e.exports=function(e,l){if("string"!=typeof e)throw new TypeError("First argument must be a string");if(!e)return[];l=l||{};var f=1,h=1;function d(e){var t=e.match(n);t&&(f+=t.length);var r=e.lastIndexOf("\n");h=~r?e.length-r:h+e.length}function p(){var e={line:f,column:h};return function(t){return t.position=new m(e),b(),t}}function m(e){this.start=e,this.end={line:f,column:h},this.source=l.source}m.prototype.content=e;var g=[];function y(t){var n=new Error(l.source+":"+f+":"+h+": "+t);if(n.reason=t,n.filename=l.source,n.line=f,n.column=h,n.source=e,!l.silent)throw n;g.push(n)}function v(t){var n=t.exec(e);if(n){var r=n[0];return d(r),e=e.slice(r.length),n}}function b(){v(r)}function w(e){var t;for(e=e||[];t=_();)!1!==t&&e.push(t);return e}function _(){var t=p();if("/"==e.charAt(0)&&"*"==e.charAt(1)){for(var n=2;u!=e.charAt(n)&&("*"!=e.charAt(n)||"/"!=e.charAt(n+1));)++n;if(n+=2,u===e.charAt(n-1))return y("End of comment missing");var r=e.slice(2,n-2);return h+=2,d(r),e=e.slice(n),h+=2,t({type:"comment",comment:r})}}function S(){var e=p(),n=v(o);if(n){if(_(),!v(i))return y("property missing ':'");var r=v(a),l=e({type:"declaration",property:c(n[0].replace(t,u)),value:r?c(r[0].replace(t,u)):u});return v(s),l}}return b(),function(){var e,t=[];for(w(t);e=S();)!1!==e&&(t.push(e),w(t));return t}()}},9869:(e,t)=>{"use strict";var n=Symbol.for("react.transitional.element"),r=Symbol.for("react.portal"),o=Symbol.for("react.fragment"),i=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),s=Symbol.for("react.consumer"),l=Symbol.for("react.context"),u=Symbol.for("react.forward_ref"),c=Symbol.for("react.suspense"),f=Symbol.for("react.memo"),h=Symbol.for("react.lazy"),d=Symbol.iterator,p={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},m=Object.assign,g={};function y(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||p}function v(){}function b(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||p}y.prototype.isReactComponent={},y.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},y.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},v.prototype=y.prototype;var w=b.prototype=new v;w.constructor=b,m(w,y.prototype),w.isPureReactComponent=!0;var _=Array.isArray,S={H:null,A:null,T:null,S:null},k=Object.prototype.hasOwnProperty;function x(e,t,r,o,i,a){return r=a.ref,{$$typeof:n,type:e,key:t,ref:void 0!==r?r:null,props:a}}function E(e){return"object"==typeof e&&null!==e&&e.$$typeof===n}var O=/\/+/g;function P(e,t){return"object"==typeof e&&null!==e&&null!=e.key?(n=""+e.key,r={"=":"=0",":":"=2"},"$"+n.replace(/[=:]/g,(function(e){return r[e]}))):t.toString(36);var n,r}function C(){}function T(e,t,o,i,a){var s=typeof e;"undefined"!==s&&"boolean"!==s||(e=null);var l,u,c=!1;if(null===e)c=!0;else switch(s){case"bigint":case"string":case"number":c=!0;break;case"object":switch(e.$$typeof){case n:case r:c=!0;break;case h:return T((c=e._init)(e._payload),t,o,i,a)}}if(c)return a=a(e),c=""===i?"."+P(e,0):i,_(a)?(o="",null!=c&&(o=c.replace(O,"$&/")+"/"),T(a,t,o,"",(function(e){return e}))):null!=a&&(E(a)&&(l=a,u=o+(null==a.key||e&&e.key===a.key?"":(""+a.key).replace(O,"$&/")+"/")+c,a=x(l.type,u,void 0,0,0,l.props)),t.push(a)),1;c=0;var f,p=""===i?".":i+":";if(_(e))for(var m=0;m{"use strict";e.exports=n(8493)},9957:(e,t,n)=>{"use strict";var r=Function.prototype.call,o=Object.prototype.hasOwnProperty,i=n(6743);e.exports=i.call(r,o)},9982:(e,t,n)=>{"use strict";e.exports=n(4477)}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var i=t[r]={exports:{}};return e[r].call(i.exports,i,i.exports,n),i.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;n.g.importScripts&&(e=n.g.location+"");var t=n.g.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var r=t.getElementsByTagName("script");if(r.length)for(var o=r.length-1;o>-1&&(!e||!/^http(s?):/.test(e));)e=r[o--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),n.p=e})(),(()=>{"use strict";var e={};n.r(e),n.d(e,{hasBrowserEnv:()=>Zl,hasStandardBrowserEnv:()=>tu,hasStandardBrowserWebWorkerEnv:()=>nu,navigator:()=>eu,origin:()=>ru});var t={};n.r(t),n.d(t,{boolean:()=>iw,booleanish:()=>aw,commaOrSpaceSeparated:()=>fw,commaSeparated:()=>cw,number:()=>lw,overloadedBoolean:()=>sw,spaceSeparated:()=>uw});var r={};n.r(r),n.d(r,{attentionMarkers:()=>zS,contentInitial:()=>NS,disable:()=>VS,document:()=>LS,flow:()=>MS,flowInitial:()=>DS,insideSpan:()=>US,string:()=>FS,text:()=>BS});var o=n(6942),i=n.n(o),a=n(6540);const s={text:"Ka5fPsYxacZl4ePmhDIN","text_color-accent":"KNMMibJCg2xw12AVAk0J","text_color-secondary":"K8SFZOvp5hQ3knn4woW6","text_color-primary":"W8k76chJqQ9tKDqxqzGv","text_view-p-12":"mtl4rjHSTNU_VAkSpYc3","text_view-p-14":"Jh9KOHISf4desSIf5_Kz","text_view-p-16":"eYYEaSEUuxnNQPVOR8Yf","text_view-p-18":"erRarltR19mAqYa_fyFe","text_view-p-20":"fsqRJuwm8uLKpLZxwvDN","text_view-title":"rRFfPQmj4w2rdU6iHBvI","text_view-button":"HiZsCnmN9E8vYDC9Ni_g","text_font-normal":"g5c6FaQqBxaJNzQi_c_o","text_font-medium":"GaJhEbOPSW6F3FV6S8lS","text_font-bold":"JQ_U5uvDRaSLLC4FeVmn"};var l=n(4848);function u(e){return u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u(e)}var c=["className","view","tag","weight","color","maxLines","children"];function f(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function h(e){for(var t=1;t1?t-1:0),r=1;re.length)&&(t=e.length);for(var n=0,r=Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function Oe(){return Oe=Object.assign?Object.assign.bind():function(e){for(var t=1;tr&&(r=s.dependenciesState_)}for(n.length=o,e.newObserving_=null,i=t.length;i--;){var l=t[i];0===l.diffValue&&rn(l,e),l.diffValue=0}for(;o--;){var u=n[o];1===u.diffValue&&(u.diffValue=0,f=e,(c=u).observers_.add(f),c.lowestObserverState_>f.dependenciesState_&&(c.lowestObserverState_=f.dependenciesState_))}var c,f;r!==Bt.UP_TO_DATE_&&(e.dependenciesState_=r,e.onBecomeStale_())}(e),Yt(r),o}function Gt(e){var t=e.observing_;e.observing_=[];for(var n=t.length;n--;)rn(t[n],e);e.dependenciesState_=Bt.NOT_TRACKING_}function qt(e){var t=Kt();try{return e()}finally{Jt(t)}}function Kt(){var e=nn.trackingDerivation;return nn.trackingDerivation=null,e}function Jt(e){nn.trackingDerivation=e}function Qt(e){var t=nn.allowStateReads;return nn.allowStateReads=e,t}function Yt(e){nn.allowStateReads=e}function Xt(e){if(e.dependenciesState_!==Bt.UP_TO_DATE_){e.dependenciesState_=Bt.UP_TO_DATE_;for(var t=e.observing_,n=t.length;n--;)t[n].lowestObserverState_=Bt.UP_TO_DATE_}}var Zt=function(){this.version=6,this.UNCHANGED={},this.trackingDerivation=null,this.trackingContext=null,this.runId=0,this.mobxGuid=0,this.inBatch=0,this.pendingUnobservations=[],this.pendingReactions=[],this.isRunningReactions=!1,this.allowStateChanges=!1,this.allowStateReads=!0,this.enforceActions=!0,this.spyListeners=[],this.globalReactionErrorHandlers=[],this.computedRequiresReaction=!1,this.reactionRequiresObservable=!1,this.observableRequiresReaction=!1,this.disableErrorBoundaries=!1,this.suppressReactionErrors=!1,this.useProxies=!0,this.verifyProxies=!1,this.safeDescriptors=!0},en=!0,tn=!1,nn=function(){var e=q();return e.__mobxInstanceCount>0&&!e.__mobxGlobals&&(en=!1),e.__mobxGlobals&&e.__mobxGlobals.version!==(new Zt).version&&(en=!1),en?e.__mobxGlobals?(e.__mobxInstanceCount+=1,e.__mobxGlobals.UNCHANGED||(e.__mobxGlobals.UNCHANGED={}),e.__mobxGlobals):(e.__mobxInstanceCount=1,e.__mobxGlobals=new Zt):(setTimeout((function(){tn||W(35)}),1),new Zt)}();function rn(e,t){e.observers_.delete(t),0===e.observers_.size&&on(e)}function on(e){!1===e.isPendingUnobservation&&(e.isPendingUnobservation=!0,nn.pendingUnobservations.push(e))}function an(){nn.inBatch++}function sn(){if(0==--nn.inBatch){dn();for(var e=nn.pendingUnobservations,t=0;t0&&on(e),!1)}function un(e){e.lowestObserverState_!==Bt.STALE_&&(e.lowestObserverState_=Bt.STALE_,e.observers_.forEach((function(e){e.dependenciesState_===Bt.UP_TO_DATE_&&e.onBecomeStale_(),e.dependenciesState_=Bt.STALE_})))}var cn=function(){function e(e,t,n,r){void 0===e&&(e="Reaction"),this.name_=void 0,this.onInvalidate_=void 0,this.errorHandler_=void 0,this.requiresObservable_=void 0,this.observing_=[],this.newObserving_=[],this.dependenciesState_=Bt.NOT_TRACKING_,this.runId_=0,this.unboundDepsCount_=0,this.flags_=0,this.isTracing_=Ut.NONE,this.name_=e,this.onInvalidate_=t,this.errorHandler_=n,this.requiresObservable_=r}var t=e.prototype;return t.onBecomeStale_=function(){this.schedule_()},t.schedule_=function(){this.isScheduled||(this.isScheduled=!0,nn.pendingReactions.push(this),dn())},t.runReaction_=function(){if(!this.isDisposed){an(),this.isScheduled=!1;var e=nn.trackingContext;if(nn.trackingContext=this,$t(this)){this.isTrackPending=!0;try{this.onInvalidate_()}catch(e){this.reportExceptionInDerivation_(e)}}nn.trackingContext=e,sn()}},t.track=function(e){if(!this.isDisposed){an(),this.isRunning=!0;var t=nn.trackingContext;nn.trackingContext=this;var n=Wt(this,e,void 0);nn.trackingContext=t,this.isRunning=!1,this.isTrackPending=!1,this.isDisposed&&Gt(this),Ht(n)&&this.reportExceptionInDerivation_(n.cause),sn()}},t.reportExceptionInDerivation_=function(e){var t=this;if(this.errorHandler_)this.errorHandler_(e,this);else{if(nn.disableErrorBoundaries)throw e;var n="[mobx] uncaught error in '"+this+"'";nn.suppressReactionErrors||console.error(n,e),nn.globalReactionErrorHandlers.forEach((function(n){return n(e,t)}))}},t.dispose=function(){this.isDisposed||(this.isDisposed=!0,this.isRunning||(an(),Gt(this),sn()))},t.getDisposer_=function(e){var t=this,n=function n(){t.dispose(),null==e||null==e.removeEventListener||e.removeEventListener("abort",n)};return null==e||null==e.addEventListener||e.addEventListener("abort",n),n[Le]=this,n},t.toString=function(){return"Reaction["+this.name_+"]"},t.trace=function(e){void 0===e&&(e=!1)},xe(e,[{key:"isDisposed",get:function(){return we(this.flags_,e.isDisposedMask_)},set:function(t){this.flags_=_e(this.flags_,e.isDisposedMask_,t)}},{key:"isScheduled",get:function(){return we(this.flags_,e.isScheduledMask_)},set:function(t){this.flags_=_e(this.flags_,e.isScheduledMask_,t)}},{key:"isTrackPending",get:function(){return we(this.flags_,e.isTrackPendingMask_)},set:function(t){this.flags_=_e(this.flags_,e.isTrackPendingMask_,t)}},{key:"isRunning",get:function(){return we(this.flags_,e.isRunningMask_)},set:function(t){this.flags_=_e(this.flags_,e.isRunningMask_,t)}},{key:"diffValue",get:function(){return we(this.flags_,e.diffValueMask_)?1:0},set:function(t){this.flags_=_e(this.flags_,e.diffValueMask_,1===t)}}])}();cn.isDisposedMask_=1,cn.isScheduledMask_=2,cn.isTrackPendingMask_=4,cn.isRunningMask_=8,cn.diffValueMask_=16;var fn=100,hn=function(e){return e()};function dn(){nn.inBatch>0||nn.isRunningReactions||hn(pn)}function pn(){nn.isRunningReactions=!0;for(var e=nn.pendingReactions,t=0;e.length>0;){++t===fn&&(console.error("[mobx] cycle in reaction: "+e[0]),e.splice(0));for(var n=e.splice(0),r=0,o=n.length;r",t,e):ie(n)?jt(t,n,e):Re(n)?(e?wn:vn).decorate_20223_(t,n):ae(n)?je(t,n,e?wn:vn):ae(t)?Ie(Ve(e?yn:gn,{name:t,autoAction:e})):void 0}}var kn=Sn(!1);Object.assign(kn,vn);var xn=Sn(!0);function En(e){return Rt(e.name,!1,e,this,void 0)}function On(e){return ie(e)&&!0===e.isMobxAction}function Pn(e,t){var n,r,o,i;void 0===t&&(t=Z);var a,s=null!=(n=null==(r=t)?void 0:r.name)?n:"Autorun";if(t.scheduler||t.delay){var l=Tn(t),u=!1;a=new cn(s,(function(){u||(u=!0,l((function(){u=!1,a.isDisposed||a.track(c)})))}),t.onError,t.requiresObservable)}else a=new cn(s,(function(){this.track(c)}),t.onError,t.requiresObservable);function c(){e(a)}return null!=(o=t)&&null!=(o=o.signal)&&o.aborted||a.schedule_(),a.getDisposer_(null==(i=t)?void 0:i.signal)}Object.assign(xn,wn),kn.bound=Ie(bn),xn.bound=Ie(_n);var Cn=function(e){return e()};function Tn(e){return e.scheduler?e.scheduler:e.delay?function(t){return setTimeout(t,e.delay)}:Cn}function An(e,t,n){var r,o,i;void 0===n&&(n=Z);var a,s,l,u=null!=(r=n.name)?r:"Reaction",c=kn(u,n.onError?(a=n.onError,s=t,function(){try{return s.apply(this,arguments)}catch(e){a.call(this,e)}}):t),f=!n.scheduler&&!n.delay,h=Tn(n),d=!0,p=!1,m=n.compareStructural?Fe.structural:n.equals||Fe.default,g=new cn(u,(function(){d||f?y():p||(p=!0,h(y))}),n.onError,n.requiresObservable);function y(){if(p=!1,!g.isDisposed){var t=!1,r=l;g.track((function(){var n=function(e,t){var n=Lt(e);try{return t()}finally{Nt(n)}}(!1,(function(){return e(g)}));t=d||!m(l,n),l=n})),(d&&n.fireImmediately||!d&&t)&&c(l,r,g),d=!1}}return null!=(o=n)&&null!=(o=o.signal)&&o.aborted||g.schedule_(),g.getDisposer_(null==(i=n)?void 0:i.signal)}var In="onBO",jn="onBUO";function Rn(e,t,n){return Ln(jn,e,t,n)}function Ln(e,t,n,r){var o="function"==typeof r?Jr(t,n):Jr(t),i=ie(r)?r:n,a=e+"L";return o[a]?o[a].add(i):o[a]=new Set([i]),function(){var e=o[a];e&&(e.delete(i),0===e.size&&delete o[a])}}var Nn="always";function Dn(e){!0===e.isolateGlobalState&&function(){if((nn.pendingReactions.length||nn.inBatch||nn.isRunningReactions)&&W(36),tn=!0,en){var e=q();0==--e.__mobxInstanceCount&&(e.__mobxGlobals=void 0),nn=new Zt}}();var t,n,r=e.useProxies,o=e.enforceActions;if(void 0!==r&&(nn.useProxies=r===Nn||"never"!==r&&"undefined"!=typeof Proxy),"ifavailable"===r&&(nn.verifyProxies=!0),void 0!==o){var i=o===Nn?Nn:"observed"===o;nn.enforceActions=i,nn.allowStateChanges=!0!==i&&i!==Nn}["computedRequiresReaction","reactionRequiresObservable","observableRequiresReaction","disableErrorBoundaries","safeDescriptors"].forEach((function(t){t in e&&(nn[t]=!!e[t])})),nn.allowStateReads=!nn.observableRequiresReaction,e.reactionScheduler&&(t=e.reactionScheduler,n=hn,hn=function(e){return t((function(){return n(e)}))})}function Mn(e,t,n,r){var o=be(t);return Xr((function(){var t=Rr(e,r)[Le];ge(o).forEach((function(e){t.extend_(e,o[e],!n||!(e in n)||n[e])}))})),e}function Fn(e){var t={name:e.name_};return e.observing_&&e.observing_.length>0&&(t.dependencies=function(e){return Array.from(new Set(e))}(e.observing_).map(Fn)),t}var Bn=0;function Un(){this.message="FLOW_CANCELLED"}Un.prototype=Object.create(Error.prototype);var zn=qe("flow"),Vn=qe("flow.bound",{bound:!0}),Hn=Object.assign((function(e,t){if(Re(t))return zn.decorate_20223_(e,t);if(ae(t))return je(e,t,zn);var n=e,r=n.name||"",o=function(){var e,t=arguments,o=++Bn,i=kn(r+" - runid: "+o+" - init",n).apply(this,t),a=void 0,s=new Promise((function(t,n){var s=0;function l(e){var t;a=void 0;try{t=kn(r+" - runid: "+o+" - yield "+s++,i.next).call(i,e)}catch(e){return n(e)}c(t)}function u(e){var t;a=void 0;try{t=kn(r+" - runid: "+o+" - yield "+s++,i.throw).call(i,e)}catch(e){return n(e)}c(t)}function c(e){if(!ie(null==e?void 0:e.then))return e.done?t(e.value):(a=Promise.resolve(e.value)).then(l,u);e.then(c,n)}e=n,l(void 0)}));return s.cancel=kn(r+" - runid: "+o+" - cancel",(function(){try{a&&$n(a);var t=i.return(void 0),n=Promise.resolve(t.value);n.then(oe,oe),$n(n),e(new Un)}catch(t){e(t)}})),s};return o.isMobXFlow=!0,o}),zn);function $n(e){ie(e.cancel)&&e.cancel()}function Wn(e){return!0===(null==e?void 0:e.isMobXFlow)}function Gn(e){return function(e,t){return!!e&&(void 0!==t?!!Dr(e)&&e[Le].values_.has(t):Dr(e)||!!e[Le]||De(e)||mn(e)||zt(e))}(e)}function qn(e,t,n){return e.set(t,n),n}function Kn(e,t){if(null==e||"object"!=typeof e||e instanceof Date||!Gn(e))return e;if(Mt(e)||zt(e))return Kn(e.get(),t);if(t.has(e))return t.get(e);if(br(e)){var n=qn(t,e,new Array(e.length));return e.forEach((function(e,r){n[r]=Kn(e,t)})),n}if(Cr(e)){var r=qn(t,e,new Set);return e.forEach((function(e){r.add(Kn(e,t))})),r}if(xr(e)){var o=qn(t,e,new Map);return e.forEach((function(e,n){o.set(n,Kn(e,t))})),o}var i=qn(t,e,{});return function(e){if(Dr(e))return e[Le].ownKeys_();W(38)}(e).forEach((function(n){Y.propertyIsEnumerable.call(e,n)&&(i[n]=Kn(e[n],t))})),i}function Jn(e,t){return Kn(e,new Map)}function Qn(e,t){void 0===t&&(t=void 0),an();try{return e.apply(t)}finally{sn()}}function Yn(e){return e[Le]}Hn.bound=Ie(Vn);var Xn={has:function(e,t){return Yn(e).has_(t)},get:function(e,t){return Yn(e).get_(t)},set:function(e,t,n){var r;return!!ae(t)&&(null==(r=Yn(e).set_(t,n,!0))||r)},deleteProperty:function(e,t){var n;return!!ae(t)&&(null==(n=Yn(e).delete_(t,!0))||n)},defineProperty:function(e,t,n){var r;return null==(r=Yn(e).defineProperty_(t,n))||r},ownKeys:function(e){return Yn(e).ownKeys_()},preventExtensions:function(e){W(13)}};function Zn(e){return void 0!==e.interceptors_&&e.interceptors_.length>0}function er(e,t){var n=e.interceptors_||(e.interceptors_=[]);return n.push(t),re((function(){var e=n.indexOf(t);-1!==e&&n.splice(e,1)}))}function tr(e,t){var n=Kt();try{for(var r=[].concat(e.interceptors_||[]),o=0,i=r.length;o0}function rr(e,t){var n=e.changeListeners_||(e.changeListeners_=[]);return n.push(t),re((function(){var e=n.indexOf(t);-1!==e&&n.splice(e,1)}))}function or(e,t){var n=Kt(),r=e.changeListeners_;if(r){for(var o=0,i=(r=r.slice()).length;o0?e.map(this.dehancer):e},t.intercept_=function(e){return er(this,e)},t.observe_=function(e,t){return void 0===t&&(t=!1),t&&e({observableKind:"array",object:this.proxy_,debugObjectName:this.atom_.name_,type:"splice",index:0,added:this.values_.slice(),addedCount:this.values_.length,removed:[],removedCount:0}),rr(this,e)},t.getArrayLength_=function(){return this.atom_.reportObserved(),this.values_.length},t.setArrayLength_=function(e){("number"!=typeof e||isNaN(e)||e<0)&&W("Out of range: "+e);var t=this.values_.length;if(e!==t)if(e>t){for(var n=new Array(e-t),r=0;r0&&qr(e+t+1)},t.spliceWithArray_=function(e,t,n){var r=this;this.atom_;var o=this.values_.length;if(void 0===e?e=0:e>o?e=o:e<0&&(e=Math.max(0,o+e)),t=1===arguments.length?o-e:null==t?0:Math.max(0,Math.min(t,o-e)),void 0===n&&(n=X),Zn(this)){var i=tr(this,{object:this.proxy_,type:lr,index:e,removedCount:t,added:n});if(!i)return X;t=i.removedCount,n=i.added}if(n=0===n.length?n:n.map((function(e){return r.enhancer_(e,void 0)})),this.legacyMode_){var a=n.length-t;this.updateArrayLength_(o,a)}var s=this.spliceItemsIntoValues_(e,t,n);return 0===t&&0===n.length||this.notifyArraySplice_(e,n,s),this.dehanceValues_(s)},t.spliceItemsIntoValues_=function(e,t,n){var r;if(n.length<1e4)return(r=this.values_).splice.apply(r,[e,t].concat(n));var o=this.values_.slice(e,e+t),i=this.values_.slice(e+t);this.values_.length+=n.length-t;for(var a=0;a=this.values_.length))return this.atom_.reportObserved(),this.dehanceValue_(this.values_[e]);console.warn("[mobx] Out of bounds read: "+e)},t.set_=function(e,t){var n=this.values_;if(this.legacyMode_&&e>n.length&&W(17,e,n.length),e2?n-2:0),o=2;o-1&&(this.splice(n,1),!0)}};function pr(e,t){"function"==typeof Array.prototype[e]&&(dr[e]=t(e))}function mr(e){return function(){var t=this[Le];t.atom_.reportObserved();var n=t.dehanceValues_(t.values_);return n[e].apply(n,arguments)}}function gr(e){return function(t,n){var r=this,o=this[Le];return o.atom_.reportObserved(),o.dehanceValues_(o.values_)[e]((function(e,o){return t.call(n,e,o,r)}))}}function yr(e){return function(){var t=this,n=this[Le];n.atom_.reportObserved();var r=n.dehanceValues_(n.values_),o=arguments[0];return arguments[0]=function(e,n,r){return o(e,n,r,t)},r[e].apply(r,arguments)}}pr("at",mr),pr("concat",mr),pr("flat",mr),pr("includes",mr),pr("indexOf",mr),pr("join",mr),pr("lastIndexOf",mr),pr("slice",mr),pr("toString",mr),pr("toLocaleString",mr),pr("toSorted",mr),pr("toSpliced",mr),pr("with",mr),pr("every",gr),pr("filter",gr),pr("find",gr),pr("findIndex",gr),pr("findLast",gr),pr("findLastIndex",gr),pr("flatMap",gr),pr("forEach",gr),pr("map",gr),pr("some",gr),pr("toReversed",gr),pr("reduce",yr),pr("reduceRight",yr);var vr=he("ObservableArrayAdministration",fr);function br(e){return se(e)&&vr(e[Le])}var wr={},_r="add",Sr="delete",kr=function(){function e(e,t,n){var r=this;void 0===t&&(t=Be),void 0===n&&(n="ObservableMap"),this.enhancer_=void 0,this.name_=void 0,this[Le]=wr,this.data_=void 0,this.hasMap_=void 0,this.keysAtom_=void 0,this.interceptors_=void 0,this.changeListeners_=void 0,this.dehancer=void 0,this.enhancer_=t,this.name_=n,ie(Map)||W(18),Xr((function(){r.keysAtom_=Me("ObservableMap.keys()"),r.data_=new Map,r.hasMap_=new Map,e&&r.merge(e)}))}var t=e.prototype;return t.has_=function(e){return this.data_.has(e)},t.has=function(e){var t=this;if(!nn.trackingDerivation)return this.has_(e);var n=this.hasMap_.get(e);if(!n){var r=n=new Dt(this.has_(e),Ue,"ObservableMap.key?",!1);this.hasMap_.set(e,r),Rn(r,(function(){return t.hasMap_.delete(e)}))}return n.get()},t.set=function(e,t){var n=this.has_(e);if(Zn(this)){var r=tr(this,{type:n?ur:_r,object:this,newValue:t,name:e});if(!r)return this;t=r.newValue}return n?this.updateValue_(e,t):this.addValue_(e,t),this},t.delete=function(e){var t=this;if(this.keysAtom_,Zn(this)&&!tr(this,{type:Sr,object:this,name:e}))return!1;if(this.has_(e)){var n=nr(this),r=n?{observableKind:"map",debugObjectName:this.name_,type:Sr,object:this,oldValue:this.data_.get(e).value_,name:e}:null;return Qn((function(){var n;t.keysAtom_.reportChanged(),null==(n=t.hasMap_.get(e))||n.setNewValue_(!1),t.data_.get(e).setNewValue_(void 0),t.data_.delete(e)})),n&&or(this,r),!0}return!1},t.updateValue_=function(e,t){var n=this.data_.get(e);if((t=n.prepareNewValue_(t))!==nn.UNCHANGED){var r=nr(this),o=r?{observableKind:"map",debugObjectName:this.name_,type:ur,object:this,oldValue:n.value_,name:e,newValue:t}:null;n.setNewValue_(t),r&&or(this,o)}},t.addValue_=function(e,t){var n=this;this.keysAtom_,Qn((function(){var r,o=new Dt(t,n.enhancer_,"ObservableMap.key",!1);n.data_.set(e,o),t=o.value_,null==(r=n.hasMap_.get(e))||r.setNewValue_(!0),n.keysAtom_.reportChanged()}));var r=nr(this),o=r?{observableKind:"map",debugObjectName:this.name_,type:_r,object:this,name:e,newValue:t}:null;r&&or(this,o)},t.get=function(e){return this.has(e)?this.dehanceValue_(this.data_.get(e).get()):this.dehanceValue_(void 0)},t.dehanceValue_=function(e){return void 0!==this.dehancer?this.dehancer(e):e},t.keys=function(){return this.keysAtom_.reportObserved(),this.data_.keys()},t.values=function(){var e=this,t=this.keys();return Er({next:function(){var n=t.next(),r=n.done,o=n.value;return{done:r,value:r?void 0:e.get(o)}}})},t.entries=function(){var e=this,t=this.keys();return Er({next:function(){var n=t.next(),r=n.done,o=n.value;return{done:r,value:r?void 0:[o,e.get(o)]}}})},t[Symbol.iterator]=function(){return this.entries()},t.forEach=function(e,t){for(var n,r=Ee(this);!(n=r()).done;){var o=n.value,i=o[0],a=o[1];e.call(t,a,i,this)}},t.merge=function(e){var t=this;return xr(e)&&(e=new Map(e)),Qn((function(){var n,r,o;le(e)?function(e){var t=Object.keys(e);if(!me)return t;var n=Object.getOwnPropertySymbols(e);return n.length?[].concat(t,n.filter((function(t){return Y.propertyIsEnumerable.call(e,t)}))):t}(e).forEach((function(n){return t.set(n,e[n])})):Array.isArray(e)?e.forEach((function(e){var n=e[0],r=e[1];return t.set(n,r)})):de(e)?(n=e,r=Object.getPrototypeOf(n),o=Object.getPrototypeOf(r),null!==Object.getPrototypeOf(o)&&W(19,e),e.forEach((function(e,n){return t.set(n,e)}))):null!=e&&W(20,e)})),this},t.clear=function(){var e=this;Qn((function(){qt((function(){for(var t,n=Ee(e.keys());!(t=n()).done;){var r=t.value;e.delete(r)}}))}))},t.replace=function(e){var t=this;return Qn((function(){for(var n,r=function(e){if(de(e)||xr(e))return e;if(Array.isArray(e))return new Map(e);if(le(e)){var t=new Map;for(var n in e)t.set(n,e[n]);return t}return W(21,e)}(e),o=new Map,i=!1,a=Ee(t.data_.keys());!(n=a()).done;){var s=n.value;if(!r.has(s))if(t.delete(s))i=!0;else{var l=t.data_.get(s);o.set(s,l)}}for(var u,c=Ee(r.entries());!(u=c()).done;){var f=u.value,h=f[0],d=f[1],p=t.data_.has(h);if(t.set(h,d),t.data_.has(h)){var m=t.data_.get(h);o.set(h,m),p||(i=!0)}}if(!i)if(t.data_.size!==o.size)t.keysAtom_.reportChanged();else for(var g=t.data_.keys(),y=o.keys(),v=g.next(),b=y.next();!v.done;){if(v.value!==b.value){t.keysAtom_.reportChanged();break}v=g.next(),b=y.next()}t.data_=o})),this},t.toString=function(){return"[object ObservableMap]"},t.toJSON=function(){return Array.from(this)},t.observe_=function(e,t){return rr(this,e)},t.intercept_=function(e){return er(this,e)},xe(e,[{key:"size",get:function(){return this.keysAtom_.reportObserved(),this.data_.size}},{key:Symbol.toStringTag,get:function(){return"Map"}}])}(),xr=he("ObservableMap",kr);function Er(e){return e[Symbol.toStringTag]="MapIterator",io(e)}var Or={},Pr=function(){function e(e,t,n){var r=this;void 0===t&&(t=Be),void 0===n&&(n="ObservableSet"),this.name_=void 0,this[Le]=Or,this.data_=new Set,this.atom_=void 0,this.changeListeners_=void 0,this.interceptors_=void 0,this.dehancer=void 0,this.enhancer_=void 0,this.name_=n,ie(Set)||W(22),this.enhancer_=function(e,r){return t(e,r,n)},Xr((function(){r.atom_=Me(r.name_),e&&r.replace(e)}))}var t=e.prototype;return t.dehanceValue_=function(e){return void 0!==this.dehancer?this.dehancer(e):e},t.clear=function(){var e=this;Qn((function(){qt((function(){for(var t,n=Ee(e.data_.values());!(t=n()).done;){var r=t.value;e.delete(r)}}))}))},t.forEach=function(e,t){for(var n,r=Ee(this);!(n=r()).done;){var o=n.value;e.call(t,o,o,this)}},t.add=function(e){var t=this;if(this.atom_,Zn(this)){var n=tr(this,{type:_r,object:this,newValue:e});if(!n)return this;e=n.newValue}if(!this.has(e)){Qn((function(){t.data_.add(t.enhancer_(e,void 0)),t.atom_.reportChanged()}));var r=nr(this),o=r?{observableKind:"set",debugObjectName:this.name_,type:_r,object:this,newValue:e}:null;r&&or(this,o)}return this},t.delete=function(e){var t=this;if(Zn(this)&&!tr(this,{type:Sr,object:this,oldValue:e}))return!1;if(this.has(e)){var n=nr(this),r=n?{observableKind:"set",debugObjectName:this.name_,type:Sr,object:this,oldValue:e}:null;return Qn((function(){t.atom_.reportChanged(),t.data_.delete(e)})),n&&or(this,r),!0}return!1},t.has=function(e){return this.atom_.reportObserved(),this.data_.has(this.dehanceValue_(e))},t.entries=function(){var e=this.values();return Tr({next:function(){var t=e.next(),n=t.value,r=t.done;return r?{value:void 0,done:r}:{value:[n,n],done:r}}})},t.keys=function(){return this.values()},t.values=function(){this.atom_.reportObserved();var e=this,t=this.data_.values();return Tr({next:function(){var n=t.next(),r=n.value,o=n.done;return o?{value:void 0,done:o}:{value:e.dehanceValue_(r),done:o}}})},t.intersection=function(e){return pe(e)&&!Cr(e)?e.intersection(this):new Set(this).intersection(e)},t.union=function(e){return pe(e)&&!Cr(e)?e.union(this):new Set(this).union(e)},t.difference=function(e){return new Set(this).difference(e)},t.symmetricDifference=function(e){return pe(e)&&!Cr(e)?e.symmetricDifference(this):new Set(this).symmetricDifference(e)},t.isSubsetOf=function(e){return new Set(this).isSubsetOf(e)},t.isSupersetOf=function(e){return new Set(this).isSupersetOf(e)},t.isDisjointFrom=function(e){return pe(e)&&!Cr(e)?e.isDisjointFrom(this):new Set(this).isDisjointFrom(e)},t.replace=function(e){var t=this;return Cr(e)&&(e=new Set(e)),Qn((function(){Array.isArray(e)||pe(e)?(t.clear(),e.forEach((function(e){return t.add(e)}))):null!=e&&W("Cannot initialize set from "+e)})),this},t.observe_=function(e,t){return rr(this,e)},t.intercept_=function(e){return er(this,e)},t.toJSON=function(){return Array.from(this)},t.toString=function(){return"[object ObservableSet]"},t[Symbol.iterator]=function(){return this.values()},xe(e,[{key:"size",get:function(){return this.atom_.reportObserved(),this.data_.size}},{key:Symbol.toStringTag,get:function(){return"Set"}}])}(),Cr=he("ObservableSet",Pr);function Tr(e){return e[Symbol.toStringTag]="SetIterator",io(e)}var Ar=Object.create(null),Ir="remove",jr=function(){function e(e,t,n,r){void 0===t&&(t=new Map),void 0===r&&(r=st),this.target_=void 0,this.values_=void 0,this.name_=void 0,this.defaultAnnotation_=void 0,this.keysAtom_=void 0,this.changeListeners_=void 0,this.interceptors_=void 0,this.proxy_=void 0,this.isPlainObject_=void 0,this.appliedAnnotations_=void 0,this.pendingKeys_=void 0,this.target_=e,this.values_=t,this.name_=n,this.defaultAnnotation_=r,this.keysAtom_=new Ne("ObservableObject.keys"),this.isPlainObject_=le(this.target_)}var t=e.prototype;return t.getObservablePropValue_=function(e){return this.values_.get(e).get()},t.setObservablePropValue_=function(e,t){var n=this.values_.get(e);if(n instanceof Ft)return n.set(t),!0;if(Zn(this)){var r=tr(this,{type:ur,object:this.proxy_||this.target_,name:e,newValue:t});if(!r)return null;t=r.newValue}if((t=n.prepareNewValue_(t))!==nn.UNCHANGED){var o=nr(this),i=o?{type:ur,observableKind:"object",debugObjectName:this.name_,object:this.proxy_||this.target_,oldValue:n.value_,name:e,newValue:t}:null;n.setNewValue_(t),o&&or(this,i)}return!0},t.get_=function(e){return nn.trackingDerivation&&!ve(this.target_,e)&&this.has_(e),this.target_[e]},t.set_=function(e,t,n){return void 0===n&&(n=!1),ve(this.target_,e)?this.values_.has(e)?this.setObservablePropValue_(e,t):n?Reflect.set(this.target_,e,t):(this.target_[e]=t,!0):this.extend_(e,{value:t,enumerable:!0,writable:!0,configurable:!0},this.defaultAnnotation_,n)},t.has_=function(e){if(!nn.trackingDerivation)return e in this.target_;this.pendingKeys_||(this.pendingKeys_=new Map);var t=this.pendingKeys_.get(e);return t||(t=new Dt(e in this.target_,Ue,"ObservableObject.key?",!1),this.pendingKeys_.set(e,t)),t.get()},t.make_=function(e,t){if(!0===t&&(t=this.defaultAnnotation_),!1!==t){if(!(e in this.target_)){var n;if(null!=(n=this.target_[Ae])&&n[e])return;W(1,t.annotationType_,this.name_+"."+e.toString())}for(var r=this.target_;r&&r!==Y;){var o=J(r,e);if(o){var i=t.make_(this,e,o,r);if(0===i)return;if(1===i)break}r=Object.getPrototypeOf(r)}Mr(this,0,e)}},t.extend_=function(e,t,n,r){if(void 0===r&&(r=!1),!0===n&&(n=this.defaultAnnotation_),!1===n)return this.defineProperty_(e,t,r);var o=n.extend_(this,e,t,r);return o&&Mr(this,0,e),o},t.defineProperty_=function(e,t,n){void 0===n&&(n=!1),this.keysAtom_;try{an();var r=this.delete_(e);if(!r)return r;if(Zn(this)){var o=tr(this,{object:this.proxy_||this.target_,name:e,type:_r,newValue:t.value});if(!o)return null;var i=o.newValue;t.value!==i&&(t=Oe({},t,{value:i}))}if(n){if(!Reflect.defineProperty(this.target_,e,t))return!1}else Q(this.target_,e,t);this.notifyPropertyAddition_(e,t.value)}finally{sn()}return!0},t.defineObservableProperty_=function(e,t,n,r){void 0===r&&(r=!1),this.keysAtom_;try{an();var o=this.delete_(e);if(!o)return o;if(Zn(this)){var i=tr(this,{object:this.proxy_||this.target_,name:e,type:_r,newValue:t});if(!i)return null;t=i.newValue}var a=Nr(e),s={configurable:!nn.safeDescriptors||this.isPlainObject_,enumerable:!0,get:a.get,set:a.set};if(r){if(!Reflect.defineProperty(this.target_,e,s))return!1}else Q(this.target_,e,s);var l=new Dt(t,n,"ObservableObject.key",!1);this.values_.set(e,l),this.notifyPropertyAddition_(e,l.value_)}finally{sn()}return!0},t.defineComputedProperty_=function(e,t,n){void 0===n&&(n=!1),this.keysAtom_;try{an();var r=this.delete_(e);if(!r)return r;if(Zn(this)&&!tr(this,{object:this.proxy_||this.target_,name:e,type:_r,newValue:void 0}))return null;t.name||(t.name="ObservableObject.key"),t.context=this.proxy_||this.target_;var o=Nr(e),i={configurable:!nn.safeDescriptors||this.isPlainObject_,enumerable:!1,get:o.get,set:o.set};if(n){if(!Reflect.defineProperty(this.target_,e,i))return!1}else Q(this.target_,e,i);this.values_.set(e,new Ft(t)),this.notifyPropertyAddition_(e,void 0)}finally{sn()}return!0},t.delete_=function(e,t){if(void 0===t&&(t=!1),this.keysAtom_,!ve(this.target_,e))return!0;if(Zn(this)&&!tr(this,{object:this.proxy_||this.target_,name:e,type:Ir}))return null;try{var n;an();var r,o=nr(this),i=this.values_.get(e),a=void 0;if(!i&&o&&(a=null==(r=J(this.target_,e))?void 0:r.value),t){if(!Reflect.deleteProperty(this.target_,e))return!1}else delete this.target_[e];if(i&&(this.values_.delete(e),i instanceof Dt&&(a=i.value_),un(i)),this.keysAtom_.reportChanged(),null==(n=this.pendingKeys_)||null==(n=n.get(e))||n.set(e in this.target_),o){var s={type:Ir,observableKind:"object",object:this.proxy_||this.target_,debugObjectName:this.name_,oldValue:a,name:e};o&&or(this,s)}}finally{sn()}return!0},t.observe_=function(e,t){return rr(this,e)},t.intercept_=function(e){return er(this,e)},t.notifyPropertyAddition_=function(e,t){var n,r=nr(this);if(r){var o=r?{type:_r,observableKind:"object",debugObjectName:this.name_,object:this.proxy_||this.target_,name:e,newValue:t}:null;r&&or(this,o)}null==(n=this.pendingKeys_)||null==(n=n.get(e))||n.set(!0),this.keysAtom_.reportChanged()},t.ownKeys_=function(){return this.keysAtom_.reportObserved(),ge(this.target_)},t.keys_=function(){return this.keysAtom_.reportObserved(),Object.keys(this.target_)},e}();function Rr(e,t){var n;if(ve(e,Le))return e;var r=null!=(n=null==t?void 0:t.name)?n:"ObservableObject",o=new jr(e,new Map,String(r),function(e){var t;return e?null!=(t=e.defaultDecorator)?t:lt(e):void 0}(t));return ce(e,Le,o),e}var Lr=he("ObservableObjectAdministration",jr);function Nr(e){return Ar[e]||(Ar[e]={get:function(){return this[Le].getObservablePropValue_(e)},set:function(t){return this[Le].setObservablePropValue_(e,t)}})}function Dr(e){return!!se(e)&&Lr(e[Le])}function Mr(e,t,n){var r;null==(r=e.target_[Ae])||delete r[n]}var Fr,Br,Ur=Wr(0),zr=function(){var e=!1,t={};return Object.defineProperty(t,"0",{set:function(){e=!0}}),Object.create(t)[0]=1,!1===e}(),Vr=0,Hr=function(){};Fr=Hr,Br=Array.prototype,Object.setPrototypeOf?Object.setPrototypeOf(Fr.prototype,Br):void 0!==Fr.prototype.__proto__?Fr.prototype.__proto__=Br:Fr.prototype=Br;var $r=function(e){function t(t,n,r,o){var i;return void 0===r&&(r="ObservableArray"),void 0===o&&(o=!1),i=e.call(this)||this,Xr((function(){var e=new fr(r,n,o,!0);e.proxy_=i,fe(i,Le,e),t&&t.length&&i.spliceWithArray(0,0,t),zr&&Object.defineProperty(i,"0",Ur)})),i}Pe(t,e);var n=t.prototype;return n.concat=function(){this[Le].atom_.reportObserved();for(var e=arguments.length,t=new Array(e),n=0;nVr){for(var t=Vr;t=0&&n++}e=ro(e),t=ro(t);var s="[object Array]"===a;if(!s){if("object"!=typeof e||"object"!=typeof t)return!1;var l=e.constructor,u=t.constructor;if(l!==u&&!(ie(l)&&l instanceof l&&ie(u)&&u instanceof u)&&"constructor"in e&&"constructor"in t)return!1}if(0===n)return!1;n<0&&(n=-1),o=o||[];for(var c=(r=r||[]).length;c--;)if(r[c]===e)return o[c]===t;if(r.push(e),o.push(t),s){if((c=e.length)!==t.length)return!1;for(;c--;)if(!no(e[c],t[c],n-1,r,o))return!1}else{var f=Object.keys(e),h=f.length;if(Object.keys(t).length!==h)return!1;for(var d=0;d=e&&(t.finalize(r.value),t.registrations.delete(o))})),t.registrations.size>0&&t.scheduleSweep()}}),Object.defineProperty(this,"finalizeAllImmediately",{enumerable:!0,configurable:!0,writable:!0,value:function(){t.sweep(0)}})}return Object.defineProperty(e.prototype,"register",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t,n){this.registrations.set(n,{value:t,registeredAt:Date.now()}),this.scheduleSweep()}}),Object.defineProperty(e.prototype,"unregister",{enumerable:!1,configurable:!0,writable:!0,value:function(e){this.registrations.delete(e)}}),Object.defineProperty(e.prototype,"scheduleSweep",{enumerable:!1,configurable:!0,writable:!0,value:function(){void 0===this.sweepTimeout&&(this.sweepTimeout=setTimeout(this.sweep,1e4))}}),e}(),po=new("undefined"!=typeof FinalizationRegistry?FinalizationRegistry:ho)((function(e){var t;null===(t=e.reaction)||void 0===t||t.dispose(),e.reaction=null})),mo=n(9888);function go(e){e.reaction=new cn("observer".concat(e.name),(function(){var t;e.stateVersion=Symbol(),null===(t=e.onStoreChange)||void 0===t||t.call(e)}))}var yo="function"==typeof Symbol&&Symbol.for,vo=null!==(fo=null===(co=Object.getOwnPropertyDescriptor((function(){}),"name"))||void 0===co?void 0:co.configurable)&&void 0!==fo&&fo,bo=yo?Symbol.for("react.forward_ref"):"function"==typeof a.forwardRef&&(0,a.forwardRef)((function(e){return null})).$$typeof,wo=yo?Symbol.for("react.memo"):"function"==typeof a.memo&&(0,a.memo)((function(e){return null})).$$typeof;function _o(e,t){var n;if(wo&&e.$$typeof===wo)throw new Error("[mobx-react-lite] You are trying to use `observer` on a function component wrapped in either another `observer` or `React.memo`. The observer already applies 'React.memo' for you.");var r=null!==(n=null==t?void 0:t.forwardRef)&&void 0!==n&&n,o=e,i=e.displayName||e.name;if(bo&&e.$$typeof===bo&&(r=!0,"function"!=typeof(o=e.render)))throw new Error("[mobx-react-lite] `render` property of ForwardRef was not a function");var s,l,u=function(e,t){return function(e,t){void 0===t&&(t="observed");var n=a.useRef(null);if(!n.current){var r={reaction:null,onStoreChange:null,stateVersion:Symbol(),name:t,subscribe:function(e){return po.unregister(r),r.onStoreChange=e,r.reaction||(go(r),r.stateVersion=Symbol()),function(){var e;r.onStoreChange=null,null===(e=r.reaction)||void 0===e||e.dispose(),r.reaction=null}},getSnapshot:function(){return r.stateVersion}};n.current=r}var o,i,s=n.current;if(s.reaction||(go(s),po.register(n,s,s)),a.useDebugValue(s.reaction,uo),(0,mo.useSyncExternalStore)(s.subscribe,s.getSnapshot,s.getSnapshot),s.reaction.track((function(){try{o=e()}catch(e){i=e}})),i)throw i;return o}((function(){return o(e,t)}),i)};return u.displayName=e.displayName,vo&&Object.defineProperty(u,"name",{value:e.name,writable:!0,configurable:!0}),e.contextTypes&&(u.contextTypes=e.contextTypes),r&&(u=(0,a.forwardRef)(u)),u=(0,a.memo)(u),s=e,l=u,Object.keys(s).forEach((function(e){So[e]||Object.defineProperty(l,e,Object.getOwnPropertyDescriptor(s,e))})),u}var So={$$typeof:!0,render:!0,compare:!0,type:!0,displayName:!0};!function(e){e||(e=lo),Dn({reactionScheduler:e})}(so.unstable_batchedUpdates),po.finalizeAllImmediately,n(8232);var ko,xo=e=>{throw TypeError(e)},Eo=(e,t,n)=>(((e,t)=>{t.has(e)||xo("Cannot read from private field")})(e,t),n?n.call(e):t.get(e)),Oo="popstate";function Po(e={}){return function(e,t,n,r={}){let{window:o=document.defaultView,v5Compat:i=!1}=r,a=o.history,s="POP",l=null,u=c();function c(){return(a.state||{idx:null}).idx}function f(){s="POP";let e=c(),t=null==e?null:e-u;u=e,l&&l({action:s,location:d.location,delta:t})}function h(e){let t="null"!==o.location.origin?o.location.origin:o.location.href,n="string"==typeof e?e:jo(e);return n=n.replace(/ $/,"%20"),Co(t,`No window.location.(origin|href) available to create URL for href: ${n}`),new URL(n,t)}null==u&&(u=0,a.replaceState({...a.state,idx:u},""));let d={get action(){return s},get location(){return e(o,a)},listen(e){if(l)throw new Error("A history only accepts one active listener");return o.addEventListener(Oo,f),l=e,()=>{o.removeEventListener(Oo,f),l=null}},createHref:e=>t(o,e),createURL:h,encodeLocation(e){let t=h(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:function(e,t){s="PUSH";let r=Io(d.location,e,t);n&&n(r,e),u=c()+1;let f=Ao(r,u),h=d.createHref(r);try{a.pushState(f,"",h)}catch(e){if(e instanceof DOMException&&"DataCloneError"===e.name)throw e;o.location.assign(h)}i&&l&&l({action:s,location:d.location,delta:1})},replace:function(e,t){s="REPLACE";let r=Io(d.location,e,t);n&&n(r,e),u=c();let o=Ao(r,u),f=d.createHref(r);a.replaceState(o,"",f),i&&l&&l({action:s,location:d.location,delta:0})},go:e=>a.go(e)};return d}((function(e,t){let{pathname:n="/",search:r="",hash:o=""}=Ro(e.location.hash.substring(1));return n.startsWith("/")||n.startsWith(".")||(n="/"+n),Io("",{pathname:n,search:r,hash:o},t.state&&t.state.usr||null,t.state&&t.state.key||"default")}),(function(e,t){let n=e.document.querySelector("base"),r="";if(n&&n.getAttribute("href")){let t=e.location.href,n=t.indexOf("#");r=-1===n?t:t.slice(0,n)}return r+"#"+("string"==typeof t?t:jo(t))}),(function(e,t){To("/"===e.pathname.charAt(0),`relative pathnames are not supported in hash history.push(${JSON.stringify(t)})`)}),e)}function Co(e,t){if(!1===e||null==e)throw new Error(t)}function To(e,t){if(!e){"undefined"!=typeof console&&console.warn(t);try{throw new Error(t)}catch(e){}}}function Ao(e,t){return{usr:e.state,key:e.key,idx:t}}function Io(e,t,n=null,r){return{pathname:"string"==typeof e?e:e.pathname,search:"",hash:"",..."string"==typeof t?Ro(t):t,state:n,key:t&&t.key||r||Math.random().toString(36).substring(2,10)}}function jo({pathname:e="/",search:t="",hash:n=""}){return t&&"?"!==t&&(e+="?"===t.charAt(0)?t:"?"+t),n&&"#"!==n&&(e+="#"===n.charAt(0)?n:"#"+n),e}function Ro(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substring(n),e=e.substring(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substring(r),e=e.substring(0,r)),e&&(t.pathname=e)}return t}var Lo=class{constructor(e){var t,n,r;if(t=this,n=ko,r=new Map,n.has(t)?xo("Cannot add the same private member more than once"):n instanceof WeakSet?n.add(t):n.set(t,r),e)for(let[t,n]of e)this.set(t,n)}get(e){if(Eo(this,ko).has(e))return Eo(this,ko).get(e);if(void 0!==e.defaultValue)return e.defaultValue;throw new Error("No value found for context")}set(e,t){Eo(this,ko).set(e,t)}};ko=new WeakMap;var No=new Set(["lazy","caseSensitive","path","id","index","children"]),Do=new Set(["lazy","caseSensitive","path","id","index","unstable_middleware","children"]);function Mo(e,t,n=[],r={}){return e.map(((e,o)=>{let i=[...n,String(o)],a="string"==typeof e.id?e.id:i.join("-");if(Co(!0!==e.index||!e.children,"Cannot specify children on an index route"),Co(!r[a],`Found a route id collision on id "${a}". Route id's must be globally unique within Data Router usages`),function(e){return!0===e.index}(e)){let n={...e,...t(e),id:a};return r[a]=n,n}{let n={...e,...t(e),id:a,children:void 0};return r[a]=n,e.children&&(n.children=Mo(e.children,t,i,r)),n}}))}function Fo(e,t,n="/"){return Bo(e,t,n,!1)}function Bo(e,t,n,r){let o=Zo(("string"==typeof t?Ro(t):t).pathname||"/",n);if(null==o)return null;let i=Uo(e);!function(e){e.sort(((e,t)=>e.score!==t.score?t.score-e.score:function(e,t){return e.length===t.length&&e.slice(0,-1).every(((e,n)=>e===t[n]))?e[e.length-1]-t[t.length-1]:0}(e.routesMeta.map((e=>e.childrenIndex)),t.routesMeta.map((e=>e.childrenIndex)))))}(i);let a=null;for(let e=0;null==a&&e{let a={relativePath:void 0===i?e.path||"":i,caseSensitive:!0===e.caseSensitive,childrenIndex:o,route:e};a.relativePath.startsWith("/")&&(Co(a.relativePath.startsWith(r),`Absolute route path "${a.relativePath}" nested under path "${r}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),a.relativePath=a.relativePath.slice(r.length));let s=oi([r,a.relativePath]),l=n.concat(a);e.children&&e.children.length>0&&(Co(!0!==e.index,`Index routes must not have child routes. Please remove all child routes from route path "${s}".`),Uo(e.children,t,l,s)),(null!=e.path||e.index)&&t.push({path:s,score:Jo(s,e.index),routesMeta:l})};return e.forEach(((e,t)=>{if(""!==e.path&&e.path?.includes("?"))for(let n of zo(e.path))o(e,t,n);else o(e,t)})),t}function zo(e){let t=e.split("/");if(0===t.length)return[];let[n,...r]=t,o=n.endsWith("?"),i=n.replace(/\?$/,"");if(0===r.length)return o?[i,""]:[i];let a=zo(r.join("/")),s=[];return s.push(...a.map((e=>""===e?i:[i,e].join("/")))),o&&s.push(...a),s.map((t=>e.startsWith("/")&&""===t?"/":t))}var Vo=/^:[\w-]+$/,Ho=3,$o=2,Wo=1,Go=10,qo=-2,Ko=e=>"*"===e;function Jo(e,t){let n=e.split("/"),r=n.length;return n.some(Ko)&&(r+=qo),t&&(r+=$o),n.filter((e=>!Ko(e))).reduce(((e,t)=>e+(Vo.test(t)?Ho:""===t?Wo:Go)),r)}function Qo(e,t,n=!1){let{routesMeta:r}=e,o={},i="/",a=[];for(let e=0;e(r.push({paramName:t,isOptional:null!=n}),n?"/?([^\\/]+)?":"/([^\\/]+)")));return e.endsWith("*")?(r.push({paramName:"*"}),o+="*"===e||"/*"===e?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?o+="\\/*$":""!==e&&"/"!==e&&(o+="(?:(?=\\/|$))"),[new RegExp(o,t?void 0:"i"),r]}(e.path,e.caseSensitive,e.end),o=t.match(n);if(!o)return null;let i=o[0],a=i.replace(/(.)\/+$/,"$1"),s=o.slice(1);return{params:r.reduce(((e,{paramName:t,isOptional:n},r)=>{if("*"===t){let e=s[r]||"";a=i.slice(0,i.length-e.length).replace(/(.)\/+$/,"$1")}const o=s[r];return e[t]=n&&!o?void 0:(o||"").replace(/%2F/g,"/"),e}),{}),pathname:i,pathnameBase:a,pattern:e}}function Xo(e){try{return e.split("/").map((e=>decodeURIComponent(e).replace(/\//g,"%2F"))).join("/")}catch(t){return To(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function Zo(e,t){if("/"===t)return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,r=e.charAt(n);return r&&"/"!==r?null:e.slice(n)||"/"}function ei(e,t,n,r){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(r)}]. Please separate it out to the \`to.${n}\` field. Alternatively you may provide the full path as a string in and the router will parse it for you.`}function ti(e){return e.filter(((e,t)=>0===t||e.route.path&&e.route.path.length>0))}function ni(e){let t=ti(e);return t.map(((e,n)=>n===t.length-1?e.pathname:e.pathnameBase))}function ri(e,t,n,r=!1){let o;"string"==typeof e?o=Ro(e):(o={...e},Co(!o.pathname||!o.pathname.includes("?"),ei("?","pathname","search",o)),Co(!o.pathname||!o.pathname.includes("#"),ei("#","pathname","hash",o)),Co(!o.search||!o.search.includes("#"),ei("#","search","hash",o)));let i,a=""===e||""===o.pathname,s=a?"/":o.pathname;if(null==s)i=n;else{let e=t.length-1;if(!r&&s.startsWith("..")){let t=s.split("/");for(;".."===t[0];)t.shift(),e-=1;o.pathname=t.join("/")}i=e>=0?t[e]:"/"}let l=function(e,t="/"){let{pathname:n,search:r="",hash:o=""}="string"==typeof e?Ro(e):e,i=n?n.startsWith("/")?n:function(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach((e=>{".."===e?n.length>1&&n.pop():"."!==e&&n.push(e)})),n.length>1?n.join("/"):"/"}(n,t):t;return{pathname:i,search:ai(r),hash:si(o)}}(o,i),u=s&&"/"!==s&&s.endsWith("/"),c=(a||"."===s)&&n.endsWith("/");return l.pathname.endsWith("/")||!u&&!c||(l.pathname+="/"),l}var oi=e=>e.join("/").replace(/\/\/+/g,"/"),ii=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),ai=e=>e&&"?"!==e?e.startsWith("?")?e:"?"+e:"",si=e=>e&&"#"!==e?e.startsWith("#")?e:"#"+e:"",li=class{constructor(e,t,n,r=!1){this.status=e,this.statusText=t||"",this.internal=r,n instanceof Error?(this.data=n.toString(),this.error=n):this.data=n}};function ui(e){return null!=e&&"number"==typeof e.status&&"string"==typeof e.statusText&&"boolean"==typeof e.internal&&"data"in e}var ci=["POST","PUT","PATCH","DELETE"],fi=new Set(ci),hi=["GET",...ci],di=new Set(hi),pi=new Set([301,302,303,307,308]),mi=new Set([307,308]),gi={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},yi={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},vi={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},bi=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,wi=e=>({hasErrorBoundary:Boolean(e.hasErrorBoundary)}),_i="remix-router-transitions",Si=Symbol("ResetLoaderData");function ki(e){const t=e.window?e.window:"undefined"!=typeof window?window:void 0,n=void 0!==t&&void 0!==t.document&&void 0!==t.document.createElement;Co(e.routes.length>0,"You must provide a non-empty routes array to createRouter");let r,o,i,a=e.mapRouteProperties||wi,s={},l=Mo(e.routes,a,void 0,s),u=e.basename||"/",c=e.dataStrategy||Fi,f={unstable_middleware:!1,...e.future},h=null,d=new Set,p=null,m=null,g=null,y=null!=e.hydrationData,v=Fo(l,e.history.location,u),b=!1,w=null;if(null==v&&!e.patchRoutesOnNavigation){let t=Yi(404,{pathname:e.history.location.pathname}),{matches:n,route:r}=Qi(l);v=n,w={[r.id]:t}}if(v&&!e.hydrationData&&ce(v,l,e.history.location.pathname).active&&(v=null),v)if(v.some((e=>e.route.lazy)))o=!1;else if(v.some((e=>e.route.loader))){let t=e.hydrationData?e.hydrationData.loaderData:null,n=e.hydrationData?e.hydrationData.errors:null;if(n){let e=v.findIndex((e=>void 0!==n[e.route.id]));o=v.slice(0,e+1).every((e=>!Ci(e.route,t,n)))}else o=v.every((e=>!Ci(e.route,t,n)))}else o=!0;else{o=!1,v=[];let t=ce(null,l,e.history.location.pathname);t.active&&t.matches&&(b=!0,v=t.matches)}let _,S,k={historyAction:e.history.action,location:e.history.location,matches:v,initialized:o,navigation:gi,restoreScrollPosition:null==e.hydrationData&&null,preventScrollReset:!1,revalidation:"idle",loaderData:e.hydrationData&&e.hydrationData.loaderData||{},actionData:e.hydrationData&&e.hydrationData.actionData||null,errors:e.hydrationData&&e.hydrationData.errors||w,fetchers:new Map,blockers:new Map},x="POP",E=!1,O=!1,P=new Map,C=null,T=!1,A=!1,I=new Set,j=new Map,R=0,L=-1,N=new Map,D=new Set,M=new Map,F=new Map,B=new Set,U=new Map,z=null;function V(e,t={}){k={...k,...e};let n=[],r=[];k.fetchers.forEach(((e,t)=>{"idle"===e.state&&(B.has(t)?n.push(t):r.push(t))})),B.forEach((e=>{k.fetchers.has(e)||j.has(e)||n.push(e)})),[...d].forEach((e=>e(k,{deletedFetchers:n,viewTransitionOpts:t.viewTransitionOpts,flushSync:!0===t.flushSync}))),n.forEach((e=>Z(e))),r.forEach((e=>k.fetchers.delete(e)))}function H(t,n,{flushSync:o}={}){let i,a=null!=k.actionData&&null!=k.navigation.formMethod&&ia(k.navigation.formMethod)&&"loading"===k.navigation.state&&!0!==t.state?._isRedirect;i=n.actionData?Object.keys(n.actionData).length>0?n.actionData:null:a?k.actionData:null;let s=n.loaderData?qi(k.loaderData,n.loaderData,n.matches||[],n.errors):k.loaderData,u=k.blockers;u.size>0&&(u=new Map(u),u.forEach(((e,t)=>u.set(t,vi))));let c,f=!0===E||null!=k.navigation.formMethod&&ia(k.navigation.formMethod)&&!0!==t.state?._isRedirect;if(r&&(l=r,r=void 0),T||"POP"===x||("PUSH"===x?e.history.push(t,t.state):"REPLACE"===x&&e.history.replace(t,t.state)),"POP"===x){let e=P.get(k.location.pathname);e&&e.has(t.pathname)?c={currentLocation:k.location,nextLocation:t}:P.has(t.pathname)&&(c={currentLocation:t,nextLocation:k.location})}else if(O){let e=P.get(k.location.pathname);e?e.add(t.pathname):(e=new Set([t.pathname]),P.set(k.location.pathname,e)),c={currentLocation:k.location,nextLocation:t}}V({...n,actionData:i,loaderData:s,historyAction:x,location:t,initialized:!0,navigation:gi,revalidation:"idle",restoreScrollPosition:ue(t,n.matches||k.matches),preventScrollReset:f,blockers:u},{viewTransitionOpts:c,flushSync:!0===o}),x="POP",E=!1,O=!1,T=!1,A=!1,z?.resolve(),z=null}async function $(t,n,o){_&&_.abort(),_=null,x=t,T=!0===(o&&o.startUninterruptedRevalidation),function(e,t){if(p&&g){let n=le(e,t);p[n]=g()}}(k.location,k.matches),E=!0===(o&&o.preventScrollReset),O=!0===(o&&o.enableViewTransition);let i=r||l,a=o&&o.overrideNavigation,s=o?.initialHydration&&k.matches&&k.matches.length>0&&!b?k.matches:Fo(i,n,u),c=!0===(o&&o.flushSync);if(s&&k.initialized&&!A&&(f=k.location,h=n,f.pathname===h.pathname&&f.search===h.search&&(""===f.hash?""!==h.hash:f.hash===h.hash||""!==h.hash))&&!(o&&o.submission&&ia(o.submission.formMethod)))return void H(n,{matches:s},{flushSync:c});var f,h;let d=ce(s,i,n.pathname);if(d.active&&d.matches&&(s=d.matches),!s){let{error:e,notFoundMatches:t,route:r}=se(n.pathname);return void H(n,{matches:t,loaderData:{},errors:{[r.id]:e}},{flushSync:c})}_=new AbortController;let m,y=Hi(e.history,n,_.signal,o&&o.submission),v=new Lo(e.unstable_getContext?await e.unstable_getContext():void 0);if(o&&o.pendingError)m=[Ji(s).route.id,{type:"error",error:o.pendingError}];else if(o&&o.submission&&ia(o.submission.formMethod)){let t=await async function(e,t,n,r,o,i,a={}){J();let s,l=function(e,t){return{state:"submitting",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}}(t,n);if(V({navigation:l},{flushSync:!0===a.flushSync}),i){let n=await fe(r,t.pathname,e.signal);if("aborted"===n.type)return{shortCircuited:!0};if("error"===n.type){let e=Ji(n.partialMatches).route.id;return{matches:n.partialMatches,pendingActionResult:[e,{type:"error",error:n.error}]}}if(!n.matches){let{notFoundMatches:e,error:n,route:r}=se(t.pathname);return{matches:e,pendingActionResult:[r.id,{type:"error",error:n}]}}r=n.matches}let c=sa(r,t);if(c.route.action||c.route.lazy){let t=await q("action",e,[c],r,o,null);if(s=t[c.route.id],!s)for(let e of r)if(t[e.route.id]){s=t[e.route.id];break}if(e.signal.aborted)return{shortCircuited:!0}}else s={type:"error",error:Yi(405,{method:e.method,pathname:t.pathname,routeId:c.route.id})};if(na(s)){let t;return t=a&&null!=a.replace?a.replace:Vi(s.response.headers.get("Location"),new URL(e.url),u)===k.location.pathname+k.location.search,await G(e,s,!0,{submission:n,replace:t}),{shortCircuited:!0}}if(ta(s)){let e=Ji(r,c.route.id);return!0!==(a&&a.replace)&&(x="PUSH"),{matches:r,pendingActionResult:[e.route.id,s]}}return{matches:r,pendingActionResult:[c.route.id,s]}}(y,n,o.submission,s,v,d.active,{replace:o.replace,flushSync:c});if(t.shortCircuited)return;if(t.pendingActionResult){let[e,r]=t.pendingActionResult;if(ta(r)&&ui(r.error)&&404===r.error.status)return _=null,void H(n,{matches:t.matches,loaderData:{},errors:{[e]:r.error}})}s=t.matches||s,m=t.pendingActionResult,a=ua(n,o.submission),c=!1,d.active=!1,y=Hi(e.history,y.url,y.signal)}let{shortCircuited:w,matches:S,loaderData:P,errors:C}=await async function(t,n,o,i,a,s,c,f,h,d,p,m){let g=s||ua(n,c),y=c||f||la(g),v=!T&&!d;if(a){if(v){let e=W(m);V({navigation:g,...void 0!==e?{actionData:e}:{}},{flushSync:p})}let e=await fe(o,n.pathname,t.signal);if("aborted"===e.type)return{shortCircuited:!0};if("error"===e.type){let t=Ji(e.partialMatches).route.id;return{matches:e.partialMatches,loaderData:{},errors:{[t]:e.error}}}if(!e.matches){let{error:e,notFoundMatches:t,route:r}=se(n.pathname);return{matches:t,loaderData:{},errors:{[r.id]:e}}}o=e.matches}let b=r||l,[w,S]=Pi(e.history,k,o,y,n,!0===d,A,I,B,M,D,b,u,m);if(L=++R,0===w.length&&0===S.length){let e=ne();return H(n,{matches:o,loaderData:{},errors:m&&ta(m[1])?{[m[0]]:m[1].error}:null,...Ki(m),...e?{fetchers:new Map(k.fetchers)}:{}},{flushSync:p}),{shortCircuited:!0}}if(v){let e={};if(!a){e.navigation=g;let t=W(m);void 0!==t&&(e.actionData=t)}S.length>0&&(e.fetchers=function(e){return e.forEach((e=>{let t=k.fetchers.get(e.key),n=ca(void 0,t?t.data:void 0);k.fetchers.set(e.key,n)})),new Map(k.fetchers)}(S)),V(e,{flushSync:p})}S.forEach((e=>{ee(e.key),e.controller&&j.set(e.key,e.controller)}));let x=()=>S.forEach((e=>ee(e.key)));_&&_.signal.addEventListener("abort",x);let{loaderResults:E,fetcherResults:O}=await K(o,w,S,t,i);if(t.signal.aborted)return{shortCircuited:!0};_&&_.signal.removeEventListener("abort",x),S.forEach((e=>j.delete(e.key)));let P=Xi(E);if(P)return await G(t,P.result,!0,{replace:h}),{shortCircuited:!0};if(P=Xi(O),P)return D.add(P.key),await G(t,P.result,!0,{replace:h}),{shortCircuited:!0};let{loaderData:C,errors:N}=Gi(k,o,E,m,S,O);d&&k.errors&&(N={...k.errors,...N});let F=ne(),U=re(L);return{matches:o,loaderData:C,errors:N,...F||U||S.length>0?{fetchers:new Map(k.fetchers)}:{}}}(y,n,s,v,d.active,a,o&&o.submission,o&&o.fetcherSubmission,o&&o.replace,o&&!0===o.initialHydration,c,m);w||(_=null,H(n,{matches:S||s,...Ki(m),loaderData:P,errors:C}))}function W(e){return e&&!ta(e[1])?{[e[0]]:e[1].data}:k.actionData?0===Object.keys(k.actionData).length?null:k.actionData:void 0}async function G(r,o,i,{submission:a,fetcherSubmission:s,preventScrollReset:l,replace:c}={}){o.response.headers.has("X-Remix-Revalidate")&&(A=!0);let f=o.response.headers.get("Location");Co(f,"Expected a Location header on the redirect Response"),f=Vi(f,new URL(r.url),u);let h=Io(k.location,f,{_isRedirect:!0});if(n){let n=!1;if(o.response.headers.has("X-Remix-Reload-Document"))n=!0;else if(bi.test(f)){const r=e.history.createURL(f);n=r.origin!==t.location.origin||null==Zo(r.pathname,u)}if(n)return void(c?t.location.replace(f):t.location.assign(f))}_=null;let d=!0===c||o.response.headers.has("X-Remix-Replace")?"REPLACE":"PUSH",{formMethod:p,formAction:m,formEncType:g}=k.navigation;!a&&!s&&p&&m&&g&&(a=la(k.navigation));let y=a||s;if(mi.has(o.response.status)&&y&&ia(y.formMethod))await $(d,h,{submission:{...y,formAction:f},preventScrollReset:l||E,enableViewTransition:i?O:void 0});else{let e=ua(h,a);await $(d,h,{overrideNavigation:e,fetcherSubmission:s,preventScrollReset:l||E,enableViewTransition:i?O:void 0})}}async function q(e,t,n,r,o,i){let l,f={};try{l=await async function(e,t,n,r,o,i,a,s,l){let u=function(e,t,n){let r=e.map((({route:e})=>{if("object"==typeof e.lazy&&e.lazy.unstable_middleware)return Li({key:"unstable_middleware",route:e,manifest:t,mapRouteProperties:n})})).filter(Di);return r.length>0?Promise.all(r):void 0}(o,a,s),c=o.map((e=>function(e,t,n,r){let o=n[e.id];if(Co(o,"No route found in manifest"),!e.lazy)return{lazyRoutePromise:void 0,lazyHandlerPromise:void 0};if("function"==typeof e.lazy){let t=Ni.get(o);if(t)return{lazyRoutePromise:t,lazyHandlerPromise:t};let n=(async()=>{Co("function"==typeof e.lazy,"No lazy route function found");let t=await e.lazy(),n={};for(let e in t){let r=t[e];if(void 0===r)continue;let a=(i=e,Do.has(i)),s=void 0!==o[e]&&"hasErrorBoundary"!==e;a?To(!a,"Route property "+e+" is not a supported property to be returned from a lazy route function. This property will be ignored."):s?To(!s,`Route "${o.id}" has a static property "${e}" defined but its lazy function is also returning a value for this property. The lazy route property "${e}" will be ignored.`):n[e]=r}var i;Object.assign(o,n),Object.assign(o,{...r(o),lazy:void 0})})();return Ni.set(o,n),{lazyRoutePromise:n,lazyHandlerPromise:n}}let i,a=Object.keys(e.lazy),s=[];for(let o of a){let a=Li({key:o,route:e,manifest:n,mapRouteProperties:r});a&&(s.push(a),o===t&&(i=a))}return{lazyRoutePromise:Promise.all(s).then((()=>{})),lazyHandlerPromise:i}}(e.route,t,a,s)));u&&await u;let f=o.map(((e,o)=>{let{lazyRoutePromise:i,lazyHandlerPromise:a}=c[o],s=r.some((t=>t.route.id===e.route.id));return{...e,shouldLoad:s,resolve:async r=>(r&&"GET"===n.method&&(e.route.lazy||e.route.loader)&&(s=!0),s?async function({type:e,request:t,match:n,lazyHandlerPromise:r,lazyRoutePromise:o,handlerOverride:i,scopedContext:a}){let s,l,u=r=>{let o,s=new Promise(((e,t)=>o=t));l=()=>o(),t.signal.addEventListener("abort",l);let u=o=>"function"!=typeof r?Promise.reject(new Error(`You cannot call the handler for a route which defines a boolean "${e}" [routeId: ${n.route.id}]`)):r({request:t,params:n.params,context:a},...void 0!==o?[o]:[]),c=(async()=>{try{return{type:"data",result:await(i?i((e=>u(e))):u())}}catch(e){return{type:"error",result:e}}})();return Promise.race([c,s])};try{let i=n.route[e];if(r||o)if(i){let e,[t]=await Promise.all([u(i).catch((t=>{e=t})),r,o]);if(void 0!==e)throw e;s=t}else{if(await r,i=n.route[e],!i){if("action"===e){let e=new URL(t.url),r=e.pathname+e.search;throw Yi(405,{method:t.method,pathname:r,routeId:n.route.id})}return{type:"data",result:void 0}}[s]=await Promise.all([u(i),o])}else{if(!i){let e=new URL(t.url);throw Yi(404,{pathname:e.pathname+e.search})}s=await u(i)}}catch(e){return{type:"error",result:e}}finally{l&&t.signal.removeEventListener("abort",l)}return s}({type:t,request:n,match:e,lazyHandlerPromise:a,lazyRoutePromise:i,handlerOverride:r,scopedContext:l}):Promise.resolve({type:"data",result:void 0}))}})),h=await e({matches:f,request:n,params:o[0].params,fetcherKey:i,context:l}),d=c.flatMap((e=>Object.values(e).filter(Di)));try{await Promise.all(d)}catch(e){}return h}(c,e,t,n,r,i,s,a,o)}catch(e){return n.forEach((t=>{f[t.route.id]={type:"error",error:e}})),f}for(let[e,n]of Object.entries(l))if(ea(n)){let o=n.result;f[e]={type:"redirect",response:zi(o,t,e,r,u)}}else f[e]=await Ui(n);return f}async function K(t,n,r,o,i){let a=q("loader",o,n,t,i,null),s=Promise.all(r.map((async t=>{if(t.matches&&t.match&&t.controller){let n=(await q("loader",Hi(e.history,t.path,t.controller.signal),[t.match],t.matches,i,t.key))[t.match.route.id];return{[t.key]:n}}return Promise.resolve({[t.key]:{type:"error",error:Yi(404,{pathname:t.path})}})}))),l=await a,u=(await s).reduce(((e,t)=>Object.assign(e,t)),{});return{loaderResults:l,fetcherResults:u}}function J(){A=!0,M.forEach(((e,t)=>{j.has(t)&&I.add(t),ee(t)}))}function Q(e,t,n={}){k.fetchers.set(e,t),V({fetchers:new Map(k.fetchers)},{flushSync:!0===(n&&n.flushSync)})}function Y(e,t,n,r={}){let o=Ji(k.matches,t);Z(e),V({errors:{[o.route.id]:n},fetchers:new Map(k.fetchers)},{flushSync:!0===(r&&r.flushSync)})}function X(e){return F.set(e,(F.get(e)||0)+1),B.has(e)&&B.delete(e),k.fetchers.get(e)||yi}function Z(e){let t=k.fetchers.get(e);!j.has(e)||t&&"loading"===t.state&&N.has(e)||ee(e),M.delete(e),N.delete(e),D.delete(e),B.delete(e),I.delete(e),k.fetchers.delete(e)}function ee(e){let t=j.get(e);t&&(t.abort(),j.delete(e))}function te(e){for(let t of e){let e=fa(X(t).data);k.fetchers.set(t,e)}}function ne(){let e=[],t=!1;for(let n of D){let r=k.fetchers.get(n);Co(r,`Expected fetcher: ${n}`),"loading"===r.state&&(D.delete(n),e.push(n),t=!0)}return te(e),t}function re(e){let t=[];for(let[n,r]of N)if(r0}function oe(e){k.blockers.delete(e),U.delete(e)}function ie(e,t){let n=k.blockers.get(e)||vi;Co("unblocked"===n.state&&"blocked"===t.state||"blocked"===n.state&&"blocked"===t.state||"blocked"===n.state&&"proceeding"===t.state||"blocked"===n.state&&"unblocked"===t.state||"proceeding"===n.state&&"unblocked"===t.state,`Invalid blocker state transition: ${n.state} -> ${t.state}`);let r=new Map(k.blockers);r.set(e,t),V({blockers:r})}function ae({currentLocation:e,nextLocation:t,historyAction:n}){if(0===U.size)return;U.size>1&&To(!1,"A router only supports one blocker at a time");let r=Array.from(U.entries()),[o,i]=r[r.length-1],a=k.blockers.get(o);return a&&"proceeding"===a.state?void 0:i({currentLocation:e,nextLocation:t,historyAction:n})?o:void 0}function se(e){let t=Yi(404,{pathname:e}),n=r||l,{matches:o,route:i}=Qi(n);return{notFoundMatches:o,route:i,error:t}}function le(e,t){return m&&m(e,t.map((e=>function(e,t){let{route:n,pathname:r,params:o}=e;return{id:n.id,pathname:r,params:o,data:t[n.id],handle:n.handle}}(e,k.loaderData))))||e.key}function ue(e,t){if(p){let n=le(e,t),r=p[n];if("number"==typeof r)return r}return null}function ce(t,n,r){if(e.patchRoutesOnNavigation){if(!t)return{active:!0,matches:Bo(n,r,u,!0)||[]};if(Object.keys(t[0].params).length>0)return{active:!0,matches:Bo(n,r,u,!0)}}return{active:!1,matches:null}}async function fe(t,n,o,i){if(!e.patchRoutesOnNavigation)return{type:"success",matches:t};let c=t;for(;;){let t=null==r,f=r||l,h=s;try{await e.patchRoutesOnNavigation({signal:o,path:n,matches:c,fetcherKey:i,patch:(e,t)=>{o.aborted||Ii(e,t,f,h,a)}})}catch(e){return{type:"error",error:e,partialMatches:c}}finally{t&&!o.aborted&&(l=[...l])}if(o.aborted)return{type:"aborted"};let d=Fo(f,n,u);if(d)return{type:"success",matches:d};let p=Bo(f,n,u,!0);if(!p||c.length===p.length&&c.every(((e,t)=>e.route.id===p[t].route.id)))return{type:"success",matches:null};c=p}}return i={get basename(){return u},get future(){return f},get state(){return k},get routes(){return l},get window(){return t},initialize:function(){if(h=e.history.listen((({action:t,location:n,delta:r})=>{if(S)return S(),void(S=void 0);To(0===U.size||null!=r,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");let o=ae({currentLocation:k.location,nextLocation:n,historyAction:t});if(o&&null!=r){let t=new Promise((e=>{S=e}));return e.history.go(-1*r),void ie(o,{state:"blocked",location:n,proceed(){ie(o,{state:"proceeding",proceed:void 0,reset:void 0,location:n}),t.then((()=>e.history.go(r)))},reset(){let e=new Map(k.blockers);e.set(o,vi),V({blockers:e})}})}return $(t,n)})),n){!function(e,t){try{let n=e.sessionStorage.getItem(_i);if(n){let e=JSON.parse(n);for(let[n,r]of Object.entries(e||{}))r&&Array.isArray(r)&&t.set(n,new Set(r||[]))}}catch(e){}}(t,P);let e=()=>function(e,t){if(t.size>0){let n={};for(let[e,r]of t)n[e]=[...r];try{e.sessionStorage.setItem(_i,JSON.stringify(n))}catch(e){To(!1,`Failed to save applied view transitions in sessionStorage (${e}).`)}}}(t,P);t.addEventListener("pagehide",e),C=()=>t.removeEventListener("pagehide",e)}return k.initialized||$("POP",k.location,{initialHydration:!0}),i},subscribe:function(e){return d.add(e),()=>d.delete(e)},enableScrollRestoration:function(e,t,n){if(p=e,g=t,m=n||null,!y&&k.navigation===gi){y=!0;let e=ue(k.location,k.matches);null!=e&&V({restoreScrollPosition:e})}return()=>{p=null,g=null,m=null}},navigate:async function t(n,r){if("number"==typeof n)return void e.history.go(n);let o=xi(k.location,k.matches,u,n,r?.fromRouteId,r?.relative),{path:i,submission:a,error:s}=Ei(!1,o,r),l=k.location,c=Io(k.location,i,r&&r.state);c={...c,...e.history.encodeLocation(c)};let f=r&&null!=r.replace?r.replace:void 0,h="PUSH";!0===f?h="REPLACE":!1===f||null!=a&&ia(a.formMethod)&&a.formAction===k.location.pathname+k.location.search&&(h="REPLACE");let d=r&&"preventScrollReset"in r?!0===r.preventScrollReset:void 0,p=!0===(r&&r.flushSync),m=ae({currentLocation:l,nextLocation:c,historyAction:h});m?ie(m,{state:"blocked",location:c,proceed(){ie(m,{state:"proceeding",proceed:void 0,reset:void 0,location:c}),t(n,r)},reset(){let e=new Map(k.blockers);e.set(m,vi),V({blockers:e})}}):await $(h,c,{submission:a,pendingError:s,preventScrollReset:d,replace:r&&r.replace,enableViewTransition:r&&r.viewTransition,flushSync:p})},fetch:async function(t,n,o,i){ee(t);let a=!0===(i&&i.flushSync),s=r||l,c=xi(k.location,k.matches,u,o,n,i?.relative),f=Fo(s,c,u),h=ce(f,s,c);if(h.active&&h.matches&&(f=h.matches),!f)return void Y(t,n,Yi(404,{pathname:c}),{flushSync:a});let{path:d,submission:p,error:m}=Ei(!0,c,i);if(m)return void Y(t,n,m,{flushSync:a});let g=sa(f,d),y=new Lo(e.unstable_getContext?await e.unstable_getContext():void 0),v=!0===(i&&i.preventScrollReset);p&&ia(p.formMethod)?await async function(t,n,o,i,a,s,c,f,h,d){function p(e){if(!e.route.action&&!e.route.lazy){let e=Yi(405,{method:d.formMethod,pathname:o,routeId:n});return Y(t,n,e,{flushSync:f}),!0}return!1}if(J(),M.delete(t),!c&&p(i))return;let m=k.fetchers.get(t);Q(t,function(e,t){return{state:"submitting",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t?t.data:void 0}}(d,m),{flushSync:f});let g=new AbortController,y=Hi(e.history,o,g.signal,d);if(c){let e=await fe(a,o,y.signal,t);if("aborted"===e.type)return;if("error"===e.type)return void Y(t,n,e.error,{flushSync:f});if(!e.matches)return void Y(t,n,Yi(404,{pathname:o}),{flushSync:f});if(p(i=sa(a=e.matches,o)))return}j.set(t,g);let v=R,b=(await q("action",y,[i],a,s,t))[i.route.id];if(y.signal.aborted)return void(j.get(t)===g&&j.delete(t));if(B.has(t)){if(na(b)||ta(b))return void Q(t,fa(void 0))}else{if(na(b))return j.delete(t),L>v?void Q(t,fa(void 0)):(D.add(t),Q(t,ca(d)),G(y,b,!1,{fetcherSubmission:d,preventScrollReset:h}));if(ta(b))return void Y(t,n,b.error)}let w=k.navigation.location||k.location,S=Hi(e.history,w,g.signal),E=r||l,O="idle"!==k.navigation.state?Fo(E,k.navigation.location,u):k.matches;Co(O,"Didn't find any matches after fetcher action");let P=++R;N.set(t,P);let C=ca(d,b.data);k.fetchers.set(t,C);let[T,F]=Pi(e.history,k,O,d,w,!1,A,I,B,M,D,E,u,[i.route.id,b]);F.filter((e=>e.key!==t)).forEach((e=>{let t=e.key,n=k.fetchers.get(t),r=ca(void 0,n?n.data:void 0);k.fetchers.set(t,r),ee(t),e.controller&&j.set(t,e.controller)})),V({fetchers:new Map(k.fetchers)});let U=()=>F.forEach((e=>ee(e.key)));g.signal.addEventListener("abort",U);let{loaderResults:z,fetcherResults:$}=await K(O,T,F,S,s);if(g.signal.aborted)return;g.signal.removeEventListener("abort",U),N.delete(t),j.delete(t),F.forEach((e=>j.delete(e.key)));let W=Xi(z);if(W)return G(S,W.result,!1,{preventScrollReset:h});if(W=Xi($),W)return D.add(W.key),G(S,W.result,!1,{preventScrollReset:h});let{loaderData:X,errors:Z}=Gi(k,O,z,void 0,F,$);if(k.fetchers.has(t)){let e=fa(b.data);k.fetchers.set(t,e)}re(P),"loading"===k.navigation.state&&P>L?(Co(x,"Expected pending action"),_&&_.abort(),H(k.navigation.location,{matches:O,loaderData:X,errors:Z,fetchers:new Map(k.fetchers)})):(V({errors:Z,loaderData:qi(k.loaderData,X,O,Z),fetchers:new Map(k.fetchers)}),A=!1)}(t,n,d,g,f,y,h.active,a,v,p):(M.set(t,{routeId:n,path:d}),await async function(t,n,r,o,i,a,s,l,u,c){let f=k.fetchers.get(t);Q(t,ca(c,f?f.data:void 0),{flushSync:l});let h=new AbortController,d=Hi(e.history,r,h.signal);if(s){let e=await fe(i,r,d.signal,t);if("aborted"===e.type)return;if("error"===e.type)return void Y(t,n,e.error,{flushSync:l});if(!e.matches)return void Y(t,n,Yi(404,{pathname:r}),{flushSync:l});o=sa(i=e.matches,r)}j.set(t,h);let p=R,m=(await q("loader",d,[o],i,a,t))[o.route.id];if(j.get(t)===h&&j.delete(t),!d.signal.aborted){if(!B.has(t))return na(m)?L>p?void Q(t,fa(void 0)):(D.add(t),void await G(d,m,!1,{preventScrollReset:u})):void(ta(m)?Y(t,n,m.error):Q(t,fa(m.data)));Q(t,fa(void 0))}}(t,n,d,g,f,y,h.active,a,v,p))},revalidate:function(){z||(z=function(){let e,t,n=new Promise(((r,o)=>{e=async e=>{r(e);try{await n}catch(e){}},t=async e=>{o(e);try{await n}catch(e){}}}));return{promise:n,resolve:e,reject:t}}()),J(),V({revalidation:"loading"});let e=z.promise;return"submitting"===k.navigation.state?e:"idle"===k.navigation.state?($(k.historyAction,k.location,{startUninterruptedRevalidation:!0}),e):($(x||k.historyAction,k.navigation.location,{overrideNavigation:k.navigation,enableViewTransition:!0===O}),e)},createHref:t=>e.history.createHref(t),encodeLocation:t=>e.history.encodeLocation(t),getFetcher:X,deleteFetcher:function(e){let t=(F.get(e)||0)-1;t<=0?(F.delete(e),B.add(e)):F.set(e,t),V({fetchers:new Map(k.fetchers)})},dispose:function(){h&&h(),C&&C(),d.clear(),_&&_.abort(),k.fetchers.forEach(((e,t)=>Z(t))),k.blockers.forEach(((e,t)=>oe(t)))},getBlocker:function(e,t){let n=k.blockers.get(e)||vi;return U.get(e)!==t&&U.set(e,t),n},deleteBlocker:oe,patchRoutes:function(e,t){let n=null==r;Ii(e,t,r||l,s,a),n&&(l=[...l],V({}))},_internalFetchControllers:j,_internalSetRoutes:function(e){s={},r=Mo(e,a,void 0,s)}},i}function xi(e,t,n,r,o,i){let a,s;if(o){a=[];for(let e of t)if(a.push(e),e.route.id===o){s=e;break}}else a=t,s=t[t.length-1];let l=ri(r||".",ni(a),Zo(e.pathname,n)||e.pathname,"path"===i);if(null==r&&(l.search=e.search,l.hash=e.hash),(null==r||""===r||"."===r)&&s){let e=aa(l.search);if(s.route.index&&!e)l.search=l.search?l.search.replace(/^\?/,"?index&"):"?index";else if(!s.route.index&&e){let e=new URLSearchParams(l.search),t=e.getAll("index");e.delete("index"),t.filter((e=>e)).forEach((t=>e.append("index",t)));let n=e.toString();l.search=n?`?${n}`:""}}return"/"!==n&&(l.pathname="/"===l.pathname?n:oi([n,l.pathname])),jo(l)}function Ei(e,t,n){if(!n||!function(e){return null!=e&&("formData"in e&&null!=e.formData||"body"in e&&void 0!==e.body)}(n))return{path:t};if(n.formMethod&&(r=n.formMethod,!di.has(r.toUpperCase())))return{path:t,error:Yi(405,{method:n.formMethod})};var r;let o,i,a=()=>({path:t,error:Yi(400,{type:"invalid-body"})}),s=(n.formMethod||"get").toUpperCase(),l=Zi(t);if(void 0!==n.body){if("text/plain"===n.formEncType){if(!ia(s))return a();let e="string"==typeof n.body?n.body:n.body instanceof FormData||n.body instanceof URLSearchParams?Array.from(n.body.entries()).reduce(((e,[t,n])=>`${e}${t}=${n}\n`),""):String(n.body);return{path:t,submission:{formMethod:s,formAction:l,formEncType:n.formEncType,formData:void 0,json:void 0,text:e}}}if("application/json"===n.formEncType){if(!ia(s))return a();try{let e="string"==typeof n.body?JSON.parse(n.body):n.body;return{path:t,submission:{formMethod:s,formAction:l,formEncType:n.formEncType,formData:void 0,json:e,text:void 0}}}catch(e){return a()}}}if(Co("function"==typeof FormData,"FormData is not available in this environment"),n.formData)o=$i(n.formData),i=n.formData;else if(n.body instanceof FormData)o=$i(n.body),i=n.body;else if(n.body instanceof URLSearchParams)o=n.body,i=Wi(o);else if(null==n.body)o=new URLSearchParams,i=new FormData;else try{o=new URLSearchParams(n.body),i=Wi(o)}catch(e){return a()}let u={formMethod:s,formAction:l,formEncType:n&&n.formEncType||"application/x-www-form-urlencoded",formData:i,json:void 0,text:void 0};if(ia(u.formMethod))return{path:t,submission:u};let c=Ro(t);return e&&c.search&&aa(c.search)&&o.append("index",""),c.search=`?${o}`,{path:jo(c),submission:u}}function Oi(e,t,n=!1){let r=e.findIndex((e=>e.route.id===t));return r>=0?e.slice(0,n?r+1:r):e}function Pi(e,t,n,r,o,i,a,s,l,u,c,f,h,d){let p=d?ta(d[1])?d[1].error:d[1].data:void 0,m=e.createURL(t.location),g=e.createURL(o),y=n;i&&t.errors?y=Oi(n,Object.keys(t.errors)[0],!0):d&&ta(d[1])&&(y=Oi(n,d[0]));let v=d?d[1].statusCode:void 0,b=v&&v>=400,w=y.filter(((e,n)=>{let{route:o}=e;if(o.lazy)return!0;if(null==o.loader)return!1;if(i)return Ci(o,t.loaderData,t.errors);if(function(e,t,n){let r=!t||n.route.id!==t.route.id,o=!e.hasOwnProperty(n.route.id);return r||o}(t.loaderData,t.matches[n],e))return!0;let s=t.matches[n],l=e;return Ai(e,{currentUrl:m,currentParams:s.params,nextUrl:g,nextParams:l.params,...r,actionResult:p,actionStatus:v,defaultShouldRevalidate:!b&&(a||m.pathname+m.search===g.pathname+g.search||m.search!==g.search||Ti(s,l))})})),_=[];return u.forEach(((e,o)=>{if(i||!n.some((t=>t.route.id===e.routeId))||l.has(o))return;let u=Fo(f,e.path,h);if(!u)return void _.push({key:o,routeId:e.routeId,path:e.path,matches:null,match:null,controller:null});let d=t.fetchers.get(o),y=sa(u,e.path),w=!1;c.has(o)?w=!1:s.has(o)?(s.delete(o),w=!0):w=d&&"idle"!==d.state&&void 0===d.data?a:Ai(y,{currentUrl:m,currentParams:t.matches[t.matches.length-1].params,nextUrl:g,nextParams:n[n.length-1].params,...r,actionResult:p,actionStatus:v,defaultShouldRevalidate:!b&&a}),w&&_.push({key:o,routeId:e.routeId,path:e.path,matches:u,match:y,controller:new AbortController})})),[w,_]}function Ci(e,t,n){if(e.lazy)return!0;if(!e.loader)return!1;let r=null!=t&&void 0!==t[e.id],o=null!=n&&void 0!==n[e.id];return!(!r&&o)&&("function"==typeof e.loader&&!0===e.loader.hydrate||!r&&!o)}function Ti(e,t){let n=e.route.path;return e.pathname!==t.pathname||null!=n&&n.endsWith("*")&&e.params["*"]!==t.params["*"]}function Ai(e,t){if(e.route.shouldRevalidate){let n=e.route.shouldRevalidate(t);if("boolean"==typeof n)return n}return t.defaultShouldRevalidate}function Ii(e,t,n,r,o){let i;if(e){let t=r[e];Co(t,`No route found to patch children into: routeId = ${e}`),t.children||(t.children=[]),i=t.children}else i=n;let a=Mo(t.filter((e=>!i.some((t=>ji(e,t))))),o,[e||"_","patch",String(i?.length||"0")],r);i.push(...a)}function ji(e,t){return"id"in e&&"id"in t&&e.id===t.id||e.index===t.index&&e.path===t.path&&e.caseSensitive===t.caseSensitive&&(!(e.children&&0!==e.children.length||t.children&&0!==t.children.length)||e.children.every(((e,n)=>t.children?.some((t=>ji(e,t))))))}var Ri=new WeakMap,Li=({key:e,route:t,manifest:n,mapRouteProperties:r})=>{let o=n[t.id];if(Co(o,"No route found in manifest"),!o.lazy||"object"!=typeof o.lazy)return;let i=o.lazy[e];if(!i)return;let a=Ri.get(o);a||(a={},Ri.set(o,a));let s=a[e];if(s)return s;let l=(async()=>{let t=function(e){return No.has(e)}(e),n=void 0!==o[e]&&"hasErrorBoundary"!==e;if(t)To(!t,"Route property "+e+" is not a supported lazy route property. This property will be ignored."),a[e]=Promise.resolve();else if(n)To(!1,`Route "${o.id}" has a static property "${e}" defined. The lazy property will be ignored.`);else{let t=await i();null!=t&&(Object.assign(o,{[e]:t}),Object.assign(o,r(o)))}"object"==typeof o.lazy&&(o.lazy[e]=void 0,Object.values(o.lazy).every((e=>void 0===e))&&(o.lazy=void 0))})();return a[e]=l,l},Ni=new WeakMap;function Di(e){return void 0!==e}async function Mi(e){let t=e.matches.filter((e=>e.shouldLoad)),n={};return(await Promise.all(t.map((e=>e.resolve())))).forEach(((e,r)=>{n[t[r].route.id]=e})),n}async function Fi(e){return e.matches.some((e=>e.route.unstable_middleware))?async function(e,t,n,r){let{matches:o,request:i,params:a,context:s}=e,l={handlerResult:void 0};try{let e=o.flatMap((e=>e.route.unstable_middleware?e.route.unstable_middleware.map((t=>[e.route.id,t])):[])),r=await Bi({request:i,params:a,context:s},e,t,l,n);return t?r:l.handlerResult}catch(e){if(!l.middlewareError)throw e;let n=await r(l.middlewareError.error,l.middlewareError.routeId);return t||!l.handlerResult?n:Object.assign(l.handlerResult,n)}}(e,!1,(()=>Mi(e)),((e,t)=>({[t]:{type:"error",result:e}}))):Mi(e)}async function Bi(e,t,n,r,o,i=0){let{request:a}=e;if(a.signal.aborted){if(a.signal.reason)throw a.signal.reason;throw new Error(`Request aborted without an \`AbortSignal.reason\`: ${a.method} ${a.url}`)}let s=t[i];if(!s)return r.handlerResult=await o(),r.handlerResult;let l,[u,c]=s,f=!1,h=async()=>{if(f)throw new Error("You may only call `next()` once per middleware");f=!0;let a=await Bi(e,t,n,r,o,i+1);if(n)return l=a,l};try{let t=await c({request:e.request,params:e.params,context:e.context},h);return f?void 0===t?l:t:h()}catch(e){throw r.middlewareError?r.middlewareError.error!==e&&(r.middlewareError={routeId:u,error:e}):r.middlewareError={routeId:u,error:e},e}}async function Ui(e){let{result:t,type:n}=e;if(oa(t)){let e;try{let n=t.headers.get("Content-Type");e=n&&/\bapplication\/json\b/.test(n)?null==t.body?null:await t.json():await t.text()}catch(e){return{type:"error",error:e}}return"error"===n?{type:"error",error:new li(t.status,t.statusText,e),statusCode:t.status,headers:t.headers}:{type:"data",data:e,statusCode:t.status,headers:t.headers}}return"error"===n?ra(t)?t.data instanceof Error?{type:"error",error:t.data,statusCode:t.init?.status,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:"error",error:new li(t.init?.status||500,void 0,t.data),statusCode:ui(t)?t.status:void 0,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:"error",error:t,statusCode:ui(t)?t.status:void 0}:ra(t)?{type:"data",data:t.data,statusCode:t.init?.status,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:"data",data:t}}function zi(e,t,n,r,o){let i=e.headers.get("Location");if(Co(i,"Redirects returned/thrown from loaders/actions must have a Location header"),!bi.test(i)){let a=r.slice(0,r.findIndex((e=>e.route.id===n))+1);i=xi(new URL(t.url),a,o,i),e.headers.set("Location",i)}return e}function Vi(e,t,n){if(bi.test(e)){let r=e,o=r.startsWith("//")?new URL(t.protocol+r):new URL(r),i=null!=Zo(o.pathname,n);if(o.origin===t.origin&&i)return o.pathname+o.search+o.hash}return e}function Hi(e,t,n,r){let o=e.createURL(Zi(t)).toString(),i={signal:n};if(r&&ia(r.formMethod)){let{formMethod:e,formEncType:t}=r;i.method=e.toUpperCase(),"application/json"===t?(i.headers=new Headers({"Content-Type":t}),i.body=JSON.stringify(r.json)):"text/plain"===t?i.body=r.text:"application/x-www-form-urlencoded"===t&&r.formData?i.body=$i(r.formData):i.body=r.formData}return new Request(o,i)}function $i(e){let t=new URLSearchParams;for(let[n,r]of e.entries())t.append(n,"string"==typeof r?r:r.name);return t}function Wi(e){let t=new FormData;for(let[n,r]of e.entries())t.append(n,r);return t}function Gi(e,t,n,r,o,i){let{loaderData:a,errors:s}=function(e,t,n,r=!1,o=!1){let i,a={},s=null,l=!1,u={},c=n&&ta(n[1])?n[1].error:void 0;return e.forEach((n=>{if(!(n.route.id in t))return;let f=n.route.id,h=t[f];if(Co(!na(h),"Cannot handle redirect results in processLoaderData"),ta(h)){let t=h.error;if(void 0!==c&&(t=c,c=void 0),s=s||{},o)s[f]=t;else{let n=Ji(e,f);null==s[n.route.id]&&(s[n.route.id]=t)}r||(a[f]=Si),l||(l=!0,i=ui(h.error)?h.error.status:500),h.headers&&(u[f]=h.headers)}else a[f]=h.data,h.statusCode&&200!==h.statusCode&&!l&&(i=h.statusCode),h.headers&&(u[f]=h.headers)})),void 0!==c&&n&&(s={[n[0]]:c},a[n[0]]=void 0),{loaderData:a,errors:s,statusCode:i||200,loaderHeaders:u}}(t,n,r);return o.forEach((t=>{let{key:n,match:r,controller:o}=t,a=i[n];if(Co(a,"Did not find corresponding fetcher result"),!o||!o.signal.aborted)if(ta(a)){let t=Ji(e.matches,r?.route.id);s&&s[t.route.id]||(s={...s,[t.route.id]:a.error}),e.fetchers.delete(n)}else if(na(a))Co(!1,"Unhandled fetcher revalidation redirect");else{let t=fa(a.data);e.fetchers.set(n,t)}})),{loaderData:a,errors:s}}function qi(e,t,n,r){let o=Object.entries(t).filter((([,e])=>e!==Si)).reduce(((e,[t,n])=>(e[t]=n,e)),{});for(let i of n){let n=i.route.id;if(!t.hasOwnProperty(n)&&e.hasOwnProperty(n)&&i.route.loader&&(o[n]=e[n]),r&&r.hasOwnProperty(n))break}return o}function Ki(e){return e?ta(e[1])?{actionData:{}}:{actionData:{[e[0]]:e[1].data}}:{}}function Ji(e,t){return(t?e.slice(0,e.findIndex((e=>e.route.id===t))+1):[...e]).reverse().find((e=>!0===e.route.hasErrorBoundary))||e[0]}function Qi(e){let t=1===e.length?e[0]:e.find((e=>e.index||!e.path||"/"===e.path))||{id:"__shim-error-route__"};return{matches:[{params:{},pathname:"",pathnameBase:"",route:t}],route:t}}function Yi(e,{pathname:t,routeId:n,method:r,type:o,message:i}={}){let a="Unknown Server Error",s="Unknown @remix-run/router error";return 400===e?(a="Bad Request",r&&t&&n?s=`You made a ${r} request to "${t}" but did not provide a \`loader\` for route "${n}", so there is no way to handle the request.`:"invalid-body"===o&&(s="Unable to encode submission body")):403===e?(a="Forbidden",s=`Route "${n}" does not match URL "${t}"`):404===e?(a="Not Found",s=`No route matches URL "${t}"`):405===e&&(a="Method Not Allowed",r&&t&&n?s=`You made a ${r.toUpperCase()} request to "${t}" but did not provide an \`action\` for route "${n}", so there is no way to handle the request.`:r&&(s=`Invalid request method "${r.toUpperCase()}"`)),new li(e||500,a,new Error(s),!0)}function Xi(e){let t=Object.entries(e);for(let e=t.length-1;e>=0;e--){let[n,r]=t[e];if(na(r))return{key:n,result:r}}}function Zi(e){return jo({..."string"==typeof e?Ro(e):e,hash:""})}function ea(e){return oa(e.result)&&pi.has(e.result.status)}function ta(e){return"error"===e.type}function na(e){return"redirect"===(e&&e.type)}function ra(e){return"object"==typeof e&&null!=e&&"type"in e&&"data"in e&&"init"in e&&"DataWithResponseInit"===e.type}function oa(e){return null!=e&&"number"==typeof e.status&&"string"==typeof e.statusText&&"object"==typeof e.headers&&void 0!==e.body}function ia(e){return fi.has(e.toUpperCase())}function aa(e){return new URLSearchParams(e).getAll("index").some((e=>""===e))}function sa(e,t){let n="string"==typeof t?Ro(t).search:t.search;if(e[e.length-1].route.index&&aa(n||""))return e[e.length-1];let r=ti(e);return r[r.length-1]}function la(e){let{formMethod:t,formAction:n,formEncType:r,text:o,formData:i,json:a}=e;if(t&&n&&r)return null!=o?{formMethod:t,formAction:n,formEncType:r,formData:void 0,json:void 0,text:o}:null!=i?{formMethod:t,formAction:n,formEncType:r,formData:i,json:void 0,text:void 0}:void 0!==a?{formMethod:t,formAction:n,formEncType:r,formData:void 0,json:a,text:void 0}:void 0}function ua(e,t){return t?{state:"loading",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}:{state:"loading",location:e,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0}}function ca(e,t){return e?{state:"loading",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t}:{state:"loading",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:t}}function fa(e){return{state:"idle",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:e}}var ha=a.createContext(null);ha.displayName="DataRouter";var da=a.createContext(null);da.displayName="DataRouterState";var pa=a.createContext({isTransitioning:!1});pa.displayName="ViewTransition";var ma=a.createContext(new Map);ma.displayName="Fetchers",a.createContext(null).displayName="Await";var ga=a.createContext(null);ga.displayName="Navigation";var ya=a.createContext(null);ya.displayName="Location";var va=a.createContext({outlet:null,matches:[],isDataRoute:!1});va.displayName="Route";var ba=a.createContext(null);function wa(){return null!=a.useContext(ya)}function _a(){return Co(wa(),"useLocation() may be used only in the context of a component."),a.useContext(ya).location}ba.displayName="RouteError";var Sa="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function ka(e){a.useContext(ga).static||a.useLayoutEffect(e)}function xa(){let{isDataRoute:e}=a.useContext(va);return e?function(){let{router:e}=function(e){let t=a.useContext(ha);return Co(t,Ra(e)),t}("useNavigate"),t=La("useNavigate"),n=a.useRef(!1);return ka((()=>{n.current=!0})),a.useCallback((async(r,o={})=>{To(n.current,Sa),n.current&&("number"==typeof r?e.navigate(r):await e.navigate(r,{fromRouteId:t,...o}))}),[e,t])}():function(){Co(wa(),"useNavigate() may be used only in the context of a component.");let e=a.useContext(ha),{basename:t,navigator:n}=a.useContext(ga),{matches:r}=a.useContext(va),{pathname:o}=_a(),i=JSON.stringify(ni(r)),s=a.useRef(!1);ka((()=>{s.current=!0}));let l=a.useCallback(((r,a={})=>{if(To(s.current,Sa),!s.current)return;if("number"==typeof r)return void n.go(r);let l=ri(r,JSON.parse(i),o,"path"===a.relative);null==e&&"/"!==t&&(l.pathname="/"===l.pathname?t:oi([t,l.pathname])),(a.replace?n.replace:n.push)(l,a.state,a)}),[t,n,i,o,e]);return l}()}var Ea=a.createContext(null);function Oa(){let{matches:e}=a.useContext(va),t=e[e.length-1];return t?t.params:{}}function Pa(e,{relative:t}={}){let{matches:n}=a.useContext(va),{pathname:r}=_a(),o=JSON.stringify(ni(n));return a.useMemo((()=>ri(e,JSON.parse(o),r,"path"===t)),[e,o,r,t])}function Ca(e,t,n,r){Co(wa(),"useRoutes() may be used only in the context of a component.");let{navigator:o,static:i}=a.useContext(ga),{matches:s}=a.useContext(va),l=s[s.length-1],u=l?l.params:{},c=l?l.pathname:"/",f=l?l.pathnameBase:"/",h=l&&l.route;{let e=h&&h.path||"";Da(c,!h||e.endsWith("*")||e.endsWith("*?"),`You rendered descendant (or called \`useRoutes()\`) at "${c}" (under ) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render.\n\nPlease change the parent to .`)}let d,p=_a();if(t){let e="string"==typeof t?Ro(t):t;Co("/"===f||e.pathname?.startsWith(f),`When overriding the location using \`\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${f}" but pathname "${e.pathname}" was given in the \`location\` prop.`),d=e}else d=p;let m=d.pathname||"/",g=m;if("/"!==f){let e=f.replace(/^\//,"").split("/");g="/"+m.replace(/^\//,"").split("/").slice(e.length).join("/")}let y=!i&&n&&n.matches&&n.matches.length>0?n.matches:Fo(e,{pathname:g});To(h||null!=y,`No routes matched location "${d.pathname}${d.search}${d.hash}" `),To(null==y||void 0!==y[y.length-1].route.element||void 0!==y[y.length-1].route.Component||void 0!==y[y.length-1].route.lazy,`Matched leaf route at location "${d.pathname}${d.search}${d.hash}" does not have an element or Component. This means it will render an with a null value by default resulting in an "empty" page.`);let v=function(e,t=[],n=null){if(null==e){if(!n)return null;if(n.errors)e=n.matches;else{if(0!==t.length||n.initialized||!(n.matches.length>0))return null;e=n.matches}}let r=e,o=n?.errors;if(null!=o){let e=r.findIndex((e=>e.route.id&&void 0!==o?.[e.route.id]));Co(e>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(o).join(",")}`),r=r.slice(0,Math.min(r.length,e+1))}let i=!1,s=-1;if(n)for(let e=0;e=0?r.slice(0,s+1):[r[0]];break}}}return r.reduceRight(((e,l,u)=>{let c,f=!1,h=null,d=null;n&&(c=o&&l.route.id?o[l.route.id]:void 0,h=l.route.errorElement||Aa,i&&(s<0&&0===u?(Da("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),f=!0,d=null):s===u&&(f=!0,d=l.route.hydrateFallbackElement||null)));let p=t.concat(r.slice(0,u+1)),m=()=>{let t;return t=c?h:f?d:l.route.Component?a.createElement(l.route.Component,null):l.route.element?l.route.element:e,a.createElement(ja,{match:l,routeContext:{outlet:e,matches:p,isDataRoute:null!=n},children:t})};return n&&(l.route.ErrorBoundary||l.route.errorElement||0===u)?a.createElement(Ia,{location:n.location,revalidation:n.revalidation,component:h,error:c,children:m(),routeContext:{outlet:null,matches:p,isDataRoute:!0}}):m()}),null)}(y&&y.map((e=>Object.assign({},e,{params:Object.assign({},u,e.params),pathname:oi([f,o.encodeLocation?o.encodeLocation(e.pathname).pathname:e.pathname]),pathnameBase:"/"===e.pathnameBase?f:oi([f,o.encodeLocation?o.encodeLocation(e.pathnameBase).pathname:e.pathnameBase])}))),s,n,r);return t&&v?a.createElement(ya.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",...d},navigationType:"POP"}},v):v}function Ta(){let e=function(){let e=a.useContext(ba),t=function(e){let t=a.useContext(da);return Co(t,Ra(e)),t}("useRouteError"),n=La("useRouteError");return void 0!==e?e:t.errors?.[n]}(),t=ui(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,r="rgba(200,200,200, 0.5)",o={padding:"0.5rem",backgroundColor:r},i={padding:"2px 4px",backgroundColor:r},s=null;return console.error("Error handled by React Router default ErrorBoundary:",e),s=a.createElement(a.Fragment,null,a.createElement("p",null,"💿 Hey developer 👋"),a.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",a.createElement("code",{style:i},"ErrorBoundary")," or"," ",a.createElement("code",{style:i},"errorElement")," prop on your route.")),a.createElement(a.Fragment,null,a.createElement("h2",null,"Unexpected Application Error!"),a.createElement("h3",{style:{fontStyle:"italic"}},t),n?a.createElement("pre",{style:o},n):null,s)}var Aa=a.createElement(Ta,null),Ia=class extends a.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||"idle"!==t.revalidation&&"idle"===e.revalidation?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:void 0!==e.error?e.error:t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){console.error("React Router caught the following error during render",e,t)}render(){return void 0!==this.state.error?a.createElement(va.Provider,{value:this.props.routeContext},a.createElement(ba.Provider,{value:this.state.error,children:this.props.component})):this.props.children}};function ja({routeContext:e,match:t,children:n}){let r=a.useContext(ha);return r&&r.static&&r.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(r.staticContext._deepestRenderedBoundaryId=t.route.id),a.createElement(va.Provider,{value:e},n)}function Ra(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function La(e){let t=function(e){let t=a.useContext(va);return Co(t,Ra(e)),t}(e),n=t.matches[t.matches.length-1];return Co(n.route.id,`${e} can only be used on routes that contain a unique "id"`),n.route.id}var Na={};function Da(e,t,n){t||Na[e]||(Na[e]=!0,To(!1,n))}var Ma={};function Fa(e,t){e||Ma[t]||(Ma[t]=!0,console.warn(t))}function Ba(e){let t={hasErrorBoundary:e.hasErrorBoundary||null!=e.ErrorBoundary||null!=e.errorElement};return e.Component&&(e.element&&To(!1,"You should not include both `Component` and `element` on your route - `Component` will be used."),Object.assign(t,{element:a.createElement(e.Component),Component:void 0})),e.HydrateFallback&&(e.hydrateFallbackElement&&To(!1,"You should not include both `HydrateFallback` and `hydrateFallbackElement` on your route - `HydrateFallback` will be used."),Object.assign(t,{hydrateFallbackElement:a.createElement(e.HydrateFallback),HydrateFallback:void 0})),e.ErrorBoundary&&(e.errorElement&&To(!1,"You should not include both `ErrorBoundary` and `errorElement` on your route - `ErrorBoundary` will be used."),Object.assign(t,{errorElement:a.createElement(e.ErrorBoundary),ErrorBoundary:void 0})),t}var Ua=class{constructor(){this.status="pending",this.promise=new Promise(((e,t)=>{this.resolve=t=>{"pending"===this.status&&(this.status="resolved",e(t))},this.reject=e=>{"pending"===this.status&&(this.status="rejected",t(e))}}))}};function za({router:e,flushSync:t}){let[n,r]=a.useState(e.state),[o,i]=a.useState(),[s,l]=a.useState({isTransitioning:!1}),[u,c]=a.useState(),[f,h]=a.useState(),[d,p]=a.useState(),m=a.useRef(new Map),g=a.useCallback(((n,{deletedFetchers:o,flushSync:s,viewTransitionOpts:d})=>{n.fetchers.forEach(((e,t)=>{void 0!==e.data&&m.current.set(t,e.data)})),o.forEach((e=>m.current.delete(e))),Fa(!1===s||null!=t,'You provided the `flushSync` option to a router update, but you are not using the `` from `react-router/dom` so `ReactDOM.flushSync()` is unavailable. Please update your app to `import { RouterProvider } from "react-router/dom"` and ensure you have `react-dom` installed as a dependency to use the `flushSync` option.');let g=null!=e.window&&null!=e.window.document&&"function"==typeof e.window.document.startViewTransition;if(Fa(null==d||g,"You provided the `viewTransition` option to a router update, but you do not appear to be running in a DOM environment as `window.startViewTransition` is not available."),d&&g){if(t&&s){t((()=>{f&&(u&&u.resolve(),f.skipTransition()),l({isTransitioning:!0,flushSync:!0,currentLocation:d.currentLocation,nextLocation:d.nextLocation})}));let o=e.window.document.startViewTransition((()=>{t((()=>r(n)))}));return o.finished.finally((()=>{t((()=>{c(void 0),h(void 0),i(void 0),l({isTransitioning:!1})}))})),void t((()=>h(o)))}f?(u&&u.resolve(),f.skipTransition(),p({state:n,currentLocation:d.currentLocation,nextLocation:d.nextLocation})):(i(n),l({isTransitioning:!0,flushSync:!1,currentLocation:d.currentLocation,nextLocation:d.nextLocation}))}else t&&s?t((()=>r(n))):a.startTransition((()=>r(n)))}),[e.window,t,f,u]);a.useLayoutEffect((()=>e.subscribe(g)),[e,g]),a.useEffect((()=>{s.isTransitioning&&!s.flushSync&&c(new Ua)}),[s]),a.useEffect((()=>{if(u&&o&&e.window){let t=o,n=u.promise,s=e.window.document.startViewTransition((async()=>{a.startTransition((()=>r(t))),await n}));s.finished.finally((()=>{c(void 0),h(void 0),i(void 0),l({isTransitioning:!1})})),h(s)}}),[o,u,e.window]),a.useEffect((()=>{u&&o&&n.location.key===o.location.key&&u.resolve()}),[u,f,n.location,o]),a.useEffect((()=>{!s.isTransitioning&&d&&(i(d.state),l({isTransitioning:!0,flushSync:!1,currentLocation:d.currentLocation,nextLocation:d.nextLocation}),p(void 0))}),[s.isTransitioning,d]);let y=a.useMemo((()=>({createHref:e.createHref,encodeLocation:e.encodeLocation,go:t=>e.navigate(t),push:(t,n,r)=>e.navigate(t,{state:n,preventScrollReset:r?.preventScrollReset}),replace:(t,n,r)=>e.navigate(t,{replace:!0,state:n,preventScrollReset:r?.preventScrollReset})})),[e]),v=e.basename||"/",b=a.useMemo((()=>({router:e,navigator:y,static:!1,basename:v})),[e,y,v]);return a.createElement(a.Fragment,null,a.createElement(ha.Provider,{value:b},a.createElement(da.Provider,{value:n},a.createElement(ma.Provider,{value:m.current},a.createElement(pa.Provider,{value:s},a.createElement(Wa,{basename:v,location:n.location,navigationType:n.historyAction,navigator:y},a.createElement(Va,{routes:e.routes,future:e.future,state:n})))))),null)}var Va=a.memo((function({routes:e,future:t,state:n}){return Ca(e,void 0,n,t)}));function Ha({to:e,replace:t,state:n,relative:r}){Co(wa()," may be used only in the context of a component.");let{static:o}=a.useContext(ga);To(!o," must not be used on the initial render in a . This is a no-op, but you should modify your code so the is only ever rendered in response to some user interaction or state change.");let{matches:i}=a.useContext(va),{pathname:s}=_a(),l=xa(),u=ri(e,ni(i),s,"path"===r),c=JSON.stringify(u);return a.useEffect((()=>{l(JSON.parse(c),{replace:t,state:n,relative:r})}),[l,c,r,t,n]),null}function $a(e){return function(e){let t=a.useContext(va).outlet;return t?a.createElement(Ea.Provider,{value:e},t):t}(e.context)}function Wa({basename:e="/",children:t=null,location:n,navigationType:r="POP",navigator:o,static:i=!1}){Co(!wa(),"You cannot render a inside another . You should never have more than one in your app.");let s=e.replace(/^\/*/,"/"),l=a.useMemo((()=>({basename:s,navigator:o,static:i,future:{}})),[s,o,i]);"string"==typeof n&&(n=Ro(n));let{pathname:u="/",search:c="",hash:f="",state:h=null,key:d="default"}=n,p=a.useMemo((()=>{let e=Zo(u,s);return null==e?null:{location:{pathname:e,search:c,hash:f,state:h,key:d},navigationType:r}}),[s,u,c,f,h,d,r]);return To(null!=p,` is not able to match the URL "${u}${c}${f}" because it does not start with the basename, so the won't render anything.`),null==p?null:a.createElement(ga.Provider,{value:l},a.createElement(ya.Provider,{children:t,value:p}))}a.Component;var Ga="get",qa="application/x-www-form-urlencoded";function Ka(e){return null!=e&&"string"==typeof e.tagName}var Ja=null,Qa=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function Ya(e){return null==e||Qa.has(e)?e:(To(!1,`"${e}" is not a valid \`encType\` for \`
\`/\`\` and will default to "${qa}"`),null)}function Xa(e,t){if(!1===e||null==e)throw new Error(t)}function Za(e){return null!=e&&(null==e.href?"preload"===e.rel&&"string"==typeof e.imageSrcSet&&"string"==typeof e.imageSizes:"string"==typeof e.rel&&"string"==typeof e.href)}function es(e,t,n,r,o,i){let a=(e,t)=>!n[t]||e.route.id!==n[t].route.id,s=(e,t)=>n[t].pathname!==e.pathname||n[t].route.path?.endsWith("*")&&n[t].params["*"]!==e.params["*"];return"assets"===i?t.filter(((e,t)=>a(e,t)||s(e,t))):"data"===i?t.filter(((t,i)=>{let l=r.routes[t.route.id];if(!l||!l.hasLoader)return!1;if(a(t,i)||s(t,i))return!0;if(t.route.shouldRevalidate){let r=t.route.shouldRevalidate({currentUrl:new URL(o.pathname+o.search+o.hash,window.origin),currentParams:n[0]?.params||{},nextUrl:new URL(e,window.origin),nextParams:t.params,defaultShouldRevalidate:!0});if("boolean"==typeof r)return r}return!0})):[]}function ts(e,t,{includeHydrateFallback:n}={}){return r=e.map((e=>{let r=t.routes[e.route.id];if(!r)return[];let o=[r.module];return r.clientActionModule&&(o=o.concat(r.clientActionModule)),r.clientLoaderModule&&(o=o.concat(r.clientLoaderModule)),n&&r.hydrateFallbackModule&&(o=o.concat(r.hydrateFallbackModule)),r.imports&&(o=o.concat(r.imports)),o})).flat(1),[...new Set(r)];var r}function ns(){let e=a.useContext(ha);return Xa(e,"You must render this element inside a element"),e}function rs(){let e=a.useContext(da);return Xa(e,"You must render this element inside a element"),e}Symbol("SingleFetchRedirect"),a.Component;var os=a.createContext(void 0);function is(){let e=a.useContext(os);return Xa(e,"You must render this element inside a element"),e}function as(e,t){return n=>{e&&e(n),n.defaultPrevented||t(n)}}function ss({page:e,...t}){let{router:n}=ns(),r=a.useMemo((()=>Fo(n.routes,e,n.basename)),[n.routes,e,n.basename]);return r?a.createElement(us,{page:e,matches:r,...t}):null}function ls(e){let{manifest:t,routeModules:n}=is(),[r,o]=a.useState([]);return a.useEffect((()=>{let r=!1;return async function(e,t,n){return function(e,t){let n=new Set,r=new Set(t);return e.reduce(((e,o)=>{if(t&&(null==(i=o)||"string"!=typeof i.page)&&"script"===o.as&&o.href&&r.has(o.href))return e;var i;let a=JSON.stringify(function(e){let t={},n=Object.keys(e).sort();for(let r of n)t[r]=e[r];return t}(o));return n.has(a)||(n.add(a),e.push({key:a,link:o})),e}),[])}((await Promise.all(e.map((async e=>{let r=t.routes[e.route.id];if(r){let e=await async function(e,t){if(e.id in t)return t[e.id];try{let n=await import(e.module);return t[e.id]=n,n}catch(t){return console.error(`Error loading route module \`${e.module}\`, reloading page...`),console.error(t),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise((()=>{}))}}(r,n);return e.links?e.links():[]}return[]})))).flat(1).filter(Za).filter((e=>"stylesheet"===e.rel||"preload"===e.rel)).map((e=>"stylesheet"===e.rel?{...e,rel:"prefetch",as:"style"}:{...e,rel:"prefetch"})))}(e,t,n).then((e=>{r||o(e)})),()=>{r=!0}}),[e,t,n]),r}function us({page:e,matches:t,...n}){let r=_a(),{manifest:o,routeModules:i}=is(),{basename:s}=ns(),{loaderData:l,matches:u}=rs(),c=a.useMemo((()=>es(e,t,u,o,r,"data")),[e,t,u,o,r]),f=a.useMemo((()=>es(e,t,u,o,r,"assets")),[e,t,u,o,r]),h=a.useMemo((()=>{if(e===r.pathname+r.search+r.hash)return[];let n=new Set,a=!1;if(t.forEach((e=>{let t=o.routes[e.route.id];t&&t.hasLoader&&(!c.some((t=>t.route.id===e.route.id))&&e.route.id in l&&i[e.route.id]?.shouldRevalidate||t.hasClientLoader?a=!0:n.add(e.route.id))})),0===n.size)return[];let u=function(e,t){let n="string"==typeof e?new URL(e,"undefined"==typeof window?"server://singlefetch/":window.location.origin):e;return"/"===n.pathname?n.pathname="_root.data":t&&"/"===Zo(n.pathname,t)?n.pathname=`${t.replace(/\/$/,"")}/_root.data`:n.pathname=`${n.pathname.replace(/\/$/,"")}.data`,n}(e,s);return a&&n.size>0&&u.searchParams.set("_routes",t.filter((e=>n.has(e.route.id))).map((e=>e.route.id)).join(",")),[u.pathname+u.search]}),[s,l,r,o,c,t,e,i]),d=a.useMemo((()=>ts(f,o)),[f,o]),p=ls(f);return a.createElement(a.Fragment,null,h.map((e=>a.createElement("link",{key:e,rel:"prefetch",as:"fetch",href:e,...n}))),d.map((e=>a.createElement("link",{key:e,rel:"modulepreload",href:e,...n}))),p.map((({key:e,link:t})=>a.createElement("link",{key:e,...t}))))}os.displayName="FrameworkContext";function cs(...e){return t=>{e.forEach((e=>{"function"==typeof e?e(t):null!=e&&(e.current=t)}))}}var fs="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement;try{fs&&(window.__reactRouterVersion="7.5.0")}catch(e){}function hs(){let e=window?.__staticRouterHydrationData;return e&&e.errors&&(e={...e,errors:ds(e.errors)}),e}function ds(e){if(!e)return null;let t=Object.entries(e),n={};for(let[e,r]of t)if(r&&"RouteErrorResponse"===r.__type)n[e]=new li(r.status,r.statusText,r.data,!0===r.internal);else if(r&&"Error"===r.__type){if(r.__subType){let t=window[r.__subType];if("function"==typeof t)try{let o=new t(r.message);o.stack="",n[e]=o}catch(e){}}if(null==n[e]){let t=new Error(r.message);t.stack="",n[e]=t}}else n[e]=r;return n}var ps=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,ms=a.forwardRef((function({onClick:e,discover:t="render",prefetch:n="none",relative:r,reloadDocument:o,replace:i,state:s,target:l,to:u,preventScrollReset:c,viewTransition:f,...h},d){let p,{basename:m}=a.useContext(ga),g="string"==typeof u&&ps.test(u),y=!1;if("string"==typeof u&&g&&(p=u,fs))try{let e=new URL(window.location.href),t=u.startsWith("//")?new URL(e.protocol+u):new URL(u),n=Zo(t.pathname,m);t.origin===e.origin&&null!=n?u=n+t.search+t.hash:y=!0}catch(e){To(!1,` contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}let v=function(e,{relative:t}={}){Co(wa(),"useHref() may be used only in the context of a component.");let{basename:n,navigator:r}=a.useContext(ga),{hash:o,pathname:i,search:s}=Pa(e,{relative:t}),l=i;return"/"!==n&&(l="/"===i?n:oi([n,i])),r.createHref({pathname:l,search:s,hash:o})}(u,{relative:r}),[b,w,_]=function(e,t){let n=a.useContext(os),[r,o]=a.useState(!1),[i,s]=a.useState(!1),{onFocus:l,onBlur:u,onMouseEnter:c,onMouseLeave:f,onTouchStart:h}=t,d=a.useRef(null);a.useEffect((()=>{if("render"===e&&s(!0),"viewport"===e){let e=new IntersectionObserver((e=>{e.forEach((e=>{s(e.isIntersecting)}))}),{threshold:.5});return d.current&&e.observe(d.current),()=>{e.disconnect()}}}),[e]),a.useEffect((()=>{if(r){let e=setTimeout((()=>{s(!0)}),100);return()=>{clearTimeout(e)}}}),[r]);let p=()=>{o(!0)},m=()=>{o(!1),s(!1)};return n?"intent"!==e?[i,d,{}]:[i,d,{onFocus:as(l,p),onBlur:as(u,m),onMouseEnter:as(c,p),onMouseLeave:as(f,m),onTouchStart:as(h,p)}]:[!1,d,{}]}(n,h),S=function(e,{target:t,replace:n,state:r,preventScrollReset:o,relative:i,viewTransition:s}={}){let l=xa(),u=_a(),c=Pa(e,{relative:i});return a.useCallback((a=>{if(function(e,t){return!(0!==e.button||t&&"_self"!==t||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e))}(a,t)){a.preventDefault();let t=void 0!==n?n:jo(u)===jo(c);l(e,{replace:t,state:r,preventScrollReset:o,relative:i,viewTransition:s})}}),[u,l,c,n,r,t,e,o,i,s])}(u,{replace:i,state:s,target:l,preventScrollReset:c,relative:r,viewTransition:f}),k=a.createElement("a",{...h,..._,href:p||v,onClick:y||o?e:function(t){e&&e(t),t.defaultPrevented||S(t)},ref:cs(d,w),target:l,"data-discover":g||"render"!==t?void 0:"true"});return b&&!g?a.createElement(a.Fragment,null,k,a.createElement(ss,{page:v})):k}));ms.displayName="Link";var gs=a.forwardRef((function({"aria-current":e="page",caseSensitive:t=!1,className:n="",end:r=!1,style:o,to:i,viewTransition:s,children:l,...u},c){let f=Pa(i,{relative:u.relative}),h=_a(),d=a.useContext(da),{navigator:p,basename:m}=a.useContext(ga),g=null!=d&&function(e,t={}){let n=a.useContext(pa);Co(null!=n,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:r}=vs("useViewTransitionState"),o=Pa(e,{relative:t.relative});if(!n.isTransitioning)return!1;let i=Zo(n.currentLocation.pathname,r)||n.currentLocation.pathname,s=Zo(n.nextLocation.pathname,r)||n.nextLocation.pathname;return null!=Yo(o.pathname,s)||null!=Yo(o.pathname,i)}(f)&&!0===s,y=p.encodeLocation?p.encodeLocation(f).pathname:f.pathname,v=h.pathname,b=d&&d.navigation&&d.navigation.location?d.navigation.location.pathname:null;t||(v=v.toLowerCase(),b=b?b.toLowerCase():null,y=y.toLowerCase()),b&&m&&(b=Zo(b,m)||b);const w="/"!==y&&y.endsWith("/")?y.length-1:y.length;let _,S=v===y||!r&&v.startsWith(y)&&"/"===v.charAt(w),k=null!=b&&(b===y||!r&&b.startsWith(y)&&"/"===b.charAt(y.length)),x={isActive:S,isPending:k,isTransitioning:g},E=S?e:void 0;_="function"==typeof n?n(x):[n,S?"active":null,k?"pending":null,g?"transitioning":null].filter(Boolean).join(" ");let O="function"==typeof o?o(x):o;return a.createElement(ms,{...u,"aria-current":E,className:_,ref:c,style:O,to:i,viewTransition:s},"function"==typeof l?l(x):l)}));gs.displayName="NavLink";var ys=a.forwardRef((({discover:e="render",fetcherKey:t,navigate:n,reloadDocument:r,replace:o,state:i,method:s=Ga,action:l,onSubmit:u,relative:c,preventScrollReset:f,viewTransition:h,...d},p)=>{let m=function(){let{router:e}=vs("useSubmit"),{basename:t}=a.useContext(ga),n=La("useRouteId");return a.useCallback((async(r,o={})=>{let{action:i,method:a,encType:s,formData:l,body:u}=function(e,t){let n,r,o,i,a;if(Ka(s=e)&&"form"===s.tagName.toLowerCase()){let a=e.getAttribute("action");r=a?Zo(a,t):null,n=e.getAttribute("method")||Ga,o=Ya(e.getAttribute("enctype"))||qa,i=new FormData(e)}else if(function(e){return Ka(e)&&"button"===e.tagName.toLowerCase()}(e)||function(e){return Ka(e)&&"input"===e.tagName.toLowerCase()}(e)&&("submit"===e.type||"image"===e.type)){let a=e.form;if(null==a)throw new Error('Cannot submit a + + + -} + ); +}; diff --git a/src/App/pages/AllUsersPage/provider.tsx b/src/App/pages/AllUsersPage/provider.tsx index bd4467c..1f6e2ad 100644 --- a/src/App/pages/AllUsersPage/provider.tsx +++ b/src/App/pages/AllUsersPage/provider.tsx @@ -1,9 +1,6 @@ import { FiltersContext } from "components/FiltersSection/context"; import { usersFilterOptions } from "config/filterOptions"; import { AllUsersStore } from "store/AllUsersStore"; -import { FiltersType } from "store/RootStore"; -import { filtersStore } from "store/RootStore/FiltersStore/instance"; -import { searchStore } from "store/RootStore/SearchStore/instance"; import { UsersContext, useUsersPageStore } from "./context"; export const UsersProvider = ({ children }: { children: React.ReactNode }) => { @@ -13,6 +10,16 @@ export const UsersProvider = ({ children }: { children: React.ReactNode }) => { }; export const UsersFiltersProvider = ({ children }: { children: React.ReactNode }) => { - const usersStore = useUsersPageStore() - return {children}; + const usersStore = useUsersPageStore(); + return ( + + {children} + + ); }; diff --git a/src/App/pages/CreateRepoPage/CreateRepoPage.module.scss b/src/App/pages/CreateRepoPage/CreateRepoPage.module.scss new file mode 100644 index 0000000..4c2f95c --- /dev/null +++ b/src/App/pages/CreateRepoPage/CreateRepoPage.module.scss @@ -0,0 +1,28 @@ +@use "styles/mixins" as mixins; +@use "styles/variables" as *; + +.root { + height: 90vh; + + &__form { + background-color: var(--card-background); + } + + &__field { + display: block; + margin-bottom: $space-xs; + border: 1px solid $brand-secondary; + border-radius: $border-radius; + } + + &__private { + @include mixins.flex; + text-align: left; + gap: $space-xxs; + margin-bottom: $space-s; + + &__field { + flex-shrink: 0; + } + } +} diff --git a/src/App/pages/CreateRepoPage/CreateRepoPage.tsx b/src/App/pages/CreateRepoPage/CreateRepoPage.tsx new file mode 100644 index 0000000..ceabfc6 --- /dev/null +++ b/src/App/pages/CreateRepoPage/CreateRepoPage.tsx @@ -0,0 +1,63 @@ +import cn from "classnames"; +import { Button } from "components/Button"; +import { CheckBox } from "components/Checkbox"; +import { Input } from "components/Input"; +import { Text } from "components/Text"; +import { useLocalObservable } from "mobx-react-lite"; +import { useState } from "react"; +import { RepoStore } from "store/RepoStore"; +import styles from "./CreateRepoPage.module.scss"; + +export const CreateRepoPage: React.FC = () => { + const [repoName, setRepoName] = useState(""); + const [description, setDescription] = useState(""); + const [isPrivate, setIsPrivate] = useState(false); + + const repoStore = useLocalObservable(() => new RepoStore()); + + const handleSubmit = async (e: React.FormEvent) => { + e.preventDefault(); + + repoStore.createRepo({ + name: repoName, + description: description, + private: isPrivate, + }); + }; + + return ( +
+
+ + Create a new repository + + + setRepoName(value)} + > + setDescription(value)} + > +
+ setIsPrivate(value)} /> +
+ + Private + + + You choose who can see and commit to this repository + +
+
+ + +
+
+ ); +}; diff --git a/src/App/pages/CreateRepoPage/index.ts b/src/App/pages/CreateRepoPage/index.ts new file mode 100644 index 0000000..2653d69 --- /dev/null +++ b/src/App/pages/CreateRepoPage/index.ts @@ -0,0 +1 @@ +export {CreateRepoPage} from "./CreateRepoPage" \ No newline at end of file diff --git a/src/App/pages/LoginPage/LoginPage.module.scss b/src/App/pages/LoginPage/LoginPage.module.scss index e69de29..c75a996 100644 --- a/src/App/pages/LoginPage/LoginPage.module.scss +++ b/src/App/pages/LoginPage/LoginPage.module.scss @@ -0,0 +1,9 @@ +@use "styles/variables" as *; + +.root { + height: 90vh; + + &__form { + + } +} diff --git a/src/App/pages/LoginPage/LoginPage.tsx b/src/App/pages/LoginPage/LoginPage.tsx index 565e0a4..148f146 100644 --- a/src/App/pages/LoginPage/LoginPage.tsx +++ b/src/App/pages/LoginPage/LoginPage.tsx @@ -1,32 +1,30 @@ -import React, { useState } from 'react'; -import { observer } from 'mobx-react-lite'; -import { Input } from 'components/Input'; +import AuthService from "api/AuthService"; +import cn from "classnames"; +import { Button } from "components/Button"; +import { GhLogo } from "components/icons/GhLogo"; +import { Text } from "components/Text"; +import { routesConfig } from "config/routes"; +import { observer } from "mobx-react-lite"; +import { useNavigate } from "react-router-dom"; import styles from "./LoginPage.module.scss"; -import { rootStore } from 'store/RootStore'; -import { Button } from 'components/Button'; export const LoginPage = observer(() => { - // const [formData, setFormData] = useState({ - // username: '', - // email: '', - // password: '', - // }); - const [login, setLogin] = useState(''); - const [password, setPassword] = useState(''); + const navigate = useNavigate(); - const handleSubmit = (e) => { - e.preventDefault(); - rootStore.auth.login(login, password); - // if (authStore.user) { - // history.push('/'); // Перенаправление на главную страницу после успешной регистрации - // } + const handleLogin = async () => { + await AuthService.login(); + navigate(routesConfig.repositories.create()); }; return ( -
- setLogin(value)} placeholder="Login" /> - setPassword(value)} placeholder="Password" type="password" /> - -
+
+
+ + + GitHub Authorization + + +
+
); }); diff --git a/src/App/pages/RegisterPage/RegisterPage.module.scss b/src/App/pages/RegisterPage/RegisterPage.module.scss deleted file mode 100644 index e69de29..0000000 diff --git a/src/App/pages/RegisterPage/RegisterPage.tsx b/src/App/pages/RegisterPage/RegisterPage.tsx deleted file mode 100644 index d6fadfb..0000000 --- a/src/App/pages/RegisterPage/RegisterPage.tsx +++ /dev/null @@ -1,45 +0,0 @@ -import React, { useState } from 'react'; -import { observer } from 'mobx-react-lite'; -import { Input } from 'components/Input'; -import { Text } from "components/Text"; -import styles from "./RegisterPage.module.scss"; -import { Button } from 'components/Button'; -import { rootStore } from 'store/RootStore'; -import { useNavigate } from 'react-router'; - -export const RegisterPage = observer(() => { - const [email, setEmail] = useState(''); - const [login, setLogin] = useState(''); - const [password, setPassword] = useState(''); - // const [formData, setFormData] = useState({ - // username: '', - // email: '', - // password: '', - // }); - - const navigate = useNavigate(); - - const handleSubmit = (e) => { - e.preventDefault(); - console.log("FFFFF", email, login, password) - rootStore.auth.register(email, login, password); - // if (rootStore.auth.user) { - // navigate('/'); - // } - }; - - return ( -
- - Sign up to Github Client - -
- setEmail(value)} placeholder="Email" /> - setLogin(value)} placeholder="Login" /> - setPassword(value)} placeholder="Password" type="password" /> - -
-
- ); -}); - diff --git a/src/App/pages/RegisterPage/index.ts b/src/App/pages/RegisterPage/index.ts deleted file mode 100644 index ea060c9..0000000 --- a/src/App/pages/RegisterPage/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { RegisterPage } from "./RegisterPage" \ No newline at end of file diff --git a/src/App/pages/RepoDetailPage/RepoDetailPage.module.scss b/src/App/pages/RepoDetailPage/RepoDetailPage.module.scss index 5e38ae1..f563f26 100644 --- a/src/App/pages/RepoDetailPage/RepoDetailPage.module.scss +++ b/src/App/pages/RepoDetailPage/RepoDetailPage.module.scss @@ -1,18 +1,26 @@ @use "styles/variables" as *; @use "styles/mixins" as mixins; +@use "styles/funcs" as funcs; .root { - background-color: white; padding-bottom: 80px; min-height: 100vh; - &__page { - margin-left: $content-margin; - margin-right: $content-margin; - } - &__info { display: flex; - gap: 80px; + gap: funcs.rem(80); + } +} + +@media (max-width: funcs.rem(600)) { + .root__info { + gap: funcs.rem(40); + } +} + +@media (max-width: funcs.rem(550)) { + .root__info { + flex-direction: column; + row-gap: funcs.rem(5); } } diff --git a/src/App/pages/RepoDetailPage/RepoDetailPage.tsx b/src/App/pages/RepoDetailPage/RepoDetailPage.tsx index 3151407..3436e2c 100644 --- a/src/App/pages/RepoDetailPage/RepoDetailPage.tsx +++ b/src/App/pages/RepoDetailPage/RepoDetailPage.tsx @@ -1,5 +1,8 @@ +import cn from "classnames"; +import { useBackground } from "components/Layout/context"; import { Loader } from "components/Loader"; import { observer } from "mobx-react-lite"; +import { useEffect } from "react"; import { useParams } from "react-router"; import { Meta } from "utils/meta"; import { addViewedRepo } from "utils/viewedRepos"; @@ -16,36 +19,38 @@ import styles from "./RepoDetailPage.module.scss"; const RepoDetailPageContent: React.FC = observer(() => { const store = useRepoPageStore(); - const repo = store.repo; + const repo = store?.repo; + const { setBackgroundColor } = useBackground(); - if (!repo) { - return
Репозиторий не найден
; + useEffect(() => { + setBackgroundColor("accent"); + return () => setBackgroundColor("normal"); + }, [setBackgroundColor]); + + if (store.repoMeta === Meta.loading) { + return ; + } + + if (store.repoMeta === Meta.error) { + return
Repository not found
; } addViewedRepo(repo); return ( -
- {store.repoMeta === Meta.loading && } - {store.repoMeta === Meta.error &&
Репозиторий не найден
} -
- - {repo.homepage && } - {repo.topics && } - - - -
- {store?.contributors?.length !== 0 && } - -
- - +
+ + {repo.homepage && } + {repo.topics && } + + + +
+ {store?.contributors?.length !== 0 && } +
+ + {store.readmeMeta === Meta.success && }
); }); diff --git a/src/App/pages/RepoDetailPage/components/ContributorsSection/ContributorsItem/ContributorsItem.tsx b/src/App/pages/RepoDetailPage/components/ContributorsSection/ContributorsItem/ContributorsItem.tsx index 3c68711..a8d7471 100644 --- a/src/App/pages/RepoDetailPage/components/ContributorsSection/ContributorsItem/ContributorsItem.tsx +++ b/src/App/pages/RepoDetailPage/components/ContributorsSection/ContributorsItem/ContributorsItem.tsx @@ -15,7 +15,7 @@ export const ContributorsItem: React.FC = ({ login, avata
- + {login} diff --git a/src/App/pages/RepoDetailPage/components/LanguagesSection/LanguagesSection.tsx b/src/App/pages/RepoDetailPage/components/LanguagesSection/LanguagesSection.tsx index e4ad1be..47ea5cf 100644 --- a/src/App/pages/RepoDetailPage/components/LanguagesSection/LanguagesSection.tsx +++ b/src/App/pages/RepoDetailPage/components/LanguagesSection/LanguagesSection.tsx @@ -6,42 +6,47 @@ import { toJS } from "mobx"; import { colors } from "config/githubColors"; export const LanguagesSection: React.FC<{ store: RepoStore }> = observer(({ store }) => { - let languages = {} - if (store.languages) { - languages = toJS(store.languages) - } - const totalBytes = Object.values(languages).reduce((acc, val) => acc + val, 0); + let languages = {}; + if (store.languages) { + languages = toJS(store.languages); + } + const totalBytes = Object.values(languages).reduce((acc, val) => acc + val, 0); - return ( -
- - Languages - -
- {Object.entries(languages).map(([language, bytes]) => { - const percentage = (bytes / totalBytes) * 100; - const color = colors[language].color - return ( -
- ); - })} + return ( +
+ + Languages + +
+ {Object.entries(languages).map(([language, bytes]) => { + const percentage = (bytes / totalBytes) * 100; + const color = colors[language].color; + return ( +
+ ); + })} +
+
+ {Object.entries(languages).map(([language, bytes]) => { + const percentage = (bytes / totalBytes) * 100; + const color = colors[language].color; + return ( +
+
+ + {`${language}: `} + + {percentage.toFixed(2)}% + +
-
- {Object.entries(languages).map(([language, bytes]) => { - const percentage = (bytes / totalBytes) * 100; - const color = colors[language].color - return ( -
-
- {`${language}: `}{percentage.toFixed(2)}% -
- ); - })} -
-
- ); -}) + ); + })} +
+
+ ); +}); diff --git a/src/App/pages/RepoDetailPage/components/Readme/Readme.module.scss b/src/App/pages/RepoDetailPage/components/Readme/Readme.module.scss index f7c5638..436b329 100644 --- a/src/App/pages/RepoDetailPage/components/Readme/Readme.module.scss +++ b/src/App/pages/RepoDetailPage/components/Readme/Readme.module.scss @@ -3,6 +3,8 @@ .root { border: 1px solid $brand-secondary; border-radius: 4px; + max-width: 900px; + color: var(--text-primary); &__title { margin: $space-m; @@ -10,5 +12,29 @@ &__content { margin: 32px; + + img { + max-width: 100%; + } + + pre { + background-color: var(--body-background); + padding: 16px; + border-radius: 4px; + width: 100%; + overflow-x: auto; + } + } +} + +@media (max-width: 500px) { + .root__content { + margin: 22px; + } +} + +@media (max-width: 400px) { + .root__content { + word-break: break-all; } } diff --git a/src/App/pages/RepoDetailPage/components/Readme/Readme.tsx b/src/App/pages/RepoDetailPage/components/Readme/Readme.tsx index ae0cad9..13e4bac 100644 --- a/src/App/pages/RepoDetailPage/components/Readme/Readme.tsx +++ b/src/App/pages/RepoDetailPage/components/Readme/Readme.tsx @@ -1,18 +1,20 @@ -import { Loader } from "components/Loader"; import { Text } from "components/Text"; import { observer } from "mobx-react-lite"; -import { RepoStore } from "store"; -import { Meta } from "utils/meta"; +import ReactMarkdown from "react-markdown"; +import rehypeSanitize from "rehype-sanitize"; +import remarkGfm from "remark-gfm"; +import { RepoStore } from "store/RepoStore"; import styles from "./Readme.module.scss"; export const Readme: React.FC<{ store: RepoStore }> = observer(({ store }) => { return (
- {store.readmeMeta === Meta.loading && } README.md -
+
+ +
); }); diff --git a/src/App/pages/RepoDetailPage/components/TopicSection/TopicSection/TopicSection.module.scss b/src/App/pages/RepoDetailPage/components/TopicSection/TopicSection/TopicSection.module.scss index e475bc8..91a2360 100644 --- a/src/App/pages/RepoDetailPage/components/TopicSection/TopicSection/TopicSection.module.scss +++ b/src/App/pages/RepoDetailPage/components/TopicSection/TopicSection/TopicSection.module.scss @@ -3,6 +3,7 @@ .root { @include mixins.flex; + flex-wrap: wrap; gap: $space-xxs; margin-bottom: $space-l; diff --git a/src/App/pages/UserDetailPage/UserDetailPage.module.scss b/src/App/pages/UserDetailPage/UserDetailPage.module.scss index a205ecc..7bb359c 100644 --- a/src/App/pages/UserDetailPage/UserDetailPage.module.scss +++ b/src/App/pages/UserDetailPage/UserDetailPage.module.scss @@ -1,9 +1,35 @@ +@use "styles/variables" as *; +@use "styles/mixins" as mixins; + .user { - padding-bottom: 80px; - margin-top: 40px; + padding: 40px 0 80px 0; + + display: flex; + justify-content: space-between; + gap: 20px; + + &__name { + display: flex; + flex-direction: column; + } + + &__repos { + display: flex; + flex-direction: column; + align-items: end; + } + + &__repos__menu { + @include mixins.flex; + gap: $space-xs; + margin-bottom: $space-s; + } - &__name { - display: flex; - flex-direction: column; + @media (max-width: 1250px) { + & { + flex-direction: column; + justify-content: center; + align-items: center; } -} \ No newline at end of file + } +} diff --git a/src/App/pages/UserDetailPage/UserDetailPage.tsx b/src/App/pages/UserDetailPage/UserDetailPage.tsx index a608a0f..d5fd7b7 100644 --- a/src/App/pages/UserDetailPage/UserDetailPage.tsx +++ b/src/App/pages/UserDetailPage/UserDetailPage.tsx @@ -11,26 +11,54 @@ import { Meta } from "utils/meta"; import { useUserPageStore } from "./context"; import { UserProvider } from "./provider"; import styles from "./UserDetailPage.module.scss"; +import { rootStore } from "store/RootStore"; const UserDetailPageContent: React.FC = observer(() => { - const store = useUserPageStore(); + let store = useUserPageStore(); + const isCurrent = store.isCurrent; + + if (store.isCurrent) { + store = rootStore.auth; + } + const user = store.user; - if (!user) { - return
юзер не найден
; + if (store.userMeta === Meta.loading) { + return ; + } + + if (store.userMeta === Meta.error || !user) { + return
User not found
; } return (
- {store.userMeta === Meta.loading && } - -
- {user.name} - {user.login} +
+ +
+ + {user.name} + + + {user.login} + +
+ {user.bio} +
+
+
+ + + + + {isCurrent && ( + + + + )} +
+
- {user.bio} - -
); }); diff --git a/src/App/pages/UserDetailPage/components/UserReposSection/UserReposSection.tsx b/src/App/pages/UserDetailPage/components/UserReposSection/UserReposSection.tsx index e909c35..8bf3f80 100644 --- a/src/App/pages/UserDetailPage/components/UserReposSection/UserReposSection.tsx +++ b/src/App/pages/UserDetailPage/components/UserReposSection/UserReposSection.tsx @@ -6,13 +6,12 @@ import { Meta } from "utils/meta"; import styles from "./ReposSection.module.scss"; export const UserReposSection: React.FC<{ store: UserStore }> = observer(({ store }) => { - const reposNum = store.repos?.length - const repos = store.repos?.slice(0, 6) - - return ( -
- {store.reposMeta === Meta.loading && } - -
- ); - }); \ No newline at end of file + const repos = store.repos?.slice(0, 6); + + return ( +
+ {store.reposMeta === Meta.loading && } + +
+ ); +}); diff --git a/src/App/pages/UserReposPage/UserReposPage.tsx b/src/App/pages/UserReposPage/UserReposPage.tsx index f3339c1..aa30eaa 100644 --- a/src/App/pages/UserReposPage/UserReposPage.tsx +++ b/src/App/pages/UserReposPage/UserReposPage.tsx @@ -1,36 +1,40 @@ -import { ReposFiltersProvider, ReposProvider } from "App/pages/AllReposPage"; -import { useReposPageStore } from "App/pages/AllReposPage/context"; +import { useUserReposPageStore } from "App/pages/UserReposPage/context"; import cn from "classnames"; import { FiltersSection } from "components/FiltersSection"; import { Pagination } from "components/Pagination"; import { ReposSection } from "components/ReposSection"; import { Text } from "components/Text"; import { useParams } from "react-router"; +import { useQueryParamsStoreInit } from "store/RootStore/hooks"; +import { UserReposFiltersProvider, UserReposProvider } from "./provider"; import styles from "./UserReposPage.module.scss"; +import { observer } from "mobx-react-lite"; -const UserReposPageContent = () => { - const store = useReposPageStore(); +const UserReposPageContent = observer(() => { + const store = useUserReposPageStore(); - return ( -
- - List of user repositories - + useQueryParamsStoreInit(store.query); - + return ( +
+ + List of user repositories + - - - -
- ) -} + + + + + +
+ ); +}); export const UserReposPage = () => { - const { login } = useParams<{ login: string }>(); - return ( - - - - ); -} + const { login } = useParams<{ login: string }>(); + return ( + + + + ); +}; diff --git a/src/App/pages/UserReposPage/context.ts b/src/App/pages/UserReposPage/context.ts new file mode 100644 index 0000000..08e9c5c --- /dev/null +++ b/src/App/pages/UserReposPage/context.ts @@ -0,0 +1,13 @@ +import { createContext, useContext } from "react"; +import { UserReposStore } from "store/UserReposStore"; + +export type UserReposContextType = { + store: UserReposStore; +}; + +export const UserReposContext = createContext(null); + +export const useUserReposPageStore = () => { + const reposContext = useContext(UserReposContext); + return reposContext?.store; +}; diff --git a/src/App/pages/UserReposPage/provider.tsx b/src/App/pages/UserReposPage/provider.tsx new file mode 100644 index 0000000..ea86621 --- /dev/null +++ b/src/App/pages/UserReposPage/provider.tsx @@ -0,0 +1,27 @@ +import { FiltersContext } from "components/FiltersSection/context"; +import { userReposFilterOptions } from "config/filterOptions"; +import { UserReposStore } from "store/UserReposStore"; +import { UserReposContext, useUserReposPageStore } from "./context"; + +export const UserReposProvider = ({ ownerLogin, children }: { ownerLogin?: string; children: React.ReactNode }) => { + const store = new UserReposStore(); + store.setOwnerLogin(ownerLogin); + store.init(); + return {children}; +}; + +export const UserReposFiltersProvider = ({ children }: { children: React.ReactNode }) => { + const reposStore = useUserReposPageStore(); + + return ( + + {children} + + ); +}; diff --git a/src/App/router.tsx b/src/App/router.tsx new file mode 100644 index 0000000..29da6bf --- /dev/null +++ b/src/App/router.tsx @@ -0,0 +1,60 @@ +import App from "App/App"; +import { AllReposPage } from "App/pages/AllReposPage"; +import { AllUsersPage } from "App/pages/AllUsersPage"; +import { CreateRepoPage } from "App/pages/CreateRepoPage"; +import { LoginPage } from "App/pages/LoginPage"; +import { RepoDetailPage } from "App/pages/RepoDetailPage"; +import { UserDetailPage } from "App/pages/UserDetailPage"; +import { UserReposPage } from "App/pages/UserReposPage"; +import { AuthRoute } from "components/AuthRoute"; + +import { routesConfig } from "config/routes"; +import { createHashRouter, Navigate, RouteObject } from "react-router"; + + +const routes: RouteObject[] = [ + { + path: routesConfig.root.mask, + element: , + children: [ + { + index: true, + element: , + }, + { + path: routesConfig.repositories.mask, + element: , + }, + { + path: routesConfig.repoDetail.mask, + element: , + }, + { + path: routesConfig.users.mask, + element: , + }, + { + path: routesConfig.userRepos.mask, + element: , + }, + { + path: routesConfig.userDetail.mask, + element: , + }, + { + path: routesConfig.login.mask, + element: , + }, + { + path: routesConfig.createRepo.mask, + element: ( + + + + ), + }, + ], + }, +]; + +export const router = createHashRouter(routes); \ No newline at end of file diff --git a/src/api/AuthService.ts b/src/api/AuthService.ts index 993f341..334350a 100644 --- a/src/api/AuthService.ts +++ b/src/api/AuthService.ts @@ -1,21 +1,39 @@ -import { LoginRequestParams, RegisterRequestParams } from "api/types"; -import axios from "axios"; -import { apiUrls } from "config/apiUrls"; -import { LoginModel, normalizeRegisterModel } from "store/models"; -import { RegisterModel } from "store/models"; -import { ApiResp } from "utils/apiTypes"; -import { fetch } from "utils/fetch"; +import { auth } from "config/firebase"; +import { GithubAuthProvider, signInWithPopup, signOut } from "firebase/auth"; +import { rootStore } from "store/RootStore"; export default class AuthService { - static async Register(params: RegisterRequestParams): Promise> { - const response = await fetch(apiUrls.auth.register(), params, {}, "post"); - console.log("DDDDDDDDD", response) - - return { isError: response.isError, data: normalizeRegisterModel(response.data) }; - } + static async login() { + const provider = new GithubAuthProvider(); + provider.addScope("repo"); + try { + const result = await signInWithPopup(auth, provider); + const user = result.user; + const credential = GithubAuthProvider.credentialFromResult(result); + + let token = ""; + if (credential?.accessToken !== undefined) { + token = credential?.accessToken; + } - static async Login(params: LoginRequestParams): Promise> { - const response = await fetch(apiUrls.auth.login(), params, {}, "post"); - return { isError: response.isError, data: response.data }; + rootStore.auth.login(token, { + id: user.uid, + name: user.displayName || "", + email: user.email || "", + avatar: user.photoURL, + }); + } catch (error) { + console.error("Popup error:", error); } -} \ No newline at end of file + } + + static logout() { + signOut(auth) + .then(() => { + rootStore.auth.logout(); + }) + .catch((error) => { + console.error("Logout error:", error); + }); + } +} diff --git a/src/api/ReposService.ts b/src/api/ReposService.ts index ebf745e..0554cb5 100644 --- a/src/api/ReposService.ts +++ b/src/api/ReposService.ts @@ -1,6 +1,10 @@ -import { ReposApiRequestParams, UsersApiRequestParams, UsersReposApiRequestParams } from "api/types"; +import { ReposApiRequestParams, UsersReposApiRequestParams } from "api/types"; +import { Buffer } from "buffer"; import { apiUrls } from "config/apiUrls"; +import { rootStore } from "store/RootStore"; import { + CreateRepoModel, + RepoApiModel, RepoModel, RepoOwnerModel, normalizeRepoModel, @@ -11,81 +15,88 @@ import { ApiResp } from "utils/apiTypes"; import { Collection } from "utils/collection"; import { fetch } from "utils/fetch"; -const isParam = (param: any) => { - return param !== undefined && param !== null -} +const isParam = (param: string | number) => { + return param !== undefined && param !== null; +}; export default class ReposService { - static async getAllOrgRepos(params: ReposApiRequestParams, type: "org" | "user", ownerLogin?: string): Promise>> { + static async getAllOrgRepos(params: ReposApiRequestParams): Promise>> { if (params.org === undefined || params.org === null) { params.org = "ktsstudio"; } - let url = apiUrls.repos.organizationRepos(params.org) - if (type == "user" && ownerLogin) { - url = apiUrls.users.userRepos(ownerLogin) - } + const url = apiUrls.repos.organizationRepos(params.org); const response = await fetch(url, { type: params.type, per_page: params.perPage, page: params.page, - }); - let pagesCount = 1 + if (response.isError) { + return { isError: true, data: response.data }; + } + + let pagesCount = 1; if (response.headers?.link !== undefined) { - const linkMatchLast = response.headers?.link.match(/page=(\d+)>; rel="last"/) - const linkMatchPrev = response.headers?.link.match(/page=(\d+)>; rel="prev"/) + const linkMatchLast = response.headers?.link.match(/page=(\d+)>; rel="last"/); + const linkMatchPrev = response.headers?.link.match(/page=(\d+)>; rel="prev"/); if (linkMatchLast !== null) { - pagesCount = Number(linkMatchLast[1]) + pagesCount = Number(linkMatchLast[1]); } else { - pagesCount = Number(linkMatchPrev[1]) + 1 + pagesCount = Number(linkMatchPrev[1]) + 1; } } - return { isError: response.isError, data: normalizeReposToCollection(response.data), pagesCount: pagesCount }; } - static async getAllUserRepos(params: UsersReposApiRequestParams, ownerLogin: string): Promise>> { - let url = apiUrls.users.userRepos(ownerLogin) - let q = [] + static async getAllUserRepos( + params: UsersReposApiRequestParams, + ownerLogin: string, + ): Promise>> { + let url = apiUrls.users.userRepos(ownerLogin); + + if (rootStore.auth.user?.login === ownerLogin) { + url = apiUrls.users.currentUserRepos(); + } + + const q = []; if (isParam(params.repoName)) { - url = apiUrls.search.repos() - q.push(`${params.repoName} in:name user:${ownerLogin}`) + url = apiUrls.search.repos(); + q.push(`${params.repoName} in:name user:${ownerLogin}`); } const reqParams = { type: params.type, per_page: params.perPage, page: params.page, - } + }; if (q.length) { - reqParams.q = q.join(" ") + reqParams.q = q.join(" "); } const response = await fetch(url, reqParams); - let responseData = response.data + let responseData = response.data; if (isParam(params.repoName)) { responseData = response.data.items; } - let pagesCount = 1 + let pagesCount = 1; if (response.headers?.link !== undefined) { - const linkMatchLast = response.headers?.link.match(/page=(\d+)>; rel="last"/) - const linkMatchPrev = response.headers?.link.match(/page=(\d+)>; rel="prev"/) + const linkMatchLast = response.headers?.link.match(/page=(\d+)>; rel="last"/); + const linkMatchPrev = response.headers?.link.match(/page=(\d+)>; rel="prev"/); if (linkMatchLast !== null) { - pagesCount = Number(linkMatchLast[1]) + pagesCount = Number(linkMatchLast[1]); } else { - pagesCount = Number(linkMatchPrev[1]) + 1 + pagesCount = Number(linkMatchPrev[1]) + 1; } } @@ -95,18 +106,23 @@ export default class ReposService { static async getByRepoName(orgName: string, repoName: string): Promise> { const response = await fetch(apiUrls.repos.repoByName(orgName, repoName)); - return { isError: response.isError, data: normalizeRepoModel(response.data) }; + let data; + if (!response.isError) { + data = normalizeRepoModel(response.data as RepoApiModel); + } + + return { isError: response.isError, data: data }; } static async getReadme(orgName: string, repoName: string): Promise> { - const response = await fetch( - apiUrls.repos.repoReadme(orgName, repoName), - {}, - { - Accept: "application/vnd.github.html+json", - }, - ); - return response; + const response = await fetch(apiUrls.repos.repoReadme(orgName, repoName), { Accept: "application/vnd.github.raw" }); + + let readme = ""; + if (!response.isError) { + readme = Buffer.from(response.data.content, "base64").toString("utf-8"); + } + + return { isError: response.isError, data: readme }; } static async getContributors(orgName: string, repoName: string): Promise> { @@ -120,4 +136,10 @@ export default class ReposService { return { isError: response.isError, data: response.data }; } + + static async createRepo(params: CreateRepoModel): Promise { + const response = await fetch(apiUrls.repos.createRepo(), params, {}, "post"); + + return { isError: response.isError, data: response.data }; + } } diff --git a/src/api/UsersService.ts b/src/api/UsersService.ts index e000bd5..65246bd 100644 --- a/src/api/UsersService.ts +++ b/src/api/UsersService.ts @@ -1,62 +1,71 @@ import { UsersApiRequestParams } from "api/types"; import { apiUrls } from "config/apiUrls"; import { normalizeUserModel } from "store/models"; -import { - RepoModel, - RepoOwnerModel, - normalizeRepoOwnersToCollection, - normalizeReposToCollection -} from "store/models"; +import { RepoModel, RepoOwnerModel, normalizeRepoOwnersToCollection, normalizeReposToCollection } from "store/models"; import { UserModel } from "store/models/users"; import { ApiResp } from "utils/apiTypes"; import { Collection } from "utils/collection"; import { fetch } from "utils/fetch"; -const isParam = (param: any) => { - return param !== undefined && param !== null -} +const isParam = (param: string | number) => { + return param !== undefined && param !== null; +}; export default class UsersService { + static async getCurrentUser(): Promise> { + const response = await fetch(apiUrls.users.currentUser()); + return { isError: response.isError, data: normalizeUserModel(response.data), headers: response.headers }; + } + static async getAll(params: UsersApiRequestParams): Promise>> { - let url = apiUrls.users.users() - let q = [] + let url = apiUrls.users.users(); + const q = []; if (isParam(params.login)) { - url = apiUrls.search.users() - q.push(`${params.login} in:login`) + url = apiUrls.search.users(); + q.push(`${params.login} in:login`); } if (isParam(params.type)) { - url = apiUrls.search.users() - q.push(`type:${params.type}`) + url = apiUrls.search.users(); + q.push(`type:${params.type}`); } const reqParams = { since: params.since, per_page: params.perPage, - } + }; if (q.length) { - reqParams.q = q.join(" ") + reqParams.q = q.join(" "); } const response = await fetch(url, reqParams); - let responseData = response.data + let responseData = response.data; if (isParam(params.login) || isParam(params.type)) { responseData = response.data.items; } - return { isError: response.isError, data: normalizeRepoOwnersToCollection(responseData) }; + return { + isError: response.isError, + data: normalizeRepoOwnersToCollection(responseData), + headers: response.headers, + }; } static async getByLogin(login: string): Promise> { const response = await fetch(apiUrls.users.userByLogin(login)); - return { isError: response.isError, data: normalizeUserModel(response.data) }; + return { isError: response.isError, data: normalizeUserModel(response.data), headers: response.headers }; } static async getRepos(login: string): Promise>> { const response = await fetch(apiUrls.users.userRepos(login)); - return { isError: response.isError, data: normalizeReposToCollection(response.data) }; + return { isError: response.isError, data: normalizeReposToCollection(response.data), headers: response.headers }; + } + + static async getCurrentUserRepos(): Promise>> { + const response = await fetch(apiUrls.users.currentUserRepos()); + return { isError: response.isError, data: normalizeReposToCollection(response.data), headers: response.headers }; } } diff --git a/src/api/types.ts b/src/api/types.ts index a61e18d..3da6f9d 100644 --- a/src/api/types.ts +++ b/src/api/types.ts @@ -19,13 +19,3 @@ export type UsersReposApiRequestParams = { perPage: number | null; }; -export type RegisterRequestParams = { - email: string | null; - username: string | null; - password: string | null; -}; - -export type LoginRequestParams = { - username: string | null; - password: string | null; -}; diff --git a/src/assets/icons/moon.svg b/src/assets/icons/moon.svg new file mode 100644 index 0000000..d123ec0 --- /dev/null +++ b/src/assets/icons/moon.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/icons/sun.svg b/src/assets/icons/sun.svg new file mode 100644 index 0000000..619fc83 --- /dev/null +++ b/src/assets/icons/sun.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/components/AuthRoute/AuthRoute.tsx b/src/components/AuthRoute/AuthRoute.tsx new file mode 100644 index 0000000..abc9942 --- /dev/null +++ b/src/components/AuthRoute/AuthRoute.tsx @@ -0,0 +1,15 @@ +import { routesConfig } from "config/routes"; +import { observer } from "mobx-react-lite"; +import { Navigate, useLocation } from "react-router-dom"; +import { rootStore } from "store/RootStore"; + +export const AuthRoute = observer(({ children }: { children: React.ReactNode }) => { + const location = useLocation(); + const { isAuth } = rootStore.auth; + + if (!isAuth) { + return ; + } + + return children; +}); diff --git a/src/components/AuthRoute/index.ts b/src/components/AuthRoute/index.ts new file mode 100644 index 0000000..b49c94f --- /dev/null +++ b/src/components/AuthRoute/index.ts @@ -0,0 +1 @@ +export { AuthRoute } from "./AuthRoute"; diff --git a/src/components/Button/Button.tsx b/src/components/Button/Button.tsx index eed05ab..2b0b341 100644 --- a/src/components/Button/Button.tsx +++ b/src/components/Button/Button.tsx @@ -11,7 +11,7 @@ export type ButtonProps = React.ButtonHTMLAttributes & { className?: string; }; -export const Button: React.FC = ({ loading, children, disabled, className, ...props }) => ( +export const Button: React.FC = ({ loading, children, disabled, className, ...props }: ButtonProps) => ( + ) : ( + + + + )}
-
); -}; +}); diff --git a/src/components/Navbar/components/ThemeToggler/ThemeToggler.tsx b/src/components/Navbar/components/ThemeToggler/ThemeToggler.tsx new file mode 100644 index 0000000..7057c3d --- /dev/null +++ b/src/components/Navbar/components/ThemeToggler/ThemeToggler.tsx @@ -0,0 +1,18 @@ +import MoonIcon from "assets/icons/moon.svg"; +import SunIcon from "assets/icons/sun.svg"; +import { ThemeContext } from "components/Layout/context"; +import * as React from "react"; + +export const ThemeToggler: React.FC = () => { + const { theme, setTheme } = React.useContext(ThemeContext); + + return ( + + ); +}; diff --git a/src/components/Navbar/components/ThemeToggler/index.ts b/src/components/Navbar/components/ThemeToggler/index.ts new file mode 100644 index 0000000..32f1dc3 --- /dev/null +++ b/src/components/Navbar/components/ThemeToggler/index.ts @@ -0,0 +1 @@ +export { ThemeToggler } from "./ThemeToggler"; diff --git a/src/components/Pagination/Pagination.module.scss b/src/components/Pagination/Pagination.module.scss index d9544b8..613341e 100644 --- a/src/components/Pagination/Pagination.module.scss +++ b/src/components/Pagination/Pagination.module.scss @@ -1,11 +1,11 @@ @use "styles/variables" as *; @use "styles/mixins" as mixins; +@use "styles/funcs" as funcs; .pagination { @include mixins.flex; justify-content: space-between; - row-gap: 40px; margin-bottom: 22px; &__item { @@ -34,6 +34,12 @@ width: 42px; height: 100%; + @media (max-width: funcs.rem(480)) { + & { + width: funcs.rem(38); + } + } + &_active { background-color: $button-primary-bg; color: $button-primary-text-active; diff --git a/src/components/Pagination/Pagination.tsx b/src/components/Pagination/Pagination.tsx index 2bc1c46..7ccc9b7 100644 --- a/src/components/Pagination/Pagination.tsx +++ b/src/components/Pagination/Pagination.tsx @@ -6,9 +6,10 @@ import cn from "classnames"; import { ArrowRightIcon } from "components/icons/ArrowRightIcon"; import { useEffect, useState } from "react"; import { AllReposStore } from "store/AllReposStore"; +import { autorun } from "mobx"; export const Pagination = observer(({ store }: { store: AllReposStore }) => { - const paginationStore = store.pagination + const paginationStore = store.pagination; const [buttonActive, setbuttonActive] = useState(paginationStore.page); const [leftArrowColor, setLeftArrowColor] = useState<"primary" | "secondary" | "accent">("secondary"); @@ -16,43 +17,25 @@ export const Pagination = observer(({ store }: { store: AllReposStore }) => { const totalPages = paginationStore.totalPages; - const setArrowsColors = () => { - if (paginationStore.page === 1) { - setLeftArrowColor("secondary") - } else { - setLeftArrowColor("primary") - } - - if (paginationStore.page === totalPages) { - setRightArrowColor("secondary") - } else { - setRightArrowColor("primary") - } - } + useEffect(() => { + return autorun(() => { + setbuttonActive(paginationStore.page); + setLeftArrowColor(paginationStore.page === 1 ? "secondary" : "primary"); + setRightArrowColor(paginationStore.page === totalPages ? "secondary" : "primary"); + }); + }, [paginationStore.page, totalPages]); const handlePageChange = (newPage: number) => { - if (newPage > 3) { - - } setbuttonActive(newPage); paginationStore.setPage(newPage); - setArrowsColors() }; const handleClick = (value: number | string) => { - if (value === "...") { - setbuttonActive(value); - } else { + if (typeof value === "number") { handlePageChange(value); } }; - useEffect(() => { - setArrowsColors() - console.log("KKKdK", paginationStore.page) - }, []); - - return (
))}
- -
+
); }); diff --git a/src/components/ReposCardsSection/ReposCardsSection.module.scss b/src/components/ReposCardsSection/ReposCardsSection.module.scss deleted file mode 100644 index 8060c3c..0000000 --- a/src/components/ReposCardsSection/ReposCardsSection.module.scss +++ /dev/null @@ -1,34 +0,0 @@ -@use "styles/mixins" as mixins; -@use "styles/variables" as *; - -.root { - display: flex; - flex-wrap: wrap; - justify-content: center; - align-items: stretch; - row-gap: 80px; - column-gap: 80px; - margin-bottom: 40px; - - &__card { - &__caption { - @include mixins.flex; - gap: 15px; - } - - &__stars { - @include mixins.flex; - gap: 4px - } - } - - &__link { - text-decoration: none; - } -} - -@media (max-width: 1440px) { - .root { - column-gap: 40px; - } -} \ No newline at end of file diff --git a/src/components/ReposCardsSection/ReposCardsSection.tsx b/src/components/ReposCardsSection/ReposCardsSection.tsx deleted file mode 100644 index 2162114..0000000 --- a/src/components/ReposCardsSection/ReposCardsSection.tsx +++ /dev/null @@ -1,37 +0,0 @@ -import { Card } from "components/Card"; - -import { StarIcon } from "components/icons/StarIcon"; -import { Text } from "components/Text"; -import { routesConfig } from "config/routes"; -import { observer } from "mobx-react-lite"; -import { Link } from "react-router"; -import { RepoModel } from "store/models"; -import styles from "./ReposCardsSection.module.scss"; -import { formatDate } from "utils/formatDate"; - -export const ReposCardsSection = observer(({ repos }: { repos: RepoModel[] }) => { - return ( -
- {repos.map((repo) => ( - - -
- - {repo.stargazersCount} -
- {formatDate(repo.pushedAt)} -
- }> - - - ))} -
- ); -}); diff --git a/src/components/ReposCardsSection/index.ts b/src/components/ReposCardsSection/index.ts deleted file mode 100644 index d789eec..0000000 --- a/src/components/ReposCardsSection/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { ReposCardsSection } from "./ReposCardsSection"; diff --git a/src/components/ReposSection/ReposSection.module.scss b/src/components/ReposSection/ReposSection.module.scss index fcb9cd6..f43036c 100644 --- a/src/components/ReposSection/ReposSection.module.scss +++ b/src/components/ReposSection/ReposSection.module.scss @@ -1,19 +1,34 @@ +@use "styles/mixins" as mixins; +@use "styles/funcs" as funcs; +@use "styles/variables" as *; + .root { display: flex; flex-wrap: wrap; justify-content: center; align-items: stretch; - row-gap: 80px; - column-gap: 80px; + gap: funcs.rem(80); margin-bottom: 40px; + &__card { + &__caption { + @include mixins.flex; + gap: 15px; + } + + &__stars { + @include mixins.flex; + gap: 4px; + } + } + &__link { text-decoration: none; } } -@media (max-width: 1440px) { +@media (max-width: funcs.rem(1340)) { .root { - column-gap: 40px; + gap: funcs.rem(40); } -} \ No newline at end of file +} diff --git a/src/components/ReposSection/ReposSection.tsx b/src/components/ReposSection/ReposSection.tsx index d709fb2..1534180 100644 --- a/src/components/ReposSection/ReposSection.tsx +++ b/src/components/ReposSection/ReposSection.tsx @@ -1,15 +1,52 @@ - +import { Card } from "components/Card"; import { Loader } from "components/Loader"; -import { ReposCardsSection } from "components/ReposCardsSection"; import { observer } from "mobx-react-lite"; import { AllReposStore } from "store/AllReposStore"; import { Meta } from "utils/meta"; +import { StarIcon } from "components/icons/StarIcon"; +import { Text } from "components/Text"; +import { routesConfig } from "config/routes"; +import { Link } from "react-router"; +import { formatDate } from "utils/formatDate"; +import styles from "./ReposSection.module.scss"; + export const ReposSection = observer(({ store }: { store: AllReposStore }) => { + if (store.meta === Meta.loading) { + return ; + } + + if (store.meta === Meta.error) { + return
Repositories not found
; + } + return ( -
- {store.meta === Meta.loading && } - +
+ {store.repos.map((repo) => ( + + +
+ + + {repo.stargazersCount} + +
+ {formatDate(repo.pushedAt)} +
+ } + > + + ))}
); }); diff --git a/src/components/SidePanel/SidePanel.module.scss b/src/components/SidePanel/SidePanel.module.scss index f0e1c98..5328f84 100644 --- a/src/components/SidePanel/SidePanel.module.scss +++ b/src/components/SidePanel/SidePanel.module.scss @@ -1,18 +1,53 @@ @use "styles/mixins" as mixins; +@use "styles/variables" as *; .panel { - background-color: aqua; + background-color: var(--body-background); + width: 320px; - &__title { - @include mixins.flex; - gap: 14 px - } + border-radius: $border-radius; - &__link { - text-decoration: none; - } + &__close { + transform: rotate(45deg); + align-self: flex-start; + cursor: pointer; + font-size: 30px; + color: gray; + } + + &__content { + padding: 20px; + } + + &__title { + @include mixins.flex; + gap: 10px; + justify-content: space-between; + margin-bottom: 20px; - &__menu { - list-style: none; + &__name { + @include mixins.flex; + gap: 10px; } -} \ No newline at end of file + } + + &__menu { + list-style: none; + padding: 0; + margin: 0; + } + + &__link { + display: block; + padding: 10px 0; + text-decoration: none; + } + + &__link:hover { + background-color: #f0f0f0; + } + + &__link:hover { + color: $brand; + } +} diff --git a/src/components/SidePanel/SidePanel.tsx b/src/components/SidePanel/SidePanel.tsx index 34b629f..d362730 100644 --- a/src/components/SidePanel/SidePanel.tsx +++ b/src/components/SidePanel/SidePanel.tsx @@ -1,18 +1,43 @@ import cn from "classnames"; import { Text } from "components/Text"; -import { UserLogo } from "components/UserLogo"; import { Link } from "react-router"; import styles from "./SidePanel.module.scss"; -export const SidePanel = ({ className }) => { - return ( -
-
Link in
-
    -
  • Profile
  • -
  • Repositories
  • -
  • Log out
  • -
+interface SidePanelLink { + title: string; + href: string; + onClick?: React.MouseEventHandler; +} + +interface SidePanelProps { + className?: string; + titleSlot?: React.ReactNode; + links: SidePanelLink[]; + close: () => void; +} + +export const SidePanel: React.FC = ({ className, titleSlot, links, close }) => { + return ( +
+
+
+ {titleSlot} +
- ); -}; \ No newline at end of file +
    + {links.map((link, index) => ( +
  • + + + {link.title} + + +
  • + ))} +
+
+
+ ); +}; diff --git a/src/components/Text/Text.module.scss b/src/components/Text/Text.module.scss index b2e702d..f05a201 100644 --- a/src/components/Text/Text.module.scss +++ b/src/components/Text/Text.module.scss @@ -1,7 +1,8 @@ @use "styles/variables" as *; +@use "styles/mixins" as mixins; +@use "styles/funcs" as funcs; .text { - display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; color: inherit; @@ -11,12 +12,12 @@ color: $brand; } - &-secondary { + &-secondary { color: $text-secondary; } &-primary { - color: $text-primary; + color: var(--text-primary); } } @@ -30,13 +31,14 @@ } } &-title { - font-size: 44px; - line-height: 48px; + font-size: funcs.fluid(44, 28); + line-height: funcs.fluid(48, 32); text-align: center; } &-button { - font-size: 18px; + font-size: funcs.fluid(16, 14); + margin: 0; } } diff --git a/src/components/Text/Text.tsx b/src/components/Text/Text.tsx index b13658f..4d293c5 100644 --- a/src/components/Text/Text.tsx +++ b/src/components/Text/Text.tsx @@ -28,6 +28,7 @@ export const Text: React.FC = ({ React.useEffect(() => { if (elementRef.current && maxLines !== undefined) { elementRef.current.style.setProperty("-webkit-line-clamp", maxLines.toString()); + elementRef.current.style.setProperty("display", "-webkit-box"); } }, [maxLines]); @@ -38,6 +39,7 @@ export const Text: React.FC = ({ ref={elementRef} className={cn( "text", + styles.text, className, styles[`text_color-${color}`], styles[`text_view-${view}`], diff --git a/src/components/icons/GhLogo/GhLogo.tsx b/src/components/icons/GhLogo/GhLogo.tsx new file mode 100644 index 0000000..9fa9921 --- /dev/null +++ b/src/components/icons/GhLogo/GhLogo.tsx @@ -0,0 +1,19 @@ +import * as React from "react"; +import { Icon, IconProps } from "../Icon"; +import styles from "./../Icons.module.scss"; + +export const GhLogo: React.FC = ({ color = "primary", ...props }) => ( + + + + + + + + + + +); diff --git a/src/components/icons/GhLogo/index.ts b/src/components/icons/GhLogo/index.ts new file mode 100644 index 0000000..eb539d6 --- /dev/null +++ b/src/components/icons/GhLogo/index.ts @@ -0,0 +1 @@ +export { GhLogo } from './Ghlogo'; \ No newline at end of file diff --git a/src/components/icons/Icons.module.scss b/src/components/icons/Icons.module.scss index e9dda20..12517fe 100644 --- a/src/components/icons/Icons.module.scss +++ b/src/components/icons/Icons.module.scss @@ -9,7 +9,7 @@ fill: $text-secondary; } &-primary { - fill: $text-primary; + fill: var(--text-primary); } &-accent { fill: $star-accent; @@ -24,7 +24,7 @@ stroke: $text-secondary; } &-primary { - stroke: $text-primary; + stroke: var(--text-primary); } } } diff --git a/src/config/apiUrls.ts b/src/config/apiUrls.ts index 0106dda..d0ff9b6 100644 --- a/src/config/apiUrls.ts +++ b/src/config/apiUrls.ts @@ -1,5 +1,4 @@ const githubApi = (endpoint: string): string => `https://api.github.com/${endpoint}`; -const authApi = (endpoint: string): string => `https://fakestoreapi.com/${endpoint}`; export const apiUrls = { repos: { @@ -9,18 +8,17 @@ export const apiUrls = { githubApi(`repos/${orgName}/${repoName}/contributors`), repoReadme: (orgName: string, repoName: string): string => githubApi(`repos/${orgName}/${repoName}/readme`), repoLanguages: (orgName: string, repoName: string): string => githubApi(`repos/${orgName}/${repoName}/languages`), + createRepo: (): string => githubApi(`user/repos`), }, users: { + currentUser: (): string => githubApi(`user`), users: (): string => githubApi(`users`), userByLogin: (login: string): string => githubApi(`users/${login}`), + currentUserRepos: (): string => githubApi(`user/repos`), userRepos: (login: string): string => githubApi(`users/${login}/repos`), }, search: { users: (): string => githubApi(`search/users`), - repos: (): string => githubApi(`search/repositories`) + repos: (): string => githubApi(`search/repositories`), }, - auth: { - register: (): string => authApi(`users`), - login: (): string => authApi(`auth/login`) - } }; diff --git a/src/config/firebase.ts b/src/config/firebase.ts new file mode 100644 index 0000000..e920721 --- /dev/null +++ b/src/config/firebase.ts @@ -0,0 +1,16 @@ +import { initializeApp } from "firebase/app"; +import { getAuth } from "firebase/auth"; + +const firebaseConfig = { + apiKey: "AIzaSyBVne95xlEDlv_izoGgIOcgpSWfC67yIJE", + authDomain: "github-client-c2136.firebaseapp.com", + projectId: "github-client-c2136", + storageBucket: "github-client-c2136.firebasestorage.app", + messagingSenderId: "28944709507", + appId: "1:28944709507:web:d2dcd5b6b105895762a8b6", +}; + +const app = initializeApp(firebaseConfig); +const auth = getAuth(app); + +export { app, auth }; diff --git a/src/config/routes.tsx b/src/config/routes.tsx index 7247d2b..694a156 100644 --- a/src/config/routes.tsx +++ b/src/config/routes.tsx @@ -23,9 +23,9 @@ export const routesConfig = { mask: "/users/:login/repos", create: (login: string) => `/users/${login}/repos`, }, - register: { - mask: "/register", - create: () => `/register`, + createRepo: { + mask: "/create", + create: () => `/create`, }, login: { mask: "/login", diff --git a/src/declarations.d.ts b/src/declarations.d.ts new file mode 100644 index 0000000..ded7073 --- /dev/null +++ b/src/declarations.d.ts @@ -0,0 +1,17 @@ +declare module "*.module.scss" { + interface IClassNames { + [className: string]: string; + } + const classNames: IClassNames; + export = classNames; +} + +declare module "*.png"; +declare module "*.jpg"; +declare module "*.jpeg"; +declare module "*.svg"; + +declare module "*.woff2" { + const content: string; + export default content; +} diff --git a/src/main.tsx b/src/main.tsx index 960fb40..aff53a8 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -1,6 +1,7 @@ -import { router } from "App/App"; +import { router } from "App/router"; import "config/configureMobX"; import { createRoot } from "react-dom/client"; import { RouterProvider } from "react-router"; +import './styles/themes.css'; createRoot(document.getElementById("root")!).render(); diff --git a/src/store/AllReposStore/AllReposStore.ts b/src/store/AllReposStore/AllReposStore.ts index 382755f..88d0421 100644 --- a/src/store/AllReposStore/AllReposStore.ts +++ b/src/store/AllReposStore/AllReposStore.ts @@ -1,53 +1,34 @@ -import { action, computed, IReactionDisposer, makeObservable, observable, reaction, runInAction } from "mobx"; +import { runInAction } from "mobx"; -import { RepoModel } from "store/models"; -import { Collection } from "utils/collection"; import { Meta } from "utils/meta"; import ReposService from "api/ReposService"; -import { IStoreWithReaction } from "store/interfaces"; -import { filtersStore, FiltersType, rootStore } from "store/RootStore"; -import { PaginationStore } from "store/RootStore"; +import { BaseReposStore } from "store/BaseReposStore"; -export class AllReposStore implements IStoreWithReaction { - _repos: Collection = new Collection(); - pagination: PaginationStore; - meta: Meta = Meta.initial; - - type: "org" | "user" = "org"; +export class AllReposStore extends BaseReposStore { ownerLogin: string | undefined = undefined; constructor() { - this.pagination = new PaginationStore(); - makeObservable(this, { - _repos: observable, - meta: observable, - type: observable, - fetch: action.bound, - setMeta: action.bound, - setType: action, - setOwnerLogin: action, - repos: computed, - }); - } - - init() { - this.fetch(); + super(); } async fetch(): Promise { - this.setMeta(Meta.loading); - this._repos.clear(); - const reposParams = rootStore.query.getApiReposParams(); - const userReposParams = rootStore.query.getApiUserReposParams(); + runInAction(() => { + this.setMeta(Meta.loading); + this._repos.clear(); + }); - let isError = false, data = {}, pagesCount = 0; - if (this.type === "org") { - ({ isError, data, pagesCount } = await ReposService.getAllOrgRepos(reposParams, this.type, this.ownerLogin)); - } else { - ({ isError, data, pagesCount } = await ReposService.getAllUserRepos(userReposParams, this.ownerLogin)); + const reposParams = this.query.getApiReposParams(); + + if (!reposParams.page) { + reposParams.page = this.pagination.page; + } + if (!reposParams.perPage) { + reposParams.perPage = this.pagination.perPage; } + const { isError, data, pagesCount } = await ReposService.getAllOrgRepos(reposParams, this.type, this.ownerLogin); + if (isError) { this.setMeta(Meta.error); return; @@ -55,50 +36,12 @@ export class AllReposStore implements IStoreWithReaction { runInAction(() => { this.meta = Meta.success; - this._repos.setAll(data.order, data.entities); - - this.pagination.setTotalPages(pagesCount) + this.pagination.setTotalPages(pagesCount); }); } - get repos(): RepoModel[] { - return this._repos.getAll; - } - - setMeta(newMeta: Meta) { - this.meta = newMeta; - } - - setType(newType: "org" | "user") { - this.type = newType; - } - setOwnerLogin(newLogin: string) { - this.ownerLogin = newLogin - } - - private readonly _filterChangeReaction: IReactionDisposer = reaction( - () => rootStore.query.getParam("filter"), - (filter) => { - - if (filter !== null && filtersStore.filterType === FiltersType.repos) { - this.fetch(); - } - }, - ); - - private readonly _pageChangeReaction: IReactionDisposer = reaction( - () => rootStore.query.getParam("page"), - (page) => { - if (page !== null) { - this.fetch(); - } - }, - ); - - destroy(): void { - this._filterChangeReaction(); - this._pageChangeReaction(); + this.ownerLogin = newLogin; } } diff --git a/src/store/AllUsersStore/AllUsersStore.ts b/src/store/AllUsersStore/AllUsersStore.ts index ca45a03..58bc93e 100644 --- a/src/store/AllUsersStore/AllUsersStore.ts +++ b/src/store/AllUsersStore/AllUsersStore.ts @@ -1,82 +1,69 @@ -import { action, computed, IReactionDisposer, makeObservable, observable, reaction, runInAction } from "mobx"; +import { makeAutoObservable, reaction, runInAction } from "mobx"; import { RepoOwnerModel } from "store/models"; import { Collection } from "utils/collection"; import { Meta } from "utils/meta"; import UsersService from "api/UsersService"; -import { IStoreWithReaction } from "store/interfaces"; -import { filtersStore, FiltersType, PaginationStore, rootStore } from "store/RootStore"; +import { FiltersStore } from "store/FiltersStore"; +import { PaginationStore } from "store/RootStore"; +import { QueryParamsStore } from "store/RootStore/QueryParamsStore"; -export class AllUsersStore implements IStoreWithReaction { - _users: Collection = new Collection(); - pagination: PaginationStore; - meta: Meta = Meta.initial; +export class AllUsersStore { + _users: Collection = new Collection(); + pagination: PaginationStore; + query: QueryParamsStore; + filters: FiltersStore; + meta: Meta = Meta.initial; - currentPage: number = 1; - perPage: number = 6; + currentPage: number = 1; + perPage: number = 6; - constructor() { - this.pagination = new PaginationStore(); - makeObservable(this, { - _users: observable, - meta: observable, - fetch: action.bound, - setMeta: action.bound, - users: computed, - }); - } - - init() { - this.fetch(); - } + constructor() { + this.query = new QueryParamsStore(); + this.pagination = new PaginationStore(this.query); + this.filters = new FiltersStore(this.query); - async fetch(): Promise { - this.setMeta(Meta.loading); - this._users.clear(); - const params = rootStore.query.getApiUsersParams(); + makeAutoObservable(this); - const { isError, data } = await UsersService.getAll(params); - if (isError) { - this.setMeta(Meta.error); - return; + reaction( + () => this.query.getParam("filter"), + (filter, previousFilter) => { + if (filter !== previousFilter) { + this.fetch(); } + }, + { fireImmediately: true }, + ); + } - runInAction(() => { - this.meta = Meta.success; + init() { + this.fetch(); + } - this._users.setAll(data.order, data.entities); - }); - } + async fetch(): Promise { + this.setMeta(Meta.loading); + this._users.clear(); + const params = this.query.getApiUsersParams(); - get users(): RepoOwnerModel[] { - return this._users.getAll; + const { isError, data } = await UsersService.getAll(params); + if (isError) { + this.setMeta(Meta.error); + return; } - setMeta(newMeta: Meta) { - this.meta = newMeta; - } + runInAction(() => { + this.meta = Meta.success; - private readonly _filterChangeReaction: IReactionDisposer = reaction( - () => rootStore.query.getParam("filter"), - (filter) => { - if (filter !== null && filtersStore.filterType === FiltersType.users) { - this.fetch(); - } - }, - ); + this._users.setAll(data.order, data.entities); + }); + } - private readonly _pageChangeReaction: IReactionDisposer = reaction( - () => rootStore.query.getParam("page"), - (page) => { - if (page !== null) { - this.fetch(); - } - }, - ); + get users(): RepoOwnerModel[] { + return this._users.getAll; + } - destroy(): void { - this._filterChangeReaction(); - this._pageChangeReaction(); - } + setMeta(newMeta: Meta) { + this.meta = newMeta; + } } diff --git a/src/store/BaseReposStore/BaseReposStore.ts b/src/store/BaseReposStore/BaseReposStore.ts new file mode 100644 index 0000000..77b1b5c --- /dev/null +++ b/src/store/BaseReposStore/BaseReposStore.ts @@ -0,0 +1,61 @@ +import { action, makeObservable, observable, reaction } from "mobx"; + +import { RepoModel } from "store/models"; +import { Collection } from "utils/collection"; +import { Meta } from "utils/meta"; + +import { FiltersStore } from "store/FiltersStore"; +import { PaginationStore } from "store/RootStore"; +import { QueryParamsStore } from "store/RootStore/QueryParamsStore"; + +export abstract class BaseReposStore { + _repos: Collection = new Collection(); + pagination: PaginationStore; + query: QueryParamsStore; + filters: FiltersStore; + meta: Meta = Meta.initial; + + constructor() { + this.query = new QueryParamsStore(); + this.pagination = new PaginationStore(this.query); + this.filters = new FiltersStore(this.query); + + makeObservable(this, { + _repos: observable, + pagination: observable, + query: observable, + filters: observable, + meta: observable, + setMeta: action, + init: action, + fetch: action, + }); + + reaction( + () => ({ + filter: this.query.getParam("filter"), + page: this.query.getParam("page"), + }), + ({ filter, page }, { filter: previousFilter, page: previousPage }) => { + if (filter !== previousFilter || page !== previousPage) { + this.fetch(); + } + }, + ); + } + + init() { + console.log("BASE REPOS STORE INIT"); + this.fetch(); + } + + abstract fetch(): Promise; + + get repos(): RepoModel[] { + return this._repos.getAll; + } + + setMeta(newMeta: Meta) { + this.meta = newMeta; + } +} diff --git a/src/store/BaseReposStore/index.ts b/src/store/BaseReposStore/index.ts new file mode 100644 index 0000000..dd447a3 --- /dev/null +++ b/src/store/BaseReposStore/index.ts @@ -0,0 +1 @@ +export { BaseReposStore } from "./BaseReposStore"; diff --git a/src/store/FiltersStore/FiltersStore.ts b/src/store/FiltersStore/FiltersStore.ts new file mode 100644 index 0000000..1c1a8f8 --- /dev/null +++ b/src/store/FiltersStore/FiltersStore.ts @@ -0,0 +1,49 @@ +import { makeAutoObservable, reaction } from "mobx"; +import { QueryParamsStore } from "store/RootStore/QueryParamsStore"; + +export class FiltersStore { + private _queryStore: QueryParamsStore; + + constructor(queryStore: QueryParamsStore) { + this._queryStore = queryStore; + + makeAutoObservable(this); + + reaction( + () => ({ + filter: this._queryStore?.getParam("filter"), + search: this._queryStore?.getParam("search"), + }), + ({ filter, search }) => { + if (filter !== undefined) { + this.filter = filter; + } + if (search !== undefined) { + this.search = search; + } + }, + // { fireImmediately: true }, + ); + } + + filter: string; + search: string; + + setFilter(newFilter: string) { + if (this.filter !== newFilter) { + this.filter = newFilter; + this._queryStore.updateQueryParams({ filter: newFilter }); + } + } + + setSearch(newSearch: string) { + if (this.search !== newSearch) { + this.search = newSearch; + this._queryStore.updateQueryParams({ search: newSearch }); + } + } + + getSearch() { + return this.search; + } +} diff --git a/src/store/RootStore/FiltersStore/index.ts b/src/store/FiltersStore/index.ts similarity index 52% rename from src/store/RootStore/FiltersStore/index.ts rename to src/store/FiltersStore/index.ts index 26c13cb..ee203fb 100644 --- a/src/store/RootStore/FiltersStore/index.ts +++ b/src/store/FiltersStore/index.ts @@ -1 +1,2 @@ export { FiltersStore } from "./FiltersStore"; +export { filtersStore } from "./instance"; diff --git a/src/store/RootStore/FiltersStore/instance.ts b/src/store/FiltersStore/instance.ts similarity index 100% rename from src/store/RootStore/FiltersStore/instance.ts rename to src/store/FiltersStore/instance.ts diff --git a/src/store/PaginationStore/PaginationStore.ts b/src/store/PaginationStore/PaginationStore.ts new file mode 100644 index 0000000..b145cdc --- /dev/null +++ b/src/store/PaginationStore/PaginationStore.ts @@ -0,0 +1,81 @@ +import { action, computed, makeObservable, observable, reaction } from "mobx"; +import { QueryParamsStore } from "store/RootStore/QueryParamsStore"; + +export class PaginationStore { + totalPages = 0; + _queryStore: QueryParamsStore; + _page: number = 1; + _perPage: number = 6; + + constructor(queryStore: QueryParamsStore) { + this._queryStore = queryStore; + + makeObservable(this, { + totalPages: observable, + _page: observable, + _perPage: observable, + setPage: action, + setTotalPages: action, + page: computed, + perPage: computed, + }); + + reaction( + () => ({ + page: this._queryStore.getParam("page"), + perPage: this._queryStore.getParam("per_page"), + }), + ({ page, perPage }) => { + if (page !== undefined) { + this.setPage(Number(page)); + } + if (perPage !== undefined) { + this._perPage = Number(perPage); + } + }, + { fireImmediately: true }, + ); + } + + setPage(newPage: number) { + if (this._page !== newPage) { + this._page = newPage; + const currentQueryPage = this._queryStore.getParam("page"); + if (String(newPage) !== currentQueryPage) { + this._queryStore.updateQueryParams({ page: newPage }); + } + } + } + + get page() { + return this._page; + } + + get perPage() { + return this._perPage; + } + + setTotalPages(totalPages: number) { + this.totalPages = totalPages; + } + + getPagesArray() { + if (this.totalPages <= 5) { + return [...Array(this.totalPages).keys()].map((i) => i + 1); + } + + if (this._page < 3) { + return [1, 2, 3, "...", this.totalPages]; + } else if (this._page === 3) { + return [1, 2, 3, 4, "...", this.totalPages]; + } + + if (this._page === this.totalPages || this._page === this.totalPages - 1) { + return [1, "...", this.totalPages - 2, this.totalPages - 1, this.totalPages]; + } else if (this._page === this.totalPages - 2) { + return [1, "...", this.totalPages - 3, this.totalPages - 2, this.totalPages - 1, this.totalPages]; + } + + return [1, "...", this._page - 1, this._page, this._page + 1, "...", this.totalPages]; + } +} diff --git a/src/store/RootStore/PaginationStore/index.ts b/src/store/PaginationStore/index.ts similarity index 100% rename from src/store/RootStore/PaginationStore/index.ts rename to src/store/PaginationStore/index.ts diff --git a/src/store/RepoStore/RepoStore.ts b/src/store/RepoStore/RepoStore.ts index 1f550f2..645b8b2 100644 --- a/src/store/RepoStore/RepoStore.ts +++ b/src/store/RepoStore/RepoStore.ts @@ -1,6 +1,7 @@ import ReposService from "api/ReposService"; import { action, computed, makeObservable, observable, runInAction } from "mobx"; -import { RepoModel, RepoOwnerModel } from "store/models"; +import { toast } from "react-toastify"; +import { CreateRepoModel, RepoModel, RepoOwnerModel } from "store/models"; import { Collection } from "utils/collection"; import { Meta } from "utils/meta"; @@ -41,10 +42,6 @@ export class RepoStore { } async fetchRepo(orgName: string, repoName: string): Promise { - if (this.repoMeta === Meta.loading || this.repoMeta === Meta.success) { - return; - } - runInAction(() => { this.repoMeta = Meta.loading; this._repo = null; @@ -62,11 +59,27 @@ export class RepoStore { }); } - async fetchReadme(orgName: string, repoName: string): Promise { - if (this.readmeMeta === Meta.loading || this.readmeMeta === Meta.success) { + async createRepo(repo: CreateRepoModel): Promise { + runInAction(() => { + this.repoMeta = Meta.loading; + }); + + const { isError, data } = await ReposService.createRepo(repo); + + if (isError) { + toast.error("Error: " + data[0].message); + this.setRepoMeta(Meta.error); return; } + runInAction(() => { + this.repoMeta = Meta.success; + }); + + toast.success("Repo successfully created"); + } + + async fetchReadme(orgName: string, repoName: string): Promise { runInAction(() => { this.readmeMeta = Meta.loading; this._readme = null; diff --git a/src/store/RootStore/AuthStore/AuthStore.ts b/src/store/RootStore/AuthStore/AuthStore.ts index 454595d..1278892 100644 --- a/src/store/RootStore/AuthStore/AuthStore.ts +++ b/src/store/RootStore/AuthStore/AuthStore.ts @@ -1,55 +1,55 @@ +import UsersService from "api/UsersService"; import { makeAutoObservable, runInAction } from "mobx"; -import bcrypt from 'bcryptjs'; +import { ProfileModel, RepoModel, UserModel } from "store/models"; +import { getCookie, removeCookie, setCookie } from "typescript-cookie"; +import { Collection } from "utils/collection"; import { Meta } from "utils/meta"; -import AuthService from "api/AuthService"; export class AuthStore { - user: string | null = null; - token: string | null = null; + private _user: UserModel | null = null; + private _repos: Collection = new Collection(); + private _token: string | null = null; + private _isAuth: boolean = false; meta: Meta = Meta.initial; constructor() { makeAutoObservable(this); - const storedUser = localStorage.getItem('user'); - const storedToken = localStorage.getItem('token'); - if (storedUser && storedToken) { - this.user = storedUser; - this.token = storedToken; + + const token = getCookie("token"); + + if (token) { + this._token = token; + this.fetchCurrentUser(); } } - register = async (email: string, login: string, password: string) => { + async fetchCurrentUser(): Promise { runInAction(() => { this.meta = Meta.loading; - this.user = null; + this._user = null; }); - const { isError, data } = await AuthService.Register({ email: email, username: login, password: password }); + const { isError, data } = await UsersService.getCurrentUser(); if (isError) { this.setMeta(Meta.error); return; } + this.setUser(data); + runInAction(() => { this.meta = Meta.success; - this.user = login; - - console.log("SS", login) + this._user = data; }); - }; - - logout = () => { - this.user = null; - localStorage.removeItem('user'); - }; + } - login = async (login: string, password: string) => { + async fetchRepos(): Promise { runInAction(() => { this.meta = Meta.loading; - this.user = null; + this._repos.clear(); }); - const { isError, data } = await AuthService.Login({ username: login, password: password }); + const { isError, data } = await UsersService.getCurrentUserRepos(); if (isError) { this.setMeta(Meta.error); return; @@ -57,11 +57,49 @@ export class AuthStore { runInAction(() => { this.meta = Meta.success; - this.user = login; - - console.log("SS", data) + this._repos.setAll(data.order, data.entities); }); - }; + } + + async login(token: string, user: ProfileModel) { + setCookie("token", token); + this.setIsAuth(true); + this.setUser(user); + this.fetchCurrentUser(); + } + + logout() { + removeCookie("token"); + this.setIsAuth(false); + } + + setUser(newUser: ProfileModel) { + this._user = newUser; + } + + setIsAuth(newIsAuth: boolean) { + this._isAuth = newIsAuth; + } + + get user() { + return this._user; + } + + get token() { + return this._token; + } + + get repos(): RepoModel[] | null { + return this._repos.getAll; + } + + get isAuth() { + const token = getCookie("token"); + if (token !== undefined) { + this.setIsAuth(true) + } + return this._isAuth; + } setMeta(newMeta: Meta) { this.meta = newMeta; diff --git a/src/store/RootStore/FiltersStore/FiltersStore.ts b/src/store/RootStore/FiltersStore/FiltersStore.ts deleted file mode 100644 index a27a1e3..0000000 --- a/src/store/RootStore/FiltersStore/FiltersStore.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { makeAutoObservable } from "mobx"; -import { ParsedQs } from "qs"; -import { FiltersType, rootStore } from "store/RootStore"; - - -export class FiltersStore { - filter: string | ParsedQs | (string | ParsedQs)[] | undefined = rootStore.query.getParam("filter"); - filterType: FiltersType - - constructor() { - makeAutoObservable(this, {}, { autoBind: true }) - } - - setFilter(newFilter: string) { - if (this.filter !== newFilter) { - this.filter = newFilter - - if (rootStore.query.updateQueryParam !== null) { - rootStore.query.updateQueryParam({ filter: newFilter }) - } - } - } - - setReposFilter(newFilter: string) { - this.setFilter(newFilter) - this.filterType = FiltersType.repos - } - - setUsersFilter(newFilter: string) { - this.setFilter(newFilter) - this.filterType = FiltersType.users - - } -} diff --git a/src/store/RootStore/PaginationStore/PaginationStore.ts b/src/store/RootStore/PaginationStore/PaginationStore.ts deleted file mode 100644 index 91ab5bd..0000000 --- a/src/store/RootStore/PaginationStore/PaginationStore.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { action, IReactionDisposer, makeObservable, observable, reaction } from "mobx"; -import { rootStore } from "store/RootStore"; -import { IStoreWithReaction } from "store/interfaces"; - -export class PaginationStore implements IStoreWithReaction { - page: number = Number(rootStore.query.getParam("page")) || 1; - perPage = Number(rootStore.query.getParam("per_page")) || 6; - totalPages = 0 - - constructor() { - makeObservable(this, { - page: observable, - totalPages: observable, - setPage: action, - setTotalPages: action - }); - } - - setPage(newPage: number) { - if (this.page !== newPage) { - this.page = newPage; - } - - if (rootStore.query.updateQueryParam !== null) { - rootStore.query.updateQueryParam({ page: newPage }); - } - } - - setTotalPages(totalPages: number) { - this.totalPages = totalPages - } - - getPagesArray(curPage: number) { - if (curPage > 3) { - - } - - if (this.totalPages > 4) { - return [1, 2, 3, "...", this.totalPages] - } - return [...Array(this.totalPages).keys()].map(i => i + 1) - } - - destroy(): void { - this._qpReaction(); - } - - private readonly _qpReaction: IReactionDisposer = reaction( - () => this.page, - (page) => { - console.log("TTTTTTT", this.page) - if (rootStore.query.updateQueryParam !== null) { - rootStore.query.updateQueryParam({ page: page }); - } - }, - ); -} diff --git a/src/store/RootStore/QueryParamsStore/QueryParamsStore.ts b/src/store/RootStore/QueryParamsStore/QueryParamsStore.ts index faba3f3..49d0ef5 100644 --- a/src/store/RootStore/QueryParamsStore/QueryParamsStore.ts +++ b/src/store/RootStore/QueryParamsStore/QueryParamsStore.ts @@ -1,18 +1,14 @@ -import { action, makeObservable, observable } from "mobx"; +import { makeAutoObservable } from "mobx"; import qs from "qs"; - -type PrivateFields = "_params"; +import { NavigateFunction } from "react-router-dom"; export class QueryParamsStore { private _params: qs.ParsedQs = {}; private _search: string = ""; - updateQueryParam: ((params: Record) => void) | null = null; + private _navigate: NavigateFunction | null = null; constructor() { - makeObservable(this, { - _params: observable.ref, - setSearch: action, - }); + makeAutoObservable(this); } getParam(key: string): undefined | string | qs.ParsedQs | (string | qs.ParsedQs)[] { @@ -28,6 +24,29 @@ export class QueryParamsStore { } } + setNavigate(navigate: NavigateFunction) { + this._navigate = navigate; + } + + get navigate() { + return this._navigate; + } + + updateQueryParams = (params: Record) => { + const searchParams = new URLSearchParams(window.location.hash.split("?")[1] || ""); + Object.keys(params).forEach((key) => { + const value = params[key]; + if (value !== "" && value !== null) { + searchParams.set(key, value.toString()); + } else { + searchParams.delete(key); + } + }); + if (this._navigate) { + this._navigate(`?${searchParams.toString()}`, { replace: true }); + } + }; + getApiReposParams() { return { org: this.getParam("search"), diff --git a/src/store/RootStore/RootStore.ts b/src/store/RootStore/RootStore.ts index d3550aa..522edee 100644 --- a/src/store/RootStore/RootStore.ts +++ b/src/store/RootStore/RootStore.ts @@ -1,7 +1,5 @@ import { AuthStore } from "store/RootStore/AuthStore"; -import { QueryParamsStore } from "store/RootStore/QueryParamsStore"; export class RootStore { - readonly query = new QueryParamsStore(); readonly auth = new AuthStore(); } diff --git a/src/store/RootStore/SearchStore/SearchStore.ts b/src/store/RootStore/SearchStore/SearchStore.ts deleted file mode 100644 index fccfd40..0000000 --- a/src/store/RootStore/SearchStore/SearchStore.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { action, makeObservable, observable } from "mobx"; -import { ParsedQs } from "qs"; -import { FiltersType, rootStore } from "store/RootStore"; - -export class SearchStore { - search: string | ParsedQs | (string | ParsedQs)[] | undefined = rootStore.query.getParam("search"); - filterType: FiltersType - - constructor() { - makeObservable(this, { - search: observable, - setSearch: action, - setReposSearch: action.bound, - setUsersSearch: action.bound, - }); - } - - setSearch(newSearch: string) { - if (this.search !== newSearch) { - this.search = newSearch; - - if (rootStore.query.updateQueryParam !== null) { - rootStore.query.updateQueryParam({ search: newSearch }) - } - } - } - - setReposSearch(newSearch: string) { - this.setSearch(newSearch) - this.filterType = FiltersType.repos - } - - setUsersSearch(newSearch: string) { - this.setSearch(newSearch) - this.filterType = FiltersType.users - - } - - getSearch() { - return this.search; - } -} diff --git a/src/store/RootStore/SearchStore/index.ts b/src/store/RootStore/SearchStore/index.ts deleted file mode 100644 index cbc3142..0000000 --- a/src/store/RootStore/SearchStore/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { SearchStore } from "./SearchStore"; diff --git a/src/store/RootStore/SearchStore/instance.ts b/src/store/RootStore/SearchStore/instance.ts deleted file mode 100644 index 9187859..0000000 --- a/src/store/RootStore/SearchStore/instance.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { SearchStore } from "./SearchStore"; - -export const searchStore = new SearchStore(); \ No newline at end of file diff --git a/src/store/RootStore/hooks/useQueryParamsStoreInit.ts b/src/store/RootStore/hooks/useQueryParamsStoreInit.ts index 29aa7b3..18fa1dc 100644 --- a/src/store/RootStore/hooks/useQueryParamsStoreInit.ts +++ b/src/store/RootStore/hooks/useQueryParamsStoreInit.ts @@ -1,27 +1,14 @@ import { useLocation, useNavigate } from "react-router"; -import { rootStore } from "../instance"; +import { useEffect } from "react"; +import { QueryParamsStore } from "store/RootStore/QueryParamsStore"; -export const useQueryParamsStoreInit = (): void => { +export const useQueryParamsStoreInit = (queryStore: QueryParamsStore): void => { const { search } = useLocation(); const navigate = useNavigate(); - const updateQueryParam = (params: Record) => { - const searchParams = new URLSearchParams(window.location.search); - - Object.keys(params).forEach((key) => { - const value = params[key]; - if (value !== null) { - searchParams.set(key, value.toString()); - } else { - searchParams.delete(key); - } - }); - - navigate(`?${searchParams.toString()}`, { replace: true }); - return searchParams.toString() - }; - - rootStore.query.setSearch(search); - rootStore.query.updateQueryParam = updateQueryParam; + useEffect(() => { + queryStore.setNavigate(navigate); + queryStore.setSearch(search); + }, [search, navigate, queryStore]); }; diff --git a/src/store/RootStore/index.ts b/src/store/RootStore/index.ts index f575685..f7ff409 100644 --- a/src/store/RootStore/index.ts +++ b/src/store/RootStore/index.ts @@ -1,7 +1,6 @@ export { RootStore } from "./RootStore"; export { rootStore } from "./instance"; -export { filtersStore } from "./FiltersStore/instance"; +export { filtersStore } from "../FiltersStore/instance"; export { FiltersType } from "./types" -export { FiltersStore } from "./FiltersStore" -export { SearchStore } from "./SearchStore" -export { PaginationStore } from "./PaginationStore" \ No newline at end of file +export { FiltersStore } from "../FiltersStore" +export { PaginationStore } from "../PaginationStore" \ No newline at end of file diff --git a/src/store/UserReposStore/UserReposStore.ts b/src/store/UserReposStore/UserReposStore.ts new file mode 100644 index 0000000..fa2e8f1 --- /dev/null +++ b/src/store/UserReposStore/UserReposStore.ts @@ -0,0 +1,49 @@ +import { runInAction } from "mobx"; + +import { Meta } from "utils/meta"; + +import ReposService from "api/ReposService"; +import { BaseReposStore } from "store/BaseReposStore"; + +export class UserReposStore extends BaseReposStore { + ownerLogin: string | undefined = undefined; + + constructor() { + super(); + } + + async fetch(): Promise { + runInAction(() => { + this.setMeta(Meta.loading); + this._repos.clear(); + }); + + const userReposParams = this.query.getApiUserReposParams(); + + if (!userReposParams.page) { + userReposParams.page = this.pagination.page; + } + if (!userReposParams.perPage) { + userReposParams.perPage = this.pagination.perPage; + } + + const { isError, data, pagesCount } = await ReposService.getAllUserRepos(userReposParams, this.ownerLogin); + + if (isError) { + this.setMeta(Meta.error); + return; + } + + runInAction(() => { + this.meta = Meta.success; + + this._repos.setAll(data.order, data.entities); + + this.pagination.setTotalPages(pagesCount); + }); + } + + setOwnerLogin(newLogin: string) { + this.ownerLogin = newLogin; + } +} diff --git a/src/store/UserReposStore/index.ts b/src/store/UserReposStore/index.ts new file mode 100644 index 0000000..28786a3 --- /dev/null +++ b/src/store/UserReposStore/index.ts @@ -0,0 +1 @@ +export {UserReposStore} from "./UserReposStore" \ No newline at end of file diff --git a/src/store/UserStore/UserStore.ts b/src/store/UserStore/UserStore.ts index 06098bc..d3eb7a6 100644 --- a/src/store/UserStore/UserStore.ts +++ b/src/store/UserStore/UserStore.ts @@ -1,5 +1,6 @@ import UsersService from "api/UsersService"; -import { computed, makeObservable, observable, runInAction } from "mobx"; +import { makeAutoObservable, runInAction } from "mobx"; +import { rootStore } from "store/RootStore"; import { RepoModel } from "store/models"; import { UserModel } from "store/models/users"; import { Collection } from "utils/collection"; @@ -8,23 +9,22 @@ import { Meta } from "utils/meta"; export class UserStore { _user: UserModel | null = null; _repos: Collection = new Collection(); + _isCurrent: boolean = false; userMeta: Meta = Meta.initial; reposMeta: Meta = Meta.initial; constructor() { - makeObservable(this, { - _user: observable, - _repos: observable, - userMeta: observable, - reposMeta: observable, - user: computed, - repos: computed - }); + makeAutoObservable(this); } init(login: string) { - this.fetchUser(login); - this.fetchRepos(login) + if (rootStore.auth.user && login === rootStore.auth.user.login) { + this.setIsCurrent(true); + rootStore.auth.fetchRepos(); + } else { + this.fetchUser(login); + this.fetchRepos(login); + } } async fetchUser(login: string): Promise { @@ -42,6 +42,10 @@ export class UserStore { runInAction(() => { this.userMeta = Meta.success; this._user = data; + + if (this._user.login === rootStore.auth.user?.login) { + this.setIsCurrent(true); + } }); } @@ -49,15 +53,19 @@ export class UserStore { return this._user; } + get isCurrent(): boolean { + return this._isCurrent; + } + setUserMeta(newMeta: Meta) { this.userMeta = newMeta; } - async fetchRepos(login: string): Promise { - if (this.reposMeta === Meta.loading || this.reposMeta === Meta.success) { - return; - } + setIsCurrent(newIsCurrent: boolean) { + this._isCurrent = newIsCurrent; + } + async fetchRepos(login: string): Promise { runInAction(() => { this.reposMeta = Meta.loading; this._repos.clear(); diff --git a/src/store/index.ts b/src/store/index.ts new file mode 100644 index 0000000..1138b11 --- /dev/null +++ b/src/store/index.ts @@ -0,0 +1,2 @@ +export * from "./FiltersStore" +export * from "./AllReposStore" \ No newline at end of file diff --git a/src/store/models/auth/index.ts b/src/store/models/auth/index.ts index 62f58bb..f54d11b 100644 --- a/src/store/models/auth/index.ts +++ b/src/store/models/auth/index.ts @@ -1,2 +1 @@ -export * from "./login" -export * from "./register" \ No newline at end of file +export * from "./login"; diff --git a/src/store/models/auth/login.ts b/src/store/models/auth/login.ts index 7113045..de30b6d 100644 --- a/src/store/models/auth/login.ts +++ b/src/store/models/auth/login.ts @@ -1,3 +1,10 @@ export type LoginModel = { - token: string; -}; \ No newline at end of file + token: string; +}; + +export type ProfileModel = { + id: number | string; + email: string; + name: string; + avatar: string; +}; diff --git a/src/store/models/auth/register.ts b/src/store/models/auth/register.ts deleted file mode 100644 index 83a8e7e..0000000 --- a/src/store/models/auth/register.ts +++ /dev/null @@ -1,20 +0,0 @@ -export type RegisterApiModel = { - id: number; - username: string; - email: string; - password: string; -}; - -export type RegisterModel = { - id: number; - login: string; - email: string; - password: string; -}; - -export const normalizeRegisterModel = (raw: RegisterApiModel): RegisterModel => ({ - id: raw.id, - login: raw.username, - email: raw.email, - password: raw.password, - }); \ No newline at end of file diff --git a/src/store/models/repos/repo.ts b/src/store/models/repos/repo.ts index b2a14aa..d075fbc 100644 --- a/src/store/models/repos/repo.ts +++ b/src/store/models/repos/repo.ts @@ -13,4 +13,12 @@ export type RepoModel = { watchersCount: number; forksCount: number; languages: object; + language: string; + private: boolean; +}; + +export type CreateRepoModel = { + name: string; + description: string; + private: boolean; }; diff --git a/src/store/models/repos/repoApi.ts b/src/store/models/repos/repoApi.ts index a079848..29ce4db 100644 --- a/src/store/models/repos/repoApi.ts +++ b/src/store/models/repos/repoApi.ts @@ -14,6 +14,9 @@ export type RepoApiModel = { stargazers_count: number; watchers_count: number; forks_count: number; + languages: object, + language: string, + private: boolean, }; export const normalizeRepoModel = (raw: RepoApiModel): RepoModel => ({ @@ -28,6 +31,9 @@ export const normalizeRepoModel = (raw: RepoApiModel): RepoModel => ({ stargazersCount: raw.stargazers_count, watchersCount: raw.watchers_count, forksCount: raw.forks_count, + languages: raw.languages, + language: raw.language, + private: raw.private, }); export const normalizeReposToCollection = (rawList: RepoApiModel[]): Collection => { diff --git a/src/styles/Roboto/fonts.scss b/src/styles/Roboto/fonts.scss index c17aced..f5ceefb 100644 --- a/src/styles/Roboto/fonts.scss +++ b/src/styles/Roboto/fonts.scss @@ -1,6 +1,6 @@ @font-face { font-family: 'Roboto'; - src: url('Roboto-Regular.woff2') format('woff2'); + src: url('styles/Roboto/Roboto-Regular.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; @@ -8,7 +8,7 @@ @font-face { font-family: 'Roboto'; - src: url('Roboto-Medium.woff2') format('woff2'); + src: url('styles/Roboto/Roboto-Medium.woff2') format('woff2'); font-weight: 500; font-style: normal; font-display: swap; @@ -16,7 +16,7 @@ @font-face { font-family: 'Roboto'; - src: url('Roboto-Bold.woff2') format('woff2'); + src: url('styles/Roboto/Roboto-Bold.woff2') format('woff2'); font-weight: 700; font-style: normal; font-display: swap; diff --git a/src/styles/_funcs.scss b/src/styles/_funcs.scss new file mode 100644 index 0000000..7333e0c --- /dev/null +++ b/src/styles/_funcs.scss @@ -0,0 +1,28 @@ +@use "sass:math"; +@use "sass:string"; +@use 'sass:meta'; + +@function rem($pixel) { + @if meta.type-of($pixel) == "string" and string.slice($pixel, -2) == "px" { + $pixel: math.div(to-number(string.slice($pixel, 1, -2)), 16); + } @else { + $pixel: math.div($pixel, 16); + } + + @return #{$pixel}rem; +} + +@function fluid($max: 100, $min: 16) { + $maxViewportWidth: 1440; + $minViewportWidth: 360; + + $maxSize: math.div($max, 16); + $minSize: math.div($min, 16); + $maxWidth: math.div($maxViewportWidth, 16); + $minWidth: math.div($minViewportWidth, 16); + + $slope: math.div(($maxSize - $minSize), ($maxWidth - $minWidth)); + $yAxisIntersection: -$minWidth * $slope + $minSize; + + @return clamp(#{$minSize * 1rem}, #{$yAxisIntersection * 1rem} + #{$slope * 100vw}, #{$maxSize * 1rem}); +} diff --git a/src/styles/_styles.scss b/src/styles/_styles.scss deleted file mode 100644 index 5a3e293..0000000 --- a/src/styles/_styles.scss +++ /dev/null @@ -1,46 +0,0 @@ -@use "styles/Roboto/fonts"; -@use "styles/variables" as *; - -html, -body { - font-family: "Roboto"; - margin: 0; - padding: 0; - background-color: $body-background; -} - -* { - padding: 0; - box-sizing: border-box; -} - -button { - background: none; - border: none; -} - -.link { - text-decoration: none; - color: black; -} - -.noMarginText { - margin: 0 -} - -.flex-container { - margin-left: $content-margin; - margin-right: $content-margin; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - max-width: 1440px; -} - -.container { - margin-left: $content-margin; - margin-right: $content-margin; - max-width: 1440px; - -} \ No newline at end of file diff --git a/src/styles/_variables.scss b/src/styles/_variables.scss index a2c4dcd..f8d0a47 100644 --- a/src/styles/_variables.scss +++ b/src/styles/_variables.scss @@ -14,12 +14,20 @@ $loader-m: 48px; $loader-s: 24px; $content-margin: 100px; +$content-margin-s: 50px; +$content-margin-xs: 30px; $border-radius: 6px; $container-width: 1237px; $container-padding-x: 15px; -$body-background: #f6f8fa; +$body-background-light: #f6f8fa; +$background-accent-light: #ffffff; +$card-background-light: #ffffff; + +$body-background-dark: #222521; +$background-accent-dark: #222521; +$card-background-dark: #363c33; $loader-bg: #1f883d; $button-primary-bg: #1f883d; @@ -30,9 +38,12 @@ $button-primary-bg-disabled: #d9d9d9; $button-primary-text-disabled: #ffffff; $button-primary-bg-active: #08531d; $button-primary-text-active: #ffffff; + $text-primary: #000000; + $text-secondary: #afadb5; $text-accent: #1f883d; + $input-text: #000000; $input-bg: #ffffff; $input-placeholder: #afadb5; @@ -57,4 +68,4 @@ $card-bg: #ffffff; $dropdown-options-bg: #ffffff; $dropdown-focus: #151411; -$star-accent: #FF9432; \ No newline at end of file +$star-accent: #ff9432; diff --git a/src/styles/styles.scss b/src/styles/styles.scss new file mode 100644 index 0000000..234b003 --- /dev/null +++ b/src/styles/styles.scss @@ -0,0 +1,75 @@ +@use "./Roboto/fonts.scss"; +@use "styles/variables" as *; +@use "styles/funcs" as funcs; + +html, +body { + font-family: "Roboto"; + margin: 0; + padding: 0; +} + +* { + padding: 0; + box-sizing: border-box; +} + +button { + background: none; + border: none; +} + +.link { + text-decoration: none; + color: black; +} + +.noMarginText { + margin: 0; +} + +.flex-container { + margin-left: $content-margin; + margin-right: $content-margin; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + max-width: 1440px; +} + +.container { + margin-left: $content-margin; + margin-right: $content-margin; + margin-top: 0; + max-width: 1440px; +} + +.form { + text-align: center; + background-color: var(--card-background); + border-radius: $border-radius; + padding: $space-xl $content-margin; + border: 1px solid $brand-secondary; + @media (max-width: 720px) { + & { + padding: $space-xl $content-margin-xs; + } + } +} + +@media (max-width: funcs.rem(1440)) { + .flex-container, + .container { + margin-left: funcs.rem(50); + margin-right: funcs.rem(50); + } +} + +@media (max-width: funcs.rem(460)) { + .flex-container, + .container { + margin-left: funcs.rem(20); + margin-right: funcs.rem(20); + } +} diff --git a/src/styles/themes.css b/src/styles/themes.css new file mode 100644 index 0000000..d0546c9 --- /dev/null +++ b/src/styles/themes.css @@ -0,0 +1,29 @@ +:root { + --body-background-light: #f6f8fa; + --background-accent-light: #ffffff; + --card-background-light: #ffffff; + --text-primary-light: #000000; + --input-bg-light: #ffffff; + + --body-background-dark: #222521; + --background-accent-dark: #30342e; + --card-background-dark: #363c33; + --text-primary-dark: #e0eee1; + --input-bg-dark: #151714; +} + +[data-theme="light"] { + --body-background: var(--body-background-light); + --background-accent: var(--background-accent-light); + --card-background: var(--card-background-light); + --text-primary: var(--text-primary-light); + --input-bg: var(--input-bg-light); +} + +[data-theme="dark"] { + --body-background: var(--body-background-dark); + --background-accent: var(--background-accent-dark); + --text-primary: var(--text-primary-dark); + --card-background: var(--card-background-dark); + --input-bg: var(--input-bg-dark); +} diff --git a/src/utils/apiTypes.ts b/src/utils/apiTypes.ts index e378f0f..05b1109 100644 --- a/src/utils/apiTypes.ts +++ b/src/utils/apiTypes.ts @@ -1,11 +1,17 @@ -export type ApiResp = +export type ApiResp = | { isError: false; data: SuccessData; - headers: object; } | { isError: true; data: ErrorData; - headers: null; }; + + export type PostApiResp = + | { + isError: false; + } + | { + isError: true; + }; \ No newline at end of file diff --git a/src/utils/fetch.ts b/src/utils/fetch.ts index e2219e2..535f3ce 100644 --- a/src/utils/fetch.ts +++ b/src/utils/fetch.ts @@ -1,15 +1,23 @@ import axios from "axios"; -import { RepoModel } from "store/models"; +import { RepoApiModel, RepoModel } from "store/models"; +import { getCookie } from "typescript-cookie"; import { ApiResp } from "utils/apiTypes"; -export const fetch = async (url: string, params: any = {}, headers: any = {}, method: "get" | "post" = "get"): Promise> => { +export const fetch = async ( + url: string, + params: object = {}, + headers: object = {}, + method: "get" | "post" = "get", +): Promise> => { + const token = getCookie("token"); + if (token) { + headers["Authorization"] = `Bearer ${token}`; + } + try { - let response = "" + let response = ""; if (method === "post") { - response = await axios.post(url, { - headers: headers, - params: params, - }); + response = await axios.post(url, params, { headers: headers }); } else { response = await axios(url, { headers: headers, @@ -20,14 +28,14 @@ export const fetch = async (url: string, params: any = {}, headers: any = {}, me return { isError: false, data: response.data, - headers: response.headers + headers: response.headers, }; } catch (e) { console.log(e); return { isError: true, - data: null, - headers: null + data: e.response.data.errors, + headers: null, }; } }; diff --git a/src/utils/formatDate.ts b/src/utils/formatDate.ts index 59cf968..decabab 100644 --- a/src/utils/formatDate.ts +++ b/src/utils/formatDate.ts @@ -1,4 +1,4 @@ -export const formatDate = (isoDate: string): string => { +export const formatDate = (isoDate: Date): string => { const date = new Date(isoDate); const day = date.getUTCDate(); diff --git a/src/utils/updateQueryParam.ts b/src/utils/updateQueryParam.ts index 12e28b7..08ed3e2 100644 --- a/src/utils/updateQueryParam.ts +++ b/src/utils/updateQueryParam.ts @@ -1,19 +1,15 @@ -import { NavigateFunction } from 'react-router-dom'; - -export const updateQueryParam = ( - navigate: NavigateFunction, - params: Record, -) => { - const searchParams = new URLSearchParams(); +import { rootStore } from "store/RootStore"; +export const updateQueryParam = (params: Record) => { + const searchParams = new URLSearchParams(window.location.hash.split("?")[1] || ""); Object.keys(params).forEach((key) => { const value = params[key]; - if (value !== null) { + if (value !== "" && value !== null) { searchParams.set(key, value.toString()); } else { searchParams.delete(key); } }); - - navigate(`?${searchParams.toString()}`, { replace: true }); + rootStore.query.navigate(`?${searchParams.toString()}`, { replace: true }); + return searchParams.toString(); }; diff --git a/src/utils/viewedRepos.ts b/src/utils/viewedRepos.ts index 041e836..7e8ddbc 100644 --- a/src/utils/viewedRepos.ts +++ b/src/utils/viewedRepos.ts @@ -2,23 +2,23 @@ import { toJS } from "mobx"; import { RepoModel } from "store/models"; export const getViewedRepos = () => { - // localStorage.clear() - const viewedRepos = localStorage.getItem("viewedRepos"); - return viewedRepos ? JSON.parse(viewedRepos) : []; + // localStorage.clear() + const viewedRepos = localStorage.getItem("viewedRepos"); + return viewedRepos ? JSON.parse(viewedRepos) : []; }; export const addViewedRepo = (repo: RepoModel) => { - let viewedRepos = getViewedRepos(); + let viewedRepos = getViewedRepos(); - if (viewedRepos.some(r => r.name === repo.name)) { - return - } + if (viewedRepos.some((r: string) => r.name === repo.name)) { + return; + } - if (viewedRepos.length >= 4 || viewedRepos[0] !== undefined && viewedRepos[0].name === repo.name) { - viewedRepos = viewedRepos.slice(1) - } + if (viewedRepos.length >= 3 || (viewedRepos[0] !== undefined && viewedRepos[0].name === repo.name)) { + viewedRepos = viewedRepos.slice(1); + } - viewedRepos.push(toJS(repo)) + viewedRepos.push(toJS(repo)); - localStorage.setItem("viewedRepos", JSON.stringify(viewedRepos)); + localStorage.setItem("viewedRepos", JSON.stringify(viewedRepos)); }; diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts deleted file mode 100644 index 11f02fe..0000000 --- a/src/vite-env.d.ts +++ /dev/null @@ -1 +0,0 @@ -/// diff --git a/tsconfig.app.json b/tsconfig.app.json deleted file mode 100644 index 3d262ce..0000000 --- a/tsconfig.app.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "compilerOptions": { - "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", - "target": "ES2020", - "useDefineForClassFields": true, - "lib": ["ES2020", "DOM", "DOM.Iterable"], - "module": "ESNext", - "skipLibCheck": true, - - "moduleResolution": "node", - "allowImportingTsExtensions": true, - "isolatedModules": true, - "moduleDetection": "force", - "noEmit": true, - "jsx": "react-jsx", - - "strict": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "noFallthroughCasesInSwitch": true, - "noUncheckedSideEffectImports": true, - - "baseUrl": "src", - "paths": { - "components": ["components/*"], - "config": ["config/*"], - "styles": ["styles/*"], - "utils": ["utils/*"], - "App": ["App/*"], - "assets": ["assets/*"], - "hooks": ["hooks/*"], - "api": ["api/*"], - "store": ["store/*"], - "meta": ["store/*"] - } - }, - "include": ["src"] -} diff --git a/tsconfig.json b/tsconfig.json index 84c8a23..a49f6f6 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,7 +1,32 @@ { - "files": [], - "references": [ - { "path": "./tsconfig.app.json" }, - { "path": "./tsconfig.node.json" } - ], + "compilerOptions": { + "outDir": "./dist/", + "noImplicitAny": true, + "module": "ESNext", + "target": "es5", + "jsx": "react-jsx", + "allowJs": true, + "moduleResolution": "Node", + "downlevelIteration": true, + "allowSyntheticDefaultImports": true, + "esModuleInterop": true, + "baseUrl": "src", + "paths": { + "components": ["components/*"], + "config": ["config/*"], + "styles": ["styles/*"], + "utils": ["utils/*"], + "App": ["App/*"], + "assets": ["assets/*"], + "hooks": ["hooks/*"], + "api": ["api/*"], + "store": ["store/*"], + "meta": ["store/*"], + } + }, + "ts-node": { + "compilerOptions": { + "module": "CommonJS" + } + } } diff --git a/tsconfig.node.json b/tsconfig.node.json deleted file mode 100644 index f3ab704..0000000 --- a/tsconfig.node.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "compilerOptions": { - "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", - "target": "ES2022", - "lib": ["ES2023"], - "module": "ESNext", - "skipLibCheck": true, - - /* Bundler mode */ - "moduleResolution": "bundler", - "allowImportingTsExtensions": true, - "isolatedModules": true, - "moduleDetection": "force", - "noEmit": true, - - /* Linting */ - "strict": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "noFallthroughCasesInSwitch": true, - "noUncheckedSideEffectImports": true - }, - "include": ["vite.config.ts", "tsconfig.json"] -} diff --git a/vite.config.ts b/vite.config.ts deleted file mode 100644 index 4ddb451..0000000 --- a/vite.config.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { defineConfig } from "vite"; -import react from "@vitejs/plugin-react"; -import path from "path"; - -import tsconfig from "./tsconfig.app.json"; - -const SRC_PATH = path.resolve(__dirname, "src"); - -const parseTsConfigPaths = ( - paths: Record -): Record => { - const webpackConfigAliases: Record = {}; - - Object.entries(paths).forEach(([alias, paths]) => { - const aliasPath = paths[0].replace(/[^a-zA-Z]/g, ""); - - webpackConfigAliases[alias] = path.join(SRC_PATH, aliasPath); - }); - - return webpackConfigAliases; -}; - -export default defineConfig({ - plugins: [react()], - resolve: { - alias: parseTsConfigPaths(tsconfig.compilerOptions.paths), - }, -}); diff --git a/webpack.config.ts b/webpack.config.ts new file mode 100644 index 0000000..801f2d6 --- /dev/null +++ b/webpack.config.ts @@ -0,0 +1,36 @@ +import path from "path"; +import webpack from "webpack"; + +import { buildWebpack } from "./config/build/buildWebpack"; +import { BuildMode, BuildPaths } from "./config/build/types/types"; + +interface EnvVars { + mode: BuildMode; + port: number; +} + +export default (env: EnvVars) => { + const paths: BuildPaths = { + output: path.resolve(__dirname, "build"), + entry: path.resolve(__dirname, "src", "main.tsx"), + html: path.resolve(__dirname, "public", "index.html"), + src: path.resolve(__dirname, "src"), + + components: path.resolve(__dirname, "src", "components"), + config: path.resolve(__dirname, "src", "config"), + styles: path.resolve(__dirname, "src", "styles"), + utils: path.resolve(__dirname, "src", "utils"), + App: path.resolve(__dirname, "src", "App"), + assets: path.resolve(__dirname, "src", "assets"), + hooks: path.resolve(__dirname, "src", "hooks"), + api: path.resolve(__dirname, "src", "api"), + store: path.resolve(__dirname, "src", "store"), + meta: path.resolve(__dirname, "src", "store") + }; + const config: webpack.Configuration = buildWebpack({ + port: env.port ?? 3000, + mode: env.mode ?? "development", + paths: paths, + }); + return config; +}; diff --git a/yarn.lock b/yarn.lock index 6f00697..7f88bc1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4,164 +4,858 @@ "@ampproject/remapping@^2.2.0": version "2.3.0" - resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4" integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== dependencies: "@jridgewell/gen-mapping" "^0.3.5" "@jridgewell/trace-mapping" "^0.3.24" -"@babel/code-frame@^7.26.2": - version "7.26.2" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz" - integrity sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.7", "@babel/code-frame@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.27.1.tgz#200f715e66d52a23b221a9435534a91cc13ad5be" + integrity sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg== dependencies: - "@babel/helper-validator-identifier" "^7.25.9" + "@babel/helper-validator-identifier" "^7.27.1" js-tokens "^4.0.0" - picocolors "^1.0.0" + picocolors "^1.1.1" -"@babel/compat-data@^7.26.8": - version "7.26.8" - resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.8.tgz" - integrity sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ== +"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.27.2": + version "7.27.2" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.27.2.tgz#4183f9e642fd84e74e3eea7ffa93a412e3b102c9" + integrity sha512-TUtMJYRPyUb/9aU8f3K0mjmjf6M9N5Woshn2CS6nqJSeJtTtQcpLUXjGt9vbF8ZGff0El99sWkLgzwW3VXnxZQ== -"@babel/core@^7.26.0": - version "7.26.10" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.26.10.tgz" - integrity sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ== +"@babel/core@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.27.1.tgz#89de51e86bd12246003e3524704c49541b16c3e6" + integrity sha512-IaaGWsQqfsQWVLqMn9OB92MNN7zukfVA4s7KKAI0KfrrDsZ0yhi5uV4baBuLuN7n3vsZpwP8asPPcVwApxvjBQ== dependencies: "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.26.2" - "@babel/generator" "^7.26.10" - "@babel/helper-compilation-targets" "^7.26.5" - "@babel/helper-module-transforms" "^7.26.0" - "@babel/helpers" "^7.26.10" - "@babel/parser" "^7.26.10" - "@babel/template" "^7.26.9" - "@babel/traverse" "^7.26.10" - "@babel/types" "^7.26.10" + "@babel/code-frame" "^7.27.1" + "@babel/generator" "^7.27.1" + "@babel/helper-compilation-targets" "^7.27.1" + "@babel/helper-module-transforms" "^7.27.1" + "@babel/helpers" "^7.27.1" + "@babel/parser" "^7.27.1" + "@babel/template" "^7.27.1" + "@babel/traverse" "^7.27.1" + "@babel/types" "^7.27.1" convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.26.10", "@babel/generator@^7.27.0": - version "7.27.0" - resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.27.0.tgz" - integrity sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw== +"@babel/generator@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.27.1.tgz#862d4fad858f7208edd487c28b58144036b76230" + integrity sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w== dependencies: - "@babel/parser" "^7.27.0" - "@babel/types" "^7.27.0" + "@babel/parser" "^7.27.1" + "@babel/types" "^7.27.1" "@jridgewell/gen-mapping" "^0.3.5" "@jridgewell/trace-mapping" "^0.3.25" jsesc "^3.0.2" -"@babel/helper-compilation-targets@^7.26.5": - version "7.27.0" - resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.0.tgz" - integrity sha512-LVk7fbXml0H2xH34dFzKQ7TDZ2G4/rVTOrq9V+icbbadjbVxxeFeDsNHv2SrZeWoA+6ZiTyWYWtScEIW07EAcA== +"@babel/helper-annotate-as-pure@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.1.tgz#4345d81a9a46a6486e24d069469f13e60445c05d" + integrity sha512-WnuuDILl9oOBbKnb4L+DyODx7iC47XfzmNCpTttFsSp6hTG7XZxu60+4IO+2/hPfcGOoKbFiwoI/+zwARbNQow== + dependencies: + "@babel/types" "^7.27.1" + +"@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.27.1", "@babel/helper-compilation-targets@^7.27.2": + version "7.27.2" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz#46a0f6efab808d51d29ce96858dd10ce8732733d" + integrity sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ== dependencies: - "@babel/compat-data" "^7.26.8" - "@babel/helper-validator-option" "^7.25.9" + "@babel/compat-data" "^7.27.2" + "@babel/helper-validator-option" "^7.27.1" browserslist "^4.24.0" lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-module-imports@^7.25.9": - version "7.25.9" - resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz" - integrity sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw== - dependencies: - "@babel/traverse" "^7.25.9" - "@babel/types" "^7.25.9" - -"@babel/helper-module-transforms@^7.26.0": - version "7.26.0" - resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz" - integrity sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw== - dependencies: - "@babel/helper-module-imports" "^7.25.9" - "@babel/helper-validator-identifier" "^7.25.9" - "@babel/traverse" "^7.25.9" - -"@babel/helper-plugin-utils@^7.25.9": - version "7.26.5" - resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz" - integrity sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg== - -"@babel/helper-string-parser@^7.25.9": - version "7.25.9" - resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz" - integrity sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA== - -"@babel/helper-validator-identifier@^7.25.9": - version "7.25.9" - resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz" - integrity sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ== - -"@babel/helper-validator-option@^7.25.9": - version "7.25.9" - resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz" - integrity sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw== - -"@babel/helpers@^7.26.10": - version "7.27.0" - resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.0.tgz" - integrity sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg== - dependencies: - "@babel/template" "^7.27.0" - "@babel/types" "^7.27.0" - -"@babel/parser@^7.1.0", "@babel/parser@^7.20.7", "@babel/parser@^7.26.10", "@babel/parser@^7.27.0": - version "7.27.0" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.27.0.tgz" - integrity sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg== - dependencies: - "@babel/types" "^7.27.0" - -"@babel/plugin-transform-react-jsx-self@^7.25.9": - version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz" - integrity sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-react-jsx-source@^7.25.9": - version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz" - integrity sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/template@^7.26.9", "@babel/template@^7.27.0": - version "7.27.0" - resolved "https://registry.npmjs.org/@babel/template/-/template-7.27.0.tgz" - integrity sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA== - dependencies: - "@babel/code-frame" "^7.26.2" - "@babel/parser" "^7.27.0" - "@babel/types" "^7.27.0" - -"@babel/traverse@^7.25.9", "@babel/traverse@^7.26.10": - version "7.27.0" - resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.0.tgz" - integrity sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA== - dependencies: - "@babel/code-frame" "^7.26.2" - "@babel/generator" "^7.27.0" - "@babel/parser" "^7.27.0" - "@babel/template" "^7.27.0" - "@babel/types" "^7.27.0" +"@babel/helper-create-class-features-plugin@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.27.1.tgz#5bee4262a6ea5ddc852d0806199eb17ca3de9281" + integrity sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.27.1" + "@babel/helper-member-expression-to-functions" "^7.27.1" + "@babel/helper-optimise-call-expression" "^7.27.1" + "@babel/helper-replace-supers" "^7.27.1" + "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" + "@babel/traverse" "^7.27.1" + semver "^6.3.1" + +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.27.1.tgz#05b0882d97ba1d4d03519e4bce615d70afa18c53" + integrity sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.27.1" + regexpu-core "^6.2.0" + semver "^6.3.1" + +"@babel/helper-define-polyfill-provider@^0.6.3", "@babel/helper-define-polyfill-provider@^0.6.4": + version "0.6.4" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.4.tgz#15e8746368bfa671785f5926ff74b3064c291fab" + integrity sha512-jljfR1rGnXXNWnmQg2K3+bvhkxB51Rl32QRaOTuwwjviGrHzIbSc8+x9CpraDtbT7mfyjXObULP4w/adunNwAw== + dependencies: + "@babel/helper-compilation-targets" "^7.22.6" + "@babel/helper-plugin-utils" "^7.22.5" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + +"@babel/helper-member-expression-to-functions@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.27.1.tgz#ea1211276be93e798ce19037da6f06fbb994fa44" + integrity sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA== + dependencies: + "@babel/traverse" "^7.27.1" + "@babel/types" "^7.27.1" + +"@babel/helper-module-imports@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz#7ef769a323e2655e126673bb6d2d6913bbead204" + integrity sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w== + dependencies: + "@babel/traverse" "^7.27.1" + "@babel/types" "^7.27.1" + +"@babel/helper-module-transforms@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.27.1.tgz#e1663b8b71d2de948da5c4fb2a20ca4f3ec27a6f" + integrity sha512-9yHn519/8KvTU5BjTVEEeIM3w9/2yXNKoD82JifINImhpKkARMJKPP59kLo+BafpdN5zgNeIcS4jsGDmd3l58g== + dependencies: + "@babel/helper-module-imports" "^7.27.1" + "@babel/helper-validator-identifier" "^7.27.1" + "@babel/traverse" "^7.27.1" + +"@babel/helper-optimise-call-expression@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz#c65221b61a643f3e62705e5dd2b5f115e35f9200" + integrity sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw== + dependencies: + "@babel/types" "^7.27.1" + +"@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.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz#ddb2f876534ff8013e6c2b299bf4d39b3c51d44c" + integrity sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw== + +"@babel/helper-remap-async-to-generator@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz#4601d5c7ce2eb2aea58328d43725523fcd362ce6" + integrity sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.27.1" + "@babel/helper-wrap-function" "^7.27.1" + "@babel/traverse" "^7.27.1" + +"@babel/helper-replace-supers@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz#b1ed2d634ce3bdb730e4b52de30f8cccfd692bc0" + integrity sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.27.1" + "@babel/helper-optimise-call-expression" "^7.27.1" + "@babel/traverse" "^7.27.1" + +"@babel/helper-skip-transparent-expression-wrappers@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz#62bb91b3abba8c7f1fec0252d9dbea11b3ee7a56" + integrity sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg== + dependencies: + "@babel/traverse" "^7.27.1" + "@babel/types" "^7.27.1" + +"@babel/helper-string-parser@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz#54da796097ab19ce67ed9f88b47bb2ec49367687" + integrity sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA== + +"@babel/helper-validator-identifier@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz#a7054dcc145a967dd4dc8fee845a57c1316c9df8" + integrity sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow== + +"@babel/helper-validator-option@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz#fa52f5b1e7db1ab049445b421c4471303897702f" + integrity sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg== + +"@babel/helper-wrap-function@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.27.1.tgz#b88285009c31427af318d4fe37651cd62a142409" + integrity sha512-NFJK2sHUvrjo8wAU/nQTWU890/zB2jj0qBcCbZbbf+005cAsv6tMjXz31fBign6M5ov1o0Bllu+9nbqkfsjjJQ== + dependencies: + "@babel/template" "^7.27.1" + "@babel/traverse" "^7.27.1" + "@babel/types" "^7.27.1" + +"@babel/helpers@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.27.1.tgz#ffc27013038607cdba3288e692c3611c06a18aa4" + integrity sha512-FCvFTm0sWV8Fxhpp2McP5/W53GPllQ9QeQ7SiqGWjMf/LVG07lFa5+pgK05IRhVwtvafT22KF+ZSnM9I545CvQ== + dependencies: + "@babel/template" "^7.27.1" + "@babel/types" "^7.27.1" + +"@babel/parser@^7.27.1", "@babel/parser@^7.27.2": + version "7.27.2" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.27.2.tgz#577518bedb17a2ce4212afd052e01f7df0941127" + integrity sha512-QYLs8299NA7WM/bZAdp+CviYYkVoYXlDW2rzliy3chxd1PQjej7JORuMJDJXJUb9g0TT+B99EwaVLKmX+sPXWw== + dependencies: + "@babel/types" "^7.27.1" + +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.27.1.tgz#61dd8a8e61f7eb568268d1b5f129da3eee364bf9" + integrity sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/traverse" "^7.27.1" + +"@babel/plugin-bugfix-safari-class-field-initializer-scope@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz#43f70a6d7efd52370eefbdf55ae03d91b293856d" + integrity sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.27.1": + version "7.27.1" + 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.27.1.tgz#beb623bd573b8b6f3047bd04c32506adc3e58a72" + integrity sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz#e134a5479eb2ba9c02714e8c1ebf1ec9076124fd" + integrity sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" + "@babel/plugin-transform-optional-chaining" "^7.27.1" + +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.27.1.tgz#bb1c25af34d75115ce229a1de7fa44bf8f955670" + integrity sha512-6BpaYGDavZqkI6yT+KSPdpZFfpnd68UKXbcjI9pJ13pvHhPrCKWOOLp+ysvMeA+DxnhuPpgIaRpxRxo5A9t5jw== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/traverse" "^7.27.1" + +"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": + version "7.21.0-placeholder-for-preset-env.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" + integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== + +"@babel/plugin-syntax-import-assertions@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.27.1.tgz#88894aefd2b03b5ee6ad1562a7c8e1587496aecd" + integrity sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-syntax-import-attributes@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz#34c017d54496f9b11b61474e7ea3dfd5563ffe07" + integrity sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-syntax-jsx@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz#2f9beb5eff30fa507c5532d107daac7b888fa34c" + integrity sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-syntax-typescript@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz#5147d29066a793450f220c63fa3a9431b7e6dd18" + integrity sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" + integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-arrow-functions@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz#6e2061067ba3ab0266d834a9f94811196f2aba9a" + integrity sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-async-generator-functions@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.27.1.tgz#ca433df983d68e1375398e7ca71bf2a4f6fd89d7" + integrity sha512-eST9RrwlpaoJBDHShc+DS2SG4ATTi2MYNb4OxYkf3n+7eb49LWpnS+HSpVfW4x927qQwgk8A2hGNVaajAEw0EA== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-remap-async-to-generator" "^7.27.1" + "@babel/traverse" "^7.27.1" + +"@babel/plugin-transform-async-to-generator@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz#9a93893b9379b39466c74474f55af03de78c66e7" + integrity sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA== + dependencies: + "@babel/helper-module-imports" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-remap-async-to-generator" "^7.27.1" + +"@babel/plugin-transform-block-scoped-functions@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz#558a9d6e24cf72802dd3b62a4b51e0d62c0f57f9" + integrity sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-block-scoping@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.27.1.tgz#bc0dbe8ac6de5602981ba58ef68c6df8ef9bfbb3" + integrity sha512-QEcFlMl9nGTgh1rn2nIeU5bkfb9BAjaQcWbiP4LvKxUot52ABcTkpcyJ7f2Q2U2RuQ84BNLgts3jRme2dTx6Fw== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-class-properties@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz#dd40a6a370dfd49d32362ae206ddaf2bb082a925" + integrity sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-class-static-block@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.27.1.tgz#7e920d5625b25bbccd3061aefbcc05805ed56ce4" + integrity sha512-s734HmYU78MVzZ++joYM+NkJusItbdRcbm+AGRgJCt3iA+yux0QpD9cBVdz3tKyrjVYWRl7j0mHSmv4lhV0aoA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-classes@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.27.1.tgz#03bb04bea2c7b2f711f0db7304a8da46a85cced4" + integrity sha512-7iLhfFAubmpeJe/Wo2TVuDrykh/zlWXLzPNdL0Jqn/Xu8R3QQ8h9ff8FQoISZOsw74/HFqFI7NX63HN7QFIHKA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.27.1" + "@babel/helper-compilation-targets" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-replace-supers" "^7.27.1" + "@babel/traverse" "^7.27.1" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz#81662e78bf5e734a97982c2b7f0a793288ef3caa" + integrity sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/template" "^7.27.1" + +"@babel/plugin-transform-destructuring@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.27.1.tgz#d5916ef7089cb254df0418ae524533c1b72ba656" + integrity sha512-ttDCqhfvpE9emVkXbPD8vyxxh4TWYACVybGkDj+oReOGwnp066ITEivDlLwe0b1R0+evJ13IXQuLNB5w1fhC5Q== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-dotall-regex@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.27.1.tgz#aa6821de864c528b1fecf286f0a174e38e826f4d" + integrity sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-duplicate-keys@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz#f1fbf628ece18e12e7b32b175940e68358f546d1" + integrity sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-duplicate-named-capturing-groups-regex@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.27.1.tgz#5043854ca620a94149372e69030ff8cb6a9eb0ec" + integrity sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-dynamic-import@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz#4c78f35552ac0e06aa1f6e3c573d67695e8af5a4" + integrity sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-exponentiation-operator@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.27.1.tgz#fc497b12d8277e559747f5a3ed868dd8064f83e1" + integrity sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-export-namespace-from@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz#71ca69d3471edd6daa711cf4dfc3400415df9c23" + integrity sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-for-of@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz#bc24f7080e9ff721b63a70ac7b2564ca15b6c40a" + integrity sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" + +"@babel/plugin-transform-function-name@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz#4d0bf307720e4dce6d7c30fcb1fd6ca77bdeb3a7" + integrity sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ== + dependencies: + "@babel/helper-compilation-targets" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/traverse" "^7.27.1" + +"@babel/plugin-transform-json-strings@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.27.1.tgz#a2e0ce6ef256376bd527f290da023983527a4f4c" + integrity sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-literals@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz#baaefa4d10a1d4206f9dcdda50d7d5827bb70b24" + integrity sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-logical-assignment-operators@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.27.1.tgz#890cb20e0270e0e5bebe3f025b434841c32d5baa" + integrity sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-member-expression-literals@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz#37b88ba594d852418e99536f5612f795f23aeaf9" + integrity sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-modules-amd@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz#a4145f9d87c2291fe2d05f994b65dba4e3e7196f" + integrity sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA== + dependencies: + "@babel/helper-module-transforms" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-modules-commonjs@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz#8e44ed37c2787ecc23bdc367f49977476614e832" + integrity sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw== + dependencies: + "@babel/helper-module-transforms" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-modules-systemjs@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.27.1.tgz#00e05b61863070d0f3292a00126c16c0e024c4ed" + integrity sha512-w5N1XzsRbc0PQStASMksmUeqECuzKuTJer7kFagK8AXgpCMkeDMO5S+aaFb7A51ZYDF7XI34qsTX+fkHiIm5yA== + dependencies: + "@babel/helper-module-transforms" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-validator-identifier" "^7.27.1" + "@babel/traverse" "^7.27.1" + +"@babel/plugin-transform-modules-umd@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz#63f2cf4f6dc15debc12f694e44714863d34cd334" + integrity sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w== + dependencies: + "@babel/helper-module-transforms" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz#f32b8f7818d8fc0cc46ee20a8ef75f071af976e1" + integrity sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-new-target@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz#259c43939728cad1706ac17351b7e6a7bea1abeb" + integrity sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-nullish-coalescing-operator@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz#4f9d3153bf6782d73dd42785a9d22d03197bc91d" + integrity sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-numeric-separator@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz#614e0b15cc800e5997dadd9bd6ea524ed6c819c6" + integrity sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-object-rest-spread@^7.27.2": + version "7.27.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.27.2.tgz#67f9ab822347aa2bcee91e8996763da79bdea973" + integrity sha512-AIUHD7xJ1mCrj3uPozvtngY3s0xpv7Nu7DoUSnzNY6Xam1Cy4rUznR//pvMHOhQ4AvbCexhbqXCtpxGHOGOO6g== + dependencies: + "@babel/helper-compilation-targets" "^7.27.2" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/plugin-transform-destructuring" "^7.27.1" + "@babel/plugin-transform-parameters" "^7.27.1" + +"@babel/plugin-transform-object-super@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz#1c932cd27bf3874c43a5cac4f43ebf970c9871b5" + integrity sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-replace-supers" "^7.27.1" + +"@babel/plugin-transform-optional-catch-binding@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz#84c7341ebde35ccd36b137e9e45866825072a30c" + integrity sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-optional-chaining@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.27.1.tgz#874ce3c4f06b7780592e946026eb76a32830454f" + integrity sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" + +"@babel/plugin-transform-parameters@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.1.tgz#80334b54b9b1ac5244155a0c8304a187a618d5a7" + integrity sha512-018KRk76HWKeZ5l4oTj2zPpSh+NbGdt0st5S6x0pga6HgrjBOJb24mMDHorFopOOd6YHkLgOZ+zaCjZGPO4aKg== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-private-methods@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz#fdacbab1c5ed81ec70dfdbb8b213d65da148b6af" + integrity sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-private-property-in-object@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz#4dbbef283b5b2f01a21e81e299f76e35f900fb11" + integrity sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.27.1" + "@babel/helper-create-class-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-property-literals@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz#07eafd618800591e88073a0af1b940d9a42c6424" + integrity sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-react-display-name@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.27.1.tgz#43af31362d71f7848cfac0cbc212882b1a16e80f" + integrity sha512-p9+Vl3yuHPmkirRrg021XiP+EETmPMQTLr6Ayjj85RLNEbb3Eya/4VI0vAdzQG9SEAl2Lnt7fy5lZyMzjYoZQQ== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-react-jsx-development@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.27.1.tgz#47ff95940e20a3a70e68ad3d4fcb657b647f6c98" + integrity sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q== + dependencies: + "@babel/plugin-transform-react-jsx" "^7.27.1" + +"@babel/plugin-transform-react-jsx@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.27.1.tgz#1023bc94b78b0a2d68c82b5e96aed573bcfb9db0" + integrity sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.27.1" + "@babel/helper-module-imports" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/plugin-syntax-jsx" "^7.27.1" + "@babel/types" "^7.27.1" + +"@babel/plugin-transform-react-pure-annotations@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.27.1.tgz#339f1ce355eae242e0649f232b1c68907c02e879" + integrity sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-regenerator@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.27.1.tgz#0a471df9213416e44cd66bf67176b66f65768401" + integrity sha512-B19lbbL7PMrKr52BNPjCqg1IyNUIjTcxKj8uX9zHO+PmWN93s19NDr/f69mIkEp2x9nmDJ08a7lgHaTTzvW7mw== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-regexp-modifiers@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.27.1.tgz#df9ba5577c974e3f1449888b70b76169998a6d09" + integrity sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-reserved-words@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz#40fba4878ccbd1c56605a4479a3a891ac0274bb4" + integrity sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-shorthand-properties@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz#532abdacdec87bfee1e0ef8e2fcdee543fe32b90" + integrity sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-spread@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz#1a264d5fc12750918f50e3fe3e24e437178abb08" + integrity sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" + +"@babel/plugin-transform-sticky-regex@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz#18984935d9d2296843a491d78a014939f7dcd280" + integrity sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-template-literals@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz#1a0eb35d8bb3e6efc06c9fd40eb0bcef548328b8" + integrity sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-typeof-symbol@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz#70e966bb492e03509cf37eafa6dcc3051f844369" + integrity sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-typescript@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.27.1.tgz#d3bb65598bece03f773111e88cc4e8e5070f1140" + integrity sha512-Q5sT5+O4QUebHdbwKedFBEwRLb02zJ7r4A5Gg2hUoLuU3FjdMcyqcywqUrLCaDsFCxzokf7u9kuy7qz51YUuAg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.27.1" + "@babel/helper-create-class-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" + "@babel/plugin-syntax-typescript" "^7.27.1" + +"@babel/plugin-transform-unicode-escapes@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz#3e3143f8438aef842de28816ece58780190cf806" + integrity sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-unicode-property-regex@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.27.1.tgz#bdfe2d3170c78c5691a3c3be934c8c0087525956" + integrity sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-unicode-regex@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz#25948f5c395db15f609028e370667ed8bae9af97" + integrity sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-unicode-sets-regex@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.27.1.tgz#6ab706d10f801b5c72da8bb2548561fa04193cd1" + integrity sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/preset-env@^7.27.2": + version "7.27.2" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.27.2.tgz#106e6bfad92b591b1f6f76fd4cf13b7725a7bf9a" + integrity sha512-Ma4zSuYSlGNRlCLO+EAzLnCmJK2vdstgv+n7aUP+/IKZrOfWHOJVdSJtuub8RzHTj3ahD37k5OKJWvzf16TQyQ== + dependencies: + "@babel/compat-data" "^7.27.2" + "@babel/helper-compilation-targets" "^7.27.2" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-validator-option" "^7.27.1" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.27.1" + "@babel/plugin-bugfix-safari-class-field-initializer-scope" "^7.27.1" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.27.1" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.27.1" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.27.1" + "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" + "@babel/plugin-syntax-import-assertions" "^7.27.1" + "@babel/plugin-syntax-import-attributes" "^7.27.1" + "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" + "@babel/plugin-transform-arrow-functions" "^7.27.1" + "@babel/plugin-transform-async-generator-functions" "^7.27.1" + "@babel/plugin-transform-async-to-generator" "^7.27.1" + "@babel/plugin-transform-block-scoped-functions" "^7.27.1" + "@babel/plugin-transform-block-scoping" "^7.27.1" + "@babel/plugin-transform-class-properties" "^7.27.1" + "@babel/plugin-transform-class-static-block" "^7.27.1" + "@babel/plugin-transform-classes" "^7.27.1" + "@babel/plugin-transform-computed-properties" "^7.27.1" + "@babel/plugin-transform-destructuring" "^7.27.1" + "@babel/plugin-transform-dotall-regex" "^7.27.1" + "@babel/plugin-transform-duplicate-keys" "^7.27.1" + "@babel/plugin-transform-duplicate-named-capturing-groups-regex" "^7.27.1" + "@babel/plugin-transform-dynamic-import" "^7.27.1" + "@babel/plugin-transform-exponentiation-operator" "^7.27.1" + "@babel/plugin-transform-export-namespace-from" "^7.27.1" + "@babel/plugin-transform-for-of" "^7.27.1" + "@babel/plugin-transform-function-name" "^7.27.1" + "@babel/plugin-transform-json-strings" "^7.27.1" + "@babel/plugin-transform-literals" "^7.27.1" + "@babel/plugin-transform-logical-assignment-operators" "^7.27.1" + "@babel/plugin-transform-member-expression-literals" "^7.27.1" + "@babel/plugin-transform-modules-amd" "^7.27.1" + "@babel/plugin-transform-modules-commonjs" "^7.27.1" + "@babel/plugin-transform-modules-systemjs" "^7.27.1" + "@babel/plugin-transform-modules-umd" "^7.27.1" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.27.1" + "@babel/plugin-transform-new-target" "^7.27.1" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.27.1" + "@babel/plugin-transform-numeric-separator" "^7.27.1" + "@babel/plugin-transform-object-rest-spread" "^7.27.2" + "@babel/plugin-transform-object-super" "^7.27.1" + "@babel/plugin-transform-optional-catch-binding" "^7.27.1" + "@babel/plugin-transform-optional-chaining" "^7.27.1" + "@babel/plugin-transform-parameters" "^7.27.1" + "@babel/plugin-transform-private-methods" "^7.27.1" + "@babel/plugin-transform-private-property-in-object" "^7.27.1" + "@babel/plugin-transform-property-literals" "^7.27.1" + "@babel/plugin-transform-regenerator" "^7.27.1" + "@babel/plugin-transform-regexp-modifiers" "^7.27.1" + "@babel/plugin-transform-reserved-words" "^7.27.1" + "@babel/plugin-transform-shorthand-properties" "^7.27.1" + "@babel/plugin-transform-spread" "^7.27.1" + "@babel/plugin-transform-sticky-regex" "^7.27.1" + "@babel/plugin-transform-template-literals" "^7.27.1" + "@babel/plugin-transform-typeof-symbol" "^7.27.1" + "@babel/plugin-transform-unicode-escapes" "^7.27.1" + "@babel/plugin-transform-unicode-property-regex" "^7.27.1" + "@babel/plugin-transform-unicode-regex" "^7.27.1" + "@babel/plugin-transform-unicode-sets-regex" "^7.27.1" + "@babel/preset-modules" "0.1.6-no-external-plugins" + babel-plugin-polyfill-corejs2 "^0.4.10" + babel-plugin-polyfill-corejs3 "^0.11.0" + babel-plugin-polyfill-regenerator "^0.6.1" + core-js-compat "^3.40.0" + semver "^6.3.1" + +"@babel/preset-modules@0.1.6-no-external-plugins": + version "0.1.6-no-external-plugins" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a" + integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + +"@babel/preset-react@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.27.1.tgz#86ea0a5ca3984663f744be2fd26cb6747c3fd0ec" + integrity sha512-oJHWh2gLhU9dW9HHr42q0cI0/iHHXTLGe39qvpAZZzagHy0MzYLCnCVV0symeRvzmjHyVU7mw2K06E6u/JwbhA== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-validator-option" "^7.27.1" + "@babel/plugin-transform-react-display-name" "^7.27.1" + "@babel/plugin-transform-react-jsx" "^7.27.1" + "@babel/plugin-transform-react-jsx-development" "^7.27.1" + "@babel/plugin-transform-react-pure-annotations" "^7.27.1" + +"@babel/preset-typescript@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.27.1.tgz#190742a6428d282306648a55b0529b561484f912" + integrity sha512-l7WfQfX0WK4M0v2RudjuQK4u99BS6yLHYEmdtVPP7lKV013zr9DygFuWNlnbvQ9LR+LS0Egz/XAvGx5U9MX0fQ== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-validator-option" "^7.27.1" + "@babel/plugin-syntax-jsx" "^7.27.1" + "@babel/plugin-transform-modules-commonjs" "^7.27.1" + "@babel/plugin-transform-typescript" "^7.27.1" + +"@babel/template@^7.27.1": + version "7.27.2" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.27.2.tgz#fa78ceed3c4e7b63ebf6cb39e5852fca45f6809d" + integrity sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw== + dependencies: + "@babel/code-frame" "^7.27.1" + "@babel/parser" "^7.27.2" + "@babel/types" "^7.27.1" + +"@babel/traverse@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.27.1.tgz#4db772902b133bbddd1c4f7a7ee47761c1b9f291" + integrity sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg== + dependencies: + "@babel/code-frame" "^7.27.1" + "@babel/generator" "^7.27.1" + "@babel/parser" "^7.27.1" + "@babel/template" "^7.27.1" + "@babel/types" "^7.27.1" debug "^4.3.1" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.25.9", "@babel/types@^7.26.10", "@babel/types@^7.27.0": - version "7.27.0" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.27.0.tgz" - integrity sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg== +"@babel/types@^7.27.1", "@babel/types@^7.4.4": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.27.1.tgz#9defc53c16fc899e46941fc6901a9eea1c9d8560" + integrity sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q== dependencies: - "@babel/helper-string-parser" "^7.25.9" - "@babel/helper-validator-identifier" "^7.25.9" + "@babel/helper-string-parser" "^7.27.1" + "@babel/helper-validator-identifier" "^7.27.1" "@cspotcode/source-map-support@^0.8.0": version "0.8.1" @@ -170,6 +864,11 @@ dependencies: "@jridgewell/trace-mapping" "0.3.9" +"@discoveryjs/json-ext@^0.6.1": + version "0.6.3" + resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.6.3.tgz#f13c7c205915eb91ae54c557f5e92bddd8be0e83" + integrity sha512-4B4OijXeVNOPZlYA2oEwWOTkzyltLao+xbotHQeqN++Rv27Y6s818+n2Qkp8q+Fxhn0t/5lA5X1Mxktud8eayQ== + "@emnapi/core@^1.4.0": version "1.4.3" resolved "https://registry.yarnpkg.com/@emnapi/core/-/core-1.4.3.tgz#9ac52d2d5aea958f67e52c40a065f51de59b77d6" @@ -192,131 +891,6 @@ dependencies: tslib "^2.4.0" -"@esbuild/aix-ppc64@0.25.1": - version "0.25.1" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.25.1.tgz#c33cf6bbee34975626b01b80451cbb72b4c6c91d" - integrity sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ== - -"@esbuild/android-arm64@0.25.1": - version "0.25.1" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.25.1.tgz#ea766015c7d2655164f22100d33d7f0308a28d6d" - integrity sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA== - -"@esbuild/android-arm@0.25.1": - version "0.25.1" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.25.1.tgz#e84d2bf2fe2e6177a0facda3a575b2139fd3cb9c" - integrity sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q== - -"@esbuild/android-x64@0.25.1": - version "0.25.1" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.25.1.tgz#58337bee3bc6d78d10425e5500bd11370cfdfbed" - integrity sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw== - -"@esbuild/darwin-arm64@0.25.1": - version "0.25.1" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.25.1.tgz#a46805c1c585d451aa83be72500bd6e8495dd591" - integrity sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ== - -"@esbuild/darwin-x64@0.25.1": - version "0.25.1" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.25.1.tgz#0643e003bb238c63fc93ddbee7d26a003be3cd98" - integrity sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA== - -"@esbuild/freebsd-arm64@0.25.1": - version "0.25.1" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.1.tgz#cff18da5469c09986b93e87979de5d6872fe8f8e" - integrity sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A== - -"@esbuild/freebsd-x64@0.25.1": - version "0.25.1" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.25.1.tgz#362fc09c2de14987621c1878af19203c46365dde" - integrity sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww== - -"@esbuild/linux-arm64@0.25.1": - version "0.25.1" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.25.1.tgz#aa90d5b02efc97a271e124e6d1cea490634f7498" - integrity sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ== - -"@esbuild/linux-arm@0.25.1": - version "0.25.1" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.25.1.tgz#dfcefcbac60a20918b19569b4b657844d39db35a" - integrity sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ== - -"@esbuild/linux-ia32@0.25.1": - version "0.25.1" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.25.1.tgz#6f9527077ccb7953ed2af02e013d4bac69f13754" - integrity sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ== - -"@esbuild/linux-loong64@0.25.1": - version "0.25.1" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.25.1.tgz#287d2412a5456e5860c2839d42a4b51284d1697c" - integrity sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg== - -"@esbuild/linux-mips64el@0.25.1": - version "0.25.1" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.25.1.tgz#530574b9e1bc5d20f7a4f44c5f045e26f3783d57" - integrity sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg== - -"@esbuild/linux-ppc64@0.25.1": - version "0.25.1" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.25.1.tgz#5d7e6b283a0b321ea42c6bc0abeb9eb99c1f5589" - integrity sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg== - -"@esbuild/linux-riscv64@0.25.1": - version "0.25.1" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.25.1.tgz#14fa0cd073c26b4ee2465d18cd1e18eea7859fa8" - integrity sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ== - -"@esbuild/linux-s390x@0.25.1": - version "0.25.1" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.25.1.tgz#e677b4b9d1b384098752266ccaa0d52a420dc1aa" - integrity sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ== - -"@esbuild/linux-x64@0.25.1": - version "0.25.1" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.25.1.tgz#f1c796b78fff5ce393658313e8c58613198d9954" - integrity sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA== - -"@esbuild/netbsd-arm64@0.25.1": - version "0.25.1" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.1.tgz#0d280b7dfe3973f111b02d5fe9f3063b92796d29" - integrity sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g== - -"@esbuild/netbsd-x64@0.25.1": - version "0.25.1" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.25.1.tgz#be663893931a4bb3f3a009c5cc24fa9681cc71c0" - integrity sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA== - -"@esbuild/openbsd-arm64@0.25.1": - version "0.25.1" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.1.tgz#d9021b884233673a05dc1cc26de0bf325d824217" - integrity sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg== - -"@esbuild/openbsd-x64@0.25.1": - version "0.25.1" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.25.1.tgz#9f1dc1786ed2e2938c404b06bcc48be9a13250de" - integrity sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw== - -"@esbuild/sunos-x64@0.25.1": - version "0.25.1" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.25.1.tgz#89aac24a4b4115959b3f790192cf130396696c27" - integrity sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg== - -"@esbuild/win32-arm64@0.25.1": - version "0.25.1" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.25.1.tgz#354358647a6ea98ea6d243bf48bdd7a434999582" - integrity sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ== - -"@esbuild/win32-ia32@0.25.1": - version "0.25.1" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.25.1.tgz#8cea7340f2647eba951a041dc95651e3908cd4cb" - integrity sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A== - -"@esbuild/win32-x64@0.25.1": - version "0.25.1" - resolved "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.1.tgz" - integrity sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg== - "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.5.1" resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.5.1.tgz" @@ -383,6 +957,415 @@ "@eslint/core" "^0.12.0" levn "^0.4.1" +"@firebase/analytics-compat@0.2.18": + version "0.2.18" + resolved "https://registry.npmjs.org/@firebase/analytics-compat/-/analytics-compat-0.2.18.tgz" + integrity sha512-Hw9mzsSMZaQu6wrTbi3kYYwGw9nBqOHr47pVLxfr5v8CalsdrG5gfs9XUlPOZjHRVISp3oQrh1j7d3E+ulHPjQ== + dependencies: + "@firebase/analytics" "0.10.12" + "@firebase/analytics-types" "0.8.3" + "@firebase/component" "0.6.13" + "@firebase/util" "1.11.0" + tslib "^2.1.0" + +"@firebase/analytics-types@0.8.3": + version "0.8.3" + resolved "https://registry.npmjs.org/@firebase/analytics-types/-/analytics-types-0.8.3.tgz" + integrity sha512-VrIp/d8iq2g501qO46uGz3hjbDb8xzYMrbu8Tp0ovzIzrvJZ2fvmj649gTjge/b7cCCcjT0H37g1gVtlNhnkbg== + +"@firebase/analytics@0.10.12": + version "0.10.12" + resolved "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.10.12.tgz" + integrity sha512-iDCGnw6qdFqwI5ywkgece99WADJNoymu+nLIQI4fZM/vCZ3bEo4wlpEetW71s1HqGpI0hQStiPhqVjFxDb2yyw== + dependencies: + "@firebase/component" "0.6.13" + "@firebase/installations" "0.6.13" + "@firebase/logger" "0.4.4" + "@firebase/util" "1.11.0" + tslib "^2.1.0" + +"@firebase/app-check-compat@0.3.20": + version "0.3.20" + resolved "https://registry.npmjs.org/@firebase/app-check-compat/-/app-check-compat-0.3.20.tgz" + integrity sha512-/twgmlnNAaZ/wbz3kcQrL/26b+X+zUX+lBmu5LwwEcWcpnb+mrVEAKhD7/ttm52dxYiSWtLDeuXy3FXBhqBC5A== + dependencies: + "@firebase/app-check" "0.8.13" + "@firebase/app-check-types" "0.5.3" + "@firebase/component" "0.6.13" + "@firebase/logger" "0.4.4" + "@firebase/util" "1.11.0" + tslib "^2.1.0" + +"@firebase/app-check-interop-types@0.3.3": + version "0.3.3" + resolved "https://registry.npmjs.org/@firebase/app-check-interop-types/-/app-check-interop-types-0.3.3.tgz" + integrity sha512-gAlxfPLT2j8bTI/qfe3ahl2I2YcBQ8cFIBdhAQA4I2f3TndcO+22YizyGYuttLHPQEpWkhmpFW60VCFEPg4g5A== + +"@firebase/app-check-types@0.5.3": + version "0.5.3" + resolved "https://registry.npmjs.org/@firebase/app-check-types/-/app-check-types-0.5.3.tgz" + integrity sha512-hyl5rKSj0QmwPdsAxrI5x1otDlByQ7bvNvVt8G/XPO2CSwE++rmSVf3VEhaeOR4J8ZFaF0Z0NDSmLejPweZ3ng== + +"@firebase/app-check@0.8.13": + version "0.8.13" + resolved "https://registry.npmjs.org/@firebase/app-check/-/app-check-0.8.13.tgz" + integrity sha512-ONsgml8/dplUOAP42JQO6hhiWDEwR9+RUTLenxAN9S8N6gel/sDQ9Ci721Py1oASMGdDU8v9R7xAZxzvOX5lPg== + dependencies: + "@firebase/component" "0.6.13" + "@firebase/logger" "0.4.4" + "@firebase/util" "1.11.0" + tslib "^2.1.0" + +"@firebase/app-compat@0.2.54": + version "0.2.54" + resolved "https://registry.npmjs.org/@firebase/app-compat/-/app-compat-0.2.54.tgz" + integrity sha512-Vwf29tV/5bHEnp+VPgNWOFMbFG+RSur2ntmzZ19Plp5dJOtoo2nQS817COALLaHlebG/Xf/P5PVHyeQNcSVCqQ== + dependencies: + "@firebase/app" "0.11.5" + "@firebase/component" "0.6.13" + "@firebase/logger" "0.4.4" + "@firebase/util" "1.11.0" + tslib "^2.1.0" + +"@firebase/app-types@0.9.3": + version "0.9.3" + resolved "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.9.3.tgz" + integrity sha512-kRVpIl4vVGJ4baogMDINbyrIOtOxqhkZQg4jTq3l8Lw6WSk0xfpEYzezFu+Kl4ve4fbPl79dvwRtaFqAC/ucCw== + +"@firebase/app@0.11.5": + version "0.11.5" + resolved "https://registry.npmjs.org/@firebase/app/-/app-0.11.5.tgz" + integrity sha512-uNp8/Rv12GrrM/dfyqzZCftA2i/5X9axmiEtUDmyQw+0S17EV5s9gudOgdIIGr849LmbAk3At2CBZMqiQJVwNw== + dependencies: + "@firebase/component" "0.6.13" + "@firebase/logger" "0.4.4" + "@firebase/util" "1.11.0" + idb "7.1.1" + tslib "^2.1.0" + +"@firebase/auth-compat@0.5.21": + version "0.5.21" + resolved "https://registry.npmjs.org/@firebase/auth-compat/-/auth-compat-0.5.21.tgz" + integrity sha512-FrUEcqLEWVA3mGyq96wWVxXzEIWTrdBctgQuC4MVuCyH5rJZu1kPsLKdeCYuYbqTz7i94DNuGxMNIW3Y5eFqaQ== + dependencies: + "@firebase/auth" "1.10.1" + "@firebase/auth-types" "0.13.0" + "@firebase/component" "0.6.13" + "@firebase/util" "1.11.0" + tslib "^2.1.0" + +"@firebase/auth-interop-types@0.2.4": + version "0.2.4" + resolved "https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.2.4.tgz" + integrity sha512-JPgcXKCuO+CWqGDnigBtvo09HeBs5u/Ktc2GaFj2m01hLarbxthLNm7Fk8iOP1aqAtXV+fnnGj7U28xmk7IwVA== + +"@firebase/auth-types@0.13.0": + version "0.13.0" + resolved "https://registry.npmjs.org/@firebase/auth-types/-/auth-types-0.13.0.tgz" + integrity sha512-S/PuIjni0AQRLF+l9ck0YpsMOdE8GO2KU6ubmBB7P+7TJUCQDa3R1dlgYm9UzGbbePMZsp0xzB93f2b/CgxMOg== + +"@firebase/auth@1.10.1": + version "1.10.1" + resolved "https://registry.npmjs.org/@firebase/auth/-/auth-1.10.1.tgz" + integrity sha512-YsCppueiV4AsMTf4oQ49KiADvtqKnG5j9Q4mBv7xGa0hnSTAX3jpdwlTluU3n0JxUT2tbPkeOESJmF4a9GWlMQ== + dependencies: + "@firebase/component" "0.6.13" + "@firebase/logger" "0.4.4" + "@firebase/util" "1.11.0" + tslib "^2.1.0" + +"@firebase/component@0.6.13": + version "0.6.13" + resolved "https://registry.npmjs.org/@firebase/component/-/component-0.6.13.tgz" + integrity sha512-I/Eg1NpAtZ8AAfq8mpdfXnuUpcLxIDdCDtTzWSh+FXnp/9eCKJ3SNbOCKrUCyhLzNa2SiPJYruei0sxVjaOTeg== + dependencies: + "@firebase/util" "1.11.0" + tslib "^2.1.0" + +"@firebase/data-connect@0.3.4": + version "0.3.4" + resolved "https://registry.npmjs.org/@firebase/data-connect/-/data-connect-0.3.4.tgz" + integrity sha512-Clt0bHoth4N60RmzTdCaw20S5Eeg5PhjbsxP7tIB9FQlP9qm9pS25WW9v4C3gj9DugrBrJ8d/gh/e+H5+F276Q== + dependencies: + "@firebase/auth-interop-types" "0.2.4" + "@firebase/component" "0.6.13" + "@firebase/logger" "0.4.4" + "@firebase/util" "1.11.0" + tslib "^2.1.0" + +"@firebase/database-compat@2.0.5": + version "2.0.5" + resolved "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-2.0.5.tgz" + integrity sha512-CNf1UbvWh6qIaSf4sn6sx2DTDz/em/D7QxULH1LTxxDQHr9+CeYGvlAqrKnk4ZH0P0eIHyQFQU7RwkUJI0B9gQ== + dependencies: + "@firebase/component" "0.6.13" + "@firebase/database" "1.0.14" + "@firebase/database-types" "1.0.10" + "@firebase/logger" "0.4.4" + "@firebase/util" "1.11.0" + tslib "^2.1.0" + +"@firebase/database-types@1.0.10": + version "1.0.10" + resolved "https://registry.npmjs.org/@firebase/database-types/-/database-types-1.0.10.tgz" + integrity sha512-mH6RC1E9/Pv8jf1/p+M8YFTX+iu+iHDN89hecvyO7wHrI4R1V0TXjxOHvX3nLJN1sfh0CWG6CHZ0VlrSmK/cwg== + dependencies: + "@firebase/app-types" "0.9.3" + "@firebase/util" "1.11.0" + +"@firebase/database@1.0.14": + version "1.0.14" + resolved "https://registry.npmjs.org/@firebase/database/-/database-1.0.14.tgz" + integrity sha512-9nxYtkHAG02/Nh2Ssms1T4BbWPPjiwohCvkHDUl4hNxnki1kPgsLo5xe9kXNzbacOStmVys+RUXvwzynQSKmUQ== + dependencies: + "@firebase/app-check-interop-types" "0.3.3" + "@firebase/auth-interop-types" "0.2.4" + "@firebase/component" "0.6.13" + "@firebase/logger" "0.4.4" + "@firebase/util" "1.11.0" + faye-websocket "0.11.4" + tslib "^2.1.0" + +"@firebase/firestore-compat@0.3.46": + version "0.3.46" + resolved "https://registry.npmjs.org/@firebase/firestore-compat/-/firestore-compat-0.3.46.tgz" + integrity sha512-wwcs1aexd46z/SYHRV9ICOU3nzugSsMGdLAerInswy1SYjiilEq5jubb5KxZZk60jvirGKRbZUbTEhx7FsUkOw== + dependencies: + "@firebase/component" "0.6.13" + "@firebase/firestore" "4.7.11" + "@firebase/firestore-types" "3.0.3" + "@firebase/util" "1.11.0" + tslib "^2.1.0" + +"@firebase/firestore-types@3.0.3": + version "3.0.3" + resolved "https://registry.npmjs.org/@firebase/firestore-types/-/firestore-types-3.0.3.tgz" + integrity sha512-hD2jGdiWRxB/eZWF89xcK9gF8wvENDJkzpVFb4aGkzfEaKxVRD1kjz1t1Wj8VZEp2LCB53Yx1zD8mrhQu87R6Q== + +"@firebase/firestore@4.7.11": + version "4.7.11" + resolved "https://registry.npmjs.org/@firebase/firestore/-/firestore-4.7.11.tgz" + integrity sha512-Ve9Q1YZKgG7Of8jhwPCy43CLe0Oi62clCDYLNYs0Rz08U75caIFZyASRmz+2FZWdMt8fLGmRLDNd0KfX16zMvA== + dependencies: + "@firebase/component" "0.6.13" + "@firebase/logger" "0.4.4" + "@firebase/util" "1.11.0" + "@firebase/webchannel-wrapper" "1.0.3" + "@grpc/grpc-js" "~1.9.0" + "@grpc/proto-loader" "^0.7.8" + tslib "^2.1.0" + +"@firebase/functions-compat@0.3.20": + version "0.3.20" + resolved "https://registry.npmjs.org/@firebase/functions-compat/-/functions-compat-0.3.20.tgz" + integrity sha512-iIudmYDAML6n3c7uXO2YTlzra2/J6lnMzmJTXNthvrKVMgNMaseNoQP1wKfchK84hMuSF8EkM4AvufwbJ+Juew== + dependencies: + "@firebase/component" "0.6.13" + "@firebase/functions" "0.12.3" + "@firebase/functions-types" "0.6.3" + "@firebase/util" "1.11.0" + tslib "^2.1.0" + +"@firebase/functions-types@0.6.3": + version "0.6.3" + resolved "https://registry.npmjs.org/@firebase/functions-types/-/functions-types-0.6.3.tgz" + integrity sha512-EZoDKQLUHFKNx6VLipQwrSMh01A1SaL3Wg6Hpi//x6/fJ6Ee4hrAeswK99I5Ht8roiniKHw4iO0B1Oxj5I4plg== + +"@firebase/functions@0.12.3": + version "0.12.3" + resolved "https://registry.npmjs.org/@firebase/functions/-/functions-0.12.3.tgz" + integrity sha512-Wv7JZMUkKLb1goOWRtsu3t7m97uK6XQvjQLPvn8rncY91+VgdU72crqnaYCDI/ophNuBEmuK8mn0/pAnjUeA6A== + dependencies: + "@firebase/app-check-interop-types" "0.3.3" + "@firebase/auth-interop-types" "0.2.4" + "@firebase/component" "0.6.13" + "@firebase/messaging-interop-types" "0.2.3" + "@firebase/util" "1.11.0" + tslib "^2.1.0" + +"@firebase/installations-compat@0.2.13": + version "0.2.13" + resolved "https://registry.npmjs.org/@firebase/installations-compat/-/installations-compat-0.2.13.tgz" + integrity sha512-f/o6MqCI7LD/ulY9gvgkv6w5k6diaReD8BFHd/y/fEdpsXmFWYS/g28GXCB72bRVBOgPpkOUNl+VsMvDwlRKmw== + dependencies: + "@firebase/component" "0.6.13" + "@firebase/installations" "0.6.13" + "@firebase/installations-types" "0.5.3" + "@firebase/util" "1.11.0" + tslib "^2.1.0" + +"@firebase/installations-types@0.5.3": + version "0.5.3" + resolved "https://registry.npmjs.org/@firebase/installations-types/-/installations-types-0.5.3.tgz" + integrity sha512-2FJI7gkLqIE0iYsNQ1P751lO3hER+Umykel+TkLwHj6plzWVxqvfclPUZhcKFVQObqloEBTmpi2Ozn7EkCABAA== + +"@firebase/installations@0.6.13": + version "0.6.13" + resolved "https://registry.npmjs.org/@firebase/installations/-/installations-0.6.13.tgz" + integrity sha512-6ZpkUiaygPFwgVneYxuuOuHnSPnTA4KefLEaw/sKk/rNYgC7X6twaGfYb0sYLpbi9xV4i5jXsqZ3WO+yaguNgg== + dependencies: + "@firebase/component" "0.6.13" + "@firebase/util" "1.11.0" + idb "7.1.1" + tslib "^2.1.0" + +"@firebase/logger@0.4.4": + version "0.4.4" + resolved "https://registry.npmjs.org/@firebase/logger/-/logger-0.4.4.tgz" + integrity sha512-mH0PEh1zoXGnaR8gD1DeGeNZtWFKbnz9hDO91dIml3iou1gpOnLqXQ2dJfB71dj6dpmUjcQ6phY3ZZJbjErr9g== + dependencies: + tslib "^2.1.0" + +"@firebase/messaging-compat@0.2.17": + version "0.2.17" + resolved "https://registry.npmjs.org/@firebase/messaging-compat/-/messaging-compat-0.2.17.tgz" + integrity sha512-5Q+9IG7FuedusdWHVQRjpA3OVD9KUWp/IPegcv0s5qSqRLBjib7FlAeWxN+VL0Ew43tuPJBY2HKhEecuizmO1Q== + dependencies: + "@firebase/component" "0.6.13" + "@firebase/messaging" "0.12.17" + "@firebase/util" "1.11.0" + tslib "^2.1.0" + +"@firebase/messaging-interop-types@0.2.3": + version "0.2.3" + resolved "https://registry.npmjs.org/@firebase/messaging-interop-types/-/messaging-interop-types-0.2.3.tgz" + integrity sha512-xfzFaJpzcmtDjycpDeCUj0Ge10ATFi/VHVIvEEjDNc3hodVBQADZ7BWQU7CuFpjSHE+eLuBI13z5F/9xOoGX8Q== + +"@firebase/messaging@0.12.17": + version "0.12.17" + resolved "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.12.17.tgz" + integrity sha512-W3CnGhTm6Nx8XGb6E5/+jZTuxX/EK8Vur4QXvO1DwZta/t0xqWMRgO9vNsZFMYBqFV4o3j4F9qK/iddGYwWS6g== + dependencies: + "@firebase/component" "0.6.13" + "@firebase/installations" "0.6.13" + "@firebase/messaging-interop-types" "0.2.3" + "@firebase/util" "1.11.0" + idb "7.1.1" + tslib "^2.1.0" + +"@firebase/performance-compat@0.2.15": + version "0.2.15" + resolved "https://registry.npmjs.org/@firebase/performance-compat/-/performance-compat-0.2.15.tgz" + integrity sha512-wUxsw7hGBEMN6XfvYQqwPIQp5LcJXawWM5tmYp6L7ClCoTQuEiCKHWWVurJgN8Q1YHzoHVgjNfPQAOVu29iMVg== + dependencies: + "@firebase/component" "0.6.13" + "@firebase/logger" "0.4.4" + "@firebase/performance" "0.7.2" + "@firebase/performance-types" "0.2.3" + "@firebase/util" "1.11.0" + tslib "^2.1.0" + +"@firebase/performance-types@0.2.3": + version "0.2.3" + resolved "https://registry.npmjs.org/@firebase/performance-types/-/performance-types-0.2.3.tgz" + integrity sha512-IgkyTz6QZVPAq8GSkLYJvwSLr3LS9+V6vNPQr0x4YozZJiLF5jYixj0amDtATf1X0EtYHqoPO48a9ija8GocxQ== + +"@firebase/performance@0.7.2": + version "0.7.2" + resolved "https://registry.npmjs.org/@firebase/performance/-/performance-0.7.2.tgz" + integrity sha512-DXLLp0R0jdxH/yTmv+WTkOzsLl8YYecXh4lGZE0dzqC0IV8k+AxpLSSWvOTCkAETze8yEU/iF+PtgYVlGjfMMQ== + dependencies: + "@firebase/component" "0.6.13" + "@firebase/installations" "0.6.13" + "@firebase/logger" "0.4.4" + "@firebase/util" "1.11.0" + tslib "^2.1.0" + web-vitals "^4.2.4" + +"@firebase/remote-config-compat@0.2.13": + version "0.2.13" + resolved "https://registry.npmjs.org/@firebase/remote-config-compat/-/remote-config-compat-0.2.13.tgz" + integrity sha512-UmHoO7TxAEJPIZf8e1Hy6CeFGMeyjqSCpgoBkQZYXFI2JHhzxIyDpr8jVKJJN1dmAePKZ5EX7dC13CmcdTOl7Q== + dependencies: + "@firebase/component" "0.6.13" + "@firebase/logger" "0.4.4" + "@firebase/remote-config" "0.6.0" + "@firebase/remote-config-types" "0.4.0" + "@firebase/util" "1.11.0" + tslib "^2.1.0" + +"@firebase/remote-config-types@0.4.0": + version "0.4.0" + resolved "https://registry.npmjs.org/@firebase/remote-config-types/-/remote-config-types-0.4.0.tgz" + integrity sha512-7p3mRE/ldCNYt8fmWMQ/MSGRmXYlJ15Rvs9Rk17t8p0WwZDbeK7eRmoI1tvCPaDzn9Oqh+yD6Lw+sGLsLg4kKg== + +"@firebase/remote-config@0.6.0": + version "0.6.0" + resolved "https://registry.npmjs.org/@firebase/remote-config/-/remote-config-0.6.0.tgz" + integrity sha512-Yrk4l5+6FJLPHC6irNHMzgTtJ3NfHXlAXVChCBdNFtgmzyGmufNs/sr8oA0auEfIJ5VpXCaThRh3P4OdQxiAlQ== + dependencies: + "@firebase/component" "0.6.13" + "@firebase/installations" "0.6.13" + "@firebase/logger" "0.4.4" + "@firebase/util" "1.11.0" + tslib "^2.1.0" + +"@firebase/storage-compat@0.3.17": + version "0.3.17" + resolved "https://registry.npmjs.org/@firebase/storage-compat/-/storage-compat-0.3.17.tgz" + integrity sha512-CBlODWEZ5b6MJWVh21VZioxwxNwVfPA9CAdsk+ZgVocJQQbE2oDW1XJoRcgthRY1HOitgbn4cVrM+NlQtuUYhw== + dependencies: + "@firebase/component" "0.6.13" + "@firebase/storage" "0.13.7" + "@firebase/storage-types" "0.8.3" + "@firebase/util" "1.11.0" + tslib "^2.1.0" + +"@firebase/storage-types@0.8.3": + version "0.8.3" + resolved "https://registry.npmjs.org/@firebase/storage-types/-/storage-types-0.8.3.tgz" + integrity sha512-+Muk7g9uwngTpd8xn9OdF/D48uiQ7I1Fae7ULsWPuKoCH3HU7bfFPhxtJYzyhjdniowhuDpQcfPmuNRAqZEfvg== + +"@firebase/storage@0.13.7": + version "0.13.7" + resolved "https://registry.npmjs.org/@firebase/storage/-/storage-0.13.7.tgz" + integrity sha512-FkRyc24rK+Y6EaQ1tYFm3TevBnnfSNA0VyTfew2hrYyL/aYfatBg7HOgktUdB4kWMHNA9VoTotzZTGoLuK92wg== + dependencies: + "@firebase/component" "0.6.13" + "@firebase/util" "1.11.0" + tslib "^2.1.0" + +"@firebase/util@1.11.0": + version "1.11.0" + resolved "https://registry.npmjs.org/@firebase/util/-/util-1.11.0.tgz" + integrity sha512-PzSrhIr++KI6y4P6C/IdgBNMkEx0Ex6554/cYd0Hm+ovyFSJtJXqb/3OSIdnBoa2cpwZT1/GW56EmRc5qEc5fQ== + dependencies: + tslib "^2.1.0" + +"@firebase/vertexai@1.2.1": + version "1.2.1" + resolved "https://registry.npmjs.org/@firebase/vertexai/-/vertexai-1.2.1.tgz" + integrity sha512-cukZ5ne2RsOWB4PB1EO6nTXgOLxPMKDJfEn+XnSV5ZKWM0ID5o0DvbyS59XihFaBzmy2SwJldP5ap7/xUnW4jA== + dependencies: + "@firebase/app-check-interop-types" "0.3.3" + "@firebase/component" "0.6.13" + "@firebase/logger" "0.4.4" + "@firebase/util" "1.11.0" + tslib "^2.1.0" + +"@firebase/webchannel-wrapper@1.0.3": + version "1.0.3" + resolved "https://registry.npmjs.org/@firebase/webchannel-wrapper/-/webchannel-wrapper-1.0.3.tgz" + integrity sha512-2xCRM9q9FlzGZCdgDMJwc0gyUkWFtkosy7Xxr6sFgQwn+wMNIWd7xIvYNauU1r64B5L5rsGKy/n9TKJ0aAFeqQ== + +"@grpc/grpc-js@~1.9.0": + version "1.9.15" + resolved "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.9.15.tgz" + integrity sha512-nqE7Hc0AzI+euzUwDAy0aY5hCp10r734gMGRdU+qOPX0XSceI2ULrcXB5U2xSc5VkWwalCj4M7GzCAygZl2KoQ== + dependencies: + "@grpc/proto-loader" "^0.7.8" + "@types/node" ">=12.12.47" + +"@grpc/proto-loader@^0.7.8": + version "0.7.15" + resolved "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.15.tgz" + integrity sha512-tMXdRCfYVixjuFK+Hk0Q1s38gV9zDiDJfWL3h1rv4Qc39oILCu1TRTDt7+fGUI8K4G1Fj125Hx/ru3azECWTyQ== + dependencies: + lodash.camelcase "^4.3.0" + long "^5.0.0" + protobufjs "^7.2.5" + yargs "^17.7.2" + "@humanfs/core@^0.19.1": version "0.19.1" resolved "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz" @@ -430,6 +1413,14 @@ resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz" integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== +"@jridgewell/source-map@^0.3.3": + version "0.3.6" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.6.tgz#9d71ca886e32502eb9362c9a74a46787c36df81a" + integrity sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": version "1.5.0" resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz" @@ -451,6 +1442,31 @@ "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" +"@jsonjoy.com/base64@^1.1.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/base64/-/base64-1.1.2.tgz#cf8ea9dcb849b81c95f14fc0aaa151c6b54d2578" + integrity sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA== + +"@jsonjoy.com/json-pack@^1.0.3": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/json-pack/-/json-pack-1.2.0.tgz#e658900e81d194903171c42546e1aa27f446846a" + integrity sha512-io1zEbbYcElht3tdlqEOFxZ0dMTYrHz9iMf0gqn1pPjZFTCgM5R4R5IMA20Chb2UPYYsxjzs8CgZ7Nb5n2K2rA== + dependencies: + "@jsonjoy.com/base64" "^1.1.1" + "@jsonjoy.com/util" "^1.1.2" + hyperdyperid "^1.2.0" + thingies "^1.20.0" + +"@jsonjoy.com/util@^1.1.2", "@jsonjoy.com/util@^1.3.0": + version "1.6.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/util/-/util-1.6.0.tgz#23991b2fe12cb3a006573d9dc97c768d3ed2c9f1" + integrity sha512-sw/RMbehRhN68WRtcKCpQOPfnH6lLP4GJfqzi3iYej8tnzpZUDr6UkZYJjcjjC0FWEJOJbyM3PTIwxucUmDG2A== + +"@leichtgewicht/ip-codec@^2.0.1": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz#4fc56c15c580b9adb7dc3c333a134e540b44bfb1" + integrity sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw== + "@napi-rs/wasm-runtime@^0.2.7": version "0.2.9" resolved "https://registry.yarnpkg.com/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.9.tgz#7278122cf94f3b36d8170a8eee7d85356dfa6a96" @@ -575,105 +1591,58 @@ resolved "https://registry.npmjs.org/@pkgr/core/-/core-0.2.0.tgz" integrity sha512-vsJDAkYR6qCPu+ioGScGiMYR7LvZYIXh/dlQeviqoTWNCVfKTLYD/LkNWH4Mxsv2a5vpIRc77FN5DnmK1eBggQ== -"@rollup/rollup-android-arm-eabi@4.37.0": - version "4.37.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.37.0.tgz#9bedc746a97fe707154086365f269ced92ff4aa9" - integrity sha512-l7StVw6WAa8l3vA1ov80jyetOAEo1FtHvZDbzXDO/02Sq/QVvqlHkYoFwDJPIMj0GKiistsBudfx5tGFnwYWDQ== - -"@rollup/rollup-android-arm64@4.37.0": - version "4.37.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.37.0.tgz#6edc6ffc8af8773e4bc28c72894dd5e846b8ee6c" - integrity sha512-6U3SlVyMxezt8Y+/iEBcbp945uZjJwjZimu76xoG7tO1av9VO691z8PkhzQ85ith2I8R2RddEPeSfcbyPfD4hA== - -"@rollup/rollup-darwin-arm64@4.37.0": - version "4.37.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.37.0.tgz#737a7b8be9ff79bd24a7efaae0903e8c66ac0676" - integrity sha512-+iTQ5YHuGmPt10NTzEyMPbayiNTcOZDWsbxZYR1ZnmLnZxG17ivrPSWFO9j6GalY0+gV3Jtwrrs12DBscxnlYA== - -"@rollup/rollup-darwin-x64@4.37.0": - version "4.37.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.37.0.tgz#a6a697bb685ca9462a7caeea5f22f6a686acff1f" - integrity sha512-m8W2UbxLDcmRKVjgl5J/k4B8d7qX2EcJve3Sut7YGrQoPtCIQGPH5AMzuFvYRWZi0FVS0zEY4c8uttPfX6bwYQ== - -"@rollup/rollup-freebsd-arm64@4.37.0": - version "4.37.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.37.0.tgz#18113e8e133ccb6de4b9dc9d3e09f7acff344cb7" - integrity sha512-FOMXGmH15OmtQWEt174v9P1JqqhlgYge/bUjIbiVD1nI1NeJ30HYT9SJlZMqdo1uQFyt9cz748F1BHghWaDnVA== - -"@rollup/rollup-freebsd-x64@4.37.0": - version "4.37.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.37.0.tgz#5e56ffd4a0d7ccfcbc86867c40b8f0e6a2c0c81e" - integrity sha512-SZMxNttjPKvV14Hjck5t70xS3l63sbVwl98g3FlVVx2YIDmfUIy29jQrsw06ewEYQ8lQSuY9mpAPlmgRD2iSsA== - -"@rollup/rollup-linux-arm-gnueabihf@4.37.0": - version "4.37.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.37.0.tgz#5addf1a51e1495ae7ff28d26442a88adf629c980" - integrity sha512-hhAALKJPidCwZcj+g+iN+38SIOkhK2a9bqtJR+EtyxrKKSt1ynCBeqrQy31z0oWU6thRZzdx53hVgEbRkuI19w== - -"@rollup/rollup-linux-arm-musleabihf@4.37.0": - version "4.37.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.37.0.tgz#00cddb9ab51086c5f2cd33cd4738259e24be4e73" - integrity sha512-jUb/kmn/Gd8epbHKEqkRAxq5c2EwRt0DqhSGWjPFxLeFvldFdHQs/n8lQ9x85oAeVb6bHcS8irhTJX2FCOd8Ag== - -"@rollup/rollup-linux-arm64-gnu@4.37.0": - version "4.37.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.37.0.tgz#c3b4324496236b6fd9f31fda5701c6d6060b1512" - integrity sha512-oNrJxcQT9IcbcmKlkF+Yz2tmOxZgG9D9GRq+1OE6XCQwCVwxixYAa38Z8qqPzQvzt1FCfmrHX03E0pWoXm1DqA== - -"@rollup/rollup-linux-arm64-musl@4.37.0": - version "4.37.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.37.0.tgz#b5222180bb1a50e6e9bc8263efd771c1ce770b6f" - integrity sha512-pfxLBMls+28Ey2enpX3JvjEjaJMBX5XlPCZNGxj4kdJyHduPBXtxYeb8alo0a7bqOoWZW2uKynhHxF/MWoHaGQ== - -"@rollup/rollup-linux-loongarch64-gnu@4.37.0": - version "4.37.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.37.0.tgz#5660181c1c1efb7b19c7a531d496e685236c5ce7" - integrity sha512-yCE0NnutTC/7IGUq/PUHmoeZbIwq3KRh02e9SfFh7Vmc1Z7atuJRYWhRME5fKgT8aS20mwi1RyChA23qSyRGpA== - -"@rollup/rollup-linux-powerpc64le-gnu@4.37.0": - version "4.37.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.37.0.tgz#8273166495d2f5d3fbc556cf42a5a6e24b78bdab" - integrity sha512-NxcICptHk06E2Lh3a4Pu+2PEdZ6ahNHuK7o6Np9zcWkrBMuv21j10SQDJW3C9Yf/A/P7cutWoC/DptNLVsZ0VQ== - -"@rollup/rollup-linux-riscv64-gnu@4.37.0": - version "4.37.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.37.0.tgz#9677e39288ccc91ebcd707cdd794732d701cd174" - integrity sha512-PpWwHMPCVpFZLTfLq7EWJWvrmEuLdGn1GMYcm5MV7PaRgwCEYJAwiN94uBuZev0/J/hFIIJCsYw4nLmXA9J7Pw== - -"@rollup/rollup-linux-riscv64-musl@4.37.0": - version "4.37.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.37.0.tgz#71cc5ca7be1ed263357618bfe4f8f50c09725a7e" - integrity sha512-DTNwl6a3CfhGTAOYZ4KtYbdS8b+275LSLqJVJIrPa5/JuIufWWZ/QFvkxp52gpmguN95eujrM68ZG+zVxa8zHA== - -"@rollup/rollup-linux-s390x-gnu@4.37.0": - version "4.37.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.37.0.tgz#6b0b7df33eb32b0ee7423898b183acc1b5fee33e" - integrity sha512-hZDDU5fgWvDdHFuExN1gBOhCuzo/8TMpidfOR+1cPZJflcEzXdCy1LjnklQdW8/Et9sryOPJAKAQRw8Jq7Tg+A== - -"@rollup/rollup-linux-x64-gnu@4.37.0": - version "4.37.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.37.0.tgz#52c27717d3c4819d13b5ebc2373ddea099d2e71b" - integrity sha512-pKivGpgJM5g8dwj0ywBwe/HeVAUSuVVJhUTa/URXjxvoyTT/AxsLTAbkHkDHG7qQxLoW2s3apEIl26uUe08LVQ== - -"@rollup/rollup-linux-x64-musl@4.37.0": - version "4.37.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.37.0.tgz#c134a22d30642345de8b799c816345674bf68019" - integrity sha512-E2lPrLKE8sQbY/2bEkVTGDEk4/49UYRVWgj90MY8yPjpnGBQ+Xi1Qnr7b7UIWw1NOggdFQFOLZ8+5CzCiz143w== - -"@rollup/rollup-win32-arm64-msvc@4.37.0": - version "4.37.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.37.0.tgz#8063d5f8195dd1845e056d069366fbe06a424d09" - integrity sha512-Jm7biMazjNzTU4PrQtr7VS8ibeys9Pn29/1bm4ph7CP2kf21950LgN+BaE2mJ1QujnvOc6p54eWWiVvn05SOBg== - -"@rollup/rollup-win32-ia32-msvc@4.37.0": - version "4.37.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.37.0.tgz#891d90e3b5517f9d290bb416afdfe2ebfb12139e" - integrity sha512-e3/1SFm1OjefWICB2Ucstg2dxYDkDTZGDYgwufcbsxTHyqQps1UQf33dFEChBNmeSsTOyrjw2JJq0zbG5GF6RA== - -"@rollup/rollup-win32-x64-msvc@4.37.0": - version "4.37.0" - resolved "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.37.0.tgz" - integrity sha512-LWbXUBwn/bcLx2sSsqy7pK5o+Nr+VCoRoAohfJ5C/aBio9nfJmGQqHAhU6pwxV/RmyTk5AqdySma7uwWGlmeuA== +"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": + version "1.1.2" + resolved "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz" + integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ== + +"@protobufjs/base64@^1.1.2": + version "1.1.2" + resolved "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz" + integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== + +"@protobufjs/codegen@^2.0.4": + version "2.0.4" + resolved "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz" + integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== + +"@protobufjs/eventemitter@^1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz" + integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q== + +"@protobufjs/fetch@^1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz" + integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ== + dependencies: + "@protobufjs/aspromise" "^1.1.1" + "@protobufjs/inquire" "^1.1.0" + +"@protobufjs/float@^1.0.2": + version "1.0.2" + resolved "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz" + integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ== + +"@protobufjs/inquire@^1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz" + integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q== + +"@protobufjs/path@^1.1.2": + version "1.1.2" + resolved "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz" + integrity sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA== + +"@protobufjs/pool@^1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz" + integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw== + +"@protobufjs/utf8@^1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz" + integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== "@rtsao/scc@^1.1.0": version "1.1.0" @@ -707,55 +1676,140 @@ dependencies: tslib "^2.4.0" -"@types/babel__core@^7.20.5": - version "7.20.5" - resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz" - integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== +"@types/body-parser@*": + version "1.19.5" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.5.tgz#04ce9a3b677dc8bd681a17da1ab9835dc9d3ede4" + integrity sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg== dependencies: - "@babel/parser" "^7.20.7" - "@babel/types" "^7.20.7" - "@types/babel__generator" "*" - "@types/babel__template" "*" - "@types/babel__traverse" "*" + "@types/connect" "*" + "@types/node" "*" -"@types/babel__generator@*": - version "7.6.8" - resolved "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz" - integrity sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw== +"@types/bonjour@^3.5.13": + version "3.5.13" + resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.13.tgz#adf90ce1a105e81dd1f9c61fdc5afda1bfb92956" + integrity sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ== dependencies: - "@babel/types" "^7.0.0" + "@types/node" "*" -"@types/babel__template@*": - version "7.4.4" - resolved "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz" - integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== +"@types/connect-history-api-fallback@^1.5.4": + version "1.5.4" + resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz#7de71645a103056b48ac3ce07b3520b819c1d5b3" + integrity sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw== dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" + "@types/express-serve-static-core" "*" + "@types/node" "*" -"@types/babel__traverse@*": - version "7.20.7" - resolved "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz" - integrity sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng== +"@types/connect@*": + version "3.4.38" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" + integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== dependencies: - "@babel/types" "^7.20.7" + "@types/node" "*" "@types/cookie@^0.6.0": version "0.6.0" resolved "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz" integrity sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA== -"@types/estree@1.0.6": - version "1.0.6" - resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz" - integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== +"@types/debug@^4.0.0": + version "4.1.12" + resolved "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz" + integrity sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ== + dependencies: + "@types/ms" "*" + +"@types/eslint-scope@^3.7.7": + version "3.7.7" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz#3108bd5f18b0cdb277c867b3dd449c9ed7079ac5" + integrity sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg== + dependencies: + "@types/eslint" "*" + "@types/estree" "*" + +"@types/eslint@*": + version "9.6.1" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-9.6.1.tgz#d5795ad732ce81715f27f75da913004a56751584" + integrity sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree-jsx@^1.0.0": + version "1.0.5" + resolved "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz" + integrity sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg== + dependencies: + "@types/estree" "*" -"@types/estree@^1.0.6": +"@types/estree@*", "@types/estree@^1.0.0", "@types/estree@^1.0.6": version "1.0.7" resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz" integrity sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ== -"@types/json-schema@^7.0.15": +"@types/express-serve-static-core@*", "@types/express-serve-static-core@^5.0.0": + version "5.0.6" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-5.0.6.tgz#41fec4ea20e9c7b22f024ab88a95c6bb288f51b8" + integrity sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + "@types/send" "*" + +"@types/express-serve-static-core@^4.17.21", "@types/express-serve-static-core@^4.17.33": + version "4.19.6" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz#e01324c2a024ff367d92c66f48553ced0ab50267" + integrity sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + "@types/send" "*" + +"@types/express@*": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@types/express/-/express-5.0.1.tgz#138d741c6e5db8cc273bec5285cd6e9d0779fc9f" + integrity sha512-UZUw8vjpWFXuDnjFTh7/5c2TWDlQqeXHi6hcN7F2XSVT5P+WmUnnbFS3KA6Jnc6IsEqI2qCVu2bK0R0J4A8ZQQ== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^5.0.0" + "@types/serve-static" "*" + +"@types/express@^4.17.21": + version "4.17.21" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.21.tgz#c26d4a151e60efe0084b23dc3369ebc631ed192d" + integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.33" + "@types/qs" "*" + "@types/serve-static" "*" + +"@types/hast@^3.0.0": + version "3.0.4" + resolved "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz" + integrity sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ== + dependencies: + "@types/unist" "*" + +"@types/html-minifier-terser@^6.0.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#4fc33a00c1d0c16987b1a20cf92d20614c55ac35" + integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg== + +"@types/http-errors@*": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.4.tgz#7eb47726c391b7345a6ec35ad7f4de469cf5ba4f" + integrity sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA== + +"@types/http-proxy@^1.17.8": + version "1.17.16" + resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.16.tgz#dee360707b35b3cc85afcde89ffeebff7d7f9240" + integrity sha512-sdWoUajOB1cd0A8cRRQ1cfyWNbmFKLAqBB89Y8x5iYyG/mkJHc0YUH8pdWBy2omi9qtCpiIgGjuwO0dQST2l5w== + dependencies: + "@types/node" "*" + +"@types/json-schema@*", "@types/json-schema@^7.0.15", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": version "7.0.15" resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== @@ -765,18 +1819,54 @@ resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz" integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== -"@types/node@^22.13.13": +"@types/mdast@^4.0.0": + version "4.0.4" + resolved "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz" + integrity sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA== + dependencies: + "@types/unist" "*" + +"@types/mime@^1": + version "1.3.5" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.5.tgz#1ef302e01cf7d2b5a0fa526790c9123bf1d06690" + integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== + +"@types/ms@*": + version "2.1.0" + resolved "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz" + integrity sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA== + +"@types/node-forge@^1.3.0": + version "1.3.11" + resolved "https://registry.yarnpkg.com/@types/node-forge/-/node-forge-1.3.11.tgz#0972ea538ddb0f4d9c2fa0ec5db5724773a604da" + integrity sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ== + dependencies: + "@types/node" "*" + +"@types/node@*": + version "22.15.17" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.15.17.tgz#355ccec95f705b664e4332bb64a7f07db30b7055" + integrity sha512-wIX2aSZL5FE+MR0JlvF87BNVrtFWf6AE6rxSE9X7OwnVvoyCQjpzSRJ+M87se/4QCkCiebQAqrJ0y6fwIyi7nw== + dependencies: + undici-types "~6.21.0" + +"@types/node@>=12.12.47", "@types/node@>=13.7.0", "@types/node@^22.13.13": version "22.13.13" resolved "https://registry.npmjs.org/@types/node/-/node-22.13.13.tgz" integrity sha512-ClsL5nMwKaBRwPcCvH8E7+nU4GxHVx1axNvMZTFHMEfNI7oahimt26P5zjVCRrjiIWj6YFXfE1v3dEp94wLcGQ== dependencies: undici-types "~6.20.0" -"@types/qs@^6.9.18": +"@types/qs@*", "@types/qs@^6.9.18": version "6.9.18" resolved "https://registry.npmjs.org/@types/qs/-/qs-6.9.18.tgz" integrity sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA== +"@types/range-parser@*": + version "1.2.7" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb" + integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== + "@types/react-dom@^19.0.4": version "19.0.4" resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.0.4.tgz" @@ -789,6 +1879,75 @@ dependencies: csstype "^3.0.2" +"@types/retry@0.12.2": + version "0.12.2" + resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.2.tgz#ed279a64fa438bb69f2480eda44937912bb7480a" + integrity sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow== + +"@types/send@*": + version "0.17.4" + resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.4.tgz#6619cd24e7270793702e4e6a4b958a9010cfc57a" + integrity sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA== + dependencies: + "@types/mime" "^1" + "@types/node" "*" + +"@types/serve-index@^1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.4.tgz#e6ae13d5053cb06ed36392110b4f9a49ac4ec898" + integrity sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug== + dependencies: + "@types/express" "*" + +"@types/serve-static@*", "@types/serve-static@^1.15.5": + version "1.15.7" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.7.tgz#22174bbd74fb97fe303109738e9b5c2f3064f714" + integrity sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw== + dependencies: + "@types/http-errors" "*" + "@types/node" "*" + "@types/send" "*" + +"@types/sockjs@^0.3.36": + version "0.3.36" + resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.36.tgz#ce322cf07bcc119d4cbf7f88954f3a3bd0f67535" + integrity sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q== + dependencies: + "@types/node" "*" + +"@types/unist@*", "@types/unist@^3.0.0": + version "3.0.3" + resolved "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz" + integrity sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q== + +"@types/unist@^2.0.0": + version "2.0.11" + resolved "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz" + integrity sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA== + +"@types/webpack-dev-server@^4.7.2": + version "4.7.2" + resolved "https://registry.yarnpkg.com/@types/webpack-dev-server/-/webpack-dev-server-4.7.2.tgz#a12d9881aa23cdd4cecbb2d31fa784a45c4967e0" + integrity sha512-Y3p0Fmfvp0MHBDoCzo+xFJaWTw0/z37mWIo6P15j+OtmUDLvznJWdZNeD7Q004R+MpQlys12oXbXsrXRmxwg4Q== + dependencies: + webpack-dev-server "*" + +"@types/webpack@^5.28.5": + version "5.28.5" + resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-5.28.5.tgz#0e9d9a15efa09bbda2cef41356ca4ac2031ea9a2" + integrity sha512-wR87cgvxj3p6D0Crt1r5avwqffqPXUkNlnQ1mjU93G7gCuFjufZR4I6j8cz5g1F1tTYpfOOFvly+cmIQwL9wvw== + dependencies: + "@types/node" "*" + tapable "^2.2.0" + webpack "^5" + +"@types/ws@^8.5.10": + version "8.18.1" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.18.1.tgz#48464e4bf2ddfd17db13d845467f6070ffea4aa9" + integrity sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg== + dependencies: + "@types/node" "*" + "@typescript-eslint/eslint-plugin@8.28.0": version "8.28.0" resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.28.0.tgz" @@ -870,6 +2029,11 @@ "@typescript-eslint/types" "8.28.0" eslint-visitor-keys "^4.2.0" +"@ungap/structured-clone@^1.0.0": + version "1.3.0" + resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz" + integrity sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g== + "@unrs/resolver-binding-darwin-arm64@1.3.2": version "1.3.2" resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.3.2.tgz#e2394af11511ed50025f890b3bbb83fc99c26e72" @@ -947,16 +2111,159 @@ resolved "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.3.2.tgz" integrity sha512-XBWpUP0mHya6yGBwNefhyEa6V7HgYKCxEAY4qhTm/PcAQyBPNmjj97VZJOJkVdUsyuuii7xmq0pXWX/c2aToHQ== -"@vitejs/plugin-react@^4.3.4": - version "4.3.4" - resolved "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.4.tgz" - integrity sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug== +"@webassemblyjs/ast@1.14.1", "@webassemblyjs/ast@^1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.14.1.tgz#a9f6a07f2b03c95c8d38c4536a1fdfb521ff55b6" + integrity sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ== + dependencies: + "@webassemblyjs/helper-numbers" "1.13.2" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + +"@webassemblyjs/floating-point-hex-parser@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz#fcca1eeddb1cc4e7b6eed4fc7956d6813b21b9fb" + integrity sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA== + +"@webassemblyjs/helper-api-error@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz#e0a16152248bc38daee76dd7e21f15c5ef3ab1e7" + integrity sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ== + +"@webassemblyjs/helper-buffer@1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz#822a9bc603166531f7d5df84e67b5bf99b72b96b" + integrity sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA== + +"@webassemblyjs/helper-numbers@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz#dbd932548e7119f4b8a7877fd5a8d20e63490b2d" + integrity sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA== + dependencies: + "@webassemblyjs/floating-point-hex-parser" "1.13.2" + "@webassemblyjs/helper-api-error" "1.13.2" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/helper-wasm-bytecode@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz#e556108758f448aae84c850e593ce18a0eb31e0b" + integrity sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA== + +"@webassemblyjs/helper-wasm-section@1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz#9629dda9c4430eab54b591053d6dc6f3ba050348" + integrity sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-buffer" "1.14.1" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + "@webassemblyjs/wasm-gen" "1.14.1" + +"@webassemblyjs/ieee754@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz#1c5eaace1d606ada2c7fd7045ea9356c59ee0dba" + integrity sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.13.2.tgz#57c5c3deb0105d02ce25fa3fd74f4ebc9fd0bbb0" + integrity sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.13.2.tgz#917a20e93f71ad5602966c2d685ae0c6c21f60f1" + integrity sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ== + +"@webassemblyjs/wasm-edit@^1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz#ac6689f502219b59198ddec42dcd496b1004d597" + integrity sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-buffer" "1.14.1" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + "@webassemblyjs/helper-wasm-section" "1.14.1" + "@webassemblyjs/wasm-gen" "1.14.1" + "@webassemblyjs/wasm-opt" "1.14.1" + "@webassemblyjs/wasm-parser" "1.14.1" + "@webassemblyjs/wast-printer" "1.14.1" + +"@webassemblyjs/wasm-gen@1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz#991e7f0c090cb0bb62bbac882076e3d219da9570" + integrity sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + "@webassemblyjs/ieee754" "1.13.2" + "@webassemblyjs/leb128" "1.13.2" + "@webassemblyjs/utf8" "1.13.2" + +"@webassemblyjs/wasm-opt@1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz#e6f71ed7ccae46781c206017d3c14c50efa8106b" + integrity sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-buffer" "1.14.1" + "@webassemblyjs/wasm-gen" "1.14.1" + "@webassemblyjs/wasm-parser" "1.14.1" + +"@webassemblyjs/wasm-parser@1.14.1", "@webassemblyjs/wasm-parser@^1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz#b3e13f1893605ca78b52c68e54cf6a865f90b9fb" + integrity sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-api-error" "1.13.2" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + "@webassemblyjs/ieee754" "1.13.2" + "@webassemblyjs/leb128" "1.13.2" + "@webassemblyjs/utf8" "1.13.2" + +"@webassemblyjs/wast-printer@1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz#3bb3e9638a8ae5fdaf9610e7a06b4d9f9aa6fe07" + integrity sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@xtuc/long" "4.2.2" + +"@webpack-cli/configtest@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-3.0.1.tgz#76ac285b9658fa642ce238c276264589aa2b6b57" + integrity sha512-u8d0pJ5YFgneF/GuvEiDA61Tf1VDomHHYMjv/wc9XzYj7nopltpG96nXN5dJRstxZhcNpV1g+nT6CydO7pHbjA== + +"@webpack-cli/info@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-3.0.1.tgz#3cff37fabb7d4ecaab6a8a4757d3826cf5888c63" + integrity sha512-coEmDzc2u/ffMvuW9aCjoRzNSPDl/XLuhPdlFRpT9tZHmJ/039az33CE7uH+8s0uL1j5ZNtfdv0HkfaKRBGJsQ== + +"@webpack-cli/serve@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-3.0.1.tgz#bd8b1f824d57e30faa19eb78e4c0951056f72f00" + integrity sha512-sbgw03xQaCLiT6gcY/6u3qBDn01CWw/nbaXl3gTdTFuJJ75Gffv3E3DBpgvY2fkkrdS1fpjaXNOmJlnbtKauKg== + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +accepts@~1.3.4, accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== dependencies: - "@babel/core" "^7.26.0" - "@babel/plugin-transform-react-jsx-self" "^7.25.9" - "@babel/plugin-transform-react-jsx-source" "^7.25.9" - "@types/babel__core" "^7.20.5" - react-refresh "^0.14.2" + mime-types "~2.1.34" + negotiator "0.6.3" acorn-jsx@^5.3.2: version "5.3.2" @@ -970,12 +2277,31 @@ acorn-walk@^8.1.1: dependencies: acorn "^8.11.0" -acorn@^8.11.0, acorn@^8.14.0, acorn@^8.4.1: +acorn@^8.11.0, acorn@^8.14.0, acorn@^8.4.1, acorn@^8.8.2: version "8.14.1" resolved "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz" integrity sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg== -ajv@^6.12.4: +ajv-formats@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" + integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== + dependencies: + ajv "^8.0.0" + +ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv-keywords@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16" + integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== + dependencies: + fast-deep-equal "^3.1.3" + +ajv@^6.12.4, ajv@^6.12.5: version "6.12.6" resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -985,13 +2311,41 @@ ajv@^6.12.4: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ansi-styles@^4.1.0: +ajv@^8.0.0, ajv@^8.9.0: + version "8.17.1" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.17.1.tgz#37d9a5c776af6bc92d7f4f9510eba4c0a60d11a6" + integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== + dependencies: + fast-deep-equal "^3.1.3" + fast-uri "^3.0.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + +ansi-html-community@^0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" + integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: color-convert "^2.0.1" +anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + arg@^4.1.0: version "4.1.3" resolved "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz" @@ -1010,6 +2364,11 @@ array-buffer-byte-length@^1.0.1, array-buffer-byte-length@^1.0.2: call-bound "^1.0.3" is-array-buffer "^3.0.5" +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== + array-includes@^3.1.6, array-includes@^3.1.8: version "3.1.8" resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz" @@ -1022,6 +2381,11 @@ array-includes@^3.1.6, array-includes@^3.1.8: get-intrinsic "^1.2.4" is-string "^1.0.7" +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + array.prototype.findlast@^1.2.5: version "1.2.5" resolved "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz" @@ -1096,6 +2460,11 @@ async-function@^1.0.0: resolved "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz" integrity sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA== +async@^3.2.4: + version "3.2.6" + resolved "https://registry.npmjs.org/async/-/async-3.2.6.tgz" + integrity sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA== + asynckit@^0.4.0: version "0.4.0" resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" @@ -1117,16 +2486,103 @@ axios@^1.8.4: form-data "^4.0.0" proxy-from-env "^1.1.0" +babel-loader@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-10.0.0.tgz#b9743714c0e1e084b3e4adef3cd5faee33089977" + integrity sha512-z8jt+EdS61AMw22nSfoNJAZ0vrtmhPRVi6ghL3rCeRZI8cdNYFiV5xeV3HbE7rlZZNmGH8BVccwWt8/ED0QOHA== + dependencies: + find-up "^5.0.0" + +babel-plugin-polyfill-corejs2@^0.4.10: + version "0.4.13" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.13.tgz#7d445f0e0607ebc8fb6b01d7e8fb02069b91dd8b" + integrity sha512-3sX/eOms8kd3q2KZ6DAhKPc0dgm525Gqq5NtWKZ7QYYZEv57OQ54KtblzJzH1lQF/eQxO8KjWGIK9IPUJNus5g== + dependencies: + "@babel/compat-data" "^7.22.6" + "@babel/helper-define-polyfill-provider" "^0.6.4" + semver "^6.3.1" + +babel-plugin-polyfill-corejs3@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.11.1.tgz#4e4e182f1bb37c7ba62e2af81d8dd09df31344f6" + integrity sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.6.3" + core-js-compat "^3.40.0" + +babel-plugin-polyfill-regenerator@^0.6.1: + version "0.6.4" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.4.tgz#428c615d3c177292a22b4f93ed99e358d7906a9b" + integrity sha512-7gD3pRadPrbjhjLyxebmx/WrFYcuSjZ0XbdUujQMZ/fcE9oeewk2U/7PCvez84UeuK3oSjmPZ0Ch0dlupQvGzw== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.6.4" + +bail@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz" + integrity sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw== + balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +batch@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw== + bcryptjs@^3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/bcryptjs/-/bcryptjs-3.0.2.tgz#caadcca1afefe372ed6e20f86db8e8546361c1ca" + resolved "https://registry.npmjs.org/bcryptjs/-/bcryptjs-3.0.2.tgz" integrity sha512-k38b3XOZKv60C4E2hVsXTolJWfkGRMbILBIe2IBITXciy5bOsTKot5kDrf3ZfufQtQOUN5mXceUEpU1rTl9Uog== +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +binary-extensions@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" + integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== + +body-parser@1.20.3: + version "1.20.3" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.3.tgz#1953431221c6fb5cd63c4b36d53fab0928e548c6" + integrity sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g== + dependencies: + bytes "3.1.2" + content-type "~1.0.5" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.13.0" + raw-body "2.5.2" + type-is "~1.6.18" + unpipe "1.0.0" + +bonjour-service@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.3.0.tgz#80d867430b5a0da64e82a8047fc1e355bdb71722" + integrity sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA== + dependencies: + fast-deep-equal "^3.1.3" + multicast-dns "^7.2.5" + +boolbase@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" @@ -1142,7 +2598,7 @@ brace-expansion@^2.0.1: dependencies: balanced-match "^1.0.0" -braces@^3.0.3: +braces@^3.0.3, braces@~3.0.2: version "3.0.3" resolved "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz" integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== @@ -1159,6 +2615,41 @@ browserslist@^4.24.0: node-releases "^2.0.19" update-browserslist-db "^1.1.1" +browserslist@^4.24.4: + version "4.24.5" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.5.tgz#aa0f5b8560fe81fde84c6dcb38f759bafba0e11b" + integrity sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw== + dependencies: + caniuse-lite "^1.0.30001716" + electron-to-chromium "^1.5.149" + node-releases "^2.0.19" + update-browserslist-db "^1.1.3" + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +buffer@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + +bundle-name@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bundle-name/-/bundle-name-4.1.0.tgz#f3b96b34160d6431a19d7688135af7cfb8797889" + integrity sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q== + dependencies: + run-applescript "^7.0.0" + +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz" @@ -1190,12 +2681,30 @@ callsites@^3.0.0: resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== +camel-case@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" + integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== + dependencies: + pascal-case "^3.1.2" + tslib "^2.0.3" + caniuse-lite@^1.0.30001688: version "1.0.30001707" resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001707.tgz" integrity sha512-3qtRjw/HQSMlDWf+X79N206fepf4SOOU6SQLMaq/0KkZLmSjPxAkBOQQ+FxbHKfHmYLZFfdWsO3KA90ceHPSnw== -chalk@^4.0.0: +caniuse-lite@^1.0.30001716: + version "1.0.30001717" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001717.tgz#5d9fec5ce09796a1893013825510678928aca129" + integrity sha512-auPpttCq6BDEG8ZAuHJIplGw6GODhjw+/11e7IjpnYCxZcW/ONgPs0KVBJ0d1bY3e2+7PRe5RCLyP+PfwVgkYw== + +ccount@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz" + integrity sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg== + +chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: version "4.1.2" resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -1203,18 +2712,88 @@ chalk@^4.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chokidar@^4.0.0: +character-entities-html4@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz" + integrity sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA== + +character-entities-legacy@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz" + integrity sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ== + +character-entities@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz" + integrity sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ== + +character-reference-invalid@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz" + integrity sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw== + +chokidar@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chokidar@^4.0.0, chokidar@^4.0.1: version "4.0.3" resolved "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz" integrity sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA== dependencies: readdirp "^4.0.1" +chrome-trace-event@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz#05bffd7ff928465093314708c93bdfa9bd1f0f5b" + integrity sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ== + classnames@^2.5.1: version "2.5.1" resolved "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz" integrity sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow== +clean-css@^5.2.2: + version "5.3.3" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.3.tgz#b330653cd3bd6b75009cc25c714cae7b93351ccd" + integrity sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg== + dependencies: + source-map "~0.6.0" + +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + +clone-deep@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" + +clsx@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-2.1.1.tgz#eed397c9fd8bd882bfb18deab7102049a2f32999" + integrity sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA== + color-convert@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" @@ -1227,6 +2806,11 @@ color-name@~1.1.4: resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +colorette@^2.0.10, colorette@^2.0.14: + version "2.0.20" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" + integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== + combined-stream@^1.0.8: version "1.0.8" resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" @@ -1234,27 +2818,126 @@ combined-stream@^1.0.8: dependencies: delayed-stream "~1.0.0" +comma-separated-tokens@^2.0.0: + version "2.0.3" + resolved "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz" + integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg== + +commander@^12.1.0: + version "12.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-12.1.0.tgz#01423b36f501259fdaac4d0e4d60c96c991585d3" + integrity sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA== + +commander@^13.0.0: + version "13.1.0" + resolved "https://registry.npmjs.org/commander/-/commander-13.1.0.tgz" + integrity sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw== + +commander@^2.20.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^8.3.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" + integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz" + integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== + +compressible@~2.0.18: + version "2.0.18" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" + integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== + dependencies: + mime-db ">= 1.43.0 < 2" + +compression@^1.7.4: + version "1.8.0" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.8.0.tgz#09420efc96e11a0f44f3a558de59e321364180f7" + integrity sha512-k6WLKfunuqCYD3t6AsuPGvQWaKwuLLh2/xHNcX4qE+vIfDNXpSqnrhwA7O53R7WVQUnt8dVAIW+YHr7xTgOgGA== + dependencies: + bytes "3.1.2" + compressible "~2.0.18" + debug "2.6.9" + negotiator "~0.6.4" + on-headers "~1.0.2" + safe-buffer "5.2.1" + vary "~1.1.2" + concat-map@0.0.1: version "0.0.1" resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== +connect-history-api-fallback@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz#647264845251a0daf25b97ce87834cace0f5f1c8" + integrity sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA== + +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" + +content-type@~1.0.4, content-type@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== + convert-source-map@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== + +cookie@0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.1.tgz#2f73c42142d5d5cf71310a74fc4ae61670e5dbc9" + integrity sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w== + cookie@^1.0.1: version "1.0.2" resolved "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz" integrity sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA== +core-js-compat@^3.40.0: + version "3.42.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.42.0.tgz#ce19c29706ee5806e26d3cb3c542d4cfc0ed51bb" + integrity sha512-bQasjMfyDGyaeWKBIu33lHh9qlSR0MFE/Nmc6nMjf/iU9b3rSMdAYz1Baxrv4lPdGUsTqZudHA4jIGSJy0SWZQ== + dependencies: + browserslist "^4.24.4" + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +cosmiconfig@^8.2.0: + version "8.3.6" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3" + integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== + dependencies: + import-fresh "^3.3.0" + js-yaml "^4.1.0" + parse-json "^5.2.0" + path-type "^4.0.0" + create-require@^1.1.0: version "1.1.1" resolved "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== -cross-spawn@^7.0.6: +cross-spawn@^7.0.3, cross-spawn@^7.0.6: version "7.0.6" resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz" integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== @@ -1263,6 +2946,41 @@ cross-spawn@^7.0.6: shebang-command "^2.0.0" which "^2.0.1" +css-loader@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-7.1.2.tgz#64671541c6efe06b0e22e750503106bdd86880f8" + integrity sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA== + dependencies: + icss-utils "^5.1.0" + postcss "^8.4.33" + postcss-modules-extract-imports "^3.1.0" + postcss-modules-local-by-default "^4.0.5" + postcss-modules-scope "^3.2.0" + postcss-modules-values "^4.0.0" + postcss-value-parser "^4.2.0" + semver "^7.5.4" + +css-select@^4.1.3: + version "4.3.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" + integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== + dependencies: + boolbase "^1.0.0" + css-what "^6.0.1" + domhandler "^4.3.1" + domutils "^2.8.0" + nth-check "^2.0.1" + +css-what@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" + integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + csstype@^3.0.2: version "3.1.3" resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz" @@ -1295,6 +3013,13 @@ data-view-byte-offset@^1.0.1: es-errors "^1.3.0" is-data-view "^1.0.1" +debug@2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + debug@^3.2.7: version "3.2.7" resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" @@ -1302,18 +3027,43 @@ debug@^3.2.7: dependencies: ms "^2.1.1" -debug@^4.1.0, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.4.0: +debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.4.0: version "4.4.0" resolved "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz" integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA== dependencies: ms "^2.1.3" +decode-named-character-reference@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.1.0.tgz" + integrity sha512-Wy+JTSbFThEOXQIR2L6mxJvEs+veIzpmqD7ynWxMXGpnk3smkHQOp6forLdHsKpAMW9iJpaBBIxz285t1n1C3w== + dependencies: + character-entities "^2.0.0" + deep-is@^0.1.3: version "0.1.4" resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== +deepmerge@^4.2.2: + version "4.3.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== + +default-browser-id@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/default-browser-id/-/default-browser-id-5.0.0.tgz#a1d98bf960c15082d8a3fa69e83150ccccc3af26" + integrity sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA== + +default-browser@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/default-browser/-/default-browser-5.2.1.tgz#7b7ba61204ff3e425b556869ae6d3e9d9f1712cf" + integrity sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg== + dependencies: + bundle-name "^4.1.0" + default-browser-id "^5.0.0" + define-data-property@^1.0.1, define-data-property@^1.1.4: version "1.1.4" resolved "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz" @@ -1323,6 +3073,11 @@ define-data-property@^1.0.1, define-data-property@^1.1.4: es-errors "^1.3.0" gopd "^1.0.1" +define-lazy-prop@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz#dbb19adfb746d7fc6d734a06b72f4a00d021255f" + integrity sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg== + define-properties@^1.1.3, define-properties@^1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz" @@ -1337,16 +3092,62 @@ delayed-stream@~1.0.0: resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== +depd@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== + +dequal@^2.0.0: + version "2.0.3" + resolved "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz" + integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== + +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + detect-libc@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz" integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== +detect-node@^2.0.4: + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" + integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== + +devlop@^1.0.0, devlop@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz" + integrity sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA== + dependencies: + dequal "^2.0.0" + diff@^4.0.1: version "4.0.2" resolved "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +dns-packet@^5.2.2: + version "5.6.1" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.6.1.tgz#ae888ad425a9d1478a0674256ab866de1012cf2f" + integrity sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw== + dependencies: + "@leichtgewicht/ip-codec" "^2.0.1" + doctrine@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz" @@ -1354,6 +3155,51 @@ doctrine@^2.1.0: dependencies: esutils "^2.0.2" +dom-converter@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" + integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== + dependencies: + utila "~0.4" + +dom-serializer@^1.0.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" + integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.2.0" + entities "^2.0.0" + +domelementtype@^2.0.1, domelementtype@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== + +domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" + integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== + dependencies: + domelementtype "^2.2.0" + +domutils@^2.5.2, domutils@^2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" + integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.2.0" + domhandler "^4.2.0" + +dot-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" + integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + dunder-proto@^1.0.0, dunder-proto@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz" @@ -1363,11 +3209,71 @@ dunder-proto@^1.0.0, dunder-proto@^1.0.1: es-errors "^1.3.0" gopd "^1.2.0" +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + +electron-to-chromium@^1.5.149: + version "1.5.151" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.151.tgz#5edd6c17e1b2f14b4662c41b9379f96cc8c2bb7c" + integrity sha512-Rl6uugut2l9sLojjS4H4SAr3A4IgACMLgpuEMPYCVcKydzfyPrn5absNRju38IhQOf/NwjJY8OGWjlteqYeBCA== + electron-to-chromium@^1.5.73: version "1.5.125" resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.125.tgz" integrity sha512-A2+qEsSUc95QvyFDl7PNwkDDNphIKBVfBBtWWkPGRbiWEgzLo0SvLygYF6HgzVduHd+4WGPB/WD64POFgwzY3g== +email-addresses@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/email-addresses/-/email-addresses-5.0.0.tgz" + integrity sha512-4OIPYlA6JXqtVn8zpHpGiI7vE6EQOAg16aGnDMIAlZVinnoZ8208tW1hAbjWydgN/4PLTT9q+O1K6AH/vALJGw== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +encodeurl@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58" + integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg== + +enhanced-resolve@^5.0.0, enhanced-resolve@^5.17.1: + version "5.18.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz#728ab082f8b7b6836de51f1637aab5d3b9568faf" + integrity sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + +entities@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== + +envinfo@^7.14.0: + version "7.14.0" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.14.0.tgz#26dac5db54418f2a4c1159153a0b2ae980838aae" + integrity sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg== + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + es-abstract@^1.17.5, es-abstract@^1.23.2, es-abstract@^1.23.3, es-abstract@^1.23.5, es-abstract@^1.23.6, es-abstract@^1.23.9: version "1.23.9" resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz" @@ -1457,6 +3363,11 @@ es-iterator-helpers@^1.2.1: iterator.prototype "^1.1.4" safe-array-concat "^1.1.3" +es-module-lexer@^1.2.1: + version "1.7.0" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.7.0.tgz#9159601561880a85f2734560a9099b2c31e5372a" + integrity sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA== + es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz" @@ -1490,47 +3401,31 @@ es-to-primitive@^1.3.0: is-date-object "^1.0.5" is-symbol "^1.0.4" -esbuild@^0.25.0: - version "0.25.1" - resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.25.1.tgz" - integrity sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ== - optionalDependencies: - "@esbuild/aix-ppc64" "0.25.1" - "@esbuild/android-arm" "0.25.1" - "@esbuild/android-arm64" "0.25.1" - "@esbuild/android-x64" "0.25.1" - "@esbuild/darwin-arm64" "0.25.1" - "@esbuild/darwin-x64" "0.25.1" - "@esbuild/freebsd-arm64" "0.25.1" - "@esbuild/freebsd-x64" "0.25.1" - "@esbuild/linux-arm" "0.25.1" - "@esbuild/linux-arm64" "0.25.1" - "@esbuild/linux-ia32" "0.25.1" - "@esbuild/linux-loong64" "0.25.1" - "@esbuild/linux-mips64el" "0.25.1" - "@esbuild/linux-ppc64" "0.25.1" - "@esbuild/linux-riscv64" "0.25.1" - "@esbuild/linux-s390x" "0.25.1" - "@esbuild/linux-x64" "0.25.1" - "@esbuild/netbsd-arm64" "0.25.1" - "@esbuild/netbsd-x64" "0.25.1" - "@esbuild/openbsd-arm64" "0.25.1" - "@esbuild/openbsd-x64" "0.25.1" - "@esbuild/sunos-x64" "0.25.1" - "@esbuild/win32-arm64" "0.25.1" - "@esbuild/win32-ia32" "0.25.1" - "@esbuild/win32-x64" "0.25.1" - -escalade@^3.2.0: +escalade@^3.1.1, escalade@^3.2.0: version "3.2.0" resolved "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz" integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + +escape-string-regexp@^1.0.2: + version "1.0.5" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + escape-string-regexp@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== +escape-string-regexp@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8" + integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== + eslint-config-prettier@^10.1.1: version "10.1.1" resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.1.tgz" @@ -1631,6 +3526,14 @@ eslint-plugin-react@^7.37.4: string.prototype.matchall "^4.0.12" string.prototype.repeat "^1.0.0" +eslint-scope@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + eslint-scope@^8.3.0: version "8.3.0" resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz" @@ -1713,16 +3616,83 @@ esrecurse@^4.3.0: dependencies: estraverse "^5.2.0" +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: version "5.3.0" resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== +estree-util-is-identifier-name@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz" + integrity sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg== + esutils@^2.0.2: version "2.0.3" resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + +eventemitter3@^4.0.0: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +events@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + +express@^4.21.2: + version "4.21.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.21.2.tgz#cf250e48362174ead6cea4a566abef0162c1ec32" + integrity sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "1.20.3" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.7.1" + cookie-signature "1.0.6" + debug "2.6.9" + depd "2.0.0" + encodeurl "~2.0.0" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.3.1" + fresh "0.5.2" + http-errors "2.0.0" + merge-descriptors "1.0.3" + methods "~1.1.2" + on-finished "2.4.1" + parseurl "~1.3.3" + path-to-regexp "0.1.12" + proxy-addr "~2.0.7" + qs "6.13.0" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.19.0" + serve-static "1.16.2" + setprototypeof "1.2.0" + statuses "2.0.1" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +extend@^3.0.0: + version "3.0.2" + resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" @@ -1733,7 +3703,7 @@ fast-diff@^1.1.2: resolved "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz" integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== -fast-glob@^3.3.2: +fast-glob@^3.2.9, fast-glob@^3.3.2: version "3.3.3" resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz" integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg== @@ -1754,6 +3724,16 @@ fast-levenshtein@^2.0.6: resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== +fast-uri@^3.0.1: + version "3.0.6" + resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.0.6.tgz#88f130b77cfaea2378d56bf970dea21257a68748" + integrity sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw== + +fastest-levenshtein@^1.0.12: + version "1.0.16" + resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" + integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== + fastq@^1.6.0: version "1.19.1" resolved "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz" @@ -1761,6 +3741,13 @@ fastq@^1.6.0: dependencies: reusify "^1.0.4" +faye-websocket@0.11.4, faye-websocket@^0.11.3: + version "0.11.4" + resolved "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz" + integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== + dependencies: + websocket-driver ">=0.5.1" + fdir@^6.4.3: version "6.4.3" resolved "https://registry.npmjs.org/fdir/-/fdir-6.4.3.tgz" @@ -1773,6 +3760,20 @@ file-entry-cache@^8.0.0: dependencies: flat-cache "^4.0.0" +filename-reserved-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz" + integrity sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ== + +filenamify@^4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz" + integrity sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg== + dependencies: + filename-reserved-regex "^2.0.0" + strip-outer "^1.0.1" + trim-repeated "^1.0.0" + fill-range@^7.1.1: version "7.1.1" resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz" @@ -1780,6 +3781,36 @@ fill-range@^7.1.1: dependencies: to-regex-range "^5.0.1" +finalhandler@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.3.1.tgz#0c575f1d1d324ddd1da35ad7ece3df7d19088019" + integrity sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ== + dependencies: + debug "2.6.9" + encodeurl "~2.0.0" + escape-html "~1.0.3" + on-finished "2.4.1" + parseurl "~1.3.3" + statuses "2.0.1" + unpipe "~1.0.0" + +find-cache-dir@^3.3.1: + version "3.3.2" + resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz" + integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== + dependencies: + commondir "^1.0.1" + make-dir "^3.0.2" + pkg-dir "^4.1.0" + +find-up@^4.0.0: + version "4.1.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + find-up@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" @@ -1788,6 +3819,40 @@ find-up@^5.0.0: locate-path "^6.0.0" path-exists "^4.0.0" +firebase@^11.6.0: + version "11.6.1" + resolved "https://registry.npmjs.org/firebase/-/firebase-11.6.1.tgz" + integrity sha512-aF00ZR+ziiq5/vxamCKpY1I0LA/ungG2qrsQIDibT+xqdvz8MaMnN0aHU4LIxxTx+Dbga/KlUXeklidRJahgHg== + dependencies: + "@firebase/analytics" "0.10.12" + "@firebase/analytics-compat" "0.2.18" + "@firebase/app" "0.11.5" + "@firebase/app-check" "0.8.13" + "@firebase/app-check-compat" "0.3.20" + "@firebase/app-compat" "0.2.54" + "@firebase/app-types" "0.9.3" + "@firebase/auth" "1.10.1" + "@firebase/auth-compat" "0.5.21" + "@firebase/data-connect" "0.3.4" + "@firebase/database" "1.0.14" + "@firebase/database-compat" "2.0.5" + "@firebase/firestore" "4.7.11" + "@firebase/firestore-compat" "0.3.46" + "@firebase/functions" "0.12.3" + "@firebase/functions-compat" "0.3.20" + "@firebase/installations" "0.6.13" + "@firebase/installations-compat" "0.2.13" + "@firebase/messaging" "0.12.17" + "@firebase/messaging-compat" "0.2.17" + "@firebase/performance" "0.7.2" + "@firebase/performance-compat" "0.2.15" + "@firebase/remote-config" "0.6.0" + "@firebase/remote-config-compat" "0.2.13" + "@firebase/storage" "0.13.7" + "@firebase/storage-compat" "0.3.17" + "@firebase/util" "1.11.0" + "@firebase/vertexai" "1.2.1" + flat-cache@^4.0.0: version "4.0.1" resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz" @@ -1796,12 +3861,17 @@ flat-cache@^4.0.0: flatted "^3.2.9" keyv "^4.5.4" +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== + flatted@^3.2.9: version "3.3.3" resolved "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz" integrity sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg== -follow-redirects@^1.15.6: +follow-redirects@^1.0.0, follow-redirects@^1.15.6: version "1.15.9" resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz" integrity sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ== @@ -1813,6 +3883,24 @@ for-each@^0.3.3, for-each@^0.3.5: dependencies: is-callable "^1.2.7" +fork-ts-checker-webpack-plugin@^9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-9.1.0.tgz#433481c1c228c56af111172fcad7df79318c915a" + integrity sha512-mpafl89VFPJmhnJ1ssH+8wmM2b50n+Rew5x42NeI2U78aRWgtkEtGmctp7iT16UjquJTjorEmIfESj3DxdW84Q== + dependencies: + "@babel/code-frame" "^7.16.7" + chalk "^4.1.2" + chokidar "^4.0.1" + cosmiconfig "^8.2.0" + deepmerge "^4.2.2" + fs-extra "^10.0.0" + memfs "^3.4.1" + minimatch "^3.0.4" + node-abort-controller "^3.0.1" + schema-utils "^3.1.1" + semver "^7.3.5" + tapable "^2.2.1" + form-data@^4.0.0: version "4.0.2" resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz" @@ -1823,7 +3911,40 @@ form-data@^4.0.0: es-set-tostringtag "^2.1.0" mime-types "^2.1.12" -fsevents@~2.3.2, fsevents@~2.3.3: +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== + +fs-extra@^10.0.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" + integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-extra@^11.1.1: + version "11.3.0" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz" + integrity sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-monkey@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.6.tgz#8ead082953e88d992cf3ff844faa907b26756da2" + integrity sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg== + +fsevents@~2.3.2: version "2.3.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== @@ -1852,9 +3973,14 @@ functions-have-names@^1.2.3: gensync@^1.0.0-beta.2: version "1.0.0-beta.2" - resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + get-intrinsic@^1.2.4, get-intrinsic@^1.2.5, get-intrinsic@^1.2.6, get-intrinsic@^1.2.7, get-intrinsic@^1.3.0: version "1.3.0" resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz" @@ -1895,7 +4021,20 @@ get-tsconfig@^4.10.0: dependencies: resolve-pkg-maps "^1.0.0" -glob-parent@^5.1.2: +gh-pages@^6.3.0: + version "6.3.0" + resolved "https://registry.npmjs.org/gh-pages/-/gh-pages-6.3.0.tgz" + integrity sha512-Ot5lU6jK0Eb+sszG8pciXdjMXdBJ5wODvgjR+imihTqsUWF2K6dJ9HST55lgqcs8wWcw6o6wAsUzfcYRhJPXbA== + dependencies: + async "^3.2.4" + commander "^13.0.0" + email-addresses "^5.0.0" + filenamify "^4.3.0" + find-cache-dir "^3.3.1" + fs-extra "^11.1.1" + globby "^11.1.0" + +glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== @@ -1909,9 +4048,14 @@ glob-parent@^6.0.2: dependencies: is-glob "^4.0.3" +glob-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + globals@^11.1.0: version "11.12.0" - resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globals@^14.0.0: @@ -1932,16 +4076,38 @@ globalthis@^1.0.4: define-properties "^1.2.1" gopd "^1.0.1" +globby@^11.1.0: + version "11.1.0" + resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + gopd@^1.0.1, gopd@^1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz" integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.6: + version "4.2.11" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + graphemer@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz" integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== +handle-thing@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" + integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== + has-bigints@^1.0.2: version "1.1.0" resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz" @@ -1985,6 +4151,175 @@ hasown@^2.0.2: dependencies: function-bind "^1.1.2" +hast-util-sanitize@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/hast-util-sanitize/-/hast-util-sanitize-5.0.2.tgz#edb260d94e5bba2030eb9375790a8753e5bf391f" + integrity sha512-3yTWghByc50aGS7JlGhk61SPenfE/p1oaFeNwkOOyrscaOkMGrcW9+Cy/QAIOBpZxP1yqDIzFMR0+Np0i0+usg== + dependencies: + "@types/hast" "^3.0.0" + "@ungap/structured-clone" "^1.0.0" + unist-util-position "^5.0.0" + +hast-util-to-jsx-runtime@^2.0.0: + version "2.3.6" + resolved "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.6.tgz" + integrity sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg== + dependencies: + "@types/estree" "^1.0.0" + "@types/hast" "^3.0.0" + "@types/unist" "^3.0.0" + comma-separated-tokens "^2.0.0" + devlop "^1.0.0" + estree-util-is-identifier-name "^3.0.0" + hast-util-whitespace "^3.0.0" + mdast-util-mdx-expression "^2.0.0" + mdast-util-mdx-jsx "^3.0.0" + mdast-util-mdxjs-esm "^2.0.0" + property-information "^7.0.0" + space-separated-tokens "^2.0.0" + style-to-js "^1.0.0" + unist-util-position "^5.0.0" + vfile-message "^4.0.0" + +hast-util-whitespace@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz" + integrity sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw== + dependencies: + "@types/hast" "^3.0.0" + +he@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +hpack.js@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + integrity sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ== + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + +html-minifier-terser@^6.0.2: + version "6.1.0" + resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#bfc818934cc07918f6b3669f5774ecdfd48f32ab" + integrity sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw== + dependencies: + camel-case "^4.1.2" + clean-css "^5.2.2" + commander "^8.3.0" + he "^1.2.0" + param-case "^3.0.4" + relateurl "^0.2.7" + terser "^5.10.0" + +html-url-attributes@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/html-url-attributes/-/html-url-attributes-3.0.1.tgz" + integrity sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ== + +html-webpack-plugin@^5.6.3: + version "5.6.3" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.6.3.tgz#a31145f0fee4184d53a794f9513147df1e653685" + integrity sha512-QSf1yjtSAsmf7rYBV7XX86uua4W/vkhIt0xNXKbsi2foEeW7vjJQz4bhnpL3xH+l1ryl1680uNv968Z+X6jSYg== + dependencies: + "@types/html-minifier-terser" "^6.0.0" + html-minifier-terser "^6.0.2" + lodash "^4.17.21" + pretty-error "^4.0.0" + tapable "^2.0.0" + +htmlparser2@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" + integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.0.0" + domutils "^2.5.2" + entities "^2.0.0" + +http-deceiver@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== + +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + dependencies: + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" + +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +http-parser-js@>=0.5.1: + version "0.5.10" + resolved "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.10.tgz" + integrity sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA== + +http-proxy-middleware@^2.0.7: + version "2.0.9" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.9.tgz#e9e63d68afaa4eee3d147f39149ab84c0c2815ef" + integrity sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q== + dependencies: + "@types/http-proxy" "^1.17.8" + http-proxy "^1.18.1" + is-glob "^4.0.1" + is-plain-obj "^3.0.0" + micromatch "^4.0.2" + +http-proxy@^1.18.1: + version "1.18.1" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" + integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== + dependencies: + eventemitter3 "^4.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + +hyperdyperid@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/hyperdyperid/-/hyperdyperid-1.2.0.tgz#59668d323ada92228d2a869d3e474d5a33b69e6b" + integrity sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A== + +iconv-lite@0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +icss-utils@^5.0.0, icss-utils@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" + integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== + +idb@7.1.1: + version "7.1.1" + resolved "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz" + integrity sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ== + +ieee754@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + ignore@^5.2.0, ignore@^5.3.1: version "5.3.2" resolved "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz" @@ -1995,7 +4330,7 @@ immutable@^5.0.2: resolved "https://registry.npmjs.org/immutable/-/immutable-5.1.1.tgz" integrity sha512-3jatXi9ObIsPGr3N5hGw/vWWcTkq6hUYhpQz4k0wLC+owqWi/LiugIw9x0EdNZ2yGedKN/HzePiBvaJRXa0Ujg== -import-fresh@^3.2.1: +import-fresh@^3.2.1, import-fresh@^3.3.0: version "3.3.1" resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz" integrity sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ== @@ -2003,11 +4338,34 @@ import-fresh@^3.2.1: parent-module "^1.0.0" resolve-from "^4.0.0" +import-local@^3.0.2: + version "3.2.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.2.0.tgz#c3d5c745798c02a6f8b897726aba5100186ee260" + integrity sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== + +inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inline-style-parser@0.2.4: + version "0.2.4" + resolved "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.4.tgz" + integrity sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q== + internal-slot@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz" @@ -2017,6 +4375,34 @@ internal-slot@^1.1.0: hasown "^2.0.2" side-channel "^1.1.0" +interpret@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-3.1.1.tgz#5be0ceed67ca79c6c4bc5cf0d7ee843dcea110c4" + integrity sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ== + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +ipaddr.js@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.2.0.tgz#d33fa7bac284f4de7af949638c9d68157c6b92e8" + integrity sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA== + +is-alphabetical@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz" + integrity sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ== + +is-alphanumerical@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz" + integrity sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw== + dependencies: + is-alphabetical "^2.0.0" + is-decimal "^2.0.0" + is-array-buffer@^3.0.4, is-array-buffer@^3.0.5: version "3.0.5" resolved "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz" @@ -2026,6 +4412,11 @@ is-array-buffer@^3.0.4, is-array-buffer@^3.0.5: call-bound "^1.0.3" get-intrinsic "^1.2.6" +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + is-async-function@^2.0.0: version "2.1.1" resolved "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz" @@ -2044,6 +4435,13 @@ is-bigint@^1.1.0: dependencies: has-bigints "^1.0.2" +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + is-boolean-object@^1.2.1: version "1.2.2" resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz" @@ -2088,6 +4486,16 @@ is-date-object@^1.0.5, is-date-object@^1.1.0: call-bound "^1.0.2" has-tostringtag "^1.0.2" +is-decimal@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz" + integrity sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A== + +is-docker@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200" + integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== + is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" @@ -2100,6 +4508,11 @@ is-finalizationregistry@^1.1.0: dependencies: call-bound "^1.0.3" +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + is-generator-function@^1.0.10: version "1.1.0" resolved "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz" @@ -2110,18 +4523,35 @@ is-generator-function@^1.0.10: has-tostringtag "^1.0.2" safe-regex-test "^1.1.0" -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== dependencies: is-extglob "^2.1.1" +is-hexadecimal@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz" + integrity sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg== + +is-inside-container@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4" + integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== + dependencies: + is-docker "^3.0.0" + is-map@^2.0.3: version "2.0.3" resolved "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz" integrity sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw== +is-network-error@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-network-error/-/is-network-error-1.1.0.tgz#d26a760e3770226d11c169052f266a4803d9c997" + integrity sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g== + is-number-object@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz" @@ -2135,6 +4565,23 @@ is-number@^7.0.0: resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== +is-plain-obj@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" + integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== + +is-plain-obj@^4.0.0: + version "4.1.0" + resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz" + integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== + +is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + is-regex@^1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz" @@ -2201,16 +4648,33 @@ is-weakset@^2.0.3: call-bound "^1.0.3" get-intrinsic "^1.2.6" +is-wsl@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-3.1.0.tgz#e1c657e39c10090afcbedec61720f6b924c3cbd2" + integrity sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw== + dependencies: + is-inside-container "^1.0.0" + isarray@^2.0.5: version "2.0.5" resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz" integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + isexe@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== +isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== + iterator.prototype@^1.1.4: version "1.1.5" resolved "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz" @@ -2223,6 +4687,15 @@ iterator.prototype@^1.1.4: has-symbols "^1.1.0" set-function-name "^2.0.2" +jest-worker@^27.4.5: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" @@ -2237,19 +4710,34 @@ js-yaml@^4.1.0: jsesc@^3.0.2: version "3.1.0" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.1.0.tgz#74d335a234f67ed19907fdadfac7ccf9d409825d" integrity sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA== +jsesc@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.0.2.tgz#bb8b09a6597ba426425f2e4a07245c3d00b9343e" + integrity sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g== + json-buffer@3.0.1: version "3.0.1" resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz" integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== +json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" @@ -2262,11 +4750,20 @@ json5@^1.0.2: dependencies: minimist "^1.2.0" -json5@^2.2.3: +json5@^2.1.2, json5@^2.2.3: version "2.2.3" - resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + "jsx-ast-utils@^2.4.1 || ^3.0.0": version "3.3.5" resolved "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz" @@ -2284,6 +4781,19 @@ keyv@^4.5.4: dependencies: json-buffer "3.0.1" +kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +launch-editor@^2.6.1: + version "2.10.0" + resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.10.0.tgz#5ca3edfcb9667df1e8721310f3a40f1127d4bc42" + integrity sha512-D7dBRJo/qcGX9xlvt/6wUYzQxjh5G1RvZPgPv8vi4KRU99DVQL/oW7tnVOCCTm2HGeo3C5HvGE5Yrh6UBoZ0vA== + dependencies: + picocolors "^1.0.0" + shell-quote "^1.8.1" + levn@^0.4.1: version "0.4.1" resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" @@ -2292,6 +4802,32 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +loader-runner@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" + integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== + +loader-utils@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c" + integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + locate-path@^6.0.0: version "6.0.0" resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" @@ -2299,11 +4835,36 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz" + integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== + lodash.merge@^4.6.2: version "4.6.2" resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== +lodash@^4.17.20, lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +long@^5.0.0: + version "5.3.2" + resolved "https://registry.npmjs.org/long/-/long-5.3.2.tgz" + integrity sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA== + +longest-streak@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz" + integrity sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g== + loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" @@ -2311,29 +4872,538 @@ loose-envify@^1.4.0: dependencies: js-tokens "^3.0.0 || ^4.0.0" +lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" + integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== + dependencies: + tslib "^2.0.3" + lru-cache@^5.1.1: version "5.1.1" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== dependencies: yallist "^3.0.2" +make-dir@^3.0.2: + version "3.1.0" + resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + make-error@^1.1.1: version "1.3.6" resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== +markdown-table@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-3.0.4.tgz#fe44d6d410ff9d6f2ea1797a3f60aa4d2b631c2a" + integrity sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw== + math-intrinsics@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz" integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== -merge2@^1.3.0: +mdast-util-find-and-replace@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz#70a3174c894e14df722abf43bc250cbae44b11df" + integrity sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg== + dependencies: + "@types/mdast" "^4.0.0" + escape-string-regexp "^5.0.0" + unist-util-is "^6.0.0" + unist-util-visit-parents "^6.0.0" + +mdast-util-from-markdown@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz" + integrity sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA== + dependencies: + "@types/mdast" "^4.0.0" + "@types/unist" "^3.0.0" + decode-named-character-reference "^1.0.0" + devlop "^1.0.0" + mdast-util-to-string "^4.0.0" + micromark "^4.0.0" + micromark-util-decode-numeric-character-reference "^2.0.0" + micromark-util-decode-string "^2.0.0" + micromark-util-normalize-identifier "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + unist-util-stringify-position "^4.0.0" + +mdast-util-gfm-autolink-literal@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz#abd557630337bd30a6d5a4bd8252e1c2dc0875d5" + integrity sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ== + dependencies: + "@types/mdast" "^4.0.0" + ccount "^2.0.0" + devlop "^1.0.0" + mdast-util-find-and-replace "^3.0.0" + micromark-util-character "^2.0.0" + +mdast-util-gfm-footnote@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz#7778e9d9ca3df7238cc2bd3fa2b1bf6a65b19403" + integrity sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ== + dependencies: + "@types/mdast" "^4.0.0" + devlop "^1.1.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + micromark-util-normalize-identifier "^2.0.0" + +mdast-util-gfm-strikethrough@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz#d44ef9e8ed283ac8c1165ab0d0dfd058c2764c16" + integrity sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg== + dependencies: + "@types/mdast" "^4.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-gfm-table@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz#7a435fb6223a72b0862b33afbd712b6dae878d38" + integrity sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg== + dependencies: + "@types/mdast" "^4.0.0" + devlop "^1.0.0" + markdown-table "^3.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-gfm-task-list-item@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz#e68095d2f8a4303ef24094ab642e1047b991a936" + integrity sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ== + dependencies: + "@types/mdast" "^4.0.0" + devlop "^1.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-gfm@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz#2cdf63b92c2a331406b0fb0db4c077c1b0331751" + integrity sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ== + dependencies: + mdast-util-from-markdown "^2.0.0" + mdast-util-gfm-autolink-literal "^2.0.0" + mdast-util-gfm-footnote "^2.0.0" + mdast-util-gfm-strikethrough "^2.0.0" + mdast-util-gfm-table "^2.0.0" + mdast-util-gfm-task-list-item "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-mdx-expression@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz" + integrity sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ== + dependencies: + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^3.0.0" + "@types/mdast" "^4.0.0" + devlop "^1.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-mdx-jsx@^3.0.0: + version "3.2.0" + resolved "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz" + integrity sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q== + dependencies: + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^3.0.0" + "@types/mdast" "^4.0.0" + "@types/unist" "^3.0.0" + ccount "^2.0.0" + devlop "^1.1.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + parse-entities "^4.0.0" + stringify-entities "^4.0.0" + unist-util-stringify-position "^4.0.0" + vfile-message "^4.0.0" + +mdast-util-mdxjs-esm@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz" + integrity sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg== + dependencies: + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^3.0.0" + "@types/mdast" "^4.0.0" + devlop "^1.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-phrasing@^4.0.0: + version "4.1.0" + resolved "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz" + integrity sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w== + dependencies: + "@types/mdast" "^4.0.0" + unist-util-is "^6.0.0" + +mdast-util-to-hast@^13.0.0: + version "13.2.0" + resolved "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz" + integrity sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA== + dependencies: + "@types/hast" "^3.0.0" + "@types/mdast" "^4.0.0" + "@ungap/structured-clone" "^1.0.0" + devlop "^1.0.0" + micromark-util-sanitize-uri "^2.0.0" + trim-lines "^3.0.0" + unist-util-position "^5.0.0" + unist-util-visit "^5.0.0" + vfile "^6.0.0" + +mdast-util-to-markdown@^2.0.0: + version "2.1.2" + resolved "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz" + integrity sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA== + dependencies: + "@types/mdast" "^4.0.0" + "@types/unist" "^3.0.0" + longest-streak "^3.0.0" + mdast-util-phrasing "^4.0.0" + mdast-util-to-string "^4.0.0" + micromark-util-classify-character "^2.0.0" + micromark-util-decode-string "^2.0.0" + unist-util-visit "^5.0.0" + zwitch "^2.0.0" + +mdast-util-to-string@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz" + integrity sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg== + dependencies: + "@types/mdast" "^4.0.0" + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== + +memfs@^3.4.1: + version "3.6.0" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.6.0.tgz#d7a2110f86f79dd950a8b6df6d57bc984aa185f6" + integrity sha512-EGowvkkgbMcIChjMTMkESFDbZeSh8xZ7kNSF0hAiAN4Jh6jgHCRS0Ga/+C8y6Au+oqpezRHCfPsmJ2+DwAgiwQ== + dependencies: + fs-monkey "^1.0.4" + +memfs@^4.6.0: + version "4.17.1" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-4.17.1.tgz#3112332cbc2b055da3f1c0ba1fd29fdcb863621a" + integrity sha512-thuTRd7F4m4dReCIy7vv4eNYnU6XI/tHMLSMMHLiortw/Y0QxqKtinG523U2aerzwYWGi606oBP4oMPy4+edag== + dependencies: + "@jsonjoy.com/json-pack" "^1.0.3" + "@jsonjoy.com/util" "^1.3.0" + tree-dump "^1.0.1" + tslib "^2.0.0" + +merge-descriptors@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.3.tgz#d80319a65f3c7935351e5cfdac8f9318504dbed5" + integrity sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ== + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0, merge2@^1.4.1: version "1.4.1" resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -micromatch@^4.0.5, micromatch@^4.0.8: +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + +micromark-core-commonmark@^2.0.0: + version "2.0.3" + resolved "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz" + integrity sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg== + dependencies: + decode-named-character-reference "^1.0.0" + devlop "^1.0.0" + micromark-factory-destination "^2.0.0" + micromark-factory-label "^2.0.0" + micromark-factory-space "^2.0.0" + micromark-factory-title "^2.0.0" + micromark-factory-whitespace "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-chunked "^2.0.0" + micromark-util-classify-character "^2.0.0" + micromark-util-html-tag-name "^2.0.0" + micromark-util-normalize-identifier "^2.0.0" + micromark-util-resolve-all "^2.0.0" + micromark-util-subtokenize "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-gfm-autolink-literal@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz#6286aee9686c4462c1e3552a9d505feddceeb935" + integrity sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-sanitize-uri "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-gfm-footnote@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz#4dab56d4e398b9853f6fe4efac4fc9361f3e0750" + integrity sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw== + dependencies: + devlop "^1.0.0" + micromark-core-commonmark "^2.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-normalize-identifier "^2.0.0" + micromark-util-sanitize-uri "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-gfm-strikethrough@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz#86106df8b3a692b5f6a92280d3879be6be46d923" + integrity sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw== + dependencies: + devlop "^1.0.0" + micromark-util-chunked "^2.0.0" + micromark-util-classify-character "^2.0.0" + micromark-util-resolve-all "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-gfm-table@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz#fac70bcbf51fe65f5f44033118d39be8a9b5940b" + integrity sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg== + dependencies: + devlop "^1.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-gfm-tagfilter@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz#f26d8a7807b5985fba13cf61465b58ca5ff7dc57" + integrity sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg== + dependencies: + micromark-util-types "^2.0.0" + +micromark-extension-gfm-task-list-item@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz#bcc34d805639829990ec175c3eea12bb5b781f2c" + integrity sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw== + dependencies: + devlop "^1.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-gfm@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz#3e13376ab95dd7a5cfd0e29560dfe999657b3c5b" + integrity sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w== + dependencies: + micromark-extension-gfm-autolink-literal "^2.0.0" + micromark-extension-gfm-footnote "^2.0.0" + micromark-extension-gfm-strikethrough "^2.0.0" + micromark-extension-gfm-table "^2.0.0" + micromark-extension-gfm-tagfilter "^2.0.0" + micromark-extension-gfm-task-list-item "^2.0.0" + micromark-util-combine-extensions "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-factory-destination@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz" + integrity sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-factory-label@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz" + integrity sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg== + dependencies: + devlop "^1.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-factory-space@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz" + integrity sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-factory-title@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz" + integrity sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw== + dependencies: + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-factory-whitespace@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz" + integrity sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ== + dependencies: + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-util-character@^2.0.0: + version "2.1.1" + resolved "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz" + integrity sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q== + dependencies: + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-util-chunked@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz" + integrity sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA== + dependencies: + micromark-util-symbol "^2.0.0" + +micromark-util-classify-character@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz" + integrity sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-util-combine-extensions@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz" + integrity sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg== + dependencies: + micromark-util-chunked "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-util-decode-numeric-character-reference@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz" + integrity sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw== + dependencies: + micromark-util-symbol "^2.0.0" + +micromark-util-decode-string@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz" + integrity sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ== + dependencies: + decode-named-character-reference "^1.0.0" + micromark-util-character "^2.0.0" + micromark-util-decode-numeric-character-reference "^2.0.0" + micromark-util-symbol "^2.0.0" + +micromark-util-encode@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz" + integrity sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw== + +micromark-util-html-tag-name@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz" + integrity sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA== + +micromark-util-normalize-identifier@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz" + integrity sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q== + dependencies: + micromark-util-symbol "^2.0.0" + +micromark-util-resolve-all@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz" + integrity sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg== + dependencies: + micromark-util-types "^2.0.0" + +micromark-util-sanitize-uri@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz" + integrity sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-encode "^2.0.0" + micromark-util-symbol "^2.0.0" + +micromark-util-subtokenize@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz" + integrity sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA== + dependencies: + devlop "^1.0.0" + micromark-util-chunked "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-util-symbol@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz" + integrity sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q== + +micromark-util-types@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz" + integrity sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA== + +micromark@^4.0.0: + version "4.0.2" + resolved "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz" + integrity sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA== + dependencies: + "@types/debug" "^4.0.0" + debug "^4.0.0" + decode-named-character-reference "^1.0.0" + devlop "^1.0.0" + micromark-core-commonmark "^2.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-chunked "^2.0.0" + micromark-util-combine-extensions "^2.0.0" + micromark-util-decode-numeric-character-reference "^2.0.0" + micromark-util-encode "^2.0.0" + micromark-util-normalize-identifier "^2.0.0" + micromark-util-resolve-all "^2.0.0" + micromark-util-sanitize-uri "^2.0.0" + micromark-util-subtokenize "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromatch@^4.0.0, micromatch@^4.0.2, micromatch@^4.0.5, micromatch@^4.0.8: version "4.0.8" resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz" integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== @@ -2346,14 +5416,37 @@ mime-db@1.52.0: resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@^2.1.12: +"mime-db@>= 1.43.0 < 2": + version "1.54.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.54.0.tgz#cddb3ee4f9c64530dff640236661d42cb6a314f5" + integrity sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ== + +mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== dependencies: mime-db "1.52.0" -minimatch@^3.1.2: +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mini-css-extract-plugin@^2.9.2: + version "2.9.2" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.2.tgz#966031b468917a5446f4c24a80854b2947503c5b" + integrity sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w== + dependencies: + schema-utils "^4.0.0" + tapable "^2.2.1" + +minimalistic-assert@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimatch@^3.0.4, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -2384,14 +5477,27 @@ mobx@^6.13.7: resolved "https://registry.npmjs.org/mobx/-/mobx-6.13.7.tgz" integrity sha512-aChaVU/DO5aRPmk1GX8L+whocagUUpBQqoPtJk+cm7UOXUk87J4PeWCh6nNmTTIfEhiR9DI/+FnA8dln/hTK7g== -ms@^2.1.1, ms@^2.1.3: +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +ms@2.1.3, ms@^2.1.1, ms@^2.1.3: version "2.1.3" resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== +multicast-dns@^7.2.5: + version "7.2.5" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-7.2.5.tgz#77eb46057f4d7adbd16d9290fa7299f6fa64cced" + integrity sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg== + dependencies: + dns-packet "^5.2.2" + thunky "^1.0.2" + nanoid@^3.3.8: version "3.3.11" - resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.11.tgz#4f4f112cefbe303202f2199838128936266d185b" integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w== natural-compare@^1.4.0: @@ -2399,16 +5505,61 @@ natural-compare@^1.4.0: resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +negotiator@~0.6.4: + version "0.6.4" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.4.tgz#777948e2452651c570b712dd01c23e262713fff7" + integrity sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w== + +neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +no-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" + integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== + dependencies: + lower-case "^2.0.2" + tslib "^2.0.3" + +node-abort-controller@^3.0.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/node-abort-controller/-/node-abort-controller-3.1.1.tgz#a94377e964a9a37ac3976d848cb5c765833b8548" + integrity sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ== + node-addon-api@^7.0.0: version "7.1.1" resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz" integrity sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ== +node-forge@^1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" + integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== + node-releases@^2.0.19: version "2.0.19" resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz" integrity sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw== +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +nth-check@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== + dependencies: + boolbase "^1.0.0" + object-assign@^4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" @@ -2470,10 +5621,37 @@ object.values@^1.1.6, object.values@^1.2.0, object.values@^1.2.1: resolved "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz" integrity sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA== dependencies: - call-bind "^1.0.8" - call-bound "^1.0.3" - define-properties "^1.2.1" - es-object-atoms "^1.0.0" + call-bind "^1.0.8" + call-bound "^1.0.3" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +obuf@^1.0.0, obuf@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== + +on-finished@2.4.1, on-finished@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + +open@^10.0.3: + version "10.1.2" + resolved "https://registry.yarnpkg.com/open/-/open-10.1.2.tgz#d5df40984755c9a9c3c93df8156a12467e882925" + integrity sha512-cxN6aIDPz6rm8hbebcP7vrQNhvRcveZoJU72Y7vskh4oIm+BZwBECnx5nTmrlres1Qapvx27Qo1Auukpf8PKXw== + dependencies: + default-browser "^5.2.1" + define-lazy-prop "^3.0.0" + is-inside-container "^1.0.0" + is-wsl "^3.1.0" optionator@^0.9.3: version "0.9.4" @@ -2496,6 +5674,13 @@ own-keys@^1.0.1: object-keys "^1.1.1" safe-push-apply "^1.0.0" +p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + p-limit@^3.0.2: version "3.1.0" resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" @@ -2503,6 +5688,13 @@ p-limit@^3.0.2: dependencies: yocto-queue "^0.1.0" +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + p-locate@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" @@ -2510,6 +5702,28 @@ p-locate@^5.0.0: dependencies: p-limit "^3.0.2" +p-retry@^6.2.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-6.2.1.tgz#81828f8dc61c6ef5a800585491572cc9892703af" + integrity sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ== + dependencies: + "@types/retry" "0.12.2" + is-network-error "^1.0.0" + retry "^0.13.1" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +param-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" + integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + parent-module@^1.0.0: version "1.0.1" resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" @@ -2517,6 +5731,42 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" +parse-entities@^4.0.0: + version "4.0.2" + resolved "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz" + integrity sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw== + dependencies: + "@types/unist" "^2.0.0" + character-entities-legacy "^3.0.0" + character-reference-invalid "^2.0.0" + decode-named-character-reference "^1.0.0" + is-alphanumerical "^2.0.0" + is-decimal "^2.0.0" + is-hexadecimal "^2.0.0" + +parse-json@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parseurl@~1.3.2, parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascal-case@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" + integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + path-exists@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" @@ -2532,12 +5782,22 @@ path-parse@^1.0.7: resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== +path-to-regexp@0.1.12: + version "0.1.12" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.12.tgz#d5e1a12e478a976d432ef3c58d534b9923164bb7" + integrity sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ== + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + picocolors@^1.0.0, picocolors@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz" integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== -picomatch@^2.3.1: +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== @@ -2547,14 +5807,62 @@ picomatch@^4.0.2: resolved "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz" integrity sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg== +pkg-dir@^4.1.0, pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + possible-typed-array-names@^1.0.0: version "1.1.0" resolved "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz" integrity sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg== -postcss@^8.5.3: +postcss-modules-extract-imports@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz#b4497cb85a9c0c4b5aabeb759bb25e8d89f15002" + integrity sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q== + +postcss-modules-local-by-default@^4.0.5: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz#d150f43837831dae25e4085596e84f6f5d6ec368" + integrity sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw== + dependencies: + icss-utils "^5.0.0" + postcss-selector-parser "^7.0.0" + postcss-value-parser "^4.1.0" + +postcss-modules-scope@^3.2.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz#1bbccddcb398f1d7a511e0a2d1d047718af4078c" + integrity sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA== + dependencies: + postcss-selector-parser "^7.0.0" + +postcss-modules-values@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" + integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== + dependencies: + icss-utils "^5.0.0" + +postcss-selector-parser@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz#4d6af97eba65d73bc4d84bcb343e865d7dd16262" + integrity sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + +postcss@^8.4.33: version "8.5.3" - resolved "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.3.tgz#1463b6f1c7fb16fe258736cba29a2de35237eafb" integrity sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A== dependencies: nanoid "^3.3.8" @@ -2578,6 +5886,19 @@ prettier@^3.5.3: resolved "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz" integrity sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw== +pretty-error@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-4.0.0.tgz#90a703f46dd7234adb46d0f84823e9d1cb8f10d6" + integrity sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw== + dependencies: + lodash "^4.17.20" + renderkid "^3.0.0" + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + prop-types@^15.8.1: version "15.8.1" resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz" @@ -2587,6 +5908,37 @@ prop-types@^15.8.1: object-assign "^4.1.1" react-is "^16.13.1" +property-information@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/property-information/-/property-information-7.0.0.tgz" + integrity sha512-7D/qOz/+Y4X/rzSB6jKxKUsQnphO046ei8qxG59mtM3RG3DHgTK81HrxrmoDVINJb8NKT5ZsRbwHvQ6B68Iyhg== + +protobufjs@^7.2.5: + version "7.5.0" + resolved "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.0.tgz" + integrity sha512-Z2E/kOY1QjoMlCytmexzYfDm/w5fKAiRwpSzGtdnXW1zC88Z2yXazHHrOtwCzn+7wSxyE8PYM4rvVcMphF9sOA== + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/node" ">=13.7.0" + long "^5.0.0" + +proxy-addr@~2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + proxy-from-env@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz" @@ -2597,6 +5949,13 @@ punycode@^2.1.0: resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz" integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== +qs@6.13.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.0.tgz#6ca3bd58439f7e245655798997787b0d88a51906" + integrity sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg== + dependencies: + side-channel "^1.0.6" + qs@^6.14.0: version "6.14.0" resolved "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz" @@ -2609,6 +5968,28 @@ queue-microtask@^1.2.2: resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +range-parser@^1.2.1, range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" + integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + react-dom@^19.0.0: version "19.0.0" resolved "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0.tgz" @@ -2621,10 +6002,22 @@ react-is@^16.13.1: resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== -react-refresh@^0.14.2: - version "0.14.2" - resolved "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz" - integrity sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA== +react-markdown@^10.1.0: + version "10.1.0" + resolved "https://registry.npmjs.org/react-markdown/-/react-markdown-10.1.0.tgz" + integrity sha512-qKxVopLT/TyA6BX3Ue5NwabOsAzm0Q7kAPwq6L+wWDwisYs7R8vZ0nRXqq6rkueboxpkjvLGU9fWifiX/ZZFxQ== + dependencies: + "@types/hast" "^3.0.0" + "@types/mdast" "^4.0.0" + devlop "^1.0.0" + hast-util-to-jsx-runtime "^2.0.0" + html-url-attributes "^3.0.0" + mdast-util-to-hast "^13.0.0" + remark-parse "^11.0.0" + remark-rehype "^11.0.0" + unified "^11.0.0" + unist-util-visit "^5.0.0" + vfile "^6.0.0" react-router-dom@^7.5.0: version "7.5.0" @@ -2643,16 +6036,59 @@ react-router@7.5.0, react-router@^7.4.1: set-cookie-parser "^2.6.0" turbo-stream "2.4.0" +react-toastify@^11.0.5: + version "11.0.5" + resolved "https://registry.yarnpkg.com/react-toastify/-/react-toastify-11.0.5.tgz#ce4c42d10eeb433988ab2264d3e445c4e9d13313" + integrity sha512-EpqHBGvnSTtHYhCPLxML05NLY2ZX0JURbAdNYa6BUkk+amz4wbKBQvoKQAB0ardvSarUBuY4Q4s1sluAzZwkmA== + dependencies: + clsx "^2.1.1" + react@^19.0.0: version "19.0.0" resolved "https://registry.npmjs.org/react/-/react-19.0.0.tgz" integrity sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ== +readable-stream@^2.0.1: + version "2.3.8" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.0.6: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + readdirp@^4.0.1: version "4.1.2" resolved "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz" integrity sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg== +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +rechoir@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.8.0.tgz#49f866e0d32146142da3ad8f0eff352b3215ff22" + integrity sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ== + dependencies: + resolve "^1.20.0" + reflect.getprototypeof@^1.0.6, reflect.getprototypeof@^1.0.9: version "1.0.10" resolved "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz" @@ -2667,6 +6103,18 @@ reflect.getprototypeof@^1.0.6, reflect.getprototypeof@^1.0.9: get-proto "^1.0.1" which-builtin-type "^1.2.1" +regenerate-unicode-properties@^10.2.0: + version "10.2.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz#626e39df8c372338ea9b8028d1f99dc3fd9c3db0" + integrity sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA== + dependencies: + regenerate "^1.4.2" + +regenerate@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + regexp.prototype.flags@^1.5.3: version "1.5.4" resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz" @@ -2679,17 +6127,134 @@ regexp.prototype.flags@^1.5.3: gopd "^1.2.0" set-function-name "^2.0.2" +regexpu-core@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-6.2.0.tgz#0e5190d79e542bf294955dccabae04d3c7d53826" + integrity sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA== + dependencies: + regenerate "^1.4.2" + regenerate-unicode-properties "^10.2.0" + regjsgen "^0.8.0" + regjsparser "^0.12.0" + unicode-match-property-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript "^2.1.0" + +regjsgen@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.8.0.tgz#df23ff26e0c5b300a6470cad160a9d090c3a37ab" + integrity sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q== + +regjsparser@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.12.0.tgz#0e846df6c6530586429377de56e0475583b088dc" + integrity sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ== + dependencies: + jsesc "~3.0.2" + +rehype-sanitize@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/rehype-sanitize/-/rehype-sanitize-6.0.0.tgz#16e95f4a67a69cbf0f79e113c8e0df48203db73c" + integrity sha512-CsnhKNsyI8Tub6L4sm5ZFsme4puGfc6pYylvXo1AeqaGbjOYyzNv3qZPwvs0oMJ39eryyeOdmxwUIo94IpEhqg== + dependencies: + "@types/hast" "^3.0.0" + hast-util-sanitize "^5.0.0" + +relateurl@^0.2.7: + version "0.2.7" + resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== + +remark-gfm@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/remark-gfm/-/remark-gfm-4.0.1.tgz#33227b2a74397670d357bf05c098eaf8513f0d6b" + integrity sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg== + dependencies: + "@types/mdast" "^4.0.0" + mdast-util-gfm "^3.0.0" + micromark-extension-gfm "^3.0.0" + remark-parse "^11.0.0" + remark-stringify "^11.0.0" + unified "^11.0.0" + +remark-parse@^11.0.0: + version "11.0.0" + resolved "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz" + integrity sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA== + dependencies: + "@types/mdast" "^4.0.0" + mdast-util-from-markdown "^2.0.0" + micromark-util-types "^2.0.0" + unified "^11.0.0" + +remark-rehype@^11.0.0: + version "11.1.2" + resolved "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.2.tgz" + integrity sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw== + dependencies: + "@types/hast" "^3.0.0" + "@types/mdast" "^4.0.0" + mdast-util-to-hast "^13.0.0" + unified "^11.0.0" + vfile "^6.0.0" + +remark-stringify@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-11.0.0.tgz#4c5b01dd711c269df1aaae11743eb7e2e7636fd3" + integrity sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw== + dependencies: + "@types/mdast" "^4.0.0" + mdast-util-to-markdown "^2.0.0" + unified "^11.0.0" + +renderkid@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-3.0.0.tgz#5fd823e4d6951d37358ecc9a58b1f06836b6268a" + integrity sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg== + dependencies: + css-select "^4.1.3" + dom-converter "^0.2.0" + htmlparser2 "^6.1.0" + lodash "^4.17.21" + strip-ansi "^6.0.1" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== + +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + resolve-pkg-maps@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz" integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== -resolve@^1.22.4: +resolve@^1.14.2, resolve@^1.20.0, resolve@^1.22.4: version "1.22.10" resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz" integrity sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w== @@ -2707,39 +6272,20 @@ resolve@^2.0.0-next.5: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" +retry@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" + integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== + reusify@^1.0.4: version "1.1.0" resolved "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz" integrity sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw== -rollup@^4.30.1: - version "4.37.0" - resolved "https://registry.npmjs.org/rollup/-/rollup-4.37.0.tgz" - integrity sha512-iAtQy/L4QFU+rTJ1YUjXqJOJzuwEghqWzCEYD2FEghT7Gsy1VdABntrO4CLopA5IkflTyqNiLNwPcOJ3S7UKLg== - dependencies: - "@types/estree" "1.0.6" - optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.37.0" - "@rollup/rollup-android-arm64" "4.37.0" - "@rollup/rollup-darwin-arm64" "4.37.0" - "@rollup/rollup-darwin-x64" "4.37.0" - "@rollup/rollup-freebsd-arm64" "4.37.0" - "@rollup/rollup-freebsd-x64" "4.37.0" - "@rollup/rollup-linux-arm-gnueabihf" "4.37.0" - "@rollup/rollup-linux-arm-musleabihf" "4.37.0" - "@rollup/rollup-linux-arm64-gnu" "4.37.0" - "@rollup/rollup-linux-arm64-musl" "4.37.0" - "@rollup/rollup-linux-loongarch64-gnu" "4.37.0" - "@rollup/rollup-linux-powerpc64le-gnu" "4.37.0" - "@rollup/rollup-linux-riscv64-gnu" "4.37.0" - "@rollup/rollup-linux-riscv64-musl" "4.37.0" - "@rollup/rollup-linux-s390x-gnu" "4.37.0" - "@rollup/rollup-linux-x64-gnu" "4.37.0" - "@rollup/rollup-linux-x64-musl" "4.37.0" - "@rollup/rollup-win32-arm64-msvc" "4.37.0" - "@rollup/rollup-win32-ia32-msvc" "4.37.0" - "@rollup/rollup-win32-x64-msvc" "4.37.0" - fsevents "~2.3.2" +run-applescript@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/run-applescript/-/run-applescript-7.0.0.tgz#e5a553c2bffd620e169d276c1cd8f1b64778fbeb" + integrity sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A== run-parallel@^1.1.9: version "1.2.0" @@ -2759,6 +6305,16 @@ safe-array-concat@^1.1.3: has-symbols "^1.1.0" isarray "^2.0.5" +safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.1.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + safe-push-apply@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz" @@ -2776,6 +6332,18 @@ safe-regex-test@^1.1.0: es-errors "^1.3.0" is-regex "^1.2.1" +"safer-buffer@>= 2.1.2 < 3": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sass-loader@^16.0.5: + version "16.0.5" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-16.0.5.tgz#257bc90119ade066851cafe7f2c3f3504c7cda98" + integrity sha512-oL+CMBXrj6BZ/zOq4os+UECPL+bWqt6OAC6DWS8Ln8GZRcMDjlJ4JC3FBDuHJdYaFWIdKNIBYmtZtK2MaMkNIw== + dependencies: + neo-async "^2.6.2" + sass@^1.86.0: version "1.86.0" resolved "https://registry.npmjs.org/sass/-/sass-1.86.0.tgz" @@ -2792,16 +6360,97 @@ scheduler@^0.25.0: resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0.tgz" integrity sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA== -semver@^6.3.1: +schema-utils@^3.0.0, schema-utils@^3.1.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" + integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +schema-utils@^4.0.0, schema-utils@^4.2.0, schema-utils@^4.3.0, schema-utils@^4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.3.2.tgz#0c10878bf4a73fd2b1dfd14b9462b26788c806ae" + integrity sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ== + dependencies: + "@types/json-schema" "^7.0.9" + ajv "^8.9.0" + ajv-formats "^2.1.1" + ajv-keywords "^5.1.0" + +select-hose@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== + +selfsigned@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.4.1.tgz#560d90565442a3ed35b674034cec4e95dceb4ae0" + integrity sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q== + dependencies: + "@types/node-forge" "^1.3.0" + node-forge "^1" + +semver@^6.0.0, semver@^6.3.1: version "6.3.1" resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.6.0, semver@^7.7.1: +semver@^7.3.4, semver@^7.3.5, semver@^7.5.4, semver@^7.6.0, semver@^7.7.1: version "7.7.1" resolved "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz" integrity sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA== +send@0.19.0: + version "0.19.0" + resolved "https://registry.yarnpkg.com/send/-/send-0.19.0.tgz#bbc5a388c8ea6c048967049dbeac0e4a3f09d7f8" + integrity sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw== + dependencies: + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "2.0.0" + mime "1.6.0" + ms "2.1.3" + on-finished "2.4.1" + range-parser "~1.2.1" + statuses "2.0.1" + +serialize-javascript@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" + integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== + dependencies: + randombytes "^2.1.0" + +serve-index@^1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" + integrity sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw== + dependencies: + accepts "~1.3.4" + batch "0.6.1" + debug "2.6.9" + escape-html "~1.0.3" + http-errors "~1.6.2" + mime-types "~2.1.17" + parseurl "~1.3.2" + +serve-static@1.16.2: + version "1.16.2" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.16.2.tgz#b6a5343da47f6bdd2673848bf45754941e803296" + integrity sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw== + dependencies: + encodeurl "~2.0.0" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.19.0" + set-cookie-parser@^2.6.0: version "2.7.1" resolved "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz" @@ -2838,6 +6487,23 @@ set-proto@^1.0.0: es-errors "^1.3.0" es-object-atoms "^1.0.0" +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" @@ -2850,6 +6516,11 @@ shebang-regex@^3.0.0: resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== +shell-quote@^1.8.1: + version "1.8.2" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.2.tgz#d2d83e057959d53ec261311e9e9b8f51dcb2934a" + integrity sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA== + side-channel-list@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz" @@ -2879,7 +6550,7 @@ side-channel-weakmap@^1.0.2: object-inspect "^1.13.3" side-channel-map "^1.0.1" -side-channel@^1.1.0: +side-channel@^1.0.6, side-channel@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz" integrity sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw== @@ -2890,16 +6561,95 @@ side-channel@^1.1.0: side-channel-map "^1.0.1" side-channel-weakmap "^1.0.2" +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +sockjs@^0.3.24: + version "0.3.24" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" + integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== + dependencies: + faye-websocket "^0.11.3" + uuid "^8.3.2" + websocket-driver "^0.7.4" + "source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz" integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== +source-map-support@~0.5.20: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0, source-map@~0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.7.4: + version "0.7.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" + integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== + +space-separated-tokens@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz" + integrity sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q== + +spdy-transport@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" + integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== + dependencies: + debug "^4.1.0" + detect-node "^2.0.4" + hpack.js "^2.1.6" + obuf "^1.1.2" + readable-stream "^3.0.6" + wbuf "^1.7.3" + +spdy@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" + integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== + dependencies: + debug "^4.1.0" + handle-thing "^2.0.0" + http-deceiver "^1.2.7" + select-hose "^2.0.0" + spdy-transport "^3.0.0" + stable-hash@^0.0.5: version "0.0.5" resolved "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.5.tgz" integrity sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA== +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +"statuses@>= 1.4.0 < 2": + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== + +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + string.prototype.matchall@^4.0.12: version "4.0.12" resolved "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz" @@ -2959,6 +6709,35 @@ string.prototype.trimstart@^1.0.8: define-properties "^1.2.1" es-object-atoms "^1.0.0" +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +stringify-entities@^4.0.0: + version "4.0.4" + resolved "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz" + integrity sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg== + dependencies: + character-entities-html4 "^2.0.0" + character-entities-legacy "^3.0.0" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" @@ -2969,6 +6748,32 @@ strip-json-comments@^3.1.1: resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== +strip-outer@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz" + integrity sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg== + dependencies: + escape-string-regexp "^1.0.2" + +style-loader@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-4.0.0.tgz#0ea96e468f43c69600011e0589cb05c44f3b17a5" + integrity sha512-1V4WqhhZZgjVAVJyt7TdDPZoPBPNHbekX4fWnCJL1yQukhCeZhJySUL+gL9y6sNdN95uEOS83Y55SqHcP7MzLA== + +style-to-js@^1.0.0: + version "1.1.16" + resolved "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.16.tgz" + integrity sha512-/Q6ld50hKYPH3d/r6nr117TZkHR0w0kGGIVfpG9N6D8NymRPM9RqCUv4pRpJ62E5DqOYx2AFpbZMyCPnjQCnOw== + dependencies: + style-to-object "1.0.8" + +style-to-object@1.0.8: + version "1.0.8" + resolved "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.8.tgz" + integrity sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g== + dependencies: + inline-style-parser "0.2.4" + supports-color@^7.1.0: version "7.2.0" resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" @@ -2976,6 +6781,13 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" @@ -2989,6 +6801,42 @@ synckit@^0.10.2: "@pkgr/core" "^0.2.0" tslib "^2.8.1" +tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0, tapable@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== + +terser-webpack-plugin@^5.3.11: + version "5.3.14" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz#9031d48e57ab27567f02ace85c7d690db66c3e06" + integrity sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw== + dependencies: + "@jridgewell/trace-mapping" "^0.3.25" + jest-worker "^27.4.5" + schema-utils "^4.3.0" + serialize-javascript "^6.0.2" + terser "^5.31.1" + +terser@^5.10.0, terser@^5.31.1: + version "5.39.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.39.0.tgz#0e82033ed57b3ddf1f96708d123cca717d86ca3a" + integrity sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw== + dependencies: + "@jridgewell/source-map" "^0.3.3" + acorn "^8.8.2" + commander "^2.20.0" + source-map-support "~0.5.20" + +thingies@^1.20.0: + version "1.21.0" + resolved "https://registry.yarnpkg.com/thingies/-/thingies-1.21.0.tgz#e80fbe58fd6fdaaab8fad9b67bd0a5c943c445c1" + integrity sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g== + +thunky@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" + integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== + tinyglobby@^0.2.12: version "0.2.12" resolved "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.12.tgz" @@ -3004,11 +6852,49 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +tree-dump@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/tree-dump/-/tree-dump-1.0.2.tgz#c460d5921caeb197bde71d0e9a7b479848c5b8ac" + integrity sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ== + +trim-lines@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz" + integrity sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg== + +trim-repeated@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz" + integrity sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg== + dependencies: + escape-string-regexp "^1.0.2" + +trough@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz" + integrity sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw== + ts-api-utils@^2.0.1: version "2.1.0" resolved "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz" integrity sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ== +ts-loader@^9.5.2: + version "9.5.2" + resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-9.5.2.tgz#1f3d7f4bb709b487aaa260e8f19b301635d08020" + integrity sha512-Qo4piXvOTWcMGIgRiuFa6nHNm+54HbYaZCKqc9eeZCLRy3XqafQgwX2F7mofrbJG3g7EEb+lkiR+z2Lic2s3Zw== + dependencies: + chalk "^4.1.0" + enhanced-resolve "^5.0.0" + micromatch "^4.0.0" + semver "^7.3.4" + source-map "^0.7.4" + ts-node@^10.9.2: version "10.9.2" resolved "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz" @@ -3038,9 +6924,9 @@ tsconfig-paths@^3.15.0: minimist "^1.2.6" strip-bom "^3.0.0" -tslib@^2.4.0, tslib@^2.8.1: +tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.4.0, tslib@^2.8.1: version "2.8.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz" integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== turbo-stream@2.4.0: @@ -3055,6 +6941,14 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" +type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + typed-array-buffer@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz" @@ -3100,6 +6994,11 @@ typed-array-length@^1.0.7: possible-typed-array-names "^1.0.0" reflect.getprototypeof "^1.0.6" +typescript-cookie@^1.0.6: + version "1.0.6" + resolved "https://registry.npmjs.org/typescript-cookie/-/typescript-cookie-1.0.6.tgz" + integrity sha512-s+BZr7/9BUG6Kg7jGGcOY/4XJcP+iZRFdF3q4FPTfRSP83ivLWF94OcH8PrzGmnS8Ab9qP7ENu/ikLwNFsIafA== + typescript-eslint@^8.24.1: version "8.28.0" resolved "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.28.0.tgz" @@ -3129,6 +7028,95 @@ undici-types@~6.20.0: resolved "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz" integrity sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg== +undici-types@~6.21.0: + version "6.21.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.21.0.tgz#691d00af3909be93a7faa13be61b3a5b50ef12cb" + integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ== + +unicode-canonical-property-names-ecmascript@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz#cb3173fe47ca743e228216e4a3ddc4c84d628cc2" + integrity sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg== + +unicode-match-property-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" + integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== + dependencies: + unicode-canonical-property-names-ecmascript "^2.0.0" + unicode-property-aliases-ecmascript "^2.0.0" + +unicode-match-property-value-ecmascript@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz#a0401aee72714598f739b68b104e4fe3a0cb3c71" + integrity sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg== + +unicode-property-aliases-ecmascript@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" + integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== + +unified@^11.0.0: + version "11.0.5" + resolved "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz" + integrity sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA== + dependencies: + "@types/unist" "^3.0.0" + bail "^2.0.0" + devlop "^1.0.0" + extend "^3.0.0" + is-plain-obj "^4.0.0" + trough "^2.0.0" + vfile "^6.0.0" + +unist-util-is@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz" + integrity sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw== + dependencies: + "@types/unist" "^3.0.0" + +unist-util-position@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz" + integrity sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA== + dependencies: + "@types/unist" "^3.0.0" + +unist-util-stringify-position@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz" + integrity sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ== + dependencies: + "@types/unist" "^3.0.0" + +unist-util-visit-parents@^6.0.0: + version "6.0.1" + resolved "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz" + integrity sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw== + dependencies: + "@types/unist" "^3.0.0" + unist-util-is "^6.0.0" + +unist-util-visit@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz" + integrity sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg== + dependencies: + "@types/unist" "^3.0.0" + unist-util-is "^6.0.0" + unist-util-visit-parents "^6.0.0" + +universalify@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz" + integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + unrs-resolver@^1.3.2: version "1.3.2" resolved "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.3.2.tgz" @@ -3150,7 +7138,7 @@ unrs-resolver@^1.3.2: "@unrs/resolver-binding-win32-ia32-msvc" "1.3.2" "@unrs/resolver-binding-win32-x64-msvc" "1.3.2" -update-browserslist-db@^1.1.1: +update-browserslist-db@^1.1.1, update-browserslist-db@^1.1.3: version "1.1.3" resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz" integrity sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw== @@ -3165,26 +7153,208 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" +url-loader@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-4.1.1.tgz#28505e905cae158cf07c92ca622d7f237e70a4e2" + integrity sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA== + dependencies: + loader-utils "^2.0.0" + mime-types "^2.1.27" + schema-utils "^3.0.0" + use-sync-external-store@^1.4.0: version "1.5.0" resolved "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz" integrity sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A== +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +utila@~0.4: + version "0.4.0" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" + integrity sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA== + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== + +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + v8-compile-cache-lib@^3.0.1: version "3.0.1" resolved "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz" integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== -vite@^6.2.0: - version "6.2.3" - resolved "https://registry.npmjs.org/vite/-/vite-6.2.3.tgz" - integrity sha512-IzwM54g4y9JA/xAeBPNaDXiBF8Jsgl3VBQ2YQ/wOY6fyW3xMdSoltIV3Bo59DErdqdE6RxUfv8W69DvUorE4Eg== - dependencies: - esbuild "^0.25.0" - postcss "^8.5.3" - rollup "^4.30.1" - optionalDependencies: - fsevents "~2.3.3" +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + +vfile-message@^4.0.0: + version "4.0.2" + resolved "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz" + integrity sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw== + dependencies: + "@types/unist" "^3.0.0" + unist-util-stringify-position "^4.0.0" + +vfile@^6.0.0: + version "6.0.3" + resolved "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz" + integrity sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q== + dependencies: + "@types/unist" "^3.0.0" + vfile-message "^4.0.0" + +watchpack@^2.4.1: + version "2.4.2" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.2.tgz#2feeaed67412e7c33184e5a79ca738fbd38564da" + integrity sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw== + dependencies: + glob-to-regexp "^0.4.1" + graceful-fs "^4.1.2" + +wbuf@^1.1.0, wbuf@^1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== + dependencies: + minimalistic-assert "^1.0.0" + +web-vitals@^4.2.4: + version "4.2.4" + resolved "https://registry.npmjs.org/web-vitals/-/web-vitals-4.2.4.tgz" + integrity sha512-r4DIlprAGwJ7YM11VZp4R884m0Vmgr6EAKe3P+kO0PPj3Unqyvv59rczf6UiGcb9Z8QxZVcqKNwv/g0WNdWwsw== + +webpack-cli@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-6.0.1.tgz#a1ce25da5ba077151afd73adfa12e208e5089207" + integrity sha512-MfwFQ6SfwinsUVi0rNJm7rHZ31GyTcpVE5pgVA3hwFRb7COD4TzjUUwhGWKfO50+xdc2MQPuEBBJoqIMGt3JDw== + dependencies: + "@discoveryjs/json-ext" "^0.6.1" + "@webpack-cli/configtest" "^3.0.1" + "@webpack-cli/info" "^3.0.1" + "@webpack-cli/serve" "^3.0.1" + colorette "^2.0.14" + commander "^12.1.0" + cross-spawn "^7.0.3" + envinfo "^7.14.0" + fastest-levenshtein "^1.0.12" + import-local "^3.0.2" + interpret "^3.1.1" + rechoir "^0.8.0" + webpack-merge "^6.0.1" + +webpack-dev-middleware@^7.4.2: + version "7.4.2" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-7.4.2.tgz#40e265a3d3d26795585cff8207630d3a8ff05877" + integrity sha512-xOO8n6eggxnwYpy1NlzUKpvrjfJTvae5/D6WOK0S2LSo7vjmo5gCM1DbLUmFqrMTJP+W/0YZNctm7jasWvLuBA== + dependencies: + colorette "^2.0.10" + memfs "^4.6.0" + mime-types "^2.1.31" + on-finished "^2.4.1" + range-parser "^1.2.1" + schema-utils "^4.0.0" + +webpack-dev-server@*, webpack-dev-server@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-5.2.1.tgz#049072d6e19cbda8cf600b9e364e6662d61218ba" + integrity sha512-ml/0HIj9NLpVKOMq+SuBPLHcmbG+TGIjXRHsYfZwocUBIqEvws8NnS/V9AFQ5FKP+tgn5adwVwRrTEpGL33QFQ== + dependencies: + "@types/bonjour" "^3.5.13" + "@types/connect-history-api-fallback" "^1.5.4" + "@types/express" "^4.17.21" + "@types/express-serve-static-core" "^4.17.21" + "@types/serve-index" "^1.9.4" + "@types/serve-static" "^1.15.5" + "@types/sockjs" "^0.3.36" + "@types/ws" "^8.5.10" + ansi-html-community "^0.0.8" + bonjour-service "^1.2.1" + chokidar "^3.6.0" + colorette "^2.0.10" + compression "^1.7.4" + connect-history-api-fallback "^2.0.0" + express "^4.21.2" + graceful-fs "^4.2.6" + http-proxy-middleware "^2.0.7" + ipaddr.js "^2.1.0" + launch-editor "^2.6.1" + open "^10.0.3" + p-retry "^6.2.0" + schema-utils "^4.2.0" + selfsigned "^2.4.1" + serve-index "^1.9.1" + sockjs "^0.3.24" + spdy "^4.0.2" + webpack-dev-middleware "^7.4.2" + ws "^8.18.0" + +webpack-merge@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-6.0.1.tgz#50c776868e080574725abc5869bd6e4ef0a16c6a" + integrity sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg== + dependencies: + clone-deep "^4.0.1" + flat "^5.0.2" + wildcard "^2.0.1" + +webpack-sources@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" + integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== + +webpack@^5, webpack@^5.99.8: + version "5.99.8" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.99.8.tgz#dd31a020b7c092d30c4c6d9a4edb95809e7f5946" + integrity sha512-lQ3CPiSTpfOnrEGeXDwoq5hIGzSjmwD72GdfVzF7CQAI7t47rJG9eDWvcEkEn3CUQymAElVvDg3YNTlCYj+qUQ== + dependencies: + "@types/eslint-scope" "^3.7.7" + "@types/estree" "^1.0.6" + "@types/json-schema" "^7.0.15" + "@webassemblyjs/ast" "^1.14.1" + "@webassemblyjs/wasm-edit" "^1.14.1" + "@webassemblyjs/wasm-parser" "^1.14.1" + acorn "^8.14.0" + browserslist "^4.24.0" + chrome-trace-event "^1.0.2" + enhanced-resolve "^5.17.1" + es-module-lexer "^1.2.1" + eslint-scope "5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.11" + json-parse-even-better-errors "^2.3.1" + loader-runner "^4.2.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + schema-utils "^4.3.2" + tapable "^2.1.1" + terser-webpack-plugin "^5.3.11" + watchpack "^2.4.1" + webpack-sources "^3.2.3" + +websocket-driver@>=0.5.1, websocket-driver@^0.7.4: + version "0.7.4" + resolved "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz" + integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== + dependencies: + http-parser-js ">=0.5.1" + safe-buffer ">=5.1.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.4" + resolved "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz" + integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== which-boxed-primitive@^1.1.0, which-boxed-primitive@^1.1.1: version "1.1.1" @@ -3246,16 +7416,58 @@ which@^2.0.1: dependencies: isexe "^2.0.0" +wildcard@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67" + integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== + word-wrap@^1.2.5: version "1.2.5" resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz" integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +ws@^8.18.0: + version "8.18.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.2.tgz#42738b2be57ced85f46154320aabb51ab003705a" + integrity sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + yallist@^3.0.2: version "3.1.1" - resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + +yargs@^17.7.2: + version "17.7.2" + resolved "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" + yn@3.1.1: version "3.1.1" resolved "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz" @@ -3265,3 +7477,8 @@ yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +zwitch@^2.0.0: + version "2.0.4" + resolved "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz" + integrity sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==