Compare commits
13 commits
f0c9f770aa
...
02d47d893a
| Author | SHA1 | Date | |
|---|---|---|---|
| 02d47d893a | |||
| 9d400be402 | |||
| 8b47aa470e | |||
| 4d82c1abea | |||
| 11f18a1b19 | |||
| 2fa311f9ca | |||
| 49fdeeabb2 | |||
| e27bcd8e7c | |||
| a6b3b14753 | |||
| 2a4bc9dd03 | |||
| 7c9e08908c | |||
| b132aa8005 | |||
| e4662fe240 |
25 changed files with 914 additions and 326 deletions
23
.vscode/settings.json
vendored
23
.vscode/settings.json
vendored
|
|
@ -4,8 +4,10 @@
|
|||
"source.fixAll.biome": "always"
|
||||
},
|
||||
"editor.defaultFormatter": "biomejs.biome",
|
||||
"editor.formatOnSave": true,
|
||||
|
||||
"[javascript]": {
|
||||
"editor.defaultFormatter": "vscode.typescript-language-features"
|
||||
"editor.defaultFormatter": "biomejs.biome"
|
||||
},
|
||||
"[javascriptreact]": {
|
||||
"editor.defaultFormatter": "biomejs.biome"
|
||||
|
|
@ -23,6 +25,21 @@
|
|||
"editor.defaultFormatter": "biomejs.biome"
|
||||
},
|
||||
"[vue]": {
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
||||
}
|
||||
"editor.defaultFormatter": "biomejs.biome"
|
||||
},
|
||||
"[css]": {
|
||||
"editor.defaultFormatter": "biomejs.biome"
|
||||
},
|
||||
"[html]": {
|
||||
"editor.defaultFormatter": "biomejs.biome"
|
||||
},
|
||||
|
||||
"typescript.preferences.importModuleSpecifier": "relative",
|
||||
"typescript.suggest.autoImports": true,
|
||||
"typescript.updateImportsOnFileMove.enabled": "always",
|
||||
|
||||
"editor.rulers": [100],
|
||||
"files.eol": "\n",
|
||||
"files.trimTrailingWhitespace": true,
|
||||
"files.insertFinalNewline": true
|
||||
}
|
||||
234
AGENTS.md
Normal file
234
AGENTS.md
Normal file
|
|
@ -0,0 +1,234 @@
|
|||
# AGENTS.md — Guia para Assistentes de IA
|
||||
|
||||
> **Este arquivo descreve os padrões, convenções e arquitetura do projeto `p-comuns`.**
|
||||
> Leia este arquivo antes de sugerir ou gerar qualquer código.
|
||||
|
||||
---
|
||||
|
||||
## 🏗️ Visão Geral do Projeto
|
||||
|
||||
`p-comuns` é um **pacote compartilhado** (npm monorepo-like) usado como dependência em todos os subprojetos da plataforma **e-licencie**. Ele provê:
|
||||
|
||||
- Tipos TypeScript compartilhados (rotas, filtros, situações, UUIDs...)
|
||||
- Utilitários de back-end (postgres, cache em memória, dayjs...)
|
||||
- Utilitários de front-end (Vue 3 + TSX)
|
||||
- Constantes e enums globais
|
||||
|
||||
---
|
||||
|
||||
## ⚙️ Stack Tecnológica
|
||||
|
||||
| Camada | Tecnologia | Versão |
|
||||
|--------|-----------|--------|
|
||||
| Linguagem | TypeScript | ~5.9.x |
|
||||
| Runtime (back) | Node.js | ≥20 |
|
||||
| Framework (front) | Vue 3 | Composition API + `<script setup>` |
|
||||
| JSX/TSX | Vue TSX / React-like TSX | via `jsxRuntime` |
|
||||
| Linter/Formatter | Biome | 2.4.x |
|
||||
| Bundler | tsup | 8.x |
|
||||
| Package manager | pnpm | com workspaces |
|
||||
| Validação | Zod | 4.x |
|
||||
| Utilitários de data | dayjs | 1.11.x |
|
||||
|
||||
---
|
||||
|
||||
## 📁 Estrutura do `src/`
|
||||
|
||||
```
|
||||
src/
|
||||
├── index.ts # Entry point — exporta tudo que é público
|
||||
├── constantes.ts # Constantes globais (enums, valores fixos)
|
||||
├── situacoes.ts # Status/situações dos processos
|
||||
├── tipagemRotas.ts # Tipagem forte de rotas da API
|
||||
├── tipoFiltro.26.ts # Sistema de filtros tipados (operadores PG)
|
||||
├── uuid.ts # Geração e validação de UUIDs
|
||||
├── dayjs26.ts # Wrapper do dayjs com locale e plugins
|
||||
├── extensoes.ts # Extensões de tipos nativos
|
||||
├── texto_busca.ts # Utilitários de busca em texto
|
||||
├── variaveisComuns.ts # Variáveis de ambiente compartilhadas
|
||||
├── postgres.ts # Cliente PostgreSQL base
|
||||
├── cacheMemoria.ts # Cache em memória (Map com TTL)
|
||||
├── aleatorio.ts # Utilitários de aleatoriedade
|
||||
├── consulta.ts # Helpers de consulta SQL
|
||||
├── instalarAmbiente.ts # Setup de ambiente (dev/prod)
|
||||
├── graficosPilao.ts # Tipos para gráficos do PILÃO
|
||||
├── ecosistema/ # Tipos do ecossistema de módulos
|
||||
└── testes/ # Testes unitários (Vitest)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📐 Convenções de Código
|
||||
|
||||
### TypeScript
|
||||
|
||||
- **Strict mode** SEMPRE ligado (`"strict": true`)
|
||||
- **Sem `any` explícito** — use tipos genéricos ou `unknown`
|
||||
- **Sem `!` (non-null assertion)** — trate o `null`/`undefined` explicitamente
|
||||
- **Arrays**: usar `T[]` em vez de `Array<T>` (shorthand)
|
||||
- **Imports** ordenados automaticamente pelo Biome
|
||||
- **Enums** sempre com inicializadores explícitos
|
||||
- **Parâmetros** não podem ser reatribuídos
|
||||
|
||||
### Nomenclatura
|
||||
|
||||
```typescript
|
||||
// Tipos e interfaces: PascalCase
|
||||
type TipoUsuario = { ... }
|
||||
interface IRepositorio { ... }
|
||||
|
||||
// Constantes: camelCase (sem SCREAMING_SNAKE_CASE, exceto enums legados)
|
||||
const configuracaoBase = { ... }
|
||||
|
||||
// Funções: camelCase, verbos
|
||||
const calcularTotal = (itens: Item[]) => { ... }
|
||||
const buscarUsuarioPorId = async (id: UUID) => { ... }
|
||||
|
||||
// Arquivos: camelCase para utilitários, PascalCase para componentes Vue
|
||||
// ✅ tipoFiltro.ts, variaveisComuns.ts
|
||||
// ✅ MeuComponente.vue, BotaoAcao.vue
|
||||
```
|
||||
|
||||
### Vue 3 (Composition API)
|
||||
|
||||
```vue
|
||||
<script setup lang="ts">
|
||||
// Sempre usar <script setup lang="ts">
|
||||
// Macros globais disponíveis (sem import): defineProps, defineEmits,
|
||||
// defineExpose, withDefaults, defineModel, defineOptions, defineSlots
|
||||
|
||||
const props = defineProps<{
|
||||
titulo: string
|
||||
itens: Item[]
|
||||
}>()
|
||||
|
||||
const emit = defineEmits<{
|
||||
selecionar: [item: Item]
|
||||
fechar: []
|
||||
}>()
|
||||
</script>
|
||||
```
|
||||
|
||||
- **Sem Vue Options API** — sempre Composition API
|
||||
- **Props não devem ser desestruturadas** (quebra reatividade Vue 3)
|
||||
- **`v-for` sempre com `:key`** — use o ID do item, nunca o índice!
|
||||
- **`v-if` e `v-for` nunca no mesmo elemento** — use `<template v-for>`
|
||||
- **Atributos em multiline** quando há mais de 2 props
|
||||
|
||||
### TSX (componentes em `.tsx`)
|
||||
|
||||
```tsx
|
||||
// Componente funcional Vue em TSX
|
||||
import { defineComponent, ref } from "vue"
|
||||
|
||||
export const MeuComponente = defineComponent({
|
||||
props: {
|
||||
titulo: { type: String, required: true },
|
||||
},
|
||||
setup(props) {
|
||||
const contador = ref(0)
|
||||
return () => (
|
||||
<div class="meu-componente">
|
||||
<h1>{props.titulo}</h1>
|
||||
<button onClick={() => contador.value++}>{contador.value}</button>
|
||||
</div>
|
||||
)
|
||||
},
|
||||
})
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Biome — Regras de Lint Importantes
|
||||
|
||||
### Erros (bloqueiam o build)
|
||||
|
||||
| Regra | Descrição |
|
||||
|-------|-----------|
|
||||
| `noUnusedVariables` | Variáveis definidas e não usadas |
|
||||
| `noUnusedImports` | Imports não utilizados |
|
||||
| `noVoidTypeReturn` | Função `void` retornando valor |
|
||||
| `noVueDataObjectDeclaration` | Vue 2 `data: {}` — usar função |
|
||||
| `noVueDuplicateKeys` | Chaves duplicadas em objetos Vue |
|
||||
| `noVueSetupPropsReactivityLoss` | Desestruturar `props` em `setup()` |
|
||||
| `noVueVIfWithVFor` | `v-if` + `v-for` no mesmo elemento |
|
||||
| `useVueVForKey` | `v-for` sem `:key` |
|
||||
| `useVueValidTemplateRoot` | Template sem raiz única (Vue 2) |
|
||||
|
||||
### Warnings (code smells — corrija quando possível)
|
||||
|
||||
| Regra | Descrição |
|
||||
|-------|-----------|
|
||||
| `useArrowFunction` | **Sempre use arrow function** — `function` é erro |
|
||||
| `noNonNullAssertion` | Evite `!` — trate o null |
|
||||
| `noDelete` | `delete obj.prop` é lento |
|
||||
| `noEmptyBlockStatements` | Blocos `{}` vazios |
|
||||
| `noArrayIndexKey` | `:key` com índice do array |
|
||||
| `noDangerouslySetInnerHtml` | `innerHTML` perigoso |
|
||||
| `noExcessiveCognitiveComplexity` | Função muito complexa (max: 20) |
|
||||
|
||||
---
|
||||
|
||||
## 📦 Como Outros Projetos Consomem Este Pacote
|
||||
|
||||
```json
|
||||
// biome.json do subprojeto (ex: PILAO-FRONT)
|
||||
{
|
||||
"$schema": "./node_modules/@biomejs/biome/configuration_schema.json",
|
||||
"extends": ["./node_modules/p-comuns/Documentos/biome.json"],
|
||||
"files": {
|
||||
"includes": ["src/**/*.{js,ts,jsx,tsx,vue}"]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
```json
|
||||
// .vscode/settings.json do subprojeto
|
||||
{
|
||||
"editor.defaultFormatter": "biomejs.biome",
|
||||
"editor.formatOnSave": true,
|
||||
"editor.codeActionsOnSave": {
|
||||
"source.organizeImports.biome": "always",
|
||||
"source.fixAll.biome": "always"
|
||||
},
|
||||
"[vue]": { "editor.defaultFormatter": "biomejs.biome" },
|
||||
"[typescript]": { "editor.defaultFormatter": "biomejs.biome" },
|
||||
"[typescriptreact]": { "editor.defaultFormatter": "biomejs.biome" },
|
||||
"editor.rulers": [100],
|
||||
"files.eol": "\n"
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Scripts
|
||||
|
||||
```bash
|
||||
pnpm biome # Formata + lint com auto-fix
|
||||
pnpm check # biome + tsc --noEmit (sem emitir arquivos)
|
||||
pnpm build # Bump de versão + biome + tsup + pack
|
||||
pnpm teste # Vitest (testes unitários)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ⚠️ O que NÃO fazer
|
||||
|
||||
- ❌ Não use `eslint` — o projeto usa Biome
|
||||
- ❌ Não use `prettier` — o projeto usa Biome
|
||||
- ❌ Não use `function` nomeada — sempre arrow function (`const fn = () => {}`)
|
||||
- ❌ Não use Vue Options API — sempre Composition API
|
||||
- ❌ Não desestrure `props` diretamente (quebra reatividade)
|
||||
- ❌ Não use `any` — use `unknown` + type narrowing
|
||||
- ❌ Não use índice como `:key` no `v-for`
|
||||
- ❌ Não quebre linhas com mais de 100 caracteres
|
||||
- ❌ Não use ponto-e-vírgula no final (Biome removerá)
|
||||
|
||||
---
|
||||
|
||||
## 📚 Referências
|
||||
|
||||
- [Biome 2.x Docs](https://biomejs.dev)
|
||||
- [Vue 3 Composition API](https://vuejs.org/guide/composition-api)
|
||||
- [Zod v4](https://zod.dev)
|
||||
- [tsup](https://tsup.egoist.dev)
|
||||
|
|
@ -6,12 +6,20 @@
|
|||
"enabled": true,
|
||||
"rules": {
|
||||
"recommended": true,
|
||||
|
||||
"correctness": {
|
||||
"noUnusedVariables": "error",
|
||||
"noUnusedImports": "error",
|
||||
"noEmptyPattern": "off",
|
||||
"useExhaustiveDependencies": "off"
|
||||
"useExhaustiveDependencies": "off",
|
||||
"noVoidTypeReturn": "error",
|
||||
"noVueDataObjectDeclaration": "error",
|
||||
"noVueDuplicateKeys": "error",
|
||||
"noVueReservedKeys": "error",
|
||||
"noVueReservedProps": "error",
|
||||
"noVueSetupPropsReactivityLoss": "warn"
|
||||
},
|
||||
|
||||
"style": {
|
||||
"noParameterAssign": "error",
|
||||
"useAsConstAssertion": "error",
|
||||
|
|
@ -21,44 +29,124 @@
|
|||
"useSingleVarDeclarator": "error",
|
||||
"noUnusedTemplateLiteral": "error",
|
||||
"useNumberNamespace": "error",
|
||||
"noInferrableTypes": "error"
|
||||
"noInferrableTypes": "error",
|
||||
"useArrayLiterals": "error",
|
||||
"useConsistentArrayType": {
|
||||
"level": "error",
|
||||
"options": { "syntax": "shorthand" }
|
||||
},
|
||||
"useShorthandAssign": "error",
|
||||
"noNonNullAssertion": "warn"
|
||||
},
|
||||
|
||||
"suspicious": {
|
||||
"noDebugger": "off",
|
||||
"noDoubleEquals": "off",
|
||||
"noExplicitAny": "off",
|
||||
"noApproximativeNumericConstant": "off",
|
||||
"noAsyncPromiseExecutor": "off"
|
||||
"noAsyncPromiseExecutor": "off",
|
||||
"noEmptyBlockStatements": "warn",
|
||||
"noConsole": "off",
|
||||
"noArrayIndexKey": "warn"
|
||||
},
|
||||
|
||||
"complexity": {
|
||||
"noUselessConstructor": "off",
|
||||
"noBannedTypes": "off",
|
||||
"useLiteralKeys": "off",
|
||||
"useArrowFunction": "warn",
|
||||
"useArrowFunction": "error",
|
||||
"useDateNow": "off",
|
||||
"noUselessFragments": "off"
|
||||
"noUselessFragments": "off",
|
||||
"noExcessiveCognitiveComplexity": "off"
|
||||
},
|
||||
|
||||
"performance": {
|
||||
"noAccumulatingSpread": "off"
|
||||
"noAccumulatingSpread": "off",
|
||||
"noDelete": "warn"
|
||||
},
|
||||
|
||||
"a11y": {
|
||||
"useSemanticElements": "off"
|
||||
"useSemanticElements": "off",
|
||||
"useAltText": "warn",
|
||||
"useButtonType": "warn"
|
||||
},
|
||||
|
||||
"security": {
|
||||
"noDangerouslySetInnerHtml": "warn"
|
||||
},
|
||||
|
||||
"nursery": {
|
||||
"noVueArrowFuncInWatch": "warn",
|
||||
"noVueVIfWithVFor": "error",
|
||||
"useVueConsistentDefinePropsDeclaration": "warn",
|
||||
"useVueConsistentVBindStyle": "warn",
|
||||
"useVueConsistentVOnStyle": "warn",
|
||||
"useVueDefineMacrosOrder": "warn",
|
||||
"useVueVForKey": "error",
|
||||
"useVueValidTemplateRoot": "error",
|
||||
"useVueValidVBind": "error",
|
||||
"useVueValidVIf": "error",
|
||||
"useVueValidVElse": "error",
|
||||
"useVueValidVElseIf": "error",
|
||||
"useVueValidVOn": "warn",
|
||||
"useVueValidVHtml": "warn"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"formatter": {
|
||||
"enabled": true,
|
||||
"indentStyle": "space",
|
||||
"indentWidth": 2
|
||||
"indentWidth": 2,
|
||||
"lineWidth": 100,
|
||||
"lineEnding": "lf"
|
||||
},
|
||||
|
||||
"javascript": {
|
||||
"globals": [
|
||||
"defineProps",
|
||||
"defineEmits",
|
||||
"defineExpose",
|
||||
"withDefaults",
|
||||
"defineModel",
|
||||
"defineOptions",
|
||||
"defineSlots"
|
||||
],
|
||||
"parser": {
|
||||
"unsafeParameterDecoratorsEnabled": true
|
||||
},
|
||||
"formatter": {
|
||||
"enabled": true,
|
||||
"semicolons": "asNeeded",
|
||||
"arrowParentheses": "always",
|
||||
"bracketSameLine": false,
|
||||
"trailingCommas": "all",
|
||||
"attributePosition": "multiline"
|
||||
"attributePosition": "multiline",
|
||||
"quoteStyle": "double",
|
||||
"jsxQuoteStyle": "double",
|
||||
"bracketSpacing": true
|
||||
}
|
||||
},
|
||||
|
||||
"css": {
|
||||
"formatter": {
|
||||
"enabled": true,
|
||||
"indentStyle": "space",
|
||||
"indentWidth": 2,
|
||||
"lineWidth": 100,
|
||||
"quoteStyle": "double"
|
||||
},
|
||||
"linter": {
|
||||
"enabled": true
|
||||
}
|
||||
},
|
||||
|
||||
"html": {
|
||||
"formatter": {
|
||||
"enabled": true,
|
||||
"indentStyle": "space",
|
||||
"indentWidth": 2,
|
||||
"lineWidth": 100
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
153
README.md
153
README.md
|
|
@ -1,93 +1,120 @@
|
|||
## ✅ Uso do BiomeJS para Autoformatação
|
||||
# `p-comuns` — Pacote Compartilhado e-licencie
|
||||
|
||||
Este guia mostra como configurar o [BiomeJS](https://biomejs.dev) para formatar e analisar código JavaScript/TypeScript no seu projeto.
|
||||
Pacote de tipos, utilitários e configurações compartilhadas entre todos os subprojetos da plataforma **e-licencie** (back-end Node.js, front-end Vue 3 / TSX).
|
||||
|
||||
---
|
||||
|
||||
### 1. Incluir o pacote de configuração comum
|
||||
## ✅ Configuração do BiomeJS nos Subprojetos
|
||||
|
||||
Certifique-se de que o pacote `p-comuns` (ou outro com a configuração compartilhada) esteja disponível no seu projeto. Ele deve conter o arquivo `Documentos/biome.json`.
|
||||
Este guia mostra como usar a configuração base do Biome disponível neste pacote (`Documentos/biome.json`). Todos os subprojetos herdam essas regras via `extends`.
|
||||
|
||||
pnpm up p-comuns
|
||||
|
||||
---
|
||||
|
||||
### 2. Instalar o Biome com `pnpm`
|
||||
### 1. Adicionar o `p-comuns` como dependência
|
||||
|
||||
```bash
|
||||
pnpm add --save-dev --save-exact @biomejs/biome@2.1.4
|
||||
pnpm add --save-dev p-comuns
|
||||
# ou atualizar se já existir:
|
||||
pnpm up p-comuns
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 2. Instalar o Biome
|
||||
|
||||
```bash
|
||||
pnpm add --save-dev --save-exact @biomejs/biome@2.4.0
|
||||
```
|
||||
|
||||
> 🎯 Use `--save-exact` para garantir consistência de versões entre ambientes.
|
||||
|
||||
---
|
||||
|
||||
### 3. Criar o arquivo de configuração na raiz do projeto
|
||||
|
||||
Crie um arquivo chamado `biome.json` com o seguinte conteúdo:
|
||||
### 3. Criar `biome.json` na raiz do subprojeto
|
||||
|
||||
```json
|
||||
{
|
||||
"$schema": "./node_modules/@biomejs/biome/configuration_schema.json",
|
||||
"extends": ["./node_modules/p-comuns/Documentos/biome.json"],
|
||||
"$schema": "node_modules/@biomejs/biome/configuration_schema.json",
|
||||
"extends": ["node_modules/p-comuns/Documentos/biome.json"],
|
||||
"vcs": {
|
||||
"enabled": true,
|
||||
"clientKind": "git",
|
||||
"useIgnoreFile": true
|
||||
},
|
||||
"files": {
|
||||
"includes": ["src/**/*.{js,ts,jsx,tsx}"]
|
||||
"includes": ["**/*.{ts,tsx,vue}"]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
> ⚠️ Verifique o caminho correto do `extends` relativo à raiz do seu projeto. Use `./` sempre que possível para evitar erros de resolução.
|
||||
> `vcs.useIgnoreFile: true` faz o Biome respeitar o `.gitignore` automaticamente — arquivos como `dist/`, `node_modules/` etc. são ignorados sem configuração adicional.
|
||||
|
||||
---
|
||||
|
||||
### 4. Adicionar script no `package.json`
|
||||
|
||||
Inclua o comando abaixo em `"scripts"`:
|
||||
### 4. Adicionar scripts no `package.json`
|
||||
|
||||
```json
|
||||
{
|
||||
"scripts": {
|
||||
"biome": "pnpm exec biome check --write",
|
||||
"check": "pnpm run biome && npx tsc --noEmit"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Isso permite executar:
|
||||
|
||||
```bash
|
||||
pnpm biome
|
||||
```
|
||||
|
||||
> O comando irá **formatar e aplicar as regras de lint** nos arquivos do diretório `src/`.
|
||||
|
||||
---
|
||||
|
||||
### ✅ Dica extra: formatar todos os arquivos
|
||||
|
||||
Se quiser aplicar o Biome a todo o projeto (não só `src/`), altere o include:
|
||||
### 5. Configurar o VS Code (`.vscode/settings.json`)
|
||||
|
||||
```json
|
||||
"includes": ["**/*.{js,ts,jsx,tsx}"]
|
||||
```
|
||||
|
||||
|
||||
|
||||
adicionar em .vscode/settings.json
|
||||
|
||||
{
|
||||
"editor.defaultFormatter": "biomejs.biome",
|
||||
"editor.formatOnSave": true,
|
||||
"editor.codeActionsOnSave": {
|
||||
"source.organizeImports.biome": "always",
|
||||
"source.fixAll.biome": "always"
|
||||
},
|
||||
"[javascript]": { "editor.defaultFormatter": "biomejs.biome" },
|
||||
"[javascriptreact]": { "editor.defaultFormatter": "biomejs.biome" },
|
||||
"[typescript]": { "editor.defaultFormatter": "biomejs.biome" },
|
||||
"[typescriptreact]": { "editor.defaultFormatter": "biomejs.biome" },
|
||||
"[vue]": { "editor.defaultFormatter": "biomejs.biome" },
|
||||
"[css]": { "editor.defaultFormatter": "biomejs.biome" },
|
||||
"[json]": { "editor.defaultFormatter": "biomejs.biome" },
|
||||
"[jsonc]": { "editor.defaultFormatter": "biomejs.biome" },
|
||||
"[vue]": {"editor.defaultFormatter": "octref.vetur"},
|
||||
"editor.codeActionsOnSave": {
|
||||
"source.organizeImports.biome": "always",
|
||||
"source.fixAll.biome": "always"
|
||||
}
|
||||
"editor.rulers": [100],
|
||||
"files.eol": "\n",
|
||||
"files.trimTrailingWhitespace": true,
|
||||
"files.insertFinalNewline": true
|
||||
}
|
||||
```
|
||||
|
||||
> 💡 **Biome formata Vue `.vue` nativamente desde a v2.3** — não precisa do Prettier ou Vetur para formatação!
|
||||
|
||||
---
|
||||
|
||||
## 🔑 Regras da configuração base (Documentos/biome.json)
|
||||
|
||||
### O que está ativado:
|
||||
|
||||
| Categoria | Regras notáveis |
|
||||
|-----------|----------------|
|
||||
| **Correctness** | `noUnusedVariables`, `noUnusedImports`, `noVueSetupPropsReactivityLoss` |
|
||||
| **Vue 3 específico** | `noVueVIfWithVFor`, `useVueVForKey`, `noVueDuplicateKeys`, `noVueReservedKeys` |
|
||||
| **Style** | `useAsConstAssertion`, `useSelfClosingElements`, `useConsistentArrayType` (shorthand `T[]`) |
|
||||
| **Nursery Vue** | `noVueArrowFuncInWatch`, `useVueDefineMacrosOrder`, `useVueConsistentVBindStyle` |
|
||||
| **Security** | `noDangerouslySetInnerHtml` (warn) |
|
||||
|
||||
### Globals do Vue (sem necessidade de importar):
|
||||
|
||||
`defineProps`, `defineEmits`, `defineExpose`, `withDefaults`, `defineModel`, `defineOptions`, `defineSlots`
|
||||
|
||||
### Formatação:
|
||||
|
||||
- Indentação: **2 espaços**
|
||||
- Linha máxima: **100 caracteres**
|
||||
- Aspas: **duplas**
|
||||
- Ponto-e-vírgula: **apenas quando necessário**
|
||||
- Trailing comma: **sempre**
|
||||
- Line ending: **LF (`\n`)**
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -96,29 +123,21 @@ adicionar em .vscode/settings.json
|
|||
O sistema `tipoFiltro26` foi projetado para gerar automaticamente a tipagem de filtros compatíveis com operadores padrão do PostgreSQL, a partir de um tipo base `T`.
|
||||
|
||||
**Principais características:**
|
||||
- Tipagem forte e segura (Typescript)
|
||||
- Tipagem forte e segura (TypeScript)
|
||||
- Suporte a aninhamento de objetos
|
||||
- Operadores lógicos `E` (AND) e `OU` (OR)
|
||||
- Validação de operadores permitidos por tipo de dado (string, number, boolean)
|
||||
|
||||
### Estrutura do Filtro
|
||||
|
||||
O filtro segue uma estrutura onde chaves representam campos (simples ou aninhados) e valores representam condições com operadores específicos.
|
||||
|
||||
#### 1. Campos Simples
|
||||
```typescript
|
||||
{
|
||||
idade: { ">=": 18 }
|
||||
}
|
||||
{ idade: { ">=": 18 } }
|
||||
```
|
||||
|
||||
#### 2. Campos Aninhados
|
||||
```typescript
|
||||
{
|
||||
carro: {
|
||||
ano: { "=": 2020 }
|
||||
}
|
||||
}
|
||||
{ carro: { ano: { "=": 2020 } } }
|
||||
```
|
||||
|
||||
#### 3. Operadores Lógicos
|
||||
|
|
@ -143,7 +162,7 @@ O filtro segue uma estrutura onde chaves representam campos (simples ou aninhado
|
|||
}
|
||||
```
|
||||
|
||||
#### 4. Exemplo Complexo Complet
|
||||
#### 4. Exemplo Complexo Completo
|
||||
```typescript
|
||||
{
|
||||
idade: { ">=": 18 },
|
||||
|
|
@ -161,21 +180,23 @@ O filtro segue uma estrutura onde chaves representam campos (simples ou aninhado
|
|||
|
||||
### Operadores Suportados (`operadores26`)
|
||||
|
||||
Os operadores são fornecidos pelo enum `operadores26` e são restritos pelo tipo do campo:
|
||||
|
||||
* **Number**: `=`, `!=`, `>`, `>=`, `<`, `<=`, `in`
|
||||
* **String**: `=`, `!=`, `like`, `in`
|
||||
* **Boolean**: `=`, `!=`, `in`
|
||||
|
||||
> **Nota:** Atualmente não há suporte automático para `null`, `date`, `jsonb` ou `arrays` como tipos de campo raiz (exceto arrays dentro do operador `in`).
|
||||
- **Number**: `=`, `!=`, `>`, `>=`, `<`, `<=`, `in`
|
||||
- **String**: `=`, `!=`, `like`, `in`
|
||||
- **Boolean**: `=`, `!=`, `in`
|
||||
|
||||
### Validação em Tempo de Execução (Zod)
|
||||
|
||||
O sistema inclui um validador Zod `zFiltro26` para validação estrutural dos objetos de filtro recebidos (ex: via API).
|
||||
|
||||
```typescript
|
||||
import { zFiltro26 } from './tipoFiltro.26';
|
||||
import { zFiltro26 } from "p-comuns"
|
||||
|
||||
// Valida a estrutura (não checa existência de colunas no DB)
|
||||
zFiltro26.parse(objetoFiltro);
|
||||
zFiltro26.parse(objetoFiltro)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📚 Veja também
|
||||
|
||||
- [`AGENTS.md`](./AGENTS.md) — Guia para assistentes de IA (padrões, convenções, arquitetura)
|
||||
- [Biome 2.x Docs](https://biomejs.dev)
|
||||
- [Vue 3 Composition API](https://vuejs.org/guide/composition-api)
|
||||
|
|
|
|||
|
|
@ -2,6 +2,6 @@
|
|||
"$schema": "node_modules/@biomejs/biome/configuration_schema.json",
|
||||
"extends": ["Documentos/biome.json"],
|
||||
"files": {
|
||||
"includes": ["src/**/*.{js,ts,jsx,tsx}"]
|
||||
"includes": ["src/**/*.{js,ts,jsx,tsx,vue}"]
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -46,17 +46,7 @@ var operadores = /* @__PURE__ */ ((operadores2) => {
|
|||
operadores2["isNull"] = "isNull";
|
||||
return operadores2;
|
||||
})(operadores || {});
|
||||
const zOperadores = import_zod.default.enum([
|
||||
"=",
|
||||
"!=",
|
||||
">",
|
||||
">=",
|
||||
"<",
|
||||
"<=",
|
||||
"like",
|
||||
"in",
|
||||
"isNull"
|
||||
]);
|
||||
const zOperadores = import_zod.default.enum(["=", "!=", ">", ">=", "<", "<=", "like", "in", "isNull"]);
|
||||
const zFiltro = import_zod.default.object({
|
||||
coluna: import_zod.default.string(),
|
||||
valor: import_zod.default.any(),
|
||||
|
|
|
|||
58
dist-back/dayjs.js
Normal file
58
dist-back/dayjs.js
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
"use strict";
|
||||
var __create = Object.create;
|
||||
var __defProp = Object.defineProperty;
|
||||
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
||||
var __getOwnPropNames = Object.getOwnPropertyNames;
|
||||
var __getProtoOf = Object.getPrototypeOf;
|
||||
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
||||
var __export = (target, all) => {
|
||||
for (var name in all)
|
||||
__defProp(target, name, { get: all[name], enumerable: true });
|
||||
};
|
||||
var __copyProps = (to, from, except, desc) => {
|
||||
if (from && typeof from === "object" || typeof from === "function") {
|
||||
for (let key of __getOwnPropNames(from))
|
||||
if (!__hasOwnProp.call(to, key) && key !== except)
|
||||
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
||||
}
|
||||
return to;
|
||||
};
|
||||
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
||||
// If the importer is in node compatibility mode or this is not an ESM
|
||||
// file that has been converted to a CommonJS file using a Babel-
|
||||
// compatible transform (i.e. "__esModule" has not been set), then set
|
||||
// "default" to the CommonJS "module.exports" for node compatibility.
|
||||
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
||||
mod
|
||||
));
|
||||
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
||||
var dayjs_exports = {};
|
||||
__export(dayjs_exports, {
|
||||
definirDayjsbr: () => definirDayjsbr
|
||||
});
|
||||
module.exports = __toCommonJS(dayjs_exports);
|
||||
var import_duration = __toESM(require("dayjs/plugin/duration"));
|
||||
var import_isSameOrAfter = __toESM(require("dayjs/plugin/isSameOrAfter"));
|
||||
var import_isSameOrBefore = __toESM(require("dayjs/plugin/isSameOrBefore"));
|
||||
var import_minMax = __toESM(require("dayjs/plugin/minMax"));
|
||||
var import_relativeTime = __toESM(require("dayjs/plugin/relativeTime"));
|
||||
var import_timezone = __toESM(require("dayjs/plugin/timezone"));
|
||||
var import_utc = __toESM(require("dayjs/plugin/utc"));
|
||||
var import_weekOfYear = __toESM(require("dayjs/plugin/weekOfYear"));
|
||||
var import_pt_br = require("dayjs/locale/pt-br");
|
||||
const definirDayjsbr = (dayjsEntrada) => {
|
||||
dayjsEntrada.locale("pt-br");
|
||||
dayjsEntrada.extend(import_utc.default);
|
||||
dayjsEntrada.extend(import_timezone.default);
|
||||
dayjsEntrada.extend(import_weekOfYear.default);
|
||||
dayjsEntrada.extend(import_isSameOrBefore.default);
|
||||
dayjsEntrada.extend(import_isSameOrAfter.default);
|
||||
dayjsEntrada.extend(import_minMax.default);
|
||||
dayjsEntrada.extend(import_relativeTime.default);
|
||||
dayjsEntrada.extend(import_duration.default);
|
||||
return dayjsEntrada;
|
||||
};
|
||||
// Annotate the CommonJS export names for ESM import in node:
|
||||
0 && (module.exports = {
|
||||
definirDayjsbr
|
||||
});
|
||||
|
|
@ -97,9 +97,7 @@ class TipagemRotas {
|
|||
let queryObj = Object.fromEntries(query.entries());
|
||||
const hash = url.hash;
|
||||
if (hash) {
|
||||
const hashObj = Object.fromEntries(
|
||||
new URLSearchParams(hash.slice(1)).entries()
|
||||
);
|
||||
const hashObj = Object.fromEntries(new URLSearchParams(hash.slice(1)).entries());
|
||||
queryObj = { ...queryObj, ...hashObj };
|
||||
}
|
||||
for (const chave in queryObj) {
|
||||
|
|
|
|||
|
|
@ -22,9 +22,7 @@ __export(variaveisComuns_exports, {
|
|||
nomeVariavel: () => nomeVariavel
|
||||
});
|
||||
module.exports = __toCommonJS(variaveisComuns_exports);
|
||||
const esperar = (ms) => new Promise(
|
||||
(resolve) => setTimeout(() => resolve(true), ms)
|
||||
);
|
||||
const esperar = (ms) => new Promise((resolve) => setTimeout(() => resolve(true), ms));
|
||||
const nomeVariavel = (v) => Object.keys(v).join("/");
|
||||
// Annotate the CommonJS export names for ESM import in node:
|
||||
0 && (module.exports = {
|
||||
|
|
|
|||
|
|
@ -558,4 +558,4 @@ declare const nomeVariavel: (v: {
|
|||
[key: string]: any;
|
||||
}) => string;
|
||||
|
||||
export { Produtos, TipagemRotas, type TipoLoggerSessao, type TipoPayloadAuditoria, aleatorio, cacheM, cacheMFixo, cacheMemoria, camposComuns, dayjsbr, defineCwd, erUuid, esperar, extensoes, type interfaceConsulta, link_paiol, localValor, logger, nomeVariavel, objetoPg, operadores, paraObjetoRegistroPg, pgObjeto, postLogger, siglas_unidades_medida, texto_busca, tipoArquivo, type tipoFiltro, type tipoLogger, type tipoLoggerLog, type tipoLokiObjeto, tipoUsuarioResiduos, tx, umaFuncao, umaVariavel, unidades_medida, uuid, uuidV3, uuidV4, uuid_null, validarUuid, verCacheM, zFiltro, zOperadores };
|
||||
export { Produtos, TipagemRotas, type TipoPayloadAuditoria, agrupadores26, aleatorio, cacheM, cacheMFixo, cacheMemoria, camposComuns, criarFiltro26, defineDayjsBr, erUuid, esperar, extensoes, type interfaceConsulta, link_paiol, localValor, nomeVariavel, objetoPg, operadores, operadores26, paraObjetoRegistroPg, pgObjeto, siglas_unidades_medida, texto_busca, tipoArquivo, type tipoFiltro, type tipoFiltro26, tipoUsuarioResiduos, tiposSituacoesElicencie, tx, umaFuncao, umaVariavel, unidades_medida, uuid, uuidV3, uuidV4, uuid_null, validarUuid, verCacheM, zFiltro, zFiltro26, zOperadores };
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
90
package.json
90
package.json
|
|
@ -1,47 +1,45 @@
|
|||
{
|
||||
"name": "p-comuns",
|
||||
"version": "0.317.0",
|
||||
"description": "",
|
||||
"main": "./dist-front/index.mjs",
|
||||
"module": "./dist-front/index.mjs",
|
||||
"types": "./dist-front/index.d.mts",
|
||||
"exports": {
|
||||
".": {
|
||||
"types": "./dist-front/index.d.mts",
|
||||
"import": "./dist-front/index.mjs",
|
||||
"require": "./dist-back/index.js"
|
||||
}
|
||||
},
|
||||
"scripts": {
|
||||
"biome": "pnpm exec biome check --write",
|
||||
"check": "pnpm run biome && npx tsc --noEmit",
|
||||
"build": "npm --no-git-tag-version version minor && pnpm run biome && tsup --config ./tsup/tsup.config.ts && pnpm run pacote",
|
||||
"teste": "npx vitest run src/testes/TipagemRotas.test.ts",
|
||||
"pacote": "npm pack && npm pack && mv $(npm pack --silent) pacote.tgz"
|
||||
},
|
||||
"author": {
|
||||
"name": "AZTECA SOFTWARE LTDA",
|
||||
"email": "ti@e-licencie.com.br",
|
||||
"url": "https://e-licencie.com.br"
|
||||
},
|
||||
"license": "ISC",
|
||||
"dependencies": {},
|
||||
"devDependencies": {
|
||||
"cross-fetch": "4.1.0",
|
||||
"uuid": "^11.1.0",
|
||||
"zod": "4.1.4",
|
||||
"dayjs": "^1.11.18",
|
||||
"@biomejs/biome": "2.4.0",
|
||||
"@types/node": "^20.19.22",
|
||||
"tsup": "8.5.0",
|
||||
"typescript": "~5.9.3",
|
||||
"unbuild": "^3.6.1",
|
||||
"vitest": "^3.2.4"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"cross-fetch": "4.1.0",
|
||||
"dayjs": "^1.11.18",
|
||||
"uuid": "^11.1.0",
|
||||
"zod": "4.1.4"
|
||||
}
|
||||
}
|
||||
"name": "p-comuns",
|
||||
"version": "0.326.0",
|
||||
"description": "",
|
||||
"main": "./dist-front/index.mjs",
|
||||
"module": "./dist-front/index.mjs",
|
||||
"types": "./dist-front/index.d.mts",
|
||||
"exports": {
|
||||
".": {
|
||||
"types": "./dist-front/index.d.mts",
|
||||
"import": "./dist-front/index.mjs",
|
||||
"require": "./dist-back/index.js"
|
||||
}
|
||||
},
|
||||
"scripts": {
|
||||
"biome": "pnpm exec biome check --write",
|
||||
"check": "pnpm run biome && npx tsc --noEmit",
|
||||
"build": "npm --no-git-tag-version version minor && pnpm run biome && tsup --config ./tsup/tsup.config.ts && pnpm run pacote",
|
||||
"teste": "npx vitest run src/testes/TipagemRotas.test.ts",
|
||||
"pacote": "npm pack && npm pack && mv $(npm pack --silent) pacote.tgz"
|
||||
},
|
||||
"author": {
|
||||
"name": "AZTECA SOFTWARE LTDA",
|
||||
"email": "ti@e-licencie.com.br",
|
||||
"url": "https://e-licencie.com.br"
|
||||
},
|
||||
"license": "ISC",
|
||||
"dependencies": {},
|
||||
"devDependencies": {
|
||||
"uuid": "^11.1.0",
|
||||
"zod": "4.3.6",
|
||||
"dayjs": "^1.11.18",
|
||||
"@biomejs/biome": "2.4.0",
|
||||
"@types/node": "^22",
|
||||
"tsup": "8.5.1",
|
||||
"typescript": "^6",
|
||||
"unbuild": "^3.6.1",
|
||||
"vitest": "^3.2.4"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"dayjs": "^1.11.18",
|
||||
"uuid": "^11.1.0",
|
||||
"zod": "4.3.6"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
BIN
pacote.tgz
BIN
pacote.tgz
Binary file not shown.
449
pnpm-lock.yaml
generated
449
pnpm-lock.yaml
generated
|
|
@ -12,32 +12,29 @@ importers:
|
|||
specifier: 2.4.0
|
||||
version: 2.4.0
|
||||
'@types/node':
|
||||
specifier: ^20.19.22
|
||||
version: 20.19.22
|
||||
cross-fetch:
|
||||
specifier: 4.1.0
|
||||
version: 4.1.0
|
||||
specifier: ^22
|
||||
version: 22.19.15
|
||||
dayjs:
|
||||
specifier: ^1.11.18
|
||||
version: 1.11.19
|
||||
tsup:
|
||||
specifier: 8.5.0
|
||||
version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(typescript@5.9.3)
|
||||
specifier: 8.5.1
|
||||
version: 8.5.1(jiti@2.6.1)(postcss@8.5.6)(typescript@6.0.2)
|
||||
typescript:
|
||||
specifier: ~5.9.3
|
||||
version: 5.9.3
|
||||
specifier: ^6
|
||||
version: 6.0.2
|
||||
unbuild:
|
||||
specifier: ^3.6.1
|
||||
version: 3.6.1(typescript@5.9.3)
|
||||
version: 3.6.1(typescript@6.0.2)
|
||||
uuid:
|
||||
specifier: ^11.1.0
|
||||
version: 11.1.0
|
||||
vitest:
|
||||
specifier: ^3.2.4
|
||||
version: 3.2.4(@types/node@20.19.22)(jiti@2.6.1)
|
||||
version: 3.2.4(@types/node@22.19.15)(jiti@2.6.1)
|
||||
zod:
|
||||
specifier: 4.1.4
|
||||
version: 4.1.4
|
||||
specifier: 4.3.6
|
||||
version: 4.3.6
|
||||
|
||||
packages:
|
||||
|
||||
|
|
@ -108,156 +105,312 @@ packages:
|
|||
cpu: [ppc64]
|
||||
os: [aix]
|
||||
|
||||
'@esbuild/aix-ppc64@0.27.5':
|
||||
resolution: {integrity: sha512-nGsF/4C7uzUj+Nj/4J+Zt0bYQ6bz33Phz8Lb2N80Mti1HjGclTJdXZ+9APC4kLvONbjxN1zfvYNd8FEcbBK/MQ==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [ppc64]
|
||||
os: [aix]
|
||||
|
||||
'@esbuild/android-arm64@0.25.11':
|
||||
resolution: {integrity: sha512-9slpyFBc4FPPz48+f6jyiXOx/Y4v34TUeDDXJpZqAWQn/08lKGeD8aDp9TMn9jDz2CiEuHwfhRmGBvpnd/PWIQ==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [arm64]
|
||||
os: [android]
|
||||
|
||||
'@esbuild/android-arm64@0.27.5':
|
||||
resolution: {integrity: sha512-Oeghq+XFgh1pUGd1YKs4DDoxzxkoUkvko+T/IVKwlghKLvvjbGFB3ek8VEDBmNvqhwuL0CQS3cExdzpmUyIrgA==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [arm64]
|
||||
os: [android]
|
||||
|
||||
'@esbuild/android-arm@0.25.11':
|
||||
resolution: {integrity: sha512-uoa7dU+Dt3HYsethkJ1k6Z9YdcHjTrSb5NUy66ZfZaSV8hEYGD5ZHbEMXnqLFlbBflLsl89Zke7CAdDJ4JI+Gg==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [arm]
|
||||
os: [android]
|
||||
|
||||
'@esbuild/android-arm@0.27.5':
|
||||
resolution: {integrity: sha512-Cv781jd0Rfj/paoNrul1/r4G0HLvuFKYh7C9uHZ2Pl8YXstzvCyyeWENTFR9qFnRzNMCjXmsulZuvosDg10Mog==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [arm]
|
||||
os: [android]
|
||||
|
||||
'@esbuild/android-x64@0.25.11':
|
||||
resolution: {integrity: sha512-Sgiab4xBjPU1QoPEIqS3Xx+R2lezu0LKIEcYe6pftr56PqPygbB7+szVnzoShbx64MUupqoE0KyRlN7gezbl8g==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [x64]
|
||||
os: [android]
|
||||
|
||||
'@esbuild/android-x64@0.27.5':
|
||||
resolution: {integrity: sha512-nQD7lspbzerlmtNOxYMFAGmhxgzn8Z7m9jgFkh6kpkjsAhZee1w8tJW3ZlW+N9iRePz0oPUDrYrXidCPSImD0Q==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [x64]
|
||||
os: [android]
|
||||
|
||||
'@esbuild/darwin-arm64@0.25.11':
|
||||
resolution: {integrity: sha512-VekY0PBCukppoQrycFxUqkCojnTQhdec0vevUL/EDOCnXd9LKWqD/bHwMPzigIJXPhC59Vd1WFIL57SKs2mg4w==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [arm64]
|
||||
os: [darwin]
|
||||
|
||||
'@esbuild/darwin-arm64@0.27.5':
|
||||
resolution: {integrity: sha512-I+Ya/MgC6rr8oRWGRDF3BXDfP8K1BVUggHqN6VI2lUZLdDi1IM1v2cy0e3lCPbP+pVcK3Tv8cgUhHse1kaNZZw==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [arm64]
|
||||
os: [darwin]
|
||||
|
||||
'@esbuild/darwin-x64@0.25.11':
|
||||
resolution: {integrity: sha512-+hfp3yfBalNEpTGp9loYgbknjR695HkqtY3d3/JjSRUyPg/xd6q+mQqIb5qdywnDxRZykIHs3axEqU6l1+oWEQ==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [x64]
|
||||
os: [darwin]
|
||||
|
||||
'@esbuild/darwin-x64@0.27.5':
|
||||
resolution: {integrity: sha512-MCjQUtC8wWJn/pIPM7vQaO69BFgwPD1jriEdqwTCKzWjGgkMbcg+M5HzrOhPhuYe1AJjXlHmD142KQf+jnYj8A==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [x64]
|
||||
os: [darwin]
|
||||
|
||||
'@esbuild/freebsd-arm64@0.25.11':
|
||||
resolution: {integrity: sha512-CmKjrnayyTJF2eVuO//uSjl/K3KsMIeYeyN7FyDBjsR3lnSJHaXlVoAK8DZa7lXWChbuOk7NjAc7ygAwrnPBhA==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [arm64]
|
||||
os: [freebsd]
|
||||
|
||||
'@esbuild/freebsd-arm64@0.27.5':
|
||||
resolution: {integrity: sha512-X6xVS+goSH0UelYXnuf4GHLwpOdc8rgK/zai+dKzBMnncw7BTQIwquOodE7EKvY2UVUetSqyAfyZC1D+oqLQtg==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [arm64]
|
||||
os: [freebsd]
|
||||
|
||||
'@esbuild/freebsd-x64@0.25.11':
|
||||
resolution: {integrity: sha512-Dyq+5oscTJvMaYPvW3x3FLpi2+gSZTCE/1ffdwuM6G1ARang/mb3jvjxs0mw6n3Lsw84ocfo9CrNMqc5lTfGOw==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [x64]
|
||||
os: [freebsd]
|
||||
|
||||
'@esbuild/freebsd-x64@0.27.5':
|
||||
resolution: {integrity: sha512-233X1FGo3a8x1ekLB6XT69LfZ83vqz+9z3TSEQCTYfMNY880A97nr81KbPcAMl9rmOFp11wO0dP+eB18KU/Ucg==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [x64]
|
||||
os: [freebsd]
|
||||
|
||||
'@esbuild/linux-arm64@0.25.11':
|
||||
resolution: {integrity: sha512-Qr8AzcplUhGvdyUF08A1kHU3Vr2O88xxP0Tm8GcdVOUm25XYcMPp2YqSVHbLuXzYQMf9Bh/iKx7YPqECs6ffLA==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
|
||||
'@esbuild/linux-arm64@0.27.5':
|
||||
resolution: {integrity: sha512-euKkilsNOv7x/M1NKsx5znyprbpsRFIzTV6lWziqJch7yWYayfLtZzDxDTl+LSQDJYAjd9TVb/Kt5UKIrj2e4A==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
|
||||
'@esbuild/linux-arm@0.25.11':
|
||||
resolution: {integrity: sha512-TBMv6B4kCfrGJ8cUPo7vd6NECZH/8hPpBHHlYI3qzoYFvWu2AdTvZNuU/7hsbKWqu/COU7NIK12dHAAqBLLXgw==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [arm]
|
||||
os: [linux]
|
||||
|
||||
'@esbuild/linux-arm@0.27.5':
|
||||
resolution: {integrity: sha512-0wkVrYHG4sdCCN/bcwQ7yYMXACkaHc3UFeaEOwSVW6e5RycMageYAFv+JS2bKLwHyeKVUvtoVH+5/RHq0fgeFw==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [arm]
|
||||
os: [linux]
|
||||
|
||||
'@esbuild/linux-ia32@0.25.11':
|
||||
resolution: {integrity: sha512-TmnJg8BMGPehs5JKrCLqyWTVAvielc615jbkOirATQvWWB1NMXY77oLMzsUjRLa0+ngecEmDGqt5jiDC6bfvOw==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [ia32]
|
||||
os: [linux]
|
||||
|
||||
'@esbuild/linux-ia32@0.27.5':
|
||||
resolution: {integrity: sha512-hVRQX4+P3MS36NxOy24v/Cdsimy/5HYePw+tmPqnNN1fxV0bPrFWR6TMqwXPwoTM2VzbkA+4lbHWUKDd5ZDA/w==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [ia32]
|
||||
os: [linux]
|
||||
|
||||
'@esbuild/linux-loong64@0.25.11':
|
||||
resolution: {integrity: sha512-DIGXL2+gvDaXlaq8xruNXUJdT5tF+SBbJQKbWy/0J7OhU8gOHOzKmGIlfTTl6nHaCOoipxQbuJi7O++ldrxgMw==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [loong64]
|
||||
os: [linux]
|
||||
|
||||
'@esbuild/linux-loong64@0.27.5':
|
||||
resolution: {integrity: sha512-mKqqRuOPALI8nDzhOBmIS0INvZOOFGGg5n1osGIXAx8oersceEbKd4t1ACNTHM3sJBXGFAlEgqM+svzjPot+ZQ==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [loong64]
|
||||
os: [linux]
|
||||
|
||||
'@esbuild/linux-mips64el@0.25.11':
|
||||
resolution: {integrity: sha512-Osx1nALUJu4pU43o9OyjSCXokFkFbyzjXb6VhGIJZQ5JZi8ylCQ9/LFagolPsHtgw6himDSyb5ETSfmp4rpiKQ==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [mips64el]
|
||||
os: [linux]
|
||||
|
||||
'@esbuild/linux-mips64el@0.27.5':
|
||||
resolution: {integrity: sha512-EE/QXH9IyaAj1qeuIV5+/GZkBTipgGO782Ff7Um3vPS9cvLhJJeATy4Ggxikz2inZ46KByamMn6GqtqyVjhenA==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [mips64el]
|
||||
os: [linux]
|
||||
|
||||
'@esbuild/linux-ppc64@0.25.11':
|
||||
resolution: {integrity: sha512-nbLFgsQQEsBa8XSgSTSlrnBSrpoWh7ioFDUmwo158gIm5NNP+17IYmNWzaIzWmgCxq56vfr34xGkOcZ7jX6CPw==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [ppc64]
|
||||
os: [linux]
|
||||
|
||||
'@esbuild/linux-ppc64@0.27.5':
|
||||
resolution: {integrity: sha512-0V2iF1RGxBf1b7/BjurA5jfkl7PtySjom1r6xOK2q9KWw/XCpAdtB6KNMO+9xx69yYfSCRR9FE0TyKfHA2eQMw==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [ppc64]
|
||||
os: [linux]
|
||||
|
||||
'@esbuild/linux-riscv64@0.25.11':
|
||||
resolution: {integrity: sha512-HfyAmqZi9uBAbgKYP1yGuI7tSREXwIb438q0nqvlpxAOs3XnZ8RsisRfmVsgV486NdjD7Mw2UrFSw51lzUk1ww==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [riscv64]
|
||||
os: [linux]
|
||||
|
||||
'@esbuild/linux-riscv64@0.27.5':
|
||||
resolution: {integrity: sha512-rYxThBx6G9HN6tFNuvB/vykeLi4VDsm5hE5pVwzqbAjZEARQrWu3noZSfbEnPZ/CRXP3271GyFk/49up2W190g==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [riscv64]
|
||||
os: [linux]
|
||||
|
||||
'@esbuild/linux-s390x@0.25.11':
|
||||
resolution: {integrity: sha512-HjLqVgSSYnVXRisyfmzsH6mXqyvj0SA7pG5g+9W7ESgwA70AXYNpfKBqh1KbTxmQVaYxpzA/SvlB9oclGPbApw==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [s390x]
|
||||
os: [linux]
|
||||
|
||||
'@esbuild/linux-s390x@0.27.5':
|
||||
resolution: {integrity: sha512-uEP2q/4qgd8goEUc4QIdU/1P2NmEtZ/zX5u3OpLlCGhJIuBIv0s0wr7TB2nBrd3/A5XIdEkkS5ZLF0ULuvaaYQ==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [s390x]
|
||||
os: [linux]
|
||||
|
||||
'@esbuild/linux-x64@0.25.11':
|
||||
resolution: {integrity: sha512-HSFAT4+WYjIhrHxKBwGmOOSpphjYkcswF449j6EjsjbinTZbp8PJtjsVK1XFJStdzXdy/jaddAep2FGY+wyFAQ==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
|
||||
'@esbuild/linux-x64@0.27.5':
|
||||
resolution: {integrity: sha512-+Gq47Wqq6PLOOZuBzVSII2//9yyHNKZLuwfzCemqexqOQCSz0zy0O26kIzyp9EMNMK+nZ0tFHBZrCeVUuMs/ew==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
|
||||
'@esbuild/netbsd-arm64@0.25.11':
|
||||
resolution: {integrity: sha512-hr9Oxj1Fa4r04dNpWr3P8QKVVsjQhqrMSUzZzf+LZcYjZNqhA3IAfPQdEh1FLVUJSiu6sgAwp3OmwBfbFgG2Xg==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [arm64]
|
||||
os: [netbsd]
|
||||
|
||||
'@esbuild/netbsd-arm64@0.27.5':
|
||||
resolution: {integrity: sha512-3F/5EG8VHfN/I+W5cO1/SV2H9Q/5r7vcHabMnBqhHK2lTWOh3F8vixNzo8lqxrlmBtZVFpW8pmITHnq54+Tq4g==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [arm64]
|
||||
os: [netbsd]
|
||||
|
||||
'@esbuild/netbsd-x64@0.25.11':
|
||||
resolution: {integrity: sha512-u7tKA+qbzBydyj0vgpu+5h5AeudxOAGncb8N6C9Kh1N4n7wU1Xw1JDApsRjpShRpXRQlJLb9wY28ELpwdPcZ7A==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [x64]
|
||||
os: [netbsd]
|
||||
|
||||
'@esbuild/netbsd-x64@0.27.5':
|
||||
resolution: {integrity: sha512-28t+Sj3CPN8vkMOlZotOmDgilQwVvxWZl7b8rxpn73Tt/gCnvrHxQUMng4uu3itdFvrtba/1nHejvxqz8xgEMA==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [x64]
|
||||
os: [netbsd]
|
||||
|
||||
'@esbuild/openbsd-arm64@0.25.11':
|
||||
resolution: {integrity: sha512-Qq6YHhayieor3DxFOoYM1q0q1uMFYb7cSpLD2qzDSvK1NAvqFi8Xgivv0cFC6J+hWVw2teCYltyy9/m/14ryHg==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [arm64]
|
||||
os: [openbsd]
|
||||
|
||||
'@esbuild/openbsd-arm64@0.27.5':
|
||||
resolution: {integrity: sha512-Doz/hKtiuVAi9hMsBMpwBANhIZc8l238U2Onko3t2xUp8xtM0ZKdDYHMnm/qPFVthY8KtxkXaocwmMh6VolzMA==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [arm64]
|
||||
os: [openbsd]
|
||||
|
||||
'@esbuild/openbsd-x64@0.25.11':
|
||||
resolution: {integrity: sha512-CN+7c++kkbrckTOz5hrehxWN7uIhFFlmS/hqziSFVWpAzpWrQoAG4chH+nN3Be+Kzv/uuo7zhX716x3Sn2Jduw==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [x64]
|
||||
os: [openbsd]
|
||||
|
||||
'@esbuild/openbsd-x64@0.27.5':
|
||||
resolution: {integrity: sha512-WfGVaa1oz5A7+ZFPkERIbIhKT4olvGl1tyzTRaB5yoZRLqC0KwaO95FeZtOdQj/oKkjW57KcVF944m62/0GYtA==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [x64]
|
||||
os: [openbsd]
|
||||
|
||||
'@esbuild/openharmony-arm64@0.25.11':
|
||||
resolution: {integrity: sha512-rOREuNIQgaiR+9QuNkbkxubbp8MSO9rONmwP5nKncnWJ9v5jQ4JxFnLu4zDSRPf3x4u+2VN4pM4RdyIzDty/wQ==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [arm64]
|
||||
os: [openharmony]
|
||||
|
||||
'@esbuild/openharmony-arm64@0.27.5':
|
||||
resolution: {integrity: sha512-Xh+VRuh6OMh3uJ0JkCjI57l+DVe7VRGBYymen8rFPnTVgATBwA6nmToxM2OwTlSvrnWpPKkrQUj93+K9huYC6A==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [arm64]
|
||||
os: [openharmony]
|
||||
|
||||
'@esbuild/sunos-x64@0.25.11':
|
||||
resolution: {integrity: sha512-nq2xdYaWxyg9DcIyXkZhcYulC6pQ2FuCgem3LI92IwMgIZ69KHeY8T4Y88pcwoLIjbed8n36CyKoYRDygNSGhA==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [x64]
|
||||
os: [sunos]
|
||||
|
||||
'@esbuild/sunos-x64@0.27.5':
|
||||
resolution: {integrity: sha512-aC1gpJkkaUADHuAdQfuVTnqVUTLqqUNhAvEwHwVWcnVVZvNlDPGA0UveZsfXJJ9T6k9Po4eHi3c02gbdwO3g6w==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [x64]
|
||||
os: [sunos]
|
||||
|
||||
'@esbuild/win32-arm64@0.25.11':
|
||||
resolution: {integrity: sha512-3XxECOWJq1qMZ3MN8srCJ/QfoLpL+VaxD/WfNRm1O3B4+AZ/BnLVgFbUV3eiRYDMXetciH16dwPbbHqwe1uU0Q==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [arm64]
|
||||
os: [win32]
|
||||
|
||||
'@esbuild/win32-arm64@0.27.5':
|
||||
resolution: {integrity: sha512-0UNx2aavV0fk6UpZcwXFLztA2r/k9jTUa7OW7SAea1VYUhkug99MW1uZeXEnPn5+cHOd0n8myQay6TlFnBR07w==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [arm64]
|
||||
os: [win32]
|
||||
|
||||
'@esbuild/win32-ia32@0.25.11':
|
||||
resolution: {integrity: sha512-3ukss6gb9XZ8TlRyJlgLn17ecsK4NSQTmdIXRASVsiS2sQ6zPPZklNJT5GR5tE/MUarymmy8kCEf5xPCNCqVOA==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [ia32]
|
||||
os: [win32]
|
||||
|
||||
'@esbuild/win32-ia32@0.27.5':
|
||||
resolution: {integrity: sha512-5nlJ3AeJWCTSzR7AEqVjT/faWyqKU86kCi1lLmxVqmNR+j4HrYdns+eTGjS/vmrzCIe8inGQckUadvS0+JkKdQ==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [ia32]
|
||||
os: [win32]
|
||||
|
||||
'@esbuild/win32-x64@0.25.11':
|
||||
resolution: {integrity: sha512-D7Hpz6A2L4hzsRpPaCYkQnGOotdUpDzSGRIv9I+1ITdHROSFUWW95ZPZWQmGka1Fg7W3zFJowyn9WGwMJ0+KPA==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [x64]
|
||||
os: [win32]
|
||||
|
||||
'@esbuild/win32-x64@0.27.5':
|
||||
resolution: {integrity: sha512-PWypQR+d4FLfkhBIV+/kHsUELAnMpx1bRvvsn3p+/sAERbnCzFrtDRG2Xw5n+2zPxBK2+iaP+vetsRl4Ti7WgA==}
|
||||
engines: {node: '>=18'}
|
||||
cpu: [x64]
|
||||
os: [win32]
|
||||
|
||||
'@isaacs/cliui@8.0.2':
|
||||
resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
|
||||
engines: {node: '>=12'}
|
||||
|
|
@ -452,8 +605,8 @@ packages:
|
|||
'@types/estree@1.0.8':
|
||||
resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==}
|
||||
|
||||
'@types/node@20.19.22':
|
||||
resolution: {integrity: sha512-hRnu+5qggKDSyWHlnmThnUqg62l29Aj/6vcYgUaSFL9oc7DVjeWEQN3PRgdSc6F8d9QRMWkf36CLMch1Do/+RQ==}
|
||||
'@types/node@22.19.15':
|
||||
resolution: {integrity: sha512-F0R/h2+dsy5wJAUe3tAU6oqa2qbWY5TpNfL/RGmo1y38hiyO1w3x2jPtt76wmuaJI4DQnOBu21cNXQ2STIUUWg==}
|
||||
|
||||
'@types/resolve@1.20.2':
|
||||
resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==}
|
||||
|
|
@ -602,9 +755,6 @@ packages:
|
|||
resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==}
|
||||
engines: {node: ^14.18.0 || >=16.10.0}
|
||||
|
||||
cross-fetch@4.1.0:
|
||||
resolution: {integrity: sha512-uKm5PU+MHTootlWEY+mZ4vvXoCn4fLQxT9dSc1sXVMSFkINTJVN8cAQROpwcKm8bJ/c7rgZVIBWzH5T78sNZZw==}
|
||||
|
||||
cross-spawn@7.0.6:
|
||||
resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
|
||||
engines: {node: '>= 8'}
|
||||
|
|
@ -717,6 +867,11 @@ packages:
|
|||
engines: {node: '>=18'}
|
||||
hasBin: true
|
||||
|
||||
esbuild@0.27.5:
|
||||
resolution: {integrity: sha512-zdQoHBjuDqKsvV5OPaWansOwfSQ0Js+Uj9J85TBvj3bFW1JjWTSULMRwdQAc8qMeIScbClxeMK0jlrtB9linhA==}
|
||||
engines: {node: '>=18'}
|
||||
hasBin: true
|
||||
|
||||
escalade@3.2.0:
|
||||
resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
|
||||
engines: {node: '>=6'}
|
||||
|
|
@ -763,6 +918,7 @@ packages:
|
|||
|
||||
glob@10.4.5:
|
||||
resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==}
|
||||
deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
|
||||
hasBin: true
|
||||
|
||||
hasown@2.0.2:
|
||||
|
|
@ -827,9 +983,6 @@ packages:
|
|||
lodash.memoize@4.1.2:
|
||||
resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==}
|
||||
|
||||
lodash.sortby@4.7.0:
|
||||
resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==}
|
||||
|
||||
lodash.uniq@4.5.0:
|
||||
resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==}
|
||||
|
||||
|
|
@ -891,15 +1044,6 @@ packages:
|
|||
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
|
||||
hasBin: true
|
||||
|
||||
node-fetch@2.7.0:
|
||||
resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
|
||||
engines: {node: 4.x || >=6.0.0}
|
||||
peerDependencies:
|
||||
encoding: ^0.1.0
|
||||
peerDependenciesMeta:
|
||||
encoding:
|
||||
optional: true
|
||||
|
||||
node-releases@2.0.26:
|
||||
resolution: {integrity: sha512-S2M9YimhSjBSvYnlr5/+umAnPHE++ODwt5e2Ij6FoX45HA/s4vHdkDx1eax2pAPeAOqu4s9b7ppahsyEFdVqQA==}
|
||||
|
||||
|
|
@ -1153,10 +1297,6 @@ packages:
|
|||
resolution: {integrity: sha512-nODzvTiYVRGRqAOvE84Vk5JDPyyxsVk0/fbA/bq7RqlnhksGpset09XTxbpvLTIjoaF7K8Z8DG8yHtKGTPSYRw==}
|
||||
engines: {node: '>=20'}
|
||||
|
||||
punycode@2.3.1:
|
||||
resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
|
||||
engines: {node: '>=6'}
|
||||
|
||||
readdirp@4.1.2:
|
||||
resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==}
|
||||
engines: {node: '>= 14.18.0'}
|
||||
|
|
@ -1212,10 +1352,9 @@ packages:
|
|||
resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
source-map@0.8.0-beta.0:
|
||||
resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==}
|
||||
engines: {node: '>= 8'}
|
||||
deprecated: The work that was done in this beta branch won't be included in future versions
|
||||
source-map@0.7.6:
|
||||
resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==}
|
||||
engines: {node: '>= 12'}
|
||||
|
||||
stackback@0.0.2:
|
||||
resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==}
|
||||
|
|
@ -1291,12 +1430,6 @@ packages:
|
|||
resolution: {integrity: sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
|
||||
tr46@0.0.3:
|
||||
resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
|
||||
|
||||
tr46@1.0.1:
|
||||
resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==}
|
||||
|
||||
tree-kill@1.2.2:
|
||||
resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==}
|
||||
hasBin: true
|
||||
|
|
@ -1304,8 +1437,8 @@ packages:
|
|||
ts-interface-checker@0.1.13:
|
||||
resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
|
||||
|
||||
tsup@8.5.0:
|
||||
resolution: {integrity: sha512-VmBp77lWNQq6PfuMqCHD3xWl22vEoWsKajkF8t+yMBawlUS8JzEI+vOVMeuNZIuMML8qXRizFKi9oD5glKQVcQ==}
|
||||
tsup@8.5.1:
|
||||
resolution: {integrity: sha512-xtgkqwdhpKWr3tKPmCkvYmS9xnQK3m3XgxZHwSUjvfTjp7YfXe5tT3GgWi0F2N+ZSMsOeWeZFh7ZZFg5iPhing==}
|
||||
engines: {node: '>=18'}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
|
|
@ -1323,8 +1456,8 @@ packages:
|
|||
typescript:
|
||||
optional: true
|
||||
|
||||
typescript@5.9.3:
|
||||
resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
|
||||
typescript@6.0.2:
|
||||
resolution: {integrity: sha512-bGdAIrZ0wiGDo5l8c++HWtbaNCWTS4UTv7RaTH/ThVIgjkveJt83m74bBHMJkuCbslY8ixgLBVZJIOiQlQTjfQ==}
|
||||
engines: {node: '>=14.17'}
|
||||
hasBin: true
|
||||
|
||||
|
|
@ -1433,18 +1566,6 @@ packages:
|
|||
jsdom:
|
||||
optional: true
|
||||
|
||||
webidl-conversions@3.0.1:
|
||||
resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
|
||||
|
||||
webidl-conversions@4.0.2:
|
||||
resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==}
|
||||
|
||||
whatwg-url@5.0.0:
|
||||
resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
|
||||
|
||||
whatwg-url@7.1.0:
|
||||
resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==}
|
||||
|
||||
which@2.0.2:
|
||||
resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
|
||||
engines: {node: '>= 8'}
|
||||
|
|
@ -1463,8 +1584,8 @@ packages:
|
|||
resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
|
||||
engines: {node: '>=12'}
|
||||
|
||||
zod@4.1.4:
|
||||
resolution: {integrity: sha512-2YqJuWkU6IIK9qcE4k1lLLhyZ6zFw7XVRdQGpV97jEIZwTrscUw+DY31Xczd8nwaoksyJUIxCojZXwckJovWxA==}
|
||||
zod@4.3.6:
|
||||
resolution: {integrity: sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==}
|
||||
|
||||
snapshots:
|
||||
|
||||
|
|
@ -1516,81 +1637,159 @@ snapshots:
|
|||
'@esbuild/aix-ppc64@0.25.11':
|
||||
optional: true
|
||||
|
||||
'@esbuild/aix-ppc64@0.27.5':
|
||||
optional: true
|
||||
|
||||
'@esbuild/android-arm64@0.25.11':
|
||||
optional: true
|
||||
|
||||
'@esbuild/android-arm64@0.27.5':
|
||||
optional: true
|
||||
|
||||
'@esbuild/android-arm@0.25.11':
|
||||
optional: true
|
||||
|
||||
'@esbuild/android-arm@0.27.5':
|
||||
optional: true
|
||||
|
||||
'@esbuild/android-x64@0.25.11':
|
||||
optional: true
|
||||
|
||||
'@esbuild/android-x64@0.27.5':
|
||||
optional: true
|
||||
|
||||
'@esbuild/darwin-arm64@0.25.11':
|
||||
optional: true
|
||||
|
||||
'@esbuild/darwin-arm64@0.27.5':
|
||||
optional: true
|
||||
|
||||
'@esbuild/darwin-x64@0.25.11':
|
||||
optional: true
|
||||
|
||||
'@esbuild/darwin-x64@0.27.5':
|
||||
optional: true
|
||||
|
||||
'@esbuild/freebsd-arm64@0.25.11':
|
||||
optional: true
|
||||
|
||||
'@esbuild/freebsd-arm64@0.27.5':
|
||||
optional: true
|
||||
|
||||
'@esbuild/freebsd-x64@0.25.11':
|
||||
optional: true
|
||||
|
||||
'@esbuild/freebsd-x64@0.27.5':
|
||||
optional: true
|
||||
|
||||
'@esbuild/linux-arm64@0.25.11':
|
||||
optional: true
|
||||
|
||||
'@esbuild/linux-arm64@0.27.5':
|
||||
optional: true
|
||||
|
||||
'@esbuild/linux-arm@0.25.11':
|
||||
optional: true
|
||||
|
||||
'@esbuild/linux-arm@0.27.5':
|
||||
optional: true
|
||||
|
||||
'@esbuild/linux-ia32@0.25.11':
|
||||
optional: true
|
||||
|
||||
'@esbuild/linux-ia32@0.27.5':
|
||||
optional: true
|
||||
|
||||
'@esbuild/linux-loong64@0.25.11':
|
||||
optional: true
|
||||
|
||||
'@esbuild/linux-loong64@0.27.5':
|
||||
optional: true
|
||||
|
||||
'@esbuild/linux-mips64el@0.25.11':
|
||||
optional: true
|
||||
|
||||
'@esbuild/linux-mips64el@0.27.5':
|
||||
optional: true
|
||||
|
||||
'@esbuild/linux-ppc64@0.25.11':
|
||||
optional: true
|
||||
|
||||
'@esbuild/linux-ppc64@0.27.5':
|
||||
optional: true
|
||||
|
||||
'@esbuild/linux-riscv64@0.25.11':
|
||||
optional: true
|
||||
|
||||
'@esbuild/linux-riscv64@0.27.5':
|
||||
optional: true
|
||||
|
||||
'@esbuild/linux-s390x@0.25.11':
|
||||
optional: true
|
||||
|
||||
'@esbuild/linux-s390x@0.27.5':
|
||||
optional: true
|
||||
|
||||
'@esbuild/linux-x64@0.25.11':
|
||||
optional: true
|
||||
|
||||
'@esbuild/linux-x64@0.27.5':
|
||||
optional: true
|
||||
|
||||
'@esbuild/netbsd-arm64@0.25.11':
|
||||
optional: true
|
||||
|
||||
'@esbuild/netbsd-arm64@0.27.5':
|
||||
optional: true
|
||||
|
||||
'@esbuild/netbsd-x64@0.25.11':
|
||||
optional: true
|
||||
|
||||
'@esbuild/netbsd-x64@0.27.5':
|
||||
optional: true
|
||||
|
||||
'@esbuild/openbsd-arm64@0.25.11':
|
||||
optional: true
|
||||
|
||||
'@esbuild/openbsd-arm64@0.27.5':
|
||||
optional: true
|
||||
|
||||
'@esbuild/openbsd-x64@0.25.11':
|
||||
optional: true
|
||||
|
||||
'@esbuild/openbsd-x64@0.27.5':
|
||||
optional: true
|
||||
|
||||
'@esbuild/openharmony-arm64@0.25.11':
|
||||
optional: true
|
||||
|
||||
'@esbuild/openharmony-arm64@0.27.5':
|
||||
optional: true
|
||||
|
||||
'@esbuild/sunos-x64@0.25.11':
|
||||
optional: true
|
||||
|
||||
'@esbuild/sunos-x64@0.27.5':
|
||||
optional: true
|
||||
|
||||
'@esbuild/win32-arm64@0.25.11':
|
||||
optional: true
|
||||
|
||||
'@esbuild/win32-arm64@0.27.5':
|
||||
optional: true
|
||||
|
||||
'@esbuild/win32-ia32@0.25.11':
|
||||
optional: true
|
||||
|
||||
'@esbuild/win32-ia32@0.27.5':
|
||||
optional: true
|
||||
|
||||
'@esbuild/win32-x64@0.25.11':
|
||||
optional: true
|
||||
|
||||
'@esbuild/win32-x64@0.27.5':
|
||||
optional: true
|
||||
|
||||
'@isaacs/cliui@8.0.2':
|
||||
dependencies:
|
||||
string-width: 5.1.2
|
||||
|
|
@ -1738,7 +1937,7 @@ snapshots:
|
|||
|
||||
'@types/estree@1.0.8': {}
|
||||
|
||||
'@types/node@20.19.22':
|
||||
'@types/node@22.19.15':
|
||||
dependencies:
|
||||
undici-types: 6.21.0
|
||||
|
||||
|
|
@ -1752,13 +1951,13 @@ snapshots:
|
|||
chai: 5.3.3
|
||||
tinyrainbow: 2.0.0
|
||||
|
||||
'@vitest/mocker@3.2.4(vite@7.1.10(@types/node@20.19.22)(jiti@2.6.1))':
|
||||
'@vitest/mocker@3.2.4(vite@7.1.10(@types/node@22.19.15)(jiti@2.6.1))':
|
||||
dependencies:
|
||||
'@vitest/spy': 3.2.4
|
||||
estree-walker: 3.0.3
|
||||
magic-string: 0.30.19
|
||||
optionalDependencies:
|
||||
vite: 7.1.10(@types/node@20.19.22)(jiti@2.6.1)
|
||||
vite: 7.1.10(@types/node@22.19.15)(jiti@2.6.1)
|
||||
|
||||
'@vitest/pretty-format@3.2.4':
|
||||
dependencies:
|
||||
|
|
@ -1830,9 +2029,9 @@ snapshots:
|
|||
node-releases: 2.0.26
|
||||
update-browserslist-db: 1.1.4(browserslist@4.27.0)
|
||||
|
||||
bundle-require@5.1.0(esbuild@0.25.11):
|
||||
bundle-require@5.1.0(esbuild@0.27.5):
|
||||
dependencies:
|
||||
esbuild: 0.25.11
|
||||
esbuild: 0.27.5
|
||||
load-tsconfig: 0.2.5
|
||||
|
||||
cac@6.7.14: {}
|
||||
|
|
@ -1884,12 +2083,6 @@ snapshots:
|
|||
|
||||
consola@3.4.2: {}
|
||||
|
||||
cross-fetch@4.1.0:
|
||||
dependencies:
|
||||
node-fetch: 2.7.0
|
||||
transitivePeerDependencies:
|
||||
- encoding
|
||||
|
||||
cross-spawn@7.0.6:
|
||||
dependencies:
|
||||
path-key: 3.1.1
|
||||
|
|
@ -2041,6 +2234,35 @@ snapshots:
|
|||
'@esbuild/win32-ia32': 0.25.11
|
||||
'@esbuild/win32-x64': 0.25.11
|
||||
|
||||
esbuild@0.27.5:
|
||||
optionalDependencies:
|
||||
'@esbuild/aix-ppc64': 0.27.5
|
||||
'@esbuild/android-arm': 0.27.5
|
||||
'@esbuild/android-arm64': 0.27.5
|
||||
'@esbuild/android-x64': 0.27.5
|
||||
'@esbuild/darwin-arm64': 0.27.5
|
||||
'@esbuild/darwin-x64': 0.27.5
|
||||
'@esbuild/freebsd-arm64': 0.27.5
|
||||
'@esbuild/freebsd-x64': 0.27.5
|
||||
'@esbuild/linux-arm': 0.27.5
|
||||
'@esbuild/linux-arm64': 0.27.5
|
||||
'@esbuild/linux-ia32': 0.27.5
|
||||
'@esbuild/linux-loong64': 0.27.5
|
||||
'@esbuild/linux-mips64el': 0.27.5
|
||||
'@esbuild/linux-ppc64': 0.27.5
|
||||
'@esbuild/linux-riscv64': 0.27.5
|
||||
'@esbuild/linux-s390x': 0.27.5
|
||||
'@esbuild/linux-x64': 0.27.5
|
||||
'@esbuild/netbsd-arm64': 0.27.5
|
||||
'@esbuild/netbsd-x64': 0.27.5
|
||||
'@esbuild/openbsd-arm64': 0.27.5
|
||||
'@esbuild/openbsd-x64': 0.27.5
|
||||
'@esbuild/openharmony-arm64': 0.27.5
|
||||
'@esbuild/sunos-x64': 0.27.5
|
||||
'@esbuild/win32-arm64': 0.27.5
|
||||
'@esbuild/win32-ia32': 0.27.5
|
||||
'@esbuild/win32-x64': 0.27.5
|
||||
|
||||
escalade@3.2.0: {}
|
||||
|
||||
estree-walker@2.0.2: {}
|
||||
|
|
@ -2131,8 +2353,6 @@ snapshots:
|
|||
|
||||
lodash.memoize@4.1.2: {}
|
||||
|
||||
lodash.sortby@4.7.0: {}
|
||||
|
||||
lodash.uniq@4.5.0: {}
|
||||
|
||||
loupe@3.2.1: {}
|
||||
|
|
@ -2153,7 +2373,7 @@ snapshots:
|
|||
|
||||
minipass@7.1.2: {}
|
||||
|
||||
mkdist@2.4.1(typescript@5.9.3):
|
||||
mkdist@2.4.1(typescript@6.0.2):
|
||||
dependencies:
|
||||
autoprefixer: 10.4.21(postcss@8.5.6)
|
||||
citty: 0.1.6
|
||||
|
|
@ -2169,7 +2389,7 @@ snapshots:
|
|||
semver: 7.7.3
|
||||
tinyglobby: 0.2.15
|
||||
optionalDependencies:
|
||||
typescript: 5.9.3
|
||||
typescript: 6.0.2
|
||||
|
||||
mlly@1.8.0:
|
||||
dependencies:
|
||||
|
|
@ -2188,10 +2408,6 @@ snapshots:
|
|||
|
||||
nanoid@3.3.11: {}
|
||||
|
||||
node-fetch@2.7.0:
|
||||
dependencies:
|
||||
whatwg-url: 5.0.0
|
||||
|
||||
node-releases@2.0.26: {}
|
||||
|
||||
normalize-range@0.1.2: {}
|
||||
|
|
@ -2411,8 +2627,6 @@ snapshots:
|
|||
|
||||
pretty-bytes@7.1.0: {}
|
||||
|
||||
punycode@2.3.1: {}
|
||||
|
||||
readdirp@4.1.2: {}
|
||||
|
||||
resolve-from@5.0.0: {}
|
||||
|
|
@ -2423,11 +2637,11 @@ snapshots:
|
|||
path-parse: 1.0.7
|
||||
supports-preserve-symlinks-flag: 1.0.0
|
||||
|
||||
rollup-plugin-dts@6.2.3(rollup@4.52.5)(typescript@5.9.3):
|
||||
rollup-plugin-dts@6.2.3(rollup@4.52.5)(typescript@6.0.2):
|
||||
dependencies:
|
||||
magic-string: 0.30.19
|
||||
rollup: 4.52.5
|
||||
typescript: 5.9.3
|
||||
typescript: 6.0.2
|
||||
optionalDependencies:
|
||||
'@babel/code-frame': 7.27.1
|
||||
|
||||
|
|
@ -2477,9 +2691,7 @@ snapshots:
|
|||
|
||||
source-map-js@1.2.1: {}
|
||||
|
||||
source-map@0.8.0-beta.0:
|
||||
dependencies:
|
||||
whatwg-url: 7.1.0
|
||||
source-map@0.7.6: {}
|
||||
|
||||
stackback@0.0.2: {}
|
||||
|
||||
|
|
@ -2560,49 +2772,43 @@ snapshots:
|
|||
|
||||
tinyspy@4.0.4: {}
|
||||
|
||||
tr46@0.0.3: {}
|
||||
|
||||
tr46@1.0.1:
|
||||
dependencies:
|
||||
punycode: 2.3.1
|
||||
|
||||
tree-kill@1.2.2: {}
|
||||
|
||||
ts-interface-checker@0.1.13: {}
|
||||
|
||||
tsup@8.5.0(jiti@2.6.1)(postcss@8.5.6)(typescript@5.9.3):
|
||||
tsup@8.5.1(jiti@2.6.1)(postcss@8.5.6)(typescript@6.0.2):
|
||||
dependencies:
|
||||
bundle-require: 5.1.0(esbuild@0.25.11)
|
||||
bundle-require: 5.1.0(esbuild@0.27.5)
|
||||
cac: 6.7.14
|
||||
chokidar: 4.0.3
|
||||
consola: 3.4.2
|
||||
debug: 4.4.3
|
||||
esbuild: 0.25.11
|
||||
esbuild: 0.27.5
|
||||
fix-dts-default-cjs-exports: 1.0.1
|
||||
joycon: 3.1.1
|
||||
picocolors: 1.1.1
|
||||
postcss-load-config: 6.0.1(jiti@2.6.1)(postcss@8.5.6)
|
||||
resolve-from: 5.0.0
|
||||
rollup: 4.52.5
|
||||
source-map: 0.8.0-beta.0
|
||||
source-map: 0.7.6
|
||||
sucrase: 3.35.0
|
||||
tinyexec: 0.3.2
|
||||
tinyglobby: 0.2.15
|
||||
tree-kill: 1.2.2
|
||||
optionalDependencies:
|
||||
postcss: 8.5.6
|
||||
typescript: 5.9.3
|
||||
typescript: 6.0.2
|
||||
transitivePeerDependencies:
|
||||
- jiti
|
||||
- supports-color
|
||||
- tsx
|
||||
- yaml
|
||||
|
||||
typescript@5.9.3: {}
|
||||
typescript@6.0.2: {}
|
||||
|
||||
ufo@1.6.1: {}
|
||||
|
||||
unbuild@3.6.1(typescript@5.9.3):
|
||||
unbuild@3.6.1(typescript@6.0.2):
|
||||
dependencies:
|
||||
'@rollup/plugin-alias': 5.1.1(rollup@4.52.5)
|
||||
'@rollup/plugin-commonjs': 28.0.9(rollup@4.52.5)
|
||||
|
|
@ -2618,18 +2824,18 @@ snapshots:
|
|||
hookable: 5.5.3
|
||||
jiti: 2.6.1
|
||||
magic-string: 0.30.19
|
||||
mkdist: 2.4.1(typescript@5.9.3)
|
||||
mkdist: 2.4.1(typescript@6.0.2)
|
||||
mlly: 1.8.0
|
||||
pathe: 2.0.3
|
||||
pkg-types: 2.3.0
|
||||
pretty-bytes: 7.1.0
|
||||
rollup: 4.52.5
|
||||
rollup-plugin-dts: 6.2.3(rollup@4.52.5)(typescript@5.9.3)
|
||||
rollup-plugin-dts: 6.2.3(rollup@4.52.5)(typescript@6.0.2)
|
||||
scule: 1.3.0
|
||||
tinyglobby: 0.2.15
|
||||
untyped: 2.0.0
|
||||
optionalDependencies:
|
||||
typescript: 5.9.3
|
||||
typescript: 6.0.2
|
||||
transitivePeerDependencies:
|
||||
- sass
|
||||
- vue
|
||||
|
|
@ -2656,13 +2862,13 @@ snapshots:
|
|||
|
||||
uuid@11.1.0: {}
|
||||
|
||||
vite-node@3.2.4(@types/node@20.19.22)(jiti@2.6.1):
|
||||
vite-node@3.2.4(@types/node@22.19.15)(jiti@2.6.1):
|
||||
dependencies:
|
||||
cac: 6.7.14
|
||||
debug: 4.4.3
|
||||
es-module-lexer: 1.7.0
|
||||
pathe: 2.0.3
|
||||
vite: 7.1.10(@types/node@20.19.22)(jiti@2.6.1)
|
||||
vite: 7.1.10(@types/node@22.19.15)(jiti@2.6.1)
|
||||
transitivePeerDependencies:
|
||||
- '@types/node'
|
||||
- jiti
|
||||
|
|
@ -2677,7 +2883,7 @@ snapshots:
|
|||
- tsx
|
||||
- yaml
|
||||
|
||||
vite@7.1.10(@types/node@20.19.22)(jiti@2.6.1):
|
||||
vite@7.1.10(@types/node@22.19.15)(jiti@2.6.1):
|
||||
dependencies:
|
||||
esbuild: 0.25.11
|
||||
fdir: 6.5.0(picomatch@4.0.3)
|
||||
|
|
@ -2686,15 +2892,15 @@ snapshots:
|
|||
rollup: 4.52.5
|
||||
tinyglobby: 0.2.15
|
||||
optionalDependencies:
|
||||
'@types/node': 20.19.22
|
||||
'@types/node': 22.19.15
|
||||
fsevents: 2.3.3
|
||||
jiti: 2.6.1
|
||||
|
||||
vitest@3.2.4(@types/node@20.19.22)(jiti@2.6.1):
|
||||
vitest@3.2.4(@types/node@22.19.15)(jiti@2.6.1):
|
||||
dependencies:
|
||||
'@types/chai': 5.2.2
|
||||
'@vitest/expect': 3.2.4
|
||||
'@vitest/mocker': 3.2.4(vite@7.1.10(@types/node@20.19.22)(jiti@2.6.1))
|
||||
'@vitest/mocker': 3.2.4(vite@7.1.10(@types/node@22.19.15)(jiti@2.6.1))
|
||||
'@vitest/pretty-format': 3.2.4
|
||||
'@vitest/runner': 3.2.4
|
||||
'@vitest/snapshot': 3.2.4
|
||||
|
|
@ -2712,11 +2918,11 @@ snapshots:
|
|||
tinyglobby: 0.2.15
|
||||
tinypool: 1.1.1
|
||||
tinyrainbow: 2.0.0
|
||||
vite: 7.1.10(@types/node@20.19.22)(jiti@2.6.1)
|
||||
vite-node: 3.2.4(@types/node@20.19.22)(jiti@2.6.1)
|
||||
vite: 7.1.10(@types/node@22.19.15)(jiti@2.6.1)
|
||||
vite-node: 3.2.4(@types/node@22.19.15)(jiti@2.6.1)
|
||||
why-is-node-running: 2.3.0
|
||||
optionalDependencies:
|
||||
'@types/node': 20.19.22
|
||||
'@types/node': 22.19.15
|
||||
transitivePeerDependencies:
|
||||
- jiti
|
||||
- less
|
||||
|
|
@ -2731,21 +2937,6 @@ snapshots:
|
|||
- tsx
|
||||
- yaml
|
||||
|
||||
webidl-conversions@3.0.1: {}
|
||||
|
||||
webidl-conversions@4.0.2: {}
|
||||
|
||||
whatwg-url@5.0.0:
|
||||
dependencies:
|
||||
tr46: 0.0.3
|
||||
webidl-conversions: 3.0.1
|
||||
|
||||
whatwg-url@7.1.0:
|
||||
dependencies:
|
||||
lodash.sortby: 4.7.0
|
||||
tr46: 1.0.1
|
||||
webidl-conversions: 4.0.2
|
||||
|
||||
which@2.0.2:
|
||||
dependencies:
|
||||
isexe: 2.0.0
|
||||
|
|
@ -2767,4 +2958,4 @@ snapshots:
|
|||
string-width: 5.1.2
|
||||
strip-ansi: 7.1.2
|
||||
|
||||
zod@4.1.4: {}
|
||||
zod@4.3.6: {}
|
||||
|
|
|
|||
|
|
@ -12,11 +12,7 @@ const _cache: {
|
|||
|
||||
;(globalThis as any).cacheMemoria_cache = _cache
|
||||
|
||||
export const cacheM = <T>(
|
||||
chave: any,
|
||||
valor?: T,
|
||||
validadeSeg?: number,
|
||||
): T | undefined => {
|
||||
export const cacheM = <T>(chave: any, valor?: T, validadeSeg?: number): T | undefined => {
|
||||
// converte a chave e string
|
||||
const txChave: string =
|
||||
typeof chave == "string"
|
||||
|
|
|
|||
|
|
@ -30,17 +30,7 @@ export type interfaceConsulta = {
|
|||
apenasContagem?: boolean
|
||||
}
|
||||
|
||||
export const zOperadores = z.enum([
|
||||
"=",
|
||||
"!=",
|
||||
">",
|
||||
">=",
|
||||
"<",
|
||||
"<=",
|
||||
"like",
|
||||
"in",
|
||||
"isNull",
|
||||
])
|
||||
export const zOperadores = z.enum(["=", "!=", ">", ">=", "<", "<=", "like", "in", "isNull"])
|
||||
|
||||
export const zFiltro = z.object({
|
||||
coluna: z.string(),
|
||||
|
|
|
|||
29
src/dayjs.ts
Executable file
29
src/dayjs.ts
Executable file
|
|
@ -0,0 +1,29 @@
|
|||
import type dayjs from "dayjs"
|
||||
import type { Dayjs } from "dayjs"
|
||||
|
||||
export type { ManipulateType } from "dayjs"
|
||||
|
||||
import duration from "dayjs/plugin/duration"
|
||||
import isSameOrAfter from "dayjs/plugin/isSameOrAfter"
|
||||
import isSameOrBefore from "dayjs/plugin/isSameOrBefore"
|
||||
import minMax from "dayjs/plugin/minMax"
|
||||
import relativeTime from "dayjs/plugin/relativeTime"
|
||||
import timezone from "dayjs/plugin/timezone"
|
||||
import utc from "dayjs/plugin/utc"
|
||||
import weekOfYear from "dayjs/plugin/weekOfYear"
|
||||
import "dayjs/locale/pt-br"
|
||||
|
||||
export const definirDayjsbr = (dayjsEntrada: typeof dayjs) => {
|
||||
dayjsEntrada.locale("pt-br")
|
||||
dayjsEntrada.extend(utc)
|
||||
dayjsEntrada.extend(timezone)
|
||||
dayjsEntrada.extend(weekOfYear)
|
||||
dayjsEntrada.extend(isSameOrBefore)
|
||||
dayjsEntrada.extend(isSameOrAfter)
|
||||
dayjsEntrada.extend(minMax)
|
||||
dayjsEntrada.extend(relativeTime)
|
||||
dayjsEntrada.extend(duration)
|
||||
return dayjsEntrada
|
||||
}
|
||||
|
||||
export type { Dayjs }
|
||||
|
|
@ -162,9 +162,7 @@ export const extensoes: {
|
|||
* @param nomeArquivo
|
||||
* @returns
|
||||
*/
|
||||
export const tipoArquivo = (
|
||||
nomeArquivo: string | null | undefined,
|
||||
): tiposArquivo => {
|
||||
export const tipoArquivo = (nomeArquivo: string | null | undefined): tiposArquivo => {
|
||||
// extenssão do arquivo
|
||||
const extArquivo = String(nomeArquivo || "")
|
||||
.toLocaleLowerCase()
|
||||
|
|
|
|||
|
|
@ -2,18 +2,11 @@
|
|||
* LocalStorage Tipado
|
||||
* Lê ou grava um valor no localStorage, mantendo o tipo genérico <T>.
|
||||
*/
|
||||
export const localValor = <T>(
|
||||
chave_: string | any,
|
||||
valor?: T | null,
|
||||
): T | null => {
|
||||
const localStorage =
|
||||
"localStorage" in globalThis ? (globalThis as any).localStorage : undefined
|
||||
export const localValor = <T>(chave_: string | any, valor?: T | null): T | null => {
|
||||
const localStorage = "localStorage" in globalThis ? (globalThis as any).localStorage : undefined
|
||||
if (typeof localStorage == "undefined") return null
|
||||
|
||||
const chave =
|
||||
typeof chave_ === "string"
|
||||
? chave_
|
||||
: encodeURIComponent(JSON.stringify(chave_))
|
||||
const chave = typeof chave_ === "string" ? chave_ : encodeURIComponent(JSON.stringify(chave_))
|
||||
|
||||
try {
|
||||
// Grava valor se fornecido
|
||||
|
|
|
|||
|
|
@ -14,9 +14,7 @@ export const paraObjetoRegistroPg = (entrada: {
|
|||
k,
|
||||
v === undefined || v == null
|
||||
? v
|
||||
: typeof v == "string" ||
|
||||
typeof v == "number" ||
|
||||
typeof v == "boolean"
|
||||
: typeof v == "string" || typeof v == "number" || typeof v == "boolean"
|
||||
? v
|
||||
: JSON.stringify(v, null, 2),
|
||||
]),
|
||||
|
|
|
|||
|
|
@ -63,9 +63,7 @@ export class TipagemRotas<T extends { [q: string]: any }> {
|
|||
*/
|
||||
|
||||
endereco(query: T, usarComoHash?: boolean) {
|
||||
const win =
|
||||
(typeof globalThis !== "undefined" && (globalThis as any).window) ||
|
||||
undefined
|
||||
const win = (typeof globalThis !== "undefined" && (globalThis as any).window) || undefined
|
||||
const url = new URL(win ? win.location.href : "http://localhost")
|
||||
|
||||
url.pathname = this.caminho
|
||||
|
|
@ -96,9 +94,7 @@ export class TipagemRotas<T extends { [q: string]: any }> {
|
|||
if (this._acaoIr) {
|
||||
this._acaoIr(this.endereco({ ...query }))
|
||||
} else {
|
||||
const win =
|
||||
(typeof globalThis !== "undefined" && (globalThis as any).window) ||
|
||||
undefined
|
||||
const win = (typeof globalThis !== "undefined" && (globalThis as any).window) || undefined
|
||||
if (win) {
|
||||
win.location.href = this.endereco({ ...query })
|
||||
}
|
||||
|
|
@ -124,9 +120,7 @@ export class TipagemRotas<T extends { [q: string]: any }> {
|
|||
// pegar hash
|
||||
const hash = url.hash
|
||||
if (hash) {
|
||||
const hashObj = Object.fromEntries(
|
||||
new URLSearchParams(hash.slice(1)).entries(),
|
||||
)
|
||||
const hashObj = Object.fromEntries(new URLSearchParams(hash.slice(1)).entries())
|
||||
queryObj = { ...queryObj, ...hashObj } as T
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -164,9 +164,7 @@ type IsPlainObject<T> = T extends object
|
|||
============================================================================= */
|
||||
|
||||
type FiltroCampos<T> = {
|
||||
[K in keyof T]?: IsPlainObject<T[K]> extends true
|
||||
? tipoFiltro26<T[K]>
|
||||
: PgOpsFor<T[K]>
|
||||
[K in keyof T]?: IsPlainObject<T[K]> extends true ? tipoFiltro26<T[K]> : PgOpsFor<T[K]>
|
||||
}
|
||||
|
||||
/* =============================================================================
|
||||
|
|
|
|||
|
|
@ -6,8 +6,7 @@ import { NIL, v3, v4 } from "uuid"
|
|||
* @param valor - A string que será validada.
|
||||
* @returns booleano indicando se é um UUID válido.
|
||||
*/
|
||||
export const erUuid =
|
||||
/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i
|
||||
export const erUuid = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i
|
||||
|
||||
export const validarUuid = (uuid: string | number | undefined | null) => {
|
||||
const retorno = erUuid.test(String(uuid || ""))
|
||||
|
|
|
|||
|
|
@ -1,7 +1,5 @@
|
|||
export const esperar = (ms: number): Promise<true> =>
|
||||
new Promise((resolve: (r: true) => void) =>
|
||||
setTimeout(() => resolve(true), ms),
|
||||
)
|
||||
new Promise((resolve: (r: true) => void) => setTimeout(() => resolve(true), ms))
|
||||
/**
|
||||
* Usado para retronat o no de uma variável, deve ser usado dentro de um objeto
|
||||
* const nomex = {a: 1, b: 2}
|
||||
|
|
@ -9,5 +7,4 @@ export const esperar = (ms: number): Promise<true> =>
|
|||
* @param v
|
||||
* @returns
|
||||
*/
|
||||
export const nomeVariavel = (v: { [key: string]: any }) =>
|
||||
Object.keys(v).join("/")
|
||||
export const nomeVariavel = (v: { [key: string]: any }) => Object.keys(v).join("/")
|
||||
|
|
|
|||
|
|
@ -6,13 +6,16 @@
|
|||
/* Linguagem e Ambiente */
|
||||
"target": "ES2020" /* Define a versão do JavaScript para o código emitido. */,
|
||||
"lib": [
|
||||
"dom.iterable"
|
||||
"ES2020",
|
||||
"DOM",
|
||||
"DOM.Iterable"
|
||||
] /* Especifica as bibliotecas padrão a serem incluídas, como DOM para iteradores. */,
|
||||
"experimentalDecorators": true /* Habilita o suporte experimental a decoradores. */,
|
||||
"emitDecoratorMetadata": true /* Emite metadados de tipos de design para declarações decoradas. */,
|
||||
|
||||
/* Módulos */
|
||||
"moduleResolution": "node" /* Define como o TypeScript resolve módulos. */,
|
||||
"moduleResolution": "bundler" /* Define como o TypeScript resolve módulos. */,
|
||||
"ignoreDeprecations": "6.0" /* Ignora avisos de depreciação do TS 6.0 */,
|
||||
"rootDir": "./src" /* Define a pasta raiz para os arquivos de origem. */,
|
||||
|
||||
/* Emissão */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue