From 710ff674116c99bb24ae70a1ddf5f4ed9107c93f Mon Sep 17 00:00:00 2001 From: victor Date: Thu, 30 Jun 2022 17:10:09 -0400 Subject: [PATCH 01/47] feat(Init): Init app --- LICENSE | 24 - README.md | 86 - img/print-tutorial-1.png | Bin 179862 -> 0 bytes rick-and-morty-app/.gitignore | 24 + rick-and-morty-app/index.html | 13 + rick-and-morty-app/package-lock.json | 2331 +++++++++++++++++++++++++ rick-and-morty-app/package.json | 21 + rick-and-morty-app/src/App.tsx | 11 + rick-and-morty-app/src/index.css | 13 + rick-and-morty-app/src/main.tsx | 10 + rick-and-morty-app/src/vite-env.d.ts | 1 + rick-and-morty-app/tsconfig.json | 21 + rick-and-morty-app/tsconfig.node.json | 8 + rick-and-morty-app/vite.config.ts | 7 + 14 files changed, 2460 insertions(+), 110 deletions(-) delete mode 100644 LICENSE delete mode 100644 README.md delete mode 100644 img/print-tutorial-1.png create mode 100644 rick-and-morty-app/.gitignore create mode 100644 rick-and-morty-app/index.html create mode 100644 rick-and-morty-app/package-lock.json create mode 100644 rick-and-morty-app/package.json create mode 100644 rick-and-morty-app/src/App.tsx create mode 100644 rick-and-morty-app/src/index.css create mode 100644 rick-and-morty-app/src/main.tsx create mode 100644 rick-and-morty-app/src/vite-env.d.ts create mode 100644 rick-and-morty-app/tsconfig.json create mode 100644 rick-and-morty-app/tsconfig.node.json create mode 100644 rick-and-morty-app/vite.config.ts diff --git a/LICENSE b/LICENSE deleted file mode 100644 index fdddb29a..00000000 --- a/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -This is free and unencumbered software released into the public domain. - -Anyone is free to copy, modify, publish, use, compile, sell, or -distribute this software, either in source code form or as a compiled -binary, for any purpose, commercial or non-commercial, and by any -means. - -In jurisdictions that recognize copyright laws, the author or authors -of this software dedicate any and all copyright interest in the -software to the public domain. We make this dedication for the benefit -of the public at large and to the detriment of our heirs and -successors. We intend this dedication to be an overt act of -relinquishment in perpetuity of all present and future rights to this -software under copyright law. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR -OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. - -For more information, please refer to diff --git a/README.md b/README.md deleted file mode 100644 index 99f35d74..00000000 --- a/README.md +++ /dev/null @@ -1,86 +0,0 @@ -# frontend-test - -Desafio para Frontend Developer na DoroTech - -# Frontend na DoroTech - -Somos uma empresa com clientes que atuam em vários segmentos do mercado, com diferentes tecnologias, culturas e desafios. - -Gostamos de compor nossos times com profissionais multidisciplinares, que tenham alta capacidade de aprendizado, sejam detalhistas, resilientes, questionadores e curiosos. -Você, como **Frontend Developer**, será o responsável por implementar, dar manutenção, aplicar correções e propor soluções em projetos de software. - -## Orientações -Para executar o desafio de **Frontend Developer**, você **deverá utilizar framework React**, seguindo o [passo a passo](https://github.com/dorotech/frontend-test#etapas) para a execução, atendendo aos [critérios de aceitação](https://github.com/dorotech/frontend-test#crit%C3%A9rios-de-aceita%C3%A7%C3%A3o). - -## Desafio -Nossa equipe é apaixonada por **Rick and Morty**, o seu desafio será criar uma aplicação utilizando a API pública da série [https://rickandmortyapi.com/](https://rickandmortyapi.com/), para exibir a lista de personagens. -Veja a documentação [https://rickandmortyapi.com/documentation/#rest](https://rickandmortyapi.com/documentation/#rest). - -Os requisitos da aplicação: - -- Como usuário, desejo visualizar na página inicial, uma lista de 20 personagens, contendo **foto**, **nome** e **status**. -- Como usuário, desejo clicar em um personagem da lista, para visualizar informações detalhadas. -- Como usuário, desejo filtrar os personagens por **nome**, **espécie** e **status**. -- Seja criativo no layout: filtros, icones e menus são bem vindos. - -## Etapas - -#### 1 - Fazer um fork desse repositório - -![https://github.com/dorotech/frontend-test/raw/main/img/print-tutorial-1.png](https://github.com/dorotech/frontend-test/raw/main/img/print-tutorial-1.png) - - -#### 2 - Criar um branch com o seu primeiro e último nome -```bash -git checkout -b joao-silva -``` - -#### 3 - Escreva a documentação da sua aplicação -Você deve, substituir o conteúdo do arquivo **README.md** e escrever a documentação da sua aplicação, com os seguintes tópicos: -- **Projeto**: Descreva o projeto e como você o executou. Seja objetivo. -- **Tecnologias**: Descreva quais tecnologias foram utilizadas, enumerando versões (se necessário) e os links para suas documentações, qual guia de estilos de código você utilizou com o link para a sua documentação, quais bibliotecas instalou e porque. -- **Como rodar**: Descreva como iniciar a sua aplicação -- **Link** para acessar o projeto. - -#### 4 - Faça uma Pull Request -Após implementada a solução, crie uma [pull request](https://github.com/dorotech/frontend-test/pulls) com o seu projeto para esse repositório, avise o recrutador. - -## Critérios de Aceitação -Para que seu teste tenha o mínimo necessário que atenda aos requisitos esperados, ele deve: -- Atender ao que foi proposto no [Desafio](https://github.com/dorotech/frontend-test#Desafio). -- Utilização de pré-processadores CSS (Sass, Less). -- Interfaces responsivas para desktop, tablets e smartphones. -- Compatibilidade entre browsers. -- Padrão de escrita CSS (BEM, OOCSS, SMACSS). -- Código TS escrito com base em algum guia de estilos: [AirBnB Standards](https://github.com/airbnb/javascript) ou [TypeScript Google Guide](https://google.github.io/styleguide/tsguide.html). -- Utilizar padrões semânticos em mensagens de commit. (Gostamos do padrão de commits do repositório [AngularJS](http://karma-runner.github.io/3.0/dev/git-commit-msg.html)) -- Projeto feito upload: [Firebase hosting](https://firebase.google.com/docs/hosting/quickstart?hl=pt-br) ou [GitHub Pages](https://pages.github.com/). -- Caso você nao consiga completar tudo e tenha algum receio, não se preocupe, iremos avaliar o que foi entregue, mesmo com pendências. -- O diferencial para este desafio: layout, ux e ui, bem como implementação de boas práticas de segurança, performance e/ou estrutura. - - -## Dicas e Informações Valiosas - -#### O que gostaríamos de ver em seu teste: -- Upload do projeto em um seviço de hospedagem. -- Convenção de nome em classes, objetos, variáveis, métodos e etc. -- layout encantador -- Faça commits regulares. Eles são melhores do que um commit gigantesco. Gostaríamos de ver commits organizados e padronizados, então capriche neles! -- uso de libs como bootstrap, material -- Hooks é bem-vindo. -- Animações, coidado com UX e Sobras. -- Projeto feito usando TypeScript -- **Bônus** Dark Mode, implementação sendo um botão que mude o padrão de cores da pagina para escuro e claro com 1 click. -- **Bônus 2** QueryParams para buscas, quando uma busca e realizada, exibir na url o parametro da busca realizado, caso recaregar a pagina com a url, usar o parametro para preencher os itens da pagina. - -**Observação:** Nenhum dos itens acima é obrigatório. - -#### O que o seu Teste não deve ter: -- Saber que não foi você quem implementou o projeto. -- Varias bibliotecas instaladas sem uso. -- Falta de organização de código. -- Falta de documentação. -- Nome de variáveis sem sentido ou padrão de nomes. -- Histórico de commits desorganizado e despadronizado. - -## Boa Sorte!! diff --git a/img/print-tutorial-1.png b/img/print-tutorial-1.png deleted file mode 100644 index d637732248deee21fc17c5811e81afc6274ca4ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 179862 zcmY&<1ymeM*KKeJ76`7v2@ou}y9Xa!g9RtR;O-%~yX!Cv79hC0%K*U%J~(6`_~U-} z|K5B5S!-6W?y0V>E;*;p-n+l4tIA`)CVTzr)hld81sTm(uh6t#y+YrAI%SUd?~4v0cb5y%{?|a^ zzZ@batmljs6wsxlrSXV}tlO1jkbkZ@5fBj-{rEw!ySrOaQ87Ii6?Jf616!=2MgqzF zFXQDT_y2Eg{~kdR2!Q`}rO1G@KYKH{VnSMH@lu77QFx8G(M<2-odX(`()%9 z8h&AAPoRDuD2lA|_`mghnmB^PCiky;wl5AKMMY9-bhNZZd+`VWAr}2=9RUg)N(HOU zl>a^>P7Yr^wHq{d7`Af4SB8&=r{UJ8KtKtg_aY-AiinCrr&PD%O#Q#5buJy0^S+KW zuzT+f*ciV&bK4#(#uacuU|_!Wa}KPbD?VV@O9%OCqskRS{Rm+ zb;F8&a}y8~7ykGm;~yXx>v^}ak`(Z+KZu3b9$zJuMJ=ujrfRVKDdc~e5NGT+IpZ!u z6^{c_60Ulw9s862PSup3h0I|lNx0bB?-_OoVJm%8=oCft_*x4yFcaZBX{DiCLaJ#* z5qG)IMD*pQ>(5*(X4VmTTaC`Tl(bL;fL#+kU8Pbd&N+Qkx&XT(X<1F1y1m4<@)KE-9AL~aSXvuRF7A+qK+T%2~yJNhONVY zeGVS8kND*fKDHg+07hnLA!X+HFg@mgAwKXWfzvRGAm^^g(9#N^3o`67f7L1I-j&qJMDvY?x=ga~SUL&9 zLMuaF-aM_hug|>UR}9zxYlyDf7cD5`FWEsC#~n#G*^dEV*jLJ_VQ0jDl4`qqZff3- zc<5p;jCh$DG`#)|l^R_rX_^D0&Zp_7H9EAUbm(GxWpA~-MMs1-#^3^JZi3E>#!m*)dR-k> zx204~7`Z(jFye=*Yht^Bu0PCQ`kT^rQ-GenpX6oT{A)!?N%#V}sutj{$Wrh335b5r zKKLQu#%$)=ZUkjyRZu6SSDl{dRG%x#$n5%7KD{ilpGNEi1Ox}~+AKMgHKTcQi6|&m z!T8$aupD$`g%i7<%~RiLK>3!}MX^~#;D}w*Z&^%3Hd18cdXUL1@lV!2V{QP(a$4xf z;Bb)|r$q=Q{@b^BgoNSK)9Rwekg@i55r>UV$~KP^DO=mhJQH|Fto>OkaZ*OiG=zz^ z#4%8>@3$F7bkLMTuwng63jbndWDihS_OBlu$n^vG+>mQ z@VkBnXWb2upqt3JUX|gr> z2WHQfEs#rJrBH`a6?UK{f!Se`RL1J}(1)Zd)J`7E*-%0DBY% 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

h9%i6o^)5bnp;>rt8=i?= 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

1NFFpH+A6yCCYUL20Y6`S^BfK48BX^;sZ^2P|jK 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 diff --git a/rick-and-morty-app/.gitignore b/rick-and-morty-app/.gitignore new file mode 100644 index 00000000..a547bf36 --- /dev/null +++ b/rick-and-morty-app/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/rick-and-morty-app/index.html b/rick-and-morty-app/index.html new file mode 100644 index 00000000..38f38611 --- /dev/null +++ b/rick-and-morty-app/index.html @@ -0,0 +1,13 @@ + + + + + + + Vite App + + +

+ + + diff --git a/rick-and-morty-app/package-lock.json b/rick-and-morty-app/package-lock.json new file mode 100644 index 00000000..3e9adb26 --- /dev/null +++ b/rick-and-morty-app/package-lock.json @@ -0,0 +1,2331 @@ +{ + "name": "rick-and-morty-app", + "version": "0.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "rick-and-morty-app", + "version": "0.0.0", + "dependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + }, + "devDependencies": { + "@types/react": "^18.0.0", + "@types/react-dom": "^18.0.0", + "@vitejs/plugin-react": "^1.3.0", + "typescript": "^4.6.3", + "vite": "^2.9.9" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.6.tgz", + "integrity": "sha512-tzulrgDT0QD6U7BJ4TKVk2SDDg7wlP39P9yAx1RfLy7vP/7rsDRlWVfbWxElslu56+r7QOhB2NSDsabYYruoZQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.6.tgz", + "integrity": "sha512-cQbWBpxcbbs/IUredIPkHiAGULLV8iwgNRMFzvbhEXISp4f3rUUXE5+TIw6KwUWUR3DwyI6gmBRnmAtYaWehwQ==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.6", + "@babel/helper-compilation-targets": "^7.18.6", + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helpers": "^7.18.6", + "@babel/parser": "^7.18.6", + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.6", + "@babel/types": "^7.18.6", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.18.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.7.tgz", + "integrity": "sha512-shck+7VLlY72a2w9c3zYWuE1pwOKEiQHV7GTUbSnhyl5eu3i04t30tBY82ZRWrDfo3gkakCFtevExnxbkf2a3A==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.7", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.6.tgz", + "integrity": "sha512-vFjbfhNCzqdeAtZflUFrG5YIFqGTqsctrtkZ1D/NB0mDW9TwW3GmmUepYY4G9wCET5rY5ugz4OGTcLd614IzQg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.18.6", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.20.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.6.tgz", + "integrity": "sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.6.tgz", + "integrity": "sha512-0mWMxV1aC97dhjCah5U5Ua7668r5ZmSC2DLfH2EZnf9c3/dHZKiFa5pRLMH5tjSl471tY6496ZWk/kjNONBxhw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.18.6", + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.6.tgz", + "integrity": "sha512-L//phhB4al5uucwzlimruukHB3jRd5JGClwRMD/ROrVjXfLqovYnvQrK/JK36WYyVwGGO7OD3kMyVTjx+WVPhw==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.6", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.18.6", + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.6", + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.6.tgz", + "integrity": "sha512-gvZnm1YAAxh13eJdkb9EWHBnF3eAub3XTLCZEehHT2kWxiKVRL64+ae5Y6Ivne0mVHmMYKT+xWgZO+gQhuLUBg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", + "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", + "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.6.tgz", + "integrity": "sha512-vzSiiqbQOghPngUYt/zWGvK3LAsPhz55vc9XNN0xAl2gV4ieShI2OQli5duxWHD+72PZPTKAcfcZDE1Cwc5zsQ==", + "dev": true, + "dependencies": { + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.6", + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.6.tgz", + "integrity": "sha512-uQVSa9jJUe/G/304lXspfWVpKpK4euFLgGiMQFOCpM/bgcAdeoHwi/OQz23O9GK2osz26ZiXRRV9aV+Yl1O8tw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", + "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.18.6.tgz", + "integrity": "sha512-Mz7xMPxoy9kPS/JScj6fJs03TZ/fZ1dJPlMjRAgTaxaS0fUBk8FV/A2rRgfPsVCZqALNwMexD+0Uaf5zlcKPpw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-jsx": "^7.18.6", + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz", + "integrity": "sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==", + "dev": true, + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.18.6.tgz", + "integrity": "sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.18.6.tgz", + "integrity": "sha512-utZmlASneDfdaMh0m/WausbjUjEdGrQJz0vFK93d7wD3xf5wBtX219+q6IlCNZeguIcxS2f/CvLZrlLSvSHQXw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.6.tgz", + "integrity": "sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.6", + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.6.tgz", + "integrity": "sha512-zS/OKyqmD7lslOtFqbscH6gMLFYOfG1YPqCKfAW5KrTeolKqvB8UelR49Fpr6y93kYkW2Ik00mT1LOGiAGvizw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.6", + "@babel/helper-function-name": "^7.18.6", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.18.6", + "@babel/types": "^7.18.6", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.18.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.7.tgz", + "integrity": "sha512-QG3yxTcTIBoAcQmkCs+wAPYZhu7Dk9rXKacINfNbdJDNERTbLQbHGyVG8q/YGMPeCJRIhSY0+fTc5+xuh6WPSQ==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.8.tgz", + "integrity": "sha512-YK5G9LaddzGbcucK4c8h5tWFmMPBvRZ/uyWmN1/SbBdIvqGUdWGkJ5BAaccgs6XbzVLsqbPJrBSFwKv3kT9i7w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.14", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", + "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "dev": true, + "dependencies": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/@types/prop-types": { + "version": "15.7.5", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", + "dev": true + }, + "node_modules/@types/react": { + "version": "18.0.14", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.14.tgz", + "integrity": "sha512-x4gGuASSiWmo0xjDLpm5mPb52syZHJx02VKbqUKdLmKtAwIh63XClGsiTI1K6DO5q7ox4xAsQrU+Gl3+gGXF9Q==", + "dev": true, + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.0.5", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.5.tgz", + "integrity": "sha512-OWPWTUrY/NIrjsAPkAk1wW9LZeIjSvkXRhclsFO8CZcZGCOg2G0YZy4ft+rOyYxy8B7ui5iZzi9OkDebZ7/QSA==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/scheduler": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", + "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==", + "dev": true + }, + "node_modules/@vitejs/plugin-react": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-1.3.2.tgz", + "integrity": "sha512-aurBNmMo0kz1O4qRoY+FM4epSA39y3ShWGuqfLRA/3z0oEJAdtoSfgA3aO98/PCCHAqMaduLxIxErWrVKIFzXA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.17.10", + "@babel/plugin-transform-react-jsx": "^7.17.3", + "@babel/plugin-transform-react-jsx-development": "^7.16.7", + "@babel/plugin-transform-react-jsx-self": "^7.16.7", + "@babel/plugin-transform-react-jsx-source": "^7.16.7", + "@rollup/pluginutils": "^4.2.1", + "react-refresh": "^0.13.0", + "resolve": "^1.22.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/browserslist": { + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.1.tgz", + "integrity": "sha512-Nq8MFCSrnJXSc88yliwlzQe3qNe3VntIjhsArW9IJOEPSHNx23FalwApUVbzAWABLhYJJ7y8AynWI/XM8OdfjQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001359", + "electron-to-chromium": "^1.4.172", + "node-releases": "^2.0.5", + "update-browserslist-db": "^1.0.4" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001361", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001361.tgz", + "integrity": "sha512-ybhCrjNtkFji1/Wto6SSJKkWk6kZgVQsDq5QI83SafsF6FXv2JB4df9eEdH6g8sdGgqTXrFLjAxqBGgYoU3azQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/csstype": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz", + "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==", + "dev": true + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.174", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.174.tgz", + "integrity": "sha512-JER+w+9MV2MBVFOXxP036bLlNOnzbYAWrWU8sNUwoOO69T3w4564WhM5H5atd8VVS8U4vpi0i0kdoYzm1NPQgQ==", + "dev": true + }, + "node_modules/esbuild": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.48.tgz", + "integrity": "sha512-w6N1Yn5MtqK2U1/WZTX9ZqUVb8IOLZkZ5AdHkT6x3cHDMVsYWC7WPdiLmx19w3i4Rwzy5LqsEMtVihG3e4rFzA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "esbuild-android-64": "0.14.48", + "esbuild-android-arm64": "0.14.48", + "esbuild-darwin-64": "0.14.48", + "esbuild-darwin-arm64": "0.14.48", + "esbuild-freebsd-64": "0.14.48", + "esbuild-freebsd-arm64": "0.14.48", + "esbuild-linux-32": "0.14.48", + "esbuild-linux-64": "0.14.48", + "esbuild-linux-arm": "0.14.48", + "esbuild-linux-arm64": "0.14.48", + "esbuild-linux-mips64le": "0.14.48", + "esbuild-linux-ppc64le": "0.14.48", + "esbuild-linux-riscv64": "0.14.48", + "esbuild-linux-s390x": "0.14.48", + "esbuild-netbsd-64": "0.14.48", + "esbuild-openbsd-64": "0.14.48", + "esbuild-sunos-64": "0.14.48", + "esbuild-windows-32": "0.14.48", + "esbuild-windows-64": "0.14.48", + "esbuild-windows-arm64": "0.14.48" + } + }, + "node_modules/esbuild-android-64": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.48.tgz", + "integrity": "sha512-3aMjboap/kqwCUpGWIjsk20TtxVoKck8/4Tu19rubh7t5Ra0Yrpg30Mt1QXXlipOazrEceGeWurXKeFJgkPOUg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-android-arm64": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.48.tgz", + "integrity": "sha512-vptI3K0wGALiDq+EvRuZotZrJqkYkN5282iAfcffjI5lmGG9G1ta/CIVauhY42MBXwEgDJkweiDcDMRLzBZC4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-64": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.48.tgz", + "integrity": "sha512-gGQZa4+hab2Va/Zww94YbshLuWteyKGD3+EsVon8EWTWhnHFRm5N9NbALNbwi/7hQ/hM1Zm4FuHg+k6BLsl5UA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-arm64": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.48.tgz", + "integrity": "sha512-bFjnNEXjhZT+IZ8RvRGNJthLWNHV5JkCtuOFOnjvo5pC0sk2/QVk0Qc06g2PV3J0TcU6kaPC3RN9yy9w2PSLEA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-64": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.48.tgz", + "integrity": "sha512-1NOlwRxmOsnPcWOGTB10JKAkYSb2nue0oM1AfHWunW/mv3wERfJmnYlGzL3UAOIUXZqW8GeA2mv+QGwq7DToqA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-arm64": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.48.tgz", + "integrity": "sha512-gXqKdO8wabVcYtluAbikDH2jhXp+Klq5oCD5qbVyUG6tFiGhrC9oczKq3vIrrtwcxDQqK6+HDYK8Zrd4bCA9Gw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-32": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.48.tgz", + "integrity": "sha512-ghGyDfS289z/LReZQUuuKq9KlTiTspxL8SITBFQFAFRA/IkIvDpnZnCAKTCjGXAmUqroMQfKJXMxyjJA69c/nQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-64": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.48.tgz", + "integrity": "sha512-vni3p/gppLMVZLghI7oMqbOZdGmLbbKR23XFARKnszCIBpEMEDxOMNIKPmMItQrmH/iJrL1z8Jt2nynY0bE1ug==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.48.tgz", + "integrity": "sha512-+VfSV7Akh1XUiDNXgqgY1cUP1i2vjI+BmlyXRfVz5AfV3jbpde8JTs5Q9sYgaoq5cWfuKfoZB/QkGOI+QcL1Tw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm64": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.48.tgz", + "integrity": "sha512-3CFsOlpoxlKPRevEHq8aAntgYGYkE1N9yRYAcPyng/p4Wyx0tPR5SBYsxLKcgPB9mR8chHEhtWYz6EZ+H199Zw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-mips64le": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.48.tgz", + "integrity": "sha512-cs0uOiRlPp6ymknDnjajCgvDMSsLw5mST2UXh+ZIrXTj2Ifyf2aAP3Iw4DiqgnyYLV2O/v/yWBJx+WfmKEpNLA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-ppc64le": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.48.tgz", + "integrity": "sha512-+2F0vJMkuI0Wie/wcSPDCqXvSFEELH7Jubxb7mpWrA/4NpT+/byjxDz0gG6R1WJoeDefcrMfpBx4GFNN1JQorQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-riscv64": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.48.tgz", + "integrity": "sha512-BmaK/GfEE+5F2/QDrIXteFGKnVHGxlnK9MjdVKMTfvtmudjY3k2t8NtlY4qemKSizc+QwyombGWTBDc76rxePA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-s390x": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.48.tgz", + "integrity": "sha512-tndw/0B9jiCL+KWKo0TSMaUm5UWBLsfCKVdbfMlb3d5LeV9WbijZ8Ordia8SAYv38VSJWOEt6eDCdOx8LqkC4g==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-netbsd-64": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.48.tgz", + "integrity": "sha512-V9hgXfwf/T901Lr1wkOfoevtyNkrxmMcRHyticybBUHookznipMOHoF41Al68QBsqBxnITCEpjjd4yAos7z9Tw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-openbsd-64": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.48.tgz", + "integrity": "sha512-+IHf4JcbnnBl4T52egorXMatil/za0awqzg2Vy6FBgPcBpisDWT2sVz/tNdrK9kAqj+GZG/jZdrOkj7wsrNTKA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-sunos-64": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.48.tgz", + "integrity": "sha512-77m8bsr5wOpOWbGi9KSqDphcq6dFeJyun8TA+12JW/GAjyfTwVtOnN8DOt6DSPUfEV+ltVMNqtXUeTeMAxl5KA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-32": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.48.tgz", + "integrity": "sha512-EPgRuTPP8vK9maxpTGDe5lSoIBHGKO/AuxDncg5O3NkrPeLNdvvK8oywB0zGaAZXxYWfNNSHskvvDgmfVTguhg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-64": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.48.tgz", + "integrity": "sha512-YmpXjdT1q0b8ictSdGwH3M8VCoqPpK1/UArze3X199w6u8hUx3V8BhAi1WjbsfDYRBanVVtduAhh2sirImtAvA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-arm64": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.48.tgz", + "integrity": "sha512-HHaOMCsCXp0rz5BT2crTka6MPWVno121NKApsGs/OIW5QC0ggC69YMGs1aJct9/9FSUF4A1xNE/cLvgB5svR4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-releases": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz", + "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==", + "dev": true + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.4.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", + "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "node_modules/react-refresh": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.13.0.tgz", + "integrity": "sha512-XP8A9BT0CpRBD+NYLLeIhld/RqG9+gktUjW1FkE+Vm7OCinbG1SshcK5tb9ls4kzvjZr9mOQc7HYgBngEyPAXg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/rollup": { + "version": "2.75.7", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.75.7.tgz", + "integrity": "sha512-VSE1iy0eaAYNCxEXaleThdFXqZJ42qDBatAwrfnPlENEZ8erQ+0LYX4JXOLPceWfZpV1VtZwZ3dFCuOZiSyFtQ==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/typescript": { + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", + "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz", + "integrity": "sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/vite": { + "version": "2.9.13", + "resolved": "https://registry.npmjs.org/vite/-/vite-2.9.13.tgz", + "integrity": "sha512-AsOBAaT0AD7Mhe8DuK+/kE4aWYFMx/i0ZNi98hJclxb4e0OhQcZYUrvLjIaQ8e59Ui7txcvKMiJC1yftqpQoDw==", + "dev": true, + "dependencies": { + "esbuild": "^0.14.27", + "postcss": "^8.4.13", + "resolve": "^1.22.0", + "rollup": "^2.59.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": ">=12.2.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "less": "*", + "sass": "*", + "stylus": "*" + }, + "peerDependenciesMeta": { + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + } + } + } + }, + "dependencies": { + "@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "requires": { + "@babel/highlight": "^7.18.6" + } + }, + "@babel/compat-data": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.6.tgz", + "integrity": "sha512-tzulrgDT0QD6U7BJ4TKVk2SDDg7wlP39P9yAx1RfLy7vP/7rsDRlWVfbWxElslu56+r7QOhB2NSDsabYYruoZQ==", + "dev": true + }, + "@babel/core": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.6.tgz", + "integrity": "sha512-cQbWBpxcbbs/IUredIPkHiAGULLV8iwgNRMFzvbhEXISp4f3rUUXE5+TIw6KwUWUR3DwyI6gmBRnmAtYaWehwQ==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.6", + "@babel/helper-compilation-targets": "^7.18.6", + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helpers": "^7.18.6", + "@babel/parser": "^7.18.6", + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.6", + "@babel/types": "^7.18.6", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + } + }, + "@babel/generator": { + "version": "7.18.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.7.tgz", + "integrity": "sha512-shck+7VLlY72a2w9c3zYWuE1pwOKEiQHV7GTUbSnhyl5eu3i04t30tBY82ZRWrDfo3gkakCFtevExnxbkf2a3A==", + "dev": true, + "requires": { + "@babel/types": "^7.18.7", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.6.tgz", + "integrity": "sha512-vFjbfhNCzqdeAtZflUFrG5YIFqGTqsctrtkZ1D/NB0mDW9TwW3GmmUepYY4G9wCET5rY5ugz4OGTcLd614IzQg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.18.6", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.20.2", + "semver": "^6.3.0" + } + }, + "@babel/helper-environment-visitor": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.6.tgz", + "integrity": "sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q==", + "dev": true + }, + "@babel/helper-function-name": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.6.tgz", + "integrity": "sha512-0mWMxV1aC97dhjCah5U5Ua7668r5ZmSC2DLfH2EZnf9c3/dHZKiFa5pRLMH5tjSl471tY6496ZWk/kjNONBxhw==", + "dev": true, + "requires": { + "@babel/template": "^7.18.6", + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-module-transforms": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.6.tgz", + "integrity": "sha512-L//phhB4al5uucwzlimruukHB3jRd5JGClwRMD/ROrVjXfLqovYnvQrK/JK36WYyVwGGO7OD3kMyVTjx+WVPhw==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.18.6", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.18.6", + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.6", + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.6.tgz", + "integrity": "sha512-gvZnm1YAAxh13eJdkb9EWHBnF3eAub3XTLCZEehHT2kWxiKVRL64+ae5Y6Ivne0mVHmMYKT+xWgZO+gQhuLUBg==", + "dev": true + }, + "@babel/helper-simple-access": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", + "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", + "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "dev": true + }, + "@babel/helpers": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.6.tgz", + "integrity": "sha512-vzSiiqbQOghPngUYt/zWGvK3LAsPhz55vc9XNN0xAl2gV4ieShI2OQli5duxWHD+72PZPTKAcfcZDE1Cwc5zsQ==", + "dev": true, + "requires": { + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.6", + "@babel/types": "^7.18.6" + } + }, + "@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.6.tgz", + "integrity": "sha512-uQVSa9jJUe/G/304lXspfWVpKpK4euFLgGiMQFOCpM/bgcAdeoHwi/OQz23O9GK2osz26ZiXRRV9aV+Yl1O8tw==", + "dev": true + }, + "@babel/plugin-syntax-jsx": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", + "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-react-jsx": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.18.6.tgz", + "integrity": "sha512-Mz7xMPxoy9kPS/JScj6fJs03TZ/fZ1dJPlMjRAgTaxaS0fUBk8FV/A2rRgfPsVCZqALNwMexD+0Uaf5zlcKPpw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-jsx": "^7.18.6", + "@babel/types": "^7.18.6" + } + }, + "@babel/plugin-transform-react-jsx-development": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz", + "integrity": "sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==", + "dev": true, + "requires": { + "@babel/plugin-transform-react-jsx": "^7.18.6" + } + }, + "@babel/plugin-transform-react-jsx-self": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.18.6.tgz", + "integrity": "sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-react-jsx-source": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.18.6.tgz", + "integrity": "sha512-utZmlASneDfdaMh0m/WausbjUjEdGrQJz0vFK93d7wD3xf5wBtX219+q6IlCNZeguIcxS2f/CvLZrlLSvSHQXw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/template": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.6.tgz", + "integrity": "sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.6", + "@babel/types": "^7.18.6" + } + }, + "@babel/traverse": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.6.tgz", + "integrity": "sha512-zS/OKyqmD7lslOtFqbscH6gMLFYOfG1YPqCKfAW5KrTeolKqvB8UelR49Fpr6y93kYkW2Ik00mT1LOGiAGvizw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.6", + "@babel/helper-function-name": "^7.18.6", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.18.6", + "@babel/types": "^7.18.6", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.18.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.7.tgz", + "integrity": "sha512-QG3yxTcTIBoAcQmkCs+wAPYZhu7Dk9rXKacINfNbdJDNERTbLQbHGyVG8q/YGMPeCJRIhSY0+fTc5+xuh6WPSQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.18.6", + "to-fast-properties": "^2.0.0" + } + }, + "@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.8.tgz", + "integrity": "sha512-YK5G9LaddzGbcucK4c8h5tWFmMPBvRZ/uyWmN1/SbBdIvqGUdWGkJ5BAaccgs6XbzVLsqbPJrBSFwKv3kT9i7w==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.14", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", + "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "dev": true, + "requires": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + } + }, + "@types/prop-types": { + "version": "15.7.5", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", + "dev": true + }, + "@types/react": { + "version": "18.0.14", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.14.tgz", + "integrity": "sha512-x4gGuASSiWmo0xjDLpm5mPb52syZHJx02VKbqUKdLmKtAwIh63XClGsiTI1K6DO5q7ox4xAsQrU+Gl3+gGXF9Q==", + "dev": true, + "requires": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "@types/react-dom": { + "version": "18.0.5", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.5.tgz", + "integrity": "sha512-OWPWTUrY/NIrjsAPkAk1wW9LZeIjSvkXRhclsFO8CZcZGCOg2G0YZy4ft+rOyYxy8B7ui5iZzi9OkDebZ7/QSA==", + "dev": true, + "requires": { + "@types/react": "*" + } + }, + "@types/scheduler": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", + "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==", + "dev": true + }, + "@vitejs/plugin-react": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-1.3.2.tgz", + "integrity": "sha512-aurBNmMo0kz1O4qRoY+FM4epSA39y3ShWGuqfLRA/3z0oEJAdtoSfgA3aO98/PCCHAqMaduLxIxErWrVKIFzXA==", + "dev": true, + "requires": { + "@babel/core": "^7.17.10", + "@babel/plugin-transform-react-jsx": "^7.17.3", + "@babel/plugin-transform-react-jsx-development": "^7.16.7", + "@babel/plugin-transform-react-jsx-self": "^7.16.7", + "@babel/plugin-transform-react-jsx-source": "^7.16.7", + "@rollup/pluginutils": "^4.2.1", + "react-refresh": "^0.13.0", + "resolve": "^1.22.0" + } + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "browserslist": { + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.1.tgz", + "integrity": "sha512-Nq8MFCSrnJXSc88yliwlzQe3qNe3VntIjhsArW9IJOEPSHNx23FalwApUVbzAWABLhYJJ7y8AynWI/XM8OdfjQ==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001359", + "electron-to-chromium": "^1.4.172", + "node-releases": "^2.0.5", + "update-browserslist-db": "^1.0.4" + } + }, + "caniuse-lite": { + "version": "1.0.30001361", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001361.tgz", + "integrity": "sha512-ybhCrjNtkFji1/Wto6SSJKkWk6kZgVQsDq5QI83SafsF6FXv2JB4df9eEdH6g8sdGgqTXrFLjAxqBGgYoU3azQ==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "csstype": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz", + "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==", + "dev": true + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "electron-to-chromium": { + "version": "1.4.174", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.174.tgz", + "integrity": "sha512-JER+w+9MV2MBVFOXxP036bLlNOnzbYAWrWU8sNUwoOO69T3w4564WhM5H5atd8VVS8U4vpi0i0kdoYzm1NPQgQ==", + "dev": true + }, + "esbuild": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.48.tgz", + "integrity": "sha512-w6N1Yn5MtqK2U1/WZTX9ZqUVb8IOLZkZ5AdHkT6x3cHDMVsYWC7WPdiLmx19w3i4Rwzy5LqsEMtVihG3e4rFzA==", + "dev": true, + "requires": { + "esbuild-android-64": "0.14.48", + "esbuild-android-arm64": "0.14.48", + "esbuild-darwin-64": "0.14.48", + "esbuild-darwin-arm64": "0.14.48", + "esbuild-freebsd-64": "0.14.48", + "esbuild-freebsd-arm64": "0.14.48", + "esbuild-linux-32": "0.14.48", + "esbuild-linux-64": "0.14.48", + "esbuild-linux-arm": "0.14.48", + "esbuild-linux-arm64": "0.14.48", + "esbuild-linux-mips64le": "0.14.48", + "esbuild-linux-ppc64le": "0.14.48", + "esbuild-linux-riscv64": "0.14.48", + "esbuild-linux-s390x": "0.14.48", + "esbuild-netbsd-64": "0.14.48", + "esbuild-openbsd-64": "0.14.48", + "esbuild-sunos-64": "0.14.48", + "esbuild-windows-32": "0.14.48", + "esbuild-windows-64": "0.14.48", + "esbuild-windows-arm64": "0.14.48" + } + }, + "esbuild-android-64": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.48.tgz", + "integrity": "sha512-3aMjboap/kqwCUpGWIjsk20TtxVoKck8/4Tu19rubh7t5Ra0Yrpg30Mt1QXXlipOazrEceGeWurXKeFJgkPOUg==", + "dev": true, + "optional": true + }, + "esbuild-android-arm64": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.48.tgz", + "integrity": "sha512-vptI3K0wGALiDq+EvRuZotZrJqkYkN5282iAfcffjI5lmGG9G1ta/CIVauhY42MBXwEgDJkweiDcDMRLzBZC4g==", + "dev": true, + "optional": true + }, + "esbuild-darwin-64": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.48.tgz", + "integrity": "sha512-gGQZa4+hab2Va/Zww94YbshLuWteyKGD3+EsVon8EWTWhnHFRm5N9NbALNbwi/7hQ/hM1Zm4FuHg+k6BLsl5UA==", + "dev": true, + "optional": true + }, + "esbuild-darwin-arm64": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.48.tgz", + "integrity": "sha512-bFjnNEXjhZT+IZ8RvRGNJthLWNHV5JkCtuOFOnjvo5pC0sk2/QVk0Qc06g2PV3J0TcU6kaPC3RN9yy9w2PSLEA==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-64": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.48.tgz", + "integrity": "sha512-1NOlwRxmOsnPcWOGTB10JKAkYSb2nue0oM1AfHWunW/mv3wERfJmnYlGzL3UAOIUXZqW8GeA2mv+QGwq7DToqA==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-arm64": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.48.tgz", + "integrity": "sha512-gXqKdO8wabVcYtluAbikDH2jhXp+Klq5oCD5qbVyUG6tFiGhrC9oczKq3vIrrtwcxDQqK6+HDYK8Zrd4bCA9Gw==", + "dev": true, + "optional": true + }, + "esbuild-linux-32": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.48.tgz", + "integrity": "sha512-ghGyDfS289z/LReZQUuuKq9KlTiTspxL8SITBFQFAFRA/IkIvDpnZnCAKTCjGXAmUqroMQfKJXMxyjJA69c/nQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-64": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.48.tgz", + "integrity": "sha512-vni3p/gppLMVZLghI7oMqbOZdGmLbbKR23XFARKnszCIBpEMEDxOMNIKPmMItQrmH/iJrL1z8Jt2nynY0bE1ug==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.48.tgz", + "integrity": "sha512-+VfSV7Akh1XUiDNXgqgY1cUP1i2vjI+BmlyXRfVz5AfV3jbpde8JTs5Q9sYgaoq5cWfuKfoZB/QkGOI+QcL1Tw==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm64": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.48.tgz", + "integrity": "sha512-3CFsOlpoxlKPRevEHq8aAntgYGYkE1N9yRYAcPyng/p4Wyx0tPR5SBYsxLKcgPB9mR8chHEhtWYz6EZ+H199Zw==", + "dev": true, + "optional": true + }, + "esbuild-linux-mips64le": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.48.tgz", + "integrity": "sha512-cs0uOiRlPp6ymknDnjajCgvDMSsLw5mST2UXh+ZIrXTj2Ifyf2aAP3Iw4DiqgnyYLV2O/v/yWBJx+WfmKEpNLA==", + "dev": true, + "optional": true + }, + "esbuild-linux-ppc64le": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.48.tgz", + "integrity": "sha512-+2F0vJMkuI0Wie/wcSPDCqXvSFEELH7Jubxb7mpWrA/4NpT+/byjxDz0gG6R1WJoeDefcrMfpBx4GFNN1JQorQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-riscv64": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.48.tgz", + "integrity": "sha512-BmaK/GfEE+5F2/QDrIXteFGKnVHGxlnK9MjdVKMTfvtmudjY3k2t8NtlY4qemKSizc+QwyombGWTBDc76rxePA==", + "dev": true, + "optional": true + }, + "esbuild-linux-s390x": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.48.tgz", + "integrity": "sha512-tndw/0B9jiCL+KWKo0TSMaUm5UWBLsfCKVdbfMlb3d5LeV9WbijZ8Ordia8SAYv38VSJWOEt6eDCdOx8LqkC4g==", + "dev": true, + "optional": true + }, + "esbuild-netbsd-64": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.48.tgz", + "integrity": "sha512-V9hgXfwf/T901Lr1wkOfoevtyNkrxmMcRHyticybBUHookznipMOHoF41Al68QBsqBxnITCEpjjd4yAos7z9Tw==", + "dev": true, + "optional": true + }, + "esbuild-openbsd-64": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.48.tgz", + "integrity": "sha512-+IHf4JcbnnBl4T52egorXMatil/za0awqzg2Vy6FBgPcBpisDWT2sVz/tNdrK9kAqj+GZG/jZdrOkj7wsrNTKA==", + "dev": true, + "optional": true + }, + "esbuild-sunos-64": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.48.tgz", + "integrity": "sha512-77m8bsr5wOpOWbGi9KSqDphcq6dFeJyun8TA+12JW/GAjyfTwVtOnN8DOt6DSPUfEV+ltVMNqtXUeTeMAxl5KA==", + "dev": true, + "optional": true + }, + "esbuild-windows-32": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.48.tgz", + "integrity": "sha512-EPgRuTPP8vK9maxpTGDe5lSoIBHGKO/AuxDncg5O3NkrPeLNdvvK8oywB0zGaAZXxYWfNNSHskvvDgmfVTguhg==", + "dev": true, + "optional": true + }, + "esbuild-windows-64": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.48.tgz", + "integrity": "sha512-YmpXjdT1q0b8ictSdGwH3M8VCoqPpK1/UArze3X199w6u8hUx3V8BhAi1WjbsfDYRBanVVtduAhh2sirImtAvA==", + "dev": true, + "optional": true + }, + "esbuild-windows-arm64": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.48.tgz", + "integrity": "sha512-HHaOMCsCXp0rz5BT2crTka6MPWVno121NKApsGs/OIW5QC0ggC69YMGs1aJct9/9FSUF4A1xNE/cLvgB5svR4g==", + "dev": true, + "optional": true + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true + }, + "node-releases": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz", + "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "postcss": { + "version": "8.4.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", + "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", + "dev": true, + "requires": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "requires": { + "loose-envify": "^1.1.0" + } + }, + "react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "requires": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + } + }, + "react-refresh": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.13.0.tgz", + "integrity": "sha512-XP8A9BT0CpRBD+NYLLeIhld/RqG9+gktUjW1FkE+Vm7OCinbG1SshcK5tb9ls4kzvjZr9mOQc7HYgBngEyPAXg==", + "dev": true + }, + "resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "rollup": { + "version": "2.75.7", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.75.7.tgz", + "integrity": "sha512-VSE1iy0eaAYNCxEXaleThdFXqZJ42qDBatAwrfnPlENEZ8erQ+0LYX4JXOLPceWfZpV1VtZwZ3dFCuOZiSyFtQ==", + "dev": true, + "requires": { + "fsevents": "~2.3.2" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "requires": { + "loose-envify": "^1.1.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true + }, + "typescript": { + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", + "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", + "dev": true + }, + "update-browserslist-db": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz", + "integrity": "sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, + "vite": { + "version": "2.9.13", + "resolved": "https://registry.npmjs.org/vite/-/vite-2.9.13.tgz", + "integrity": "sha512-AsOBAaT0AD7Mhe8DuK+/kE4aWYFMx/i0ZNi98hJclxb4e0OhQcZYUrvLjIaQ8e59Ui7txcvKMiJC1yftqpQoDw==", + "dev": true, + "requires": { + "esbuild": "^0.14.27", + "fsevents": "~2.3.2", + "postcss": "^8.4.13", + "resolve": "^1.22.0", + "rollup": "^2.59.0" + } + } + } +} diff --git a/rick-and-morty-app/package.json b/rick-and-morty-app/package.json new file mode 100644 index 00000000..52f2153b --- /dev/null +++ b/rick-and-morty-app/package.json @@ -0,0 +1,21 @@ +{ + "name": "rick-and-morty-app", + "private": true, + "version": "0.0.0", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + }, + "devDependencies": { + "@types/react": "^18.0.0", + "@types/react-dom": "^18.0.0", + "@vitejs/plugin-react": "^1.3.0", + "typescript": "^4.6.3", + "vite": "^2.9.9" + } +} \ No newline at end of file diff --git a/rick-and-morty-app/src/App.tsx b/rick-and-morty-app/src/App.tsx new file mode 100644 index 00000000..b4791b56 --- /dev/null +++ b/rick-and-morty-app/src/App.tsx @@ -0,0 +1,11 @@ + +function App() { + + return ( +
+ +
+ ) +} + +export default App diff --git a/rick-and-morty-app/src/index.css b/rick-and-morty-app/src/index.css new file mode 100644 index 00000000..ec2585e8 --- /dev/null +++ b/rick-and-morty-app/src/index.css @@ -0,0 +1,13 @@ +body { + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', + 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', + sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +code { + font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', + monospace; +} diff --git a/rick-and-morty-app/src/main.tsx b/rick-and-morty-app/src/main.tsx new file mode 100644 index 00000000..4a1b1509 --- /dev/null +++ b/rick-and-morty-app/src/main.tsx @@ -0,0 +1,10 @@ +import React from 'react' +import ReactDOM from 'react-dom/client' +import App from './App' +import './index.css' + +ReactDOM.createRoot(document.getElementById('root')!).render( + + + +) diff --git a/rick-and-morty-app/src/vite-env.d.ts b/rick-and-morty-app/src/vite-env.d.ts new file mode 100644 index 00000000..11f02fe2 --- /dev/null +++ b/rick-and-morty-app/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/rick-and-morty-app/tsconfig.json b/rick-and-morty-app/tsconfig.json new file mode 100644 index 00000000..3d0a51a8 --- /dev/null +++ b/rick-and-morty-app/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "lib": ["DOM", "DOM.Iterable", "ESNext"], + "allowJs": false, + "skipLibCheck": true, + "esModuleInterop": false, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "module": "ESNext", + "moduleResolution": "Node", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx" + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/rick-and-morty-app/tsconfig.node.json b/rick-and-morty-app/tsconfig.node.json new file mode 100644 index 00000000..e993792c --- /dev/null +++ b/rick-and-morty-app/tsconfig.node.json @@ -0,0 +1,8 @@ +{ + "compilerOptions": { + "composite": true, + "module": "esnext", + "moduleResolution": "node" + }, + "include": ["vite.config.ts"] +} diff --git a/rick-and-morty-app/vite.config.ts b/rick-and-morty-app/vite.config.ts new file mode 100644 index 00000000..b1b5f91e --- /dev/null +++ b/rick-and-morty-app/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()] +}) From 103f639033e308ffd604a2afdb9b670e617be680 Mon Sep 17 00:00:00 2001 From: victor Date: Thu, 30 Jun 2022 17:13:49 -0400 Subject: [PATCH 02/47] chore(eslint): Add eslint --- rick-and-morty-app/.eslintrc.json | 25 + rick-and-morty-app/package-lock.json | 5139 ++++++++++++++++++++++++-- rick-and-morty-app/package.json | 8 +- rick-and-morty-app/src/App.tsx | 1 + 4 files changed, 4812 insertions(+), 361 deletions(-) create mode 100644 rick-and-morty-app/.eslintrc.json diff --git a/rick-and-morty-app/.eslintrc.json b/rick-and-morty-app/.eslintrc.json new file mode 100644 index 00000000..09d5e0ba --- /dev/null +++ b/rick-and-morty-app/.eslintrc.json @@ -0,0 +1,25 @@ +{ + "env": { + "browser": true, + "es2021": true + }, + "extends": [ + "eslint:recommended", + "plugin:react/recommended", + "plugin:@typescript-eslint/recommended" + ], + "parser": "@typescript-eslint/parser", + "parserOptions": { + "ecmaFeatures": { + "jsx": true + }, + "ecmaVersion": "latest", + "sourceType": "module" + }, + "plugins": [ + "react", + "@typescript-eslint" + ], + "rules": { + } +} diff --git a/rick-and-morty-app/package-lock.json b/rick-and-morty-app/package-lock.json index 3e9adb26..20e343a9 100644 --- a/rick-and-morty-app/package-lock.json +++ b/rick-and-morty-app/package-lock.json @@ -14,7 +14,13 @@ "devDependencies": { "@types/react": "^18.0.0", "@types/react-dom": "^18.0.0", + "@typescript-eslint/eslint-plugin": "^5.30.0", + "@typescript-eslint/parser": "^5.30.0", "@vitejs/plugin-react": "^1.3.0", + "eslint": "^8.18.0", + "eslint-import-resolver-typescript": "^3.1.2", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-react": "^7.30.1", "typescript": "^4.6.3", "vite": "^2.9.9" } @@ -424,6 +430,61 @@ "node": ">=6.9.0" } }, + "node_modules/@eslint/eslintrc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", + "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.3.2", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", @@ -471,6 +532,64 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgr/utils": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.2.0.tgz", + "integrity": "sha512-/+EeY/T/NLCfF4rvgUetl7ERNwoPz5q/p+8CYeAIFblsKSQbVJjmMccs/Y7CsOPv47hXcBrhk5IqOf9AqRNfhg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "is-glob": "^4.0.3", + "open": "^8.4.0", + "picocolors": "^1.0.0", + "tiny-glob": "^0.2.9", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@pkgr/utils/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "dev": true + }, "node_modules/@rollup/pluginutils": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", @@ -484,6 +603,18 @@ "node": ">= 8.0.0" } }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, "node_modules/@types/prop-types": { "version": "15.7.5", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", @@ -516,6 +647,242 @@ "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==", "dev": true }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.30.0.tgz", + "integrity": "sha512-lvhRJ2pGe2V9MEU46ELTdiHgiAFZPKtLhiU5wlnaYpMc2+c1R8fh8i80ZAa665drvjHKUJyRRGg3gEm1If54ow==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.30.0", + "@typescript-eslint/type-utils": "5.30.0", + "@typescript-eslint/utils": "5.30.0", + "debug": "^4.3.4", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.2.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.30.0.tgz", + "integrity": "sha512-2oYYUws5o2liX6SrFQ5RB88+PuRymaM2EU02/9Ppoyu70vllPnHVO7ioxDdq/ypXHA277R04SVjxvwI8HmZpzA==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.30.0", + "@typescript-eslint/types": "5.30.0", + "@typescript-eslint/typescript-estree": "5.30.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.30.0.tgz", + "integrity": "sha512-3TZxvlQcK5fhTBw5solQucWSJvonXf5yua5nx8OqK94hxdrT7/6W3/CS42MLd/f1BmlmmbGEgQcTHHCktUX5bQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.30.0", + "@typescript-eslint/visitor-keys": "5.30.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.30.0.tgz", + "integrity": "sha512-GF8JZbZqSS+azehzlv/lmQQ3EU3VfWYzCczdZjJRxSEeXDQkqFhCBgFhallLDbPwQOEQ4MHpiPfkjKk7zlmeNg==", + "dev": true, + "dependencies": { + "@typescript-eslint/utils": "5.30.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.30.0.tgz", + "integrity": "sha512-vfqcBrsRNWw/LBXyncMF/KrUTYYzzygCSsVqlZ1qGu1QtGs6vMkt3US0VNSQ05grXi5Yadp3qv5XZdYLjpp8ag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.30.0.tgz", + "integrity": "sha512-hDEawogreZB4n1zoqcrrtg/wPyyiCxmhPLpZ6kmWfKF5M5G0clRLaEexpuWr31fZ42F96SlD/5xCt1bT5Qm4Nw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.30.0", + "@typescript-eslint/visitor-keys": "5.30.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.30.0.tgz", + "integrity": "sha512-0bIgOgZflLKIcZsWvfklsaQTM3ZUbmtH0rJ1hKyV3raoUYyeZwcjQ8ZUJTzS7KnhNcsVT1Rxs7zeeMHEhGlltw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.30.0", + "@typescript-eslint/types": "5.30.0", + "@typescript-eslint/typescript-estree": "5.30.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.30.0.tgz", + "integrity": "sha512-6WcIeRk2DQ3pHKxU1Ni0qMXJkjO/zLjBymlYBy/53qxe7yjEFSvzKLDToJjURUhSl2Fzhkl4SMXQoETauF74cw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.30.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/@vitejs/plugin-react": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-1.3.2.tgz", @@ -535,6 +902,52 @@ "node": ">=12.0.0" } }, + "node_modules/acorn": { + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", + "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", @@ -547,6 +960,104 @@ "node": ">=4" } }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/array-includes": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", + "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", + "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz", + "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/browserslist": { "version": "4.21.1", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.1.tgz", @@ -575,17 +1086,39 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/caniuse-lite": { - "version": "1.0.30001361", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001361.tgz", - "integrity": "sha512-ybhCrjNtkFji1/Wto6SSJKkWk6kZgVQsDq5QI83SafsF6FXv2JB4df9eEdH6g8sdGgqTXrFLjAxqBGgYoU3azQ==", + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001361", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001361.tgz", + "integrity": "sha512-ybhCrjNtkFji1/Wto6SSJKkWk6kZgVQsDq5QI83SafsF6FXv2JB4df9eEdH6g8sdGgqTXrFLjAxqBGgYoU3azQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/caniuse-lite" } @@ -620,6 +1153,12 @@ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, "node_modules/convert-source-map": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", @@ -629,6 +1168,20 @@ "safe-buffer": "~5.1.1" } }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/csstype": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz", @@ -652,12 +1205,143 @@ } } }, + "node_modules/deep-is": { + "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==", + "dev": true + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/electron-to-chromium": { "version": "1.4.174", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.174.tgz", "integrity": "sha512-JER+w+9MV2MBVFOXxP036bLlNOnzbYAWrWU8sNUwoOO69T3w4564WhM5H5atd8VVS8U4vpi0i0kdoYzm1NPQgQ==", "dev": true }, + "node_modules/enhanced-resolve": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", + "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/es-abstract": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/esbuild": { "version": "0.14.48", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.48.tgz", @@ -1031,428 +1715,2301 @@ "node": ">=0.8.0" } }, - "node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "node_modules/eslint": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.18.0.tgz", + "integrity": "sha512-As1EfFMVk7Xc6/CvhssHUjsAQSkpfXvUGMFC3ce8JDe6WvqCgRrLOBQbVpsBFr1X1V+RACOadnzVvcUS5ni2bA==", "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], + "dependencies": { + "@eslint/eslintrc": "^1.3.0", + "@humanwhocodes/config-array": "^0.9.2", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.2", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "node_modules/eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "resolve": "^1.20.0" + } }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, - "engines": { - "node": ">=6.9.0" + "dependencies": { + "ms": "^2.1.1" } }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "node_modules/eslint-import-resolver-typescript": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.1.2.tgz", + "integrity": "sha512-M/qdvFCkdYcl2Wy4zHr4iPVbq1vSoKDwzyxg2bO9v7eZ49/fIB+ZWUet7/+UHeqDdFgiTtkr9AJ/vWJwNTbkCQ==", "dev": true, + "dependencies": { + "debug": "^4.3.4", + "enhanced-resolve": "^5.10.0", + "get-tsconfig": "^4.1.0", + "globby": "^13.1.2", + "is-core-module": "^2.9.0", + "is-glob": "^4.0.3", + "synckit": "^0.7.1" + }, "engines": { - "node": ">=4" + "node": "^12.20 || ^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "*", + "eslint-plugin-import": "*" } }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "node_modules/eslint-import-resolver-typescript/node_modules/globby": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.2.tgz", + "integrity": "sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ==", "dev": true, "dependencies": { - "function-bind": "^1.1.1" + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.11", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^4.0.0" }, "engines": { - "node": ">= 0.4.0" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "node_modules/eslint-import-resolver-typescript/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", "dev": true, "engines": { - "node": ">=4" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "node_modules/eslint-module-utils": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", + "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", "dev": true, "dependencies": { - "has": "^1.0.3" + "debug": "^3.2.7", + "find-up": "^2.1.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=4" } }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "node_modules/eslint-plugin-import": { + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", + "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", "dev": true, - "bin": { - "jsesc": "bin/jsesc" + "dependencies": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.3", + "has": "^1.0.3", + "is-core-module": "^2.8.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.5", + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" }, "engines": { "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" } }, - "node_modules/json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" + "dependencies": { + "ms": "2.0.0" } }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" + "esutils": "^2.0.2" }, - "bin": { - "loose-envify": "cli.js" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "node_modules/eslint-plugin-import/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, - "node_modules/nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "node_modules/eslint-plugin-react": { + "version": "7.30.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.30.1.tgz", + "integrity": "sha512-NbEvI9jtqO46yJA3wcRF9Mo0lF9T/jhdHqhCHXiXtD+Zcb98812wvokjWpU7Q4QH5edo6dmqrukxVvWWXHlsUg==", "dev": true, - "bin": { - "nanoid": "bin/nanoid.cjs" + "dependencies": { + "array-includes": "^3.1.5", + "array.prototype.flatmap": "^1.3.0", + "doctrine": "^2.1.0", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.5", + "object.fromentries": "^2.0.5", + "object.hasown": "^1.1.1", + "object.values": "^1.1.5", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.3", + "semver": "^6.3.0", + "string.prototype.matchall": "^4.0.7" }, "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" } }, - "node_modules/node-releases": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz", - "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==", - "dev": true - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, - "engines": { - "node": ">=8.6" + "dependencies": { + "esutils": "^2.0.2" }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/postcss": { - "version": "8.4.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", - "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", + "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - } - ], "dependencies": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" }, - "engines": { - "node": "^10 || ^12 || >=14" + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, "dependencies": { - "loose-envify": "^1.1.0" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" }, "engines": { - "node": ">=0.10.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/react-dom": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", - "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" }, "peerDependencies": { - "react": "^18.2.0" + "eslint": ">=5" } }, - "node_modules/react-refresh": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.13.0.tgz", - "integrity": "sha512-XP8A9BT0CpRBD+NYLLeIhld/RqG9+gktUjW1FkE+Vm7OCinbG1SshcK5tb9ls4kzvjZr9mOQc7HYgBngEyPAXg==", + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, - "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" + "color-convert": "^2.0.1" }, - "bin": { - "resolve": "bin/resolve" + "engines": { + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/rollup": { - "version": "2.75.7", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.75.7.tgz", - "integrity": "sha512-VSE1iy0eaAYNCxEXaleThdFXqZJ42qDBatAwrfnPlENEZ8erQ+0LYX4JXOLPceWfZpV1VtZwZ3dFCuOZiSyFtQ==", + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "bin": { - "rollup": "dist/bin/rollup" + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=10.0.0" + "node": ">=10" }, - "optionalDependencies": { - "fsevents": "~2.3.2" + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/scheduler": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", - "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", + "dev": true, "dependencies": { - "loose-envify": "^1.1.0" + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "bin": { - "semver": "bin/semver.js" + "engines": { + "node": ">=8" } }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/espree": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", + "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", "dev": true, "dependencies": { - "has-flag": "^3.0.0" + "acorn": "^8.7.1", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" }, "engines": { - "node": ">=4" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, "engines": { - "node": ">= 0.4" + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=4.0" } }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, "engines": { - "node": ">=4" + "node": ">=4.0" } }, - "node_modules/typescript": { - "version": "4.7.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", - "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, "engines": { - "node": ">=4.2.0" + "node": ">=0.10.0" } }, - "node_modules/update-browserslist-db": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz", - "integrity": "sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA==", + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist-lint": "cli.js" + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" }, - "peerDependencies": { - "browserslist": ">= 4.21.0" + "engines": { + "node": ">=8.6.0" } }, - "node_modules/vite": { - "version": "2.9.13", - "resolved": "https://registry.npmjs.org/vite/-/vite-2.9.13.tgz", - "integrity": "sha512-AsOBAaT0AD7Mhe8DuK+/kE4aWYFMx/i0ZNi98hJclxb4e0OhQcZYUrvLjIaQ8e59Ui7txcvKMiJC1yftqpQoDw==", + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "dependencies": { - "esbuild": "^0.14.27", - "postcss": "^8.4.13", - "resolve": "^1.22.0", - "rollup": "^2.59.0" - }, - "bin": { - "vite": "bin/vite.js" + "is-glob": "^4.0.1" }, "engines": { - "node": ">=12.2.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" }, - "peerDependencies": { - "less": "*", - "sass": "*", - "stylus": "*" + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" }, - "peerDependenciesMeta": { - "less": { - "optional": true - }, - "sass": { - "optional": true - }, - "stylus": { - "optional": true - } + "engines": { + "node": ">=8" } - } - }, - "dependencies": { - "@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + }, + "node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" } }, - "@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dev": true, - "requires": { - "@babel/highlight": "^7.18.6" + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" } }, - "@babel/compat-data": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.6.tgz", - "integrity": "sha512-tzulrgDT0QD6U7BJ4TKVk2SDDg7wlP39P9yAx1RfLy7vP/7rsDRlWVfbWxElslu56+r7QOhB2NSDsabYYruoZQ==", + "node_modules/flatted": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.6.tgz", + "integrity": "sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==", "dev": true }, - "@babel/core": { + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", + "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-tsconfig": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.1.0.tgz", + "integrity": "sha512-bhshxJhpfmeQ8x4fAvDqJV2VfGp5TfHdLpmBpNZZhMoVyfIrOippBW4mayC3DT9Sxuhcyl56Efw61qL28hG4EQ==", + "dev": true, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globalyzer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz", + "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==", + "dev": true + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "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" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globrex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", + "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", + "dev": true + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.1.tgz", + "integrity": "sha512-pxrjmNpeRw5wwVeWyEAk7QJu2GnBO3uzPFmHCKJJFPKK2Cy0cWL23krGtLdnMmbIi6/FjlrQpPyfQI19ByPOhQ==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.5", + "object.assign": "^4.1.2" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "dev": true, + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz", + "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==", + "dev": true + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", + "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", + "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.hasown": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.1.tgz", + "integrity": "sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/open": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "dev": true, + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "dev": true, + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.4.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", + "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true + }, + "node_modules/react-refresh": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.13.0.tgz", + "integrity": "sha512-XP8A9BT0CpRBD+NYLLeIhld/RqG9+gktUjW1FkE+Vm7OCinbG1SshcK5tb9ls4kzvjZr9mOQc7HYgBngEyPAXg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "2.75.7", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.75.7.tgz", + "integrity": "sha512-VSE1iy0eaAYNCxEXaleThdFXqZJ42qDBatAwrfnPlENEZ8erQ+0LYX4JXOLPceWfZpV1VtZwZ3dFCuOZiSyFtQ==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz", + "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "regexp.prototype.flags": "^1.4.1", + "side-channel": "^1.0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", + "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", + "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/synckit": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.7.1.tgz", + "integrity": "sha512-Cvv0Nzgs4Z0V6761qp4CU2+C15HRmnHaDd+sAtisbOnzIZ5wgl3ne076k28cHo+oY6eN/w0RNzRrf7CJz8dWJg==", + "dev": true, + "dependencies": { + "@pkgr/utils": "^2.1.0", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=12.20" + } + }, + "node_modules/synckit/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "dev": true + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/tiny-glob": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz", + "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==", + "dev": true, + "dependencies": { + "globalyzer": "0.1.0", + "globrex": "^0.1.2" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", + "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz", + "integrity": "sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "node_modules/vite": { + "version": "2.9.13", + "resolved": "https://registry.npmjs.org/vite/-/vite-2.9.13.tgz", + "integrity": "sha512-AsOBAaT0AD7Mhe8DuK+/kE4aWYFMx/i0ZNi98hJclxb4e0OhQcZYUrvLjIaQ8e59Ui7txcvKMiJC1yftqpQoDw==", + "dev": true, + "dependencies": { + "esbuild": "^0.14.27", + "postcss": "^8.4.13", + "resolve": "^1.22.0", + "rollup": "^2.59.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": ">=12.2.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "less": "*", + "sass": "*", + "stylus": "*" + }, + "peerDependenciesMeta": { + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + } + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + }, + "dependencies": { + "@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "requires": { + "@babel/highlight": "^7.18.6" + } + }, + "@babel/compat-data": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.6.tgz", + "integrity": "sha512-tzulrgDT0QD6U7BJ4TKVk2SDDg7wlP39P9yAx1RfLy7vP/7rsDRlWVfbWxElslu56+r7QOhB2NSDsabYYruoZQ==", + "dev": true + }, + "@babel/core": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.6.tgz", "integrity": "sha512-cQbWBpxcbbs/IUredIPkHiAGULLV8iwgNRMFzvbhEXISp4f3rUUXE5+TIw6KwUWUR3DwyI6gmBRnmAtYaWehwQ==", @@ -1722,6 +4279,51 @@ "to-fast-properties": "^2.0.0" } }, + "@eslint/eslintrc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", + "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.3.2", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "globals": { + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + } + } + }, + "@humanwhocodes/config-array": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, "@jridgewell/gen-mapping": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", @@ -1760,6 +4362,54 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@pkgr/utils": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.2.0.tgz", + "integrity": "sha512-/+EeY/T/NLCfF4rvgUetl7ERNwoPz5q/p+8CYeAIFblsKSQbVJjmMccs/Y7CsOPv47hXcBrhk5IqOf9AqRNfhg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "is-glob": "^4.0.3", + "open": "^8.4.0", + "picocolors": "^1.0.0", + "tiny-glob": "^0.2.9", + "tslib": "^2.4.0" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "dev": true + } + } + }, "@rollup/pluginutils": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", @@ -1770,6 +4420,18 @@ "picomatch": "^2.2.2" } }, + "@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, "@types/prop-types": { "version": "15.7.5", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", @@ -1802,6 +4464,141 @@ "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==", "dev": true }, + "@typescript-eslint/eslint-plugin": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.30.0.tgz", + "integrity": "sha512-lvhRJ2pGe2V9MEU46ELTdiHgiAFZPKtLhiU5wlnaYpMc2+c1R8fh8i80ZAa665drvjHKUJyRRGg3gEm1If54ow==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.30.0", + "@typescript-eslint/type-utils": "5.30.0", + "@typescript-eslint/utils": "5.30.0", + "debug": "^4.3.4", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.2.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "dependencies": { + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@typescript-eslint/parser": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.30.0.tgz", + "integrity": "sha512-2oYYUws5o2liX6SrFQ5RB88+PuRymaM2EU02/9Ppoyu70vllPnHVO7ioxDdq/ypXHA277R04SVjxvwI8HmZpzA==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.30.0", + "@typescript-eslint/types": "5.30.0", + "@typescript-eslint/typescript-estree": "5.30.0", + "debug": "^4.3.4" + } + }, + "@typescript-eslint/scope-manager": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.30.0.tgz", + "integrity": "sha512-3TZxvlQcK5fhTBw5solQucWSJvonXf5yua5nx8OqK94hxdrT7/6W3/CS42MLd/f1BmlmmbGEgQcTHHCktUX5bQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.30.0", + "@typescript-eslint/visitor-keys": "5.30.0" + } + }, + "@typescript-eslint/type-utils": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.30.0.tgz", + "integrity": "sha512-GF8JZbZqSS+azehzlv/lmQQ3EU3VfWYzCczdZjJRxSEeXDQkqFhCBgFhallLDbPwQOEQ4MHpiPfkjKk7zlmeNg==", + "dev": true, + "requires": { + "@typescript-eslint/utils": "5.30.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/types": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.30.0.tgz", + "integrity": "sha512-vfqcBrsRNWw/LBXyncMF/KrUTYYzzygCSsVqlZ1qGu1QtGs6vMkt3US0VNSQ05grXi5Yadp3qv5XZdYLjpp8ag==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.30.0.tgz", + "integrity": "sha512-hDEawogreZB4n1zoqcrrtg/wPyyiCxmhPLpZ6kmWfKF5M5G0clRLaEexpuWr31fZ42F96SlD/5xCt1bT5Qm4Nw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.30.0", + "@typescript-eslint/visitor-keys": "5.30.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "dependencies": { + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@typescript-eslint/utils": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.30.0.tgz", + "integrity": "sha512-0bIgOgZflLKIcZsWvfklsaQTM3ZUbmtH0rJ1hKyV3raoUYyeZwcjQ8ZUJTzS7KnhNcsVT1Rxs7zeeMHEhGlltw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.30.0", + "@typescript-eslint/types": "5.30.0", + "@typescript-eslint/typescript-estree": "5.30.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, + "dependencies": { + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + } + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.30.0.tgz", + "integrity": "sha512-6WcIeRk2DQ3pHKxU1Ni0qMXJkjO/zLjBymlYBy/53qxe7yjEFSvzKLDToJjURUhSl2Fzhkl4SMXQoETauF74cw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.30.0", + "eslint-visitor-keys": "^3.3.0" + } + }, "@vitejs/plugin-react": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-1.3.2.tgz", @@ -1818,6 +4615,37 @@ "resolve": "^1.22.0" } }, + "acorn": { + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", + "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "requires": {} + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, "ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", @@ -1827,6 +4655,80 @@ "color-convert": "^1.9.0" } }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "array-includes": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", + "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" + } + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "array.prototype.flat": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", + "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" + } + }, + "array.prototype.flatmap": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz", + "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, "browserslist": { "version": "4.21.1", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.1.tgz", @@ -1839,6 +4741,22 @@ "update-browserslist-db": "^1.0.4" } }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, "caniuse-lite": { "version": "1.0.30001361", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001361.tgz", @@ -1871,6 +4789,12 @@ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, "convert-source-map": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", @@ -1880,6 +4804,17 @@ "safe-buffer": "~5.1.1" } }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, "csstype": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz", @@ -1895,12 +4830,113 @@ "ms": "2.1.2" } }, + "deep-is": { + "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==", + "dev": true + }, + "define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true + }, + "define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, "electron-to-chromium": { "version": "1.4.174", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.174.tgz", "integrity": "sha512-JER+w+9MV2MBVFOXxP036bLlNOnzbYAWrWU8sNUwoOO69T3w4564WhM5H5atd8VVS8U4vpi0i0kdoYzm1NPQgQ==", "dev": true }, + "enhanced-resolve": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", + "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + } + }, + "es-abstract": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" + } + }, + "es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, "esbuild": { "version": "0.14.48", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.48.tgz", @@ -1999,92 +5035,544 @@ "dev": true, "optional": true }, - "esbuild-linux-mips64le": { - "version": "0.14.48", - "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.48.tgz", - "integrity": "sha512-cs0uOiRlPp6ymknDnjajCgvDMSsLw5mST2UXh+ZIrXTj2Ifyf2aAP3Iw4DiqgnyYLV2O/v/yWBJx+WfmKEpNLA==", + "esbuild-linux-mips64le": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.48.tgz", + "integrity": "sha512-cs0uOiRlPp6ymknDnjajCgvDMSsLw5mST2UXh+ZIrXTj2Ifyf2aAP3Iw4DiqgnyYLV2O/v/yWBJx+WfmKEpNLA==", + "dev": true, + "optional": true + }, + "esbuild-linux-ppc64le": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.48.tgz", + "integrity": "sha512-+2F0vJMkuI0Wie/wcSPDCqXvSFEELH7Jubxb7mpWrA/4NpT+/byjxDz0gG6R1WJoeDefcrMfpBx4GFNN1JQorQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-riscv64": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.48.tgz", + "integrity": "sha512-BmaK/GfEE+5F2/QDrIXteFGKnVHGxlnK9MjdVKMTfvtmudjY3k2t8NtlY4qemKSizc+QwyombGWTBDc76rxePA==", + "dev": true, + "optional": true + }, + "esbuild-linux-s390x": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.48.tgz", + "integrity": "sha512-tndw/0B9jiCL+KWKo0TSMaUm5UWBLsfCKVdbfMlb3d5LeV9WbijZ8Ordia8SAYv38VSJWOEt6eDCdOx8LqkC4g==", + "dev": true, + "optional": true + }, + "esbuild-netbsd-64": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.48.tgz", + "integrity": "sha512-V9hgXfwf/T901Lr1wkOfoevtyNkrxmMcRHyticybBUHookznipMOHoF41Al68QBsqBxnITCEpjjd4yAos7z9Tw==", + "dev": true, + "optional": true + }, + "esbuild-openbsd-64": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.48.tgz", + "integrity": "sha512-+IHf4JcbnnBl4T52egorXMatil/za0awqzg2Vy6FBgPcBpisDWT2sVz/tNdrK9kAqj+GZG/jZdrOkj7wsrNTKA==", + "dev": true, + "optional": true + }, + "esbuild-sunos-64": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.48.tgz", + "integrity": "sha512-77m8bsr5wOpOWbGi9KSqDphcq6dFeJyun8TA+12JW/GAjyfTwVtOnN8DOt6DSPUfEV+ltVMNqtXUeTeMAxl5KA==", + "dev": true, + "optional": true + }, + "esbuild-windows-32": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.48.tgz", + "integrity": "sha512-EPgRuTPP8vK9maxpTGDe5lSoIBHGKO/AuxDncg5O3NkrPeLNdvvK8oywB0zGaAZXxYWfNNSHskvvDgmfVTguhg==", + "dev": true, + "optional": true + }, + "esbuild-windows-64": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.48.tgz", + "integrity": "sha512-YmpXjdT1q0b8ictSdGwH3M8VCoqPpK1/UArze3X199w6u8hUx3V8BhAi1WjbsfDYRBanVVtduAhh2sirImtAvA==", + "dev": true, + "optional": true + }, + "esbuild-windows-arm64": { + "version": "0.14.48", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.48.tgz", + "integrity": "sha512-HHaOMCsCXp0rz5BT2crTka6MPWVno121NKApsGs/OIW5QC0ggC69YMGs1aJct9/9FSUF4A1xNE/cLvgB5svR4g==", + "dev": true, + "optional": true + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "eslint": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.18.0.tgz", + "integrity": "sha512-As1EfFMVk7Xc6/CvhssHUjsAQSkpfXvUGMFC3ce8JDe6WvqCgRrLOBQbVpsBFr1X1V+RACOadnzVvcUS5ni2bA==", + "dev": true, + "requires": { + "@eslint/eslintrc": "^1.3.0", + "@humanwhocodes/config-array": "^0.9.2", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.2", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "globals": { + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "dev": true, + "requires": { + "debug": "^3.2.7", + "resolve": "^1.20.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-import-resolver-typescript": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.1.2.tgz", + "integrity": "sha512-M/qdvFCkdYcl2Wy4zHr4iPVbq1vSoKDwzyxg2bO9v7eZ49/fIB+ZWUet7/+UHeqDdFgiTtkr9AJ/vWJwNTbkCQ==", + "dev": true, + "requires": { + "debug": "^4.3.4", + "enhanced-resolve": "^5.10.0", + "get-tsconfig": "^4.1.0", + "globby": "^13.1.2", + "is-core-module": "^2.9.0", + "is-glob": "^4.0.3", + "synckit": "^0.7.1" + }, + "dependencies": { + "globby": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.2.tgz", + "integrity": "sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ==", + "dev": true, + "requires": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.11", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^4.0.0" + } + }, + "slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true + } + } + }, + "eslint-module-utils": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", + "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", + "dev": true, + "requires": { + "debug": "^3.2.7", + "find-up": "^2.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-plugin-import": { + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", + "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", + "dev": true, + "requires": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.3", + "has": "^1.0.3", + "is-core-module": "^2.8.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.5", + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "eslint-plugin-react": { + "version": "7.30.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.30.1.tgz", + "integrity": "sha512-NbEvI9jtqO46yJA3wcRF9Mo0lF9T/jhdHqhCHXiXtD+Zcb98812wvokjWpU7Q4QH5edo6dmqrukxVvWWXHlsUg==", + "dev": true, + "requires": { + "array-includes": "^3.1.5", + "array.prototype.flatmap": "^1.3.0", + "doctrine": "^2.1.0", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.5", + "object.fromentries": "^2.0.5", + "object.hasown": "^1.1.1", + "object.values": "^1.1.5", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.3", + "semver": "^6.3.0", + "string.prototype.matchall": "^4.0.7" + }, + "dependencies": { + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "resolve": { + "version": "2.0.0-next.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", + "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", + "dev": true, + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + } + } + }, + "eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", "dev": true, - "optional": true + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } }, - "esbuild-linux-ppc64le": { - "version": "0.14.48", - "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.48.tgz", - "integrity": "sha512-+2F0vJMkuI0Wie/wcSPDCqXvSFEELH7Jubxb7mpWrA/4NpT+/byjxDz0gG6R1WJoeDefcrMfpBx4GFNN1JQorQ==", + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, - "optional": true + "requires": { + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + } + } }, - "esbuild-linux-riscv64": { - "version": "0.14.48", - "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.48.tgz", - "integrity": "sha512-BmaK/GfEE+5F2/QDrIXteFGKnVHGxlnK9MjdVKMTfvtmudjY3k2t8NtlY4qemKSizc+QwyombGWTBDc76rxePA==", + "eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true + }, + "espree": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", + "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", "dev": true, - "optional": true + "requires": { + "acorn": "^8.7.1", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + } }, - "esbuild-linux-s390x": { - "version": "0.14.48", - "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.48.tgz", - "integrity": "sha512-tndw/0B9jiCL+KWKo0TSMaUm5UWBLsfCKVdbfMlb3d5LeV9WbijZ8Ordia8SAYv38VSJWOEt6eDCdOx8LqkC4g==", + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", "dev": true, - "optional": true + "requires": { + "estraverse": "^5.1.0" + } }, - "esbuild-netbsd-64": { - "version": "0.14.48", - "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.48.tgz", - "integrity": "sha512-V9hgXfwf/T901Lr1wkOfoevtyNkrxmMcRHyticybBUHookznipMOHoF41Al68QBsqBxnITCEpjjd4yAos7z9Tw==", + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, - "optional": true + "requires": { + "estraverse": "^5.2.0" + } }, - "esbuild-openbsd-64": { - "version": "0.14.48", - "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.48.tgz", - "integrity": "sha512-+IHf4JcbnnBl4T52egorXMatil/za0awqzg2Vy6FBgPcBpisDWT2sVz/tNdrK9kAqj+GZG/jZdrOkj7wsrNTKA==", + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", "dev": true, - "optional": true + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } }, - "esbuild-sunos-64": { - "version": "0.14.48", - "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.48.tgz", - "integrity": "sha512-77m8bsr5wOpOWbGi9KSqDphcq6dFeJyun8TA+12JW/GAjyfTwVtOnN8DOt6DSPUfEV+ltVMNqtXUeTeMAxl5KA==", + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", "dev": true, - "optional": true + "requires": { + "reusify": "^1.0.4" + } }, - "esbuild-windows-32": { - "version": "0.14.48", - "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.48.tgz", - "integrity": "sha512-EPgRuTPP8vK9maxpTGDe5lSoIBHGKO/AuxDncg5O3NkrPeLNdvvK8oywB0zGaAZXxYWfNNSHskvvDgmfVTguhg==", + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, - "optional": true + "requires": { + "flat-cache": "^3.0.4" + } }, - "esbuild-windows-64": { - "version": "0.14.48", - "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.48.tgz", - "integrity": "sha512-YmpXjdT1q0b8ictSdGwH3M8VCoqPpK1/UArze3X199w6u8hUx3V8BhAi1WjbsfDYRBanVVtduAhh2sirImtAvA==", + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, - "optional": true + "requires": { + "to-regex-range": "^5.0.1" + } }, - "esbuild-windows-arm64": { - "version": "0.14.48", - "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.48.tgz", - "integrity": "sha512-HHaOMCsCXp0rz5BT2crTka6MPWVno121NKApsGs/OIW5QC0ggC69YMGs1aJct9/9FSUF4A1xNE/cLvgB5svR4g==", + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", "dev": true, - "optional": true + "requires": { + "locate-path": "^2.0.0" + } }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "flatted": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.6.tgz", + "integrity": "sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==", "dev": true }, - "estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, "fsevents": { @@ -2100,18 +5588,124 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, + "function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + } + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true + }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true + }, "gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true }, + "get-intrinsic": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", + "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "get-tsconfig": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.1.0.tgz", + "integrity": "sha512-bhshxJhpfmeQ8x4fAvDqJV2VfGp5TfHdLpmBpNZZhMoVyfIrOippBW4mayC3DT9Sxuhcyl56Efw61qL28hG4EQ==", + "dev": true + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, "globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true }, + "globalyzer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz", + "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==", + "dev": true + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "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" + } + }, + "globrex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", + "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", + "dev": true + }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -2121,12 +5715,116 @@ "function-bind": "^1.1.1" } }, + "has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true + }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true + }, "is-core-module": { "version": "2.9.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", @@ -2136,23 +5834,192 @@ "has": "^1.0.3" } }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + } + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, "jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, "json5": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", "dev": true }, + "jsx-ast-utils": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.1.tgz", + "integrity": "sha512-pxrjmNpeRw5wwVeWyEAk7QJu2GnBO3uzPFmHCKJJFPKK2Cy0cWL23krGtLdnMmbIi6/FjlrQpPyfQI19ByPOhQ==", + "dev": true, + "requires": { + "array-includes": "^3.1.5", + "object.assign": "^4.1.2" + } + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, "loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -2161,6 +6028,46 @@ "js-tokens": "^3.0.0 || ^4.0.0" } }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -2173,18 +6080,188 @@ "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", "dev": true }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, "node-releases": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz", "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==", "dev": true }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true + }, + "object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "object.entries": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", + "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "object.fromentries": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", + "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "object.hasown": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.1.tgz", + "integrity": "sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==", + "dev": true, + "requires": { + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + } + }, + "object.values": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "open": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "dev": true, + "requires": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "dev": true + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, "path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, "picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", @@ -2208,6 +6285,35 @@ "source-map-js": "^1.0.2" } }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, "react": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", @@ -2225,12 +6331,35 @@ "scheduler": "^0.23.0" } }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true + }, "react-refresh": { "version": "0.13.0", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.13.0.tgz", "integrity": "sha512-XP8A9BT0CpRBD+NYLLeIhld/RqG9+gktUjW1FkE+Vm7OCinbG1SshcK5tb9ls4kzvjZr9mOQc7HYgBngEyPAXg==", "dev": true }, + "regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + } + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + }, "resolve": { "version": "1.22.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", @@ -2242,6 +6371,27 @@ "supports-preserve-symlinks-flag": "^1.0.0" } }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, "rollup": { "version": "2.75.7", "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.75.7.tgz", @@ -2251,6 +6401,15 @@ "fsevents": "~2.3.2" } }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -2271,12 +6430,103 @@ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, "source-map-js": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", "dev": true }, + "string.prototype.matchall": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz", + "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "regexp.prototype.flags": "^1.4.1", + "side-channel": "^1.0.4" + } + }, + "string.prototype.trimend": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", + "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + } + }, + "string.prototype.trimstart": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", + "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -2292,18 +6542,132 @@ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true }, + "synckit": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.7.1.tgz", + "integrity": "sha512-Cvv0Nzgs4Z0V6761qp4CU2+C15HRmnHaDd+sAtisbOnzIZ5wgl3ne076k28cHo+oY6eN/w0RNzRrf7CJz8dWJg==", + "dev": true, + "requires": { + "@pkgr/utils": "^2.1.0", + "tslib": "^2.4.0" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "dev": true + } + } + }, + "tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "tiny-glob": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz", + "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==", + "dev": true, + "requires": { + "globalyzer": "0.1.0", + "globrex": "^0.1.2" + } + }, "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "tsconfig-paths": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "dev": true, + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + } + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + }, "typescript": { "version": "4.7.4", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", "dev": true }, + "unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + } + }, "update-browserslist-db": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz", @@ -2314,6 +6678,21 @@ "picocolors": "^1.0.0" } }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, "vite": { "version": "2.9.13", "resolved": "https://registry.npmjs.org/vite/-/vite-2.9.13.tgz", @@ -2326,6 +6705,46 @@ "resolve": "^1.22.0", "rollup": "^2.59.0" } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true } } } diff --git a/rick-and-morty-app/package.json b/rick-and-morty-app/package.json index 52f2153b..36e98fdb 100644 --- a/rick-and-morty-app/package.json +++ b/rick-and-morty-app/package.json @@ -14,8 +14,14 @@ "devDependencies": { "@types/react": "^18.0.0", "@types/react-dom": "^18.0.0", + "@typescript-eslint/eslint-plugin": "^5.30.0", + "@typescript-eslint/parser": "^5.30.0", "@vitejs/plugin-react": "^1.3.0", + "eslint": "^8.18.0", + "eslint-import-resolver-typescript": "^3.1.2", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-react": "^7.30.1", "typescript": "^4.6.3", "vite": "^2.9.9" } -} \ No newline at end of file +} diff --git a/rick-and-morty-app/src/App.tsx b/rick-and-morty-app/src/App.tsx index b4791b56..79cd4455 100644 --- a/rick-and-morty-app/src/App.tsx +++ b/rick-and-morty-app/src/App.tsx @@ -1,3 +1,4 @@ +import React from 'react' function App() { From 25a61b0f6303e15241b68402be26e32ff090b896 Mon Sep 17 00:00:00 2001 From: victor Date: Thu, 30 Jun 2022 17:17:45 -0400 Subject: [PATCH 03/47] chore(prettier): Add prettier --- rick-and-morty-app/.eslintrc.json | 43 ++++----- rick-and-morty-app/.prettierrc | 9 ++ rick-and-morty-app/package-lock.json | 126 +++++++++++++++++++++++++++ rick-and-morty-app/package.json | 9 +- rick-and-morty-app/src/App.tsx | 7 +- 5 files changed, 166 insertions(+), 28 deletions(-) create mode 100644 rick-and-morty-app/.prettierrc diff --git a/rick-and-morty-app/.eslintrc.json b/rick-and-morty-app/.eslintrc.json index 09d5e0ba..90f58741 100644 --- a/rick-and-morty-app/.eslintrc.json +++ b/rick-and-morty-app/.eslintrc.json @@ -1,25 +1,26 @@ { - "env": { - "browser": true, - "es2021": true + "env": { + "browser": true, + "es2021": true + }, + "extends": [ + "eslint:recommended", + "plugin:react/recommended", + "plugin:@typescript-eslint/recommended" + ], + "parser": "@typescript-eslint/parser", + "parserOptions": { + "ecmaFeatures": { + "jsx": true }, - "extends": [ - "eslint:recommended", - "plugin:react/recommended", - "plugin:@typescript-eslint/recommended" - ], - "parser": "@typescript-eslint/parser", - "parserOptions": { - "ecmaFeatures": { - "jsx": true - }, - "ecmaVersion": "latest", - "sourceType": "module" - }, - "plugins": [ - "react", - "@typescript-eslint" - ], - "rules": { + "ecmaVersion": "latest", + "sourceType": "module" + }, + "plugins": ["react", "@typescript-eslint", "prettier", "react-hooks"], + "rules": {}, + "settings": { + "import/resolver": { + "typescript": {} } + } } diff --git a/rick-and-morty-app/.prettierrc b/rick-and-morty-app/.prettierrc new file mode 100644 index 00000000..61e4fa61 --- /dev/null +++ b/rick-and-morty-app/.prettierrc @@ -0,0 +1,9 @@ +{ + "semi": false, + "tabWidth": 2, + "printWidth": 100, + "singleQuote": true, + "trailingComma": "all", + "jsxSingleQuote": true, + "bracketSpacing": true +} diff --git a/rick-and-morty-app/package-lock.json b/rick-and-morty-app/package-lock.json index 20e343a9..dce43f4b 100644 --- a/rick-and-morty-app/package-lock.json +++ b/rick-and-morty-app/package-lock.json @@ -18,9 +18,13 @@ "@typescript-eslint/parser": "^5.30.0", "@vitejs/plugin-react": "^1.3.0", "eslint": "^8.18.0", + "eslint-config-prettier": "^8.5.0", "eslint-import-resolver-typescript": "^3.1.2", "eslint-plugin-import": "^2.26.0", + "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-react": "^7.30.1", + "eslint-plugin-react-hooks": "^4.6.0", + "prettier": "^2.7.1", "typescript": "^4.6.3", "vite": "^2.9.9" } @@ -1767,6 +1771,18 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/eslint-config-prettier": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", + "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, "node_modules/eslint-import-resolver-node": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", @@ -1915,6 +1931,27 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, + "node_modules/eslint-plugin-prettier": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", + "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", + "dev": true, + "dependencies": { + "prettier-linter-helpers": "^1.0.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "eslint": ">=7.28.0", + "prettier": ">=2.0.0" + }, + "peerDependenciesMeta": { + "eslint-config-prettier": { + "optional": true + } + } + }, "node_modules/eslint-plugin-react": { "version": "7.30.1", "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.30.1.tgz", @@ -1943,6 +1980,18 @@ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" } }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", + "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", + "dev": true, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, "node_modules/eslint-plugin-react/node_modules/doctrine": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", @@ -2186,6 +2235,12 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, + "node_modules/fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, "node_modules/fast-glob": { "version": "3.2.11", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", @@ -3314,6 +3369,33 @@ "node": ">= 0.8.0" } }, + "node_modules/prettier": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz", + "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/prop-types": { "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", @@ -5226,6 +5308,13 @@ } } }, + "eslint-config-prettier": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", + "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", + "dev": true, + "requires": {} + }, "eslint-import-resolver-node": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", @@ -5351,6 +5440,15 @@ } } }, + "eslint-plugin-prettier": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", + "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", + "dev": true, + "requires": { + "prettier-linter-helpers": "^1.0.0" + } + }, "eslint-plugin-react": { "version": "7.30.1", "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.30.1.tgz", @@ -5395,6 +5493,13 @@ } } }, + "eslint-plugin-react-hooks": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", + "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", + "dev": true, + "requires": {} + }, "eslint-scope": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", @@ -5481,6 +5586,12 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, + "fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, "fast-glob": { "version": "3.2.11", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", @@ -6291,6 +6402,21 @@ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true }, + "prettier": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz", + "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==", + "dev": true + }, + "prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "requires": { + "fast-diff": "^1.1.2" + } + }, "prop-types": { "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", diff --git a/rick-and-morty-app/package.json b/rick-and-morty-app/package.json index 36e98fdb..4190e801 100644 --- a/rick-and-morty-app/package.json +++ b/rick-and-morty-app/package.json @@ -5,7 +5,10 @@ "scripts": { "dev": "vite", "build": "tsc && vite build", - "preview": "vite preview" + "preview": "vite preview", + "lint": "eslint src/**/*.{js,jsx,ts,tsx,json}", + "lint:fix": "eslint --fix 'src/**/*.{js,jsx,ts,tsx,json}'", + "format": "prettier --write 'src/**/*.{js,jsx,ts,tsx,css,md,json}' --config ./.prettierrc" }, "dependencies": { "react": "^18.0.0", @@ -18,9 +21,13 @@ "@typescript-eslint/parser": "^5.30.0", "@vitejs/plugin-react": "^1.3.0", "eslint": "^8.18.0", + "eslint-config-prettier": "^8.5.0", "eslint-import-resolver-typescript": "^3.1.2", "eslint-plugin-import": "^2.26.0", + "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-react": "^7.30.1", + "eslint-plugin-react-hooks": "^4.6.0", + "prettier": "^2.7.1", "typescript": "^4.6.3", "vite": "^2.9.9" } diff --git a/rick-and-morty-app/src/App.tsx b/rick-and-morty-app/src/App.tsx index 79cd4455..a66d0573 100644 --- a/rick-and-morty-app/src/App.tsx +++ b/rick-and-morty-app/src/App.tsx @@ -1,12 +1,7 @@ import React from 'react' function App() { - - return ( -
- -
- ) + return
} export default App From 781d1970c9e7abe8ca6cf204094ed03611d05140 Mon Sep 17 00:00:00 2001 From: victor Date: Thu, 30 Jun 2022 17:19:42 -0400 Subject: [PATCH 04/47] chore(react-router): Add react-router-dom --- rick-and-morty-app/package-lock.json | 89 +++++++++++++++++++++++++++- rick-and-morty-app/package.json | 3 +- 2 files changed, 90 insertions(+), 2 deletions(-) diff --git a/rick-and-morty-app/package-lock.json b/rick-and-morty-app/package-lock.json index dce43f4b..d51c0d83 100644 --- a/rick-and-morty-app/package-lock.json +++ b/rick-and-morty-app/package-lock.json @@ -9,7 +9,8 @@ "version": "0.0.0", "dependencies": { "react": "^18.0.0", - "react-dom": "^18.0.0" + "react-dom": "^18.0.0", + "react-router-dom": "^6.3.0" }, "devDependencies": { "@types/react": "^18.0.0", @@ -386,6 +387,17 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/runtime": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.6.tgz", + "integrity": "sha512-t9wi7/AW6XtKahAe20Yw0/mMljKq0B1r2fPdvaAdV/KPDZewFXdaaa6K7lxmZBZ8FBNpCiAT6iHPmd6QO9bKfQ==", + "dependencies": { + "regenerator-runtime": "^0.13.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/template": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.6.tgz", @@ -2600,6 +2612,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/history": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/history/-/history-5.3.0.tgz", + "integrity": "sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==", + "dependencies": { + "@babel/runtime": "^7.7.6" + } + }, "node_modules/ignore": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", @@ -3474,6 +3494,35 @@ "node": ">=0.10.0" } }, + "node_modules/react-router": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.3.0.tgz", + "integrity": "sha512-7Wh1DzVQ+tlFjkeo+ujvjSqSJmkt1+8JO+T5xklPlgrh70y7ogx75ODRW0ThWhY7S+6yEDks8TYrtQe/aoboBQ==", + "dependencies": { + "history": "^5.2.0" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/react-router-dom": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.3.0.tgz", + "integrity": "sha512-uaJj7LKytRxZNQV8+RbzJWnJ8K2nPsOOEuX7aQstlMZKQT0164C+X2w6bnkqU3sjtLvpd5ojrezAyfZ1+0sStw==", + "dependencies": { + "history": "^5.2.0", + "react-router": "6.3.0" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + }, "node_modules/regexp.prototype.flags": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", @@ -4322,6 +4371,14 @@ "@babel/helper-plugin-utils": "^7.18.6" } }, + "@babel/runtime": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.6.tgz", + "integrity": "sha512-t9wi7/AW6XtKahAe20Yw0/mMljKq0B1r2fPdvaAdV/KPDZewFXdaaa6K7lxmZBZ8FBNpCiAT6iHPmd6QO9bKfQ==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, "@babel/template": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.6.tgz", @@ -5862,6 +5919,14 @@ "has-symbols": "^1.0.2" } }, + "history": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/history/-/history-5.3.0.tgz", + "integrity": "sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==", + "requires": { + "@babel/runtime": "^7.7.6" + } + }, "ignore": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", @@ -6469,6 +6534,28 @@ "integrity": "sha512-XP8A9BT0CpRBD+NYLLeIhld/RqG9+gktUjW1FkE+Vm7OCinbG1SshcK5tb9ls4kzvjZr9mOQc7HYgBngEyPAXg==", "dev": true }, + "react-router": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.3.0.tgz", + "integrity": "sha512-7Wh1DzVQ+tlFjkeo+ujvjSqSJmkt1+8JO+T5xklPlgrh70y7ogx75ODRW0ThWhY7S+6yEDks8TYrtQe/aoboBQ==", + "requires": { + "history": "^5.2.0" + } + }, + "react-router-dom": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.3.0.tgz", + "integrity": "sha512-uaJj7LKytRxZNQV8+RbzJWnJ8K2nPsOOEuX7aQstlMZKQT0164C+X2w6bnkqU3sjtLvpd5ojrezAyfZ1+0sStw==", + "requires": { + "history": "^5.2.0", + "react-router": "6.3.0" + } + }, + "regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + }, "regexp.prototype.flags": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", diff --git a/rick-and-morty-app/package.json b/rick-and-morty-app/package.json index 4190e801..0503cb10 100644 --- a/rick-and-morty-app/package.json +++ b/rick-and-morty-app/package.json @@ -12,7 +12,8 @@ }, "dependencies": { "react": "^18.0.0", - "react-dom": "^18.0.0" + "react-dom": "^18.0.0", + "react-router-dom": "^6.3.0" }, "devDependencies": { "@types/react": "^18.0.0", From 3012f183c650d87389142266ee845fe59623272b Mon Sep 17 00:00:00 2001 From: victor Date: Thu, 30 Jun 2022 17:21:10 -0400 Subject: [PATCH 05/47] chore(mui): Add MUI --- rick-and-morty-app/package-lock.json | 1126 +++++++++++++++++++++----- rick-and-morty-app/package.json | 3 + 2 files changed, 938 insertions(+), 191 deletions(-) diff --git a/rick-and-morty-app/package-lock.json b/rick-and-morty-app/package-lock.json index d51c0d83..05bfa92c 100644 --- a/rick-and-morty-app/package-lock.json +++ b/rick-and-morty-app/package-lock.json @@ -8,6 +8,9 @@ "name": "rick-and-morty-app", "version": "0.0.0", "dependencies": { + "@emotion/react": "^11.9.3", + "@emotion/styled": "^11.9.3", + "@mui/material": "^5.8.6", "react": "^18.0.0", "react-dom": "^18.0.0", "react-router-dom": "^6.3.0" @@ -34,7 +37,6 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "dev": true, "dependencies": { "@jridgewell/gen-mapping": "^0.1.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -47,7 +49,6 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", - "dev": true, "dependencies": { "@babel/highlight": "^7.18.6" }, @@ -59,7 +60,6 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.6.tgz", "integrity": "sha512-tzulrgDT0QD6U7BJ4TKVk2SDDg7wlP39P9yAx1RfLy7vP/7rsDRlWVfbWxElslu56+r7QOhB2NSDsabYYruoZQ==", - "dev": true, "engines": { "node": ">=6.9.0" } @@ -68,7 +68,6 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.6.tgz", "integrity": "sha512-cQbWBpxcbbs/IUredIPkHiAGULLV8iwgNRMFzvbhEXISp4f3rUUXE5+TIw6KwUWUR3DwyI6gmBRnmAtYaWehwQ==", - "dev": true, "dependencies": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", @@ -98,7 +97,6 @@ "version": "7.18.7", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.7.tgz", "integrity": "sha512-shck+7VLlY72a2w9c3zYWuE1pwOKEiQHV7GTUbSnhyl5eu3i04t30tBY82ZRWrDfo3gkakCFtevExnxbkf2a3A==", - "dev": true, "dependencies": { "@babel/types": "^7.18.7", "@jridgewell/gen-mapping": "^0.3.2", @@ -112,7 +110,6 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, "dependencies": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -138,7 +135,6 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.6.tgz", "integrity": "sha512-vFjbfhNCzqdeAtZflUFrG5YIFqGTqsctrtkZ1D/NB0mDW9TwW3GmmUepYY4G9wCET5rY5ugz4OGTcLd614IzQg==", - "dev": true, "dependencies": { "@babel/compat-data": "^7.18.6", "@babel/helper-validator-option": "^7.18.6", @@ -156,7 +152,6 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.6.tgz", "integrity": "sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q==", - "dev": true, "engines": { "node": ">=6.9.0" } @@ -165,7 +160,6 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.6.tgz", "integrity": "sha512-0mWMxV1aC97dhjCah5U5Ua7668r5ZmSC2DLfH2EZnf9c3/dHZKiFa5pRLMH5tjSl471tY6496ZWk/kjNONBxhw==", - "dev": true, "dependencies": { "@babel/template": "^7.18.6", "@babel/types": "^7.18.6" @@ -178,7 +172,6 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "dev": true, "dependencies": { "@babel/types": "^7.18.6" }, @@ -190,7 +183,6 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", - "dev": true, "dependencies": { "@babel/types": "^7.18.6" }, @@ -202,7 +194,6 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.6.tgz", "integrity": "sha512-L//phhB4al5uucwzlimruukHB3jRd5JGClwRMD/ROrVjXfLqovYnvQrK/JK36WYyVwGGO7OD3kMyVTjx+WVPhw==", - "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.18.6", "@babel/helper-module-imports": "^7.18.6", @@ -221,7 +212,6 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.6.tgz", "integrity": "sha512-gvZnm1YAAxh13eJdkb9EWHBnF3eAub3XTLCZEehHT2kWxiKVRL64+ae5Y6Ivne0mVHmMYKT+xWgZO+gQhuLUBg==", - "dev": true, "engines": { "node": ">=6.9.0" } @@ -230,7 +220,6 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", - "dev": true, "dependencies": { "@babel/types": "^7.18.6" }, @@ -242,7 +231,6 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", - "dev": true, "dependencies": { "@babel/types": "^7.18.6" }, @@ -254,7 +242,6 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", - "dev": true, "engines": { "node": ">=6.9.0" } @@ -263,7 +250,6 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", - "dev": true, "engines": { "node": ">=6.9.0" } @@ -272,7 +258,6 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.6.tgz", "integrity": "sha512-vzSiiqbQOghPngUYt/zWGvK3LAsPhz55vc9XNN0xAl2gV4ieShI2OQli5duxWHD+72PZPTKAcfcZDE1Cwc5zsQ==", - "dev": true, "dependencies": { "@babel/template": "^7.18.6", "@babel/traverse": "^7.18.6", @@ -286,7 +271,6 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, "dependencies": { "@babel/helper-validator-identifier": "^7.18.6", "chalk": "^2.0.0", @@ -300,7 +284,6 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.6.tgz", "integrity": "sha512-uQVSa9jJUe/G/304lXspfWVpKpK4euFLgGiMQFOCpM/bgcAdeoHwi/OQz23O9GK2osz26ZiXRRV9aV+Yl1O8tw==", - "dev": true, "bin": { "parser": "bin/babel-parser.js" }, @@ -312,7 +295,6 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" }, @@ -402,7 +384,6 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.6.tgz", "integrity": "sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==", - "dev": true, "dependencies": { "@babel/code-frame": "^7.18.6", "@babel/parser": "^7.18.6", @@ -416,7 +397,6 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.6.tgz", "integrity": "sha512-zS/OKyqmD7lslOtFqbscH6gMLFYOfG1YPqCKfAW5KrTeolKqvB8UelR49Fpr6y93kYkW2Ik00mT1LOGiAGvizw==", - "dev": true, "dependencies": { "@babel/code-frame": "^7.18.6", "@babel/generator": "^7.18.6", @@ -437,7 +417,6 @@ "version": "7.18.7", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.7.tgz", "integrity": "sha512-QG3yxTcTIBoAcQmkCs+wAPYZhu7Dk9rXKacINfNbdJDNERTbLQbHGyVG8q/YGMPeCJRIhSY0+fTc5+xuh6WPSQ==", - "dev": true, "dependencies": { "@babel/helper-validator-identifier": "^7.18.6", "to-fast-properties": "^2.0.0" @@ -446,6 +425,152 @@ "node": ">=6.9.0" } }, + "node_modules/@emotion/babel-plugin": { + "version": "11.9.2", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.9.2.tgz", + "integrity": "sha512-Pr/7HGH6H6yKgnVFNEj2MVlreu3ADqftqjqwUvDy/OJzKFgxKeTQ+eeUf20FOTuHVkDON2iNa25rAXVYtWJCjw==", + "dependencies": { + "@babel/helper-module-imports": "^7.12.13", + "@babel/plugin-syntax-jsx": "^7.12.13", + "@babel/runtime": "^7.13.10", + "@emotion/hash": "^0.8.0", + "@emotion/memoize": "^0.7.5", + "@emotion/serialize": "^1.0.2", + "babel-plugin-macros": "^2.6.1", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.0.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@emotion/babel-plugin/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@emotion/cache": { + "version": "11.9.3", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.9.3.tgz", + "integrity": "sha512-0dgkI/JKlCXa+lEXviaMtGBL0ynpx4osh7rjOXE71q9bIF8G+XhJgvi+wDu0B0IdCVx37BffiwXlN9I3UuzFvg==", + "dependencies": { + "@emotion/memoize": "^0.7.4", + "@emotion/sheet": "^1.1.1", + "@emotion/utils": "^1.0.0", + "@emotion/weak-memoize": "^0.2.5", + "stylis": "4.0.13" + } + }, + "node_modules/@emotion/hash": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", + "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==" + }, + "node_modules/@emotion/is-prop-valid": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.1.3.tgz", + "integrity": "sha512-RFg04p6C+1uO19uG8N+vqanzKqiM9eeV1LDOG3bmkYmuOj7NbKNlFC/4EZq5gnwAIlcC/jOT24f8Td0iax2SXA==", + "dependencies": { + "@emotion/memoize": "^0.7.4" + } + }, + "node_modules/@emotion/memoize": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.5.tgz", + "integrity": "sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ==" + }, + "node_modules/@emotion/react": { + "version": "11.9.3", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.9.3.tgz", + "integrity": "sha512-g9Q1GcTOlzOEjqwuLF/Zd9LC+4FljjPjDfxSM7KmEakm+hsHXk+bYZ2q+/hTJzr0OUNkujo72pXLQvXj6H+GJQ==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@emotion/babel-plugin": "^11.7.1", + "@emotion/cache": "^11.9.3", + "@emotion/serialize": "^1.0.4", + "@emotion/utils": "^1.1.0", + "@emotion/weak-memoize": "^0.2.5", + "hoist-non-react-statics": "^3.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/serialize": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.0.4.tgz", + "integrity": "sha512-1JHamSpH8PIfFwAMryO2bNka+y8+KA5yga5Ocf2d7ZEiJjb7xlLW7aknBGZqJLajuLOvJ+72vN+IBSwPlXD1Pg==", + "dependencies": { + "@emotion/hash": "^0.8.0", + "@emotion/memoize": "^0.7.4", + "@emotion/unitless": "^0.7.5", + "@emotion/utils": "^1.0.0", + "csstype": "^3.0.2" + } + }, + "node_modules/@emotion/sheet": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.1.1.tgz", + "integrity": "sha512-J3YPccVRMiTZxYAY0IOq3kd+hUP8idY8Kz6B/Cyo+JuXq52Ek+zbPbSQUrVQp95aJ+lsAW7DPL1P2Z+U1jGkKA==" + }, + "node_modules/@emotion/styled": { + "version": "11.9.3", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.9.3.tgz", + "integrity": "sha512-o3sBNwbtoVz9v7WB1/Y/AmXl69YHmei2mrVnK7JgyBJ//Rst5yqPZCecEJlMlJrFeWHp+ki/54uN265V2pEcXA==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@emotion/babel-plugin": "^11.7.1", + "@emotion/is-prop-valid": "^1.1.3", + "@emotion/serialize": "^1.0.4", + "@emotion/utils": "^1.1.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "@emotion/react": "^11.0.0-rc.0", + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" + }, + "node_modules/@emotion/utils": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.1.0.tgz", + "integrity": "sha512-iRLa/Y4Rs5H/f2nimczYmS5kFJEbpiVvgN3XVfZ022IYhuNA1IRSHEizcof88LtCTXtl9S2Cxt32KgaXEu72JQ==" + }, + "node_modules/@emotion/weak-memoize": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz", + "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==" + }, "node_modules/@eslint/eslintrc": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", @@ -505,7 +630,6 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "dev": true, "dependencies": { "@jridgewell/set-array": "^1.0.0", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -518,7 +642,6 @@ "version": "3.0.8", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.8.tgz", "integrity": "sha512-YK5G9LaddzGbcucK4c8h5tWFmMPBvRZ/uyWmN1/SbBdIvqGUdWGkJ5BAaccgs6XbzVLsqbPJrBSFwKv3kT9i7w==", - "dev": true, "engines": { "node": ">=6.0.0" } @@ -527,7 +650,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, "engines": { "node": ">=6.0.0" } @@ -535,19 +657,237 @@ "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.14", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.14", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", - "dev": true, "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" } }, + "node_modules/@mui/base": { + "version": "5.0.0-alpha.87", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.87.tgz", + "integrity": "sha512-PuxRYrvG63Yj/UTwf4hSwZ5ClMv88iXHK+5hUV1CrG3kNPo6FFQiIFNRaNpRt/3nsXj6+xygJByNFA8m4Leetg==", + "dependencies": { + "@babel/runtime": "^7.17.2", + "@emotion/is-prop-valid": "^1.1.2", + "@mui/types": "^7.1.4", + "@mui/utils": "^5.8.6", + "@popperjs/core": "^2.11.5", + "clsx": "^1.1.1", + "prop-types": "^15.8.1", + "react-is": "^17.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0", + "react-dom": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/base/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + }, + "node_modules/@mui/material": { + "version": "5.8.6", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.8.6.tgz", + "integrity": "sha512-9fo5AiNHs+HY5ArMzsDMFrAmJSRw90y/qu81oDIszgK7Bfrm8GuI7Eb0mO6WADWPEyKOzOov/WZsm4G6jPEM4g==", + "dependencies": { + "@babel/runtime": "^7.17.2", + "@mui/base": "5.0.0-alpha.87", + "@mui/system": "^5.8.6", + "@mui/types": "^7.1.4", + "@mui/utils": "^5.8.6", + "@types/react-transition-group": "^4.4.4", + "clsx": "^1.1.1", + "csstype": "^3.1.0", + "prop-types": "^15.8.1", + "react-is": "^17.0.2", + "react-transition-group": "^4.4.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0", + "react-dom": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/material/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + }, + "node_modules/@mui/private-theming": { + "version": "5.8.6", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.8.6.tgz", + "integrity": "sha512-yHsJk1qU9r/q0DlnxGRJPHyM0Y/nUv8FTNgDTiI9I58GWuVuZqeTUr7JRvPh6ybeP/FLtW5eXEavRK9wxVk4uQ==", + "dependencies": { + "@babel/runtime": "^7.17.2", + "@mui/utils": "^5.8.6", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/styled-engine": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.8.0.tgz", + "integrity": "sha512-Q3spibB8/EgeMYHc+/o3RRTnAYkSl7ROCLhXJ830W8HZ2/iDiyYp16UcxKPurkXvLhUaILyofPVrP3Su2uKsAw==", + "dependencies": { + "@babel/runtime": "^7.17.2", + "@emotion/cache": "^11.7.1", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "peerDependencies": { + "@emotion/react": "^11.4.1", + "@emotion/styled": "^11.3.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + } + } + }, + "node_modules/@mui/system": { + "version": "5.8.6", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.8.6.tgz", + "integrity": "sha512-+a+rD58XltKQHDrrjcuCta2cUBqdnLDUDwnphSLCMFigRl8/uk+R+fdQRlMNRXAOgnMb8ioWIgfjxri5pmTH4A==", + "dependencies": { + "@babel/runtime": "^7.17.2", + "@mui/private-theming": "^5.8.6", + "@mui/styled-engine": "^5.8.0", + "@mui/types": "^7.1.4", + "@mui/utils": "^5.8.6", + "clsx": "^1.1.1", + "csstype": "^3.1.0", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/types": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.1.4.tgz", + "integrity": "sha512-uveM3byMbthO+6tXZ1n2zm0W3uJCQYtwt/v5zV5I77v2v18u0ITkb8xwhsDD2i3V2Kye7SaNR6FFJ6lMuY/WqQ==", + "peerDependencies": { + "@types/react": "*" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/utils": { + "version": "5.8.6", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.8.6.tgz", + "integrity": "sha512-QM2Sd1xZo2jOt2Vz5Rmro+pi2FLJyiv4+OjxkUwXR3oUM65KSMAMLl/KNYU55s3W3DLRFP5MVwE4FhAbHseHAg==", + "dependencies": { + "@babel/runtime": "^7.17.2", + "@types/prop-types": "^15.7.5", + "@types/react-is": "^16.7.1 || ^17.0.0", + "prop-types": "^15.8.1", + "react-is": "^17.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "peerDependencies": { + "react": "^17.0.0 || ^18.0.0" + } + }, + "node_modules/@mui/utils/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -606,6 +946,15 @@ "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", "dev": true }, + "node_modules/@popperjs/core": { + "version": "2.11.5", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.5.tgz", + "integrity": "sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, "node_modules/@rollup/pluginutils": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", @@ -631,17 +980,20 @@ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" + }, "node_modules/@types/prop-types": { "version": "15.7.5", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", - "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", - "dev": true + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" }, "node_modules/@types/react": { "version": "18.0.14", "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.14.tgz", "integrity": "sha512-x4gGuASSiWmo0xjDLpm5mPb52syZHJx02VKbqUKdLmKtAwIh63XClGsiTI1K6DO5q7ox4xAsQrU+Gl3+gGXF9Q==", - "dev": true, "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -657,11 +1009,26 @@ "@types/react": "*" } }, + "node_modules/@types/react-is": { + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@types/react-is/-/react-is-17.0.3.tgz", + "integrity": "sha512-aBTIWg1emtu95bLTLx0cpkxwGW3ueZv71nE2YFBpL8k/z5czEW8yYpOo8Dp+UUAFAtKwNaOsh/ioSeQnWlZcfw==", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-juKD/eiSM3/xZYzjuzH6ZwpP+/lejltmiS3QEzV/vmb/Q8+HfDmxu+Baga8UEMGBqV88Nbg4l2hY/K2DkyaLLA==", + "dependencies": { + "@types/react": "*" + } + }, "node_modules/@types/scheduler": { "version": "0.16.2", "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", - "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==", - "dev": true + "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "5.30.0", @@ -968,7 +1335,6 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, "dependencies": { "color-convert": "^1.9.0" }, @@ -1046,6 +1412,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/babel-plugin-macros": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz", + "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "cosmiconfig": "^6.0.0", + "resolve": "^1.12.0" + } + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -1078,7 +1454,6 @@ "version": "4.21.1", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.1.tgz", "integrity": "sha512-Nq8MFCSrnJXSc88yliwlzQe3qNe3VntIjhsArW9IJOEPSHNx23FalwApUVbzAWABLhYJJ7y8AynWI/XM8OdfjQ==", - "dev": true, "funding": [ { "type": "opencollective", @@ -1119,7 +1494,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, "engines": { "node": ">=6" } @@ -1128,7 +1502,6 @@ "version": "1.0.30001361", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001361.tgz", "integrity": "sha512-ybhCrjNtkFji1/Wto6SSJKkWk6kZgVQsDq5QI83SafsF6FXv2JB4df9eEdH6g8sdGgqTXrFLjAxqBGgYoU3azQ==", - "dev": true, "funding": [ { "type": "opencollective", @@ -1144,7 +1517,6 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -1154,11 +1526,18 @@ "node": ">=4" } }, + "node_modules/clsx": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz", + "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==", + "engines": { + "node": ">=6" + } + }, "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, "dependencies": { "color-name": "1.1.3" } @@ -1166,8 +1545,7 @@ "node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, "node_modules/concat-map": { "version": "0.0.1", @@ -1179,11 +1557,25 @@ "version": "1.8.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, "dependencies": { "safe-buffer": "~5.1.1" } }, + "node_modules/cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -1201,14 +1593,12 @@ "node_modules/csstype": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz", - "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==", - "dev": true + "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==" }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, "dependencies": { "ms": "2.1.2" }, @@ -1276,11 +1666,19 @@ "node": ">=6.0.0" } }, + "node_modules/dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "dependencies": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, "node_modules/electron-to-chromium": { "version": "1.4.174", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.174.tgz", - "integrity": "sha512-JER+w+9MV2MBVFOXxP036bLlNOnzbYAWrWU8sNUwoOO69T3w4564WhM5H5atd8VVS8U4vpi0i0kdoYzm1NPQgQ==", - "dev": true + "integrity": "sha512-JER+w+9MV2MBVFOXxP036bLlNOnzbYAWrWU8sNUwoOO69T3w4564WhM5H5atd8VVS8U4vpi0i0kdoYzm1NPQgQ==" }, "node_modules/enhanced-resolve": { "version": "5.10.0", @@ -1295,6 +1693,14 @@ "node": ">=10.13.0" } }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, "node_modules/es-abstract": { "version": "1.20.1", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", @@ -1717,7 +2123,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, "engines": { "node": ">=6" } @@ -1726,7 +2131,6 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, "engines": { "node": ">=0.8.0" } @@ -2326,6 +2730,11 @@ "node": ">=8" } }, + "node_modules/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" + }, "node_modules/find-up": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", @@ -2380,8 +2789,7 @@ "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "node_modules/function.prototype.name": { "version": "1.1.5", @@ -2420,7 +2828,6 @@ "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, "engines": { "node": ">=6.9.0" } @@ -2500,7 +2907,6 @@ "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, "engines": { "node": ">=4" } @@ -2547,7 +2953,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, "dependencies": { "function-bind": "^1.1.1" }, @@ -2568,7 +2973,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, "engines": { "node": ">=4" } @@ -2620,6 +3024,14 @@ "@babel/runtime": "^7.7.6" } }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dependencies": { + "react-is": "^16.7.0" + } + }, "node_modules/ignore": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", @@ -2633,7 +3045,6 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -2684,6 +3095,11 @@ "node": ">= 0.4" } }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, "node_modules/is-bigint": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", @@ -2728,7 +3144,6 @@ "version": "2.9.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", - "dev": true, "dependencies": { "has": "^1.0.3" }, @@ -2932,7 +3347,6 @@ "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, "bin": { "jsesc": "bin/jsesc" }, @@ -2940,6 +3354,11 @@ "node": ">=4" } }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -2956,7 +3375,6 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", - "dev": true, "bin": { "json5": "lib/cli.js" }, @@ -2990,6 +3408,11 @@ "node": ">= 0.8.0" } }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, "node_modules/locate-path": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", @@ -3075,8 +3498,7 @@ "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/nanoid": { "version": "3.3.4", @@ -3099,14 +3521,12 @@ "node_modules/node-releases": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz", - "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==", - "dev": true + "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==" }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -3288,7 +3708,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, "dependencies": { "callsites": "^3.0.0" }, @@ -3296,6 +3715,23 @@ "node": ">=6" } }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "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" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", @@ -3326,14 +3762,12 @@ "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, "engines": { "node": ">=8" } @@ -3341,8 +3775,7 @@ "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" }, "node_modules/picomatch": { "version": "2.3.1", @@ -3420,7 +3853,6 @@ "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dev": true, "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", @@ -3482,8 +3914,7 @@ "node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, "node_modules/react-refresh": { "version": "0.13.0", @@ -3518,6 +3949,21 @@ "react-dom": ">=16.8" } }, + "node_modules/react-transition-group": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.2.tgz", + "integrity": "sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==", + "dependencies": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" + } + }, "node_modules/regenerator-runtime": { "version": "0.13.9", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", @@ -3556,7 +4002,6 @@ "version": "1.22.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, "dependencies": { "is-core-module": "^2.9.0", "path-parse": "^1.0.7", @@ -3573,7 +4018,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, "engines": { "node": ">=4" } @@ -3644,8 +4088,7 @@ "node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "node_modules/scheduler": { "version": "0.23.0", @@ -3659,7 +4102,6 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, "bin": { "semver": "bin/semver.js" } @@ -3708,6 +4150,14 @@ "node": ">=8" } }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/source-map-js": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", @@ -3797,11 +4247,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/stylis": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.0.13.tgz", + "integrity": "sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag==" + }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, "dependencies": { "has-flag": "^3.0.0" }, @@ -3813,7 +4267,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -3869,7 +4322,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, "engines": { "node": ">=4" } @@ -3987,7 +4439,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz", "integrity": "sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA==", - "dev": true, "funding": [ { "type": "opencollective", @@ -4112,6 +4563,14 @@ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "engines": { + "node": ">= 6" + } } }, "dependencies": { @@ -4119,7 +4578,6 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "dev": true, "requires": { "@jridgewell/gen-mapping": "^0.1.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -4129,7 +4587,6 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", - "dev": true, "requires": { "@babel/highlight": "^7.18.6" } @@ -4137,14 +4594,12 @@ "@babel/compat-data": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.6.tgz", - "integrity": "sha512-tzulrgDT0QD6U7BJ4TKVk2SDDg7wlP39P9yAx1RfLy7vP/7rsDRlWVfbWxElslu56+r7QOhB2NSDsabYYruoZQ==", - "dev": true + "integrity": "sha512-tzulrgDT0QD6U7BJ4TKVk2SDDg7wlP39P9yAx1RfLy7vP/7rsDRlWVfbWxElslu56+r7QOhB2NSDsabYYruoZQ==" }, "@babel/core": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.6.tgz", "integrity": "sha512-cQbWBpxcbbs/IUredIPkHiAGULLV8iwgNRMFzvbhEXISp4f3rUUXE5+TIw6KwUWUR3DwyI6gmBRnmAtYaWehwQ==", - "dev": true, "requires": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", @@ -4167,7 +4622,6 @@ "version": "7.18.7", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.7.tgz", "integrity": "sha512-shck+7VLlY72a2w9c3zYWuE1pwOKEiQHV7GTUbSnhyl5eu3i04t30tBY82ZRWrDfo3gkakCFtevExnxbkf2a3A==", - "dev": true, "requires": { "@babel/types": "^7.18.7", "@jridgewell/gen-mapping": "^0.3.2", @@ -4178,7 +4632,6 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, "requires": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -4200,7 +4653,6 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.6.tgz", "integrity": "sha512-vFjbfhNCzqdeAtZflUFrG5YIFqGTqsctrtkZ1D/NB0mDW9TwW3GmmUepYY4G9wCET5rY5ugz4OGTcLd614IzQg==", - "dev": true, "requires": { "@babel/compat-data": "^7.18.6", "@babel/helper-validator-option": "^7.18.6", @@ -4211,14 +4663,12 @@ "@babel/helper-environment-visitor": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.6.tgz", - "integrity": "sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q==", - "dev": true + "integrity": "sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q==" }, "@babel/helper-function-name": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.6.tgz", "integrity": "sha512-0mWMxV1aC97dhjCah5U5Ua7668r5ZmSC2DLfH2EZnf9c3/dHZKiFa5pRLMH5tjSl471tY6496ZWk/kjNONBxhw==", - "dev": true, "requires": { "@babel/template": "^7.18.6", "@babel/types": "^7.18.6" @@ -4228,7 +4678,6 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "dev": true, "requires": { "@babel/types": "^7.18.6" } @@ -4237,7 +4686,6 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", - "dev": true, "requires": { "@babel/types": "^7.18.6" } @@ -4246,7 +4694,6 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.6.tgz", "integrity": "sha512-L//phhB4al5uucwzlimruukHB3jRd5JGClwRMD/ROrVjXfLqovYnvQrK/JK36WYyVwGGO7OD3kMyVTjx+WVPhw==", - "dev": true, "requires": { "@babel/helper-environment-visitor": "^7.18.6", "@babel/helper-module-imports": "^7.18.6", @@ -4261,14 +4708,12 @@ "@babel/helper-plugin-utils": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.6.tgz", - "integrity": "sha512-gvZnm1YAAxh13eJdkb9EWHBnF3eAub3XTLCZEehHT2kWxiKVRL64+ae5Y6Ivne0mVHmMYKT+xWgZO+gQhuLUBg==", - "dev": true + "integrity": "sha512-gvZnm1YAAxh13eJdkb9EWHBnF3eAub3XTLCZEehHT2kWxiKVRL64+ae5Y6Ivne0mVHmMYKT+xWgZO+gQhuLUBg==" }, "@babel/helper-simple-access": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", - "dev": true, "requires": { "@babel/types": "^7.18.6" } @@ -4277,7 +4722,6 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", - "dev": true, "requires": { "@babel/types": "^7.18.6" } @@ -4285,20 +4729,17 @@ "@babel/helper-validator-identifier": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", - "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", - "dev": true + "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==" }, "@babel/helper-validator-option": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", - "dev": true + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==" }, "@babel/helpers": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.6.tgz", "integrity": "sha512-vzSiiqbQOghPngUYt/zWGvK3LAsPhz55vc9XNN0xAl2gV4ieShI2OQli5duxWHD+72PZPTKAcfcZDE1Cwc5zsQ==", - "dev": true, "requires": { "@babel/template": "^7.18.6", "@babel/traverse": "^7.18.6", @@ -4309,7 +4750,6 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.18.6", "chalk": "^2.0.0", @@ -4319,14 +4759,12 @@ "@babel/parser": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.6.tgz", - "integrity": "sha512-uQVSa9jJUe/G/304lXspfWVpKpK4euFLgGiMQFOCpM/bgcAdeoHwi/OQz23O9GK2osz26ZiXRRV9aV+Yl1O8tw==", - "dev": true + "integrity": "sha512-uQVSa9jJUe/G/304lXspfWVpKpK4euFLgGiMQFOCpM/bgcAdeoHwi/OQz23O9GK2osz26ZiXRRV9aV+Yl1O8tw==" }, "@babel/plugin-syntax-jsx": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", - "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.18.6" } @@ -4383,7 +4821,6 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.6.tgz", "integrity": "sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==", - "dev": true, "requires": { "@babel/code-frame": "^7.18.6", "@babel/parser": "^7.18.6", @@ -4394,7 +4831,6 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.6.tgz", "integrity": "sha512-zS/OKyqmD7lslOtFqbscH6gMLFYOfG1YPqCKfAW5KrTeolKqvB8UelR49Fpr6y93kYkW2Ik00mT1LOGiAGvizw==", - "dev": true, "requires": { "@babel/code-frame": "^7.18.6", "@babel/generator": "^7.18.6", @@ -4412,12 +4848,125 @@ "version": "7.18.7", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.7.tgz", "integrity": "sha512-QG3yxTcTIBoAcQmkCs+wAPYZhu7Dk9rXKacINfNbdJDNERTbLQbHGyVG8q/YGMPeCJRIhSY0+fTc5+xuh6WPSQ==", - "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.18.6", "to-fast-properties": "^2.0.0" } }, + "@emotion/babel-plugin": { + "version": "11.9.2", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.9.2.tgz", + "integrity": "sha512-Pr/7HGH6H6yKgnVFNEj2MVlreu3ADqftqjqwUvDy/OJzKFgxKeTQ+eeUf20FOTuHVkDON2iNa25rAXVYtWJCjw==", + "requires": { + "@babel/helper-module-imports": "^7.12.13", + "@babel/plugin-syntax-jsx": "^7.12.13", + "@babel/runtime": "^7.13.10", + "@emotion/hash": "^0.8.0", + "@emotion/memoize": "^0.7.5", + "@emotion/serialize": "^1.0.2", + "babel-plugin-macros": "^2.6.1", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.0.13" + }, + "dependencies": { + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" + } + } + }, + "@emotion/cache": { + "version": "11.9.3", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.9.3.tgz", + "integrity": "sha512-0dgkI/JKlCXa+lEXviaMtGBL0ynpx4osh7rjOXE71q9bIF8G+XhJgvi+wDu0B0IdCVx37BffiwXlN9I3UuzFvg==", + "requires": { + "@emotion/memoize": "^0.7.4", + "@emotion/sheet": "^1.1.1", + "@emotion/utils": "^1.0.0", + "@emotion/weak-memoize": "^0.2.5", + "stylis": "4.0.13" + } + }, + "@emotion/hash": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", + "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==" + }, + "@emotion/is-prop-valid": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.1.3.tgz", + "integrity": "sha512-RFg04p6C+1uO19uG8N+vqanzKqiM9eeV1LDOG3bmkYmuOj7NbKNlFC/4EZq5gnwAIlcC/jOT24f8Td0iax2SXA==", + "requires": { + "@emotion/memoize": "^0.7.4" + } + }, + "@emotion/memoize": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.5.tgz", + "integrity": "sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ==" + }, + "@emotion/react": { + "version": "11.9.3", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.9.3.tgz", + "integrity": "sha512-g9Q1GcTOlzOEjqwuLF/Zd9LC+4FljjPjDfxSM7KmEakm+hsHXk+bYZ2q+/hTJzr0OUNkujo72pXLQvXj6H+GJQ==", + "requires": { + "@babel/runtime": "^7.13.10", + "@emotion/babel-plugin": "^11.7.1", + "@emotion/cache": "^11.9.3", + "@emotion/serialize": "^1.0.4", + "@emotion/utils": "^1.1.0", + "@emotion/weak-memoize": "^0.2.5", + "hoist-non-react-statics": "^3.3.1" + } + }, + "@emotion/serialize": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.0.4.tgz", + "integrity": "sha512-1JHamSpH8PIfFwAMryO2bNka+y8+KA5yga5Ocf2d7ZEiJjb7xlLW7aknBGZqJLajuLOvJ+72vN+IBSwPlXD1Pg==", + "requires": { + "@emotion/hash": "^0.8.0", + "@emotion/memoize": "^0.7.4", + "@emotion/unitless": "^0.7.5", + "@emotion/utils": "^1.0.0", + "csstype": "^3.0.2" + } + }, + "@emotion/sheet": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.1.1.tgz", + "integrity": "sha512-J3YPccVRMiTZxYAY0IOq3kd+hUP8idY8Kz6B/Cyo+JuXq52Ek+zbPbSQUrVQp95aJ+lsAW7DPL1P2Z+U1jGkKA==" + }, + "@emotion/styled": { + "version": "11.9.3", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.9.3.tgz", + "integrity": "sha512-o3sBNwbtoVz9v7WB1/Y/AmXl69YHmei2mrVnK7JgyBJ//Rst5yqPZCecEJlMlJrFeWHp+ki/54uN265V2pEcXA==", + "requires": { + "@babel/runtime": "^7.13.10", + "@emotion/babel-plugin": "^11.7.1", + "@emotion/is-prop-valid": "^1.1.3", + "@emotion/serialize": "^1.0.4", + "@emotion/utils": "^1.1.0" + } + }, + "@emotion/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" + }, + "@emotion/utils": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.1.0.tgz", + "integrity": "sha512-iRLa/Y4Rs5H/f2nimczYmS5kFJEbpiVvgN3XVfZ022IYhuNA1IRSHEizcof88LtCTXtl9S2Cxt32KgaXEu72JQ==" + }, + "@emotion/weak-memoize": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz", + "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==" + }, "@eslint/eslintrc": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", @@ -4467,7 +5016,6 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "dev": true, "requires": { "@jridgewell/set-array": "^1.0.0", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -4476,31 +5024,134 @@ "@jridgewell/resolve-uri": { "version": "3.0.8", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.8.tgz", - "integrity": "sha512-YK5G9LaddzGbcucK4c8h5tWFmMPBvRZ/uyWmN1/SbBdIvqGUdWGkJ5BAaccgs6XbzVLsqbPJrBSFwKv3kT9i7w==", - "dev": true + "integrity": "sha512-YK5G9LaddzGbcucK4c8h5tWFmMPBvRZ/uyWmN1/SbBdIvqGUdWGkJ5BAaccgs6XbzVLsqbPJrBSFwKv3kT9i7w==" }, "@jridgewell/set-array": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==" }, "@jridgewell/sourcemap-codec": { "version": "1.4.14", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" }, "@jridgewell/trace-mapping": { "version": "0.3.14", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", - "dev": true, "requires": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" } }, + "@mui/base": { + "version": "5.0.0-alpha.87", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.87.tgz", + "integrity": "sha512-PuxRYrvG63Yj/UTwf4hSwZ5ClMv88iXHK+5hUV1CrG3kNPo6FFQiIFNRaNpRt/3nsXj6+xygJByNFA8m4Leetg==", + "requires": { + "@babel/runtime": "^7.17.2", + "@emotion/is-prop-valid": "^1.1.2", + "@mui/types": "^7.1.4", + "@mui/utils": "^5.8.6", + "@popperjs/core": "^2.11.5", + "clsx": "^1.1.1", + "prop-types": "^15.8.1", + "react-is": "^17.0.2" + }, + "dependencies": { + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + } + } + }, + "@mui/material": { + "version": "5.8.6", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.8.6.tgz", + "integrity": "sha512-9fo5AiNHs+HY5ArMzsDMFrAmJSRw90y/qu81oDIszgK7Bfrm8GuI7Eb0mO6WADWPEyKOzOov/WZsm4G6jPEM4g==", + "requires": { + "@babel/runtime": "^7.17.2", + "@mui/base": "5.0.0-alpha.87", + "@mui/system": "^5.8.6", + "@mui/types": "^7.1.4", + "@mui/utils": "^5.8.6", + "@types/react-transition-group": "^4.4.4", + "clsx": "^1.1.1", + "csstype": "^3.1.0", + "prop-types": "^15.8.1", + "react-is": "^17.0.2", + "react-transition-group": "^4.4.2" + }, + "dependencies": { + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + } + } + }, + "@mui/private-theming": { + "version": "5.8.6", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.8.6.tgz", + "integrity": "sha512-yHsJk1qU9r/q0DlnxGRJPHyM0Y/nUv8FTNgDTiI9I58GWuVuZqeTUr7JRvPh6ybeP/FLtW5eXEavRK9wxVk4uQ==", + "requires": { + "@babel/runtime": "^7.17.2", + "@mui/utils": "^5.8.6", + "prop-types": "^15.8.1" + } + }, + "@mui/styled-engine": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.8.0.tgz", + "integrity": "sha512-Q3spibB8/EgeMYHc+/o3RRTnAYkSl7ROCLhXJ830W8HZ2/iDiyYp16UcxKPurkXvLhUaILyofPVrP3Su2uKsAw==", + "requires": { + "@babel/runtime": "^7.17.2", + "@emotion/cache": "^11.7.1", + "prop-types": "^15.8.1" + } + }, + "@mui/system": { + "version": "5.8.6", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.8.6.tgz", + "integrity": "sha512-+a+rD58XltKQHDrrjcuCta2cUBqdnLDUDwnphSLCMFigRl8/uk+R+fdQRlMNRXAOgnMb8ioWIgfjxri5pmTH4A==", + "requires": { + "@babel/runtime": "^7.17.2", + "@mui/private-theming": "^5.8.6", + "@mui/styled-engine": "^5.8.0", + "@mui/types": "^7.1.4", + "@mui/utils": "^5.8.6", + "clsx": "^1.1.1", + "csstype": "^3.1.0", + "prop-types": "^15.8.1" + } + }, + "@mui/types": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.1.4.tgz", + "integrity": "sha512-uveM3byMbthO+6tXZ1n2zm0W3uJCQYtwt/v5zV5I77v2v18u0ITkb8xwhsDD2i3V2Kye7SaNR6FFJ6lMuY/WqQ==", + "requires": {} + }, + "@mui/utils": { + "version": "5.8.6", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.8.6.tgz", + "integrity": "sha512-QM2Sd1xZo2jOt2Vz5Rmro+pi2FLJyiv4+OjxkUwXR3oUM65KSMAMLl/KNYU55s3W3DLRFP5MVwE4FhAbHseHAg==", + "requires": { + "@babel/runtime": "^7.17.2", + "@types/prop-types": "^15.7.5", + "@types/react-is": "^16.7.1 || ^17.0.0", + "prop-types": "^15.8.1", + "react-is": "^17.0.2" + }, + "dependencies": { + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + } + } + }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -4549,6 +5200,11 @@ } } }, + "@popperjs/core": { + "version": "2.11.5", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.5.tgz", + "integrity": "sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==" + }, "@rollup/pluginutils": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", @@ -4571,17 +5227,20 @@ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" + }, "@types/prop-types": { "version": "15.7.5", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", - "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", - "dev": true + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" }, "@types/react": { "version": "18.0.14", "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.14.tgz", "integrity": "sha512-x4gGuASSiWmo0xjDLpm5mPb52syZHJx02VKbqUKdLmKtAwIh63XClGsiTI1K6DO5q7ox4xAsQrU+Gl3+gGXF9Q==", - "dev": true, "requires": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -4597,11 +5256,26 @@ "@types/react": "*" } }, + "@types/react-is": { + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@types/react-is/-/react-is-17.0.3.tgz", + "integrity": "sha512-aBTIWg1emtu95bLTLx0cpkxwGW3ueZv71nE2YFBpL8k/z5czEW8yYpOo8Dp+UUAFAtKwNaOsh/ioSeQnWlZcfw==", + "requires": { + "@types/react": "*" + } + }, + "@types/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-juKD/eiSM3/xZYzjuzH6ZwpP+/lejltmiS3QEzV/vmb/Q8+HfDmxu+Baga8UEMGBqV88Nbg4l2hY/K2DkyaLLA==", + "requires": { + "@types/react": "*" + } + }, "@types/scheduler": { "version": "0.16.2", "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", - "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==", - "dev": true + "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" }, "@typescript-eslint/eslint-plugin": { "version": "5.30.0", @@ -4789,7 +5463,6 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, "requires": { "color-convert": "^1.9.0" } @@ -4843,6 +5516,16 @@ "es-shim-unscopables": "^1.0.0" } }, + "babel-plugin-macros": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz", + "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==", + "requires": { + "@babel/runtime": "^7.7.2", + "cosmiconfig": "^6.0.0", + "resolve": "^1.12.0" + } + }, "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -4872,7 +5555,6 @@ "version": "4.21.1", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.1.tgz", "integrity": "sha512-Nq8MFCSrnJXSc88yliwlzQe3qNe3VntIjhsArW9IJOEPSHNx23FalwApUVbzAWABLhYJJ7y8AynWI/XM8OdfjQ==", - "dev": true, "requires": { "caniuse-lite": "^1.0.30001359", "electron-to-chromium": "^1.4.172", @@ -4893,31 +5575,32 @@ "callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" }, "caniuse-lite": { "version": "1.0.30001361", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001361.tgz", - "integrity": "sha512-ybhCrjNtkFji1/Wto6SSJKkWk6kZgVQsDq5QI83SafsF6FXv2JB4df9eEdH6g8sdGgqTXrFLjAxqBGgYoU3azQ==", - "dev": true + "integrity": "sha512-ybhCrjNtkFji1/Wto6SSJKkWk6kZgVQsDq5QI83SafsF6FXv2JB4df9eEdH6g8sdGgqTXrFLjAxqBGgYoU3azQ==" }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" } }, + "clsx": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz", + "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==" + }, "color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, "requires": { "color-name": "1.1.3" } @@ -4925,8 +5608,7 @@ "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, "concat-map": { "version": "0.0.1", @@ -4938,11 +5620,22 @@ "version": "1.8.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, "requires": { "safe-buffer": "~5.1.1" } }, + "cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + } + }, "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -4957,14 +5650,12 @@ "csstype": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz", - "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==", - "dev": true + "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==" }, "debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, "requires": { "ms": "2.1.2" } @@ -5009,11 +5700,19 @@ "esutils": "^2.0.2" } }, + "dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "requires": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, "electron-to-chromium": { "version": "1.4.174", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.174.tgz", - "integrity": "sha512-JER+w+9MV2MBVFOXxP036bLlNOnzbYAWrWU8sNUwoOO69T3w4564WhM5H5atd8VVS8U4vpi0i0kdoYzm1NPQgQ==", - "dev": true + "integrity": "sha512-JER+w+9MV2MBVFOXxP036bLlNOnzbYAWrWU8sNUwoOO69T3w4564WhM5H5atd8VVS8U4vpi0i0kdoYzm1NPQgQ==" }, "enhanced-resolve": { "version": "5.10.0", @@ -5025,6 +5724,14 @@ "tapable": "^2.2.0" } }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "requires": { + "is-arrayish": "^0.2.1" + } + }, "es-abstract": { "version": "1.20.1", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", @@ -5247,14 +5954,12 @@ "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" }, "eslint": { "version": "8.18.0", @@ -5712,6 +6417,11 @@ "to-regex-range": "^5.0.1" } }, + "find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" + }, "find-up": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", @@ -5753,8 +6463,7 @@ "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "function.prototype.name": { "version": "1.1.5", @@ -5783,8 +6492,7 @@ "gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" }, "get-intrinsic": { "version": "1.1.2", @@ -5839,8 +6547,7 @@ "globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" }, "globalyzer": { "version": "0.1.0", @@ -5878,7 +6585,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, "requires": { "function-bind": "^1.1.1" } @@ -5892,8 +6598,7 @@ "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" }, "has-property-descriptors": { "version": "1.0.0", @@ -5927,6 +6632,14 @@ "@babel/runtime": "^7.7.6" } }, + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + } + }, "ignore": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", @@ -5937,7 +6650,6 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, "requires": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -5976,6 +6688,11 @@ "side-channel": "^1.0.4" } }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, "is-bigint": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", @@ -6005,7 +6722,6 @@ "version": "2.9.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", - "dev": true, "requires": { "has": "^1.0.3" } @@ -6139,8 +6855,12 @@ "jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" }, "json-schema-traverse": { "version": "0.4.1", @@ -6157,8 +6877,7 @@ "json5": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", - "dev": true + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==" }, "jsx-ast-utils": { "version": "3.3.1", @@ -6180,6 +6899,11 @@ "type-check": "~0.4.0" } }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, "locate-path": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", @@ -6247,8 +6971,7 @@ "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "nanoid": { "version": "3.3.4", @@ -6265,14 +6988,12 @@ "node-releases": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz", - "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==", - "dev": true + "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==" }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" }, "object-inspect": { "version": "1.12.2", @@ -6403,11 +7124,21 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, "requires": { "callsites": "^3.0.0" } }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "requires": { + "@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" + } + }, "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", @@ -6429,20 +7160,17 @@ "path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" }, "picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" }, "picomatch": { "version": "2.3.1", @@ -6486,7 +7214,6 @@ "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dev": true, "requires": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", @@ -6525,8 +7252,7 @@ "react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, "react-refresh": { "version": "0.13.0", @@ -6551,6 +7277,17 @@ "react-router": "6.3.0" } }, + "react-transition-group": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.2.tgz", + "integrity": "sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==", + "requires": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + } + }, "regenerator-runtime": { "version": "0.13.9", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", @@ -6577,7 +7314,6 @@ "version": "1.22.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, "requires": { "is-core-module": "^2.9.0", "path-parse": "^1.0.7", @@ -6587,8 +7323,7 @@ "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" }, "reusify": { "version": "1.0.4", @@ -6626,8 +7361,7 @@ "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "scheduler": { "version": "0.23.0", @@ -6640,8 +7374,7 @@ "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" }, "shebang-command": { "version": "2.0.0", @@ -6675,6 +7408,11 @@ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" + }, "source-map-js": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", @@ -6740,11 +7478,15 @@ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, + "stylis": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.0.13.tgz", + "integrity": "sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag==" + }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, "requires": { "has-flag": "^3.0.0" } @@ -6752,8 +7494,7 @@ "supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" }, "synckit": { "version": "0.7.1", @@ -6798,8 +7539,7 @@ "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" }, "to-regex-range": { "version": "5.0.1", @@ -6885,7 +7625,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz", "integrity": "sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA==", - "dev": true, "requires": { "escalade": "^3.1.1", "picocolors": "^1.0.0" @@ -6958,6 +7697,11 @@ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true + }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" } } } diff --git a/rick-and-morty-app/package.json b/rick-and-morty-app/package.json index 0503cb10..76329ece 100644 --- a/rick-and-morty-app/package.json +++ b/rick-and-morty-app/package.json @@ -11,6 +11,9 @@ "format": "prettier --write 'src/**/*.{js,jsx,ts,tsx,css,md,json}' --config ./.prettierrc" }, "dependencies": { + "@emotion/react": "^11.9.3", + "@emotion/styled": "^11.9.3", + "@mui/material": "^5.8.6", "react": "^18.0.0", "react-dom": "^18.0.0", "react-router-dom": "^6.3.0" From 8c67a54041b1d98116e4c574736e72c72b198b04 Mon Sep 17 00:00:00 2001 From: victor Date: Thu, 30 Jun 2022 17:21:40 -0400 Subject: [PATCH 06/47] chore(sass): Add sass --- rick-and-morty-app/package-lock.json | 212 ++++++++++++++++++++++++--- rick-and-morty-app/package.json | 3 +- 2 files changed, 191 insertions(+), 24 deletions(-) diff --git a/rick-and-morty-app/package-lock.json b/rick-and-morty-app/package-lock.json index 05bfa92c..b0d1fccb 100644 --- a/rick-and-morty-app/package-lock.json +++ b/rick-and-morty-app/package-lock.json @@ -13,7 +13,8 @@ "@mui/material": "^5.8.6", "react": "^18.0.0", "react-dom": "^18.0.0", - "react-router-dom": "^6.3.0" + "react-router-dom": "^6.3.0", + "sass": "^1.53.0" }, "devDependencies": { "@types/react": "^18.0.0", @@ -1342,6 +1343,18 @@ "node": ">=4" } }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -1428,6 +1441,14 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "engines": { + "node": ">=8" + } + }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -1442,7 +1463,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, "dependencies": { "fill-range": "^7.0.1" }, @@ -1526,6 +1546,43 @@ "node": ">=4" } }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "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" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/clsx": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz", @@ -2722,7 +2779,6 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, "dependencies": { "to-regex-range": "^5.0.1" }, @@ -2776,7 +2832,6 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, "hasInstallScript": true, "optional": true, "os": [ @@ -3041,6 +3096,11 @@ "node": ">= 4" } }, + "node_modules/immutable": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.1.0.tgz", + "integrity": "sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==" + }, "node_modules/import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", @@ -3112,6 +3172,17 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/is-boolean-object": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", @@ -3185,7 +3256,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -3194,7 +3264,6 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, "dependencies": { "is-extglob": "^2.1.1" }, @@ -3218,7 +3287,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, "engines": { "node": ">=0.12.0" } @@ -3523,6 +3591,14 @@ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz", "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==" }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -3781,7 +3857,6 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, "engines": { "node": ">=8.6" }, @@ -3964,6 +4039,17 @@ "react-dom": ">=16.6.0" } }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, "node_modules/regenerator-runtime": { "version": "0.13.9", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", @@ -4090,6 +4176,22 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, + "node_modules/sass": { + "version": "1.53.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.53.0.tgz", + "integrity": "sha512-zb/oMirbKhUgRQ0/GFz8TSAwRq2IlR29vOUJZOx0l8sV+CkHUfHa4u5nqrG+1VceZp7Jfj59SVW9ogdhTvJDcQ==", + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/scheduler": { "version": "0.23.0", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", @@ -4162,7 +4264,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -4330,7 +4431,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, "dependencies": { "is-number": "^7.0.0" }, @@ -5467,6 +5567,15 @@ "color-convert": "^1.9.0" } }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, "argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -5532,6 +5641,11 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -5546,7 +5660,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, "requires": { "fill-range": "^7.0.1" } @@ -5592,6 +5705,31 @@ "supports-color": "^5.3.0" } }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.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" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, "clsx": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz", @@ -6412,7 +6550,6 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, "requires": { "to-regex-range": "^5.0.1" } @@ -6457,7 +6594,6 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, "optional": true }, "function-bind": { @@ -6646,6 +6782,11 @@ "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", "dev": true }, + "immutable": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.1.0.tgz", + "integrity": "sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==" + }, "import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", @@ -6702,6 +6843,14 @@ "has-bigints": "^1.0.1" } }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, "is-boolean-object": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", @@ -6744,14 +6893,12 @@ "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" }, "is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, "requires": { "is-extglob": "^2.1.1" } @@ -6765,8 +6912,7 @@ "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" }, "is-number-object": { "version": "1.0.7", @@ -6990,6 +7136,11 @@ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz", "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==" }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -7175,8 +7326,7 @@ "picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" }, "postcss": { "version": "8.4.14", @@ -7288,6 +7438,14 @@ "prop-types": "^15.6.2" } }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, "regenerator-runtime": { "version": "0.13.9", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", @@ -7363,6 +7521,16 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, + "sass": { + "version": "1.53.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.53.0.tgz", + "integrity": "sha512-zb/oMirbKhUgRQ0/GFz8TSAwRq2IlR29vOUJZOx0l8sV+CkHUfHa4u5nqrG+1VceZp7Jfj59SVW9ogdhTvJDcQ==", + "requires": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + } + }, "scheduler": { "version": "0.23.0", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", @@ -7416,8 +7584,7 @@ "source-map-js": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" }, "string.prototype.matchall": { "version": "4.0.7", @@ -7545,7 +7712,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, "requires": { "is-number": "^7.0.0" } diff --git a/rick-and-morty-app/package.json b/rick-and-morty-app/package.json index 76329ece..706a7e8c 100644 --- a/rick-and-morty-app/package.json +++ b/rick-and-morty-app/package.json @@ -16,7 +16,8 @@ "@mui/material": "^5.8.6", "react": "^18.0.0", "react-dom": "^18.0.0", - "react-router-dom": "^6.3.0" + "react-router-dom": "^6.3.0", + "sass": "^1.53.0" }, "devDependencies": { "@types/react": "^18.0.0", From 481596eb11257d2cda2d687bcb2fda4d0669771c Mon Sep 17 00:00:00 2001 From: victor Date: Thu, 30 Jun 2022 18:00:54 -0400 Subject: [PATCH 07/47] feat(domain): create domain models --- .../src/domain/models/character-model.ts | 20 +++++++++++++++++++ .../domain/models/character-response-model.ts | 11 ++++++++++ rick-and-morty-app/src/domain/models/index.ts | 2 ++ 3 files changed, 33 insertions(+) create mode 100644 rick-and-morty-app/src/domain/models/character-model.ts create mode 100644 rick-and-morty-app/src/domain/models/character-response-model.ts create mode 100644 rick-and-morty-app/src/domain/models/index.ts diff --git a/rick-and-morty-app/src/domain/models/character-model.ts b/rick-and-morty-app/src/domain/models/character-model.ts new file mode 100644 index 00000000..53ff0216 --- /dev/null +++ b/rick-and-morty-app/src/domain/models/character-model.ts @@ -0,0 +1,20 @@ +export interface CharacterModel { + id: number + name: string + status: string + species: string + type: string + gender: string + origin: { + name: string + url: string + } + location: { + name: string + url: string + } + image: string + episode: [string] + url: string + created: string +} diff --git a/rick-and-morty-app/src/domain/models/character-response-model.ts b/rick-and-morty-app/src/domain/models/character-response-model.ts new file mode 100644 index 00000000..8882e63a --- /dev/null +++ b/rick-and-morty-app/src/domain/models/character-response-model.ts @@ -0,0 +1,11 @@ +import { CharacterModel } from './character-model' + +export interface CharacterResponseModel { + info: { + count: string + pages: number + next: string + prev: string | null + } + results: CharacterModel[] +} diff --git a/rick-and-morty-app/src/domain/models/index.ts b/rick-and-morty-app/src/domain/models/index.ts new file mode 100644 index 00000000..db663852 --- /dev/null +++ b/rick-and-morty-app/src/domain/models/index.ts @@ -0,0 +1,2 @@ +export * from './character-model' +export * from './character-response-model' From c4df200f527f02516e5597606b8af87c91ca7f71 Mon Sep 17 00:00:00 2001 From: victor Date: Thu, 30 Jun 2022 18:01:24 -0400 Subject: [PATCH 08/47] feat(domain): create domain usecases --- .../src/domain/usecases/filter-character-by-name.ts | 12 ++++++++++++ .../domain/usecases/filter-character-by-species.ts | 12 ++++++++++++ .../domain/usecases/filter-character-by-status.ts | 12 ++++++++++++ .../src/domain/usecases/get-character-by-id.ts | 12 ++++++++++++ .../src/domain/usecases/get-characters.ts | 9 +++++++++ rick-and-morty-app/src/domain/usecases/index.ts | 5 +++++ 6 files changed, 62 insertions(+) create mode 100644 rick-and-morty-app/src/domain/usecases/filter-character-by-name.ts create mode 100644 rick-and-morty-app/src/domain/usecases/filter-character-by-species.ts create mode 100644 rick-and-morty-app/src/domain/usecases/filter-character-by-status.ts create mode 100644 rick-and-morty-app/src/domain/usecases/get-character-by-id.ts create mode 100644 rick-and-morty-app/src/domain/usecases/get-characters.ts create mode 100644 rick-and-morty-app/src/domain/usecases/index.ts diff --git a/rick-and-morty-app/src/domain/usecases/filter-character-by-name.ts b/rick-and-morty-app/src/domain/usecases/filter-character-by-name.ts new file mode 100644 index 00000000..88e6c78c --- /dev/null +++ b/rick-and-morty-app/src/domain/usecases/filter-character-by-name.ts @@ -0,0 +1,12 @@ +import { CharacterResponseModel } from '../models' + +export interface FilterCharacterByName { + perform(params: FilterCharacterByName.Params): Promise +} + +export namespace FilterCharacterByName { + export type Params = { + name: string + } + export type Result = CharacterResponseModel +} diff --git a/rick-and-morty-app/src/domain/usecases/filter-character-by-species.ts b/rick-and-morty-app/src/domain/usecases/filter-character-by-species.ts new file mode 100644 index 00000000..bfeeb2c3 --- /dev/null +++ b/rick-and-morty-app/src/domain/usecases/filter-character-by-species.ts @@ -0,0 +1,12 @@ +import { CharacterResponseModel } from '../models' + +export interface FilterCharacterBySpecies { + perform(params: FilterCharacterBySpecies.Params): Promise +} + +export namespace FilterCharacterBySpecies { + export type Params = { + species: string + } + export type Result = CharacterResponseModel +} diff --git a/rick-and-morty-app/src/domain/usecases/filter-character-by-status.ts b/rick-and-morty-app/src/domain/usecases/filter-character-by-status.ts new file mode 100644 index 00000000..510a7b3c --- /dev/null +++ b/rick-and-morty-app/src/domain/usecases/filter-character-by-status.ts @@ -0,0 +1,12 @@ +import { CharacterResponseModel } from '../models' + +export interface FilterCharacterByStatus { + perform(params: FilterCharacterByStatus.Params): Promise +} + +export namespace FilterCharacterByStatus { + export type Params = { + status: string + } + export type Result = CharacterResponseModel +} diff --git a/rick-and-morty-app/src/domain/usecases/get-character-by-id.ts b/rick-and-morty-app/src/domain/usecases/get-character-by-id.ts new file mode 100644 index 00000000..86a82d82 --- /dev/null +++ b/rick-and-morty-app/src/domain/usecases/get-character-by-id.ts @@ -0,0 +1,12 @@ +import { CharacterResponseModel } from '../models' + +export interface GetCharacterById { + perform(params: GetCharacterById.Params): Promise +} + +export namespace GetCharacterById { + export type Params = { + id: number + } + export type Result = CharacterResponseModel +} diff --git a/rick-and-morty-app/src/domain/usecases/get-characters.ts b/rick-and-morty-app/src/domain/usecases/get-characters.ts new file mode 100644 index 00000000..e17b18bf --- /dev/null +++ b/rick-and-morty-app/src/domain/usecases/get-characters.ts @@ -0,0 +1,9 @@ +import { CharacterResponseModel } from '../models' + +export interface GetCharacters { + perform(): Promise +} + +export namespace GetCharacters { + export type Result = CharacterResponseModel +} diff --git a/rick-and-morty-app/src/domain/usecases/index.ts b/rick-and-morty-app/src/domain/usecases/index.ts new file mode 100644 index 00000000..9591b392 --- /dev/null +++ b/rick-and-morty-app/src/domain/usecases/index.ts @@ -0,0 +1,5 @@ +export * from './get-characters' +export * from './get-character-by-id' +export * from './filter-character-by-name' +export * from './filter-character-by-species' +export * from './filter-character-by-status' From 551d459467ea69f69277903cee2a759bdffa653c Mon Sep 17 00:00:00 2001 From: victor Date: Thu, 30 Jun 2022 18:08:36 -0400 Subject: [PATCH 09/47] feat(data): create data protocols --- .../protocols/filter-character-by-name-repository.ts | 12 ++++++++++++ .../filter-character-by-species-repository.ts | 12 ++++++++++++ .../filter-character-by-status-repository.ts | 12 ++++++++++++ .../data/protocols/get-character-by-id-repository.ts | 10 ++++++++++ .../src/data/protocols/get-characters-repository.ts | 9 +++++++++ rick-and-morty-app/src/data/protocols/index.ts | 5 +++++ 6 files changed, 60 insertions(+) create mode 100644 rick-and-morty-app/src/data/protocols/filter-character-by-name-repository.ts create mode 100644 rick-and-morty-app/src/data/protocols/filter-character-by-species-repository.ts create mode 100644 rick-and-morty-app/src/data/protocols/filter-character-by-status-repository.ts create mode 100644 rick-and-morty-app/src/data/protocols/get-character-by-id-repository.ts create mode 100644 rick-and-morty-app/src/data/protocols/get-characters-repository.ts create mode 100644 rick-and-morty-app/src/data/protocols/index.ts diff --git a/rick-and-morty-app/src/data/protocols/filter-character-by-name-repository.ts b/rick-and-morty-app/src/data/protocols/filter-character-by-name-repository.ts new file mode 100644 index 00000000..6cc01633 --- /dev/null +++ b/rick-and-morty-app/src/data/protocols/filter-character-by-name-repository.ts @@ -0,0 +1,12 @@ +import { FilterCharacterByName } from '../../domain/usecases' + +export interface FilterCharacterByNameRepository { + filterByName: ( + params: FilterCharacterByNameRepository.Params, + ) => Promise +} + +export namespace FilterCharacterByNameRepository { + export type Params = FilterCharacterByName.Params + export type Result = FilterCharacterByName.Result +} diff --git a/rick-and-morty-app/src/data/protocols/filter-character-by-species-repository.ts b/rick-and-morty-app/src/data/protocols/filter-character-by-species-repository.ts new file mode 100644 index 00000000..143cc40b --- /dev/null +++ b/rick-and-morty-app/src/data/protocols/filter-character-by-species-repository.ts @@ -0,0 +1,12 @@ +import { FilterCharacterBySpecies } from '../../domain/usecases' + +export interface FilterCharacterBySpeciesRepository { + filterBySpecies: ( + params: FilterCharacterBySpeciesRepository.Params, + ) => Promise +} + +export namespace FilterCharacterBySpeciesRepository { + export type Params = FilterCharacterBySpecies.Params + export type Result = FilterCharacterBySpecies.Result +} diff --git a/rick-and-morty-app/src/data/protocols/filter-character-by-status-repository.ts b/rick-and-morty-app/src/data/protocols/filter-character-by-status-repository.ts new file mode 100644 index 00000000..2fe845ba --- /dev/null +++ b/rick-and-morty-app/src/data/protocols/filter-character-by-status-repository.ts @@ -0,0 +1,12 @@ +import { FilterCharacterByStatus } from '../../domain/usecases' + +export interface FilterCharacterByStatusRepository { + filterByStatus: ( + params: FilterCharacterByStatusRepository.Params, + ) => Promise +} + +export namespace FilterCharacterByStatusRepository { + export type Params = FilterCharacterByStatus.Params + export type Result = FilterCharacterByStatus.Result +} diff --git a/rick-and-morty-app/src/data/protocols/get-character-by-id-repository.ts b/rick-and-morty-app/src/data/protocols/get-character-by-id-repository.ts new file mode 100644 index 00000000..de29ed17 --- /dev/null +++ b/rick-and-morty-app/src/data/protocols/get-character-by-id-repository.ts @@ -0,0 +1,10 @@ +import { GetCharacterById } from '../../domain/usecases' + +export interface GetCharacterByIdRepository { + getById: (params: GetCharacterById.Params) => Promise +} + +export namespace GetCharacterByIdRepository { + export type Params = GetCharacterById.Params + export type Result = GetCharacterById.Result +} diff --git a/rick-and-morty-app/src/data/protocols/get-characters-repository.ts b/rick-and-morty-app/src/data/protocols/get-characters-repository.ts new file mode 100644 index 00000000..f3e5b0c9 --- /dev/null +++ b/rick-and-morty-app/src/data/protocols/get-characters-repository.ts @@ -0,0 +1,9 @@ +import { GetCharacters } from '../../domain/usecases' + +export interface GetCharactersRepository { + getCharacters(): Promise +} + +export namespace GetCharactersRepository { + export type Result = GetCharacters +} diff --git a/rick-and-morty-app/src/data/protocols/index.ts b/rick-and-morty-app/src/data/protocols/index.ts new file mode 100644 index 00000000..4b49f169 --- /dev/null +++ b/rick-and-morty-app/src/data/protocols/index.ts @@ -0,0 +1,5 @@ +export * from './filter-character-by-name-repository' +export * from './filter-character-by-species-repository' +export * from './filter-character-by-status-repository' +export * from './get-character-by-id-repository' +export * from './get-characters-repository' From 5531b6950aa105057362d547a7092e17c51e6e49 Mon Sep 17 00:00:00 2001 From: victor Date: Thu, 30 Jun 2022 18:25:40 -0400 Subject: [PATCH 10/47] fix(data): fix protocols names --- .../protocols/filter-character-by-name-repository.ts | 12 ------------ .../filter-character-by-species-repository.ts | 12 ------------ .../filter-character-by-status-repository.ts | 12 ------------ .../filter-characters-by-name-repository.ts | 12 ++++++++++++ .../filter-characters-by-species-repository.ts | 12 ++++++++++++ .../filter-characters-by-status-repository.ts | 12 ++++++++++++ .../src/data/protocols/get-characters-repository.ts | 2 +- rick-and-morty-app/src/data/protocols/index.ts | 6 +++--- 8 files changed, 40 insertions(+), 40 deletions(-) delete mode 100644 rick-and-morty-app/src/data/protocols/filter-character-by-name-repository.ts delete mode 100644 rick-and-morty-app/src/data/protocols/filter-character-by-species-repository.ts delete mode 100644 rick-and-morty-app/src/data/protocols/filter-character-by-status-repository.ts create mode 100644 rick-and-morty-app/src/data/protocols/filter-characters-by-name-repository.ts create mode 100644 rick-and-morty-app/src/data/protocols/filter-characters-by-species-repository.ts create mode 100644 rick-and-morty-app/src/data/protocols/filter-characters-by-status-repository.ts diff --git a/rick-and-morty-app/src/data/protocols/filter-character-by-name-repository.ts b/rick-and-morty-app/src/data/protocols/filter-character-by-name-repository.ts deleted file mode 100644 index 6cc01633..00000000 --- a/rick-and-morty-app/src/data/protocols/filter-character-by-name-repository.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { FilterCharacterByName } from '../../domain/usecases' - -export interface FilterCharacterByNameRepository { - filterByName: ( - params: FilterCharacterByNameRepository.Params, - ) => Promise -} - -export namespace FilterCharacterByNameRepository { - export type Params = FilterCharacterByName.Params - export type Result = FilterCharacterByName.Result -} diff --git a/rick-and-morty-app/src/data/protocols/filter-character-by-species-repository.ts b/rick-and-morty-app/src/data/protocols/filter-character-by-species-repository.ts deleted file mode 100644 index 143cc40b..00000000 --- a/rick-and-morty-app/src/data/protocols/filter-character-by-species-repository.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { FilterCharacterBySpecies } from '../../domain/usecases' - -export interface FilterCharacterBySpeciesRepository { - filterBySpecies: ( - params: FilterCharacterBySpeciesRepository.Params, - ) => Promise -} - -export namespace FilterCharacterBySpeciesRepository { - export type Params = FilterCharacterBySpecies.Params - export type Result = FilterCharacterBySpecies.Result -} diff --git a/rick-and-morty-app/src/data/protocols/filter-character-by-status-repository.ts b/rick-and-morty-app/src/data/protocols/filter-character-by-status-repository.ts deleted file mode 100644 index 2fe845ba..00000000 --- a/rick-and-morty-app/src/data/protocols/filter-character-by-status-repository.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { FilterCharacterByStatus } from '../../domain/usecases' - -export interface FilterCharacterByStatusRepository { - filterByStatus: ( - params: FilterCharacterByStatusRepository.Params, - ) => Promise -} - -export namespace FilterCharacterByStatusRepository { - export type Params = FilterCharacterByStatus.Params - export type Result = FilterCharacterByStatus.Result -} diff --git a/rick-and-morty-app/src/data/protocols/filter-characters-by-name-repository.ts b/rick-and-morty-app/src/data/protocols/filter-characters-by-name-repository.ts new file mode 100644 index 00000000..e5ab63be --- /dev/null +++ b/rick-and-morty-app/src/data/protocols/filter-characters-by-name-repository.ts @@ -0,0 +1,12 @@ +import { FilterCharactersByName } from '../../domain/usecases' + +export interface FilterCharactersByNameRepository { + filterByName: ( + params: FilterCharactersByNameRepository.Params, + ) => Promise +} + +export namespace FilterCharactersByNameRepository { + export type Params = FilterCharactersByName.Params + export type Result = FilterCharactersByName.Result +} diff --git a/rick-and-morty-app/src/data/protocols/filter-characters-by-species-repository.ts b/rick-and-morty-app/src/data/protocols/filter-characters-by-species-repository.ts new file mode 100644 index 00000000..182d29ab --- /dev/null +++ b/rick-and-morty-app/src/data/protocols/filter-characters-by-species-repository.ts @@ -0,0 +1,12 @@ +import { FilterCharactersBySpecies } from '../../domain/usecases' + +export interface FilterCharactersBySpeciesRepository { + filterBySpecies: ( + params: FilterCharactersBySpeciesRepository.Params, + ) => Promise +} + +export namespace FilterCharactersBySpeciesRepository { + export type Params = FilterCharactersBySpecies.Params + export type Result = FilterCharactersBySpecies.Result +} diff --git a/rick-and-morty-app/src/data/protocols/filter-characters-by-status-repository.ts b/rick-and-morty-app/src/data/protocols/filter-characters-by-status-repository.ts new file mode 100644 index 00000000..a27edd95 --- /dev/null +++ b/rick-and-morty-app/src/data/protocols/filter-characters-by-status-repository.ts @@ -0,0 +1,12 @@ +import { FilterCharactersByStatus } from '../../domain/usecases' + +export interface FilterCharactersByStatusRepository { + filterByStatus: ( + params: FilterCharactersByStatusRepository.Params, + ) => Promise +} + +export namespace FilterCharactersByStatusRepository { + export type Params = FilterCharactersByStatus.Params + export type Result = FilterCharactersByStatus.Result +} diff --git a/rick-and-morty-app/src/data/protocols/get-characters-repository.ts b/rick-and-morty-app/src/data/protocols/get-characters-repository.ts index f3e5b0c9..8ccf3779 100644 --- a/rick-and-morty-app/src/data/protocols/get-characters-repository.ts +++ b/rick-and-morty-app/src/data/protocols/get-characters-repository.ts @@ -5,5 +5,5 @@ export interface GetCharactersRepository { } export namespace GetCharactersRepository { - export type Result = GetCharacters + export type Result = GetCharacters.Result } diff --git a/rick-and-morty-app/src/data/protocols/index.ts b/rick-and-morty-app/src/data/protocols/index.ts index 4b49f169..9f64a420 100644 --- a/rick-and-morty-app/src/data/protocols/index.ts +++ b/rick-and-morty-app/src/data/protocols/index.ts @@ -1,5 +1,5 @@ -export * from './filter-character-by-name-repository' -export * from './filter-character-by-species-repository' -export * from './filter-character-by-status-repository' +export * from './filter-characters-by-name-repository' +export * from './filter-characters-by-species-repository' +export * from './filter-characters-by-status-repository' export * from './get-character-by-id-repository' export * from './get-characters-repository' From 35eea71ff0fdea0f822b3481120cf80387e03f21 Mon Sep 17 00:00:00 2001 From: victor Date: Thu, 30 Jun 2022 18:26:44 -0400 Subject: [PATCH 11/47] fix(domain): fix usecases names --- .../src/domain/usecases/filter-character-by-name.ts | 12 ------------ .../domain/usecases/filter-character-by-species.ts | 12 ------------ .../domain/usecases/filter-character-by-status.ts | 12 ------------ .../src/domain/usecases/filter-characters-by-name.ts | 12 ++++++++++++ .../domain/usecases/filter-characters-by-species.ts | 12 ++++++++++++ .../domain/usecases/filter-characters-by-status.ts | 12 ++++++++++++ rick-and-morty-app/src/domain/usecases/index.ts | 6 +++--- 7 files changed, 39 insertions(+), 39 deletions(-) delete mode 100644 rick-and-morty-app/src/domain/usecases/filter-character-by-name.ts delete mode 100644 rick-and-morty-app/src/domain/usecases/filter-character-by-species.ts delete mode 100644 rick-and-morty-app/src/domain/usecases/filter-character-by-status.ts create mode 100644 rick-and-morty-app/src/domain/usecases/filter-characters-by-name.ts create mode 100644 rick-and-morty-app/src/domain/usecases/filter-characters-by-species.ts create mode 100644 rick-and-morty-app/src/domain/usecases/filter-characters-by-status.ts diff --git a/rick-and-morty-app/src/domain/usecases/filter-character-by-name.ts b/rick-and-morty-app/src/domain/usecases/filter-character-by-name.ts deleted file mode 100644 index 88e6c78c..00000000 --- a/rick-and-morty-app/src/domain/usecases/filter-character-by-name.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { CharacterResponseModel } from '../models' - -export interface FilterCharacterByName { - perform(params: FilterCharacterByName.Params): Promise -} - -export namespace FilterCharacterByName { - export type Params = { - name: string - } - export type Result = CharacterResponseModel -} diff --git a/rick-and-morty-app/src/domain/usecases/filter-character-by-species.ts b/rick-and-morty-app/src/domain/usecases/filter-character-by-species.ts deleted file mode 100644 index bfeeb2c3..00000000 --- a/rick-and-morty-app/src/domain/usecases/filter-character-by-species.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { CharacterResponseModel } from '../models' - -export interface FilterCharacterBySpecies { - perform(params: FilterCharacterBySpecies.Params): Promise -} - -export namespace FilterCharacterBySpecies { - export type Params = { - species: string - } - export type Result = CharacterResponseModel -} diff --git a/rick-and-morty-app/src/domain/usecases/filter-character-by-status.ts b/rick-and-morty-app/src/domain/usecases/filter-character-by-status.ts deleted file mode 100644 index 510a7b3c..00000000 --- a/rick-and-morty-app/src/domain/usecases/filter-character-by-status.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { CharacterResponseModel } from '../models' - -export interface FilterCharacterByStatus { - perform(params: FilterCharacterByStatus.Params): Promise -} - -export namespace FilterCharacterByStatus { - export type Params = { - status: string - } - export type Result = CharacterResponseModel -} diff --git a/rick-and-morty-app/src/domain/usecases/filter-characters-by-name.ts b/rick-and-morty-app/src/domain/usecases/filter-characters-by-name.ts new file mode 100644 index 00000000..0f7e45e3 --- /dev/null +++ b/rick-and-morty-app/src/domain/usecases/filter-characters-by-name.ts @@ -0,0 +1,12 @@ +import { CharacterResponseModel } from '../models' + +export interface FilterCharactersByName { + perform(params: FilterCharactersByName.Params): Promise +} + +export namespace FilterCharactersByName { + export type Params = { + name: string + } + export type Result = CharacterResponseModel +} diff --git a/rick-and-morty-app/src/domain/usecases/filter-characters-by-species.ts b/rick-and-morty-app/src/domain/usecases/filter-characters-by-species.ts new file mode 100644 index 00000000..db1541de --- /dev/null +++ b/rick-and-morty-app/src/domain/usecases/filter-characters-by-species.ts @@ -0,0 +1,12 @@ +import { CharacterResponseModel } from '../models' + +export interface FilterCharactersBySpecies { + perform(params: FilterCharactersBySpecies.Params): Promise +} + +export namespace FilterCharactersBySpecies { + export type Params = { + species: string + } + export type Result = CharacterResponseModel +} diff --git a/rick-and-morty-app/src/domain/usecases/filter-characters-by-status.ts b/rick-and-morty-app/src/domain/usecases/filter-characters-by-status.ts new file mode 100644 index 00000000..4079dfd3 --- /dev/null +++ b/rick-and-morty-app/src/domain/usecases/filter-characters-by-status.ts @@ -0,0 +1,12 @@ +import { CharacterResponseModel } from '../models' + +export interface FilterCharactersByStatus { + perform(params: FilterCharactersByStatus.Params): Promise +} + +export namespace FilterCharactersByStatus { + export type Params = { + status: string + } + export type Result = CharacterResponseModel +} diff --git a/rick-and-morty-app/src/domain/usecases/index.ts b/rick-and-morty-app/src/domain/usecases/index.ts index 9591b392..aaf2e592 100644 --- a/rick-and-morty-app/src/domain/usecases/index.ts +++ b/rick-and-morty-app/src/domain/usecases/index.ts @@ -1,5 +1,5 @@ export * from './get-characters' export * from './get-character-by-id' -export * from './filter-character-by-name' -export * from './filter-character-by-species' -export * from './filter-character-by-status' +export * from './filter-characters-by-name' +export * from './filter-characters-by-species' +export * from './filter-characters-by-status' From d0bf7de393e592dbffc00b6d51e6678112e08e13 Mon Sep 17 00:00:00 2001 From: victor Date: Thu, 30 Jun 2022 18:54:37 -0400 Subject: [PATCH 12/47] feat(data): create usecases protocols --- rick-and-morty-app/src/data/usecases/index.ts | 5 +++++ .../usecases/remote-filter-characters-by-name.ts | 12 ++++++++++++ .../remote-filter-characters-by-species.ts | 14 ++++++++++++++ .../usecases/remote-filter-characters-by-status.ts | 12 ++++++++++++ .../data/usecases/remote-get-characters-by-id.ts | 11 +++++++++++ .../src/data/usecases/remote-get-characters.ts | 11 +++++++++++ 6 files changed, 65 insertions(+) create mode 100644 rick-and-morty-app/src/data/usecases/index.ts create mode 100644 rick-and-morty-app/src/data/usecases/remote-filter-characters-by-name.ts create mode 100644 rick-and-morty-app/src/data/usecases/remote-filter-characters-by-species.ts create mode 100644 rick-and-morty-app/src/data/usecases/remote-filter-characters-by-status.ts create mode 100644 rick-and-morty-app/src/data/usecases/remote-get-characters-by-id.ts create mode 100644 rick-and-morty-app/src/data/usecases/remote-get-characters.ts diff --git a/rick-and-morty-app/src/data/usecases/index.ts b/rick-and-morty-app/src/data/usecases/index.ts new file mode 100644 index 00000000..f15c3daf --- /dev/null +++ b/rick-and-morty-app/src/data/usecases/index.ts @@ -0,0 +1,5 @@ +export * from './remote-filter-characters-by-name' +export * from './remote-filter-characters-by-status' +export * from './remote-filter-characters-by-species' +export * from './remote-get-characters' +export * from './remote-get-characters-by-id' diff --git a/rick-and-morty-app/src/data/usecases/remote-filter-characters-by-name.ts b/rick-and-morty-app/src/data/usecases/remote-filter-characters-by-name.ts new file mode 100644 index 00000000..01a714a6 --- /dev/null +++ b/rick-and-morty-app/src/data/usecases/remote-filter-characters-by-name.ts @@ -0,0 +1,12 @@ +import { FilterCharactersByName } from '../../domain/usecases' +import { FilterCharactersByNameRepository } from '../protocols' + +export class RemoteFilterCharactersByName implements FilterCharactersByName { + constructor( + private readonly filterCharactersByNameRepository: FilterCharactersByNameRepository, + ) {} + async perform(params: FilterCharactersByName.Params): Promise { + const characters = await this.filterCharactersByNameRepository.filterByName(params) + return characters + } +} diff --git a/rick-and-morty-app/src/data/usecases/remote-filter-characters-by-species.ts b/rick-and-morty-app/src/data/usecases/remote-filter-characters-by-species.ts new file mode 100644 index 00000000..ad5f98b0 --- /dev/null +++ b/rick-and-morty-app/src/data/usecases/remote-filter-characters-by-species.ts @@ -0,0 +1,14 @@ +import { FilterCharactersBySpecies } from '../../domain/usecases' +import { FilterCharactersBySpeciesRepository } from '../protocols' + +export class RemoteFilterCharactersBySpecies implements FilterCharactersBySpecies { + constructor( + private readonly filterCharactersBySpeciesRepository: FilterCharactersBySpeciesRepository, + ) {} + async perform( + params: FilterCharactersBySpecies.Params, + ): Promise { + const characters = await this.filterCharactersBySpeciesRepository.filterBySpecies(params) + return characters + } +} diff --git a/rick-and-morty-app/src/data/usecases/remote-filter-characters-by-status.ts b/rick-and-morty-app/src/data/usecases/remote-filter-characters-by-status.ts new file mode 100644 index 00000000..f7943007 --- /dev/null +++ b/rick-and-morty-app/src/data/usecases/remote-filter-characters-by-status.ts @@ -0,0 +1,12 @@ +import { FilterCharactersByStatus } from '../../domain/usecases' +import { FilterCharactersByStatusRepository } from '../protocols' + +export class RemoteFilterCharactersByStatus implements FilterCharactersByStatus { + constructor( + private readonly filterCharactersByStatusRepository: FilterCharactersByStatusRepository, + ) {} + async perform(params: FilterCharactersByStatus.Params): Promise { + const characters = await this.filterCharactersByStatusRepository.filterByStatus(params) + return characters + } +} diff --git a/rick-and-morty-app/src/data/usecases/remote-get-characters-by-id.ts b/rick-and-morty-app/src/data/usecases/remote-get-characters-by-id.ts new file mode 100644 index 00000000..b06dbdbf --- /dev/null +++ b/rick-and-morty-app/src/data/usecases/remote-get-characters-by-id.ts @@ -0,0 +1,11 @@ +import { GetCharacterById } from '../../domain/usecases' +import { GetCharacterByIdRepository } from '../protocols' + +export class RemoteGetCharactersById implements GetCharacterById { + constructor(private readonly getCharacterByIdRepository: GetCharacterByIdRepository) {} + + async perform(params: GetCharacterById.Params): Promise { + const characters = await this.getCharacterByIdRepository.getById(params) + return characters + } +} diff --git a/rick-and-morty-app/src/data/usecases/remote-get-characters.ts b/rick-and-morty-app/src/data/usecases/remote-get-characters.ts new file mode 100644 index 00000000..ff47002f --- /dev/null +++ b/rick-and-morty-app/src/data/usecases/remote-get-characters.ts @@ -0,0 +1,11 @@ +import { GetCharacters } from '../../domain/usecases' +import { GetCharactersRepository } from '../protocols' + +export class RemoteGetCharacters implements GetCharacters { + constructor(private readonly getCharactersRepository: GetCharactersRepository) {} + + async perform(): Promise { + const characters = await this.getCharactersRepository.getCharacters() + return characters + } +} From 4022e2b9cfcb519008daeaa794e3bc931d388ae0 Mon Sep 17 00:00:00 2001 From: victor Date: Thu, 30 Jun 2022 18:56:30 -0400 Subject: [PATCH 13/47] chore(deps): Add axios --- rick-and-morty-app/package-lock.json | 140 +++++++++++++++++++++++++++ rick-and-morty-app/package.json | 1 + 2 files changed, 141 insertions(+) diff --git a/rick-and-morty-app/package-lock.json b/rick-and-morty-app/package-lock.json index b0d1fccb..bcac334a 100644 --- a/rick-and-morty-app/package-lock.json +++ b/rick-and-morty-app/package-lock.json @@ -11,6 +11,7 @@ "@emotion/react": "^11.9.3", "@emotion/styled": "^11.9.3", "@mui/material": "^5.8.6", + "axios": "^0.27.2", "react": "^18.0.0", "react-dom": "^18.0.0", "react-router-dom": "^6.3.0", @@ -1425,6 +1426,20 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "dependencies": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + }, "node_modules/babel-plugin-macros": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz", @@ -1604,6 +1619,17 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -1699,6 +1725,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -2822,6 +2856,38 @@ "integrity": "sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==", "dev": true }, + "node_modules/follow-redirects": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", + "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -3545,6 +3611,25 @@ "node": ">=8.6" } }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -5625,6 +5710,20 @@ "es-shim-unscopables": "^1.0.0" } }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "requires": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + }, "babel-plugin-macros": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz", @@ -5748,6 +5847,14 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -5820,6 +5927,11 @@ "object-keys": "^1.1.1" } }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, "dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -6584,6 +6696,21 @@ "integrity": "sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==", "dev": true }, + "follow-redirects": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", + "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==" + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -7099,6 +7226,19 @@ "picomatch": "^2.3.1" } }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, "minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", diff --git a/rick-and-morty-app/package.json b/rick-and-morty-app/package.json index 706a7e8c..1f6633b9 100644 --- a/rick-and-morty-app/package.json +++ b/rick-and-morty-app/package.json @@ -14,6 +14,7 @@ "@emotion/react": "^11.9.3", "@emotion/styled": "^11.9.3", "@mui/material": "^5.8.6", + "axios": "^0.27.2", "react": "^18.0.0", "react-dom": "^18.0.0", "react-router-dom": "^6.3.0", From 768aa4d6ac18fd233238b52f8f1b38004124f62c Mon Sep 17 00:00:00 2001 From: victor Date: Thu, 30 Jun 2022 19:07:56 -0400 Subject: [PATCH 14/47] feat(infra): create http protocol --- rick-and-morty-app/src/infra/http/axios-http.ts | 5 +++++ rick-and-morty-app/src/infra/http/index.ts | 1 + 2 files changed, 6 insertions(+) create mode 100644 rick-and-morty-app/src/infra/http/axios-http.ts create mode 100644 rick-and-morty-app/src/infra/http/index.ts diff --git a/rick-and-morty-app/src/infra/http/axios-http.ts b/rick-and-morty-app/src/infra/http/axios-http.ts new file mode 100644 index 00000000..24ab6cca --- /dev/null +++ b/rick-and-morty-app/src/infra/http/axios-http.ts @@ -0,0 +1,5 @@ +import axios from 'axios' + +export const api = axios.create({ + baseURL: 'https://rickandmortyapi.com/api', +}) diff --git a/rick-and-morty-app/src/infra/http/index.ts b/rick-and-morty-app/src/infra/http/index.ts new file mode 100644 index 00000000..cfde239f --- /dev/null +++ b/rick-and-morty-app/src/infra/http/index.ts @@ -0,0 +1 @@ +export * from './axios-http' From 195807277e87fe5a508baef51ae9df81032f1bda Mon Sep 17 00:00:00 2001 From: victor Date: Thu, 30 Jun 2022 19:33:30 -0400 Subject: [PATCH 15/47] feat(domain): add pagination --- .../src/domain/usecases/filter-characters-by-name.ts | 1 + .../src/domain/usecases/filter-characters-by-species.ts | 1 + .../src/domain/usecases/filter-characters-by-status.ts | 1 + rick-and-morty-app/src/domain/usecases/get-characters.ts | 5 ++++- 4 files changed, 7 insertions(+), 1 deletion(-) diff --git a/rick-and-morty-app/src/domain/usecases/filter-characters-by-name.ts b/rick-and-morty-app/src/domain/usecases/filter-characters-by-name.ts index 0f7e45e3..0e4df79c 100644 --- a/rick-and-morty-app/src/domain/usecases/filter-characters-by-name.ts +++ b/rick-and-morty-app/src/domain/usecases/filter-characters-by-name.ts @@ -7,6 +7,7 @@ export interface FilterCharactersByName { export namespace FilterCharactersByName { export type Params = { name: string + page: number } export type Result = CharacterResponseModel } diff --git a/rick-and-morty-app/src/domain/usecases/filter-characters-by-species.ts b/rick-and-morty-app/src/domain/usecases/filter-characters-by-species.ts index db1541de..516db5fe 100644 --- a/rick-and-morty-app/src/domain/usecases/filter-characters-by-species.ts +++ b/rick-and-morty-app/src/domain/usecases/filter-characters-by-species.ts @@ -7,6 +7,7 @@ export interface FilterCharactersBySpecies { export namespace FilterCharactersBySpecies { export type Params = { species: string + page: number } export type Result = CharacterResponseModel } diff --git a/rick-and-morty-app/src/domain/usecases/filter-characters-by-status.ts b/rick-and-morty-app/src/domain/usecases/filter-characters-by-status.ts index 4079dfd3..6e54d37d 100644 --- a/rick-and-morty-app/src/domain/usecases/filter-characters-by-status.ts +++ b/rick-and-morty-app/src/domain/usecases/filter-characters-by-status.ts @@ -7,6 +7,7 @@ export interface FilterCharactersByStatus { export namespace FilterCharactersByStatus { export type Params = { status: string + page: number } export type Result = CharacterResponseModel } diff --git a/rick-and-morty-app/src/domain/usecases/get-characters.ts b/rick-and-morty-app/src/domain/usecases/get-characters.ts index e17b18bf..65be59a8 100644 --- a/rick-and-morty-app/src/domain/usecases/get-characters.ts +++ b/rick-and-morty-app/src/domain/usecases/get-characters.ts @@ -1,9 +1,12 @@ import { CharacterResponseModel } from '../models' export interface GetCharacters { - perform(): Promise + perform(params: GetCharacters.Params): Promise } export namespace GetCharacters { + export type Params = { + page: number + } export type Result = CharacterResponseModel } From 01032ed36df36b30be1f179ecb27306a647e92bc Mon Sep 17 00:00:00 2001 From: victor Date: Thu, 30 Jun 2022 19:34:03 -0400 Subject: [PATCH 16/47] feat(data): add pagination --- .../src/data/protocols/get-characters-repository.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rick-and-morty-app/src/data/protocols/get-characters-repository.ts b/rick-and-morty-app/src/data/protocols/get-characters-repository.ts index 8ccf3779..5c03d901 100644 --- a/rick-and-morty-app/src/data/protocols/get-characters-repository.ts +++ b/rick-and-morty-app/src/data/protocols/get-characters-repository.ts @@ -1,9 +1,10 @@ import { GetCharacters } from '../../domain/usecases' export interface GetCharactersRepository { - getCharacters(): Promise + getCharacters(params: GetCharactersRepository.Params): Promise } export namespace GetCharactersRepository { + export type Params = GetCharacters.Params export type Result = GetCharacters.Result } From 28466c5135156b0255946e58ab61ab080da5049d Mon Sep 17 00:00:00 2001 From: victor Date: Thu, 30 Jun 2022 19:34:19 -0400 Subject: [PATCH 17/47] feat(data): add pagination --- rick-and-morty-app/src/data/usecases/remote-get-characters.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rick-and-morty-app/src/data/usecases/remote-get-characters.ts b/rick-and-morty-app/src/data/usecases/remote-get-characters.ts index ff47002f..c5dafae1 100644 --- a/rick-and-morty-app/src/data/usecases/remote-get-characters.ts +++ b/rick-and-morty-app/src/data/usecases/remote-get-characters.ts @@ -4,8 +4,8 @@ import { GetCharactersRepository } from '../protocols' export class RemoteGetCharacters implements GetCharacters { constructor(private readonly getCharactersRepository: GetCharactersRepository) {} - async perform(): Promise { - const characters = await this.getCharactersRepository.getCharacters() + async perform(params: GetCharacters.Params): Promise { + const characters = await this.getCharactersRepository.getCharacters(params) return characters } } From e830d7ad768d88c4c3048ae5e1bc344fd8083605 Mon Sep 17 00:00:00 2001 From: victor Date: Thu, 30 Jun 2022 19:48:40 -0400 Subject: [PATCH 18/47] feat(domain): add error on filters usecases --- .../src/domain/usecases/filter-characters-by-name.ts | 2 +- .../src/domain/usecases/filter-characters-by-species.ts | 2 +- .../src/domain/usecases/filter-characters-by-status.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/rick-and-morty-app/src/domain/usecases/filter-characters-by-name.ts b/rick-and-morty-app/src/domain/usecases/filter-characters-by-name.ts index 0e4df79c..fb42e305 100644 --- a/rick-and-morty-app/src/domain/usecases/filter-characters-by-name.ts +++ b/rick-and-morty-app/src/domain/usecases/filter-characters-by-name.ts @@ -9,5 +9,5 @@ export namespace FilterCharactersByName { name: string page: number } - export type Result = CharacterResponseModel + export type Result = CharacterResponseModel | null } diff --git a/rick-and-morty-app/src/domain/usecases/filter-characters-by-species.ts b/rick-and-morty-app/src/domain/usecases/filter-characters-by-species.ts index 516db5fe..953db7ab 100644 --- a/rick-and-morty-app/src/domain/usecases/filter-characters-by-species.ts +++ b/rick-and-morty-app/src/domain/usecases/filter-characters-by-species.ts @@ -9,5 +9,5 @@ export namespace FilterCharactersBySpecies { species: string page: number } - export type Result = CharacterResponseModel + export type Result = CharacterResponseModel | null } diff --git a/rick-and-morty-app/src/domain/usecases/filter-characters-by-status.ts b/rick-and-morty-app/src/domain/usecases/filter-characters-by-status.ts index 6e54d37d..69a67d0a 100644 --- a/rick-and-morty-app/src/domain/usecases/filter-characters-by-status.ts +++ b/rick-and-morty-app/src/domain/usecases/filter-characters-by-status.ts @@ -9,5 +9,5 @@ export namespace FilterCharactersByStatus { status: string page: number } - export type Result = CharacterResponseModel + export type Result = CharacterResponseModel | null } From c7d0af39dc65bc5232bcb8343811fc687460a69f Mon Sep 17 00:00:00 2001 From: victor Date: Thu, 30 Jun 2022 19:49:08 -0400 Subject: [PATCH 19/47] feat(infra): create characters repository --- rick-and-morty-app/src/infra/db/repository.ts | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 rick-and-morty-app/src/infra/db/repository.ts diff --git a/rick-and-morty-app/src/infra/db/repository.ts b/rick-and-morty-app/src/infra/db/repository.ts new file mode 100644 index 00000000..ae47b7ac --- /dev/null +++ b/rick-and-morty-app/src/infra/db/repository.ts @@ -0,0 +1,67 @@ +import { Axios } from 'axios' +import { + FilterCharactersByNameRepository, + FilterCharactersBySpeciesRepository, + FilterCharactersByStatusRepository, + GetCharacterByIdRepository, + GetCharactersRepository, +} from '../../data/protocols' + +export class CharactersRepository + implements + GetCharactersRepository, + GetCharacterByIdRepository, + FilterCharactersByNameRepository, + FilterCharactersBySpeciesRepository, + FilterCharactersByStatusRepository +{ + constructor(private readonly api: Axios) {} + async getCharacters( + params: GetCharactersRepository.Params, + ): Promise { + const response = await this.api.get(`/character?page=${params.page}`) + return response.data + } + + async getById( + params: GetCharacterByIdRepository.Params, + ): Promise { + const response = await this.api.get(`/character/${params.id}`) + return response.data + } + + async filterByName( + params: FilterCharactersByNameRepository.Params, + ): Promise { + try { + const response = await this.api.get(`/character?page=${params.page}&name=${params.name}`) + return response.data + } catch (error) { + return null + } + } + + async filterBySpecies( + params: FilterCharactersBySpeciesRepository.Params, + ): Promise { + try { + const response = await this.api.get( + `/character?page=${params.page}&species=${params.species}`, + ) + return response.data + } catch (error) { + return null + } + } + + async filterByStatus( + params: FilterCharactersByStatusRepository.Params, + ): Promise { + try { + const response = await this.api.get(`/character?page=${params.page}&status=${params.status}`) + return response.data + } catch (error) { + return null + } + } +} From 390c4d0174bd3a6e2ea8fd0a81f1f27d92c0a169 Mon Sep 17 00:00:00 2001 From: victor Date: Thu, 30 Jun 2022 19:51:56 -0400 Subject: [PATCH 20/47] feat(main): create fatories usecases --- rick-and-morty-app/src/main/fatories/usecases/index.ts | 5 +++++ .../fatories/usecases/makeRemoteFilterCharactersByName.ts | 8 ++++++++ .../usecases/makeRemoteFilterCharactersBySpecies.ts | 8 ++++++++ .../usecases/makeRemoteFilterCharactersByStatus.ts | 8 ++++++++ .../main/fatories/usecases/makeRemoteGetCharacterById.ts | 8 ++++++++ .../src/main/fatories/usecases/makeRemoteGetCharacters.ts | 8 ++++++++ 6 files changed, 45 insertions(+) create mode 100644 rick-and-morty-app/src/main/fatories/usecases/index.ts create mode 100644 rick-and-morty-app/src/main/fatories/usecases/makeRemoteFilterCharactersByName.ts create mode 100644 rick-and-morty-app/src/main/fatories/usecases/makeRemoteFilterCharactersBySpecies.ts create mode 100644 rick-and-morty-app/src/main/fatories/usecases/makeRemoteFilterCharactersByStatus.ts create mode 100644 rick-and-morty-app/src/main/fatories/usecases/makeRemoteGetCharacterById.ts create mode 100644 rick-and-morty-app/src/main/fatories/usecases/makeRemoteGetCharacters.ts diff --git a/rick-and-morty-app/src/main/fatories/usecases/index.ts b/rick-and-morty-app/src/main/fatories/usecases/index.ts new file mode 100644 index 00000000..e1259380 --- /dev/null +++ b/rick-and-morty-app/src/main/fatories/usecases/index.ts @@ -0,0 +1,5 @@ +export * from './makeRemoteFilterCharactersByName' +export * from './makeRemoteFilterCharactersBySpecies' +export * from './makeRemoteFilterCharactersByStatus' +export * from './makeRemoteGetCharacters' +export * from './makeRemoteGetCharacterById' diff --git a/rick-and-morty-app/src/main/fatories/usecases/makeRemoteFilterCharactersByName.ts b/rick-and-morty-app/src/main/fatories/usecases/makeRemoteFilterCharactersByName.ts new file mode 100644 index 00000000..c42ed2f6 --- /dev/null +++ b/rick-and-morty-app/src/main/fatories/usecases/makeRemoteFilterCharactersByName.ts @@ -0,0 +1,8 @@ +import { RemoteFilterCharactersByName } from '../../../data/usecases' +import { FilterCharactersByName } from '../../../domain/usecases' +import { CharactersRepository } from '../../../infra/db/repository' +import { api } from '../../../infra/http' + +export const makeRemoteFilterCharactersByName = (): FilterCharactersByName => { + return new RemoteFilterCharactersByName(new CharactersRepository(api)) +} diff --git a/rick-and-morty-app/src/main/fatories/usecases/makeRemoteFilterCharactersBySpecies.ts b/rick-and-morty-app/src/main/fatories/usecases/makeRemoteFilterCharactersBySpecies.ts new file mode 100644 index 00000000..d3e6fa43 --- /dev/null +++ b/rick-and-morty-app/src/main/fatories/usecases/makeRemoteFilterCharactersBySpecies.ts @@ -0,0 +1,8 @@ +import { RemoteFilterCharactersBySpecies } from '../../../data/usecases' +import { FilterCharactersBySpecies } from '../../../domain/usecases' +import { CharactersRepository } from '../../../infra/db/repository' +import { api } from '../../../infra/http' + +export const makeRemoteFilterCharactersBySpecies = (): FilterCharactersBySpecies => { + return new RemoteFilterCharactersBySpecies(new CharactersRepository(api)) +} diff --git a/rick-and-morty-app/src/main/fatories/usecases/makeRemoteFilterCharactersByStatus.ts b/rick-and-morty-app/src/main/fatories/usecases/makeRemoteFilterCharactersByStatus.ts new file mode 100644 index 00000000..e74c3a46 --- /dev/null +++ b/rick-and-morty-app/src/main/fatories/usecases/makeRemoteFilterCharactersByStatus.ts @@ -0,0 +1,8 @@ +import { RemoteFilterCharactersByStatus } from '../../../data/usecases' +import { FilterCharactersByStatus } from '../../../domain/usecases' +import { CharactersRepository } from '../../../infra/db/repository' +import { api } from '../../../infra/http' + +export const makeRemoteFilterCharactersByStatus = (): FilterCharactersByStatus => { + return new RemoteFilterCharactersByStatus(new CharactersRepository(api)) +} diff --git a/rick-and-morty-app/src/main/fatories/usecases/makeRemoteGetCharacterById.ts b/rick-and-morty-app/src/main/fatories/usecases/makeRemoteGetCharacterById.ts new file mode 100644 index 00000000..2f5cfd9b --- /dev/null +++ b/rick-and-morty-app/src/main/fatories/usecases/makeRemoteGetCharacterById.ts @@ -0,0 +1,8 @@ +import { RemoteGetCharactersById } from '../../../data/usecases' +import { GetCharacterById } from '../../../domain/usecases' +import { CharactersRepository } from '../../../infra/db/repository' +import { api } from '../../../infra/http' + +export const makeRemoteGetCharacterById = (): GetCharacterById => { + return new RemoteGetCharactersById(new CharactersRepository(api)) +} diff --git a/rick-and-morty-app/src/main/fatories/usecases/makeRemoteGetCharacters.ts b/rick-and-morty-app/src/main/fatories/usecases/makeRemoteGetCharacters.ts new file mode 100644 index 00000000..9c9d34b7 --- /dev/null +++ b/rick-and-morty-app/src/main/fatories/usecases/makeRemoteGetCharacters.ts @@ -0,0 +1,8 @@ +import { RemoteGetCharacters } from '../../../data/usecases' +import { GetCharacters } from '../../../domain/usecases' +import { CharactersRepository } from '../../../infra/db/repository' +import { api } from '../../../infra/http' + +export const makeRemoteGetCharacters = (): GetCharacters => { + return new RemoteGetCharacters(new CharactersRepository(api)) +} From a552644205b2f420343073176f368ff17cdadd34 Mon Sep 17 00:00:00 2001 From: victor Date: Thu, 30 Jun 2022 19:52:34 -0400 Subject: [PATCH 21/47] fix(tsconfig): fix tsconfig --- rick-and-morty-app/tsconfig.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rick-and-morty-app/tsconfig.json b/rick-and-morty-app/tsconfig.json index 3d0a51a8..d1e1fd57 100644 --- a/rick-and-morty-app/tsconfig.json +++ b/rick-and-morty-app/tsconfig.json @@ -16,6 +16,6 @@ "noEmit": true, "jsx": "react-jsx" }, - "include": ["src"], + "include": ["src", "src/vite-env.d.ts", "src/main.tsx", "src/App.tsx", "src/vite-env.d.ts"], "references": [{ "path": "./tsconfig.node.json" }] } From 4625da5a9ce28399a177295bc333e1713120964b Mon Sep 17 00:00:00 2001 From: victor Date: Thu, 30 Jun 2022 19:53:05 -0400 Subject: [PATCH 22/47] feat(eslint): add rule to eslint --- rick-and-morty-app/.eslintrc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rick-and-morty-app/.eslintrc.json b/rick-and-morty-app/.eslintrc.json index 90f58741..e0143fcf 100644 --- a/rick-and-morty-app/.eslintrc.json +++ b/rick-and-morty-app/.eslintrc.json @@ -17,7 +17,7 @@ "sourceType": "module" }, "plugins": ["react", "@typescript-eslint", "prettier", "react-hooks"], - "rules": {}, + "rules": { "@typescript-eslint/no-namespace": "off" }, "settings": { "import/resolver": { "typescript": {} From eeadd87a8275f86a3561b918aa569ec9d54350b8 Mon Sep 17 00:00:00 2001 From: victor Date: Fri, 1 Jul 2022 19:35:40 -0400 Subject: [PATCH 23/47] feat(routes): add routes --- rick-and-morty-app/src/App.tsx | 4 +++- rick-and-morty-app/src/main.tsx | 3 ++- .../presentation/pages/SingleCharacter/index.tsx | 5 +++++ .../src/presentation/pages/home/index.tsx | 5 +++++ .../src/presentation/routes/RouterList.tsx | 15 +++++++++++++++ 5 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 rick-and-morty-app/src/presentation/pages/SingleCharacter/index.tsx create mode 100644 rick-and-morty-app/src/presentation/pages/home/index.tsx create mode 100644 rick-and-morty-app/src/presentation/routes/RouterList.tsx diff --git a/rick-and-morty-app/src/App.tsx b/rick-and-morty-app/src/App.tsx index a66d0573..dc0b2899 100644 --- a/rick-and-morty-app/src/App.tsx +++ b/rick-and-morty-app/src/App.tsx @@ -1,7 +1,9 @@ import React from 'react' +import RouterList from './presentation/routes/RouterList' + function App() { - return
+ return } export default App diff --git a/rick-and-morty-app/src/main.tsx b/rick-and-morty-app/src/main.tsx index 4a1b1509..5f50e00c 100644 --- a/rick-and-morty-app/src/main.tsx +++ b/rick-and-morty-app/src/main.tsx @@ -3,8 +3,9 @@ import ReactDOM from 'react-dom/client' import App from './App' import './index.css' +// eslint-disable-next-line @typescript-eslint/no-non-null-assertion ReactDOM.createRoot(document.getElementById('root')!).render( - + , ) diff --git a/rick-and-morty-app/src/presentation/pages/SingleCharacter/index.tsx b/rick-and-morty-app/src/presentation/pages/SingleCharacter/index.tsx new file mode 100644 index 00000000..54bb6b88 --- /dev/null +++ b/rick-and-morty-app/src/presentation/pages/SingleCharacter/index.tsx @@ -0,0 +1,5 @@ +import React from 'react' + +export const SingleCharacter = () => { + return
SingleCharacter
+} diff --git a/rick-and-morty-app/src/presentation/pages/home/index.tsx b/rick-and-morty-app/src/presentation/pages/home/index.tsx new file mode 100644 index 00000000..82196a19 --- /dev/null +++ b/rick-and-morty-app/src/presentation/pages/home/index.tsx @@ -0,0 +1,5 @@ +import React from 'react' + +export const Home = () => { + return
Home
+} diff --git a/rick-and-morty-app/src/presentation/routes/RouterList.tsx b/rick-and-morty-app/src/presentation/routes/RouterList.tsx new file mode 100644 index 00000000..abf7c9bc --- /dev/null +++ b/rick-and-morty-app/src/presentation/routes/RouterList.tsx @@ -0,0 +1,15 @@ +import React from 'react' +import { BrowserRouter, Route, Routes } from 'react-router-dom' +import { Home } from '../pages/home' +import { SingleCharacter } from '../pages/SingleCharacter' + +export default function RouterList() { + return ( + + + } /> + } /> + + + ) +} From 05cccd536f02915412cdfe4654b7c4b2c9134cbc Mon Sep 17 00:00:00 2001 From: victor Date: Fri, 1 Jul 2022 19:38:06 -0400 Subject: [PATCH 24/47] feat(theme): add theme provider --- rick-and-morty-app/src/App.tsx | 8 +++++++- rick-and-morty-app/src/presentation/theme/theme.ts | 13 +++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 rick-and-morty-app/src/presentation/theme/theme.ts diff --git a/rick-and-morty-app/src/App.tsx b/rick-and-morty-app/src/App.tsx index dc0b2899..0a96e844 100644 --- a/rick-and-morty-app/src/App.tsx +++ b/rick-and-morty-app/src/App.tsx @@ -1,9 +1,15 @@ +import { ThemeProvider } from '@mui/material' import React from 'react' import RouterList from './presentation/routes/RouterList' +import { theme } from './presentation/theme/theme' function App() { - return + return ( + + + + ) } export default App diff --git a/rick-and-morty-app/src/presentation/theme/theme.ts b/rick-and-morty-app/src/presentation/theme/theme.ts new file mode 100644 index 00000000..bd46a6f0 --- /dev/null +++ b/rick-and-morty-app/src/presentation/theme/theme.ts @@ -0,0 +1,13 @@ +import { createTheme } from '@mui/material' + +export const theme = createTheme({ + palette: { + mode: 'dark', + primary: { + main: '#03C03C', + }, + secondary: { + main: '#653496', + }, + }, +}) From dc25635b04bb2ea466f37cb954c40ef2609ca8fe Mon Sep 17 00:00:00 2001 From: victor Date: Fri, 1 Jul 2022 20:07:09 -0400 Subject: [PATCH 25/47] feat(Header): add header component --- rick-and-morty-app/src/App.tsx | 6 +++--- rick-and-morty-app/src/index.css | 13 ------------- rick-and-morty-app/src/main.tsx | 1 - .../src/presentation/assets/logo.png | Bin 0 -> 137548 bytes .../presentation/components/Header.style.scss | 9 +++++++++ .../src/presentation/components/Header.tsx | 11 +++++++++++ .../src/presentation/pages/home/index.tsx | 9 ++++++++- .../src/presentation/pages/home/style.scss | 5 +++++ 8 files changed, 36 insertions(+), 18 deletions(-) delete mode 100644 rick-and-morty-app/src/index.css create mode 100644 rick-and-morty-app/src/presentation/assets/logo.png create mode 100644 rick-and-morty-app/src/presentation/components/Header.style.scss create mode 100644 rick-and-morty-app/src/presentation/components/Header.tsx create mode 100644 rick-and-morty-app/src/presentation/pages/home/style.scss diff --git a/rick-and-morty-app/src/App.tsx b/rick-and-morty-app/src/App.tsx index 0a96e844..43f7722f 100644 --- a/rick-and-morty-app/src/App.tsx +++ b/rick-and-morty-app/src/App.tsx @@ -1,12 +1,12 @@ -import { ThemeProvider } from '@mui/material' import React from 'react' - -import RouterList from './presentation/routes/RouterList' +import { CssBaseline, ThemeProvider } from '@mui/material' import { theme } from './presentation/theme/theme' +import RouterList from './presentation/routes/RouterList' function App() { return ( + ) diff --git a/rick-and-morty-app/src/index.css b/rick-and-morty-app/src/index.css deleted file mode 100644 index ec2585e8..00000000 --- a/rick-and-morty-app/src/index.css +++ /dev/null @@ -1,13 +0,0 @@ -body { - margin: 0; - font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', - 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', - sans-serif; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -code { - font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', - monospace; -} diff --git a/rick-and-morty-app/src/main.tsx b/rick-and-morty-app/src/main.tsx index 5f50e00c..bb27b3f0 100644 --- a/rick-and-morty-app/src/main.tsx +++ b/rick-and-morty-app/src/main.tsx @@ -1,7 +1,6 @@ import React from 'react' import ReactDOM from 'react-dom/client' import App from './App' -import './index.css' // eslint-disable-next-line @typescript-eslint/no-non-null-assertion ReactDOM.createRoot(document.getElementById('root')!).render( diff --git a/rick-and-morty-app/src/presentation/assets/logo.png b/rick-and-morty-app/src/presentation/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..1fc53771e073bdad8c034f06c7b39772cb32d7da GIT binary patch literal 137548 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�G9Gi)76SK&*45WIs&UNHvby&R zq+&j{5KHK~%M&3umR?N-@gL#ECHXW0t1ZpA6vFKr@VYGmDzBY4(EYI1$R8_H_=?wA z)jEd;32t8LI{t17#8Csr#7~>+bMq==f(;+zZU(cePDWGdrd`RG?toM3F;c1a`O#pG zKJEL>9(rZcXJQ#Gpg0{7HaMJ+W3Wjl=!vtptgXt*D8ZAp@1cC{WMvG#3242%dzaST z#;fgcv7U%sJpnuzWNm)XY*@@i3(CShu)d^lU*l?e9v*VZYnJ^e{sfyi-Hc2kscWv6 zqi*px)23BFdo%^|y|TP^<;c=23_H3loX%)n1|oE(Om*(LK2?8!=Da>Tyf0cCh1x2) z@6<;ID*IP0CSy7qhkkSLp37yYZr-|Kio`aBIrSS(4ZQkCIwoZq)s_1pJ#Cg`M_G=U z(DAh>vIHFEq^eA5KH`!aDLhc59RK-}F(kK968TH2>G+`mJ9h@L`k@|Gl=UUEQTadC z7ZEiap-zEvHtmM;xa`S~PgGruyLS{sZ$Lg-$04ekEnl*75uvU<;(5v#G;#EPLt}JF z*Yg9yj@fzI1%ng|Qx=1&Y4&%*lRWO=*)mwOQnR&a3c^K>+3U#*)$Lsue*pvv zO}FfVwG^{#w?xYrqjisto1>Q6ux7e4dNiZ`C%oN)v}ZRKlZka?xy
2Fd;BrOhuD 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
9En;NeErf9P;& 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 N002ovPDHLkV1j{^Z_@w( literal 0 HcmV?d00001 diff --git a/rick-and-morty-app/src/presentation/components/Header.style.scss b/rick-and-morty-app/src/presentation/components/Header.style.scss new file mode 100644 index 00000000..b7365b4e --- /dev/null +++ b/rick-and-morty-app/src/presentation/components/Header.style.scss @@ -0,0 +1,9 @@ +.logo{ + width: 300px; +} +.container { + display: flex; + justify-content: center; + align-items: center; + padding: 10px 0; +} diff --git a/rick-and-morty-app/src/presentation/components/Header.tsx b/rick-and-morty-app/src/presentation/components/Header.tsx new file mode 100644 index 00000000..22110b06 --- /dev/null +++ b/rick-and-morty-app/src/presentation/components/Header.tsx @@ -0,0 +1,11 @@ +import React from 'react' +import { AppBar, Box, Button, Toolbar, Typography } from '@mui/material' +import logo from './../assets/logo.png' +import './Header.style.scss' +export const Header = () => { + return ( + + logo + + ) +} diff --git a/rick-and-morty-app/src/presentation/pages/home/index.tsx b/rick-and-morty-app/src/presentation/pages/home/index.tsx index 82196a19..60d1e03b 100644 --- a/rick-and-morty-app/src/presentation/pages/home/index.tsx +++ b/rick-and-morty-app/src/presentation/pages/home/index.tsx @@ -1,5 +1,12 @@ import React from 'react' +import { Box } from '@mui/material' +import { Header } from '../../components/Header' +import './style.scss' export const Home = () => { - return
Home
+ return ( + +
+ + ) } diff --git a/rick-and-morty-app/src/presentation/pages/home/style.scss b/rick-and-morty-app/src/presentation/pages/home/style.scss new file mode 100644 index 00000000..e2e7cd3c --- /dev/null +++ b/rick-and-morty-app/src/presentation/pages/home/style.scss @@ -0,0 +1,5 @@ +.body{ + width: 100%; + height: 100vh; + +} From dc336a63418f7f39bf44972a96f23ba4831d5790 Mon Sep 17 00:00:00 2001 From: victor Date: Fri, 1 Jul 2022 20:17:32 -0400 Subject: [PATCH 26/47] chore(icons): install mui icons --- rick-and-morty-app/package-lock.json | 34 ++++++++++++++++++++++++++++ rick-and-morty-app/package.json | 1 + 2 files changed, 35 insertions(+) diff --git a/rick-and-morty-app/package-lock.json b/rick-and-morty-app/package-lock.json index bcac334a..bbbad2a7 100644 --- a/rick-and-morty-app/package-lock.json +++ b/rick-and-morty-app/package-lock.json @@ -10,6 +10,7 @@ "dependencies": { "@emotion/react": "^11.9.3", "@emotion/styled": "^11.9.3", + "@mui/icons-material": "^5.8.4", "@mui/material": "^5.8.6", "axios": "^0.27.2", "react": "^18.0.0", @@ -707,6 +708,31 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" }, + "node_modules/@mui/icons-material": { + "version": "5.8.4", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.8.4.tgz", + "integrity": "sha512-9Z/vyj2szvEhGWDvb+gG875bOGm8b8rlHBKOD1+nA3PcgC3fV6W1AU6pfOorPeBfH2X4mb9Boe97vHvaSndQvA==", + "dependencies": { + "@babel/runtime": "^7.17.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "peerDependencies": { + "@mui/material": "^5.0.0", + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@mui/material": { "version": "5.8.6", "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.8.6.tgz", @@ -5252,6 +5278,14 @@ } } }, + "@mui/icons-material": { + "version": "5.8.4", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.8.4.tgz", + "integrity": "sha512-9Z/vyj2szvEhGWDvb+gG875bOGm8b8rlHBKOD1+nA3PcgC3fV6W1AU6pfOorPeBfH2X4mb9Boe97vHvaSndQvA==", + "requires": { + "@babel/runtime": "^7.17.2" + } + }, "@mui/material": { "version": "5.8.6", "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.8.6.tgz", diff --git a/rick-and-morty-app/package.json b/rick-and-morty-app/package.json index 1f6633b9..2183c050 100644 --- a/rick-and-morty-app/package.json +++ b/rick-and-morty-app/package.json @@ -13,6 +13,7 @@ "dependencies": { "@emotion/react": "^11.9.3", "@emotion/styled": "^11.9.3", + "@mui/icons-material": "^5.8.4", "@mui/material": "^5.8.6", "axios": "^0.27.2", "react": "^18.0.0", From 69cd49bd1980732c426fe9fd993485dcc2fc7204 Mon Sep 17 00:00:00 2001 From: victor Date: Fri, 1 Jul 2022 20:39:43 -0400 Subject: [PATCH 27/47] feat(filter): add filter component --- .../presentation/components/Filter.style.scss | 5 ++ .../src/presentation/components/Filter.tsx | 59 +++++++++++++++++++ .../src/presentation/pages/home/index.tsx | 4 ++ .../src/presentation/pages/home/style.scss | 3 + 4 files changed, 71 insertions(+) create mode 100644 rick-and-morty-app/src/presentation/components/Filter.style.scss create mode 100644 rick-and-morty-app/src/presentation/components/Filter.tsx diff --git a/rick-and-morty-app/src/presentation/components/Filter.style.scss b/rick-and-morty-app/src/presentation/components/Filter.style.scss new file mode 100644 index 00000000..9543ca17 --- /dev/null +++ b/rick-and-morty-app/src/presentation/components/Filter.style.scss @@ -0,0 +1,5 @@ +.container{ + display: flex; + align-items: flex-end; + gap: 20px; +} diff --git a/rick-and-morty-app/src/presentation/components/Filter.tsx b/rick-and-morty-app/src/presentation/components/Filter.tsx new file mode 100644 index 00000000..8099c333 --- /dev/null +++ b/rick-and-morty-app/src/presentation/components/Filter.tsx @@ -0,0 +1,59 @@ +import React, { useState } from 'react' +import { + Box, + Button, + FormControl, + Input, + InputAdornment, + InputLabel, + MenuItem, + Select, +} from '@mui/material' +import SearchIcon from '@mui/icons-material/Search' +import './Filter.style.scss' + +export const FilterComponent = () => { + const [filterType, setFilterType] = useState('') + const [filterValue, setFilterValue] = useState('') + + const handleResetFilters = () => { + setFilterType('') + setFilterValue('') + } + return ( + + + Filtrar por + + + {filterType !== '' && ( + + Pesquisar por {filterType} + { + setFilterValue(e.target.value) + }} + endAdornment={ + + + + } + /> + + )} + + + ) +} diff --git a/rick-and-morty-app/src/presentation/pages/home/index.tsx b/rick-and-morty-app/src/presentation/pages/home/index.tsx index 60d1e03b..44e04ef5 100644 --- a/rick-and-morty-app/src/presentation/pages/home/index.tsx +++ b/rick-and-morty-app/src/presentation/pages/home/index.tsx @@ -2,11 +2,15 @@ import React from 'react' import { Box } from '@mui/material' import { Header } from '../../components/Header' import './style.scss' +import { FilterComponent } from '../../components/Filter' export const Home = () => { return (
+ + + ) } diff --git a/rick-and-morty-app/src/presentation/pages/home/style.scss b/rick-and-morty-app/src/presentation/pages/home/style.scss index e2e7cd3c..0943eae9 100644 --- a/rick-and-morty-app/src/presentation/pages/home/style.scss +++ b/rick-and-morty-app/src/presentation/pages/home/style.scss @@ -3,3 +3,6 @@ height: 100vh; } +.main{ + padding: 50px; +} From c4227896a481a5dee4e41b4ff14b738ef21bca49 Mon Sep 17 00:00:00 2001 From: victor Date: Sat, 2 Jul 2022 14:17:03 -0400 Subject: [PATCH 28/47] feat(car): add card character style --- .../components/CharCard.style.scss | 45 +++++++++++++++++++ .../src/presentation/components/CharCard.tsx | 37 +++++++++++++++ 2 files changed, 82 insertions(+) create mode 100644 rick-and-morty-app/src/presentation/components/CharCard.style.scss create mode 100644 rick-and-morty-app/src/presentation/components/CharCard.tsx diff --git a/rick-and-morty-app/src/presentation/components/CharCard.style.scss b/rick-and-morty-app/src/presentation/components/CharCard.style.scss new file mode 100644 index 00000000..813f74d3 --- /dev/null +++ b/rick-and-morty-app/src/presentation/components/CharCard.style.scss @@ -0,0 +1,45 @@ +.card { + width: 100%; + max-width: 345px; + display: flex; + flex-direction: column; + background-image: none !important; + position: relative; + height: 400px; + margin: 30px; +} +.MuiCardMedia-root{ + border-radius: 50% !important; + width: min-content !important; + align-self: center; + position: absolute ; + z-index: 1; + +} + +.containerContent{ + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + background-color: #fff; + border-radius: 10px; + padding-bottom: 10px !important; +} +.charDescription{ + display: flex; + align-items: center; + gap: 0.5rem; + margin-bottom: 20px !important ; +} +.alive{ + color: #03C03C; + font-size: 1rem; +} +.dead{ + color: #ff0000; + font-size: 1rem; +} +.icon{ + font-size: 1rem; +} diff --git a/rick-and-morty-app/src/presentation/components/CharCard.tsx b/rick-and-morty-app/src/presentation/components/CharCard.tsx new file mode 100644 index 00000000..55c6dc14 --- /dev/null +++ b/rick-and-morty-app/src/presentation/components/CharCard.tsx @@ -0,0 +1,37 @@ +import React from 'react' +import { Button, Card, CardContent, CardMedia, Typography } from '@mui/material' +import { Lens } from '@mui/icons-material' +import './CharCard.style.scss' +import { CharacterModel } from '../../domain/models' + +interface IProps { + char: CharacterModel +} + +export const CharCard = ({ char }: IProps) => { + return ( + + +
+ + + {char.name} + + + + Status: {char.status === 'Alive' ? 'Vivo' : 'Morto'} + + + +
+
+ ) +} From 6ce8d1a7cc2ea2d78bcbdad29cfdf6e4775ef476 Mon Sep 17 00:00:00 2001 From: victor Date: Sat, 2 Jul 2022 14:25:34 -0400 Subject: [PATCH 29/47] feat(filter): add props --- .../src/presentation/components/Filter.tsx | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/rick-and-morty-app/src/presentation/components/Filter.tsx b/rick-and-morty-app/src/presentation/components/Filter.tsx index 8099c333..d502fcbb 100644 --- a/rick-and-morty-app/src/presentation/components/Filter.tsx +++ b/rick-and-morty-app/src/presentation/components/Filter.tsx @@ -12,10 +12,19 @@ import { import SearchIcon from '@mui/icons-material/Search' import './Filter.style.scss' -export const FilterComponent = () => { - const [filterType, setFilterType] = useState('') - const [filterValue, setFilterValue] = useState('') +interface IProps { + filterType: string + filterValue: string + setFilterType: (value: string) => void + setFilterValue: (value: string) => void +} +export const FilterComponent = ({ + filterType, + filterValue, + setFilterType, + setFilterValue, +}: IProps) => { const handleResetFilters = () => { setFilterType('') setFilterValue('') From 471d242a26554e00b532f8883f6f85d3d2a250b7 Mon Sep 17 00:00:00 2001 From: victor Date: Sat, 2 Jul 2022 16:27:32 -0400 Subject: [PATCH 30/47] feat(filter): add default value --- rick-and-morty-app/src/presentation/components/Filter.tsx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/rick-and-morty-app/src/presentation/components/Filter.tsx b/rick-and-morty-app/src/presentation/components/Filter.tsx index d502fcbb..04caecee 100644 --- a/rick-and-morty-app/src/presentation/components/Filter.tsx +++ b/rick-and-morty-app/src/presentation/components/Filter.tsx @@ -34,17 +34,18 @@ export const FilterComponent = ({ Filtrar por - {filterType !== '' && ( + {filterType !== 'Nenhum' && ( Pesquisar por {filterType} Date: Sat, 2 Jul 2022 16:28:03 -0400 Subject: [PATCH 31/47] feat(debounce): add hook use debounce --- .../src/presentation/hooks/use-debounce.tsx | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 rick-and-morty-app/src/presentation/hooks/use-debounce.tsx diff --git a/rick-and-morty-app/src/presentation/hooks/use-debounce.tsx b/rick-and-morty-app/src/presentation/hooks/use-debounce.tsx new file mode 100644 index 00000000..ceb52db0 --- /dev/null +++ b/rick-and-morty-app/src/presentation/hooks/use-debounce.tsx @@ -0,0 +1,16 @@ +import { useEffect, useState } from 'react' + +function useDebounce(value: string, delay: number) { + const [debouncedValue, setDebouncedValue] = useState(value) + useEffect(() => { + const handler = setTimeout(() => { + setDebouncedValue(value) + }, delay) + + return () => { + clearTimeout(handler) + } + }, [value, delay]) + return debouncedValue +} +export default useDebounce From 76e675fd28b881ceb6a7620adb48f31eca7f0cc9 Mon Sep 17 00:00:00 2001 From: victor Date: Sat, 2 Jul 2022 17:05:18 -0400 Subject: [PATCH 32/47] feat(hook): create use character hook --- .../src/presentation/hooks/useCharacter.tsx | 100 ++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 rick-and-morty-app/src/presentation/hooks/useCharacter.tsx diff --git a/rick-and-morty-app/src/presentation/hooks/useCharacter.tsx b/rick-and-morty-app/src/presentation/hooks/useCharacter.tsx new file mode 100644 index 00000000..b70958a0 --- /dev/null +++ b/rick-and-morty-app/src/presentation/hooks/useCharacter.tsx @@ -0,0 +1,100 @@ +import React, { ChangeEvent, useEffect, useState } from 'react' +import { CharacterModel } from '../../domain/models' +import { + makeRemoteFilterCharactersByName, + makeRemoteFilterCharactersBySpecies, + makeRemoteFilterCharactersByStatus, + makeRemoteGetCharacters, +} from '../../main/fatories/usecases' +import useDebounce from '../hooks/use-debounce' + +export const useCharacter = () => { + const [data, setData] = useState() + const [count, setCount] = useState() + const [filterType, setFilterType] = useState('Nenhum') + const [filterValue, setFilterValue] = useState('') + const [page, setPage] = useState(1) + const [loading, setLoading] = useState(false) + const debouncedSearchTerm = useDebounce(filterValue, 500) + + useEffect(() => { + switch (filterType) { + case 'status': + if (debouncedSearchTerm) { + setLoading(true) + makeRemoteFilterCharactersByStatus() + .perform({ page, status: filterValue }) + .then((data) => { + if (data) { + setData(data.results) + setCount(data.info.pages) + console.log(data) + } + setLoading(false) + }) + } + break + case 'especie': + console.log('especie') + if (debouncedSearchTerm) { + setLoading(true) + makeRemoteFilterCharactersBySpecies() + .perform({ page, species: filterValue }) + .then((data) => { + if (data) { + setData(data.results) + setCount(data.info.pages) + console.log(data) + } + setLoading(false) + }) + } + break + case 'nome': + console.log('nome') + if (debouncedSearchTerm) { + setLoading(true) + makeRemoteFilterCharactersByName() + .perform({ page, name: filterValue }) + .then((data) => { + if (data) { + setData(data.results) + setCount(data.info.pages) + console.log(data) + } + setLoading(false) + }) + } + break + case 'Nenhum': + console.log('default') + setLoading(true) + makeRemoteGetCharacters() + .perform({ page }) + .then((data) => { + setData(data.results) + setCount(data.info.pages) + console.log(data) + setLoading(false) + }) + + break + } + }, [debouncedSearchTerm, filterType, page]) + + const handleChangePage = (event: ChangeEvent, value: number) => { + setPage(value) + } + + return { + data, + count, + filterType, + filterValue, + setFilterType, + setFilterValue, + page, + loading, + handleChangePage, + } +} From b11d3f41edf7796ee462d169c4762e82a4638011 Mon Sep 17 00:00:00 2001 From: victor Date: Sat, 2 Jul 2022 17:05:49 -0400 Subject: [PATCH 33/47] fix(filter): fix reset filters --- rick-and-morty-app/src/presentation/components/Filter.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rick-and-morty-app/src/presentation/components/Filter.tsx b/rick-and-morty-app/src/presentation/components/Filter.tsx index 04caecee..66e39f99 100644 --- a/rick-and-morty-app/src/presentation/components/Filter.tsx +++ b/rick-and-morty-app/src/presentation/components/Filter.tsx @@ -1,4 +1,4 @@ -import React, { useState } from 'react' +import React from 'react' import { Box, Button, @@ -26,7 +26,7 @@ export const FilterComponent = ({ setFilterValue, }: IProps) => { const handleResetFilters = () => { - setFilterType('') + setFilterType('Nenhum') setFilterValue('') } return ( @@ -41,7 +41,7 @@ export const FilterComponent = ({ > Nenhum Status - Espécie + Espécie Nome From 12ecf2563213fb7d6e43b699d3f1fa39a76b32ea Mon Sep 17 00:00:00 2001 From: victor Date: Sat, 2 Jul 2022 17:06:02 -0400 Subject: [PATCH 34/47] feat(home): create home page --- .../src/presentation/pages/home/index.tsx | 41 +++++++++++++++++-- .../src/presentation/pages/home/style.scss | 15 +++++++ 2 files changed, 53 insertions(+), 3 deletions(-) diff --git a/rick-and-morty-app/src/presentation/pages/home/index.tsx b/rick-and-morty-app/src/presentation/pages/home/index.tsx index 44e04ef5..ed27dba9 100644 --- a/rick-and-morty-app/src/presentation/pages/home/index.tsx +++ b/rick-and-morty-app/src/presentation/pages/home/index.tsx @@ -1,15 +1,50 @@ import React from 'react' -import { Box } from '@mui/material' +import { Box, LinearProgress, Pagination } from '@mui/material' import { Header } from '../../components/Header' -import './style.scss' import { FilterComponent } from '../../components/Filter' +import { CharCard } from '../../components/CharCard' +import { CharacterModel } from '../../../domain/models' +import { useCharacter } from '../../hooks/useCharacter' +import './style.scss' export const Home = () => { + const { + data, + count, + filterType, + filterValue, + setFilterType, + setFilterValue, + page, + loading, + handleChangePage, + } = useCharacter() + return (
- + + {loading && } + + {data?.map((char: CharacterModel) => ( + + ))} + + + + ) diff --git a/rick-and-morty-app/src/presentation/pages/home/style.scss b/rick-and-morty-app/src/presentation/pages/home/style.scss index 0943eae9..4aa3b8bf 100644 --- a/rick-and-morty-app/src/presentation/pages/home/style.scss +++ b/rick-and-morty-app/src/presentation/pages/home/style.scss @@ -6,3 +6,18 @@ .main{ padding: 50px; } +.characters{ + margin-top: 30px; + display: flex; + flex-direction: row; + align-items: center; + justify-content: space-between; + flex-wrap: wrap; + width: 100%; + +} +.pagination{ + justify-content: center; + display: flex; + width: 100%; +} From 24b43c1a3db0575df75e02fb00adb3f4343e0352 Mon Sep 17 00:00:00 2001 From: victor Date: Sat, 2 Jul 2022 17:14:34 -0400 Subject: [PATCH 35/47] fix(router): fix router character name --- rick-and-morty-app/src/presentation/routes/RouterList.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rick-and-morty-app/src/presentation/routes/RouterList.tsx b/rick-and-morty-app/src/presentation/routes/RouterList.tsx index abf7c9bc..820704a6 100644 --- a/rick-and-morty-app/src/presentation/routes/RouterList.tsx +++ b/rick-and-morty-app/src/presentation/routes/RouterList.tsx @@ -8,7 +8,7 @@ export default function RouterList() { } /> - } /> + } /> ) From 733791405a084681b93ec5c7a79df17505e9b10d Mon Sep 17 00:00:00 2001 From: victor Date: Sat, 2 Jul 2022 18:47:26 -0400 Subject: [PATCH 36/47] feat(Single): create single character page --- .../domain/usecases/get-character-by-id.ts | 4 +- .../pages/SingleCharacter/Single.module.scss | 58 +++++++++++ .../pages/SingleCharacter/index.tsx | 97 ++++++++++++++++++- 3 files changed, 155 insertions(+), 4 deletions(-) create mode 100644 rick-and-morty-app/src/presentation/pages/SingleCharacter/Single.module.scss diff --git a/rick-and-morty-app/src/domain/usecases/get-character-by-id.ts b/rick-and-morty-app/src/domain/usecases/get-character-by-id.ts index 86a82d82..ce3cc5ee 100644 --- a/rick-and-morty-app/src/domain/usecases/get-character-by-id.ts +++ b/rick-and-morty-app/src/domain/usecases/get-character-by-id.ts @@ -1,4 +1,4 @@ -import { CharacterResponseModel } from '../models' +import { CharacterModel } from '../models' export interface GetCharacterById { perform(params: GetCharacterById.Params): Promise @@ -8,5 +8,5 @@ export namespace GetCharacterById { export type Params = { id: number } - export type Result = CharacterResponseModel + export type Result = CharacterModel } diff --git a/rick-and-morty-app/src/presentation/pages/SingleCharacter/Single.module.scss b/rick-and-morty-app/src/presentation/pages/SingleCharacter/Single.module.scss new file mode 100644 index 00000000..1dcf32bd --- /dev/null +++ b/rick-and-morty-app/src/presentation/pages/SingleCharacter/Single.module.scss @@ -0,0 +1,58 @@ +.body{ + width: 100%; +} +.main{ + display:flex; + justify-content: center; +} + +.backIcon{ + display: flex; + width: 100%; + justify-content: center; + +} + +.card { + width: 100%; + max-width: 500px; + display: flex; + flex-direction: column; + background-image: none !important; + position: relative; + height: 600px; + margin: 30px; + +} + + + +.cardContent{ + width: 100%; + margin-top: 280px; + position: absolute; +} + +.containerContent{ + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + background-color: #fff; + border-radius: 10px; + padding-bottom: 10px !important; +} +.charDescription{ + display: flex; + align-items: center; + gap: 0.5rem; + +} +.alive{ + color: #03C03C; + font-size: 1rem !important; +} +.dead{ + color: #ff0000; + font-size: 1rem !important; +} diff --git a/rick-and-morty-app/src/presentation/pages/SingleCharacter/index.tsx b/rick-and-morty-app/src/presentation/pages/SingleCharacter/index.tsx index 54bb6b88..3993da49 100644 --- a/rick-and-morty-app/src/presentation/pages/SingleCharacter/index.tsx +++ b/rick-and-morty-app/src/presentation/pages/SingleCharacter/index.tsx @@ -1,5 +1,98 @@ -import React from 'react' +import React, { useEffect, useState } from 'react' +import { Lens } from '@mui/icons-material' +import { Card, CardContent, CardMedia, IconButton, LinearProgress, Typography } from '@mui/material' +import { Box } from '@mui/system' +import { useNavigate, useParams } from 'react-router-dom' +import { CharacterModel } from '../../../domain/models' +import { makeRemoteGetCharacterById } from '../../../main/fatories/usecases' +import ArrowBackIcon from '@mui/icons-material/ArrowBack' +import { Header } from '../../components/Header' +import styles from './Single.module.scss' export const SingleCharacter = () => { - return
SingleCharacter
+ const navigate = useNavigate() + const params = useParams() + const [character, setCharacter] = useState() + const [loading, setLoading] = useState(false) + useEffect(() => { + console.log(params) + if (params.id) { + setLoading(true) + makeRemoteGetCharacterById() + .perform({ id: +params.id }) + .then((data) => { + setLoading(false) + setCharacter(data) + }) + } + }, []) + return ( + +
+ + + {loading ? ( + + ) : ( + + +
+ + + {character?.name} + + + + + Status: {character?.status === 'Alive' ? 'Vivo' : 'Morto'} + + + + Espécie: {character?.species} + + + + Gênero: {character?.gender} + + + + Origem: {character?.origin.name} + + + + Última localização: {character?.location.name} + + { + navigate('/') + }} + aria-label='back' + > + + + +
+
+ )} +
+ + ) } From 0ed897182729bc772bd633d74f261aee47cfe127 Mon Sep 17 00:00:00 2001 From: victor Date: Sat, 2 Jul 2022 18:47:51 -0400 Subject: [PATCH 37/47] fix(charCard): fix styles --- ...arCard.style.scss => CharCard.module.scss} | 12 +++--- .../src/presentation/components/CharCard.tsx | 40 +++++++++++++------ 2 files changed, 33 insertions(+), 19 deletions(-) rename rick-and-morty-app/src/presentation/components/{CharCard.style.scss => CharCard.module.scss} (80%) diff --git a/rick-and-morty-app/src/presentation/components/CharCard.style.scss b/rick-and-morty-app/src/presentation/components/CharCard.module.scss similarity index 80% rename from rick-and-morty-app/src/presentation/components/CharCard.style.scss rename to rick-and-morty-app/src/presentation/components/CharCard.module.scss index 813f74d3..b711e405 100644 --- a/rick-and-morty-app/src/presentation/components/CharCard.style.scss +++ b/rick-and-morty-app/src/presentation/components/CharCard.module.scss @@ -7,16 +7,14 @@ position: relative; height: 400px; margin: 30px; -} -.MuiCardMedia-root{ - border-radius: 50% !important; - width: min-content !important; - align-self: center; - position: absolute ; - z-index: 1; } +.cardContent{ + width: 100%; + margin-top: 185px; + position: absolute; +} .containerContent{ display: flex; flex-direction: column; diff --git a/rick-and-morty-app/src/presentation/components/CharCard.tsx b/rick-and-morty-app/src/presentation/components/CharCard.tsx index 55c6dc14..2db79e1a 100644 --- a/rick-and-morty-app/src/presentation/components/CharCard.tsx +++ b/rick-and-morty-app/src/presentation/components/CharCard.tsx @@ -1,33 +1,49 @@ import React from 'react' import { Button, Card, CardContent, CardMedia, Typography } from '@mui/material' import { Lens } from '@mui/icons-material' -import './CharCard.style.scss' import { CharacterModel } from '../../domain/models' +import { useNavigate } from 'react-router-dom' +import styles from './CharCard.module.scss' interface IProps { char: CharacterModel } export const CharCard = ({ char }: IProps) => { + const navigate = useNavigate() return ( - - -
+ - + component='img' + alt='green iguana' + height='200' + image={char.image} + /> +
+ {char.name} - - + + Status: {char.status === 'Alive' ? 'Vivo' : 'Morto'} - From 957b02f8560b057de3b4fbb8e0fe1f5f4803092e Mon Sep 17 00:00:00 2001 From: victor Date: Sat, 2 Jul 2022 19:19:07 -0400 Subject: [PATCH 38/47] feat(modules): add css modules --- .../{Filter.style.scss => Filter.module.scss} | 0 .../src/presentation/components/Filter.tsx | 4 ++-- .../{Header.style.scss => Header.module.scss} | 0 .../src/presentation/components/Header.tsx | 8 ++++---- .../pages/home/{style.scss => Home.module.scss} | 0 .../src/presentation/pages/home/index.tsx | 10 +++++----- 6 files changed, 11 insertions(+), 11 deletions(-) rename rick-and-morty-app/src/presentation/components/{Filter.style.scss => Filter.module.scss} (100%) rename rick-and-morty-app/src/presentation/components/{Header.style.scss => Header.module.scss} (100%) rename rick-and-morty-app/src/presentation/pages/home/{style.scss => Home.module.scss} (100%) diff --git a/rick-and-morty-app/src/presentation/components/Filter.style.scss b/rick-and-morty-app/src/presentation/components/Filter.module.scss similarity index 100% rename from rick-and-morty-app/src/presentation/components/Filter.style.scss rename to rick-and-morty-app/src/presentation/components/Filter.module.scss diff --git a/rick-and-morty-app/src/presentation/components/Filter.tsx b/rick-and-morty-app/src/presentation/components/Filter.tsx index 66e39f99..346838a6 100644 --- a/rick-and-morty-app/src/presentation/components/Filter.tsx +++ b/rick-and-morty-app/src/presentation/components/Filter.tsx @@ -10,7 +10,7 @@ import { Select, } from '@mui/material' import SearchIcon from '@mui/icons-material/Search' -import './Filter.style.scss' +import styles from './Filter.module.scss' interface IProps { filterType: string @@ -30,7 +30,7 @@ export const FilterComponent = ({ setFilterValue('') } return ( - + Filtrar por { setFilterType(e.target.value) }} diff --git a/rick-and-morty-app/src/presentation/hooks/useCharacter.tsx b/rick-and-morty-app/src/presentation/hooks/useCharacter.tsx index 7604904d..d62db3a0 100644 --- a/rick-and-morty-app/src/presentation/hooks/useCharacter.tsx +++ b/rick-and-morty-app/src/presentation/hooks/useCharacter.tsx @@ -1,4 +1,5 @@ import React, { ChangeEvent, useEffect, useState } from 'react' +import { useSearchParams } from 'react-router-dom' import { CharacterModel } from '../../domain/models' import { makeRemoteFilterCharactersByName, @@ -9,14 +10,23 @@ import { import useDebounce from '../hooks/use-debounce' export const useCharacter = () => { + const [searchParams, setSearchParams] = useSearchParams() const [data, setData] = useState() const [count, setCount] = useState() - const [filterType, setFilterType] = useState('Nenhum') - const [filterValue, setFilterValue] = useState('') - const [page, setPage] = useState(1) + const [filterType, setFilterType] = useState(searchParams.get('filterType') || 'Nenhum') + const [filterValue, setFilterValue] = useState(searchParams.get('filterValue') || '') + const [page, setPage] = useState(parseInt(searchParams.get('page') as string) || 1) const [loading, setLoading] = useState(false) const debouncedSearchTerm = useDebounce(filterValue, 500) + useEffect(() => { + setSearchParams({ + filterType: filterType, + filterValue: filterValue, + page: page.toString(), + }) + }, [filterValue, debouncedSearchTerm, page]) + useEffect(() => { switch (filterType) { case 'status': From b5648e21f8252d9a27894a31777582b17f556c63 Mon Sep 17 00:00:00 2001 From: victor brambilla <88890771+victorbrambilla@users.noreply.github.com> Date: Mon, 4 Jul 2022 19:23:45 -0400 Subject: [PATCH 44/47] Create README.md --- README.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 00000000..ad31f43b --- /dev/null +++ b/README.md @@ -0,0 +1,30 @@ +# Projeto feito para teste de dev frontend + +## Contruída com as seguintes tecnologias: +- [x] React - https://pt-br.reactjs.org/ +- [x] Typescript - https://www.typescriptlang.org/ +- [x] MUI - https://mui.com/pt/ +- [x] React-router-dom - https://reactrouter.com/ +- [x] axios - https://axios-http.com/ptbr/ +- [x] Sass - https://sass-lang.com/ +- [x] Clean architecture + +## Instalando as dependencias + +Faça um clone do projeto e no diretório raiz do projeto rode o comando: + +``` +npm install +``` + +### Rodando servidor + +No diretório raiz do projeto rode o comando: + +``` +npm run dev +``` + +Abra o projeto em [http://localhost:3000](http://localhost:3000) + +Link do Firebase: [https://rickandmorty-64c04.web.app/](https://rickandmorty-64c04.web.app/) From 34d579358786348986ca0437a87a2d77e3f89d42 Mon Sep 17 00:00:00 2001 From: victor Date: Tue, 5 Jul 2022 17:51:09 -0400 Subject: [PATCH 45/47] fix(filter): change filters to enums --- .../.firebase/hosting.ZGlzdA.cache | 9 +-- .../src/presentation/components/Filter.tsx | 69 +++++++++++++++---- .../src/presentation/enums/species.ts | 13 ++++ .../src/presentation/enums/status.ts | 5 ++ 4 files changed, 78 insertions(+), 18 deletions(-) create mode 100644 rick-and-morty-app/src/presentation/enums/species.ts create mode 100644 rick-and-morty-app/src/presentation/enums/status.ts diff --git a/rick-and-morty-app/.firebase/hosting.ZGlzdA.cache b/rick-and-morty-app/.firebase/hosting.ZGlzdA.cache index ea6e4977..7aa1448c 100644 --- a/rick-and-morty-app/.firebase/hosting.ZGlzdA.cache +++ b/rick-and-morty-app/.firebase/hosting.ZGlzdA.cache @@ -1,4 +1,5 @@ -index.html,1656971159789,1b17161a29ddbbeacf7e1c96b3b07b628a312147916580d53e2210f9d1c0c60b -assets/index.a2e009da.css,1656971159831,fafd8382afa23da7d7b90ecf79fe5a475480f7f6d2f7645ab9fa410a9727e69e -assets/logo.f4e8982f.png,1656971159830,9760c9569ff4d273af9b3098f0036a865438d3b6745c10410ab0f8f1b91a5fca -assets/index.6fca259c.js,1656971159830,4c347824a0c8557f5966edf45ea4488551194ced4f91c0e2b1abaf6b2c545c03 +404.html,1656971698058,daa499dd96d8229e73235345702ba32f0793f0c8e5c0d30e40e37a5872be57aa +index.html,1656975759665,6e11ef6d74e46e492b9c1eec523295ed63993ac0cd67e285b9aad779ca43c25a +assets/index.a2e009da.css,1656975759707,fafd8382afa23da7d7b90ecf79fe5a475480f7f6d2f7645ab9fa410a9727e69e +assets/logo.f4e8982f.png,1656975759666,9760c9569ff4d273af9b3098f0036a865438d3b6745c10410ab0f8f1b91a5fca +assets/index.05448a5d.js,1656975759667,84d8900875c3f203937b74d231ce90623018490bf432812c6a49ec2d9727e1fd diff --git a/rick-and-morty-app/src/presentation/components/Filter.tsx b/rick-and-morty-app/src/presentation/components/Filter.tsx index 144cee9b..88a71e8e 100644 --- a/rick-and-morty-app/src/presentation/components/Filter.tsx +++ b/rick-and-morty-app/src/presentation/components/Filter.tsx @@ -11,6 +11,8 @@ import { } from '@mui/material' import SearchIcon from '@mui/icons-material/Search' import styles from './Filter.module.scss' +import { status } from '../enums/status' +import { species } from '../enums/species' interface IProps { filterType: string @@ -51,20 +53,59 @@ export const FilterComponent = ({ {filterType !== 'Nenhum' && ( - - Pesquisar por {filterType} - { - setFilterValue(e.target.value) - }} - endAdornment={ - - - - } - /> - + <> + {filterType === 'especie' && ( + + Filtrar por espécie + + + )} + {filterType === 'status' && ( + + Filtrar por status + + + )} + + {filterType === 'name' && ( + + Filtrar por nome + { + setFilterValue(e.target.value) + }} + endAdornment={ + + + + } + /> + + )} + )}