Compare commits

..

No commits in common. "02d47d893a3389364c05291cac92422ffff55153" and "f0c9f770aa2f6e509af5608d52ca73c4b3c6cc2e" have entirely different histories.

25 changed files with 322 additions and 910 deletions

23
.vscode/settings.json vendored
View file

@ -4,10 +4,8 @@
"source.fixAll.biome": "always" "source.fixAll.biome": "always"
}, },
"editor.defaultFormatter": "biomejs.biome", "editor.defaultFormatter": "biomejs.biome",
"editor.formatOnSave": true,
"[javascript]": { "[javascript]": {
"editor.defaultFormatter": "biomejs.biome" "editor.defaultFormatter": "vscode.typescript-language-features"
}, },
"[javascriptreact]": { "[javascriptreact]": {
"editor.defaultFormatter": "biomejs.biome" "editor.defaultFormatter": "biomejs.biome"
@ -25,21 +23,6 @@
"editor.defaultFormatter": "biomejs.biome" "editor.defaultFormatter": "biomejs.biome"
}, },
"[vue]": { "[vue]": {
"editor.defaultFormatter": "biomejs.biome" "editor.defaultFormatter": "esbenp.prettier-vscode"
}, }
"[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
View file

@ -1,234 +0,0 @@
# 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)

View file

@ -6,20 +6,12 @@
"enabled": true, "enabled": true,
"rules": { "rules": {
"recommended": true, "recommended": true,
"correctness": { "correctness": {
"noUnusedVariables": "error", "noUnusedVariables": "error",
"noUnusedImports": "error", "noUnusedImports": "error",
"noEmptyPattern": "off", "noEmptyPattern": "off",
"useExhaustiveDependencies": "off", "useExhaustiveDependencies": "off"
"noVoidTypeReturn": "error",
"noVueDataObjectDeclaration": "error",
"noVueDuplicateKeys": "error",
"noVueReservedKeys": "error",
"noVueReservedProps": "error",
"noVueSetupPropsReactivityLoss": "warn"
}, },
"style": { "style": {
"noParameterAssign": "error", "noParameterAssign": "error",
"useAsConstAssertion": "error", "useAsConstAssertion": "error",
@ -29,124 +21,44 @@
"useSingleVarDeclarator": "error", "useSingleVarDeclarator": "error",
"noUnusedTemplateLiteral": "error", "noUnusedTemplateLiteral": "error",
"useNumberNamespace": "error", "useNumberNamespace": "error",
"noInferrableTypes": "error", "noInferrableTypes": "error"
"useArrayLiterals": "error",
"useConsistentArrayType": {
"level": "error",
"options": { "syntax": "shorthand" }
},
"useShorthandAssign": "error",
"noNonNullAssertion": "warn"
}, },
"suspicious": { "suspicious": {
"noDebugger": "off", "noDebugger": "off",
"noDoubleEquals": "off", "noDoubleEquals": "off",
"noExplicitAny": "off", "noExplicitAny": "off",
"noApproximativeNumericConstant": "off", "noApproximativeNumericConstant": "off",
"noAsyncPromiseExecutor": "off", "noAsyncPromiseExecutor": "off"
"noEmptyBlockStatements": "warn",
"noConsole": "off",
"noArrayIndexKey": "warn"
}, },
"complexity": { "complexity": {
"noUselessConstructor": "off", "noUselessConstructor": "off",
"noBannedTypes": "off", "noBannedTypes": "off",
"useLiteralKeys": "off", "useLiteralKeys": "off",
"useArrowFunction": "error", "useArrowFunction": "warn",
"useDateNow": "off", "useDateNow": "off",
"noUselessFragments": "off", "noUselessFragments": "off"
"noExcessiveCognitiveComplexity": "off"
}, },
"performance": { "performance": {
"noAccumulatingSpread": "off", "noAccumulatingSpread": "off"
"noDelete": "warn"
}, },
"a11y": { "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": { "formatter": {
"enabled": true, "enabled": true,
"indentStyle": "space", "indentStyle": "space",
"indentWidth": 2, "indentWidth": 2
"lineWidth": 100,
"lineEnding": "lf"
}, },
"javascript": { "javascript": {
"globals": [
"defineProps",
"defineEmits",
"defineExpose",
"withDefaults",
"defineModel",
"defineOptions",
"defineSlots"
],
"parser": {
"unsafeParameterDecoratorsEnabled": true
},
"formatter": { "formatter": {
"enabled": true, "enabled": true,
"semicolons": "asNeeded", "semicolons": "asNeeded",
"arrowParentheses": "always", "arrowParentheses": "always",
"bracketSameLine": false, "bracketSameLine": false,
"trailingCommas": "all", "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
} }
} }
} }

145
README.md
View file

@ -1,120 +1,93 @@
# `p-comuns` — Pacote Compartilhado e-licencie ## ✅ Uso do BiomeJS para Autoformatação
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). Este guia mostra como configurar o [BiomeJS](https://biomejs.dev) para formatar e analisar código JavaScript/TypeScript no seu projeto.
--- ---
## ✅ Configuração do BiomeJS nos Subprojetos ### 1. Incluir o pacote de configuração comum
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`. 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`.
### 1. Adicionar o `p-comuns` como dependência
```bash
pnpm add --save-dev p-comuns
# ou atualizar se já existir:
pnpm up p-comuns pnpm up p-comuns
```
--- ---
### 2. Instalar o Biome ### 2. Instalar o Biome com `pnpm`
```bash ```bash
pnpm add --save-dev --save-exact @biomejs/biome@2.4.0 pnpm add --save-dev --save-exact @biomejs/biome@2.1.4
``` ```
> 🎯 Use `--save-exact` para garantir consistência de versões entre ambientes. > 🎯 Use `--save-exact` para garantir consistência de versões entre ambientes.
--- ---
### 3. Criar `biome.json` na raiz do subprojeto ### 3. Criar o arquivo de configuração na raiz do projeto
Crie um arquivo chamado `biome.json` com o seguinte conteúdo:
```json ```json
{ {
"$schema": "node_modules/@biomejs/biome/configuration_schema.json", "$schema": "./node_modules/@biomejs/biome/configuration_schema.json",
"extends": ["node_modules/p-comuns/Documentos/biome.json"], "extends": ["./node_modules/p-comuns/Documentos/biome.json"],
"vcs": {
"enabled": true,
"clientKind": "git",
"useIgnoreFile": true
},
"files": { "files": {
"includes": ["**/*.{ts,tsx,vue}"] "includes": ["src/**/*.{js,ts,jsx,tsx}"]
} }
} }
``` ```
> `vcs.useIgnoreFile: true` faz o Biome respeitar o `.gitignore` automaticamente — arquivos como `dist/`, `node_modules/` etc. são ignorados sem configuração adicional. > ⚠️ Verifique o caminho correto do `extends` relativo à raiz do seu projeto. Use `./` sempre que possível para evitar erros de resolução.
--- ---
### 4. Adicionar scripts no `package.json` ### 4. Adicionar script no `package.json`
Inclua o comando abaixo em `"scripts"`:
```json ```json
{ {
"scripts": { "scripts": {
"biome": "pnpm exec biome check --write", "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/`.
--- ---
### 5. Configurar o VS Code (`.vscode/settings.json`) ### ✅ Dica extra: formatar todos os arquivos
Se quiser aplicar o Biome a todo o projeto (não só `src/`), altere o include:
```json ```json
"includes": ["**/*.{js,ts,jsx,tsx}"]
```
adicionar em .vscode/settings.json
{ {
"editor.defaultFormatter": "biomejs.biome", "editor.defaultFormatter": "biomejs.biome",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports.biome": "always",
"source.fixAll.biome": "always"
},
"[javascript]": { "editor.defaultFormatter": "biomejs.biome" }, "[javascript]": { "editor.defaultFormatter": "biomejs.biome" },
"[javascriptreact]": { "editor.defaultFormatter": "biomejs.biome" }, "[javascriptreact]": { "editor.defaultFormatter": "biomejs.biome" },
"[typescript]": { "editor.defaultFormatter": "biomejs.biome" }, "[typescript]": { "editor.defaultFormatter": "biomejs.biome" },
"[typescriptreact]": { "editor.defaultFormatter": "biomejs.biome" }, "[typescriptreact]": { "editor.defaultFormatter": "biomejs.biome" },
"[vue]": { "editor.defaultFormatter": "biomejs.biome" },
"[css]": { "editor.defaultFormatter": "biomejs.biome" },
"[json]": { "editor.defaultFormatter": "biomejs.biome" }, "[json]": { "editor.defaultFormatter": "biomejs.biome" },
"[jsonc]": { "editor.defaultFormatter": "biomejs.biome" }, "[jsonc]": { "editor.defaultFormatter": "biomejs.biome" },
"editor.rulers": [100], "[vue]": {"editor.defaultFormatter": "octref.vetur"},
"files.eol": "\n", "editor.codeActionsOnSave": {
"files.trimTrailingWhitespace": true, "source.organizeImports.biome": "always",
"files.insertFinalNewline": true "source.fixAll.biome": "always"
}
} }
```
> 💡 **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`)**
--- ---
@ -123,21 +96,29 @@ pnpm add --save-dev --save-exact @biomejs/biome@2.4.0
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`. 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:** **Principais características:**
- Tipagem forte e segura (TypeScript) - Tipagem forte e segura (Typescript)
- Suporte a aninhamento de objetos - Suporte a aninhamento de objetos
- Operadores lógicos `E` (AND) e `OU` (OR) - Operadores lógicos `E` (AND) e `OU` (OR)
- Validação de operadores permitidos por tipo de dado (string, number, boolean) - Validação de operadores permitidos por tipo de dado (string, number, boolean)
### Estrutura do Filtro ### 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 #### 1. Campos Simples
```typescript ```typescript
{ idade: { ">=": 18 } } {
idade: { ">=": 18 }
}
``` ```
#### 2. Campos Aninhados #### 2. Campos Aninhados
```typescript ```typescript
{ carro: { ano: { "=": 2020 } } } {
carro: {
ano: { "=": 2020 }
}
}
``` ```
#### 3. Operadores Lógicos #### 3. Operadores Lógicos
@ -162,7 +143,7 @@ O sistema `tipoFiltro26` foi projetado para gerar automaticamente a tipagem de f
} }
``` ```
#### 4. Exemplo Complexo Completo #### 4. Exemplo Complexo Complet
```typescript ```typescript
{ {
idade: { ">=": 18 }, idade: { ">=": 18 },
@ -180,23 +161,21 @@ O sistema `tipoFiltro26` foi projetado para gerar automaticamente a tipagem de f
### Operadores Suportados (`operadores26`) ### Operadores Suportados (`operadores26`)
- **Number**: `=`, `!=`, `>`, `>=`, `<`, `<=`, `in` Os operadores são fornecidos pelo enum `operadores26` e são restritos pelo tipo do campo:
- **String**: `=`, `!=`, `like`, `in`
- **Boolean**: `=`, `!=`, `in` * **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`).
### Validação em Tempo de Execução (Zod) ### 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 ```typescript
import { zFiltro26 } from "p-comuns" import { zFiltro26 } from './tipoFiltro.26';
// Valida a estrutura (não checa existência de colunas no DB) // 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)

View file

@ -2,6 +2,6 @@
"$schema": "node_modules/@biomejs/biome/configuration_schema.json", "$schema": "node_modules/@biomejs/biome/configuration_schema.json",
"extends": ["Documentos/biome.json"], "extends": ["Documentos/biome.json"],
"files": { "files": {
"includes": ["src/**/*.{js,ts,jsx,tsx,vue}"] "includes": ["src/**/*.{js,ts,jsx,tsx}"]
} }
} }

View file

@ -46,7 +46,17 @@ var operadores = /* @__PURE__ */ ((operadores2) => {
operadores2["isNull"] = "isNull"; operadores2["isNull"] = "isNull";
return operadores2; return operadores2;
})(operadores || {}); })(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({ const zFiltro = import_zod.default.object({
coluna: import_zod.default.string(), coluna: import_zod.default.string(),
valor: import_zod.default.any(), valor: import_zod.default.any(),

View file

@ -1,58 +0,0 @@
"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
});

View file

@ -97,7 +97,9 @@ class TipagemRotas {
let queryObj = Object.fromEntries(query.entries()); let queryObj = Object.fromEntries(query.entries());
const hash = url.hash; const hash = url.hash;
if (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 }; queryObj = { ...queryObj, ...hashObj };
} }
for (const chave in queryObj) { for (const chave in queryObj) {

View file

@ -22,7 +22,9 @@ __export(variaveisComuns_exports, {
nomeVariavel: () => nomeVariavel nomeVariavel: () => nomeVariavel
}); });
module.exports = __toCommonJS(variaveisComuns_exports); 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("/"); const nomeVariavel = (v) => Object.keys(v).join("/");
// Annotate the CommonJS export names for ESM import in node: // Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = { 0 && (module.exports = {

View file

@ -558,4 +558,4 @@ declare const nomeVariavel: (v: {
[key: string]: any; [key: string]: any;
}) => string; }) => string;
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 }; 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 };

File diff suppressed because one or more lines are too long

View file

@ -1,45 +1,47 @@
{ {
"name": "p-comuns", "name": "p-comuns",
"version": "0.326.0", "version": "0.317.0",
"description": "", "description": "",
"main": "./dist-front/index.mjs", "main": "./dist-front/index.mjs",
"module": "./dist-front/index.mjs", "module": "./dist-front/index.mjs",
"types": "./dist-front/index.d.mts", "types": "./dist-front/index.d.mts",
"exports": { "exports": {
".": { ".": {
"types": "./dist-front/index.d.mts", "types": "./dist-front/index.d.mts",
"import": "./dist-front/index.mjs", "import": "./dist-front/index.mjs",
"require": "./dist-back/index.js" "require": "./dist-back/index.js"
} }
}, },
"scripts": { "scripts": {
"biome": "pnpm exec biome check --write", "biome": "pnpm exec biome check --write",
"check": "pnpm run biome && npx tsc --noEmit", "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", "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", "teste": "npx vitest run src/testes/TipagemRotas.test.ts",
"pacote": "npm pack && npm pack && mv $(npm pack --silent) pacote.tgz" "pacote": "npm pack && npm pack && mv $(npm pack --silent) pacote.tgz"
}, },
"author": { "author": {
"name": "AZTECA SOFTWARE LTDA", "name": "AZTECA SOFTWARE LTDA",
"email": "ti@e-licencie.com.br", "email": "ti@e-licencie.com.br",
"url": "https://e-licencie.com.br" "url": "https://e-licencie.com.br"
}, },
"license": "ISC", "license": "ISC",
"dependencies": {}, "dependencies": {},
"devDependencies": { "devDependencies": {
"uuid": "^11.1.0", "cross-fetch": "4.1.0",
"zod": "4.3.6", "uuid": "^11.1.0",
"dayjs": "^1.11.18", "zod": "4.1.4",
"@biomejs/biome": "2.4.0", "dayjs": "^1.11.18",
"@types/node": "^22", "@biomejs/biome": "2.4.0",
"tsup": "8.5.1", "@types/node": "^20.19.22",
"typescript": "^6", "tsup": "8.5.0",
"unbuild": "^3.6.1", "typescript": "~5.9.3",
"vitest": "^3.2.4" "unbuild": "^3.6.1",
}, "vitest": "^3.2.4"
"peerDependencies": { },
"dayjs": "^1.11.18", "peerDependencies": {
"uuid": "^11.1.0", "cross-fetch": "4.1.0",
"zod": "4.3.6" "dayjs": "^1.11.18",
} "uuid": "^11.1.0",
} "zod": "4.1.4"
}
}

Binary file not shown.

449
pnpm-lock.yaml generated
View file

@ -12,29 +12,32 @@ importers:
specifier: 2.4.0 specifier: 2.4.0
version: 2.4.0 version: 2.4.0
'@types/node': '@types/node':
specifier: ^22 specifier: ^20.19.22
version: 22.19.15 version: 20.19.22
cross-fetch:
specifier: 4.1.0
version: 4.1.0
dayjs: dayjs:
specifier: ^1.11.18 specifier: ^1.11.18
version: 1.11.19 version: 1.11.19
tsup: tsup:
specifier: 8.5.1 specifier: 8.5.0
version: 8.5.1(jiti@2.6.1)(postcss@8.5.6)(typescript@6.0.2) version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(typescript@5.9.3)
typescript: typescript:
specifier: ^6 specifier: ~5.9.3
version: 6.0.2 version: 5.9.3
unbuild: unbuild:
specifier: ^3.6.1 specifier: ^3.6.1
version: 3.6.1(typescript@6.0.2) version: 3.6.1(typescript@5.9.3)
uuid: uuid:
specifier: ^11.1.0 specifier: ^11.1.0
version: 11.1.0 version: 11.1.0
vitest: vitest:
specifier: ^3.2.4 specifier: ^3.2.4
version: 3.2.4(@types/node@22.19.15)(jiti@2.6.1) version: 3.2.4(@types/node@20.19.22)(jiti@2.6.1)
zod: zod:
specifier: 4.3.6 specifier: 4.1.4
version: 4.3.6 version: 4.1.4
packages: packages:
@ -105,312 +108,156 @@ packages:
cpu: [ppc64] cpu: [ppc64]
os: [aix] 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': '@esbuild/android-arm64@0.25.11':
resolution: {integrity: sha512-9slpyFBc4FPPz48+f6jyiXOx/Y4v34TUeDDXJpZqAWQn/08lKGeD8aDp9TMn9jDz2CiEuHwfhRmGBvpnd/PWIQ==} resolution: {integrity: sha512-9slpyFBc4FPPz48+f6jyiXOx/Y4v34TUeDDXJpZqAWQn/08lKGeD8aDp9TMn9jDz2CiEuHwfhRmGBvpnd/PWIQ==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [arm64] cpu: [arm64]
os: [android] 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': '@esbuild/android-arm@0.25.11':
resolution: {integrity: sha512-uoa7dU+Dt3HYsethkJ1k6Z9YdcHjTrSb5NUy66ZfZaSV8hEYGD5ZHbEMXnqLFlbBflLsl89Zke7CAdDJ4JI+Gg==} resolution: {integrity: sha512-uoa7dU+Dt3HYsethkJ1k6Z9YdcHjTrSb5NUy66ZfZaSV8hEYGD5ZHbEMXnqLFlbBflLsl89Zke7CAdDJ4JI+Gg==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [arm] cpu: [arm]
os: [android] 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': '@esbuild/android-x64@0.25.11':
resolution: {integrity: sha512-Sgiab4xBjPU1QoPEIqS3Xx+R2lezu0LKIEcYe6pftr56PqPygbB7+szVnzoShbx64MUupqoE0KyRlN7gezbl8g==} resolution: {integrity: sha512-Sgiab4xBjPU1QoPEIqS3Xx+R2lezu0LKIEcYe6pftr56PqPygbB7+szVnzoShbx64MUupqoE0KyRlN7gezbl8g==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [x64] cpu: [x64]
os: [android] 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': '@esbuild/darwin-arm64@0.25.11':
resolution: {integrity: sha512-VekY0PBCukppoQrycFxUqkCojnTQhdec0vevUL/EDOCnXd9LKWqD/bHwMPzigIJXPhC59Vd1WFIL57SKs2mg4w==} resolution: {integrity: sha512-VekY0PBCukppoQrycFxUqkCojnTQhdec0vevUL/EDOCnXd9LKWqD/bHwMPzigIJXPhC59Vd1WFIL57SKs2mg4w==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [arm64] cpu: [arm64]
os: [darwin] 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': '@esbuild/darwin-x64@0.25.11':
resolution: {integrity: sha512-+hfp3yfBalNEpTGp9loYgbknjR695HkqtY3d3/JjSRUyPg/xd6q+mQqIb5qdywnDxRZykIHs3axEqU6l1+oWEQ==} resolution: {integrity: sha512-+hfp3yfBalNEpTGp9loYgbknjR695HkqtY3d3/JjSRUyPg/xd6q+mQqIb5qdywnDxRZykIHs3axEqU6l1+oWEQ==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [x64] cpu: [x64]
os: [darwin] 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': '@esbuild/freebsd-arm64@0.25.11':
resolution: {integrity: sha512-CmKjrnayyTJF2eVuO//uSjl/K3KsMIeYeyN7FyDBjsR3lnSJHaXlVoAK8DZa7lXWChbuOk7NjAc7ygAwrnPBhA==} resolution: {integrity: sha512-CmKjrnayyTJF2eVuO//uSjl/K3KsMIeYeyN7FyDBjsR3lnSJHaXlVoAK8DZa7lXWChbuOk7NjAc7ygAwrnPBhA==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [arm64] cpu: [arm64]
os: [freebsd] 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': '@esbuild/freebsd-x64@0.25.11':
resolution: {integrity: sha512-Dyq+5oscTJvMaYPvW3x3FLpi2+gSZTCE/1ffdwuM6G1ARang/mb3jvjxs0mw6n3Lsw84ocfo9CrNMqc5lTfGOw==} resolution: {integrity: sha512-Dyq+5oscTJvMaYPvW3x3FLpi2+gSZTCE/1ffdwuM6G1ARang/mb3jvjxs0mw6n3Lsw84ocfo9CrNMqc5lTfGOw==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [x64] cpu: [x64]
os: [freebsd] 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': '@esbuild/linux-arm64@0.25.11':
resolution: {integrity: sha512-Qr8AzcplUhGvdyUF08A1kHU3Vr2O88xxP0Tm8GcdVOUm25XYcMPp2YqSVHbLuXzYQMf9Bh/iKx7YPqECs6ffLA==} resolution: {integrity: sha512-Qr8AzcplUhGvdyUF08A1kHU3Vr2O88xxP0Tm8GcdVOUm25XYcMPp2YqSVHbLuXzYQMf9Bh/iKx7YPqECs6ffLA==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [arm64] cpu: [arm64]
os: [linux] 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': '@esbuild/linux-arm@0.25.11':
resolution: {integrity: sha512-TBMv6B4kCfrGJ8cUPo7vd6NECZH/8hPpBHHlYI3qzoYFvWu2AdTvZNuU/7hsbKWqu/COU7NIK12dHAAqBLLXgw==} resolution: {integrity: sha512-TBMv6B4kCfrGJ8cUPo7vd6NECZH/8hPpBHHlYI3qzoYFvWu2AdTvZNuU/7hsbKWqu/COU7NIK12dHAAqBLLXgw==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [arm] cpu: [arm]
os: [linux] 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': '@esbuild/linux-ia32@0.25.11':
resolution: {integrity: sha512-TmnJg8BMGPehs5JKrCLqyWTVAvielc615jbkOirATQvWWB1NMXY77oLMzsUjRLa0+ngecEmDGqt5jiDC6bfvOw==} resolution: {integrity: sha512-TmnJg8BMGPehs5JKrCLqyWTVAvielc615jbkOirATQvWWB1NMXY77oLMzsUjRLa0+ngecEmDGqt5jiDC6bfvOw==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [ia32] cpu: [ia32]
os: [linux] 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': '@esbuild/linux-loong64@0.25.11':
resolution: {integrity: sha512-DIGXL2+gvDaXlaq8xruNXUJdT5tF+SBbJQKbWy/0J7OhU8gOHOzKmGIlfTTl6nHaCOoipxQbuJi7O++ldrxgMw==} resolution: {integrity: sha512-DIGXL2+gvDaXlaq8xruNXUJdT5tF+SBbJQKbWy/0J7OhU8gOHOzKmGIlfTTl6nHaCOoipxQbuJi7O++ldrxgMw==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [loong64] cpu: [loong64]
os: [linux] 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': '@esbuild/linux-mips64el@0.25.11':
resolution: {integrity: sha512-Osx1nALUJu4pU43o9OyjSCXokFkFbyzjXb6VhGIJZQ5JZi8ylCQ9/LFagolPsHtgw6himDSyb5ETSfmp4rpiKQ==} resolution: {integrity: sha512-Osx1nALUJu4pU43o9OyjSCXokFkFbyzjXb6VhGIJZQ5JZi8ylCQ9/LFagolPsHtgw6himDSyb5ETSfmp4rpiKQ==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [mips64el] cpu: [mips64el]
os: [linux] 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': '@esbuild/linux-ppc64@0.25.11':
resolution: {integrity: sha512-nbLFgsQQEsBa8XSgSTSlrnBSrpoWh7ioFDUmwo158gIm5NNP+17IYmNWzaIzWmgCxq56vfr34xGkOcZ7jX6CPw==} resolution: {integrity: sha512-nbLFgsQQEsBa8XSgSTSlrnBSrpoWh7ioFDUmwo158gIm5NNP+17IYmNWzaIzWmgCxq56vfr34xGkOcZ7jX6CPw==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [ppc64] cpu: [ppc64]
os: [linux] 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': '@esbuild/linux-riscv64@0.25.11':
resolution: {integrity: sha512-HfyAmqZi9uBAbgKYP1yGuI7tSREXwIb438q0nqvlpxAOs3XnZ8RsisRfmVsgV486NdjD7Mw2UrFSw51lzUk1ww==} resolution: {integrity: sha512-HfyAmqZi9uBAbgKYP1yGuI7tSREXwIb438q0nqvlpxAOs3XnZ8RsisRfmVsgV486NdjD7Mw2UrFSw51lzUk1ww==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [riscv64] cpu: [riscv64]
os: [linux] 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': '@esbuild/linux-s390x@0.25.11':
resolution: {integrity: sha512-HjLqVgSSYnVXRisyfmzsH6mXqyvj0SA7pG5g+9W7ESgwA70AXYNpfKBqh1KbTxmQVaYxpzA/SvlB9oclGPbApw==} resolution: {integrity: sha512-HjLqVgSSYnVXRisyfmzsH6mXqyvj0SA7pG5g+9W7ESgwA70AXYNpfKBqh1KbTxmQVaYxpzA/SvlB9oclGPbApw==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [s390x] cpu: [s390x]
os: [linux] 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': '@esbuild/linux-x64@0.25.11':
resolution: {integrity: sha512-HSFAT4+WYjIhrHxKBwGmOOSpphjYkcswF449j6EjsjbinTZbp8PJtjsVK1XFJStdzXdy/jaddAep2FGY+wyFAQ==} resolution: {integrity: sha512-HSFAT4+WYjIhrHxKBwGmOOSpphjYkcswF449j6EjsjbinTZbp8PJtjsVK1XFJStdzXdy/jaddAep2FGY+wyFAQ==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [x64] cpu: [x64]
os: [linux] 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': '@esbuild/netbsd-arm64@0.25.11':
resolution: {integrity: sha512-hr9Oxj1Fa4r04dNpWr3P8QKVVsjQhqrMSUzZzf+LZcYjZNqhA3IAfPQdEh1FLVUJSiu6sgAwp3OmwBfbFgG2Xg==} resolution: {integrity: sha512-hr9Oxj1Fa4r04dNpWr3P8QKVVsjQhqrMSUzZzf+LZcYjZNqhA3IAfPQdEh1FLVUJSiu6sgAwp3OmwBfbFgG2Xg==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [arm64] cpu: [arm64]
os: [netbsd] 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': '@esbuild/netbsd-x64@0.25.11':
resolution: {integrity: sha512-u7tKA+qbzBydyj0vgpu+5h5AeudxOAGncb8N6C9Kh1N4n7wU1Xw1JDApsRjpShRpXRQlJLb9wY28ELpwdPcZ7A==} resolution: {integrity: sha512-u7tKA+qbzBydyj0vgpu+5h5AeudxOAGncb8N6C9Kh1N4n7wU1Xw1JDApsRjpShRpXRQlJLb9wY28ELpwdPcZ7A==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [x64] cpu: [x64]
os: [netbsd] 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': '@esbuild/openbsd-arm64@0.25.11':
resolution: {integrity: sha512-Qq6YHhayieor3DxFOoYM1q0q1uMFYb7cSpLD2qzDSvK1NAvqFi8Xgivv0cFC6J+hWVw2teCYltyy9/m/14ryHg==} resolution: {integrity: sha512-Qq6YHhayieor3DxFOoYM1q0q1uMFYb7cSpLD2qzDSvK1NAvqFi8Xgivv0cFC6J+hWVw2teCYltyy9/m/14ryHg==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [arm64] cpu: [arm64]
os: [openbsd] 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': '@esbuild/openbsd-x64@0.25.11':
resolution: {integrity: sha512-CN+7c++kkbrckTOz5hrehxWN7uIhFFlmS/hqziSFVWpAzpWrQoAG4chH+nN3Be+Kzv/uuo7zhX716x3Sn2Jduw==} resolution: {integrity: sha512-CN+7c++kkbrckTOz5hrehxWN7uIhFFlmS/hqziSFVWpAzpWrQoAG4chH+nN3Be+Kzv/uuo7zhX716x3Sn2Jduw==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [x64] cpu: [x64]
os: [openbsd] 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': '@esbuild/openharmony-arm64@0.25.11':
resolution: {integrity: sha512-rOREuNIQgaiR+9QuNkbkxubbp8MSO9rONmwP5nKncnWJ9v5jQ4JxFnLu4zDSRPf3x4u+2VN4pM4RdyIzDty/wQ==} resolution: {integrity: sha512-rOREuNIQgaiR+9QuNkbkxubbp8MSO9rONmwP5nKncnWJ9v5jQ4JxFnLu4zDSRPf3x4u+2VN4pM4RdyIzDty/wQ==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [arm64] cpu: [arm64]
os: [openharmony] 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': '@esbuild/sunos-x64@0.25.11':
resolution: {integrity: sha512-nq2xdYaWxyg9DcIyXkZhcYulC6pQ2FuCgem3LI92IwMgIZ69KHeY8T4Y88pcwoLIjbed8n36CyKoYRDygNSGhA==} resolution: {integrity: sha512-nq2xdYaWxyg9DcIyXkZhcYulC6pQ2FuCgem3LI92IwMgIZ69KHeY8T4Y88pcwoLIjbed8n36CyKoYRDygNSGhA==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [x64] cpu: [x64]
os: [sunos] 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': '@esbuild/win32-arm64@0.25.11':
resolution: {integrity: sha512-3XxECOWJq1qMZ3MN8srCJ/QfoLpL+VaxD/WfNRm1O3B4+AZ/BnLVgFbUV3eiRYDMXetciH16dwPbbHqwe1uU0Q==} resolution: {integrity: sha512-3XxECOWJq1qMZ3MN8srCJ/QfoLpL+VaxD/WfNRm1O3B4+AZ/BnLVgFbUV3eiRYDMXetciH16dwPbbHqwe1uU0Q==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [arm64] cpu: [arm64]
os: [win32] 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': '@esbuild/win32-ia32@0.25.11':
resolution: {integrity: sha512-3ukss6gb9XZ8TlRyJlgLn17ecsK4NSQTmdIXRASVsiS2sQ6zPPZklNJT5GR5tE/MUarymmy8kCEf5xPCNCqVOA==} resolution: {integrity: sha512-3ukss6gb9XZ8TlRyJlgLn17ecsK4NSQTmdIXRASVsiS2sQ6zPPZklNJT5GR5tE/MUarymmy8kCEf5xPCNCqVOA==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [ia32] cpu: [ia32]
os: [win32] 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': '@esbuild/win32-x64@0.25.11':
resolution: {integrity: sha512-D7Hpz6A2L4hzsRpPaCYkQnGOotdUpDzSGRIv9I+1ITdHROSFUWW95ZPZWQmGka1Fg7W3zFJowyn9WGwMJ0+KPA==} resolution: {integrity: sha512-D7Hpz6A2L4hzsRpPaCYkQnGOotdUpDzSGRIv9I+1ITdHROSFUWW95ZPZWQmGka1Fg7W3zFJowyn9WGwMJ0+KPA==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [x64] cpu: [x64]
os: [win32] 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': '@isaacs/cliui@8.0.2':
resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
engines: {node: '>=12'} engines: {node: '>=12'}
@ -605,8 +452,8 @@ packages:
'@types/estree@1.0.8': '@types/estree@1.0.8':
resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==}
'@types/node@22.19.15': '@types/node@20.19.22':
resolution: {integrity: sha512-F0R/h2+dsy5wJAUe3tAU6oqa2qbWY5TpNfL/RGmo1y38hiyO1w3x2jPtt76wmuaJI4DQnOBu21cNXQ2STIUUWg==} resolution: {integrity: sha512-hRnu+5qggKDSyWHlnmThnUqg62l29Aj/6vcYgUaSFL9oc7DVjeWEQN3PRgdSc6F8d9QRMWkf36CLMch1Do/+RQ==}
'@types/resolve@1.20.2': '@types/resolve@1.20.2':
resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==}
@ -755,6 +602,9 @@ packages:
resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==}
engines: {node: ^14.18.0 || >=16.10.0} 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: cross-spawn@7.0.6:
resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
engines: {node: '>= 8'} engines: {node: '>= 8'}
@ -867,11 +717,6 @@ packages:
engines: {node: '>=18'} engines: {node: '>=18'}
hasBin: true hasBin: true
esbuild@0.27.5:
resolution: {integrity: sha512-zdQoHBjuDqKsvV5OPaWansOwfSQ0Js+Uj9J85TBvj3bFW1JjWTSULMRwdQAc8qMeIScbClxeMK0jlrtB9linhA==}
engines: {node: '>=18'}
hasBin: true
escalade@3.2.0: escalade@3.2.0:
resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
engines: {node: '>=6'} engines: {node: '>=6'}
@ -918,7 +763,6 @@ packages:
glob@10.4.5: glob@10.4.5:
resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} 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 hasBin: true
hasown@2.0.2: hasown@2.0.2:
@ -983,6 +827,9 @@ packages:
lodash.memoize@4.1.2: lodash.memoize@4.1.2:
resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==}
lodash.sortby@4.7.0:
resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==}
lodash.uniq@4.5.0: lodash.uniq@4.5.0:
resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==}
@ -1044,6 +891,15 @@ packages:
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true 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: node-releases@2.0.26:
resolution: {integrity: sha512-S2M9YimhSjBSvYnlr5/+umAnPHE++ODwt5e2Ij6FoX45HA/s4vHdkDx1eax2pAPeAOqu4s9b7ppahsyEFdVqQA==} resolution: {integrity: sha512-S2M9YimhSjBSvYnlr5/+umAnPHE++ODwt5e2Ij6FoX45HA/s4vHdkDx1eax2pAPeAOqu4s9b7ppahsyEFdVqQA==}
@ -1297,6 +1153,10 @@ packages:
resolution: {integrity: sha512-nODzvTiYVRGRqAOvE84Vk5JDPyyxsVk0/fbA/bq7RqlnhksGpset09XTxbpvLTIjoaF7K8Z8DG8yHtKGTPSYRw==} resolution: {integrity: sha512-nODzvTiYVRGRqAOvE84Vk5JDPyyxsVk0/fbA/bq7RqlnhksGpset09XTxbpvLTIjoaF7K8Z8DG8yHtKGTPSYRw==}
engines: {node: '>=20'} engines: {node: '>=20'}
punycode@2.3.1:
resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
engines: {node: '>=6'}
readdirp@4.1.2: readdirp@4.1.2:
resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==}
engines: {node: '>= 14.18.0'} engines: {node: '>= 14.18.0'}
@ -1352,9 +1212,10 @@ packages:
resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
engines: {node: '>=0.10.0'} engines: {node: '>=0.10.0'}
source-map@0.7.6: source-map@0.8.0-beta.0:
resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==}
engines: {node: '>= 12'} engines: {node: '>= 8'}
deprecated: The work that was done in this beta branch won't be included in future versions
stackback@0.0.2: stackback@0.0.2:
resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==}
@ -1430,6 +1291,12 @@ packages:
resolution: {integrity: sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==} resolution: {integrity: sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==}
engines: {node: '>=14.0.0'} 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: tree-kill@1.2.2:
resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==}
hasBin: true hasBin: true
@ -1437,8 +1304,8 @@ packages:
ts-interface-checker@0.1.13: ts-interface-checker@0.1.13:
resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
tsup@8.5.1: tsup@8.5.0:
resolution: {integrity: sha512-xtgkqwdhpKWr3tKPmCkvYmS9xnQK3m3XgxZHwSUjvfTjp7YfXe5tT3GgWi0F2N+ZSMsOeWeZFh7ZZFg5iPhing==} resolution: {integrity: sha512-VmBp77lWNQq6PfuMqCHD3xWl22vEoWsKajkF8t+yMBawlUS8JzEI+vOVMeuNZIuMML8qXRizFKi9oD5glKQVcQ==}
engines: {node: '>=18'} engines: {node: '>=18'}
hasBin: true hasBin: true
peerDependencies: peerDependencies:
@ -1456,8 +1323,8 @@ packages:
typescript: typescript:
optional: true optional: true
typescript@6.0.2: typescript@5.9.3:
resolution: {integrity: sha512-bGdAIrZ0wiGDo5l8c++HWtbaNCWTS4UTv7RaTH/ThVIgjkveJt83m74bBHMJkuCbslY8ixgLBVZJIOiQlQTjfQ==} resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
engines: {node: '>=14.17'} engines: {node: '>=14.17'}
hasBin: true hasBin: true
@ -1566,6 +1433,18 @@ packages:
jsdom: jsdom:
optional: true 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: which@2.0.2:
resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
engines: {node: '>= 8'} engines: {node: '>= 8'}
@ -1584,8 +1463,8 @@ packages:
resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
engines: {node: '>=12'} engines: {node: '>=12'}
zod@4.3.6: zod@4.1.4:
resolution: {integrity: sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==} resolution: {integrity: sha512-2YqJuWkU6IIK9qcE4k1lLLhyZ6zFw7XVRdQGpV97jEIZwTrscUw+DY31Xczd8nwaoksyJUIxCojZXwckJovWxA==}
snapshots: snapshots:
@ -1637,159 +1516,81 @@ snapshots:
'@esbuild/aix-ppc64@0.25.11': '@esbuild/aix-ppc64@0.25.11':
optional: true optional: true
'@esbuild/aix-ppc64@0.27.5':
optional: true
'@esbuild/android-arm64@0.25.11': '@esbuild/android-arm64@0.25.11':
optional: true optional: true
'@esbuild/android-arm64@0.27.5':
optional: true
'@esbuild/android-arm@0.25.11': '@esbuild/android-arm@0.25.11':
optional: true optional: true
'@esbuild/android-arm@0.27.5':
optional: true
'@esbuild/android-x64@0.25.11': '@esbuild/android-x64@0.25.11':
optional: true optional: true
'@esbuild/android-x64@0.27.5':
optional: true
'@esbuild/darwin-arm64@0.25.11': '@esbuild/darwin-arm64@0.25.11':
optional: true optional: true
'@esbuild/darwin-arm64@0.27.5':
optional: true
'@esbuild/darwin-x64@0.25.11': '@esbuild/darwin-x64@0.25.11':
optional: true optional: true
'@esbuild/darwin-x64@0.27.5':
optional: true
'@esbuild/freebsd-arm64@0.25.11': '@esbuild/freebsd-arm64@0.25.11':
optional: true optional: true
'@esbuild/freebsd-arm64@0.27.5':
optional: true
'@esbuild/freebsd-x64@0.25.11': '@esbuild/freebsd-x64@0.25.11':
optional: true optional: true
'@esbuild/freebsd-x64@0.27.5':
optional: true
'@esbuild/linux-arm64@0.25.11': '@esbuild/linux-arm64@0.25.11':
optional: true optional: true
'@esbuild/linux-arm64@0.27.5':
optional: true
'@esbuild/linux-arm@0.25.11': '@esbuild/linux-arm@0.25.11':
optional: true optional: true
'@esbuild/linux-arm@0.27.5':
optional: true
'@esbuild/linux-ia32@0.25.11': '@esbuild/linux-ia32@0.25.11':
optional: true optional: true
'@esbuild/linux-ia32@0.27.5':
optional: true
'@esbuild/linux-loong64@0.25.11': '@esbuild/linux-loong64@0.25.11':
optional: true optional: true
'@esbuild/linux-loong64@0.27.5':
optional: true
'@esbuild/linux-mips64el@0.25.11': '@esbuild/linux-mips64el@0.25.11':
optional: true optional: true
'@esbuild/linux-mips64el@0.27.5':
optional: true
'@esbuild/linux-ppc64@0.25.11': '@esbuild/linux-ppc64@0.25.11':
optional: true optional: true
'@esbuild/linux-ppc64@0.27.5':
optional: true
'@esbuild/linux-riscv64@0.25.11': '@esbuild/linux-riscv64@0.25.11':
optional: true optional: true
'@esbuild/linux-riscv64@0.27.5':
optional: true
'@esbuild/linux-s390x@0.25.11': '@esbuild/linux-s390x@0.25.11':
optional: true optional: true
'@esbuild/linux-s390x@0.27.5':
optional: true
'@esbuild/linux-x64@0.25.11': '@esbuild/linux-x64@0.25.11':
optional: true optional: true
'@esbuild/linux-x64@0.27.5':
optional: true
'@esbuild/netbsd-arm64@0.25.11': '@esbuild/netbsd-arm64@0.25.11':
optional: true optional: true
'@esbuild/netbsd-arm64@0.27.5':
optional: true
'@esbuild/netbsd-x64@0.25.11': '@esbuild/netbsd-x64@0.25.11':
optional: true optional: true
'@esbuild/netbsd-x64@0.27.5':
optional: true
'@esbuild/openbsd-arm64@0.25.11': '@esbuild/openbsd-arm64@0.25.11':
optional: true optional: true
'@esbuild/openbsd-arm64@0.27.5':
optional: true
'@esbuild/openbsd-x64@0.25.11': '@esbuild/openbsd-x64@0.25.11':
optional: true optional: true
'@esbuild/openbsd-x64@0.27.5':
optional: true
'@esbuild/openharmony-arm64@0.25.11': '@esbuild/openharmony-arm64@0.25.11':
optional: true optional: true
'@esbuild/openharmony-arm64@0.27.5':
optional: true
'@esbuild/sunos-x64@0.25.11': '@esbuild/sunos-x64@0.25.11':
optional: true optional: true
'@esbuild/sunos-x64@0.27.5':
optional: true
'@esbuild/win32-arm64@0.25.11': '@esbuild/win32-arm64@0.25.11':
optional: true optional: true
'@esbuild/win32-arm64@0.27.5':
optional: true
'@esbuild/win32-ia32@0.25.11': '@esbuild/win32-ia32@0.25.11':
optional: true optional: true
'@esbuild/win32-ia32@0.27.5':
optional: true
'@esbuild/win32-x64@0.25.11': '@esbuild/win32-x64@0.25.11':
optional: true optional: true
'@esbuild/win32-x64@0.27.5':
optional: true
'@isaacs/cliui@8.0.2': '@isaacs/cliui@8.0.2':
dependencies: dependencies:
string-width: 5.1.2 string-width: 5.1.2
@ -1937,7 +1738,7 @@ snapshots:
'@types/estree@1.0.8': {} '@types/estree@1.0.8': {}
'@types/node@22.19.15': '@types/node@20.19.22':
dependencies: dependencies:
undici-types: 6.21.0 undici-types: 6.21.0
@ -1951,13 +1752,13 @@ snapshots:
chai: 5.3.3 chai: 5.3.3
tinyrainbow: 2.0.0 tinyrainbow: 2.0.0
'@vitest/mocker@3.2.4(vite@7.1.10(@types/node@22.19.15)(jiti@2.6.1))': '@vitest/mocker@3.2.4(vite@7.1.10(@types/node@20.19.22)(jiti@2.6.1))':
dependencies: dependencies:
'@vitest/spy': 3.2.4 '@vitest/spy': 3.2.4
estree-walker: 3.0.3 estree-walker: 3.0.3
magic-string: 0.30.19 magic-string: 0.30.19
optionalDependencies: optionalDependencies:
vite: 7.1.10(@types/node@22.19.15)(jiti@2.6.1) vite: 7.1.10(@types/node@20.19.22)(jiti@2.6.1)
'@vitest/pretty-format@3.2.4': '@vitest/pretty-format@3.2.4':
dependencies: dependencies:
@ -2029,9 +1830,9 @@ snapshots:
node-releases: 2.0.26 node-releases: 2.0.26
update-browserslist-db: 1.1.4(browserslist@4.27.0) update-browserslist-db: 1.1.4(browserslist@4.27.0)
bundle-require@5.1.0(esbuild@0.27.5): bundle-require@5.1.0(esbuild@0.25.11):
dependencies: dependencies:
esbuild: 0.27.5 esbuild: 0.25.11
load-tsconfig: 0.2.5 load-tsconfig: 0.2.5
cac@6.7.14: {} cac@6.7.14: {}
@ -2083,6 +1884,12 @@ snapshots:
consola@3.4.2: {} consola@3.4.2: {}
cross-fetch@4.1.0:
dependencies:
node-fetch: 2.7.0
transitivePeerDependencies:
- encoding
cross-spawn@7.0.6: cross-spawn@7.0.6:
dependencies: dependencies:
path-key: 3.1.1 path-key: 3.1.1
@ -2234,35 +2041,6 @@ snapshots:
'@esbuild/win32-ia32': 0.25.11 '@esbuild/win32-ia32': 0.25.11
'@esbuild/win32-x64': 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: {} escalade@3.2.0: {}
estree-walker@2.0.2: {} estree-walker@2.0.2: {}
@ -2353,6 +2131,8 @@ snapshots:
lodash.memoize@4.1.2: {} lodash.memoize@4.1.2: {}
lodash.sortby@4.7.0: {}
lodash.uniq@4.5.0: {} lodash.uniq@4.5.0: {}
loupe@3.2.1: {} loupe@3.2.1: {}
@ -2373,7 +2153,7 @@ snapshots:
minipass@7.1.2: {} minipass@7.1.2: {}
mkdist@2.4.1(typescript@6.0.2): mkdist@2.4.1(typescript@5.9.3):
dependencies: dependencies:
autoprefixer: 10.4.21(postcss@8.5.6) autoprefixer: 10.4.21(postcss@8.5.6)
citty: 0.1.6 citty: 0.1.6
@ -2389,7 +2169,7 @@ snapshots:
semver: 7.7.3 semver: 7.7.3
tinyglobby: 0.2.15 tinyglobby: 0.2.15
optionalDependencies: optionalDependencies:
typescript: 6.0.2 typescript: 5.9.3
mlly@1.8.0: mlly@1.8.0:
dependencies: dependencies:
@ -2408,6 +2188,10 @@ snapshots:
nanoid@3.3.11: {} nanoid@3.3.11: {}
node-fetch@2.7.0:
dependencies:
whatwg-url: 5.0.0
node-releases@2.0.26: {} node-releases@2.0.26: {}
normalize-range@0.1.2: {} normalize-range@0.1.2: {}
@ -2627,6 +2411,8 @@ snapshots:
pretty-bytes@7.1.0: {} pretty-bytes@7.1.0: {}
punycode@2.3.1: {}
readdirp@4.1.2: {} readdirp@4.1.2: {}
resolve-from@5.0.0: {} resolve-from@5.0.0: {}
@ -2637,11 +2423,11 @@ snapshots:
path-parse: 1.0.7 path-parse: 1.0.7
supports-preserve-symlinks-flag: 1.0.0 supports-preserve-symlinks-flag: 1.0.0
rollup-plugin-dts@6.2.3(rollup@4.52.5)(typescript@6.0.2): rollup-plugin-dts@6.2.3(rollup@4.52.5)(typescript@5.9.3):
dependencies: dependencies:
magic-string: 0.30.19 magic-string: 0.30.19
rollup: 4.52.5 rollup: 4.52.5
typescript: 6.0.2 typescript: 5.9.3
optionalDependencies: optionalDependencies:
'@babel/code-frame': 7.27.1 '@babel/code-frame': 7.27.1
@ -2691,7 +2477,9 @@ snapshots:
source-map-js@1.2.1: {} source-map-js@1.2.1: {}
source-map@0.7.6: {} source-map@0.8.0-beta.0:
dependencies:
whatwg-url: 7.1.0
stackback@0.0.2: {} stackback@0.0.2: {}
@ -2772,43 +2560,49 @@ snapshots:
tinyspy@4.0.4: {} tinyspy@4.0.4: {}
tr46@0.0.3: {}
tr46@1.0.1:
dependencies:
punycode: 2.3.1
tree-kill@1.2.2: {} tree-kill@1.2.2: {}
ts-interface-checker@0.1.13: {} ts-interface-checker@0.1.13: {}
tsup@8.5.1(jiti@2.6.1)(postcss@8.5.6)(typescript@6.0.2): tsup@8.5.0(jiti@2.6.1)(postcss@8.5.6)(typescript@5.9.3):
dependencies: dependencies:
bundle-require: 5.1.0(esbuild@0.27.5) bundle-require: 5.1.0(esbuild@0.25.11)
cac: 6.7.14 cac: 6.7.14
chokidar: 4.0.3 chokidar: 4.0.3
consola: 3.4.2 consola: 3.4.2
debug: 4.4.3 debug: 4.4.3
esbuild: 0.27.5 esbuild: 0.25.11
fix-dts-default-cjs-exports: 1.0.1 fix-dts-default-cjs-exports: 1.0.1
joycon: 3.1.1 joycon: 3.1.1
picocolors: 1.1.1 picocolors: 1.1.1
postcss-load-config: 6.0.1(jiti@2.6.1)(postcss@8.5.6) postcss-load-config: 6.0.1(jiti@2.6.1)(postcss@8.5.6)
resolve-from: 5.0.0 resolve-from: 5.0.0
rollup: 4.52.5 rollup: 4.52.5
source-map: 0.7.6 source-map: 0.8.0-beta.0
sucrase: 3.35.0 sucrase: 3.35.0
tinyexec: 0.3.2 tinyexec: 0.3.2
tinyglobby: 0.2.15 tinyglobby: 0.2.15
tree-kill: 1.2.2 tree-kill: 1.2.2
optionalDependencies: optionalDependencies:
postcss: 8.5.6 postcss: 8.5.6
typescript: 6.0.2 typescript: 5.9.3
transitivePeerDependencies: transitivePeerDependencies:
- jiti - jiti
- supports-color - supports-color
- tsx - tsx
- yaml - yaml
typescript@6.0.2: {} typescript@5.9.3: {}
ufo@1.6.1: {} ufo@1.6.1: {}
unbuild@3.6.1(typescript@6.0.2): unbuild@3.6.1(typescript@5.9.3):
dependencies: dependencies:
'@rollup/plugin-alias': 5.1.1(rollup@4.52.5) '@rollup/plugin-alias': 5.1.1(rollup@4.52.5)
'@rollup/plugin-commonjs': 28.0.9(rollup@4.52.5) '@rollup/plugin-commonjs': 28.0.9(rollup@4.52.5)
@ -2824,18 +2618,18 @@ snapshots:
hookable: 5.5.3 hookable: 5.5.3
jiti: 2.6.1 jiti: 2.6.1
magic-string: 0.30.19 magic-string: 0.30.19
mkdist: 2.4.1(typescript@6.0.2) mkdist: 2.4.1(typescript@5.9.3)
mlly: 1.8.0 mlly: 1.8.0
pathe: 2.0.3 pathe: 2.0.3
pkg-types: 2.3.0 pkg-types: 2.3.0
pretty-bytes: 7.1.0 pretty-bytes: 7.1.0
rollup: 4.52.5 rollup: 4.52.5
rollup-plugin-dts: 6.2.3(rollup@4.52.5)(typescript@6.0.2) rollup-plugin-dts: 6.2.3(rollup@4.52.5)(typescript@5.9.3)
scule: 1.3.0 scule: 1.3.0
tinyglobby: 0.2.15 tinyglobby: 0.2.15
untyped: 2.0.0 untyped: 2.0.0
optionalDependencies: optionalDependencies:
typescript: 6.0.2 typescript: 5.9.3
transitivePeerDependencies: transitivePeerDependencies:
- sass - sass
- vue - vue
@ -2862,13 +2656,13 @@ snapshots:
uuid@11.1.0: {} uuid@11.1.0: {}
vite-node@3.2.4(@types/node@22.19.15)(jiti@2.6.1): vite-node@3.2.4(@types/node@20.19.22)(jiti@2.6.1):
dependencies: dependencies:
cac: 6.7.14 cac: 6.7.14
debug: 4.4.3 debug: 4.4.3
es-module-lexer: 1.7.0 es-module-lexer: 1.7.0
pathe: 2.0.3 pathe: 2.0.3
vite: 7.1.10(@types/node@22.19.15)(jiti@2.6.1) vite: 7.1.10(@types/node@20.19.22)(jiti@2.6.1)
transitivePeerDependencies: transitivePeerDependencies:
- '@types/node' - '@types/node'
- jiti - jiti
@ -2883,7 +2677,7 @@ snapshots:
- tsx - tsx
- yaml - yaml
vite@7.1.10(@types/node@22.19.15)(jiti@2.6.1): vite@7.1.10(@types/node@20.19.22)(jiti@2.6.1):
dependencies: dependencies:
esbuild: 0.25.11 esbuild: 0.25.11
fdir: 6.5.0(picomatch@4.0.3) fdir: 6.5.0(picomatch@4.0.3)
@ -2892,15 +2686,15 @@ snapshots:
rollup: 4.52.5 rollup: 4.52.5
tinyglobby: 0.2.15 tinyglobby: 0.2.15
optionalDependencies: optionalDependencies:
'@types/node': 22.19.15 '@types/node': 20.19.22
fsevents: 2.3.3 fsevents: 2.3.3
jiti: 2.6.1 jiti: 2.6.1
vitest@3.2.4(@types/node@22.19.15)(jiti@2.6.1): vitest@3.2.4(@types/node@20.19.22)(jiti@2.6.1):
dependencies: dependencies:
'@types/chai': 5.2.2 '@types/chai': 5.2.2
'@vitest/expect': 3.2.4 '@vitest/expect': 3.2.4
'@vitest/mocker': 3.2.4(vite@7.1.10(@types/node@22.19.15)(jiti@2.6.1)) '@vitest/mocker': 3.2.4(vite@7.1.10(@types/node@20.19.22)(jiti@2.6.1))
'@vitest/pretty-format': 3.2.4 '@vitest/pretty-format': 3.2.4
'@vitest/runner': 3.2.4 '@vitest/runner': 3.2.4
'@vitest/snapshot': 3.2.4 '@vitest/snapshot': 3.2.4
@ -2918,11 +2712,11 @@ snapshots:
tinyglobby: 0.2.15 tinyglobby: 0.2.15
tinypool: 1.1.1 tinypool: 1.1.1
tinyrainbow: 2.0.0 tinyrainbow: 2.0.0
vite: 7.1.10(@types/node@22.19.15)(jiti@2.6.1) vite: 7.1.10(@types/node@20.19.22)(jiti@2.6.1)
vite-node: 3.2.4(@types/node@22.19.15)(jiti@2.6.1) vite-node: 3.2.4(@types/node@20.19.22)(jiti@2.6.1)
why-is-node-running: 2.3.0 why-is-node-running: 2.3.0
optionalDependencies: optionalDependencies:
'@types/node': 22.19.15 '@types/node': 20.19.22
transitivePeerDependencies: transitivePeerDependencies:
- jiti - jiti
- less - less
@ -2937,6 +2731,21 @@ snapshots:
- tsx - tsx
- yaml - 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: which@2.0.2:
dependencies: dependencies:
isexe: 2.0.0 isexe: 2.0.0
@ -2958,4 +2767,4 @@ snapshots:
string-width: 5.1.2 string-width: 5.1.2
strip-ansi: 7.1.2 strip-ansi: 7.1.2
zod@4.3.6: {} zod@4.1.4: {}

View file

@ -12,7 +12,11 @@ const _cache: {
;(globalThis as any).cacheMemoria_cache = _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 // converte a chave e string
const txChave: string = const txChave: string =
typeof chave == "string" typeof chave == "string"

View file

@ -30,7 +30,17 @@ export type interfaceConsulta = {
apenasContagem?: boolean apenasContagem?: boolean
} }
export const zOperadores = z.enum(["=", "!=", ">", ">=", "<", "<=", "like", "in", "isNull"]) export const zOperadores = z.enum([
"=",
"!=",
">",
">=",
"<",
"<=",
"like",
"in",
"isNull",
])
export const zFiltro = z.object({ export const zFiltro = z.object({
coluna: z.string(), coluna: z.string(),

View file

@ -1,29 +0,0 @@
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 }

View file

@ -162,7 +162,9 @@ export const extensoes: {
* @param nomeArquivo * @param nomeArquivo
* @returns * @returns
*/ */
export const tipoArquivo = (nomeArquivo: string | null | undefined): tiposArquivo => { export const tipoArquivo = (
nomeArquivo: string | null | undefined,
): tiposArquivo => {
// extenssão do arquivo // extenssão do arquivo
const extArquivo = String(nomeArquivo || "") const extArquivo = String(nomeArquivo || "")
.toLocaleLowerCase() .toLocaleLowerCase()

View file

@ -2,11 +2,18 @@
* LocalStorage Tipado * LocalStorage Tipado
* ou grava um valor no localStorage, mantendo o tipo genérico <T>. * ou grava um valor no localStorage, mantendo o tipo genérico <T>.
*/ */
export const localValor = <T>(chave_: string | any, valor?: T | null): T | null => { export const localValor = <T>(
const localStorage = "localStorage" in globalThis ? (globalThis as any).localStorage : undefined chave_: string | any,
valor?: T | null,
): T | null => {
const localStorage =
"localStorage" in globalThis ? (globalThis as any).localStorage : undefined
if (typeof localStorage == "undefined") return null 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 { try {
// Grava valor se fornecido // Grava valor se fornecido

View file

@ -14,7 +14,9 @@ export const paraObjetoRegistroPg = (entrada: {
k, k,
v === undefined || v == null v === undefined || v == null
? v ? v
: typeof v == "string" || typeof v == "number" || typeof v == "boolean" : typeof v == "string" ||
typeof v == "number" ||
typeof v == "boolean"
? v ? v
: JSON.stringify(v, null, 2), : JSON.stringify(v, null, 2),
]), ]),

View file

@ -63,7 +63,9 @@ export class TipagemRotas<T extends { [q: string]: any }> {
*/ */
endereco(query: T, usarComoHash?: boolean) { 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") const url = new URL(win ? win.location.href : "http://localhost")
url.pathname = this.caminho url.pathname = this.caminho
@ -94,7 +96,9 @@ export class TipagemRotas<T extends { [q: string]: any }> {
if (this._acaoIr) { if (this._acaoIr) {
this._acaoIr(this.endereco({ ...query })) this._acaoIr(this.endereco({ ...query }))
} else { } else {
const win = (typeof globalThis !== "undefined" && (globalThis as any).window) || undefined const win =
(typeof globalThis !== "undefined" && (globalThis as any).window) ||
undefined
if (win) { if (win) {
win.location.href = this.endereco({ ...query }) win.location.href = this.endereco({ ...query })
} }
@ -120,7 +124,9 @@ export class TipagemRotas<T extends { [q: string]: any }> {
// pegar hash // pegar hash
const hash = url.hash const hash = url.hash
if (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 queryObj = { ...queryObj, ...hashObj } as T
} }

View file

@ -164,7 +164,9 @@ type IsPlainObject<T> = T extends object
============================================================================= */ ============================================================================= */
type FiltroCampos<T> = { 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]>
} }
/* ============================================================================= /* =============================================================================

View file

@ -6,7 +6,8 @@ import { NIL, v3, v4 } from "uuid"
* @param valor - A string que será validada. * @param valor - A string que será validada.
* @returns booleano indicando se é um UUID válido. * @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) => { export const validarUuid = (uuid: string | number | undefined | null) => {
const retorno = erUuid.test(String(uuid || "")) const retorno = erUuid.test(String(uuid || ""))

View file

@ -1,5 +1,7 @@
export const esperar = (ms: number): Promise<true> => 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 * Usado para retronat o no de uma variável, deve ser usado dentro de um objeto
* const nomex = {a: 1, b: 2} * const nomex = {a: 1, b: 2}
@ -7,4 +9,5 @@ export const esperar = (ms: number): Promise<true> =>
* @param v * @param v
* @returns * @returns
*/ */
export const nomeVariavel = (v: { [key: string]: any }) => Object.keys(v).join("/") export const nomeVariavel = (v: { [key: string]: any }) =>
Object.keys(v).join("/")

View file

@ -6,16 +6,13 @@
/* Linguagem e Ambiente */ /* Linguagem e Ambiente */
"target": "ES2020" /* Define a versão do JavaScript para o código emitido. */, "target": "ES2020" /* Define a versão do JavaScript para o código emitido. */,
"lib": [ "lib": [
"ES2020", "dom.iterable"
"DOM",
"DOM.Iterable"
] /* Especifica as bibliotecas padrão a serem incluídas, como DOM para iteradores. */, ] /* Especifica as bibliotecas padrão a serem incluídas, como DOM para iteradores. */,
"experimentalDecorators": true /* Habilita o suporte experimental a decoradores. */, "experimentalDecorators": true /* Habilita o suporte experimental a decoradores. */,
"emitDecoratorMetadata": true /* Emite metadados de tipos de design para declarações decoradas. */, "emitDecoratorMetadata": true /* Emite metadados de tipos de design para declarações decoradas. */,
/* Módulos */ /* Módulos */
"moduleResolution": "bundler" /* Define como o TypeScript resolve módulos. */, "moduleResolution": "node" /* 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. */, "rootDir": "./src" /* Define a pasta raiz para os arquivos de origem. */,
/* Emissão */ /* Emissão */