From 305741503e0e23535ae79d368ac1bb2e2eb05ec2 Mon Sep 17 00:00:00 2001 From: Victor Machado Date: Fri, 22 Nov 2024 19:33:33 -0300 Subject: [PATCH 01/55] Projeto Vue adicionado --- .editorconfig | 6 + .gitignore | 30 + .prettierrc.json | 7 + .vscode/extensions.json | 8 + Desktop.png | Bin 53696 -> 0 bytes Mobile.png | Bin 101509 -> 0 bytes README.md | 123 +- eslint.config.js | 19 + index.html | 13 + jsconfig.json | 8 + package-lock.json | 3912 ++++++++++++++++++++ package.json | 26 + public/favicon.ico | Bin 0 -> 4286 bytes src/App.vue | 47 + src/assets/base.css | 86 + src/assets/logo.svg | 1 + src/assets/main.css | 35 + src/components/HelloWorld.vue | 44 + src/components/TheWelcome.vue | 90 + src/components/WelcomeItem.vue | 87 + src/components/icons/IconCommunity.vue | 7 + src/components/icons/IconDocumentation.vue | 7 + src/components/icons/IconEcosystem.vue | 7 + src/components/icons/IconSupport.vue | 7 + src/components/icons/IconTooling.vue | 19 + src/main.js | 6 + vite.config.js | 18 + 27 files changed, 4511 insertions(+), 102 deletions(-) create mode 100644 .editorconfig create mode 100644 .gitignore create mode 100644 .prettierrc.json create mode 100644 .vscode/extensions.json delete mode 100644 Desktop.png delete mode 100644 Mobile.png create mode 100644 eslint.config.js create mode 100644 index.html create mode 100644 jsconfig.json create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 public/favicon.ico create mode 100644 src/App.vue create mode 100644 src/assets/base.css create mode 100644 src/assets/logo.svg create mode 100644 src/assets/main.css create mode 100644 src/components/HelloWorld.vue create mode 100644 src/components/TheWelcome.vue create mode 100644 src/components/WelcomeItem.vue create mode 100644 src/components/icons/IconCommunity.vue create mode 100644 src/components/icons/IconDocumentation.vue create mode 100644 src/components/icons/IconEcosystem.vue create mode 100644 src/components/icons/IconSupport.vue create mode 100644 src/components/icons/IconTooling.vue create mode 100644 src/main.js create mode 100644 vite.config.js diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..ecea360 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,6 @@ +[*.{js,jsx,mjs,cjs,ts,tsx,mts,cts,vue}] +charset = utf-8 +indent_size = 2 +indent_style = space +insert_final_newline = true +trim_trailing_whitespace = true diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8ee54e8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,30 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +.DS_Store +dist +dist-ssr +coverage +*.local + +/cypress/videos/ +/cypress/screenshots/ + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +*.tsbuildinfo diff --git a/.prettierrc.json b/.prettierrc.json new file mode 100644 index 0000000..17a23d0 --- /dev/null +++ b/.prettierrc.json @@ -0,0 +1,7 @@ + +{ + "$schema": "https://json.schemastore.org/prettierrc", + "semi": false, + "singleQuote": true, + "printWidth": 100 +} diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..c92168f --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,8 @@ +{ + "recommendations": [ + "Vue.volar", + "dbaeumer.vscode-eslint", + "EditorConfig.EditorConfig", + "esbenp.prettier-vscode" + ] +} diff --git a/Desktop.png b/Desktop.png deleted file mode 100644 index 6319b8cc199d75f50b4270ffcb601b53473b42c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53696 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 diff --git a/Mobile.png b/Mobile.png deleted file mode 100644 index 1e9281376903395e62de9319b7186bc2c9ee32b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 101509 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 NqN=M>tMugM{{y{uA6ozb diff --git a/README.md b/README.md index 5c6f3bb..2186a63 100644 --- a/README.md +++ b/README.md @@ -1,116 +1,35 @@ -# Convenia +# frontend-test -## Avaliação Técnica - Frontend +This template should help get you started developing with Vue 3 in Vite. -> O desafio é muito simples: um SPA responsivo (desktop e mobile) para divisão de gorjeta -> Esperamos avaliar sua melhor implementação para o contexto que estamos propondo. +## Recommended IDE Setup -Que tenha um excelente desenvolvimento :wink: +[VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur). -### Desafio +## Customize configuration -> Voce deverá desenvolver um SPA ou Aplicação responsiva usando o framework Vue.js e qualquer pacote de componentes que desejar. -> Calculadoras de gorjeta existem aos montes nas principais lojas de aplicativos. Você insere o total da conta, o quanto quer dar de gorjeta e quantas pessoas vão dividir a conta. -> O total da conta pode ser em USD(Dólar) ou EUR(Euro). -> Deve ser exibido a conversão para BRL(R$), obtida via chamada (REST) +See [Vite Configuration Reference](https://vite.dev/config/). -Dica: você pode usar qualquer API gratuita para obter a conversão de moedas, como o [SWOP](https://swop.cx/). +## Project Setup -### User Story - -```gherkin -#language:pt -Funcionalidade: Calculo de Gorjeta -Como Usuário do App -Gostaria de Visualizar -De maneira que estas informações alimentem meu sistema pessoal - - Regra: Valores padrão - Dado que não queremos exibição de erros - Então o valor padrão para o campo "Valor" é "0" - E o valor padrão para o campo "Gorjeta" é "10" - E o campo "Gorjeta" pode variar de "10" a "20" % - E o valor padrão para o campo "Pessoas" é "2" - E o campo "Pessoas" pode variar de "2" a "16" - - Regra: Exibição - Dado que estejamos entrando no app Le/Tip - E o cliente seja mobile - Então devemos exibir o painel de Entrada - - Esquema do Cenário: Cálculo padrão - Dado que estejamos no app Le/Tip - Quando selecionamos EUR no seletor de moeda - E inserirmos no campo "Valor" - E selecionamos no campo "Gorjeta" - E selecionamos no campo "Pessoas" - Então visualizamos em Conta no painel de resultado - E visualizamos em Gorjeta no painel de resultado - E visualizamos em Total no painel de resultado - E visualizamos em Por Pessoa no painel de resultado - - Exemplo: - |conta|gorjeta|pessoas|gorjetacalculada|total|porPessoa| - |73.23|13 |10 |9.52 |82.75|8.28 | - |60.00|10 |3 |6.00 |66.00|22.00 | - |13.00|15 |2 |1.95 |14.95|7.48 | - |2.58 |17 |3 |0,44 |3.02 |1.01 | - - Cenário: Cálculo em reais - Dado que estejamos no app Le/Tip - E selecionamos EUR no seletor de moeda - E inserirmos "13.00" no campo "Valor" - E selecionamos "15" no campo "Gorjeta" - E selecionamos "2" no campo "Pessoas" - Quando o cálculo é realizado de maneira fluente - E o sistema realiza uma chamada de API para obter a conversão para BRL - Então o obtém o resultado da conversão para BRL - E apresenta o valor obtido em "em R$" - - Cenário: experiencia mobile - Dado que estejamos no app Le/Tip - E o cliente seja mobile - E estejamos no painel de entrada - Quando pressionarmos o botão ">" - Então o painel de resultado deve ser exibido - - Cenário: experiencia mobile, novo cálculo - Dado que estejamos no app Le/Tip - E o cliente seja mobile - E estejamos no painel de resultado - Quando pressionarmos o botão "<" - Então o painel de entrada deve ser exibido - - Esquema do Cenário: alteração de moeda - Dado que estejamos no app Le/Tip - Quando alteramos o campo "moeda" para - Então todas as etiquetas de moeda devem ser alteradas para - E a conversão para BRL deve considerar - - Exemplo: - |moeda|sinal| - |EUR |€ | - |USD |$ | +```sh +npm install ``` -### Referência visual - -#### Desktop - -![Mockup Desktop](/Desktop.png) - -#### Mobile +### Compile and Hot-Reload for Development -![Mockup Desktop](/Mobile.png) +```sh +npm run dev +``` -### Considerações +### Compile and Minify for Production -* Como pode perceber, não há um botão "calcular", todos cálculos devem ser reativos -* Apreciamos o uso de alguma metodológia CSS (BEM, RSCSS, ou qualquer outra) -* Avaliaremos como organizará a requisição para conversão de moeda -* A partir do apresentado, você pode incrementar a aplicação como quiser -* Você tem 1(uma) semana para realizar a avaliação +```sh +npm run build +``` -### Aguardamos seu Merge Request +### Lint with [ESLint](https://eslint.org/) -Convenia :purple_heart: +```sh +npm run lint +``` diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 0000000..76c70ec --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,19 @@ +import js from '@eslint/js' +import pluginVue from 'eslint-plugin-vue' +import skipFormatting from '@vue/eslint-config-prettier/skip-formatting' + +export default [ + { + name: 'app/files-to-lint', + files: ['**/*.{js,mjs,jsx,vue}'], + }, + + { + name: 'app/files-to-ignore', + ignores: ['**/dist/**', '**/dist-ssr/**', '**/coverage/**'], + }, + + js.configs.recommended, + ...pluginVue.configs['flat/essential'], + skipFormatting, +] diff --git a/index.html b/index.html new file mode 100644 index 0000000..b19040a --- /dev/null +++ b/index.html @@ -0,0 +1,13 @@ + + + + + + + Vite App + + +
+ + + diff --git a/jsconfig.json b/jsconfig.json new file mode 100644 index 0000000..5a1f2d2 --- /dev/null +++ b/jsconfig.json @@ -0,0 +1,8 @@ +{ + "compilerOptions": { + "paths": { + "@/*": ["./src/*"] + } + }, + "exclude": ["node_modules", "dist"] +} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..f93f2b1 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,3912 @@ +{ + "name": "frontend-test", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "frontend-test", + "version": "0.0.0", + "dependencies": { + "vue": "^3.5.12" + }, + "devDependencies": { + "@eslint/js": "^9.14.0", + "@vitejs/plugin-vue": "^5.1.4", + "@vue/eslint-config-prettier": "^10.1.0", + "eslint": "^9.14.0", + "eslint-plugin-vue": "^9.30.0", + "prettier": "^3.3.3", + "vite": "^5.4.10", + "vite-plugin-vue-devtools": "^7.5.4" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@antfu/utils": { + "version": "0.7.10", + "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-0.7.10.tgz", + "integrity": "sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz", + "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", + "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.26.0", + "@babel/generator": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.0", + "@babel/parser": "^7.26.0", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.26.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", + "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.26.2", + "@babel/types": "^7.26.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", + "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", + "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz", + "integrity": "sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/traverse": "^7.25.9", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", + "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz", + "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", + "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.9.tgz", + "integrity": "sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz", + "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", + "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", + "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.26.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-proposal-decorators": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.25.9.tgz", + "integrity": "sha512-smkNLL/O1ezy9Nhy4CNosc4Va+1wo5w4gzSZeLe6y6dM4mmHfYOCPolXQPHQxonZCF+ZyebxN9vqOolkYrSn5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-syntax-decorators": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-decorators": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.25.9.tgz", + "integrity": "sha512-ryzI0McXUPJnRCvMo4lumIKZUzhYUO/ScI+Mz4YVaTLt04DHNSjEUjKVvbzQjZFLuod/cYEc07mJWhzl6v4DPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", + "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", + "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz", + "integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.9.tgz", + "integrity": "sha512-7PbZQZP50tzv2KGGnhh82GSyMB01yKY9scIjf1a+GfZCtInOWqUH5+1EBU4t9fyR5Oykkkc9vFTs4OHrhHXljQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/plugin-syntax-typescript": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", + "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.25.9", + "@babel/generator": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/template": "^7.25.9", + "@babel/types": "^7.25.9", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.0.tgz", + "integrity": "sha512-zdHg2FPIFNKPdcHWtiNT+jEFCHYVplAXRDlQDyqy0zGx/q2parwh7brGJSiTxRk/TSMkbM//zt/f5CHgyTyaSQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.4", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.9.0.tgz", + "integrity": "sha512-7ATR9F0e4W85D/0w7cU0SNj7qkAexMG+bAHEZOjo9akvGuhHE2m7umzWzfnpa0XAg5Kxc1BWmtPMV67jJ+9VUg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", + "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.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": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "9.15.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.15.0.tgz", + "integrity": "sha512-tMTqrY+EzbXmKJR5ToI8lxu7jaN5EdmrBFJpQk5JmSlyLsx6o4t27r883K5xsLuCYCpfKBCGswMSWXsM+jB7lg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", + "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.3.tgz", + "integrity": "sha512-2b/g5hRmpbb1o4GnTZax9N9m0FXzz9OV42ZzI4rDDMDuHUqigAiQCEWChBWCY4ztAGVRjoWT19v0yMmc5/L5kA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", + "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@pkgr/core": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", + "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.28", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.28.tgz", + "integrity": "sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/pluginutils": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.3.tgz", + "integrity": "sha512-Pnsb6f32CD2W3uCaLZIzDmeFyQ2b8UWMFI7xtwUezpcGBDVDW6y9XgAWIlARiGAo6eNF5FK5aQTr0LFyNyqq5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.27.3.tgz", + "integrity": "sha512-EzxVSkIvCFxUd4Mgm4xR9YXrcp976qVaHnqom/Tgm+vU79k4vV4eYTjmRvGfeoW8m9LVcsAy/lGjcgVegKEhLQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.27.3.tgz", + "integrity": "sha512-LJc5pDf1wjlt9o/Giaw9Ofl+k/vLUaYsE2zeQGH85giX2F+wn/Cg8b3c5CDP3qmVmeO5NzwVUzQQxwZvC2eQKw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.27.3.tgz", + "integrity": "sha512-OuRysZ1Mt7wpWJ+aYKblVbJWtVn3Cy52h8nLuNSzTqSesYw1EuN6wKp5NW/4eSre3mp12gqFRXOKTcN3AI3LqA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.27.3.tgz", + "integrity": "sha512-xW//zjJMlJs2sOrCmXdB4d0uiilZsOdlGQIC/jjmMWT47lkLLoB1nsNhPUcnoqyi5YR6I4h+FjBpILxbEy8JRg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.27.3.tgz", + "integrity": "sha512-58E0tIcwZ+12nK1WiLzHOD8I0d0kdrY/+o7yFVPRHuVGY3twBwzwDdTIBGRxLmyjciMYl1B/U515GJy+yn46qw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.27.3.tgz", + "integrity": "sha512-78fohrpcVwTLxg1ZzBMlwEimoAJmY6B+5TsyAZ3Vok7YabRBUvjYTsRXPTjGEvv/mfgVBepbW28OlMEz4w8wGA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.27.3.tgz", + "integrity": "sha512-h2Ay79YFXyQi+QZKo3ISZDyKaVD7uUvukEHTOft7kh00WF9mxAaxZsNs3o/eukbeKuH35jBvQqrT61fzKfAB/Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.27.3.tgz", + "integrity": "sha512-Sv2GWmrJfRY57urktVLQ0VKZjNZGogVtASAgosDZ1aUB+ykPxSi3X1nWORL5Jk0sTIIwQiPH7iE3BMi9zGWfkg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.27.3.tgz", + "integrity": "sha512-FPoJBLsPW2bDNWjSrwNuTPUt30VnfM8GPGRoLCYKZpPx0xiIEdFip3dH6CqgoT0RnoGXptaNziM0WlKgBc+OWQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.27.3.tgz", + "integrity": "sha512-TKxiOvBorYq4sUpA0JT+Fkh+l+G9DScnG5Dqx7wiiqVMiRSkzTclP35pE6eQQYjP4Gc8yEkJGea6rz4qyWhp3g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.27.3.tgz", + "integrity": "sha512-v2M/mPvVUKVOKITa0oCFksnQQ/TqGrT+yD0184/cWHIu0LoIuYHwox0Pm3ccXEz8cEQDLk6FPKd1CCm+PlsISw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.27.3.tgz", + "integrity": "sha512-LdrI4Yocb1a/tFVkzmOE5WyYRgEBOyEhWYJe4gsDWDiwnjYKjNs7PS6SGlTDB7maOHF4kxevsuNBl2iOcj3b4A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.27.3.tgz", + "integrity": "sha512-d4wVu6SXij/jyiwPvI6C4KxdGzuZOvJ6y9VfrcleHTwo68fl8vZC5ZYHsCVPUi4tndCfMlFniWgwonQ5CUpQcA==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.27.3.tgz", + "integrity": "sha512-/6bn6pp1fsCGEY5n3yajmzZQAh+mW4QPItbiWxs69zskBzJuheb3tNynEjL+mKOsUSFK11X4LYF2BwwXnzWleA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.27.3.tgz", + "integrity": "sha512-nBXOfJds8OzUT1qUreT/en3eyOXd2EH5b0wr2bVB5999qHdGKkzGzIyKYaKj02lXk6wpN71ltLIaQpu58YFBoQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.27.3.tgz", + "integrity": "sha512-ogfbEVQgIZOz5WPWXF2HVb6En+kWzScuxJo/WdQTqEgeyGkaa2ui5sQav9Zkr7bnNCLK48uxmmK0TySm22eiuw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.27.3.tgz", + "integrity": "sha512-ecE36ZBMLINqiTtSNQ1vzWc5pXLQHlf/oqGp/bSbi7iedcjcNb6QbCBNG73Euyy2C+l/fn8qKWEwxr+0SSfs3w==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.27.3.tgz", + "integrity": "sha512-vliZLrDmYKyaUoMzEbMTg2JkerfBjn03KmAw9CykO0Zzkzoyd7o3iZNam/TpyWNjNT+Cz2iO3P9Smv2wgrR+Eg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vitejs/plugin-vue": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.2.0.tgz", + "integrity": "sha512-7n7KdUEtx/7Yl7I/WVAMZ1bEb0eVvXF3ummWTeLcs/9gvo9pJhuLdouSXGjdZ/MKD1acf1I272+X0RMua4/R3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "vite": "^5.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vue/babel-helper-vue-transform-on": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.2.5.tgz", + "integrity": "sha512-lOz4t39ZdmU4DJAa2hwPYmKc8EsuGa2U0L9KaZaOJUt0UwQNjNA3AZTq6uEivhOKhhG1Wvy96SvYBoFmCg3uuw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vue/babel-plugin-jsx": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.2.5.tgz", + "integrity": "sha512-zTrNmOd4939H9KsRIGmmzn3q2zvv1mjxkYZHgqHZgDrXz5B1Q3WyGEjO2f+JrmKghvl1JIRcvo63LgM1kH5zFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/plugin-syntax-jsx": "^7.24.7", + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.6", + "@babel/types": "^7.25.6", + "@vue/babel-helper-vue-transform-on": "1.2.5", + "@vue/babel-plugin-resolve-type": "1.2.5", + "html-tags": "^3.3.1", + "svg-tags": "^1.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + } + } + }, + "node_modules/@vue/babel-plugin-resolve-type": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@vue/babel-plugin-resolve-type/-/babel-plugin-resolve-type-1.2.5.tgz", + "integrity": "sha512-U/ibkQrf5sx0XXRnUZD1mo5F7PkpKyTbfXM3a3rC4YnUz6crHEz9Jg09jzzL6QYlXNto/9CePdOg/c87O4Nlfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/parser": "^7.25.6", + "@vue/compiler-sfc": "^3.5.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.13.tgz", + "integrity": "sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.25.3", + "@vue/shared": "3.5.13", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz", + "integrity": "sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==", + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.5.13", + "@vue/shared": "3.5.13" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz", + "integrity": "sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.25.3", + "@vue/compiler-core": "3.5.13", + "@vue/compiler-dom": "3.5.13", + "@vue/compiler-ssr": "3.5.13", + "@vue/shared": "3.5.13", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.11", + "postcss": "^8.4.48", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz", + "integrity": "sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.13", + "@vue/shared": "3.5.13" + } + }, + "node_modules/@vue/devtools-core": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@vue/devtools-core/-/devtools-core-7.6.4.tgz", + "integrity": "sha512-blSwGVYpb7b5TALMjjoBiAl5imuBF7WEOAtaJaBMNikR8SQkm6mkUt4YlIKh9874/qoimwmpDOm+GHBZ4Y5m+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/devtools-kit": "^7.6.4", + "@vue/devtools-shared": "^7.6.4", + "mitt": "^3.0.1", + "nanoid": "^3.3.4", + "pathe": "^1.1.2", + "vite-hot-client": "^0.2.3" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/@vue/devtools-kit": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-7.6.4.tgz", + "integrity": "sha512-Zs86qIXXM9icU0PiGY09PQCle4TI750IPLmAJzW5Kf9n9t5HzSYf6Rz6fyzSwmfMPiR51SUKJh9sXVZu78h2QA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/devtools-shared": "^7.6.4", + "birpc": "^0.2.19", + "hookable": "^5.5.3", + "mitt": "^3.0.1", + "perfect-debounce": "^1.0.0", + "speakingurl": "^14.0.1", + "superjson": "^2.2.1" + } + }, + "node_modules/@vue/devtools-shared": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-7.6.4.tgz", + "integrity": "sha512-nD6CUvBEel+y7zpyorjiUocy0nh77DThZJ0k1GRnJeOmY3ATq2fWijEp7wk37gb023Cb0R396uYh5qMSBQ5WFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "rfdc": "^1.4.1" + } + }, + "node_modules/@vue/eslint-config-prettier": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/@vue/eslint-config-prettier/-/eslint-config-prettier-10.1.0.tgz", + "integrity": "sha512-J6wV91y2pXc0Phha01k0WOHBTPsoSTf4xlmMjoKaeSxBpAdsgTppGF5RZRdOHM7OA74zAXD+VLANrtYXpiPKkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-prettier": "^5.2.1" + }, + "peerDependencies": { + "eslint": ">= 8.21.0", + "prettier": ">= 3.0.0" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.13.tgz", + "integrity": "sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==", + "license": "MIT", + "dependencies": { + "@vue/shared": "3.5.13" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.13.tgz", + "integrity": "sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.13", + "@vue/shared": "3.5.13" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.13.tgz", + "integrity": "sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.13", + "@vue/runtime-core": "3.5.13", + "@vue/shared": "3.5.13", + "csstype": "^3.1.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.13.tgz", + "integrity": "sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==", + "license": "MIT", + "dependencies": { + "@vue/compiler-ssr": "3.5.13", + "@vue/shared": "3.5.13" + }, + "peerDependencies": { + "vue": "3.5.13" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.13.tgz", + "integrity": "sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==", + "license": "MIT" + }, + "node_modules/acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "dev": true, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/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, + "license": "Python-2.0" + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/birpc": { + "version": "0.2.19", + "resolved": "https://registry.npmjs.org/birpc/-/birpc-0.2.19.tgz", + "integrity": "sha512-5WeXXAvTmitV1RqJFppT5QtUiz2p1mRSYU000Jkft5ZUCLJIk4uQriYNO50HknxKwM6jd8utNc66K1qGIwwWBQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true, + "license": "ISC" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/browserslist": { + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", + "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001669", + "electron-to-chromium": "^1.5.41", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.1" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bundle-name": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "run-applescript": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001683", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001683.tgz", + "integrity": "sha512-iqmNnThZ0n70mNwvxpEC2nBJ037ZHZUoBI5Gorh1Mw6IlEAZujEoU1tXA628iZfzm7R9FvFzxbfdgml82a3k8Q==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/copy-anything": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-3.0.5.tgz", + "integrity": "sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-what": "^4.1.8" + }, + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-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, + "license": "MIT" + }, + "node_modules/default-browser": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz", + "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==", + "dev": true, + "license": "MIT", + "dependencies": { + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz", + "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.64", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.64.tgz", + "integrity": "sha512-IXEuxU+5ClW2IGEYFC2T7szbyVgehupCWQe5GNh+H065CD6U6IFN0s4KeAMFGNmQolRU4IV7zGBWSYMmZ8uuqQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-stack-parser-es": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/error-stack-parser-es/-/error-stack-parser-es-0.1.5.tgz", + "integrity": "sha512-xHku1X40RO+fO8yJ8Wh2f2rZWVjqyhb1zgq1yZ8aZRQkv6OOKhKWRUaht3eSCUbAOBaKIgM+ykwFLE+QUxgGeg==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.15.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.15.0.tgz", + "integrity": "sha512-7CrWySmIibCgT1Os28lUU6upBshZ+GxybLOrmRzi08kS8MBuO8QA7pXEgYgY5W8vK3e74xv0lpjo9DbaGU9Rkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.19.0", + "@eslint/core": "^0.9.0", + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "9.15.0", + "@eslint/plugin-kit": "^0.2.3", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.1", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.5", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.2.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-config-prettier": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz", + "integrity": "sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==", + "dev": true, + "license": "MIT", + "dependencies": { + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.9.1" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" + }, + "peerDependencies": { + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": "*", + "prettier": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-vue": { + "version": "9.31.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.31.0.tgz", + "integrity": "sha512-aYMUCgivhz1o4tLkRHj5oq9YgYPM4/EJc0M7TAKRLCUA5OYxRLAhYEVD2nLtTwLyixEFI+/QXSvKU9ESZFgqjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "globals": "^13.24.0", + "natural-compare": "^1.4.0", + "nth-check": "^2.1.1", + "postcss-selector-parser": "^6.0.15", + "semver": "^7.6.3", + "vue-eslint-parser": "^9.4.3", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-vue/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-scope": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", + "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.14.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "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, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/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==", + "license": "MIT" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/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, + "license": "MIT" + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", + "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", + "dev": true, + "license": "ISC" + }, + "node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/hookable": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/hookable/-/hookable-5.5.3.tgz", + "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/html-tags": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", + "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "dev": true, + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-what": { + "version": "4.1.16", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-4.1.16.tgz", + "integrity": "sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/is-wsl": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", + "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/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, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kolorist": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz", + "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==", + "dev": true, + "license": "MIT" + }, + "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, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.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, + "license": "MIT" + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.30.13", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.13.tgz", + "integrity": "sha512-8rYBO+MsWkgjDSOvLomYnzhdwEG51olQ4zL5KXnNJWV5MNmrb4rTZdrtkhxjnD/QyZUqR/Z/XDsUs/4ej2nx0g==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", + "dev": true, + "license": "MIT" + }, + "node_modules/mrmime": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", + "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "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, + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "dev": true, + "license": "MIT" + }, + "node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-10.1.0.tgz", + "integrity": "sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "default-browser": "^5.2.1", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^3.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "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.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/perfect-debounce": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz", + "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", + "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/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, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/rfdc": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "dev": true, + "license": "MIT" + }, + "node_modules/rollup": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.27.3.tgz", + "integrity": "sha512-SLsCOnlmGt9VoZ9Ek8yBK8tAdmPHeppkw+Xa7yDlCEhDTvwYei03JlWo1fdc7YTfLZ4tD8riJCUyAgTbszk1fQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.27.3", + "@rollup/rollup-android-arm64": "4.27.3", + "@rollup/rollup-darwin-arm64": "4.27.3", + "@rollup/rollup-darwin-x64": "4.27.3", + "@rollup/rollup-freebsd-arm64": "4.27.3", + "@rollup/rollup-freebsd-x64": "4.27.3", + "@rollup/rollup-linux-arm-gnueabihf": "4.27.3", + "@rollup/rollup-linux-arm-musleabihf": "4.27.3", + "@rollup/rollup-linux-arm64-gnu": "4.27.3", + "@rollup/rollup-linux-arm64-musl": "4.27.3", + "@rollup/rollup-linux-powerpc64le-gnu": "4.27.3", + "@rollup/rollup-linux-riscv64-gnu": "4.27.3", + "@rollup/rollup-linux-s390x-gnu": "4.27.3", + "@rollup/rollup-linux-x64-gnu": "4.27.3", + "@rollup/rollup-linux-x64-musl": "4.27.3", + "@rollup/rollup-win32-arm64-msvc": "4.27.3", + "@rollup/rollup-win32-ia32-msvc": "4.27.3", + "@rollup/rollup-win32-x64-msvc": "4.27.3", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-applescript": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.0.0.tgz", + "integrity": "sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sirv": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.0.tgz", + "integrity": "sha512-BPwJGUeDaDCHihkORDchNyyTvWFhcusy1XMmhEVTQTwGeybFbp8YEmB+njbPnth1FibULBSBVwCQni25XlCUDg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/speakingurl": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/speakingurl/-/speakingurl-14.0.1.tgz", + "integrity": "sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/superjson": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/superjson/-/superjson-2.2.1.tgz", + "integrity": "sha512-8iGv75BYOa0xRJHK5vRLEjE2H/i4lulTjzpUXic3Eg8akftYjkmQDa8JARQ42rlczXyFR3IeRoeFCc7RxHsYZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "copy-anything": "^3.0.2" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", + "dev": true + }, + "node_modules/synckit": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.2.tgz", + "integrity": "sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@pkgr/core": "^0.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/totalist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, + "node_modules/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, + "license": "MIT", + "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, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/vite": { + "version": "5.4.11", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.11.tgz", + "integrity": "sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-hot-client": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/vite-hot-client/-/vite-hot-client-0.2.3.tgz", + "integrity": "sha512-rOGAV7rUlUHX89fP2p2v0A2WWvV3QMX2UYq0fRqsWSvFvev4atHWqjwGoKaZT1VTKyLGk533ecu3eyd0o59CAg==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vite": "^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0" + } + }, + "node_modules/vite-plugin-inspect": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/vite-plugin-inspect/-/vite-plugin-inspect-0.8.8.tgz", + "integrity": "sha512-aZlBuXsWUPJFmMK92GIv6lH7LrwG2POu4KJ+aEdcqnu92OAf+rhBnfMDQvxIJPEB7hE2t5EyY/PMgf5aDLT8EA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@antfu/utils": "^0.7.10", + "@rollup/pluginutils": "^5.1.3", + "debug": "^4.3.7", + "error-stack-parser-es": "^0.1.5", + "fs-extra": "^11.2.0", + "open": "^10.1.0", + "perfect-debounce": "^1.0.0", + "picocolors": "^1.1.1", + "sirv": "^3.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vite": "^3.1.0 || ^4.0.0 || ^5.0.0-0" + }, + "peerDependenciesMeta": { + "@nuxt/kit": { + "optional": true + } + } + }, + "node_modules/vite-plugin-vue-devtools": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/vite-plugin-vue-devtools/-/vite-plugin-vue-devtools-7.6.4.tgz", + "integrity": "sha512-jxSsLyuETfmZ1OSrmnDp28BG6rmURrP7lkeyHW2gBFDyo+4dUcqVeQNMhbV7uKZn80mDdv06Mysw/5AdGxDvJQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/devtools-core": "^7.6.4", + "@vue/devtools-kit": "^7.6.4", + "@vue/devtools-shared": "^7.6.4", + "execa": "^8.0.1", + "sirv": "^3.0.0", + "vite-plugin-inspect": "^0.8.7", + "vite-plugin-vue-inspector": "^5.2.0" + }, + "engines": { + "node": ">=v14.21.3" + }, + "peerDependencies": { + "vite": "^3.1.0 || ^4.0.0-0 || ^5.0.0-0" + } + }, + "node_modules/vite-plugin-vue-inspector": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/vite-plugin-vue-inspector/-/vite-plugin-vue-inspector-5.2.0.tgz", + "integrity": "sha512-wWxyb9XAtaIvV/Lr7cqB1HIzmHZFVUJsTNm3yAxkS87dgh/Ky4qr2wDEWNxF23fdhVa3jQ8MZREpr4XyiuaRqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.23.0", + "@babel/plugin-proposal-decorators": "^7.23.0", + "@babel/plugin-syntax-import-attributes": "^7.22.5", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-transform-typescript": "^7.22.15", + "@vue/babel-plugin-jsx": "^1.1.5", + "@vue/compiler-dom": "^3.3.4", + "kolorist": "^1.8.0", + "magic-string": "^0.30.4" + }, + "peerDependencies": { + "vite": "^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0" + } + }, + "node_modules/vue": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.13.tgz", + "integrity": "sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.13", + "@vue/compiler-sfc": "3.5.13", + "@vue/runtime-dom": "3.5.13", + "@vue/server-renderer": "3.5.13", + "@vue/shared": "3.5.13" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vue-eslint-parser": { + "version": "9.4.3", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz", + "integrity": "sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4", + "eslint-scope": "^7.1.1", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", + "esquery": "^1.4.0", + "lodash": "^4.17.21", + "semver": "^7.3.6" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/vue-eslint-parser/node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/vue-eslint-parser/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/vue-eslint-parser/node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..b9a974d --- /dev/null +++ b/package.json @@ -0,0 +1,26 @@ +{ + "name": "frontend-test", + "version": "0.0.0", + "private": true, + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview", + "lint": "eslint . --fix", + "format": "prettier --write src/" + }, + "dependencies": { + "vue": "^3.5.12" + }, + "devDependencies": { + "@eslint/js": "^9.14.0", + "@vitejs/plugin-vue": "^5.1.4", + "@vue/eslint-config-prettier": "^10.1.0", + "eslint": "^9.14.0", + "eslint-plugin-vue": "^9.30.0", + "prettier": "^3.3.3", + "vite": "^5.4.10", + "vite-plugin-vue-devtools": "^7.5.4" + } +} diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..df36fcfb72584e00488330b560ebcf34a41c64c2 GIT binary patch literal 4286 zcmds*O-Phc6o&64GDVCEQHxsW(p4>LW*W<827=Unuo8sGpRux(DN@jWP-e29Wl%wj zY84_aq9}^Am9-cWTD5GGEo#+5Fi2wX_P*bo+xO!)p*7B;iKlbFd(U~_d(U?#hLj56 zPhFkj-|A6~Qk#@g^#D^U0XT1cu=c-vu1+SElX9NR;kzAUV(q0|dl0|%h|dI$%VICy zJnu2^L*Te9JrJMGh%-P79CL0}dq92RGU6gI{v2~|)p}sG5x0U*z<8U;Ij*hB9z?ei z@g6Xq-pDoPl=MANPiR7%172VA%r)kevtV-_5H*QJKFmd;8yA$98zCxBZYXTNZ#QFk2(TX0;Y2dt&WitL#$96|gJY=3xX zpCoi|YNzgO3R`f@IiEeSmKrPSf#h#Qd<$%Ej^RIeeYfsxhPMOG`S`Pz8q``=511zm zAm)MX5AV^5xIWPyEu7u>qYs?pn$I4nL9J!=K=SGlKLXpE<5x+2cDTXq?brj?n6sp= zphe9;_JHf40^9~}9i08r{XM$7HB!`{Ys~TK0kx<}ZQng`UPvH*11|q7&l9?@FQz;8 zx!=3<4seY*%=OlbCbcae?5^V_}*K>Uo6ZWV8mTyE^B=DKy7-sdLYkR5Z?paTgK-zyIkKjIcpyO z{+uIt&YSa_$QnN_@t~L014dyK(fOOo+W*MIxbA6Ndgr=Y!f#Tokqv}n<7-9qfHkc3 z=>a|HWqcX8fzQCT=dqVbogRq!-S>H%yA{1w#2Pn;=e>JiEj7Hl;zdt-2f+j2%DeVD zsW0Ab)ZK@0cIW%W7z}H{&~yGhn~D;aiP4=;m-HCo`BEI+Kd6 z={Xwx{TKxD#iCLfl2vQGDitKtN>z|-AdCN|$jTFDg0m3O`WLD4_s#$S literal 0 HcmV?d00001 diff --git a/src/App.vue b/src/App.vue new file mode 100644 index 0000000..633a5df --- /dev/null +++ b/src/App.vue @@ -0,0 +1,47 @@ + + + + + diff --git a/src/assets/base.css b/src/assets/base.css new file mode 100644 index 0000000..8816868 --- /dev/null +++ b/src/assets/base.css @@ -0,0 +1,86 @@ +/* color palette from */ +:root { + --vt-c-white: #ffffff; + --vt-c-white-soft: #f8f8f8; + --vt-c-white-mute: #f2f2f2; + + --vt-c-black: #181818; + --vt-c-black-soft: #222222; + --vt-c-black-mute: #282828; + + --vt-c-indigo: #2c3e50; + + --vt-c-divider-light-1: rgba(60, 60, 60, 0.29); + --vt-c-divider-light-2: rgba(60, 60, 60, 0.12); + --vt-c-divider-dark-1: rgba(84, 84, 84, 0.65); + --vt-c-divider-dark-2: rgba(84, 84, 84, 0.48); + + --vt-c-text-light-1: var(--vt-c-indigo); + --vt-c-text-light-2: rgba(60, 60, 60, 0.66); + --vt-c-text-dark-1: var(--vt-c-white); + --vt-c-text-dark-2: rgba(235, 235, 235, 0.64); +} + +/* semantic color variables for this project */ +:root { + --color-background: var(--vt-c-white); + --color-background-soft: var(--vt-c-white-soft); + --color-background-mute: var(--vt-c-white-mute); + + --color-border: var(--vt-c-divider-light-2); + --color-border-hover: var(--vt-c-divider-light-1); + + --color-heading: var(--vt-c-text-light-1); + --color-text: var(--vt-c-text-light-1); + + --section-gap: 160px; +} + +@media (prefers-color-scheme: dark) { + :root { + --color-background: var(--vt-c-black); + --color-background-soft: var(--vt-c-black-soft); + --color-background-mute: var(--vt-c-black-mute); + + --color-border: var(--vt-c-divider-dark-2); + --color-border-hover: var(--vt-c-divider-dark-1); + + --color-heading: var(--vt-c-text-dark-1); + --color-text: var(--vt-c-text-dark-2); + } +} + +*, +*::before, +*::after { + box-sizing: border-box; + margin: 0; + font-weight: normal; +} + +body { + min-height: 100vh; + color: var(--color-text); + background: var(--color-background); + transition: + color 0.5s, + background-color 0.5s; + line-height: 1.6; + font-family: + Inter, + -apple-system, + BlinkMacSystemFont, + 'Segoe UI', + Roboto, + Oxygen, + Ubuntu, + Cantarell, + 'Fira Sans', + 'Droid Sans', + 'Helvetica Neue', + sans-serif; + font-size: 15px; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} diff --git a/src/assets/logo.svg b/src/assets/logo.svg new file mode 100644 index 0000000..7565660 --- /dev/null +++ b/src/assets/logo.svg @@ -0,0 +1 @@ + diff --git a/src/assets/main.css b/src/assets/main.css new file mode 100644 index 0000000..36fb845 --- /dev/null +++ b/src/assets/main.css @@ -0,0 +1,35 @@ +@import './base.css'; + +#app { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + font-weight: normal; +} + +a, +.green { + text-decoration: none; + color: hsla(160, 100%, 37%, 1); + transition: 0.4s; + padding: 3px; +} + +@media (hover: hover) { + a:hover { + background-color: hsla(160, 100%, 37%, 0.2); + } +} + +@media (min-width: 1024px) { + body { + display: flex; + place-items: center; + } + + #app { + display: grid; + grid-template-columns: 1fr 1fr; + padding: 0 2rem; + } +} diff --git a/src/components/HelloWorld.vue b/src/components/HelloWorld.vue new file mode 100644 index 0000000..eff59f1 --- /dev/null +++ b/src/components/HelloWorld.vue @@ -0,0 +1,44 @@ + + + + + diff --git a/src/components/TheWelcome.vue b/src/components/TheWelcome.vue new file mode 100644 index 0000000..acb6a2d --- /dev/null +++ b/src/components/TheWelcome.vue @@ -0,0 +1,90 @@ + + + diff --git a/src/components/WelcomeItem.vue b/src/components/WelcomeItem.vue new file mode 100644 index 0000000..6d7086a --- /dev/null +++ b/src/components/WelcomeItem.vue @@ -0,0 +1,87 @@ + + + diff --git a/src/components/icons/IconCommunity.vue b/src/components/icons/IconCommunity.vue new file mode 100644 index 0000000..2dc8b05 --- /dev/null +++ b/src/components/icons/IconCommunity.vue @@ -0,0 +1,7 @@ + diff --git a/src/components/icons/IconDocumentation.vue b/src/components/icons/IconDocumentation.vue new file mode 100644 index 0000000..6d4791c --- /dev/null +++ b/src/components/icons/IconDocumentation.vue @@ -0,0 +1,7 @@ + diff --git a/src/components/icons/IconEcosystem.vue b/src/components/icons/IconEcosystem.vue new file mode 100644 index 0000000..c3a4f07 --- /dev/null +++ b/src/components/icons/IconEcosystem.vue @@ -0,0 +1,7 @@ + diff --git a/src/components/icons/IconSupport.vue b/src/components/icons/IconSupport.vue new file mode 100644 index 0000000..7452834 --- /dev/null +++ b/src/components/icons/IconSupport.vue @@ -0,0 +1,7 @@ + diff --git a/src/components/icons/IconTooling.vue b/src/components/icons/IconTooling.vue new file mode 100644 index 0000000..660598d --- /dev/null +++ b/src/components/icons/IconTooling.vue @@ -0,0 +1,19 @@ + + diff --git a/src/main.js b/src/main.js new file mode 100644 index 0000000..0ac3a5f --- /dev/null +++ b/src/main.js @@ -0,0 +1,6 @@ +import './assets/main.css' + +import { createApp } from 'vue' +import App from './App.vue' + +createApp(App).mount('#app') diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 0000000..4217010 --- /dev/null +++ b/vite.config.js @@ -0,0 +1,18 @@ +import { fileURLToPath, URL } from 'node:url' + +import { defineConfig } from 'vite' +import vue from '@vitejs/plugin-vue' +import vueDevTools from 'vite-plugin-vue-devtools' + +// https://vite.dev/config/ +export default defineConfig({ + plugins: [ + vue(), + vueDevTools(), + ], + resolve: { + alias: { + '@': fileURLToPath(new URL('./src', import.meta.url)) + }, + }, +}) From f8bcac4b2a9168c17f2cb07ac971ab48614d2a2c Mon Sep 17 00:00:00 2001 From: Victor Machado Date: Fri, 22 Nov 2024 21:02:40 -0300 Subject: [PATCH 02/55] =?UTF-8?q?Removendo=20c=C3=B3digo=20inicial=20Vue?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.vue | 48 +----------- src/components/HelloWorld.vue | 44 ----------- src/components/TheWelcome.vue | 90 ---------------------- src/components/WelcomeItem.vue | 87 --------------------- src/components/icons/IconCommunity.vue | 7 -- src/components/icons/IconDocumentation.vue | 7 -- src/components/icons/IconEcosystem.vue | 7 -- src/components/icons/IconSupport.vue | 7 -- src/components/icons/IconTooling.vue | 19 ----- 9 files changed, 3 insertions(+), 313 deletions(-) delete mode 100644 src/components/HelloWorld.vue delete mode 100644 src/components/TheWelcome.vue delete mode 100644 src/components/WelcomeItem.vue delete mode 100644 src/components/icons/IconCommunity.vue delete mode 100644 src/components/icons/IconDocumentation.vue delete mode 100644 src/components/icons/IconEcosystem.vue delete mode 100644 src/components/icons/IconSupport.vue delete mode 100644 src/components/icons/IconTooling.vue diff --git a/src/App.vue b/src/App.vue index 633a5df..b662d57 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,47 +1,5 @@ - + - - - + diff --git a/src/components/HelloWorld.vue b/src/components/HelloWorld.vue deleted file mode 100644 index eff59f1..0000000 --- a/src/components/HelloWorld.vue +++ /dev/null @@ -1,44 +0,0 @@ - - - - - diff --git a/src/components/TheWelcome.vue b/src/components/TheWelcome.vue deleted file mode 100644 index acb6a2d..0000000 --- a/src/components/TheWelcome.vue +++ /dev/null @@ -1,90 +0,0 @@ - - - diff --git a/src/components/WelcomeItem.vue b/src/components/WelcomeItem.vue deleted file mode 100644 index 6d7086a..0000000 --- a/src/components/WelcomeItem.vue +++ /dev/null @@ -1,87 +0,0 @@ - - - diff --git a/src/components/icons/IconCommunity.vue b/src/components/icons/IconCommunity.vue deleted file mode 100644 index 2dc8b05..0000000 --- a/src/components/icons/IconCommunity.vue +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/src/components/icons/IconDocumentation.vue b/src/components/icons/IconDocumentation.vue deleted file mode 100644 index 6d4791c..0000000 --- a/src/components/icons/IconDocumentation.vue +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/src/components/icons/IconEcosystem.vue b/src/components/icons/IconEcosystem.vue deleted file mode 100644 index c3a4f07..0000000 --- a/src/components/icons/IconEcosystem.vue +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/src/components/icons/IconSupport.vue b/src/components/icons/IconSupport.vue deleted file mode 100644 index 7452834..0000000 --- a/src/components/icons/IconSupport.vue +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/src/components/icons/IconTooling.vue b/src/components/icons/IconTooling.vue deleted file mode 100644 index 660598d..0000000 --- a/src/components/icons/IconTooling.vue +++ /dev/null @@ -1,19 +0,0 @@ - - From 5a74f5f8780d9785d107d97928ca02f11fef5bbd Mon Sep 17 00:00:00 2001 From: Victor Machado Date: Fri, 22 Nov 2024 21:41:18 -0300 Subject: [PATCH 03/55] Definindo estrutura dos componentes --- src/App.vue | 8 ++++++-- src/components/CurrencySelector.vue | 7 +++++++ src/components/RangeField.vue | 7 +++++++ src/components/ResultsPanel.vue | 7 +++++++ src/components/TipCalculator.vue | 19 +++++++++++++++++++ 5 files changed, 46 insertions(+), 2 deletions(-) create mode 100644 src/components/CurrencySelector.vue create mode 100644 src/components/RangeField.vue create mode 100644 src/components/ResultsPanel.vue create mode 100644 src/components/TipCalculator.vue diff --git a/src/App.vue b/src/App.vue index b662d57..83fd3e0 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,5 +1,9 @@ - + - + diff --git a/src/components/CurrencySelector.vue b/src/components/CurrencySelector.vue new file mode 100644 index 0000000..66a07db --- /dev/null +++ b/src/components/CurrencySelector.vue @@ -0,0 +1,7 @@ + + + + + diff --git a/src/components/RangeField.vue b/src/components/RangeField.vue new file mode 100644 index 0000000..f2bda0f --- /dev/null +++ b/src/components/RangeField.vue @@ -0,0 +1,7 @@ + + + + + diff --git a/src/components/ResultsPanel.vue b/src/components/ResultsPanel.vue new file mode 100644 index 0000000..dc1356b --- /dev/null +++ b/src/components/ResultsPanel.vue @@ -0,0 +1,7 @@ + + + + + diff --git a/src/components/TipCalculator.vue b/src/components/TipCalculator.vue new file mode 100644 index 0000000..dce1d8a --- /dev/null +++ b/src/components/TipCalculator.vue @@ -0,0 +1,19 @@ + + + + + From 1febfce5454daae9d5bf8414eb43ab41941e45bc Mon Sep 17 00:00:00 2001 From: Victor Machado Date: Fri, 22 Nov 2024 21:53:08 -0300 Subject: [PATCH 04/55] Implementando funcionalidade ao CurrencySelector --- src/components/CurrencySelector.vue | 25 +++++++++++++++++++++++-- src/components/TipCalculator.vue | 6 +++++- 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/src/components/CurrencySelector.vue b/src/components/CurrencySelector.vue index 66a07db..c3570f5 100644 --- a/src/components/CurrencySelector.vue +++ b/src/components/CurrencySelector.vue @@ -1,7 +1,28 @@ - + diff --git a/src/components/TipCalculator.vue b/src/components/TipCalculator.vue index dce1d8a..9d67c66 100644 --- a/src/components/TipCalculator.vue +++ b/src/components/TipCalculator.vue @@ -2,7 +2,7 @@

Calculadora de Gorjetas

- + @@ -11,9 +11,13 @@ From c1c2da2a2bffcc00de11f706f9cc89d9fa793488 Mon Sep 17 00:00:00 2001 From: Victor Machado Date: Fri, 22 Nov 2024 21:59:21 -0300 Subject: [PATCH 05/55] Adiciona campo de entrada para o total da conta --- src/components/TipCalculator.vue | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/components/TipCalculator.vue b/src/components/TipCalculator.vue index 9d67c66..b383049 100644 --- a/src/components/TipCalculator.vue +++ b/src/components/TipCalculator.vue @@ -4,6 +4,19 @@ +
+ +
+ @@ -17,6 +30,7 @@ import CurrencySelector from './CurrencySelector.vue' import RangeField from './RangeField.vue' import ResultsPanel from './ResultsPanel.vue' +const billTotal = ref(0) const selectedCurrency = ref('USD') From 97378cc931f2ac13a003230a2118264c07485ba3 Mon Sep 17 00:00:00 2001 From: Victor Machado Date: Fri, 22 Nov 2024 22:08:43 -0300 Subject: [PATCH 06/55] Altera nome RangeField para RangeInput Adiciona um nome mais descritivo --- src/components/{RangeField.vue => RangeInput.vue} | 0 src/components/TipCalculator.vue | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) rename src/components/{RangeField.vue => RangeInput.vue} (100%) diff --git a/src/components/RangeField.vue b/src/components/RangeInput.vue similarity index 100% rename from src/components/RangeField.vue rename to src/components/RangeInput.vue diff --git a/src/components/TipCalculator.vue b/src/components/TipCalculator.vue index b383049..9be2f17 100644 --- a/src/components/TipCalculator.vue +++ b/src/components/TipCalculator.vue @@ -17,7 +17,7 @@
- + @@ -27,7 +27,7 @@ import { ref, computed, watch } from 'vue' import CurrencySelector from './CurrencySelector.vue' -import RangeField from './RangeField.vue' +import RangeInput from './RangeInput.vue' import ResultsPanel from './ResultsPanel.vue' const billTotal = ref(0) From 0ea8880e1f63a271aa057d85ba5c9fca86aabfc9 Mon Sep 17 00:00:00 2001 From: Victor Machado Date: Fri, 22 Nov 2024 22:43:25 -0300 Subject: [PATCH 07/55] =?UTF-8?q?Adiciona=20input=20din=C3=A2mico=20-=20go?= =?UTF-8?q?rjeta=20e=20n=C3=BAmero=20pessoas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Adiciona lógica de input dinâmica do tipo intervalo (range) para permitir ao usuário ajustar a porcentagem da gorjeta e o número de pessoas. - Implementa um array reativo `rangeInputs` para armazenar os valores e limites de cada input, além de uma função `updateValue` para atualizar o array quando os valores são alterados --- src/components/RangeInput.vue | 50 ++++++++++++++++++++++++++++++-- src/components/TipCalculator.vue | 22 +++++++++++++- 2 files changed, 68 insertions(+), 4 deletions(-) diff --git a/src/components/RangeInput.vue b/src/components/RangeInput.vue index f2bda0f..2f84b74 100644 --- a/src/components/RangeInput.vue +++ b/src/components/RangeInput.vue @@ -1,7 +1,51 @@ - + + + diff --git a/src/components/TipCalculator.vue b/src/components/TipCalculator.vue index 9be2f17..a39fdc9 100644 --- a/src/components/TipCalculator.vue +++ b/src/components/TipCalculator.vue @@ -17,7 +17,15 @@ - + @@ -31,7 +39,19 @@ import RangeInput from './RangeInput.vue' import ResultsPanel from './ResultsPanel.vue' const billTotal = ref(0) +const tipPercentage = ref(10) +const peopleCount = ref(2) const selectedCurrency = ref('USD') + +// Dados dinâmicos +const rangeInputs = ref([ + { label: 'Tip', value: 10, min: 10, max: 20 }, + { label: 'Number of People', value: 2, min: 2, max: 16 }, +]) + +const updateValue = (index, newValue) => { + rangeInputs.value[index].value = newValue +} From 8c03eeac788a70908cc67330875c9d479e8eecb7 Mon Sep 17 00:00:00 2001 From: Victor Machado Date: Fri, 22 Nov 2024 23:55:17 -0300 Subject: [PATCH 08/55] Adiciona o pacote sass-embedded --- package-lock.json | 470 ++++++++++++++++++++++++++++++++++++++++++++++ package.json | 1 + 2 files changed, 471 insertions(+) diff --git a/package-lock.json b/package-lock.json index f93f2b1..c80a89b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,6 +17,7 @@ "eslint": "^9.14.0", "eslint-plugin-vue": "^9.30.0", "prettier": "^3.3.3", + "sass-embedded": "^1.81.0", "vite": "^5.4.10", "vite-plugin-vue-devtools": "^7.5.4" } @@ -530,6 +531,13 @@ "node": ">=6.9.0" } }, + "node_modules/@bufbuild/protobuf": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@bufbuild/protobuf/-/protobuf-2.2.2.tgz", + "integrity": "sha512-UNtPCbrwrenpmrXuRwn9jYpPoweNXj8X5sMvYgsqYyaH8jQ6LfUJSk3dJLnBK+6sfYPrF4iAIo5sd5HQ+tg75A==", + "dev": true, + "license": "(Apache-2.0 AND BSD-3-Clause)" + }, "node_modules/@esbuild/aix-ppc64": { "version": "0.21.5", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", @@ -1827,6 +1835,13 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, + "node_modules/buffer-builder": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/buffer-builder/-/buffer-builder-0.2.0.tgz", + "integrity": "sha512-7VPMEPuYznPSoR21NE1zvd2Xna6c/CloiZCfcMXR1Jny6PjX0N4Nsa38zcBFo/FMK+BlA+FLKbJCQ0i2yxp+Xg==", + "dev": true, + "license": "MIT/X11" + }, "node_modules/bundle-name": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", @@ -1911,6 +1926,13 @@ "dev": true, "license": "MIT" }, + "node_modules/colorjs.io": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/colorjs.io/-/colorjs.io-0.5.2.tgz", + "integrity": "sha512-twmVoizEW7ylZSN32OgKdXRmo1qg+wT5/6C3xu5b9QsWzSFAhHLn2xd8ro0diCsKfCj1RdaTP/nrcW+vAoQPIw==", + "dev": true, + "license": "MIT" + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -2616,6 +2638,13 @@ "node": ">= 4" } }, + "node_modules/immutable": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.0.3.tgz", + "integrity": "sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw==", + "dev": true, + "license": "MIT" + }, "node_modules/import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", @@ -3351,6 +3380,417 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/sass-embedded": { + "version": "1.81.0", + "resolved": "https://registry.npmjs.org/sass-embedded/-/sass-embedded-1.81.0.tgz", + "integrity": "sha512-uZQ2Faxb1oWBHpeSSzjxnhClbMb3QadN0ql0ZFNuqWOLUxwaVhrMlMhPq6TDPbbfDUjihuwrMCuy695Bgna5RA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@bufbuild/protobuf": "^2.0.0", + "buffer-builder": "^0.2.0", + "colorjs.io": "^0.5.0", + "immutable": "^5.0.2", + "rxjs": "^7.4.0", + "supports-color": "^8.1.1", + "sync-child-process": "^1.0.2", + "varint": "^6.0.0" + }, + "bin": { + "sass": "dist/bin/sass.js" + }, + "engines": { + "node": ">=16.0.0" + }, + "optionalDependencies": { + "sass-embedded-android-arm": "1.81.0", + "sass-embedded-android-arm64": "1.81.0", + "sass-embedded-android-ia32": "1.81.0", + "sass-embedded-android-riscv64": "1.81.0", + "sass-embedded-android-x64": "1.81.0", + "sass-embedded-darwin-arm64": "1.81.0", + "sass-embedded-darwin-x64": "1.81.0", + "sass-embedded-linux-arm": "1.81.0", + "sass-embedded-linux-arm64": "1.81.0", + "sass-embedded-linux-ia32": "1.81.0", + "sass-embedded-linux-musl-arm": "1.81.0", + "sass-embedded-linux-musl-arm64": "1.81.0", + "sass-embedded-linux-musl-ia32": "1.81.0", + "sass-embedded-linux-musl-riscv64": "1.81.0", + "sass-embedded-linux-musl-x64": "1.81.0", + "sass-embedded-linux-riscv64": "1.81.0", + "sass-embedded-linux-x64": "1.81.0", + "sass-embedded-win32-arm64": "1.81.0", + "sass-embedded-win32-ia32": "1.81.0", + "sass-embedded-win32-x64": "1.81.0" + } + }, + "node_modules/sass-embedded-android-arm": { + "version": "1.81.0", + "resolved": "https://registry.npmjs.org/sass-embedded-android-arm/-/sass-embedded-android-arm-1.81.0.tgz", + "integrity": "sha512-NWEmIuaIEsGFNsIRa+5JpIpPJyZ32H15E85CNZqEIhhwWlk9UNw7vlOCmTH8MtabtnACwC/2NG8VyNa3nxKzUQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-android-arm64": { + "version": "1.81.0", + "resolved": "https://registry.npmjs.org/sass-embedded-android-arm64/-/sass-embedded-android-arm64-1.81.0.tgz", + "integrity": "sha512-I36P77/PKAHx6sqOmexO2iEY5kpsmQ1VxcgITZSOxPMQhdB6m4t3bTabfDuWQQmCrqqiNFtLQHeytB65bUqwiw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-android-ia32": { + "version": "1.81.0", + "resolved": "https://registry.npmjs.org/sass-embedded-android-ia32/-/sass-embedded-android-ia32-1.81.0.tgz", + "integrity": "sha512-k8V1usXw30w1GVxvrteG1RzgYJzYQ9PfL2aeOqGdroBN7zYTD9VGJXTGcxA4IeeRxmRd7szVW2mKXXS472fh8g==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-android-riscv64": { + "version": "1.81.0", + "resolved": "https://registry.npmjs.org/sass-embedded-android-riscv64/-/sass-embedded-android-riscv64-1.81.0.tgz", + "integrity": "sha512-RXlanyLXEpN/DEehXgLuKPsqT//GYlsGFxKXgRiCc8hIPAueFLQXKJmLWlL3BEtHgmFdbsStIu4aZCcb1hOFlQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-android-x64": { + "version": "1.81.0", + "resolved": "https://registry.npmjs.org/sass-embedded-android-x64/-/sass-embedded-android-x64-1.81.0.tgz", + "integrity": "sha512-RQG0FxGQ1DERNyUDED8+BDVaLIjI+BNg8lVcyqlLZUrWY6NhzjwYEeiN/DNZmMmHtqDucAPNDcsdVUNQqsBy2A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-darwin-arm64": { + "version": "1.81.0", + "resolved": "https://registry.npmjs.org/sass-embedded-darwin-arm64/-/sass-embedded-darwin-arm64-1.81.0.tgz", + "integrity": "sha512-gLKbsfII9Ppua76N41ODFnKGutla9qv0OGAas8gxe0jYBeAQFi/1iKQYdNtQtKi4mA9n5TQTqz+HHCKszZCoyA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-darwin-x64": { + "version": "1.81.0", + "resolved": "https://registry.npmjs.org/sass-embedded-darwin-x64/-/sass-embedded-darwin-x64-1.81.0.tgz", + "integrity": "sha512-7uMOlT9hD2KUJCbTN2XcfghDxt/rc50ujjfSjSHjX1SYj7mGplkINUXvVbbvvaV2wt6t9vkGkCo5qNbeBhfwBg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-arm": { + "version": "1.81.0", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-arm/-/sass-embedded-linux-arm-1.81.0.tgz", + "integrity": "sha512-REqR9qM4RchCE3cKqzRy9Q4zigIV82SbSpCi/O4O3oK3pg2I1z7vkb3TiJsivusG/li7aqKZGmYOtAXjruGQDA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-arm64": { + "version": "1.81.0", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-arm64/-/sass-embedded-linux-arm64-1.81.0.tgz", + "integrity": "sha512-jy4bvhdUmqbyw1jv1f3Uxl+MF8EU/Y/GDx4w6XPJm4Ds+mwH/TwnyAwsxxoBhWfnBnW8q2ADy039DlS5p+9csQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-ia32": { + "version": "1.81.0", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-ia32/-/sass-embedded-linux-ia32-1.81.0.tgz", + "integrity": "sha512-ga/Jk4q5Bn1aC+iHJteDZuLSKnmBUiS3dEg1fnl/Z7GaHIChceKDJOw0zNaILRXI0qT2E1at9MwzoRaRA5Nn/g==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-musl-arm": { + "version": "1.81.0", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm/-/sass-embedded-linux-musl-arm-1.81.0.tgz", + "integrity": "sha512-oWVUvQ4d5Kx1Md75YXZl5z1WBjc+uOhfRRqzkJ3nWc8tjszxJN+y/5EOJavhsNI3/2yoTt6eMXRTqDD9b0tWSQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-musl-arm64": { + "version": "1.81.0", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm64/-/sass-embedded-linux-musl-arm64-1.81.0.tgz", + "integrity": "sha512-hpntWf5kjkoxncA1Vh8vhsUOquZ8AROZKx0rQh7ZjSRs4JrYZASz1cfevPKaEM3wIim/nYa6TJqm0VqWsrERlA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-musl-ia32": { + "version": "1.81.0", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-ia32/-/sass-embedded-linux-musl-ia32-1.81.0.tgz", + "integrity": "sha512-UEXUYkBuqTSwg5JNWiNlfMZ1Jx6SJkaEdx+fsL3Tk099L8cKSoJWH2EPz4ZJjNbyIMymrSdVfymheTeZ8u24xA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-musl-riscv64": { + "version": "1.81.0", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-riscv64/-/sass-embedded-linux-musl-riscv64-1.81.0.tgz", + "integrity": "sha512-1D7OznytbIhx2XDHWi1nuQ8d/uCVR7FGGzELgaU//T8A9DapVTUgPKvB70AF1k4GzChR9IXU/WvFZs2hDTbaJg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-musl-x64": { + "version": "1.81.0", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-x64/-/sass-embedded-linux-musl-x64-1.81.0.tgz", + "integrity": "sha512-ia6VCTeVDQtBSMktXRFza1AZCt8/6aUoujot6Ugf4KmdytQqPJIHxkHaGftm5xwi9WdrMGYS7zgolToPijR11A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-riscv64": { + "version": "1.81.0", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-riscv64/-/sass-embedded-linux-riscv64-1.81.0.tgz", + "integrity": "sha512-KbxSsqu4tT1XbhZfJV/5NfW0VtJIGlD58RjqJqJBi8Rnjrx29/upBsuwoDWtsPV/LhoGwwU1XkSa9Q1ifCz4fQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-x64": { + "version": "1.81.0", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-x64/-/sass-embedded-linux-x64-1.81.0.tgz", + "integrity": "sha512-AMDeVY2T9WAnSFkuQcsOn5c29GRs/TuqnCiblKeXfxCSKym5uKdBl/N7GnTV6OjzoxiJBbkYKdVIaS5By7Gj4g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-win32-arm64": { + "version": "1.81.0", + "resolved": "https://registry.npmjs.org/sass-embedded-win32-arm64/-/sass-embedded-win32-arm64-1.81.0.tgz", + "integrity": "sha512-YOmBRYnygwWUmCoH14QbMRHjcvCJufeJBAp0m61tOJXIQh64ziwV4mjdqjS/Rx3zhTT4T+nulDUw4d3kLiMncA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-win32-ia32": { + "version": "1.81.0", + "resolved": "https://registry.npmjs.org/sass-embedded-win32-ia32/-/sass-embedded-win32-ia32-1.81.0.tgz", + "integrity": "sha512-HFfr/C+uLJGGTENdnssuNTmXI/xnIasUuEHEKqI+2J0FHCWT5cpz3PGAOHymPyJcZVYGUG/7gIxIx/d7t0LFYw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-win32-x64": { + "version": "1.81.0", + "resolved": "https://registry.npmjs.org/sass-embedded-win32-x64/-/sass-embedded-win32-x64-1.81.0.tgz", + "integrity": "sha512-wxj52jDcIAwWcXb7ShZ7vQYKcVUkJ+04YM9l46jDY+qwHzliGuorAUyujLyKTE9heGD3gShJ3wPPC1lXzq6v9A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, "node_modules/semver": { "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", @@ -3492,6 +3932,29 @@ "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", "dev": true }, + "node_modules/sync-child-process": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/sync-child-process/-/sync-child-process-1.0.2.tgz", + "integrity": "sha512-8lD+t2KrrScJ/7KXCSyfhT3/hRq78rC0wBFqNJXv3mZyn6hW2ypM05JmlSvtqRbeq6jqA94oHbxAr2vYsJ8vDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "sync-message-port": "^1.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/sync-message-port": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sync-message-port/-/sync-message-port-1.1.3.tgz", + "integrity": "sha512-GTt8rSKje5FilG+wEdfCkOcLL7LWqpMlr2c3LRuKt/YXxcJ52aGSbGBAdI4L3aaqfrBt6y711El53ItyH1NWzg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16.0.0" + } + }, "node_modules/synckit": { "version": "0.9.2", "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.2.tgz", @@ -3610,6 +4073,13 @@ "dev": true, "license": "MIT" }, + "node_modules/varint": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", + "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==", + "dev": true, + "license": "MIT" + }, "node_modules/vite": { "version": "5.4.11", "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.11.tgz", diff --git a/package.json b/package.json index b9a974d..a36b67b 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "eslint": "^9.14.0", "eslint-plugin-vue": "^9.30.0", "prettier": "^3.3.3", + "sass-embedded": "^1.81.0", "vite": "^5.4.10", "vite-plugin-vue-devtools": "^7.5.4" } From f0077df8a13d5b0263dac182816803d676e2c406 Mon Sep 17 00:00:00 2001 From: Victor Machado Date: Sat, 23 Nov 2024 11:34:30 -0300 Subject: [PATCH 09/55] Adiciona Pacote axios --- package-lock.json | 100 ++++++++++++++++++++++++++++++++++++++++++++++ package.json | 1 + 2 files changed, 101 insertions(+) diff --git a/package-lock.json b/package-lock.json index c80a89b..3a834ff 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,7 @@ "name": "frontend-test", "version": "0.0.0", "dependencies": { + "axios": "^1.7.7", "vue": "^3.5.12" }, "devDependencies": { @@ -1767,6 +1768,23 @@ "dev": true, "license": "Python-2.0" }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/axios": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz", + "integrity": "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -1933,6 +1951,18 @@ "dev": true, "license": "MIT" }, + "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==", + "license": "MIT", + "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", @@ -2065,6 +2095,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/electron-to-chromium": { "version": "1.5.64", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.64.tgz", @@ -2502,6 +2541,40 @@ "dev": true, "license": "ISC" }, + "node_modules/follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", + "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/fs-extra": { "version": "11.2.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", @@ -2946,6 +3019,27 @@ "dev": true, "license": "MIT" }, + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/mimic-fn": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", @@ -3302,6 +3396,12 @@ "node": ">=6.0.0" } }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", diff --git a/package.json b/package.json index a36b67b..80d8d5c 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "format": "prettier --write src/" }, "dependencies": { + "axios": "^1.7.7", "vue": "^3.5.12" }, "devDependencies": { From 72af70d1520137edcd361a8b0a550a907f4e4662 Mon Sep 17 00:00:00 2001 From: Victor Machado Date: Sat, 23 Nov 2024 15:44:44 -0300 Subject: [PATCH 10/55] Implementa two-way binding (v-model) no inputRange --- src/components/RangeInput.vue | 48 ++++++++++++++++++++++---------- src/components/TipCalculator.vue | 28 +++++++++---------- 2 files changed, 47 insertions(+), 29 deletions(-) diff --git a/src/components/RangeInput.vue b/src/components/RangeInput.vue index 2f84b74..6c6ed73 100644 --- a/src/components/RangeInput.vue +++ b/src/components/RangeInput.vue @@ -1,25 +1,36 @@ From 045f3db783b8b6b2ec75be5c4d757523344c1dbe Mon Sep 17 00:00:00 2001 From: Victor Machado Date: Sat, 23 Nov 2024 16:01:14 -0300 Subject: [PATCH 11/55] =?UTF-8?q?Adiciona=20diretorio=20services=20e=20req?= =?UTF-8?q?uisi=C3=A7=C3=A3o=20API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/services/currencyService.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 src/services/currencyService.js diff --git a/src/services/currencyService.js b/src/services/currencyService.js new file mode 100644 index 0000000..0d68863 --- /dev/null +++ b/src/services/currencyService.js @@ -0,0 +1,18 @@ +import axios from 'axios' + +const SWOP_API_KEY = 'ab82a7aab7ed4f0fa5c9627708f76ca27905b89394bc5db0cd04cea44745ffb0' +const SWOP_API_URL = 'https://swop.cx/rest/rates' + +export const fetchExchangeRates = async () => { + try { + const response = await axios.get(SWOP_API_URL, { + headers: { + Authorization: `ApiKey ${SWOP_API_KEY}`, + Accept: 'application/json', + }, + }) + return response.data + } catch (error) { + throw new Error('Falha ao buscar taxas de câmbio') + } +} From 449507f2e31be18a9890b6bdb9c7620cf98417c8 Mon Sep 17 00:00:00 2001 From: Victor Machado Date: Sat, 23 Nov 2024 16:14:07 -0300 Subject: [PATCH 12/55] =?UTF-8?q?Adicionar=20composables=20para=20convers?= =?UTF-8?q?=C3=A3o=20de=20moeda?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Adicionados os composables `useCurrencyConverter` e `useExchangeRates`. - O `useCurrencyConverter` realiza a conversão de valores para BRL com base nas taxas de câmbio - Já o `useExchangeRates` faz a chamada da API e busca a taxa de câmbio entre duas moedas --- src/composables/useCurrencyConverter.js | 27 ++++++++++++++++++++ src/composables/useExchangeRates.js | 33 +++++++++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 src/composables/useCurrencyConverter.js create mode 100644 src/composables/useExchangeRates.js diff --git a/src/composables/useCurrencyConverter.js b/src/composables/useCurrencyConverter.js new file mode 100644 index 0000000..e30c937 --- /dev/null +++ b/src/composables/useCurrencyConverter.js @@ -0,0 +1,27 @@ +import { computed } from 'vue' +import { useExchangeRates } from './useExchangeRates' + +export function useCurrencyConverter(amount, selectedCurrency) { + const { findRate, error } = useExchangeRates() + + const convertToBRL = computed(() => { + if (!amount.value) return 0 + + let rate = 1 + if (selectedCurrency.value === 'USD') { + const usdToEurRate = 1 / findRate('EUR', 'USD') + const eurToBrlRate = findRate('EUR', 'BRL') || 0 + rate = usdToEurRate * eurToBrlRate + } else if (selectedCurrency.value === 'EUR') { + // EUR -> BRL direto + rate = findRate('EUR', 'BRL') || 0 + } + + return amount.value * rate + }) + + return { + convertToBRL, + error, + } +} diff --git a/src/composables/useExchangeRates.js b/src/composables/useExchangeRates.js new file mode 100644 index 0000000..f721299 --- /dev/null +++ b/src/composables/useExchangeRates.js @@ -0,0 +1,33 @@ +import { ref, onMounted } from 'vue' +import { fetchExchangeRates } from '../services/currencyService' + +export function useExchangeRates() { + const exchangeRates = ref([]) + const error = ref('') + + const findRate = (baseCurrency, quoteCurrency) => { + return exchangeRates.value.find( + (rate) => rate.base_currency === baseCurrency && rate.quote_currency === quoteCurrency, + )?.quote + } + + const updateRates = async () => { + try { + exchangeRates.value = await fetchExchangeRates() + error.value = '' + } catch (err) { + error.value = 'Erro ao obter taxas de conversão. Por favor, tente novamente.' + console.error('Exchange rate error:', err) + } + } + + onMounted(() => { + updateRates() + }) + + return { + exchangeRates, + error, + findRate, + } +} From ce5816b86d749e8bccf89d7dcd64e5d943954d87 Mon Sep 17 00:00:00 2001 From: Victor Machado Date: Sat, 23 Nov 2024 16:48:20 -0300 Subject: [PATCH 13/55] Melhora dinamicamente o CurrencySelector --- src/components/CurrencySelector.vue | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/components/CurrencySelector.vue b/src/components/CurrencySelector.vue index c3570f5..f2b1595 100644 --- a/src/components/CurrencySelector.vue +++ b/src/components/CurrencySelector.vue @@ -4,17 +4,23 @@ Moeda: diff --git a/src/components/ResultsPanel.vue b/src/components/ResultsPanel.vue index dc1356b..0d7adad 100644 --- a/src/components/ResultsPanel.vue +++ b/src/components/ResultsPanel.vue @@ -1,7 +1,68 @@ - + diff --git a/src/components/TipCalculator.vue b/src/components/TipCalculator.vue index 0116eee..7a87198 100644 --- a/src/components/TipCalculator.vue +++ b/src/components/TipCalculator.vue @@ -27,7 +27,13 @@ class="tip-calculator__range" /> - + @@ -54,4 +60,12 @@ const rangeInputs = ref([ max: 16, }, ]) + +// Computed properties para acessar os valores específicos +const tipPercentage = computed(() => rangeInputs.value[0].value) +const peopleCount = computed(() => rangeInputs.value[1].value) + +// Cálculos +const tipAmount = computed(() => billTotal.value * (tipPercentage.value / 100)) +const totalWithTip = computed(() => billTotal.value + tipAmount.value) From d89b8d0a3a1a7e03a87c335a151393fe605c3e15 Mon Sep 17 00:00:00 2001 From: Victor Machado Date: Sat, 23 Nov 2024 18:24:07 -0300 Subject: [PATCH 15/55] =?UTF-8?q?Refatora=C3=A7=C3=A3o:=20Substituindo=20s?= =?UTF-8?q?elect=20por=20toggle?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Estilo toggle adicionado --- src/components/CurrencySelector.vue | 57 ++++++++++++++++++++++++----- 1 file changed, 47 insertions(+), 10 deletions(-) diff --git a/src/components/CurrencySelector.vue b/src/components/CurrencySelector.vue index f2b1595..2332b37 100644 --- a/src/components/CurrencySelector.vue +++ b/src/components/CurrencySelector.vue @@ -1,16 +1,18 @@ @@ -31,4 +33,39 @@ defineProps({ defineEmits(['update:modelValue']) - + From 74eb6df2e87e8a7b0feb9733321474ccbaa2e76a Mon Sep 17 00:00:00 2001 From: Victor Machado Date: Sat, 23 Nov 2024 22:52:29 -0300 Subject: [PATCH 16/55] Adicionado estilo inicial no TipCalculator --- src/components/TipCalculator.vue | 49 ++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/src/components/TipCalculator.vue b/src/components/TipCalculator.vue index 7a87198..f3157c3 100644 --- a/src/components/TipCalculator.vue +++ b/src/components/TipCalculator.vue @@ -69,3 +69,52 @@ const peopleCount = computed(() => rangeInputs.value[1].value) const tipAmount = computed(() => billTotal.value * (tipPercentage.value / 100)) const totalWithTip = computed(() => billTotal.value + tipAmount.value) + + From f0ab78d80ba80025ac5d0701fa56f086876d29d8 Mon Sep 17 00:00:00 2001 From: Victor Machado Date: Sat, 23 Nov 2024 23:17:32 -0300 Subject: [PATCH 17/55] =?UTF-8?q?Adiciona=20espa=C3=A7amento=20nos=20compo?= =?UTF-8?q?nentes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/CurrencySelector.vue | 6 +++++- src/components/ResultItem.vue | 18 ++++++++++++++++-- src/components/ResultsPanel.vue | 9 +++++++++ src/components/TipCalculator.vue | 11 +++++------ 4 files changed, 35 insertions(+), 9 deletions(-) diff --git a/src/components/CurrencySelector.vue b/src/components/CurrencySelector.vue index 2332b37..2e4d4d4 100644 --- a/src/components/CurrencySelector.vue +++ b/src/components/CurrencySelector.vue @@ -37,8 +37,11 @@ defineEmits(['update:modelValue']) .currency-selector { &__label { display: flex; - align-items: center; + flex-direction: column; gap: 0.5rem; + font-weight: 500; + padding: 0 2rem; + margin-bottom: 1.5rem; } &__toggle { @@ -46,6 +49,7 @@ defineEmits(['update:modelValue']) background-color: #f0f0f0; padding: 0.25rem; border-radius: 0.5rem; + align-self: flex-start; } &__toggle-button { diff --git a/src/components/ResultItem.vue b/src/components/ResultItem.vue index c07c1eb..2a82f95 100644 --- a/src/components/ResultItem.vue +++ b/src/components/ResultItem.vue @@ -1,7 +1,7 @@ @@ -30,3 +30,17 @@ const formattedValue = computed(() => { }).format(props.value) }) + + diff --git a/src/components/ResultsPanel.vue b/src/components/ResultsPanel.vue index 0d7adad..34b1d35 100644 --- a/src/components/ResultsPanel.vue +++ b/src/components/ResultsPanel.vue @@ -66,3 +66,12 @@ const resultItems = computed(() => [ }, ]) + + diff --git a/src/components/TipCalculator.vue b/src/components/TipCalculator.vue index f3157c3..90ea8dc 100644 --- a/src/components/TipCalculator.vue +++ b/src/components/TipCalculator.vue @@ -2,7 +2,7 @@

Calculadora de Gorjetas

- +