diff --git a/.env b/.env deleted file mode 100644 index 9d6c8be..0000000 --- a/.env +++ /dev/null @@ -1,2 +0,0 @@ -PORTA = '5020' -PREFIXO = '/estaticos' \ No newline at end of file diff --git a/.npmignore b/.npmignore new file mode 100644 index 0000000..aa1ec1e --- /dev/null +++ b/.npmignore @@ -0,0 +1 @@ +*.tgz diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..e58f186 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,28 @@ +{ + "editor.codeActionsOnSave": { + "source.organizeImports.biome": "always", + "source.fixAll.biome": "always" + }, + "editor.defaultFormatter": "biomejs.biome", + "[javascript]": { + "editor.defaultFormatter": "vscode.typescript-language-features" + }, + "[javascriptreact]": { + "editor.defaultFormatter": "biomejs.biome" + }, + "[typescript]": { + "editor.defaultFormatter": "biomejs.biome" + }, + "[typescriptreact]": { + "editor.defaultFormatter": "biomejs.biome" + }, + "[json]": { + "editor.defaultFormatter": "biomejs.biome" + }, + "[jsonc]": { + "editor.defaultFormatter": "biomejs.biome" + }, + "[vue]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + } +} \ No newline at end of file diff --git a/Documentos/biome.json b/Documentos/biome.json index 7c9e297..739a12b 100644 --- a/Documentos/biome.json +++ b/Documentos/biome.json @@ -1,19 +1,18 @@ { - "root": false, "$schema": "../node_modules/@biomejs/biome/configuration_schema.json", + "root": false, + "linter": { "enabled": true, "rules": { "recommended": true, - "suspicious": { - "noDoubleEquals": "off", - "noExplicitAny": "off", - "noDebugger": "off", - "noApproximativeNumericConstant": "off", - "noAsyncPromiseExecutor": "off" + "correctness": { + "noUnusedVariables": "error", + "noUnusedImports": "error", + "noEmptyPattern": "off", + "useExhaustiveDependencies": "off" }, "style": { - "noUselessElse": "off", "noParameterAssign": "error", "useAsConstAssertion": "error", "useDefaultParameterLast": "error", @@ -24,22 +23,20 @@ "useNumberNamespace": "error", "noInferrableTypes": "error" }, - "complexity": { - "noBannedTypes": "off", - "noForEach": "off", - "useLiteralKeys": "off", - "noUselessConstructor": "off", - "useArrowFunction": "off", - "useDateNow":"off", - "noUselessFragments":"off" + "suspicious": { + "noDebugger": "off", + "noDoubleEquals": "off", + "noExplicitAny": "off", + "noApproximativeNumericConstant": "off", + "noAsyncPromiseExecutor": "off" }, - "correctness": { - "noEmptyPattern": "off", - "noUnusedVariables": "error", - "noUnusedImports": "off", - "useExhaustiveDependencies":"off" - - + "complexity": { + "noUselessConstructor": "off", + "noBannedTypes": "off", + "useLiteralKeys": "off", + "useArrowFunction": "warn", + "useDateNow": "off", + "noUselessFragments":"off" }, "performance": { "noAccumulatingSpread": "off" @@ -50,18 +47,18 @@ } }, "formatter": { - "indentWidth": 2, + "enabled": true, "indentStyle": "space", - "enabled": true + "indentWidth": 2 }, "javascript": { "formatter": { + "enabled": true, "semicolons": "asNeeded", "arrowParentheses": "always", - "enabled": true, "bracketSameLine": false, "trailingCommas": "all", "attributePosition": "multiline" } } -} +} \ No newline at end of file diff --git a/README.md b/README.md index 2d9c006..14fc5b3 100644 --- a/README.md +++ b/README.md @@ -1 +1,90 @@ -# comuns +## ✅ Uso do BiomeJS para Autoformatação + +Este guia mostra como configurar o [BiomeJS](https://biomejs.dev) para formatar e analisar código JavaScript/TypeScript no seu projeto. + +--- + +### 1. Incluir o pacote de configuração comum + +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`. + +pnpm up p-comuns + +--- + +### 2. Instalar o Biome com `pnpm` + +```bash +pnpm add --save-dev --save-exact @biomejs/biome@2.1.4 +``` + +> 🎯 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: + +```json +{ + "$schema": "./node_modules/@biomejs/biome/configuration_schema.json", + "extends": ["./node_modules/p-comuns/Documentos/biome.json"], + "files": { + "includes": ["src/**/*.{js,ts,jsx,tsx}"] + } +} +``` + +> ⚠️ Verifique o caminho correto do `extends` relativo à raiz do seu projeto. Use `./` sempre que possível para evitar erros de resolução. + +--- + +### 4. Adicionar script no `package.json` + +Inclua o comando abaixo em `"scripts"`: + +```json +{ + "scripts": { + "biome": "pnpm exec biome check --write", + } +} +``` + +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: + +```json +"includes": ["**/*.{js,ts,jsx,tsx}"] +``` + + + +adicionar em .vscode/settings.json + +{ + "editor.defaultFormatter": "biomejs.biome", + "[javascript]": { "editor.defaultFormatter": "biomejs.biome" }, + "[javascriptreact]": { "editor.defaultFormatter": "biomejs.biome" }, + "[typescript]": { "editor.defaultFormatter": "biomejs.biome" }, + "[typescriptreact]": { "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" + } +} diff --git a/biome.json b/biome.json index e4c3596..92399f4 100644 --- a/biome.json +++ b/biome.json @@ -1,21 +1,7 @@ { "$schema": "node_modules/@biomejs/biome/configuration_schema.json", "extends": ["Documentos/biome.json"], - "files": {}, - "linter": { - "rules": { - "style": { - "noParameterAssign": "error", - "useAsConstAssertion": "error", - "useDefaultParameterLast": "error", - "useEnumInitializers": "error", - "useSelfClosingElements": "error", - "useSingleVarDeclarator": "error", - "noUnusedTemplateLiteral": "error", - "useNumberNamespace": "error", - "noInferrableTypes": "error", - "noUselessElse": "error" - } - } + "files": { + "includes": ["src/**/*.{js,ts,jsx,tsx}"] } } diff --git a/build.config.ts b/build.config.ts new file mode 100644 index 0000000..de0def4 --- /dev/null +++ b/build.config.ts @@ -0,0 +1,12 @@ +import { defineBuildConfig } from 'unbuild' + +// pnpm exec unbuild + +export default defineBuildConfig({ + entries: ['src/index'], + clean: true, + declaration: true, + rollup: { + emitCJS: true, + }, +}) diff --git a/bun.lock b/bun.lock deleted file mode 100644 index 6808665..0000000 --- a/bun.lock +++ /dev/null @@ -1,54 +0,0 @@ -{ - "lockfileVersion": 1, - "workspaces": { - "": { - "name": "p-comuns", - "dependencies": { - "cross-fetch": "4.1.0", - "zod": "3.24.1", - }, - "devDependencies": { - "@biomejs/biome": "2.0.6", - "@types/node": "^20.19.8", - "typescript": "^5.8.3", - }, - }, - }, - "packages": { - "@biomejs/biome": ["@biomejs/biome@2.0.6", "", { "optionalDependencies": { "@biomejs/cli-darwin-arm64": "2.0.6", "@biomejs/cli-darwin-x64": "2.0.6", "@biomejs/cli-linux-arm64": "2.0.6", "@biomejs/cli-linux-arm64-musl": "2.0.6", "@biomejs/cli-linux-x64": "2.0.6", "@biomejs/cli-linux-x64-musl": "2.0.6", "@biomejs/cli-win32-arm64": "2.0.6", "@biomejs/cli-win32-x64": "2.0.6" }, "bin": { "biome": "bin/biome" } }, "sha512-RRP+9cdh5qwe2t0gORwXaa27oTOiQRQvrFf49x2PA1tnpsyU7FIHX4ZOFMtBC4QNtyWsN7Dqkf5EDbg4X+9iqA=="], - - "@biomejs/cli-darwin-arm64": ["@biomejs/cli-darwin-arm64@2.0.6", "", { "os": "darwin", "cpu": "arm64" }, "sha512-AzdiNNjNzsE6LfqWyBvcL29uWoIuZUkndu+wwlXW13EKcBHbbKjNQEZIJKYDc6IL+p7bmWGx3v9ZtcRyIoIz5A=="], - - "@biomejs/cli-darwin-x64": ["@biomejs/cli-darwin-x64@2.0.6", "", { "os": "darwin", "cpu": "x64" }, "sha512-wJjjP4E7bO4WJmiQaLnsdXMa516dbtC6542qeRkyJg0MqMXP0fvs4gdsHhZ7p9XWTAmGIjZHFKXdsjBvKGIJJQ=="], - - "@biomejs/cli-linux-arm64": ["@biomejs/cli-linux-arm64@2.0.6", "", { "os": "linux", "cpu": "arm64" }, "sha512-ZSVf6TYo5rNMUHIW1tww+rs/krol7U5A1Is/yzWyHVZguuB0lBnIodqyFuwCNqG9aJGyk7xIMS8HG0qGUPz0SA=="], - - "@biomejs/cli-linux-arm64-musl": ["@biomejs/cli-linux-arm64-musl@2.0.6", "", { "os": "linux", "cpu": "arm64" }, "sha512-CVPEMlin3bW49sBqLBg2x016Pws7eUXA27XYDFlEtponD0luYjg2zQaMJ2nOqlkKG9fqzzkamdYxHdMDc2gZFw=="], - - "@biomejs/cli-linux-x64": ["@biomejs/cli-linux-x64@2.0.6", "", { "os": "linux", "cpu": "x64" }, "sha512-geM1MkHTV1Kh2Cs/Xzot9BOF3WBacihw6bkEmxkz4nSga8B9/hWy5BDiOG3gHDGIBa8WxT0nzsJs2f/hPqQIQw=="], - - "@biomejs/cli-linux-x64-musl": ["@biomejs/cli-linux-x64-musl@2.0.6", "", { "os": "linux", "cpu": "x64" }, "sha512-mKHE/e954hR/hSnAcJSjkf4xGqZc/53Kh39HVW1EgO5iFi0JutTN07TSjEMg616julRtfSNJi0KNyxvc30Y4rQ=="], - - "@biomejs/cli-win32-arm64": ["@biomejs/cli-win32-arm64@2.0.6", "", { "os": "win32", "cpu": "arm64" }, "sha512-290V4oSFoKaprKE1zkYVsDfAdn0An5DowZ+GIABgjoq1ndhvNxkJcpxPsiYtT7slbVe3xmlT0ncdfOsN7KruzA=="], - - "@biomejs/cli-win32-x64": ["@biomejs/cli-win32-x64@2.0.6", "", { "os": "win32", "cpu": "x64" }, "sha512-bfM1Bce0d69Ao7pjTjUS+AWSZ02+5UHdiAP85Th8e9yV5xzw6JrHXbL5YWlcEKQ84FIZMdDc7ncuti1wd2sdbw=="], - - "@types/node": ["@types/node@20.19.8", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-HzbgCY53T6bfu4tT7Aq3TvViJyHjLjPNaAS3HOuMc9pw97KHsUtXNX4L+wu59g1WnjsZSko35MbEqnO58rihhw=="], - - "cross-fetch": ["cross-fetch@4.1.0", "", { "dependencies": { "node-fetch": "^2.7.0" } }, "sha512-uKm5PU+MHTootlWEY+mZ4vvXoCn4fLQxT9dSc1sXVMSFkINTJVN8cAQROpwcKm8bJ/c7rgZVIBWzH5T78sNZZw=="], - - "node-fetch": ["node-fetch@2.7.0", "", { "dependencies": { "whatwg-url": "^5.0.0" }, "peerDependencies": { "encoding": "^0.1.0" }, "optionalPeers": ["encoding"] }, "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A=="], - - "tr46": ["tr46@0.0.3", "", {}, "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="], - - "typescript": ["typescript@5.8.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ=="], - - "undici-types": ["undici-types@6.21.0", "", {}, "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ=="], - - "webidl-conversions": ["webidl-conversions@3.0.1", "", {}, "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="], - - "whatwg-url": ["whatwg-url@5.0.0", "", { "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" } }, "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw=="], - - "zod": ["zod@3.24.1", "", {}, "sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A=="], - } -} diff --git a/dist-back/aleatorio.js b/dist-back/aleatorio.js new file mode 100644 index 0000000..1566283 --- /dev/null +++ b/dist-back/aleatorio.js @@ -0,0 +1,29 @@ +"use strict"; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +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 __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); +var aleatorio_exports = {}; +__export(aleatorio_exports, { + aleatorio: () => aleatorio +}); +module.exports = __toCommonJS(aleatorio_exports); +const alfabeto = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".split(""); +const aleatorio = (tamanho) => `eli-${Array.from({ length: tamanho || 8 }).map(() => alfabeto[(999 * Math.random() | 0) % alfabeto.length]).join("")}`; +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + aleatorio +}); diff --git a/dist-back/cacheMemoria.js b/dist-back/cacheMemoria.js new file mode 100644 index 0000000..7c004f4 --- /dev/null +++ b/dist-back/cacheMemoria.js @@ -0,0 +1,53 @@ +"use strict"; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +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 __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); +var cacheMemoria_exports = {}; +__export(cacheMemoria_exports, { + cacheM: () => cacheM, + cacheMFixo: () => cacheMFixo, + cacheMemoria: () => cacheMemoria, + verCacheM: () => verCacheM +}); +module.exports = __toCommonJS(cacheMemoria_exports); +const _cache = {}; +globalThis.cacheMemoria_cache = _cache; +const cacheM = (chave, valor, validadeSeg) => { + const txChave = typeof chave == "string" ? chave : typeof chave == "number" ? String(chave) : encodeURIComponent(JSON.stringify(chave)); + const validade = validadeSeg && (/* @__PURE__ */ new Date()).getTime() + validadeSeg * 1e3; + if (valor !== void 0) { + _cache[txChave] = { + valor, + validade + }; + } + const busca = _cache[txChave]; + if (busca?.validade && busca.validade < (/* @__PURE__ */ new Date()).getTime()) { + return void 0; + } + return busca?.valor; +}; +const verCacheM = () => _cache; +const cacheMemoria = cacheM; +const cacheMFixo = (chave) => (valor) => cacheM(chave, valor); +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + cacheM, + cacheMFixo, + cacheMemoria, + verCacheM +}); diff --git a/dist-back/constantes.js b/dist-back/constantes.js new file mode 100644 index 0000000..4671769 --- /dev/null +++ b/dist-back/constantes.js @@ -0,0 +1,53 @@ +"use strict"; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +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 __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); +var constantes_exports = {}; +__export(constantes_exports, { + camposComuns: () => camposComuns, + tipoUsuarioResiduos: () => tipoUsuarioResiduos, + tx: () => tx, + uuid_null: () => uuid_null +}); +module.exports = __toCommonJS(constantes_exports); +const uuid_null = "00000000-0000-0000-0000-000000000000"; +var camposComuns = /* @__PURE__ */ ((camposComuns2) => { + camposComuns2["codigo"] = "codigo"; + camposComuns2["excluido"] = "excluido"; + camposComuns2["data_hora_criacao"] = "data_hora_criacao"; + camposComuns2["data_hora_atualizacao"] = "data_hora_atualizacao"; + camposComuns2["codigo_usuario_criacao"] = "codigo_usuario_criacao"; + camposComuns2["codigo_usuario_atualizacao"] = "codigo_usuario_atualizacao"; + camposComuns2["versao"] = "versao"; + return camposComuns2; +})(camposComuns || {}); +var tx = /* @__PURE__ */ ((tx2) => { + tx2["token"] = "token"; + return tx2; +})(tx || {}); +var tipoUsuarioResiduos = /* @__PURE__ */ ((tipoUsuarioResiduos2) => { + tipoUsuarioResiduos2["Usuario"] = "usuario"; + tipoUsuarioResiduos2["Fornecedor"] = "fornecedor"; + return tipoUsuarioResiduos2; +})(tipoUsuarioResiduos || {}); +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + camposComuns, + tipoUsuarioResiduos, + tx, + uuid_null +}); diff --git a/dist-back/consulta.js b/dist-back/consulta.js new file mode 100644 index 0000000..e3b422c --- /dev/null +++ b/dist-back/consulta.js @@ -0,0 +1,71 @@ +"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 consulta_exports = {}; +__export(consulta_exports, { + operadores: () => operadores, + zFiltro: () => zFiltro, + zOperadores: () => zOperadores +}); +module.exports = __toCommonJS(consulta_exports); +var import_zod = __toESM(require("zod")); +var operadores = /* @__PURE__ */ ((operadores2) => { + operadores2["="] = "="; + operadores2["!="] = "!="; + operadores2[">"] = ">"; + operadores2[">="] = ">="; + operadores2["<"] = "<"; + operadores2["<="] = "<="; + operadores2["like"] = "like"; + operadores2["in"] = "in"; + operadores2["isNull"] = "isNull"; + return operadores2; +})(operadores || {}); +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(), + operador: zOperadores, + ou: import_zod.default.boolean().optional() +}); +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + operadores, + zFiltro, + zOperadores +}); diff --git a/dist-back/dayjs.js b/dist-back/dayjs.js new file mode 100644 index 0000000..13f4663 --- /dev/null +++ b/dist-back/dayjs.js @@ -0,0 +1,57 @@ +"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, { + dayjsbr: () => dayjsbr +}); +module.exports = __toCommonJS(dayjs_exports); +var import_dayjs = __toESM(require("dayjs")); +var import_duration = __toESM(require("dayjs/plugin/duration.js")); +var import_isSameOrAfter = __toESM(require("dayjs/plugin/isSameOrAfter.js")); +var import_isSameOrBefore = __toESM(require("dayjs/plugin/isSameOrBefore.js")); +var import_minMax = __toESM(require("dayjs/plugin/minMax.js")); +var import_relativeTime = __toESM(require("dayjs/plugin/relativeTime.js")); +var import_timezone = __toESM(require("dayjs/plugin/timezone.js")); +var import_utc = __toESM(require("dayjs/plugin/utc.js")); +var import_weekOfYear = __toESM(require("dayjs/plugin/weekOfYear.js")); +var import_pt_br = require("dayjs/locale/pt-br.js"); +import_dayjs.default.locale("pt-br"); +import_dayjs.default.extend(import_utc.default); +import_dayjs.default.extend(import_timezone.default); +import_dayjs.default.extend(import_weekOfYear.default); +import_dayjs.default.extend(import_isSameOrBefore.default); +import_dayjs.default.extend(import_isSameOrAfter.default); +import_dayjs.default.extend(import_minMax.default); +import_dayjs.default.extend(import_relativeTime.default); +import_dayjs.default.extend(import_duration.default); +const dayjsbr = import_dayjs.default; +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + dayjsbr +}); diff --git a/dist-back/ecosistema/index.js b/dist-back/ecosistema/index.js new file mode 100644 index 0000000..fc9ce97 --- /dev/null +++ b/dist-back/ecosistema/index.js @@ -0,0 +1,22 @@ +"use strict"; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +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 __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default")); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); +var ecosistema_exports = {}; +module.exports = __toCommonJS(ecosistema_exports); +__reExport(ecosistema_exports, require("./urls"), module.exports); +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + ...require("./urls") +}); diff --git a/dist-back/ecosistema/urls.js b/dist-back/ecosistema/urls.js new file mode 100644 index 0000000..e63a7bd --- /dev/null +++ b/dist-back/ecosistema/urls.js @@ -0,0 +1,28 @@ +"use strict"; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +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 __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); +var urls_exports = {}; +__export(urls_exports, { + cdn_carro_de_boi: () => cdn_carro_de_boi +}); +module.exports = __toCommonJS(urls_exports); +const cdn_carro_de_boi = "https://carro-de-boi-idz-one.b-cdn.net"; +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + cdn_carro_de_boi +}); diff --git a/dist-back/extensoes.js b/dist-back/extensoes.js new file mode 100644 index 0000000..3f49f81 --- /dev/null +++ b/dist-back/extensoes.js @@ -0,0 +1,186 @@ +"use strict"; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +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 __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); +var extensoes_exports = {}; +__export(extensoes_exports, { + extensoes: () => extensoes, + tipoArquivo: () => tipoArquivo +}); +module.exports = __toCommonJS(extensoes_exports); +const extensoes = [ + { + ext: "gif", + tipo: "imagem", + mime: "image/gif" + }, + { + ext: "jpg", + tipo: "imagem", + mime: "image/jpeg" + }, + { + ext: "jpeg", + tipo: "imagem", + mime: "image/jpeg" + }, + { + ext: "png", + tipo: "imagem", + mime: "image/png" + }, + { + ext: "bmp", + tipo: "imagem", + mime: "image/bmp" + }, + { + ext: "webp", + tipo: "imagem", + mime: "image/webp" + }, + { + ext: "tiff", + tipo: "imagem", + mime: "image/tiff" + }, + { + ext: "svg", + tipo: "imagem", + mime: "image/svg+xml" + }, + { + ext: "ico", + tipo: "imagem", + mime: "image/x-icon" + }, + { + ext: "pdf", + tipo: "documento", + mime: "application/pdf" + }, + { + ext: "doc", + tipo: "documento", + mime: "application/msword" + }, + { + ext: "docx", + tipo: "documento", + mime: "application/vnd.openxmlformats-officedocument.wordprocessingml.document" + }, + { + ext: "xls", + tipo: "documento", + mime: "application/vnd.ms-excel" + }, + { + ext: "xlsx", + tipo: "documento", + mime: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" + }, + { + ext: "ppt", + tipo: "documento", + mime: "application/vnd.ms-powerpoint" + }, + { + ext: "pptx", + tipo: "documento", + mime: "application/vnd.openxmlformats-officedocument.presentationml.presentation" + }, + { + ext: "txt", + tipo: "documento", + mime: "text/plain" + }, + { + ext: "odt", + tipo: "documento", + mime: "application/vnd.oasis.opendocument.text" + }, + { + ext: "ods", + tipo: "documento", + mime: "application/vnd.oasis.opendocument.spreadsheet" + }, + { + ext: "rtf", + tipo: "documento", + mime: "application/rtf" + }, + { + ext: "csv", + tipo: "documento", + mime: "text/csv" + }, + { + ext: "mp4", + tipo: "v\xEDdeo", + mime: "video/mp4" + }, + { + ext: "avi", + tipo: "v\xEDdeo", + mime: "video/x-msvideo" + }, + { + ext: "mkv", + tipo: "v\xEDdeo", + mime: "video/x-matroska" + }, + { + ext: "mov", + tipo: "v\xEDdeo", + mime: "video/quicktime" + }, + { + ext: "wmv", + tipo: "v\xEDdeo", + mime: "video/x-ms-wmv" + }, + { + ext: "flv", + tipo: "v\xEDdeo", + mime: "video/x-flv" + }, + { + ext: "webm", + tipo: "v\xEDdeo", + mime: "video/webm" + }, + { + ext: "3gp", + tipo: "v\xEDdeo", + mime: "video/3gpp" + }, + { + ext: "mpeg", + tipo: "v\xEDdeo", + mime: "video/mpeg" + } +]; +const tipoArquivo = (nomeArquivo) => { + const extArquivo = String(nomeArquivo || "").toLocaleLowerCase().split(".").pop(); + const extensao = extensoes.find((extensao2) => extensao2.ext === extArquivo); + return extensao?.tipo || "outros"; +}; +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + extensoes, + tipoArquivo +}); diff --git a/dist-back/index.js b/dist-back/index.js new file mode 100644 index 0000000..984f76c --- /dev/null +++ b/dist-back/index.js @@ -0,0 +1,60 @@ +"use strict"; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +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 __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default")); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); +var index_exports = {}; +module.exports = __toCommonJS(index_exports); +__reExport(index_exports, require("./aleatorio"), module.exports); +__reExport(index_exports, require("./cacheMemoria"), module.exports); +__reExport(index_exports, require("./constantes"), module.exports); +__reExport(index_exports, require("./consulta"), module.exports); +__reExport(index_exports, require("./dayjs"), module.exports); +__reExport(index_exports, require("./ecosistema"), module.exports); +__reExport(index_exports, require("./extensoes"), module.exports); +__reExport(index_exports, require("./extensoes"), module.exports); +__reExport(index_exports, require("./local"), module.exports); +__reExport(index_exports, require("./logger"), module.exports); +__reExport(index_exports, require("./logger"), module.exports); +__reExport(index_exports, require("./postgres"), module.exports); +__reExport(index_exports, require("./produtos"), module.exports); +__reExport(index_exports, require("./testes-de-variaveis"), module.exports); +__reExport(index_exports, require("./texto_busca"), module.exports); +__reExport(index_exports, require("./tipagemRotas"), module.exports); +__reExport(index_exports, require("./tipagemRotas"), module.exports); +__reExport(index_exports, require("./unidades_medida"), module.exports); +__reExport(index_exports, require("./uuid"), module.exports); +__reExport(index_exports, require("./variaveisComuns"), module.exports); +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + ...require("./aleatorio"), + ...require("./cacheMemoria"), + ...require("./constantes"), + ...require("./consulta"), + ...require("./dayjs"), + ...require("./ecosistema"), + ...require("./extensoes"), + ...require("./extensoes"), + ...require("./local"), + ...require("./logger"), + ...require("./logger"), + ...require("./postgres"), + ...require("./produtos"), + ...require("./testes-de-variaveis"), + ...require("./texto_busca"), + ...require("./tipagemRotas"), + ...require("./tipagemRotas"), + ...require("./unidades_medida"), + ...require("./uuid"), + ...require("./variaveisComuns") +}); diff --git a/dist-back/instalarAmbiente.js b/dist-back/instalarAmbiente.js new file mode 100644 index 0000000..d31e0a5 --- /dev/null +++ b/dist-back/instalarAmbiente.js @@ -0,0 +1,63 @@ +"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 __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 import_node_fs = __toESM(require("node:fs")); +var import_node_path = __toESM(require("node:path")); +const mesclar = (entrada, novo) => { + const saida = { ...entrada || {} }; + for (const [k, v] of Object.entries(novo)) { + if (v && typeof v === "object" && !Array.isArray(v)) { + saida[k] = mesclar(saida[k], v); + } else { + saida[k] = v; + } + } + return saida; +}; +const abrirJson = (caminho) => { + try { + return JSON.parse(import_node_fs.default.readFileSync(caminho, "utf-8")); + } catch { + return {}; + } +}; +const settings_json = { + "editor.defaultFormatter": "biomejs.biome", + "[javascript]": { "editor.defaultFormatter": "biomejs.biome" }, + "[javascriptreact]": { "editor.defaultFormatter": "biomejs.biome" }, + "[typescript]": { "editor.defaultFormatter": "biomejs.biome" }, + "[typescriptreact]": { "editor.defaultFormatter": "biomejs.biome" }, + "[json]": { "editor.defaultFormatter": "biomejs.biome" }, + "[jsonc]": { "editor.defaultFormatter": "biomejs.biome" }, + "[vue]": { "editor.defaultFormatter": "esbenp.prettier-vscode" }, + "editor.codeActionsOnSave": { + "source.organizeImports.biome": "always", + "source.fixAll.biome": "always" + } +}; +const caminhoSeting = import_node_path.default.join(process.cwd(), ".vscode/settings.json"); +import_node_fs.default.mkdirSync(import_node_path.default.dirname(caminhoSeting), { recursive: true }); +const atual = abrirJson(caminhoSeting); +const final = mesclar(atual, settings_json); +import_node_fs.default.writeFileSync(caminhoSeting, JSON.stringify(final, null, 2), "utf8"); +console.log(`\u2705 Configura\xE7\xF5es salvas em ${caminhoSeting}`); diff --git a/dist-back/local/index.js b/dist-back/local/index.js new file mode 100644 index 0000000..4b0c95a --- /dev/null +++ b/dist-back/local/index.js @@ -0,0 +1,46 @@ +"use strict"; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +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 __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); +var local_exports = {}; +__export(local_exports, { + localValor: () => localValor +}); +module.exports = __toCommonJS(local_exports); +const localValor = (chave_, valor) => { + const localStorage = globalThis.localStorage; + if (typeof localStorage == "undefined") return null; + const chave = typeof chave_ === "string" ? chave_ : encodeURIComponent(JSON.stringify(chave_)); + try { + if (valor !== void 0) { + localStorage.setItem(chave, JSON.stringify(valor)); + } + const v2 = localStorage.getItem(chave); + if (v2 === null) return null; + try { + return JSON.parse(v2); + } catch { + return v2; + } + } catch { + return null; + } +}; +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + localValor +}); diff --git a/dist-back/logger.js b/dist-back/logger.js new file mode 100644 index 0000000..8f5983c --- /dev/null +++ b/dist-back/logger.js @@ -0,0 +1,106 @@ +"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 logger_exports = {}; +__export(logger_exports, { + defineCwd: () => defineCwd, + logger: () => logger, + postLogger: () => postLogger +}); +module.exports = __toCommonJS(logger_exports); +var import_cross_fetch = __toESM(require("cross-fetch")); +var import_variaveisComuns = require("./variaveisComuns"); +const LOKI_BASE_URL = "https://log.idz.one"; +const LOKI_ENDPOINT = "/loki/api/v1/push"; +const postLogger = async ({ + objeto +}) => { + const response = await (0, import_cross_fetch.default)(`${LOKI_BASE_URL}${LOKI_ENDPOINT}`, { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify(objeto) + }).catch((a) => a); + if (!response.ok) { + return [objeto, `Erro ${response.status}: ${await response?.text?.()}`]; + } + return [objeto]; +}; +let cwd = ""; +const defineCwd = (novoCwd) => { + cwd = novoCwd; +}; +const logger = ({ app: app_e, eProducao, parametros: parametrosAmbiente }) => ({ inquilino, usuario, parametros: parametrosSessao }) => async (level, mensagem, op_tipoLog) => { + let { + __filename, + detalhes, + local, + parametros: parametrosLog + } = op_tipoLog || {}; + const app = `${eProducao ? "" : "DEV-"}${app_e}`; + if (cwd && __filename) { + __filename = __filename.replace(cwd, ""); + } + if (local) { + detalhes = [`${(0, import_variaveisComuns.nomeVariavel)({ local })}="${local}"`, ...detalhes || []]; + } + if (__filename) { + detalhes = [ + `${(0, import_variaveisComuns.nomeVariavel)({ __filename })}="${__filename}"`, + ...detalhes || [] + ]; + } + const timestamp = `${Date.now()}000000`; + const mainLog = detalhes?.length ? `${mensagem} | ${detalhes.map((d) => JSON.stringify(d)).join(" | ")}` : mensagem; + const payload = { + stream: { + app, + inquilino, + usuario, + level, + ...parametrosAmbiente || {}, + ...parametrosSessao || {}, + ...parametrosLog || {} + }, + values: [ + [ + timestamp, + mainLog + // Linha de log direta + ] + ] + }; + const objeto = { streams: [payload] }; + const response = await postLogger({ objeto }); + return response; +}; +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + defineCwd, + logger, + postLogger +}); diff --git a/dist-back/postgres.js b/dist-back/postgres.js new file mode 100644 index 0000000..62a7d6b --- /dev/null +++ b/dist-back/postgres.js @@ -0,0 +1,47 @@ +"use strict"; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +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 __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); +var postgres_exports = {}; +__export(postgres_exports, { + objetoPg: () => objetoPg, + paraObjetoRegistroPg: () => paraObjetoRegistroPg, + pgObjeto: () => pgObjeto +}); +module.exports = __toCommonJS(postgres_exports); +const paraObjetoRegistroPg = (entrada) => { + try { + return Object.fromEntries( + Object.entries(entrada).map(([k, v]) => [ + k, + v === void 0 || v == null ? v : typeof v == "string" || typeof v == "number" || typeof v == "boolean" ? v : JSON.stringify(v, null, 2) + ]) + ); + } catch (error) { + throw new Error( + `Erro na fun\xE7\xE3o paraObjetoRegistroPg: ${error.message} ${error.stack}` + ); + } +}; +const pgObjeto = paraObjetoRegistroPg; +const objetoPg = paraObjetoRegistroPg; +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + objetoPg, + paraObjetoRegistroPg, + pgObjeto +}); diff --git a/dist-back/produtos.js b/dist-back/produtos.js new file mode 100644 index 0000000..e6bd639 --- /dev/null +++ b/dist-back/produtos.js @@ -0,0 +1,32 @@ +"use strict"; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +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 __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); +var produtos_exports = {}; +__export(produtos_exports, { + Produtos: () => Produtos +}); +module.exports = __toCommonJS(produtos_exports); +var Produtos = /* @__PURE__ */ ((Produtos2) => { + Produtos2["e-licencie"] = "e-licencie"; + Produtos2["gov.e-licencie"] = "gov.e-licencie"; + return Produtos2; +})(Produtos || {}); +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + Produtos +}); diff --git a/dist-back/teste.js b/dist-back/teste.js new file mode 100644 index 0000000..c2d0e9c --- /dev/null +++ b/dist-back/teste.js @@ -0,0 +1,6 @@ +"use strict"; +var import_cacheMemoria = require("./cacheMemoria"); +var import_texto_busca = require("./texto_busca"); +console.log("Vari\xE1veis funcionando", import_texto_busca.texto_busca); +(0, import_cacheMemoria.cacheM)(1, { Jaca: Promise.resolve() }); +console.log("cache:", (0, import_cacheMemoria.cacheM)(1)); diff --git a/dist-back/testes-de-variaveis/index.js b/dist-back/testes-de-variaveis/index.js new file mode 100644 index 0000000..6263622 --- /dev/null +++ b/dist-back/testes-de-variaveis/index.js @@ -0,0 +1,24 @@ +"use strict"; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +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 __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default")); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); +var testes_de_variaveis_exports = {}; +module.exports = __toCommonJS(testes_de_variaveis_exports); +__reExport(testes_de_variaveis_exports, require("./umaFuncao"), module.exports); +__reExport(testes_de_variaveis_exports, require("./umaVariavel"), module.exports); +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + ...require("./umaFuncao"), + ...require("./umaVariavel") +}); diff --git a/dist-back/testes-de-variaveis/umaFuncao.js b/dist-back/testes-de-variaveis/umaFuncao.js new file mode 100644 index 0000000..c1d2b86 --- /dev/null +++ b/dist-back/testes-de-variaveis/umaFuncao.js @@ -0,0 +1,28 @@ +"use strict"; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +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 __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); +var umaFuncao_exports = {}; +__export(umaFuncao_exports, { + umaFuncao: () => umaFuncao +}); +module.exports = __toCommonJS(umaFuncao_exports); +const umaFuncao = () => "Ol\xE1 Mundo! (fun\xE7\xE3o)"; +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + umaFuncao +}); diff --git a/dist-back/testes-de-variaveis/umaVariavel.js b/dist-back/testes-de-variaveis/umaVariavel.js new file mode 100644 index 0000000..6560bb5 --- /dev/null +++ b/dist-back/testes-de-variaveis/umaVariavel.js @@ -0,0 +1,28 @@ +"use strict"; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +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 __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); +var umaVariavel_exports = {}; +__export(umaVariavel_exports, { + umaVariavel: () => umaVariavel +}); +module.exports = __toCommonJS(umaVariavel_exports); +const umaVariavel = "Ol\xE1 Mundo! (vari\xE1vel)"; +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + umaVariavel +}); diff --git a/dist-back/testes/TipagemRotas.test.js b/dist-back/testes/TipagemRotas.test.js new file mode 100644 index 0000000..49b4bbb --- /dev/null +++ b/dist-back/testes/TipagemRotas.test.js @@ -0,0 +1,22 @@ +"use strict"; +var import_vitest = require("vitest"); +var import_tipagemRotas = require("../tipagemRotas"); +(0, import_vitest.describe)("TipagemRotas", () => { + (0, import_vitest.it)("deve montar _partesCaminho a partir de string ou array, normalizando barras", () => { + const r1 = new import_tipagemRotas.TipagemRotas({ caminho: "aplicacao/func" }); + (0, import_vitest.expect)(r1.caminho).toBe("/aplicacao/func"); + const r2 = new import_tipagemRotas.TipagemRotas({ + caminho: ["aplicacao", "func"] + }); + (0, import_vitest.expect)(r2.caminho).toBe("/aplicacao/func"); + const r3 = new import_tipagemRotas.TipagemRotas({ caminho: "/a//b///c/" }); + (0, import_vitest.expect)(r3.caminho).toBe("/a/b/c"); + }); + (0, import_vitest.it)("Valores de entrada com mesmo valor dos valores de sa\xEDda", () => { + const r1 = new import_tipagemRotas.TipagemRotas({ caminho: "aplicacao/func" }); + const objetoEntrada = { idade: 21, nome: "Jo\xE3o" }; + const rota = r1.endereco(objetoEntrada); + const parametros = r1.parametros(rota); + (0, import_vitest.expect)(parametros.nome).toBe(objetoEntrada.nome); + }); +}); diff --git a/dist-back/texto_busca.js b/dist-back/texto_busca.js new file mode 100644 index 0000000..3d0ec36 --- /dev/null +++ b/dist-back/texto_busca.js @@ -0,0 +1,30 @@ +"use strict"; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +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 __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); +var texto_busca_exports = {}; +__export(texto_busca_exports, { + texto_busca: () => texto_busca +}); +module.exports = __toCommonJS(texto_busca_exports); +const texto_busca = (...texto) => texto.map( + (txt) => txt === null || txt === void 0 ? "" : String(txt).normalize("NFD").replace(/[\u0300-\u036f]/g, "").replace(/\s+/g, " ").toLowerCase() +).join(" "); +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + texto_busca +}); diff --git a/dist-back/tipagemRotas.js b/dist-back/tipagemRotas.js new file mode 100644 index 0000000..05c4f5b --- /dev/null +++ b/dist-back/tipagemRotas.js @@ -0,0 +1,118 @@ +"use strict"; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +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 __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); +var tipagemRotas_exports = {}; +__export(tipagemRotas_exports, { + TipagemRotas: () => TipagemRotas +}); +module.exports = __toCommonJS(tipagemRotas_exports); +class TipagemRotas { + /** Ao criar novo obijeto de tipagem de rota é necessário passar o caminho parcial + ** export const mCaminho = new TipagemRotas<{q:string}>("aplicacao","funcionalidade") + */ + constructor({ + caminho, + acaoIr, + rotulo + }) { + this._partesCaminho = []; + this._acaoIr = acaoIr; + this._partesCaminho = (Array.isArray(caminho) ? caminho : [caminho]).filter(Boolean).map((a) => String(a)).flatMap((a) => a.split("/")).filter(Boolean); + this.rotulo = rotulo; + } + /** Retorna o caminho completo da rota + ** console.log(mCaminho.caminho) + ** "/caminho" + */ + get caminho() { + const ret = `/${this._partesCaminho.join("/")}`; + return ret; + } + /** Define o caminho completo da rota + ** mCaminho.caminho = "/novoCaminho" + ** console.log(mCaminho.caminho) + ** "/novoCaminho" + ** */ + set caminho(caminhoParcial) { + this._partesCaminho = caminhoParcial.split("/").filter((parte) => parte); + } + /** Retorna o caminho completo da rota com a query + ** console.log(mCaminho.resolve({q:"query"})) + ** "http://localhost:3000/caminho?q=query" + */ + endereco(query, usarComoHash) { + const url = new URL( + typeof window !== "undefined" ? window.location.href : "http://localhost" + ); + url.pathname = this.caminho; + url.search = ""; + const queryKeys = Object.entries(query); + for (const [key, value] of queryKeys) { + url.searchParams.set(String(key), JSON.stringify(value)); + } + url.hash = ""; + if (usarComoHash) { + url.hash = `#${url.search}`; + url.search = ""; + } + return url.href; + } + /** Vai para a url + ** mCaminho.ir({q:"query"}) + ** window.location.href = "http://localhost:3000/caminho?q=query" + */ + ir(query) { + if (this._acaoIr) { + this._acaoIr(this.endereco({ ...query })); + } else { + if (typeof window != "undefined") { + window.location.href = this.endereco({ ...query }); + } + } + } + /** Retorna os parametros da url + ** console.log(mCaminho.parametros()) + ** {q:"query"} + */ + parametros(urlEntrada) { + const url = urlEntrada ? new URL(urlEntrada) : new URL( + typeof window !== "undefined" ? window.location.href : "http://localhost" + ); + const query = url.searchParams; + let queryObj = Object.fromEntries(query.entries()); + const hash = url.hash; + if (hash) { + const hashObj = Object.fromEntries( + new URLSearchParams(hash.slice(1)).entries() + ); + queryObj = { ...queryObj, ...hashObj }; + } + for (const chave in queryObj) { + try { + queryObj[chave] = JSON.parse(queryObj[chave]); + } catch { + console.log(`[${chave}|${queryObj[chave]}] n\xE3o \xE9 um json v\xE1lido.`); + } + } + return queryObj; + } +} +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + TipagemRotas +}); diff --git a/dist-back/unidades_medida.js b/dist-back/unidades_medida.js new file mode 100644 index 0000000..1d9b95a --- /dev/null +++ b/dist-back/unidades_medida.js @@ -0,0 +1,82 @@ +"use strict"; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +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 __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); +var unidades_medida_exports = {}; +__export(unidades_medida_exports, { + siglas_unidades_medida: () => siglas_unidades_medida, + unidades_medida: () => unidades_medida +}); +module.exports = __toCommonJS(unidades_medida_exports); +var siglas_unidades_medida = /* @__PURE__ */ ((siglas_unidades_medida2) => { + siglas_unidades_medida2["UN"] = "UN"; + siglas_unidades_medida2["KG"] = "KG"; + siglas_unidades_medida2["TON"] = "TON"; + siglas_unidades_medida2["g"] = "g"; + siglas_unidades_medida2["M\xB3"] = "M\xB3"; + siglas_unidades_medida2["Lt"] = "Lt"; + return siglas_unidades_medida2; +})(siglas_unidades_medida || {}); +const unidades_medida = [ + { + sigla_unidade: "KG", + nome: "Quilograma", + sigla_normalizada: "KG", + normalizar: (valor) => valor, + tipo: "massa" + }, + { + sigla_unidade: "g", + nome: "Grama", + sigla_normalizada: "KG", + normalizar: (valor) => valor / 1e3, + tipo: "massa" + }, + { + sigla_unidade: "TON", + nome: "Tonelada", + sigla_normalizada: "KG", + normalizar: (valor) => valor * 1e3, + tipo: "massa" + }, + { + sigla_unidade: "Lt", + nome: "Litro", + sigla_normalizada: "Lt", + normalizar: (valor) => valor, + tipo: "volume" + }, + { + sigla_unidade: "M\xB3", + nome: "Metro C\xFAbico", + sigla_normalizada: "Lt", + normalizar: (valor) => valor * 1e3, + tipo: "volume" + }, + { + sigla_unidade: "UN", + nome: "Unidade", + sigla_normalizada: "UN", + normalizar: (valor) => valor, + tipo: "unidade" + } +]; +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + siglas_unidades_medida, + unidades_medida +}); diff --git a/dist-back/uuid.js b/dist-back/uuid.js new file mode 100644 index 0000000..6d8dfc0 --- /dev/null +++ b/dist-back/uuid.js @@ -0,0 +1,51 @@ +"use strict"; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +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 __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); +var uuid_exports = {}; +__export(uuid_exports, { + erUuid: () => erUuid, + uuid: () => uuid, + uuidV3: () => uuidV3, + uuidV4: () => uuidV4, + validarUuid: () => validarUuid +}); +module.exports = __toCommonJS(uuid_exports); +var import_uuid = require("uuid"); +const erUuid = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i; +const validarUuid = (uuid2) => { + const retorno = erUuid.test(String(uuid2 || "")); + return retorno; +}; +const uuidV3 = (chave, grupo) => { + return (0, import_uuid.v3)( + // Converte a chave para string (de forma segura) + typeof chave === "string" ? chave : typeof chave === "number" ? String(chave) : JSON.stringify(chave), + // Se um grupo foi fornecido, gera um UUID v3 recursivamente com base nele, senão usa NIL + grupo ? uuidV3(grupo) : import_uuid.NIL + ); +}; +const uuidV4 = import_uuid.v4; +const uuid = uuidV4; +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + erUuid, + uuid, + uuidV3, + uuidV4, + validarUuid +}); diff --git a/dist-back/variaveisComuns.js b/dist-back/variaveisComuns.js new file mode 100644 index 0000000..8f40e1d --- /dev/null +++ b/dist-back/variaveisComuns.js @@ -0,0 +1,33 @@ +"use strict"; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +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 __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); +var variaveisComuns_exports = {}; +__export(variaveisComuns_exports, { + esperar: () => esperar, + nomeVariavel: () => nomeVariavel +}); +module.exports = __toCommonJS(variaveisComuns_exports); +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 = { + esperar, + nomeVariavel +}); diff --git a/dist-front/index.d.mts b/dist-front/index.d.mts new file mode 100644 index 0000000..3dff837 --- /dev/null +++ b/dist-front/index.d.mts @@ -0,0 +1,315 @@ +import z from 'zod'; +import dayjs from 'dayjs'; +export { Dayjs, ManipulateType } from 'dayjs'; +import { v4 } from 'uuid'; + +declare const aleatorio: (tamanho?: number) => string; + +/** gerar uma função de cache para uso em memoria */ +declare const cacheM: (chave: any, valor?: T, validadeSeg?: number) => T | undefined; +declare const verCacheM: () => { + [k: string]: { + /** new Date().getTime() */ + validade?: number | undefined; + valor: any; + } | undefined; +}; +declare const cacheMemoria: (chave: any, valor?: T, validadeSeg?: number) => T | undefined; +/** para uso fixo dentro de uma função, trava a chave */ +declare const cacheMFixo: (chave: any) => (valor?: T) => T | undefined; + +declare const uuid_null = "00000000-0000-0000-0000-000000000000"; +/** Colunas Presentes n maioria das tabelas */ +declare enum camposComuns { + codigo = "codigo", + excluido = "excluido", + data_hora_criacao = "data_hora_criacao", + data_hora_atualizacao = "data_hora_atualizacao", + codigo_usuario_criacao = "codigo_usuario_criacao", + codigo_usuario_atualizacao = "codigo_usuario_atualizacao", + versao = "versao" +} +/** Palavras comumente usadas */ +declare enum tx { + token = "token" +} +declare enum tipoUsuarioResiduos { + Usuario = "usuario", + Fornecedor = "fornecedor" +} + +declare enum operadores { + "=" = "=", + "!=" = "!=", + ">" = ">", + ">=" = ">=", + "<" = "<", + "<=" = "<=", + like = "like", + in = "in", + isNull = "isNull" +} +type tipoFiltro = { + coluna: string; + valor: any; + operador: keyof typeof operadores | operadores; + ou?: boolean; +}; +type interfaceConsulta = { + offset?: number; + limit?: number; + filtros?: tipoFiltro[]; + ordem?: string; + ordemTipo?: "asc" | "desc"; + colunas?: string[]; + apenasConsulta?: boolean; + apenasContagem?: boolean; +}; +declare const zOperadores: z.ZodEnum<{ + "=": "="; + "!=": "!="; + ">": ">"; + ">=": ">="; + "<": "<"; + "<=": "<="; + like: "like"; + in: "in"; + isNull: "isNull"; +}>; +declare const zFiltro: z.ZodObject<{ + coluna: z.ZodString; + valor: z.ZodAny; + operador: z.ZodEnum<{ + "=": "="; + "!=": "!="; + ">": ">"; + ">=": ">="; + "<": "<"; + "<=": "<="; + like: "like"; + in: "in"; + isNull: "isNull"; + }>; + ou: z.ZodOptional; +}, z.core.$strip>; + +declare const dayjsbr: typeof dayjs; + +declare const cdn_carro_de_boi = "https://carro-de-boi-idz-one.b-cdn.net"; + +type tiposArquivo = "imagem" | "documento" | "vídeo" | "outros"; +declare const extensoes: { + ext: string; + tipo: tiposArquivo; + mime: string; +}[]; +/** + * Função que retorna o tipo do arquivo + * @param nomeArquivo + * @returns + */ +declare const tipoArquivo: (nomeArquivo: string | null | undefined) => tiposArquivo; + +/** + * LocalStorage Tipado + * Lê ou grava um valor no localStorage, mantendo o tipo genérico . + */ +declare const localValor: (chave_: string | any, valor?: T | null) => T | null; + +type tipoLokiObjeto = { + streams: { + stream: { + [k: string]: string; + }; + values: [string, string][]; + }[]; +}; +declare const postLogger: ({ objeto, }: { + objeto: tipoLokiObjeto; +}) => Promise<[objeto: tipoLokiObjeto, erro?: string]>; +/** define a localização da pasta do projeto */ +declare const defineCwd: (novoCwd: string) => void; +type tipoLevel = "info" | "warn" | "error"; +type tipoOpSessao = { + inquilino: string; + usuario: string; + parametros?: { + [k: string]: string; + }; +}; +type tipoLog = { + detalhes?: unknown[]; + __filename?: string; + local?: string; + parametros?: { + [k: string]: string; + }; +}; +type tipoLoggerLog = (level: tipoLevel, mensagem: string, op_tipoLog?: tipoLog) => Promise<[objeto: tipoLokiObjeto, erro?: string]>; +type TipoLoggerSessao = (sess: tipoOpSessao) => tipoLoggerLog; +type tipoLogger = (amb: { + app: string; + eProducao: boolean; + parametros?: { + [k: string]: string; + }; +}) => TipoLoggerSessao; +declare const logger: tipoLogger; + +/** + * Trata um objeto para ser imput para postgres + * @param entrada + * @returns + */ +declare const paraObjetoRegistroPg: (entrada: { + [k: string]: any; +}) => { + [k: string]: string | boolean | null | undefined | number; +}; +declare const pgObjeto: (entrada: { + [k: string]: any; +}) => { + [k: string]: string | boolean | null | undefined | number; +}; +declare const objetoPg: (entrada: { + [k: string]: any; +}) => { + [k: string]: string | boolean | null | undefined | number; +}; + +declare enum Produtos { + "e-licencie" = "e-licencie", + "gov.e-licencie" = "gov.e-licencie" +} + +declare const umaFuncao: () => string; + +declare const umaVariavel = "Ol\u00E1 Mundo! (vari\u00E1vel)"; + +/** gerar o texto de busca removendo caracteres especies e caixa alta */ +declare const texto_busca: (...texto: any[]) => string; + +/** Gerar uma classe que facilita a gestão de rotas com a tipagem das querys + * + * Definições: + * + * caminho = "/aplicacao/funcionalidade" + * + * endereco = "http://localhost:3000/aplicacao/funcionalidade" + * + * parametros = {nome:"José"} + */ +declare class TipagemRotas { + _partesCaminho: string[]; + _acaoIr?: (endereco: string) => undefined; + rotulo: string | undefined; + /** Ao criar novo obijeto de tipagem de rota é necessário passar o caminho parcial + ** export const mCaminho = new TipagemRotas<{q:string}>("aplicacao","funcionalidade") + */ + constructor({ caminho, acaoIr, rotulo, }: { + caminho: (string | null | undefined)[] | string; + acaoIr?: undefined | ((endereco: string) => undefined); + /** Rotulo da página + * Inicio | Controle + */ + rotulo?: string; + }); + /** Retorna o caminho completo da rota + ** console.log(mCaminho.caminho) + ** "/caminho" + */ + get caminho(): string; + /** Define o caminho completo da rota + ** mCaminho.caminho = "/novoCaminho" + ** console.log(mCaminho.caminho) + ** "/novoCaminho" + ** */ + set caminho(caminhoParcial: string); + /** Retorna o caminho completo da rota com a query + ** console.log(mCaminho.resolve({q:"query"})) + ** "http://localhost:3000/caminho?q=query" + */ + endereco(query: T, usarComoHash?: boolean): string; + /** Vai para a url + ** mCaminho.ir({q:"query"}) + ** window.location.href = "http://localhost:3000/caminho?q=query" + */ + ir(query: T): void; + /** Retorna os parametros da url + ** console.log(mCaminho.parametros()) + ** {q:"query"} + */ + parametros(urlEntrada?: string): Partial; +} + +/** + * Essa variável se conecta a tabela_lidades + * + * onde sigla se conecta com sigla + * + * Usuário terá mais opções de unidades, quando fazer o envio para o mtr, usar a opção fornecida pelo usuarios, caso não tenha + * usar a normalizada + */ +declare enum siglas_unidades_medida { + UN = "UN", + KG = "KG", + TON = "TON", + g = "g", + "M³" = "M\u00B3", + Lt = "Lt" +} +declare const unidades_medida: { + sigla_unidade: keyof typeof siglas_unidades_medida; + nome: string; + sigla_normalizada: keyof typeof siglas_unidades_medida; + normalizar: (valor: number) => number; + tipo: "massa" | "volume" | "comprimento" | "unidade"; +}[]; + +/** + * Valida se uma string é um UUID válido (qualquer versão). + * + * @param valor - A string que será validada. + * @returns booleano indicando se é um UUID válido. + */ +declare const erUuid: RegExp; +declare const validarUuid: (uuid: string | number | undefined | null) => boolean; +/** + * Gera um UUID determinístico (versão 3) com base em uma chave e um grupo (namespace). + * + * - Usa o algoritmo MD5 (RFC 4122). + * - Sempre retorna o mesmo UUID para a mesma combinação chave + grupo. + * - Caso o grupo não seja informado, usa o UUID "nil" como namespace. + * + * @param chave - Qualquer valor que será convertido em string para gerar o UUID (ex: número, string ou objeto). + * @param grupo - Opcional. Namespace para separar domínios diferentes de UUIDs. + * @returns UUID v3 (determinístico) + */ +declare const uuidV3: (chave: any, grupo?: any) => string; +/** + * Gera um UUID v4 (aleatório, não determinístico). + * + * - Usado quando unicidade é necessária, mas não se exige que seja previsível. + */ +declare const uuidV4: typeof v4; +/** + * @deprecated Esta variável será descontinuada em versões futuras. + * Use a função `uuidV4()` diretamente. + */ +declare const uuid: typeof v4; + +declare const esperar: (ms: number) => Promise; +/** + * Usado para retronat o no de uma variável, deve ser usado dentro de um objeto + * const nomex = {a: 1, b: 2} + * nomeVariavel({nomex}) // retorna "nomex" + * @param v + * @returns + */ +declare const nomeVariavel: (v: { + [key: string]: any; +}) => string; + +export { Produtos, TipagemRotas, type TipoLoggerSessao, aleatorio, cacheM, cacheMFixo, cacheMemoria, camposComuns, cdn_carro_de_boi, dayjsbr, defineCwd, erUuid, esperar, extensoes, type interfaceConsulta, 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 }; diff --git a/dist-front/index.mjs b/dist-front/index.mjs new file mode 100644 index 0000000..ca9b8c0 --- /dev/null +++ b/dist-front/index.mjs @@ -0,0 +1 @@ +var x="ABCDEFGHIJKLMNOPQRSTUVWXYZ".split(""),oe=e=>`eli-${Array.from({length:e||8}).map(()=>x[(999*Math.random()|0)%x.length]).join("")}`;var d={};globalThis.cacheMemoria_cache=d;var y=(e,o,t)=>{let i=typeof e=="string"?e:typeof e=="number"?String(e):encodeURIComponent(JSON.stringify(e)),r=t&&new Date().getTime()+t*1e3;o!==void 0&&(d[i]={valor:o,validade:r});let n=d[i];if(!(n?.validade&&n.validaded,re=y,ne=e=>o=>y(e,o);var me="00000000-0000-0000-0000-000000000000",T=(m=>(m.codigo="codigo",m.excluido="excluido",m.data_hora_criacao="data_hora_criacao",m.data_hora_atualizacao="data_hora_atualizacao",m.codigo_usuario_criacao="codigo_usuario_criacao",m.codigo_usuario_atualizacao="codigo_usuario_atualizacao",m.versao="versao",m))(T||{}),S=(o=>(o.token="token",o))(S||{}),z=(t=>(t.Usuario="usuario",t.Fornecedor="fornecedor",t))(z||{});import c from"zod";var N=(i=>(i["="]="=",i["!="]="!=",i[">"]=">",i[">="]=">=",i["<"]="<",i["<="]="<=",i.like="like",i.in="in",i.isNull="isNull",i))(N||{}),$=c.enum(["=","!=",">",">=","<","<=","like","in","isNull"]),le=c.object({coluna:c.string(),valor:c.any(),operador:$,ou:c.boolean().optional()});import s from"dayjs";import M from"dayjs/plugin/duration.js";import I from"dayjs/plugin/isSameOrAfter.js";import U from"dayjs/plugin/isSameOrBefore.js";import P from"dayjs/plugin/minMax.js";import A from"dayjs/plugin/relativeTime.js";import E from"dayjs/plugin/timezone.js";import J from"dayjs/plugin/utc.js";import q from"dayjs/plugin/weekOfYear.js";import"dayjs/locale/pt-br.js";s.locale("pt-br");s.extend(J);s.extend(E);s.extend(q);s.extend(U);s.extend(I);s.extend(P);s.extend(A);s.extend(M);var Oe=s;var Le="https://carro-de-boi-idz-one.b-cdn.net";var C=[{ext:"gif",tipo:"imagem",mime:"image/gif"},{ext:"jpg",tipo:"imagem",mime:"image/jpeg"},{ext:"jpeg",tipo:"imagem",mime:"image/jpeg"},{ext:"png",tipo:"imagem",mime:"image/png"},{ext:"bmp",tipo:"imagem",mime:"image/bmp"},{ext:"webp",tipo:"imagem",mime:"image/webp"},{ext:"tiff",tipo:"imagem",mime:"image/tiff"},{ext:"svg",tipo:"imagem",mime:"image/svg+xml"},{ext:"ico",tipo:"imagem",mime:"image/x-icon"},{ext:"pdf",tipo:"documento",mime:"application/pdf"},{ext:"doc",tipo:"documento",mime:"application/msword"},{ext:"docx",tipo:"documento",mime:"application/vnd.openxmlformats-officedocument.wordprocessingml.document"},{ext:"xls",tipo:"documento",mime:"application/vnd.ms-excel"},{ext:"xlsx",tipo:"documento",mime:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"},{ext:"ppt",tipo:"documento",mime:"application/vnd.ms-powerpoint"},{ext:"pptx",tipo:"documento",mime:"application/vnd.openxmlformats-officedocument.presentationml.presentation"},{ext:"txt",tipo:"documento",mime:"text/plain"},{ext:"odt",tipo:"documento",mime:"application/vnd.oasis.opendocument.text"},{ext:"ods",tipo:"documento",mime:"application/vnd.oasis.opendocument.spreadsheet"},{ext:"rtf",tipo:"documento",mime:"application/rtf"},{ext:"csv",tipo:"documento",mime:"text/csv"},{ext:"mp4",tipo:"v\xEDdeo",mime:"video/mp4"},{ext:"avi",tipo:"v\xEDdeo",mime:"video/x-msvideo"},{ext:"mkv",tipo:"v\xEDdeo",mime:"video/x-matroska"},{ext:"mov",tipo:"v\xEDdeo",mime:"video/quicktime"},{ext:"wmv",tipo:"v\xEDdeo",mime:"video/x-ms-wmv"},{ext:"flv",tipo:"v\xEDdeo",mime:"video/x-flv"},{ext:"webm",tipo:"v\xEDdeo",mime:"video/webm"},{ext:"3gp",tipo:"v\xEDdeo",mime:"video/3gpp"},{ext:"mpeg",tipo:"v\xEDdeo",mime:"video/mpeg"}],Se=e=>{let o=String(e||"").toLocaleLowerCase().split(".").pop();return C.find(i=>i.ext===o)?.tipo||"outros"};var Ne=(e,o)=>{let t=globalThis.localStorage;if(typeof t>"u")return null;let i=typeof e=="string"?e:encodeURIComponent(JSON.stringify(e));try{o!==void 0&&t.setItem(i,JSON.stringify(o));let r=t.getItem(i);if(r===null)return null;try{return JSON.parse(r)}catch{return r}}catch{return null}};import K from"cross-fetch";var Me=e=>new Promise(o=>setTimeout(()=>o(!0),e)),g=e=>Object.keys(e).join("/");var D="https://log.idz.one",F="/loki/api/v1/push",G=async({objeto:e})=>{let o=await K(`${D}${F}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}).catch(t=>t);return o.ok?[e]:[e,`Erro ${o.status}: ${await o?.text?.()}`]},f="",Ae=e=>{f=e},Ee=({app:e,eProducao:o,parametros:t})=>({inquilino:i,usuario:r,parametros:n})=>async(a,m,v)=>{let{__filename:p,detalhes:l,local:u,parametros:_}=v||{},O=`${o?"":"DEV-"}${e}`;f&&p&&(p=p.replace(f,"")),u&&(l=[`${g({local:u})}="${u}"`,...l||[]]),p&&(l=[`${g({__filename:p})}="${p}"`,...l||[]]);let w=`${Date.now()}000000`,L=l?.length?`${m} | ${l.map(k=>JSON.stringify(k)).join(" | ")}`:m,j={streams:[{stream:{app:O,inquilino:i,usuario:r,level:a,...t||{},...n||{},..._||{}},values:[[w,L]]}]};return await G({objeto:j})};var b=e=>{try{return Object.fromEntries(Object.entries(e).map(([o,t])=>[o,t===void 0||t==null||typeof t=="string"||typeof t=="number"||typeof t=="boolean"?t:JSON.stringify(t,null,2)]))}catch(o){throw new Error(`Erro na fun\xE7\xE3o paraObjetoRegistroPg: ${o.message} ${o.stack}`)}},qe=b,Ce=b;var V=(e=>(e["e-licencie"]="e-licencie",e["gov.e-licencie"]="gov.e-licencie",e))(V||{});var Fe=()=>"Ol\xE1 Mundo! (fun\xE7\xE3o)";var Ve="Ol\xE1 Mundo! (vari\xE1vel)";var He=(...e)=>e.map(o=>o==null?"":String(o).normalize("NFD").replace(/[\u0300-\u036f]/g,"").replace(/\s+/g," ").toLowerCase()).join(" ");var h=class{constructor({caminho:o,acaoIr:t,rotulo:i}){this._partesCaminho=[];this._acaoIr=t,this._partesCaminho=(Array.isArray(o)?o:[o]).filter(Boolean).map(r=>String(r)).flatMap(r=>r.split("/")).filter(Boolean),this.rotulo=i}get caminho(){return`/${this._partesCaminho.join("/")}`}set caminho(o){this._partesCaminho=o.split("/").filter(t=>t)}endereco(o,t){let i=new URL(typeof window<"u"?window.location.href:"http://localhost");i.pathname=this.caminho,i.search="";let r=Object.entries(o);for(let[n,a]of r)i.searchParams.set(String(n),JSON.stringify(a));return i.hash="",t&&(i.hash=`#${i.search}`,i.search=""),i.href}ir(o){this._acaoIr?this._acaoIr(this.endereco({...o})):typeof window<"u"&&(window.location.href=this.endereco({...o}))}parametros(o){let t=o?new URL(o):new URL(typeof window<"u"?window.location.href:"http://localhost"),i=t.searchParams,r=Object.fromEntries(i.entries()),n=t.hash;if(n){let a=Object.fromEntries(new URLSearchParams(n.slice(1)).entries());r={...r,...a}}for(let a in r)try{r[a]=JSON.parse(r[a])}catch{console.log(`[${a}|${r[a]}] n\xE3o \xE9 um json v\xE1lido.`)}return r}};var R=(n=>(n.UN="UN",n.KG="KG",n.TON="TON",n.g="g",n["M\xB3"]="M\xB3",n.Lt="Lt",n))(R||{}),Ze=[{sigla_unidade:"KG",nome:"Quilograma",sigla_normalizada:"KG",normalizar:e=>e,tipo:"massa"},{sigla_unidade:"g",nome:"Grama",sigla_normalizada:"KG",normalizar:e=>e/1e3,tipo:"massa"},{sigla_unidade:"TON",nome:"Tonelada",sigla_normalizada:"KG",normalizar:e=>e*1e3,tipo:"massa"},{sigla_unidade:"Lt",nome:"Litro",sigla_normalizada:"Lt",normalizar:e=>e,tipo:"volume"},{sigla_unidade:"M\xB3",nome:"Metro C\xFAbico",sigla_normalizada:"Lt",normalizar:e=>e*1e3,tipo:"volume"},{sigla_unidade:"UN",nome:"Unidade",sigla_normalizada:"UN",normalizar:e=>e,tipo:"unidade"}];import{NIL as B,v3 as Q,v4 as Y}from"uuid";var H=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,to=e=>H.test(String(e||"")),W=(e,o)=>Q(typeof e=="string"?e:typeof e=="number"?String(e):JSON.stringify(e),o?W(o):B),X=Y,io=X;export{V as Produtos,h as TipagemRotas,oe as aleatorio,y as cacheM,ne as cacheMFixo,re as cacheMemoria,T as camposComuns,Le as cdn_carro_de_boi,Oe as dayjsbr,Ae as defineCwd,H as erUuid,Me as esperar,C as extensoes,Ne as localValor,Ee as logger,g as nomeVariavel,Ce as objetoPg,N as operadores,b as paraObjetoRegistroPg,qe as pgObjeto,G as postLogger,R as siglas_unidades_medida,He as texto_busca,Se as tipoArquivo,z as tipoUsuarioResiduos,S as tx,Fe as umaFuncao,Ve as umaVariavel,Ze as unidades_medida,io as uuid,W as uuidV3,X as uuidV4,me as uuid_null,to as validarUuid,ie as verCacheM,le as zFiltro,$ as zOperadores}; diff --git a/dist-import/aleatorio.d.ts b/dist-import/aleatorio.d.ts deleted file mode 100644 index d5ce165..0000000 --- a/dist-import/aleatorio.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare const aleatorio: (tamanho?: number) => string; diff --git a/dist-import/aleatorio.js b/dist-import/aleatorio.js deleted file mode 100644 index bfa1f7e..0000000 --- a/dist-import/aleatorio.js +++ /dev/null @@ -1,4 +0,0 @@ -const alfabeto = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".split(""); -export const aleatorio = (tamanho) => `eli-${Array.from({ length: tamanho || 8 }) - .map(() => alfabeto[((999 * Math.random()) | 0) % alfabeto.length]) - .join("")}`; diff --git a/dist-import/constantes.d.ts b/dist-import/constantes.d.ts deleted file mode 100644 index 1bedbc1..0000000 --- a/dist-import/constantes.d.ts +++ /dev/null @@ -1,19 +0,0 @@ -export declare const uuid_null = "00000000-0000-0000-0000-000000000000"; -/** Colunas Presentes n maioria das tabelas */ -export declare enum camposComuns { - codigo = "codigo", - excluido = "excluido", - data_hora_criacao = "data_hora_criacao", - data_hora_atualizacao = "data_hora_atualizacao", - codigo_usuario_criacao = "codigo_usuario_criacao", - codigo_usuario_atualizacao = "codigo_usuario_atualizacao", - versao = "versao" -} -/** Palavras comumente usadas */ -export declare enum tx { - token = "token" -} -export declare enum tipoUsuarioResiduos { - Usuario = "usuario", - Fornecedor = "fornecedor" -} diff --git a/dist-import/constantes.js b/dist-import/constantes.js deleted file mode 100644 index 4a456bc..0000000 --- a/dist-import/constantes.js +++ /dev/null @@ -1,22 +0,0 @@ -export const uuid_null = "00000000-0000-0000-0000-000000000000"; -/** Colunas Presentes n maioria das tabelas */ -export var camposComuns; -(function (camposComuns) { - camposComuns["codigo"] = "codigo"; - camposComuns["excluido"] = "excluido"; - camposComuns["data_hora_criacao"] = "data_hora_criacao"; - camposComuns["data_hora_atualizacao"] = "data_hora_atualizacao"; - camposComuns["codigo_usuario_criacao"] = "codigo_usuario_criacao"; - camposComuns["codigo_usuario_atualizacao"] = "codigo_usuario_atualizacao"; - camposComuns["versao"] = "versao"; -})(camposComuns || (camposComuns = {})); -/** Palavras comumente usadas */ -export var tx; -(function (tx) { - tx["token"] = "token"; -})(tx || (tx = {})); -export var tipoUsuarioResiduos; -(function (tipoUsuarioResiduos) { - tipoUsuarioResiduos["Usuario"] = "usuario"; - tipoUsuarioResiduos["Fornecedor"] = "fornecedor"; -})(tipoUsuarioResiduos || (tipoUsuarioResiduos = {})); diff --git a/dist-import/consulta.d.ts b/dist-import/consulta.d.ts deleted file mode 100644 index 204c2dd..0000000 --- a/dist-import/consulta.d.ts +++ /dev/null @@ -1,26 +0,0 @@ -export declare enum operadores { - "=" = "=", - "!=" = "!=", - ">" = ">", - ">=" = ">=", - "<" = "<", - "<=" = "<=", - like = "like", - in = "in" -} -export type tipoFiltro = { - coluna: string; - valor: any; - operador: keyof typeof operadores | operadores; - ou?: boolean; -}; -export type interfaceConsulta = { - offset?: number; - limit?: number; - filtros?: tipoFiltro[]; - ordem?: string; - ordemTipo?: "asc" | "desc"; - colunas?: string[]; - apenasConsulta?: boolean; - apenasContagem?: boolean; -}; diff --git a/dist-import/consulta.js b/dist-import/consulta.js deleted file mode 100644 index 845630a..0000000 --- a/dist-import/consulta.js +++ /dev/null @@ -1,11 +0,0 @@ -export var operadores; -(function (operadores) { - operadores["="] = "="; - operadores["!="] = "!="; - operadores[">"] = ">"; - operadores[">="] = ">="; - operadores["<"] = "<"; - operadores["<="] = "<="; - operadores["like"] = "like"; - operadores["in"] = "in"; -})(operadores || (operadores = {})); diff --git a/dist-import/ecosistema/index.d.ts b/dist-import/ecosistema/index.d.ts deleted file mode 100644 index 5071338..0000000 --- a/dist-import/ecosistema/index.d.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./urls"; diff --git a/dist-import/ecosistema/index.js b/dist-import/ecosistema/index.js deleted file mode 100644 index 5071338..0000000 --- a/dist-import/ecosistema/index.js +++ /dev/null @@ -1 +0,0 @@ -export * from "./urls"; diff --git a/dist-import/ecosistema/urls.d.ts b/dist-import/ecosistema/urls.d.ts deleted file mode 100644 index a698f1f..0000000 --- a/dist-import/ecosistema/urls.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare const cdn_carro_de_boi = "https://carro-de-boi-idz-one.b-cdn.net"; diff --git a/dist-import/ecosistema/urls.js b/dist-import/ecosistema/urls.js deleted file mode 100644 index 77c7429..0000000 --- a/dist-import/ecosistema/urls.js +++ /dev/null @@ -1 +0,0 @@ -export const cdn_carro_de_boi = "https://carro-de-boi-idz-one.b-cdn.net"; diff --git a/dist-import/extensoes.d.ts b/dist-import/extensoes.d.ts deleted file mode 100644 index 76b648c..0000000 --- a/dist-import/extensoes.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -type tiposArquivo = "imagem" | "documento" | "vídeo" | "outros"; -export declare const extensoes: { - ext: string; - tipo: tiposArquivo; - mime: string; -}[]; -/** - * Função que retorna o tipo do arquivo - * @param nomeArquivo - * @returns - */ -export declare const tipoArquivo: (nomeArquivo: string | null | undefined) => tiposArquivo; -export {}; diff --git a/dist-import/extensoes.js b/dist-import/extensoes.js deleted file mode 100644 index ca87d36..0000000 --- a/dist-import/extensoes.js +++ /dev/null @@ -1,168 +0,0 @@ -export const extensoes = [ - { - ext: "gif", - tipo: "imagem", - mime: "image/gif", - }, - { - ext: "jpg", - tipo: "imagem", - mime: "image/jpeg", - }, - { - ext: "jpeg", - tipo: "imagem", - mime: "image/jpeg", - }, - { - ext: "png", - tipo: "imagem", - mime: "image/png", - }, - { - ext: "bmp", - tipo: "imagem", - mime: "image/bmp", - }, - { - ext: "webp", - tipo: "imagem", - mime: "image/webp", - }, - { - ext: "tiff", - tipo: "imagem", - mime: "image/tiff", - }, - { - ext: "svg", - tipo: "imagem", - mime: "image/svg+xml", - }, - { - ext: "ico", - tipo: "imagem", - mime: "image/x-icon", - }, - { - ext: "pdf", - tipo: "documento", - mime: "application/pdf", - }, - { - ext: "doc", - tipo: "documento", - mime: "application/msword", - }, - { - ext: "docx", - tipo: "documento", - mime: "application/vnd.openxmlformats-officedocument.wordprocessingml.document", - }, - { - ext: "xls", - tipo: "documento", - mime: "application/vnd.ms-excel", - }, - { - ext: "xlsx", - tipo: "documento", - mime: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", - }, - { - ext: "ppt", - tipo: "documento", - mime: "application/vnd.ms-powerpoint", - }, - { - ext: "pptx", - tipo: "documento", - mime: "application/vnd.openxmlformats-officedocument.presentationml.presentation", - }, - { - ext: "txt", - tipo: "documento", - mime: "text/plain", - }, - { - ext: "odt", - tipo: "documento", - mime: "application/vnd.oasis.opendocument.text", - }, - { - ext: "ods", - tipo: "documento", - mime: "application/vnd.oasis.opendocument.spreadsheet", - }, - { - ext: "rtf", - tipo: "documento", - mime: "application/rtf", - }, - { - ext: "csv", - tipo: "documento", - mime: "text/csv", - }, - { - ext: "mp4", - tipo: "vídeo", - mime: "video/mp4", - }, - { - ext: "avi", - tipo: "vídeo", - mime: "video/x-msvideo", - }, - { - ext: "mkv", - tipo: "vídeo", - mime: "video/x-matroska", - }, - { - ext: "mov", - tipo: "vídeo", - mime: "video/quicktime", - }, - { - ext: "wmv", - tipo: "vídeo", - mime: "video/x-ms-wmv", - }, - { - ext: "flv", - tipo: "vídeo", - mime: "video/x-flv", - }, - { - ext: "webm", - tipo: "vídeo", - mime: "video/webm", - }, - { - ext: "3gp", - tipo: "vídeo", - mime: "video/3gpp", - }, - { - ext: "mpeg", - tipo: "vídeo", - mime: "video/mpeg", - }, -]; -/** - * Função que retorna o tipo do arquivo - * @param nomeArquivo - * @returns - */ -export const tipoArquivo = (nomeArquivo) => { - // extenssão do arquivo - const extArquivo = String(nomeArquivo || "") - .toLocaleLowerCase() - .split(".") - .pop(); - // procura a extensão do arquivo na lista de extensões - const extensao = extensoes.find((extensao) => extensao.ext === extArquivo); - // retorna o tipo do arquivo - return extensao?.tipo || "outros"; -}; diff --git a/dist-import/index.d.ts b/dist-import/index.d.ts deleted file mode 100644 index eaca916..0000000 --- a/dist-import/index.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -export * from "./aleatorio"; -export * from "./constantes"; -export * from "./consulta"; -export * from "./ecosistema"; -export * from "./extensoes"; -export * from "./logger"; -export * from "./texto_busca"; -export * from "./tipagemRotas"; -export * from "./unidades_medida"; -export * from "./uuid"; -export * from "./variaveisComuns"; diff --git a/dist-import/index.js b/dist-import/index.js deleted file mode 100644 index eaca916..0000000 --- a/dist-import/index.js +++ /dev/null @@ -1,11 +0,0 @@ -export * from "./aleatorio"; -export * from "./constantes"; -export * from "./consulta"; -export * from "./ecosistema"; -export * from "./extensoes"; -export * from "./logger"; -export * from "./texto_busca"; -export * from "./tipagemRotas"; -export * from "./unidades_medida"; -export * from "./uuid"; -export * from "./variaveisComuns"; diff --git a/dist-import/logger.d.ts b/dist-import/logger.d.ts deleted file mode 100644 index 89e1e56..0000000 --- a/dist-import/logger.d.ts +++ /dev/null @@ -1,40 +0,0 @@ -export type tipoLokiObjeto = { - streams: { - stream: { - [k: string]: string; - }; - values: [string, string][]; - }[]; -}; -export declare const postLogger: ({ objeto, }: { - objeto: tipoLokiObjeto; -}) => Promise<[objeto: tipoLokiObjeto, erro?: string]>; -/** define a localização da pasta do projeto */ -export declare const defineCwd: (novoCwd: string) => void; -type tipoLevel = "info" | "warn" | "error"; -type tipoOpSessao = { - inquilino: string; - usuario: string; - parametros?: { - [k: string]: string; - }; -}; -type tipoLog = { - detalhes?: unknown[]; - __filename?: string; - local?: string; - parametros?: { - [k: string]: string; - }; -}; -export type tipoLoggerLog = (level: tipoLevel, mensagem: string, op_tipoLog?: tipoLog) => Promise<[objeto: tipoLokiObjeto, erro?: string]>; -export type TipoLoggerSessao = (sess: tipoOpSessao) => tipoLoggerLog; -export type tipoLogger = (amb: { - app: string; - eProducao: boolean; - parametros?: { - [k: string]: string; - }; -}) => TipoLoggerSessao; -export declare const logger: tipoLogger; -export {}; diff --git a/dist-import/logger.js b/dist-import/logger.js deleted file mode 100644 index a02b3b9..0000000 --- a/dist-import/logger.js +++ /dev/null @@ -1,60 +0,0 @@ -import crossFetch from "cross-fetch"; -import { nomeVariavel } from "./variaveisComuns"; -const LOKI_BASE_URL = "https://log.idz.one"; -const LOKI_ENDPOINT = "/loki/api/v1/push"; -export const postLogger = async ({ objeto, }) => { - const response = await crossFetch(`${LOKI_BASE_URL}${LOKI_ENDPOINT}`, { - method: "POST", - headers: { "Content-Type": "application/json" }, - body: JSON.stringify(objeto), - }).catch((a) => a); - if (!response.ok) { - return [objeto, `Erro ${response.status}: ${await response?.text?.()}`]; - } - return [objeto]; -}; -let cwd = ""; -/** define a localização da pasta do projeto */ -export const defineCwd = (novoCwd) => { - cwd = novoCwd; -}; -export const logger = ({ app: app_e, eProducao, parametros: parametrosAmbiente }) => ({ inquilino, usuario, parametros: parametrosSessao }) => async (level, mensagem, op_tipoLog) => { - let { __filename, detalhes, local, parametros: parametrosLog, } = op_tipoLog || {}; - const app = `${eProducao ? "" : "DEV-"}${app_e}`; - if (cwd && __filename) { - __filename = __filename.replace(cwd, ""); - } - if (local) { - detalhes = [`${nomeVariavel({ local })}="${local}"`, ...(detalhes || [])]; - } - if (__filename) { - detalhes = [ - `${nomeVariavel({ __filename })}="${__filename}"`, - ...(detalhes || []), - ]; - } - const timestamp = `${Date.now()}000000`; - const mainLog = detalhes?.length - ? `${mensagem} | ${detalhes.map((d) => JSON.stringify(d)).join(" | ")}` - : mensagem; - const payload = { - stream: { - app, - inquilino, - usuario, - level, - ...(parametrosAmbiente || {}), - ...(parametrosSessao || {}), - ...(parametrosLog || {}), - }, - values: [ - [ - timestamp, - mainLog, // Linha de log direta - ], - ], - }; - const objeto = { streams: [payload] }; - const response = await postLogger({ objeto }); - return response; -}; diff --git a/dist-import/teste.d.ts b/dist-import/teste.d.ts deleted file mode 100644 index cb0ff5c..0000000 --- a/dist-import/teste.d.ts +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/dist-import/teste.js b/dist-import/teste.js deleted file mode 100644 index 7a5b710..0000000 --- a/dist-import/teste.js +++ /dev/null @@ -1,8 +0,0 @@ -import { logger } from "./logger"; -const l = logger({ app: "teste", eProducao: true }); -const lg = l({ - inquilino: "conta_1", - usuario: "pedrinho", -}); -lg("error", "Deu Ruim").then((a) => console.log(JSON.stringify(a))); -lg("info", "Deu Bom", { __filename }).then((a) => console.log(JSON.stringify(a))); diff --git a/dist-import/texto_busca.d.ts b/dist-import/texto_busca.d.ts deleted file mode 100644 index ee3b18c..0000000 --- a/dist-import/texto_busca.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -/** gerar o texto de busca removendo caracteres especies e caixa alta */ -export declare const texto_busca: (...texto: any[]) => string; diff --git a/dist-import/texto_busca.js b/dist-import/texto_busca.js deleted file mode 100644 index 57e4fec..0000000 --- a/dist-import/texto_busca.js +++ /dev/null @@ -1,10 +0,0 @@ -/** gerar o texto de busca removendo caracteres especies e caixa alta */ -export const texto_busca = (...texto) => texto - .map((txt) => txt === null || txt === undefined - ? "" - : String(txt) - .normalize("NFD") - .replace(/[\u0300-\u036f]/g, "") - .replace(/\s+/g, " ") - .toLowerCase()) - .join(" "); diff --git a/dist-import/tipagemRotas.d.ts b/dist-import/tipagemRotas.d.ts deleted file mode 100644 index 5705b77..0000000 --- a/dist-import/tipagemRotas.d.ts +++ /dev/null @@ -1,49 +0,0 @@ -/** Gerar uma classe que facilita a gestão de rotas com a tipagem das querys - * - * Definições: - * - * caminho = "/aplicacao/funcionalidade" - * - * endereco = "http://localhost:3000/aplicacao/funcionalidade" - * - * parametros = {nome:"José"} - */ -export declare class TipagemRotas { - _partesCaminho: string[]; - _acaoIr?: (endereco: string) => undefined; - /** Ao criar novo obijeto de tipagem de rota é necessário passar o caminho parcial - ** export const mCaminho = new TipagemRotas<{q:string}>("aplicacao","funcionalidade") - */ - constructor({ caminho, acaoIr, }: { - caminho: string[] | string; - acaoIr?: undefined | ((endereco: string) => undefined); - }); - /** Retorna o caminho completo da rota - ** console.log(mCaminho.caminho) - ** "/caminho" - */ - get caminho(): string; - /** Define o caminho completo da rota - ** mCaminho.caminho = "/novoCaminho" - ** console.log(mCaminho.caminho) - ** "/novoCaminho" - ** */ - set caminho(caminhoParcial: string); - /** Retorna o caminho completo da rota com a query - ** console.log(mCaminho.resolve({q:"query"})) - ** "http://localhost:3000/caminho?q=query" - */ - endereco(query: T, usarComoHash?: boolean): string; - /** Vai para a url - ** mCaminho.ir({q:"query"}) - ** window.location.href = "http://localhost:3000/caminho?q=query" - */ - ir(query: T): void; - /** Retorna os parametros da url - ** console.log(mCaminho.parametros()) - ** {q:"query"} - */ - get parametros(): Partial; -} diff --git a/dist-import/tipagemRotas.js b/dist-import/tipagemRotas.js deleted file mode 100644 index b929bb5..0000000 --- a/dist-import/tipagemRotas.js +++ /dev/null @@ -1,87 +0,0 @@ -/** Gerar uma classe que facilita a gestão de rotas com a tipagem das querys - * - * Definições: - * - * caminho = "/aplicacao/funcionalidade" - * - * endereco = "http://localhost:3000/aplicacao/funcionalidade" - * - * parametros = {nome:"José"} - */ -export class TipagemRotas { - /** Ao criar novo obijeto de tipagem de rota é necessário passar o caminho parcial - ** export const mCaminho = new TipagemRotas<{q:string}>("aplicacao","funcionalidade") - */ - constructor({ caminho, acaoIr, }) { - this._partesCaminho = []; - this._acaoIr = acaoIr; - this._partesCaminho = (Array.isArray(caminho) ? caminho : [caminho]) - .flatMap((a) => a.split("/")) - .filter(Boolean); - } - /** Retorna o caminho completo da rota - ** console.log(mCaminho.caminho) - ** "/caminho" - */ - get caminho() { - const ret = `/${this._partesCaminho.join("/")}`; - return ret; - } - /** Define o caminho completo da rota - ** mCaminho.caminho = "/novoCaminho" - ** console.log(mCaminho.caminho) - ** "/novoCaminho" - ** */ - set caminho(caminhoParcial) { - this._partesCaminho = caminhoParcial.split("/").filter((parte) => parte); - } - /** Retorna o caminho completo da rota com a query - ** console.log(mCaminho.resolve({q:"query"})) - ** "http://localhost:3000/caminho?q=query" - */ - endereco(query, usarComoHash) { - const url = new URL(typeof window !== "undefined" ? window.location.href : "http://localhost"); - url.pathname = this.caminho; - url.search = ""; - const queryKeys = Object.entries(query); - for (const [key, value] of queryKeys) { - url.searchParams.set(String(key), value === undefined || value === null ? "" : value); - } - url.hash = ""; - if (usarComoHash) { - url.hash = `#${url.search}`; - url.search = ""; - } - return url.href; - } - /** Vai para a url - ** mCaminho.ir({q:"query"}) - ** window.location.href = "http://localhost:3000/caminho?q=query" - */ - ir(query) { - if (this._acaoIr) { - this._acaoIr(this.endereco(query)); - } - else { - if (typeof window != "undefined") { - window.location.href = this.endereco(query); - } - } - } - /** Retorna os parametros da url - ** console.log(mCaminho.parametros()) - ** {q:"query"} - */ - get parametros() { - const url = new URL(typeof window !== "undefined" ? window.location.href : "http://localhost"); - const query = url.searchParams; - const queryObj = Object.fromEntries(query.entries()); - // pegar hash - const hash = url.hash; - if (hash) { - const hashObj = Object.fromEntries(new URLSearchParams(hash.slice(1)).entries()); - return { ...queryObj, ...hashObj }; - } - return queryObj; - } -} diff --git a/dist-import/unidades_medida.d.ts b/dist-import/unidades_medida.d.ts deleted file mode 100644 index dfe57d6..0000000 --- a/dist-import/unidades_medida.d.ts +++ /dev/null @@ -1,23 +0,0 @@ -/** - * Essa variável se conecta a tabela_lidades - * - * onde sigla se conecta com sigla - * - * Usuário terá mais opções de unidades, quando fazer o envio para o mtr, usar a opção fornecida pelo usuarios, caso não tenha - * usar a normalizada - */ -export declare enum siglas_unidades_medida { - UN = "UN", - KG = "KG", - TON = "TON", - g = "g", - "M³" = "M\u00B3", - Lt = "Lt" -} -export declare const unidades_medida: { - sigla_unidade: keyof typeof siglas_unidades_medida; - nome: string; - sigla_normalizada: keyof typeof siglas_unidades_medida; - normalizar: (valor: number) => number; - tipo: "massa" | "volume" | "comprimento" | "unidade"; -}[]; diff --git a/dist-import/unidades_medida.js b/dist-import/unidades_medida.js deleted file mode 100644 index 038d19a..0000000 --- a/dist-import/unidades_medida.js +++ /dev/null @@ -1,61 +0,0 @@ -/** - * Essa variável se conecta a tabela_lidades - * - * onde sigla se conecta com sigla - * - * Usuário terá mais opções de unidades, quando fazer o envio para o mtr, usar a opção fornecida pelo usuarios, caso não tenha - * usar a normalizada - */ -export var siglas_unidades_medida; -(function (siglas_unidades_medida) { - siglas_unidades_medida["UN"] = "UN"; - siglas_unidades_medida["KG"] = "KG"; - siglas_unidades_medida["TON"] = "TON"; - siglas_unidades_medida["g"] = "g"; - siglas_unidades_medida["M\u00B3"] = "M\u00B3"; - siglas_unidades_medida["Lt"] = "Lt"; -})(siglas_unidades_medida || (siglas_unidades_medida = {})); -export const unidades_medida = [ - { - sigla_unidade: "KG", - nome: "Quilograma", - sigla_normalizada: "KG", - normalizar: (valor) => valor, - tipo: "massa", - }, - { - sigla_unidade: "g", - nome: "Grama", - sigla_normalizada: "KG", - normalizar: (valor) => valor / 1000, - tipo: "massa", - }, - { - sigla_unidade: "TON", - nome: "Tonelada", - sigla_normalizada: "KG", - normalizar: (valor) => valor * 1000, - tipo: "massa", - }, - { - sigla_unidade: "Lt", - nome: "Litro", - sigla_normalizada: "Lt", - normalizar: (valor) => valor, - tipo: "volume", - }, - { - sigla_unidade: "M³", - nome: "Metro Cúbico", - sigla_normalizada: "Lt", - normalizar: (valor) => valor * 1000, - tipo: "volume", - }, - { - sigla_unidade: "UN", - nome: "Unidade", - sigla_normalizada: "UN", - normalizar: (valor) => valor, - tipo: "unidade", - }, -]; diff --git a/dist-import/uuid.d.ts b/dist-import/uuid.d.ts deleted file mode 100644 index b399e28..0000000 --- a/dist-import/uuid.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare const uuid: () => string; diff --git a/dist-import/uuid.js b/dist-import/uuid.js deleted file mode 100644 index a21fc70..0000000 --- a/dist-import/uuid.js +++ /dev/null @@ -1,12 +0,0 @@ -//Gerar uma uuid V4 -const letras = "0123456789abcdef".split(""); -export const uuid = () => { - letras.sort(() => Math.random() - 0.5); - const modelo = "xxxxxxxx-xxxx-4xxx-xxxx-xxxxxxxxxxxx".split(""); - const retorno = modelo - .map((letra) => letra === "x" - ? letras[((1000 * Math.random()) | 0) % letras.length] - : letra) - .join(""); - return retorno; -}; diff --git a/dist-import/variaveisComuns.d.ts b/dist-import/variaveisComuns.d.ts deleted file mode 100644 index 29c1db8..0000000 --- a/dist-import/variaveisComuns.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -export declare const esperar: (ms: number) => Promise; -/** - * Usado para retronat o no de uma variável, deve ser usado dentro de um objeto - * const nomex = {a: 1, b: 2} - * nomeVariavel({nomex}) // retorna "nomex" - * @param v - * @returns - */ -export declare const nomeVariavel: (v: { - [key: string]: any; -}) => string; diff --git a/dist-import/variaveisComuns.js b/dist-import/variaveisComuns.js deleted file mode 100644 index bf2fb49..0000000 --- a/dist-import/variaveisComuns.js +++ /dev/null @@ -1,9 +0,0 @@ -export const esperar = (ms) => new Promise((resolve) => 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} - * nomeVariavel({nomex}) // retorna "nomex" - * @param v - * @returns - */ -export const nomeVariavel = (v) => Object.keys(v).join("/"); diff --git a/dist-require/aleatorio.d.ts b/dist-require/aleatorio.d.ts deleted file mode 100644 index d5ce165..0000000 --- a/dist-require/aleatorio.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare const aleatorio: (tamanho?: number) => string; diff --git a/dist-require/aleatorio.js b/dist-require/aleatorio.js deleted file mode 100644 index eeb8763..0000000 --- a/dist-require/aleatorio.js +++ /dev/null @@ -1,8 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.aleatorio = void 0; -const alfabeto = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".split(""); -const aleatorio = (tamanho) => `eli-${Array.from({ length: tamanho || 8 }) - .map(() => alfabeto[((999 * Math.random()) | 0) % alfabeto.length]) - .join("")}`; -exports.aleatorio = aleatorio; diff --git a/dist-require/constantes.d.ts b/dist-require/constantes.d.ts deleted file mode 100644 index 1bedbc1..0000000 --- a/dist-require/constantes.d.ts +++ /dev/null @@ -1,19 +0,0 @@ -export declare const uuid_null = "00000000-0000-0000-0000-000000000000"; -/** Colunas Presentes n maioria das tabelas */ -export declare enum camposComuns { - codigo = "codigo", - excluido = "excluido", - data_hora_criacao = "data_hora_criacao", - data_hora_atualizacao = "data_hora_atualizacao", - codigo_usuario_criacao = "codigo_usuario_criacao", - codigo_usuario_atualizacao = "codigo_usuario_atualizacao", - versao = "versao" -} -/** Palavras comumente usadas */ -export declare enum tx { - token = "token" -} -export declare enum tipoUsuarioResiduos { - Usuario = "usuario", - Fornecedor = "fornecedor" -} diff --git a/dist-require/constantes.js b/dist-require/constantes.js deleted file mode 100644 index 2171614..0000000 --- a/dist-require/constantes.js +++ /dev/null @@ -1,25 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.tipoUsuarioResiduos = exports.tx = exports.camposComuns = exports.uuid_null = void 0; -exports.uuid_null = "00000000-0000-0000-0000-000000000000"; -/** Colunas Presentes n maioria das tabelas */ -var camposComuns; -(function (camposComuns) { - camposComuns["codigo"] = "codigo"; - camposComuns["excluido"] = "excluido"; - camposComuns["data_hora_criacao"] = "data_hora_criacao"; - camposComuns["data_hora_atualizacao"] = "data_hora_atualizacao"; - camposComuns["codigo_usuario_criacao"] = "codigo_usuario_criacao"; - camposComuns["codigo_usuario_atualizacao"] = "codigo_usuario_atualizacao"; - camposComuns["versao"] = "versao"; -})(camposComuns || (exports.camposComuns = camposComuns = {})); -/** Palavras comumente usadas */ -var tx; -(function (tx) { - tx["token"] = "token"; -})(tx || (exports.tx = tx = {})); -var tipoUsuarioResiduos; -(function (tipoUsuarioResiduos) { - tipoUsuarioResiduos["Usuario"] = "usuario"; - tipoUsuarioResiduos["Fornecedor"] = "fornecedor"; -})(tipoUsuarioResiduos || (exports.tipoUsuarioResiduos = tipoUsuarioResiduos = {})); diff --git a/dist-require/consulta.d.ts b/dist-require/consulta.d.ts deleted file mode 100644 index 204c2dd..0000000 --- a/dist-require/consulta.d.ts +++ /dev/null @@ -1,26 +0,0 @@ -export declare enum operadores { - "=" = "=", - "!=" = "!=", - ">" = ">", - ">=" = ">=", - "<" = "<", - "<=" = "<=", - like = "like", - in = "in" -} -export type tipoFiltro = { - coluna: string; - valor: any; - operador: keyof typeof operadores | operadores; - ou?: boolean; -}; -export type interfaceConsulta = { - offset?: number; - limit?: number; - filtros?: tipoFiltro[]; - ordem?: string; - ordemTipo?: "asc" | "desc"; - colunas?: string[]; - apenasConsulta?: boolean; - apenasContagem?: boolean; -}; diff --git a/dist-require/consulta.js b/dist-require/consulta.js deleted file mode 100644 index 8d19c3d..0000000 --- a/dist-require/consulta.js +++ /dev/null @@ -1,14 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.operadores = void 0; -var operadores; -(function (operadores) { - operadores["="] = "="; - operadores["!="] = "!="; - operadores[">"] = ">"; - operadores[">="] = ">="; - operadores["<"] = "<"; - operadores["<="] = "<="; - operadores["like"] = "like"; - operadores["in"] = "in"; -})(operadores || (exports.operadores = operadores = {})); diff --git a/dist-require/ecosistema/index.d.ts b/dist-require/ecosistema/index.d.ts deleted file mode 100644 index 5071338..0000000 --- a/dist-require/ecosistema/index.d.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./urls"; diff --git a/dist-require/ecosistema/index.js b/dist-require/ecosistema/index.js deleted file mode 100644 index 4b8a968..0000000 --- a/dist-require/ecosistema/index.js +++ /dev/null @@ -1,17 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -__exportStar(require("./urls"), exports); diff --git a/dist-require/ecosistema/urls.d.ts b/dist-require/ecosistema/urls.d.ts deleted file mode 100644 index a698f1f..0000000 --- a/dist-require/ecosistema/urls.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare const cdn_carro_de_boi = "https://carro-de-boi-idz-one.b-cdn.net"; diff --git a/dist-require/ecosistema/urls.js b/dist-require/ecosistema/urls.js deleted file mode 100644 index 6359a4a..0000000 --- a/dist-require/ecosistema/urls.js +++ /dev/null @@ -1,4 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.cdn_carro_de_boi = void 0; -exports.cdn_carro_de_boi = "https://carro-de-boi-idz-one.b-cdn.net"; diff --git a/dist-require/extensoes.d.ts b/dist-require/extensoes.d.ts deleted file mode 100644 index 76b648c..0000000 --- a/dist-require/extensoes.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -type tiposArquivo = "imagem" | "documento" | "vídeo" | "outros"; -export declare const extensoes: { - ext: string; - tipo: tiposArquivo; - mime: string; -}[]; -/** - * Função que retorna o tipo do arquivo - * @param nomeArquivo - * @returns - */ -export declare const tipoArquivo: (nomeArquivo: string | null | undefined) => tiposArquivo; -export {}; diff --git a/dist-require/extensoes.js b/dist-require/extensoes.js deleted file mode 100644 index 0568f98..0000000 --- a/dist-require/extensoes.js +++ /dev/null @@ -1,172 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.tipoArquivo = exports.extensoes = void 0; -exports.extensoes = [ - { - ext: "gif", - tipo: "imagem", - mime: "image/gif", - }, - { - ext: "jpg", - tipo: "imagem", - mime: "image/jpeg", - }, - { - ext: "jpeg", - tipo: "imagem", - mime: "image/jpeg", - }, - { - ext: "png", - tipo: "imagem", - mime: "image/png", - }, - { - ext: "bmp", - tipo: "imagem", - mime: "image/bmp", - }, - { - ext: "webp", - tipo: "imagem", - mime: "image/webp", - }, - { - ext: "tiff", - tipo: "imagem", - mime: "image/tiff", - }, - { - ext: "svg", - tipo: "imagem", - mime: "image/svg+xml", - }, - { - ext: "ico", - tipo: "imagem", - mime: "image/x-icon", - }, - { - ext: "pdf", - tipo: "documento", - mime: "application/pdf", - }, - { - ext: "doc", - tipo: "documento", - mime: "application/msword", - }, - { - ext: "docx", - tipo: "documento", - mime: "application/vnd.openxmlformats-officedocument.wordprocessingml.document", - }, - { - ext: "xls", - tipo: "documento", - mime: "application/vnd.ms-excel", - }, - { - ext: "xlsx", - tipo: "documento", - mime: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", - }, - { - ext: "ppt", - tipo: "documento", - mime: "application/vnd.ms-powerpoint", - }, - { - ext: "pptx", - tipo: "documento", - mime: "application/vnd.openxmlformats-officedocument.presentationml.presentation", - }, - { - ext: "txt", - tipo: "documento", - mime: "text/plain", - }, - { - ext: "odt", - tipo: "documento", - mime: "application/vnd.oasis.opendocument.text", - }, - { - ext: "ods", - tipo: "documento", - mime: "application/vnd.oasis.opendocument.spreadsheet", - }, - { - ext: "rtf", - tipo: "documento", - mime: "application/rtf", - }, - { - ext: "csv", - tipo: "documento", - mime: "text/csv", - }, - { - ext: "mp4", - tipo: "vídeo", - mime: "video/mp4", - }, - { - ext: "avi", - tipo: "vídeo", - mime: "video/x-msvideo", - }, - { - ext: "mkv", - tipo: "vídeo", - mime: "video/x-matroska", - }, - { - ext: "mov", - tipo: "vídeo", - mime: "video/quicktime", - }, - { - ext: "wmv", - tipo: "vídeo", - mime: "video/x-ms-wmv", - }, - { - ext: "flv", - tipo: "vídeo", - mime: "video/x-flv", - }, - { - ext: "webm", - tipo: "vídeo", - mime: "video/webm", - }, - { - ext: "3gp", - tipo: "vídeo", - mime: "video/3gpp", - }, - { - ext: "mpeg", - tipo: "vídeo", - mime: "video/mpeg", - }, -]; -/** - * Função que retorna o tipo do arquivo - * @param nomeArquivo - * @returns - */ -const tipoArquivo = (nomeArquivo) => { - // extenssão do arquivo - const extArquivo = String(nomeArquivo || "") - .toLocaleLowerCase() - .split(".") - .pop(); - // procura a extensão do arquivo na lista de extensões - const extensao = exports.extensoes.find((extensao) => extensao.ext === extArquivo); - // retorna o tipo do arquivo - return extensao?.tipo || "outros"; -}; -exports.tipoArquivo = tipoArquivo; diff --git a/dist-require/index.d.ts b/dist-require/index.d.ts deleted file mode 100644 index eaca916..0000000 --- a/dist-require/index.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -export * from "./aleatorio"; -export * from "./constantes"; -export * from "./consulta"; -export * from "./ecosistema"; -export * from "./extensoes"; -export * from "./logger"; -export * from "./texto_busca"; -export * from "./tipagemRotas"; -export * from "./unidades_medida"; -export * from "./uuid"; -export * from "./variaveisComuns"; diff --git a/dist-require/index.js b/dist-require/index.js deleted file mode 100644 index de88d53..0000000 --- a/dist-require/index.js +++ /dev/null @@ -1,27 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -__exportStar(require("./aleatorio"), exports); -__exportStar(require("./constantes"), exports); -__exportStar(require("./consulta"), exports); -__exportStar(require("./ecosistema"), exports); -__exportStar(require("./extensoes"), exports); -__exportStar(require("./logger"), exports); -__exportStar(require("./texto_busca"), exports); -__exportStar(require("./tipagemRotas"), exports); -__exportStar(require("./unidades_medida"), exports); -__exportStar(require("./uuid"), exports); -__exportStar(require("./variaveisComuns"), exports); diff --git a/dist-require/logger.d.ts b/dist-require/logger.d.ts deleted file mode 100644 index 89e1e56..0000000 --- a/dist-require/logger.d.ts +++ /dev/null @@ -1,40 +0,0 @@ -export type tipoLokiObjeto = { - streams: { - stream: { - [k: string]: string; - }; - values: [string, string][]; - }[]; -}; -export declare const postLogger: ({ objeto, }: { - objeto: tipoLokiObjeto; -}) => Promise<[objeto: tipoLokiObjeto, erro?: string]>; -/** define a localização da pasta do projeto */ -export declare const defineCwd: (novoCwd: string) => void; -type tipoLevel = "info" | "warn" | "error"; -type tipoOpSessao = { - inquilino: string; - usuario: string; - parametros?: { - [k: string]: string; - }; -}; -type tipoLog = { - detalhes?: unknown[]; - __filename?: string; - local?: string; - parametros?: { - [k: string]: string; - }; -}; -export type tipoLoggerLog = (level: tipoLevel, mensagem: string, op_tipoLog?: tipoLog) => Promise<[objeto: tipoLokiObjeto, erro?: string]>; -export type TipoLoggerSessao = (sess: tipoOpSessao) => tipoLoggerLog; -export type tipoLogger = (amb: { - app: string; - eProducao: boolean; - parametros?: { - [k: string]: string; - }; -}) => TipoLoggerSessao; -export declare const logger: tipoLogger; -export {}; diff --git a/dist-require/logger.js b/dist-require/logger.js deleted file mode 100644 index 8b219d6..0000000 --- a/dist-require/logger.js +++ /dev/null @@ -1,69 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.logger = exports.defineCwd = exports.postLogger = void 0; -const cross_fetch_1 = __importDefault(require("cross-fetch")); -const variaveisComuns_1 = require("./variaveisComuns"); -const LOKI_BASE_URL = "https://log.idz.one"; -const LOKI_ENDPOINT = "/loki/api/v1/push"; -const postLogger = async ({ objeto, }) => { - const response = await (0, cross_fetch_1.default)(`${LOKI_BASE_URL}${LOKI_ENDPOINT}`, { - method: "POST", - headers: { "Content-Type": "application/json" }, - body: JSON.stringify(objeto), - }).catch((a) => a); - if (!response.ok) { - return [objeto, `Erro ${response.status}: ${await response?.text?.()}`]; - } - return [objeto]; -}; -exports.postLogger = postLogger; -let cwd = ""; -/** define a localização da pasta do projeto */ -const defineCwd = (novoCwd) => { - cwd = novoCwd; -}; -exports.defineCwd = defineCwd; -const logger = ({ app: app_e, eProducao, parametros: parametrosAmbiente }) => ({ inquilino, usuario, parametros: parametrosSessao }) => async (level, mensagem, op_tipoLog) => { - let { __filename, detalhes, local, parametros: parametrosLog, } = op_tipoLog || {}; - const app = `${eProducao ? "" : "DEV-"}${app_e}`; - if (cwd && __filename) { - __filename = __filename.replace(cwd, ""); - } - if (local) { - detalhes = [`${(0, variaveisComuns_1.nomeVariavel)({ local })}="${local}"`, ...(detalhes || [])]; - } - if (__filename) { - detalhes = [ - `${(0, variaveisComuns_1.nomeVariavel)({ __filename })}="${__filename}"`, - ...(detalhes || []), - ]; - } - const timestamp = `${Date.now()}000000`; - const mainLog = detalhes?.length - ? `${mensagem} | ${detalhes.map((d) => JSON.stringify(d)).join(" | ")}` - : mensagem; - const payload = { - stream: { - app, - inquilino, - usuario, - level, - ...(parametrosAmbiente || {}), - ...(parametrosSessao || {}), - ...(parametrosLog || {}), - }, - values: [ - [ - timestamp, - mainLog, // Linha de log direta - ], - ], - }; - const objeto = { streams: [payload] }; - const response = await (0, exports.postLogger)({ objeto }); - return response; -}; -exports.logger = logger; diff --git a/dist-require/teste.d.ts b/dist-require/teste.d.ts deleted file mode 100644 index cb0ff5c..0000000 --- a/dist-require/teste.d.ts +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/dist-require/teste.js b/dist-require/teste.js deleted file mode 100644 index 233f91f..0000000 --- a/dist-require/teste.js +++ /dev/null @@ -1,10 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const logger_1 = require("./logger"); -const l = (0, logger_1.logger)({ app: "teste", eProducao: true }); -const lg = l({ - inquilino: "conta_1", - usuario: "pedrinho", -}); -lg("error", "Deu Ruim").then((a) => console.log(JSON.stringify(a))); -lg("info", "Deu Bom", { __filename }).then((a) => console.log(JSON.stringify(a))); diff --git a/dist-require/texto_busca.d.ts b/dist-require/texto_busca.d.ts deleted file mode 100644 index ee3b18c..0000000 --- a/dist-require/texto_busca.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -/** gerar o texto de busca removendo caracteres especies e caixa alta */ -export declare const texto_busca: (...texto: any[]) => string; diff --git a/dist-require/texto_busca.js b/dist-require/texto_busca.js deleted file mode 100644 index 12163bd..0000000 --- a/dist-require/texto_busca.js +++ /dev/null @@ -1,14 +0,0 @@ -"use strict"; -/** gerar o texto de busca removendo caracteres especies e caixa alta */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.texto_busca = void 0; -const texto_busca = (...texto) => texto - .map((txt) => txt === null || txt === undefined - ? "" - : String(txt) - .normalize("NFD") - .replace(/[\u0300-\u036f]/g, "") - .replace(/\s+/g, " ") - .toLowerCase()) - .join(" "); -exports.texto_busca = texto_busca; diff --git a/dist-require/tipagemRotas.d.ts b/dist-require/tipagemRotas.d.ts deleted file mode 100644 index 5705b77..0000000 --- a/dist-require/tipagemRotas.d.ts +++ /dev/null @@ -1,49 +0,0 @@ -/** Gerar uma classe que facilita a gestão de rotas com a tipagem das querys - * - * Definições: - * - * caminho = "/aplicacao/funcionalidade" - * - * endereco = "http://localhost:3000/aplicacao/funcionalidade" - * - * parametros = {nome:"José"} - */ -export declare class TipagemRotas { - _partesCaminho: string[]; - _acaoIr?: (endereco: string) => undefined; - /** Ao criar novo obijeto de tipagem de rota é necessário passar o caminho parcial - ** export const mCaminho = new TipagemRotas<{q:string}>("aplicacao","funcionalidade") - */ - constructor({ caminho, acaoIr, }: { - caminho: string[] | string; - acaoIr?: undefined | ((endereco: string) => undefined); - }); - /** Retorna o caminho completo da rota - ** console.log(mCaminho.caminho) - ** "/caminho" - */ - get caminho(): string; - /** Define o caminho completo da rota - ** mCaminho.caminho = "/novoCaminho" - ** console.log(mCaminho.caminho) - ** "/novoCaminho" - ** */ - set caminho(caminhoParcial: string); - /** Retorna o caminho completo da rota com a query - ** console.log(mCaminho.resolve({q:"query"})) - ** "http://localhost:3000/caminho?q=query" - */ - endereco(query: T, usarComoHash?: boolean): string; - /** Vai para a url - ** mCaminho.ir({q:"query"}) - ** window.location.href = "http://localhost:3000/caminho?q=query" - */ - ir(query: T): void; - /** Retorna os parametros da url - ** console.log(mCaminho.parametros()) - ** {q:"query"} - */ - get parametros(): Partial; -} diff --git a/dist-require/tipagemRotas.js b/dist-require/tipagemRotas.js deleted file mode 100644 index 6c51505..0000000 --- a/dist-require/tipagemRotas.js +++ /dev/null @@ -1,91 +0,0 @@ -"use strict"; -/** Gerar uma classe que facilita a gestão de rotas com a tipagem das querys - * - * Definições: - * - * caminho = "/aplicacao/funcionalidade" - * - * endereco = "http://localhost:3000/aplicacao/funcionalidade" - * - * parametros = {nome:"José"} - */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.TipagemRotas = void 0; -class TipagemRotas { - /** Ao criar novo obijeto de tipagem de rota é necessário passar o caminho parcial - ** export const mCaminho = new TipagemRotas<{q:string}>("aplicacao","funcionalidade") - */ - constructor({ caminho, acaoIr, }) { - this._partesCaminho = []; - this._acaoIr = acaoIr; - this._partesCaminho = (Array.isArray(caminho) ? caminho : [caminho]) - .flatMap((a) => a.split("/")) - .filter(Boolean); - } - /** Retorna o caminho completo da rota - ** console.log(mCaminho.caminho) - ** "/caminho" - */ - get caminho() { - const ret = `/${this._partesCaminho.join("/")}`; - return ret; - } - /** Define o caminho completo da rota - ** mCaminho.caminho = "/novoCaminho" - ** console.log(mCaminho.caminho) - ** "/novoCaminho" - ** */ - set caminho(caminhoParcial) { - this._partesCaminho = caminhoParcial.split("/").filter((parte) => parte); - } - /** Retorna o caminho completo da rota com a query - ** console.log(mCaminho.resolve({q:"query"})) - ** "http://localhost:3000/caminho?q=query" - */ - endereco(query, usarComoHash) { - const url = new URL(typeof window !== "undefined" ? window.location.href : "http://localhost"); - url.pathname = this.caminho; - url.search = ""; - const queryKeys = Object.entries(query); - for (const [key, value] of queryKeys) { - url.searchParams.set(String(key), value === undefined || value === null ? "" : value); - } - url.hash = ""; - if (usarComoHash) { - url.hash = `#${url.search}`; - url.search = ""; - } - return url.href; - } - /** Vai para a url - ** mCaminho.ir({q:"query"}) - ** window.location.href = "http://localhost:3000/caminho?q=query" - */ - ir(query) { - if (this._acaoIr) { - this._acaoIr(this.endereco(query)); - } - else { - if (typeof window != "undefined") { - window.location.href = this.endereco(query); - } - } - } - /** Retorna os parametros da url - ** console.log(mCaminho.parametros()) - ** {q:"query"} - */ - get parametros() { - const url = new URL(typeof window !== "undefined" ? window.location.href : "http://localhost"); - const query = url.searchParams; - const queryObj = Object.fromEntries(query.entries()); - // pegar hash - const hash = url.hash; - if (hash) { - const hashObj = Object.fromEntries(new URLSearchParams(hash.slice(1)).entries()); - return { ...queryObj, ...hashObj }; - } - return queryObj; - } -} -exports.TipagemRotas = TipagemRotas; diff --git a/dist-require/unidades_medida.d.ts b/dist-require/unidades_medida.d.ts deleted file mode 100644 index dfe57d6..0000000 --- a/dist-require/unidades_medida.d.ts +++ /dev/null @@ -1,23 +0,0 @@ -/** - * Essa variável se conecta a tabela_lidades - * - * onde sigla se conecta com sigla - * - * Usuário terá mais opções de unidades, quando fazer o envio para o mtr, usar a opção fornecida pelo usuarios, caso não tenha - * usar a normalizada - */ -export declare enum siglas_unidades_medida { - UN = "UN", - KG = "KG", - TON = "TON", - g = "g", - "M³" = "M\u00B3", - Lt = "Lt" -} -export declare const unidades_medida: { - sigla_unidade: keyof typeof siglas_unidades_medida; - nome: string; - sigla_normalizada: keyof typeof siglas_unidades_medida; - normalizar: (valor: number) => number; - tipo: "massa" | "volume" | "comprimento" | "unidade"; -}[]; diff --git a/dist-require/unidades_medida.js b/dist-require/unidades_medida.js deleted file mode 100644 index f277454..0000000 --- a/dist-require/unidades_medida.js +++ /dev/null @@ -1,64 +0,0 @@ -"use strict"; -/** - * Essa variável se conecta a tabela_lidades - * - * onde sigla se conecta com sigla - * - * Usuário terá mais opções de unidades, quando fazer o envio para o mtr, usar a opção fornecida pelo usuarios, caso não tenha - * usar a normalizada - */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.unidades_medida = exports.siglas_unidades_medida = void 0; -var siglas_unidades_medida; -(function (siglas_unidades_medida) { - siglas_unidades_medida["UN"] = "UN"; - siglas_unidades_medida["KG"] = "KG"; - siglas_unidades_medida["TON"] = "TON"; - siglas_unidades_medida["g"] = "g"; - siglas_unidades_medida["M\u00B3"] = "M\u00B3"; - siglas_unidades_medida["Lt"] = "Lt"; -})(siglas_unidades_medida || (exports.siglas_unidades_medida = siglas_unidades_medida = {})); -exports.unidades_medida = [ - { - sigla_unidade: "KG", - nome: "Quilograma", - sigla_normalizada: "KG", - normalizar: (valor) => valor, - tipo: "massa", - }, - { - sigla_unidade: "g", - nome: "Grama", - sigla_normalizada: "KG", - normalizar: (valor) => valor / 1000, - tipo: "massa", - }, - { - sigla_unidade: "TON", - nome: "Tonelada", - sigla_normalizada: "KG", - normalizar: (valor) => valor * 1000, - tipo: "massa", - }, - { - sigla_unidade: "Lt", - nome: "Litro", - sigla_normalizada: "Lt", - normalizar: (valor) => valor, - tipo: "volume", - }, - { - sigla_unidade: "M³", - nome: "Metro Cúbico", - sigla_normalizada: "Lt", - normalizar: (valor) => valor * 1000, - tipo: "volume", - }, - { - sigla_unidade: "UN", - nome: "Unidade", - sigla_normalizada: "UN", - normalizar: (valor) => valor, - tipo: "unidade", - }, -]; diff --git a/dist-require/uuid.d.ts b/dist-require/uuid.d.ts deleted file mode 100644 index b399e28..0000000 --- a/dist-require/uuid.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare const uuid: () => string; diff --git a/dist-require/uuid.js b/dist-require/uuid.js deleted file mode 100644 index 239161b..0000000 --- a/dist-require/uuid.js +++ /dev/null @@ -1,16 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.uuid = void 0; -//Gerar uma uuid V4 -const letras = "0123456789abcdef".split(""); -const uuid = () => { - letras.sort(() => Math.random() - 0.5); - const modelo = "xxxxxxxx-xxxx-4xxx-xxxx-xxxxxxxxxxxx".split(""); - const retorno = modelo - .map((letra) => letra === "x" - ? letras[((1000 * Math.random()) | 0) % letras.length] - : letra) - .join(""); - return retorno; -}; -exports.uuid = uuid; diff --git a/dist-require/variaveisComuns.d.ts b/dist-require/variaveisComuns.d.ts deleted file mode 100644 index 29c1db8..0000000 --- a/dist-require/variaveisComuns.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -export declare const esperar: (ms: number) => Promise; -/** - * Usado para retronat o no de uma variável, deve ser usado dentro de um objeto - * const nomex = {a: 1, b: 2} - * nomeVariavel({nomex}) // retorna "nomex" - * @param v - * @returns - */ -export declare const nomeVariavel: (v: { - [key: string]: any; -}) => string; diff --git a/dist-require/variaveisComuns.js b/dist-require/variaveisComuns.js deleted file mode 100644 index 4706366..0000000 --- a/dist-require/variaveisComuns.js +++ /dev/null @@ -1,14 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.nomeVariavel = exports.esperar = void 0; -const esperar = (ms) => new Promise((resolve) => setTimeout(() => resolve(true), ms)); -exports.esperar = esperar; -/** - * Usado para retronat o no de uma variável, deve ser usado dentro de um objeto - * const nomex = {a: 1, b: 2} - * nomeVariavel({nomex}) // retorna "nomex" - * @param v - * @returns - */ -const nomeVariavel = (v) => Object.keys(v).join("/"); -exports.nomeVariavel = nomeVariavel; diff --git a/package.json b/package.json index 57c5072..603c2b9 100644 --- a/package.json +++ b/package.json @@ -1,21 +1,23 @@ { "name": "p-comuns", - "version": "0.127.0", + "version": "0.296.0", "description": "", - "main": "./src/index.ts", + "main": "./dist-front/index.mjs", + "module": "./dist-front/index.mjs", + "types": "./dist-front/index.d.mts", "exports": { ".": { - "types": "./src/index.ts", - "import": "./dist-import/index.js", - "require": "./dist-require/index.js" + "types": "./dist-front/index.d.mts", + "import": "./dist-front/index.mjs", + "require": "./dist-back/index.js" } }, - "types": "./src/index.ts", "scripts": { - "biome": "npx @biomejs/biome check --write ./src", - "build-back": "rm -fr dist-require && tsc --project ./tsconfig-back.json", - "build-front": "rm -fr dist-import && tsc --project ./tsconfig-front.json", - "build": "npm --no-git-tag-version version minor && pnpm run biome && pnpm run build-back && pnpm run build-front" + "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", @@ -25,11 +27,22 @@ "license": "ISC", "dependencies": { "cross-fetch": "4.1.0", - "zod": "3.24.1" + "dayjs": "^1.11.18", + "uuid": "^11.1.0", + "zod": "4.1.4" }, "devDependencies": { - "@biomejs/biome": "2.0.6", - "@types/node": "^20.19.8", - "typescript": "^5.8.3" + "@biomejs/biome": "2.1.4", + "@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" } } diff --git a/pacote.tgz b/pacote.tgz new file mode 100644 index 0000000..f0f2ef3 Binary files /dev/null and b/pacote.tgz differ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 65adc6c..138e2de 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,83 +9,889 @@ importers: .: dependencies: cross-fetch: - specifier: ^4.1.0 + specifier: 4.1.0 version: 4.1.0 + dayjs: + specifier: ^1.11.18 + version: 1.11.18 + uuid: + specifier: ^11.1.0 + version: 11.1.0 zod: - specifier: 3.24.1 - version: 3.24.1 + specifier: 4.1.4 + version: 4.1.4 devDependencies: '@biomejs/biome': - specifier: ^2.0.6 - version: 2.0.6 + specifier: 2.1.4 + version: 2.1.4 '@types/node': - specifier: ^20.16.10 - version: 20.19.4 + specifier: ^20.19.22 + version: 20.19.22 + tsup: + specifier: 8.5.0 + version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(typescript@5.9.3) typescript: - specifier: ^5.7.2 - version: 5.8.3 + specifier: ~5.9.3 + version: 5.9.3 + unbuild: + specifier: ^3.6.1 + version: 3.6.1(typescript@5.9.3) + vitest: + specifier: ^3.2.4 + version: 3.2.4(@types/node@20.19.22)(jiti@2.6.1) packages: - '@biomejs/biome@2.0.6': - resolution: {integrity: sha512-RRP+9cdh5qwe2t0gORwXaa27oTOiQRQvrFf49x2PA1tnpsyU7FIHX4ZOFMtBC4QNtyWsN7Dqkf5EDbg4X+9iqA==} + '@babel/code-frame@7.27.1': + resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.28.5': + resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} + engines: {node: '>=6.9.0'} + + '@biomejs/biome@2.1.4': + resolution: {integrity: sha512-QWlrqyxsU0FCebuMnkvBIkxvPqH89afiJzjMl+z67ybutse590jgeaFdDurE9XYtzpjRGTI1tlUZPGWmbKsElA==} engines: {node: '>=14.21.3'} hasBin: true - '@biomejs/cli-darwin-arm64@2.0.6': - resolution: {integrity: sha512-AzdiNNjNzsE6LfqWyBvcL29uWoIuZUkndu+wwlXW13EKcBHbbKjNQEZIJKYDc6IL+p7bmWGx3v9ZtcRyIoIz5A==} + '@biomejs/cli-darwin-arm64@2.1.4': + resolution: {integrity: sha512-sCrNENE74I9MV090Wq/9Dg7EhPudx3+5OiSoQOkIe3DLPzFARuL1dOwCWhKCpA3I5RHmbrsbNSRfZwCabwd8Qg==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [darwin] - '@biomejs/cli-darwin-x64@2.0.6': - resolution: {integrity: sha512-wJjjP4E7bO4WJmiQaLnsdXMa516dbtC6542qeRkyJg0MqMXP0fvs4gdsHhZ7p9XWTAmGIjZHFKXdsjBvKGIJJQ==} + '@biomejs/cli-darwin-x64@2.1.4': + resolution: {integrity: sha512-gOEICJbTCy6iruBywBDcG4X5rHMbqCPs3clh3UQ+hRKlgvJTk4NHWQAyHOXvaLe+AxD1/TNX1jbZeffBJzcrOw==} engines: {node: '>=14.21.3'} cpu: [x64] os: [darwin] - '@biomejs/cli-linux-arm64-musl@2.0.6': - resolution: {integrity: sha512-CVPEMlin3bW49sBqLBg2x016Pws7eUXA27XYDFlEtponD0luYjg2zQaMJ2nOqlkKG9fqzzkamdYxHdMDc2gZFw==} + '@biomejs/cli-linux-arm64-musl@2.1.4': + resolution: {integrity: sha512-nYr7H0CyAJPaLupFE2cH16KZmRC5Z9PEftiA2vWxk+CsFkPZQ6dBRdcC6RuS+zJlPc/JOd8xw3uCCt9Pv41WvQ==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] - '@biomejs/cli-linux-arm64@2.0.6': - resolution: {integrity: sha512-ZSVf6TYo5rNMUHIW1tww+rs/krol7U5A1Is/yzWyHVZguuB0lBnIodqyFuwCNqG9aJGyk7xIMS8HG0qGUPz0SA==} + '@biomejs/cli-linux-arm64@2.1.4': + resolution: {integrity: sha512-juhEkdkKR4nbUi5k/KRp1ocGPNWLgFRD4NrHZSveYrD6i98pyvuzmS9yFYgOZa5JhaVqo0HPnci0+YuzSwT2fw==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] - '@biomejs/cli-linux-x64-musl@2.0.6': - resolution: {integrity: sha512-mKHE/e954hR/hSnAcJSjkf4xGqZc/53Kh39HVW1EgO5iFi0JutTN07TSjEMg616julRtfSNJi0KNyxvc30Y4rQ==} + '@biomejs/cli-linux-x64-musl@2.1.4': + resolution: {integrity: sha512-lvwvb2SQQHctHUKvBKptR6PLFCM7JfRjpCCrDaTmvB7EeZ5/dQJPhTYBf36BE/B4CRWR2ZiBLRYhK7hhXBCZAg==} engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] - '@biomejs/cli-linux-x64@2.0.6': - resolution: {integrity: sha512-geM1MkHTV1Kh2Cs/Xzot9BOF3WBacihw6bkEmxkz4nSga8B9/hWy5BDiOG3gHDGIBa8WxT0nzsJs2f/hPqQIQw==} + '@biomejs/cli-linux-x64@2.1.4': + resolution: {integrity: sha512-Eoy9ycbhpJVYuR+LskV9s3uyaIkp89+qqgqhGQsWnp/I02Uqg2fXFblHJOpGZR8AxdB9ADy87oFVxn9MpFKUrw==} engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] - '@biomejs/cli-win32-arm64@2.0.6': - resolution: {integrity: sha512-290V4oSFoKaprKE1zkYVsDfAdn0An5DowZ+GIABgjoq1ndhvNxkJcpxPsiYtT7slbVe3xmlT0ncdfOsN7KruzA==} + '@biomejs/cli-win32-arm64@2.1.4': + resolution: {integrity: sha512-3WRYte7orvyi6TRfIZkDN9Jzoogbv+gSvR+b9VOXUg1We1XrjBg6WljADeVEaKTvOcpVdH0a90TwyOQ6ue4fGw==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [win32] - '@biomejs/cli-win32-x64@2.0.6': - resolution: {integrity: sha512-bfM1Bce0d69Ao7pjTjUS+AWSZ02+5UHdiAP85Th8e9yV5xzw6JrHXbL5YWlcEKQ84FIZMdDc7ncuti1wd2sdbw==} + '@biomejs/cli-win32-x64@2.1.4': + resolution: {integrity: sha512-tBc+W7anBPSFXGAoQW+f/+svkpt8/uXfRwDzN1DvnatkRMt16KIYpEi/iw8u9GahJlFv98kgHcIrSsZHZTR0sw==} engines: {node: '>=14.21.3'} cpu: [x64] os: [win32] - '@types/node@20.19.4': - resolution: {integrity: sha512-OP+We5WV8Xnbuvw0zC2m4qfB/BJvjyCwtNjhHdJxV1639SGSKrLmJkc3fMnp2Qy8nJyHp8RO6umxELN/dS1/EA==} + '@esbuild/aix-ppc64@0.25.11': + resolution: {integrity: sha512-Xt1dOL13m8u0WE8iplx9Ibbm+hFAO0GsU2P34UNoDGvZYkY8ifSiy6Zuc1lYxfG7svWE2fzqCUmFp5HCn51gJg==} + 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-arm@0.25.11': + resolution: {integrity: sha512-uoa7dU+Dt3HYsethkJ1k6Z9YdcHjTrSb5NUy66ZfZaSV8hEYGD5ZHbEMXnqLFlbBflLsl89Zke7CAdDJ4JI+Gg==} + 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/darwin-arm64@0.25.11': + resolution: {integrity: sha512-VekY0PBCukppoQrycFxUqkCojnTQhdec0vevUL/EDOCnXd9LKWqD/bHwMPzigIJXPhC59Vd1WFIL57SKs2mg4w==} + 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/freebsd-arm64@0.25.11': + resolution: {integrity: sha512-CmKjrnayyTJF2eVuO//uSjl/K3KsMIeYeyN7FyDBjsR3lnSJHaXlVoAK8DZa7lXWChbuOk7NjAc7ygAwrnPBhA==} + 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/linux-arm64@0.25.11': + resolution: {integrity: sha512-Qr8AzcplUhGvdyUF08A1kHU3Vr2O88xxP0Tm8GcdVOUm25XYcMPp2YqSVHbLuXzYQMf9Bh/iKx7YPqECs6ffLA==} + 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-ia32@0.25.11': + resolution: {integrity: sha512-TmnJg8BMGPehs5JKrCLqyWTVAvielc615jbkOirATQvWWB1NMXY77oLMzsUjRLa0+ngecEmDGqt5jiDC6bfvOw==} + 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-mips64el@0.25.11': + resolution: {integrity: sha512-Osx1nALUJu4pU43o9OyjSCXokFkFbyzjXb6VhGIJZQ5JZi8ylCQ9/LFagolPsHtgw6himDSyb5ETSfmp4rpiKQ==} + 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-riscv64@0.25.11': + resolution: {integrity: sha512-HfyAmqZi9uBAbgKYP1yGuI7tSREXwIb438q0nqvlpxAOs3XnZ8RsisRfmVsgV486NdjD7Mw2UrFSw51lzUk1ww==} + 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-x64@0.25.11': + resolution: {integrity: sha512-HSFAT4+WYjIhrHxKBwGmOOSpphjYkcswF449j6EjsjbinTZbp8PJtjsVK1XFJStdzXdy/jaddAep2FGY+wyFAQ==} + 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-x64@0.25.11': + resolution: {integrity: sha512-u7tKA+qbzBydyj0vgpu+5h5AeudxOAGncb8N6C9Kh1N4n7wU1Xw1JDApsRjpShRpXRQlJLb9wY28ELpwdPcZ7A==} + 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-x64@0.25.11': + resolution: {integrity: sha512-CN+7c++kkbrckTOz5hrehxWN7uIhFFlmS/hqziSFVWpAzpWrQoAG4chH+nN3Be+Kzv/uuo7zhX716x3Sn2Jduw==} + 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/sunos-x64@0.25.11': + resolution: {integrity: sha512-nq2xdYaWxyg9DcIyXkZhcYulC6pQ2FuCgem3LI92IwMgIZ69KHeY8T4Y88pcwoLIjbed8n36CyKoYRDygNSGhA==} + 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-ia32@0.25.11': + resolution: {integrity: sha512-3ukss6gb9XZ8TlRyJlgLn17ecsK4NSQTmdIXRASVsiS2sQ6zPPZklNJT5GR5tE/MUarymmy8kCEf5xPCNCqVOA==} + 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] + + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + + '@rollup/plugin-alias@5.1.1': + resolution: {integrity: sha512-PR9zDb+rOzkRb2VD+EuKB7UC41vU5DIwZ5qqCpk0KJudcWAyi8rvYOhS7+L5aZCspw1stTViLgN5v6FF1p5cgQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-commonjs@28.0.9': + resolution: {integrity: sha512-PIR4/OHZ79romx0BVVll/PkwWpJ7e5lsqFa3gFfcrFPWwLXLV39JVUzQV9RKjWerE7B845Hqjj9VYlQeieZ2dA==} + engines: {node: '>=16.0.0 || 14 >= 14.17'} + peerDependencies: + rollup: ^2.68.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-json@6.1.0': + resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-node-resolve@16.0.3': + resolution: {integrity: sha512-lUYM3UBGuM93CnMPG1YocWu7X802BrNF3jW2zny5gQyLQgRFJhV1Sq0Zi74+dh/6NBx1DxFC4b4GXg9wUCG5Qg==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.78.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-replace@6.0.2': + resolution: {integrity: sha512-7QaYCf8bqF04dOy7w/eHmJeNExxTYwvKAmlSAH/EaWWUzbT0h5sbF6bktFoX/0F/0qwng5/dWFMyf3gzaM8DsQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/pluginutils@5.3.0': + resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/rollup-android-arm-eabi@4.52.5': + resolution: {integrity: sha512-8c1vW4ocv3UOMp9K+gToY5zL2XiiVw3k7f1ksf4yO1FlDFQ1C2u72iACFnSOceJFsWskc2WZNqeRhFRPzv+wtQ==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.52.5': + resolution: {integrity: sha512-mQGfsIEFcu21mvqkEKKu2dYmtuSZOBMmAl5CFlPGLY94Vlcm+zWApK7F/eocsNzp8tKmbeBP8yXyAbx0XHsFNA==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.52.5': + resolution: {integrity: sha512-takF3CR71mCAGA+v794QUZ0b6ZSrgJkArC+gUiG6LB6TQty9T0Mqh3m2ImRBOxS2IeYBo4lKWIieSvnEk2OQWA==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.52.5': + resolution: {integrity: sha512-W901Pla8Ya95WpxDn//VF9K9u2JbocwV/v75TE0YIHNTbhqUTv9w4VuQ9MaWlNOkkEfFwkdNhXgcLqPSmHy0fA==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.52.5': + resolution: {integrity: sha512-QofO7i7JycsYOWxe0GFqhLmF6l1TqBswJMvICnRUjqCx8b47MTo46W8AoeQwiokAx3zVryVnxtBMcGcnX12LvA==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.52.5': + resolution: {integrity: sha512-jr21b/99ew8ujZubPo9skbrItHEIE50WdV86cdSoRkKtmWa+DDr6fu2c/xyRT0F/WazZpam6kk7IHBerSL7LDQ==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.52.5': + resolution: {integrity: sha512-PsNAbcyv9CcecAUagQefwX8fQn9LQ4nZkpDboBOttmyffnInRy8R8dSg6hxxl2Re5QhHBf6FYIDhIj5v982ATQ==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-musleabihf@4.52.5': + resolution: {integrity: sha512-Fw4tysRutyQc/wwkmcyoqFtJhh0u31K+Q6jYjeicsGJJ7bbEq8LwPWV/w0cnzOqR2m694/Af6hpFayLJZkG2VQ==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.52.5': + resolution: {integrity: sha512-a+3wVnAYdQClOTlyapKmyI6BLPAFYs0JM8HRpgYZQO02rMR09ZcV9LbQB+NL6sljzG38869YqThrRnfPMCDtZg==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-musl@4.52.5': + resolution: {integrity: sha512-AvttBOMwO9Pcuuf7m9PkC1PUIKsfaAJ4AYhy944qeTJgQOqJYJ9oVl2nYgY7Rk0mkbsuOpCAYSs6wLYB2Xiw0Q==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-loong64-gnu@4.52.5': + resolution: {integrity: sha512-DkDk8pmXQV2wVrF6oq5tONK6UHLz/XcEVow4JTTerdeV1uqPeHxwcg7aFsfnSm9L+OO8WJsWotKM2JJPMWrQtA==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-ppc64-gnu@4.52.5': + resolution: {integrity: sha512-W/b9ZN/U9+hPQVvlGwjzi+Wy4xdoH2I8EjaCkMvzpI7wJUs8sWJ03Rq96jRnHkSrcHTpQe8h5Tg3ZzUPGauvAw==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.52.5': + resolution: {integrity: sha512-sjQLr9BW7R/ZiXnQiWPkErNfLMkkWIoCz7YMn27HldKsADEKa5WYdobaa1hmN6slu9oWQbB6/jFpJ+P2IkVrmw==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-riscv64-musl@4.52.5': + resolution: {integrity: sha512-hq3jU/kGyjXWTvAh2awn8oHroCbrPm8JqM7RUpKjalIRWWXE01CQOf/tUNWNHjmbMHg/hmNCwc/Pz3k1T/j/Lg==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.52.5': + resolution: {integrity: sha512-gn8kHOrku8D4NGHMK1Y7NA7INQTRdVOntt1OCYypZPRt6skGbddska44K8iocdpxHTMMNui5oH4elPH4QOLrFQ==} + cpu: [s390x] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.52.5': + resolution: {integrity: sha512-hXGLYpdhiNElzN770+H2nlx+jRog8TyynpTVzdlc6bndktjKWyZyiCsuDAlpd+j+W+WNqfcyAWz9HxxIGfZm1Q==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.52.5': + resolution: {integrity: sha512-arCGIcuNKjBoKAXD+y7XomR9gY6Mw7HnFBv5Rw7wQRvwYLR7gBAgV7Mb2QTyjXfTveBNFAtPt46/36vV9STLNg==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-openharmony-arm64@4.52.5': + resolution: {integrity: sha512-QoFqB6+/9Rly/RiPjaomPLmR/13cgkIGfA40LHly9zcH1S0bN2HVFYk3a1eAyHQyjs3ZJYlXvIGtcCs5tko9Cw==} + cpu: [arm64] + os: [openharmony] + + '@rollup/rollup-win32-arm64-msvc@4.52.5': + resolution: {integrity: sha512-w0cDWVR6MlTstla1cIfOGyl8+qb93FlAVutcor14Gf5Md5ap5ySfQ7R9S/NjNaMLSFdUnKGEasmVnu3lCMqB7w==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.52.5': + resolution: {integrity: sha512-Aufdpzp7DpOTULJCuvzqcItSGDH73pF3ko/f+ckJhxQyHtp67rHw3HMNxoIdDMUITJESNE6a8uh4Lo4SLouOUg==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-gnu@4.52.5': + resolution: {integrity: sha512-UGBUGPFp1vkj6p8wCRraqNhqwX/4kNQPS57BCFc8wYh0g94iVIW33wJtQAx3G7vrjjNtRaxiMUylM0ktp/TRSQ==} + cpu: [x64] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.52.5': + resolution: {integrity: sha512-TAcgQh2sSkykPRWLrdyy2AiceMckNf5loITqXxFI5VuQjS5tSuw3WlwdN8qv8vzjLAUTvYaH/mVjSFpbkFbpTg==} + cpu: [x64] + os: [win32] + + '@types/chai@5.2.2': + resolution: {integrity: sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==} + + '@types/deep-eql@4.0.2': + resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} + + '@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/resolve@1.20.2': + resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} + + '@vitest/expect@3.2.4': + resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==} + + '@vitest/mocker@3.2.4': + resolution: {integrity: sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==} + peerDependencies: + msw: ^2.4.9 + vite: ^5.0.0 || ^6.0.0 || ^7.0.0-0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + + '@vitest/pretty-format@3.2.4': + resolution: {integrity: sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==} + + '@vitest/runner@3.2.4': + resolution: {integrity: sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==} + + '@vitest/snapshot@3.2.4': + resolution: {integrity: sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==} + + '@vitest/spy@3.2.4': + resolution: {integrity: sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==} + + '@vitest/utils@3.2.4': + resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==} + + acorn@8.15.0: + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} + engines: {node: '>=0.4.0'} + hasBin: true + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.2.2: + resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} + engines: {node: '>=12'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@6.2.3: + resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} + engines: {node: '>=12'} + + any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + + assertion-error@2.0.1: + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + engines: {node: '>=12'} + + autoprefixer@10.4.21: + resolution: {integrity: sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + baseline-browser-mapping@2.8.20: + resolution: {integrity: sha512-JMWsdF+O8Orq3EMukbUN1QfbLK9mX2CkUmQBcW2T0s8OmdAUL5LLM/6wFwSrqXzlXB13yhyK9gTKS1rIizOduQ==} + hasBin: true + + boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + + brace-expansion@2.0.2: + resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} + + browserslist@4.27.0: + resolution: {integrity: sha512-AXVQwdhot1eqLihwasPElhX2tAZiBjWdJ9i/Zcj2S6QYIjkx62OKSfnobkriB81C3l4w0rVy3Nt4jaTBltYEpw==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + bundle-require@5.1.0: + resolution: {integrity: sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + peerDependencies: + esbuild: '>=0.18' + + cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + + caniuse-api@3.0.0: + resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} + + caniuse-lite@1.0.30001751: + resolution: {integrity: sha512-A0QJhug0Ly64Ii3eIqHu5X51ebln3k4yTUkY1j8drqpWHVreg/VLijN48cZ1bYPiqOQuqpkIKnzr/Ul8V+p6Cw==} + + chai@5.3.3: + resolution: {integrity: sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==} + engines: {node: '>=18'} + + check-error@2.1.1: + resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} + engines: {node: '>= 16'} + + chokidar@4.0.3: + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} + engines: {node: '>= 14.16.0'} + + citty@0.1.6: + resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + colord@2.9.3: + resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} + + commander@11.1.0: + resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} + engines: {node: '>=16'} + + commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + + commondir@1.0.1: + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + + confbox@0.1.8: + resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} + + confbox@0.2.2: + resolution: {integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==} + + consola@3.4.2: + 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'} + + css-declaration-sorter@7.3.0: + resolution: {integrity: sha512-LQF6N/3vkAMYF4xoHLJfG718HRJh34Z8BnNhd6bosOMIVjMlhuZK5++oZa3uYAgrI5+7x2o27gUqTR2U/KjUOQ==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.0.9 + + css-select@5.2.2: + resolution: {integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==} + + css-tree@2.2.1: + resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + + css-tree@3.1.0: + resolution: {integrity: sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + + css-what@6.2.2: + resolution: {integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==} + engines: {node: '>= 6'} + + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + cssnano-preset-default@7.0.9: + resolution: {integrity: sha512-tCD6AAFgYBOVpMBX41KjbvRh9c2uUjLXRyV7KHSIrwHiq5Z9o0TFfUCoM3TwVrRsRteN3sVXGNvjVNxYzkpTsA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + cssnano-utils@5.0.1: + resolution: {integrity: sha512-ZIP71eQgG9JwjVZsTPSqhc6GHgEr53uJ7tK5///VfyWj6Xp2DBmixWHqJgPno+PqATzn48pL42ww9x5SSGmhZg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + cssnano@7.1.1: + resolution: {integrity: sha512-fm4D8ti0dQmFPeF8DXSAA//btEmqCOgAc/9Oa3C1LW94h5usNrJEfrON7b4FkPZgnDEn6OUs5NdxiJZmAtGOpQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + csso@5.0.5: + resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + + dayjs@1.11.18: + resolution: {integrity: sha512-zFBQ7WFRvVRhKcWoUh+ZA1g2HVgUbsZm9sbddh8EC5iv93sui8DVVz1Npvz+r6meo9VKfa8NyLWBsQK1VvIKPA==} + + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + deep-eql@5.0.2: + resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} + engines: {node: '>=6'} + + deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + + defu@6.1.4: + resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} + + dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + + domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + + domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + + domutils@3.2.2: + resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} + + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + electron-to-chromium@1.5.240: + resolution: {integrity: sha512-OBwbZjWgrCOH+g6uJsA2/7Twpas2OlepS9uvByJjR2datRDuKGYeD+nP8lBBks2qnB7bGJNHDUx7c/YLaT3QMQ==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + es-module-lexer@1.7.0: + resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} + + esbuild@0.25.11: + resolution: {integrity: sha512-KohQwyzrKTQmhXDW1PjCv3Tyspn9n5GcY2RTDqeORIdIJY8yKIF7sTSopFmn/wpMPW4rdPXI0UE5LJLuq3bx0Q==} + engines: {node: '>=18'} + hasBin: true + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + + expect-type@1.2.2: + resolution: {integrity: sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==} + engines: {node: '>=12.0.0'} + + exsolve@1.0.7: + resolution: {integrity: sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==} + + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + fix-dts-default-cjs-exports@1.0.1: + resolution: {integrity: sha512-pVIECanWFC61Hzl2+oOCtoJ3F17kglZC/6N94eRWycFgBH35hHx0Li604ZIzhseh97mf2p0cv7vVrOZGoqhlEg==} + + foreground-child@3.3.1: + resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} + engines: {node: '>=14'} + + fraction.js@4.3.7: + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + hookable@5.5.3: + resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} + + is-core-module@2.16.1: + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} + engines: {node: '>= 0.4'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-module@1.0.0: + resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} + + is-reference@1.2.1: + resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + + jiti@1.21.7: + resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} + hasBin: true + + jiti@2.6.1: + resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} + hasBin: true + + joycon@3.1.1: + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} + engines: {node: '>=10'} + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-tokens@9.0.1: + resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} + + knitwork@1.2.0: + resolution: {integrity: sha512-xYSH7AvuQ6nXkq42x0v5S8/Iry+cfulBz/DJQzhIyESdLD7425jXsPy4vn5cCXU+HhRN2kVw51Vd1K6/By4BQg==} + + lilconfig@3.1.3: + resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} + engines: {node: '>=14'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + load-tsconfig@0.2.5: + resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + 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==} + + loupe@3.2.1: + resolution: {integrity: sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==} + + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + + magic-string@0.30.19: + resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==} + + mdn-data@2.0.28: + resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} + + mdn-data@2.12.2: + resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==} + + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + + mkdist@2.4.1: + resolution: {integrity: sha512-Ezk0gi04GJBkqMfsksICU5Rjoemc4biIekwgrONWVPor2EO/N9nBgN6MZXAf7Yw4mDDhrNyKbdETaHNevfumKg==} + hasBin: true + peerDependencies: + sass: ^1.92.1 + typescript: '>=5.9.2' + vue: ^3.5.21 + vue-sfc-transformer: ^0.1.1 + vue-tsc: ^1.8.27 || ^2.0.21 || ^3.0.0 + peerDependenciesMeta: + sass: + optional: true + typescript: + optional: true + vue: + optional: true + vue-sfc-transformer: + optional: true + vue-tsc: + optional: true + + mlly@1.8.0: + resolution: {integrity: sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + 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} @@ -95,88 +901,1871 @@ packages: encoding: optional: true + node-releases@2.0.26: + resolution: {integrity: sha512-S2M9YimhSjBSvYnlr5/+umAnPHE++ODwt5e2Ij6FoX45HA/s4vHdkDx1eax2pAPeAOqu4s9b7ppahsyEFdVqQA==} + + normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} + + nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + + pathe@2.0.3: + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + + pathval@2.0.1: + resolution: {integrity: sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==} + engines: {node: '>= 14.16'} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@4.0.3: + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} + engines: {node: '>=12'} + + pirates@4.0.7: + resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} + engines: {node: '>= 6'} + + pkg-types@1.3.1: + resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} + + pkg-types@2.3.0: + resolution: {integrity: sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==} + + postcss-calc@10.1.1: + resolution: {integrity: sha512-NYEsLHh8DgG/PRH2+G9BTuUdtf9ViS+vdoQ0YA5OQdGsfN4ztiwtDWNtBl9EKeqNMFnIu8IKZ0cLxEQ5r5KVMw==} + engines: {node: ^18.12 || ^20.9 || >=22.0} + peerDependencies: + postcss: ^8.4.38 + + postcss-colormin@7.0.4: + resolution: {integrity: sha512-ziQuVzQZBROpKpfeDwmrG+Vvlr0YWmY/ZAk99XD+mGEBuEojoFekL41NCsdhyNUtZI7DPOoIWIR7vQQK9xwluw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + postcss-convert-values@7.0.7: + resolution: {integrity: sha512-HR9DZLN04Xbe6xugRH6lS4ZQH2zm/bFh/ZyRkpedZozhvh+awAfbA0P36InO4fZfDhvYfNJeNvlTf1sjwGbw/A==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + postcss-discard-comments@7.0.4: + resolution: {integrity: sha512-6tCUoql/ipWwKtVP/xYiFf1U9QgJ0PUvxN7pTcsQ8Ns3Fnwq1pU5D5s1MhT/XySeLq6GXNvn37U46Ded0TckWg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + postcss-discard-duplicates@7.0.2: + resolution: {integrity: sha512-eTonaQvPZ/3i1ASDHOKkYwAybiM45zFIc7KXils4mQmHLqIswXD9XNOKEVxtTFnsmwYzF66u4LMgSr0abDlh5w==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + postcss-discard-empty@7.0.1: + resolution: {integrity: sha512-cFrJKZvcg/uxB6Ijr4l6qmn3pXQBna9zyrPC+sK0zjbkDUZew+6xDltSF7OeB7rAtzaaMVYSdbod+sZOCWnMOg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + postcss-discard-overridden@7.0.1: + resolution: {integrity: sha512-7c3MMjjSZ/qYrx3uc1940GSOzN1Iqjtlqe8uoSg+qdVPYyRb0TILSqqmtlSFuE4mTDECwsm397Ya7iXGzfF7lg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + postcss-load-config@6.0.1: + resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} + engines: {node: '>= 18'} + peerDependencies: + jiti: '>=1.21.0' + postcss: '>=8.0.9' + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + jiti: + optional: true + postcss: + optional: true + tsx: + optional: true + yaml: + optional: true + + postcss-merge-longhand@7.0.5: + resolution: {integrity: sha512-Kpu5v4Ys6QI59FxmxtNB/iHUVDn9Y9sYw66D6+SZoIk4QTz1prC4aYkhIESu+ieG1iylod1f8MILMs1Em3mmIw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + postcss-merge-rules@7.0.6: + resolution: {integrity: sha512-2jIPT4Tzs8K87tvgCpSukRQ2jjd+hH6Bb8rEEOUDmmhOeTcqDg5fEFK8uKIu+Pvc3//sm3Uu6FRqfyv7YF7+BQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + postcss-minify-font-values@7.0.1: + resolution: {integrity: sha512-2m1uiuJeTplll+tq4ENOQSzB8LRnSUChBv7oSyFLsJRtUgAAJGP6LLz0/8lkinTgxrmJSPOEhgY1bMXOQ4ZXhQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + postcss-minify-gradients@7.0.1: + resolution: {integrity: sha512-X9JjaysZJwlqNkJbUDgOclyG3jZEpAMOfof6PUZjPnPrePnPG62pS17CjdM32uT1Uq1jFvNSff9l7kNbmMSL2A==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + postcss-minify-params@7.0.4: + resolution: {integrity: sha512-3OqqUddfH8c2e7M35W6zIwv7jssM/3miF9cbCSb1iJiWvtguQjlxZGIHK9JRmc8XAKmE2PFGtHSM7g/VcW97sw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + postcss-minify-selectors@7.0.5: + resolution: {integrity: sha512-x2/IvofHcdIrAm9Q+p06ZD1h6FPcQ32WtCRVodJLDR+WMn8EVHI1kvLxZuGKz/9EY5nAmI6lIQIrpo4tBy5+ug==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + postcss-nested@7.0.2: + resolution: {integrity: sha512-5osppouFc0VR9/VYzYxO03VaDa3e8F23Kfd6/9qcZTUI8P58GIYlArOET2Wq0ywSl2o2PjELhYOFI4W7l5QHKw==} + engines: {node: '>=18.0'} + peerDependencies: + postcss: ^8.2.14 + + postcss-normalize-charset@7.0.1: + resolution: {integrity: sha512-sn413ofhSQHlZFae//m9FTOfkmiZ+YQXsbosqOWRiVQncU2BA3daX3n0VF3cG6rGLSFVc5Di/yns0dFfh8NFgQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + postcss-normalize-display-values@7.0.1: + resolution: {integrity: sha512-E5nnB26XjSYz/mGITm6JgiDpAbVuAkzXwLzRZtts19jHDUBFxZ0BkXAehy0uimrOjYJbocby4FVswA/5noOxrQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + postcss-normalize-positions@7.0.1: + resolution: {integrity: sha512-pB/SzrIP2l50ZIYu+yQZyMNmnAcwyYb9R1fVWPRxm4zcUFCY2ign7rcntGFuMXDdd9L2pPNUgoODDk91PzRZuQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + postcss-normalize-repeat-style@7.0.1: + resolution: {integrity: sha512-NsSQJ8zj8TIDiF0ig44Byo3Jk9e4gNt9x2VIlJudnQQ5DhWAHJPF4Tr1ITwyHio2BUi/I6Iv0HRO7beHYOloYQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + postcss-normalize-string@7.0.1: + resolution: {integrity: sha512-QByrI7hAhsoze992kpbMlJSbZ8FuCEc1OT9EFbZ6HldXNpsdpZr+YXC5di3UEv0+jeZlHbZcoCADgb7a+lPmmQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + postcss-normalize-timing-functions@7.0.1: + resolution: {integrity: sha512-bHifyuuSNdKKsnNJ0s8fmfLMlvsQwYVxIoUBnowIVl2ZAdrkYQNGVB4RxjfpvkMjipqvbz0u7feBZybkl/6NJg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + postcss-normalize-unicode@7.0.4: + resolution: {integrity: sha512-LvIURTi1sQoZqj8mEIE8R15yvM+OhbR1avynMtI9bUzj5gGKR/gfZFd8O7VMj0QgJaIFzxDwxGl/ASMYAkqO8g==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + postcss-normalize-url@7.0.1: + resolution: {integrity: sha512-sUcD2cWtyK1AOL/82Fwy1aIVm/wwj5SdZkgZ3QiUzSzQQofrbq15jWJ3BA7Z+yVRwamCjJgZJN0I9IS7c6tgeQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + postcss-normalize-whitespace@7.0.1: + resolution: {integrity: sha512-vsbgFHMFQrJBJKrUFJNZ2pgBeBkC2IvvoHjz1to0/0Xk7sII24T0qFOiJzG6Fu3zJoq/0yI4rKWi7WhApW+EFA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + postcss-ordered-values@7.0.2: + resolution: {integrity: sha512-AMJjt1ECBffF7CEON/Y0rekRLS6KsePU6PRP08UqYW4UGFRnTXNrByUzYK1h8AC7UWTZdQ9O3Oq9kFIhm0SFEw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + postcss-reduce-initial@7.0.4: + resolution: {integrity: sha512-rdIC9IlMBn7zJo6puim58Xd++0HdbvHeHaPgXsimMfG1ijC5A9ULvNLSE0rUKVJOvNMcwewW4Ga21ngyJjY/+Q==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + postcss-reduce-transforms@7.0.1: + resolution: {integrity: sha512-MhyEbfrm+Mlp/36hvZ9mT9DaO7dbncU0CvWI8V93LRkY6IYlu38OPg3FObnuKTUxJ4qA8HpurdQOo5CyqqO76g==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + postcss-selector-parser@7.1.0: + resolution: {integrity: sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==} + engines: {node: '>=4'} + + postcss-svgo@7.1.0: + resolution: {integrity: sha512-KnAlfmhtoLz6IuU3Sij2ycusNs4jPW+QoFE5kuuUOK8awR6tMxZQrs5Ey3BUz7nFCzT3eqyFgqkyrHiaU2xx3w==} + engines: {node: ^18.12.0 || ^20.9.0 || >= 18} + peerDependencies: + postcss: ^8.4.32 + + postcss-unique-selectors@7.0.4: + resolution: {integrity: sha512-pmlZjsmEAG7cHd7uK3ZiNSW6otSZ13RHuZ/4cDN/bVglS5EpF2r2oxY99SuOHa8m7AWoBCelTS3JPpzsIs8skQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + + postcss@8.5.6: + resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} + engines: {node: ^10 || ^12 || >=14} + + pretty-bytes@7.1.0: + 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'} + + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + + resolve@1.22.11: + resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==} + engines: {node: '>= 0.4'} + hasBin: true + + rollup-plugin-dts@6.2.3: + resolution: {integrity: sha512-UgnEsfciXSPpASuOelix7m4DrmyQgiaWBnvI0TM4GxuDh5FkqW8E5hu57bCxXB90VvR1WNfLV80yEDN18UogSA==} + engines: {node: '>=16'} + peerDependencies: + rollup: ^3.29.4 || ^4 + typescript: ^4.5 || ^5.0 + + rollup@4.52.5: + resolution: {integrity: sha512-3GuObel8h7Kqdjt0gxkEzaifHTqLVW56Y/bjN7PSQtkKr0w3V/QYSdt6QWYtd7A1xUtYQigtdUfgj1RvWVtorw==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + sax@1.4.1: + resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} + + scule@1.3.0: + resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==} + + semver@7.7.3: + resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} + engines: {node: '>=10'} + hasBin: true + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + source-map-js@1.2.1: + 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 + + stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + + std-env@3.10.0: + resolution: {integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.2: + resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==} + engines: {node: '>=12'} + + strip-literal@3.1.0: + resolution: {integrity: sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==} + + stylehacks@7.0.6: + resolution: {integrity: sha512-iitguKivmsueOmTO0wmxURXBP8uqOO+zikLGZ7Mm9e/94R4w5T999Js2taS/KBOnQ/wdC3jN3vNSrkGDrlnqQg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + sucrase@3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + svgo@4.0.0: + resolution: {integrity: sha512-VvrHQ+9uniE+Mvx3+C9IEe/lWasXCU0nXMY2kZeLrHNICuRiC8uMPyM14UEaMOFA5mhyQqEkB02VoQ16n3DLaw==} + engines: {node: '>=16'} + hasBin: true + + thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + + thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + + tinybench@2.9.0: + resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} + + tinyexec@0.3.2: + resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} + + tinyglobby@0.2.15: + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} + engines: {node: '>=12.0.0'} + + tinypool@1.1.1: + resolution: {integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==} + engines: {node: ^18.0.0 || >=20.0.0} + + tinyrainbow@2.0.0: + resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} + engines: {node: '>=14.0.0'} + + tinyspy@4.0.4: + resolution: {integrity: sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==} + engines: {node: '>=14.0.0'} + tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - typescript@5.8.3: - resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} + tr46@1.0.1: + resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + + tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + + ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + + tsup@8.5.0: + resolution: {integrity: sha512-VmBp77lWNQq6PfuMqCHD3xWl22vEoWsKajkF8t+yMBawlUS8JzEI+vOVMeuNZIuMML8qXRizFKi9oD5glKQVcQ==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + '@microsoft/api-extractor': ^7.36.0 + '@swc/core': ^1 + postcss: ^8.4.12 + typescript: '>=4.5.0' + peerDependenciesMeta: + '@microsoft/api-extractor': + optional: true + '@swc/core': + optional: true + postcss: + optional: true + typescript: + optional: true + + typescript@5.9.3: + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} engines: {node: '>=14.17'} hasBin: true + ufo@1.6.1: + resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==} + + unbuild@3.6.1: + resolution: {integrity: sha512-+U5CdtrdjfWkZhuO4N9l5UhyiccoeMEXIc2Lbs30Haxb+tRwB3VwB8AoZRxlAzORXunenSo+j6lh45jx+xkKgg==} + hasBin: true + peerDependencies: + typescript: ^5.9.2 + peerDependenciesMeta: + typescript: + optional: true + undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + untyped@2.0.0: + resolution: {integrity: sha512-nwNCjxJTjNuLCgFr42fEak5OcLuB3ecca+9ksPFNvtfYSLpjf+iJqSIaSnIile6ZPbKYxI5k2AfXqeopGudK/g==} + hasBin: true + + update-browserslist-db@1.1.4: + resolution: {integrity: sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + uuid@11.1.0: + resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==} + hasBin: true + + vite-node@3.2.4: + resolution: {integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + + vite@7.1.10: + resolution: {integrity: sha512-CmuvUBzVJ/e3HGxhg6cYk88NGgTnBoOo7ogtfJJ0fefUWAxN/WDSUa50o+oVBxuIhO8FoEZW0j2eW7sfjs5EtA==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + '@types/node': ^20.19.0 || >=22.12.0 + jiti: '>=1.21.0' + less: ^4.0.0 + lightningcss: ^1.21.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: '>=0.54.8' + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + + vitest@3.2.4: + resolution: {integrity: sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/debug': ^4.1.12 + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + '@vitest/browser': 3.2.4 + '@vitest/ui': 3.2.4 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/debug': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + 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==} - zod@3.24.1: - resolution: {integrity: sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==} + whatwg-url@7.1.0: + resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + why-is-node-running@2.3.0: + resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} + engines: {node: '>=8'} + hasBin: true + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + + zod@4.1.4: + resolution: {integrity: sha512-2YqJuWkU6IIK9qcE4k1lLLhyZ6zFw7XVRdQGpV97jEIZwTrscUw+DY31Xczd8nwaoksyJUIxCojZXwckJovWxA==} snapshots: - '@biomejs/biome@2.0.6': + '@babel/code-frame@7.27.1': + dependencies: + '@babel/helper-validator-identifier': 7.28.5 + js-tokens: 4.0.0 + picocolors: 1.1.1 + optional: true + + '@babel/helper-validator-identifier@7.28.5': + optional: true + + '@biomejs/biome@2.1.4': optionalDependencies: - '@biomejs/cli-darwin-arm64': 2.0.6 - '@biomejs/cli-darwin-x64': 2.0.6 - '@biomejs/cli-linux-arm64': 2.0.6 - '@biomejs/cli-linux-arm64-musl': 2.0.6 - '@biomejs/cli-linux-x64': 2.0.6 - '@biomejs/cli-linux-x64-musl': 2.0.6 - '@biomejs/cli-win32-arm64': 2.0.6 - '@biomejs/cli-win32-x64': 2.0.6 + '@biomejs/cli-darwin-arm64': 2.1.4 + '@biomejs/cli-darwin-x64': 2.1.4 + '@biomejs/cli-linux-arm64': 2.1.4 + '@biomejs/cli-linux-arm64-musl': 2.1.4 + '@biomejs/cli-linux-x64': 2.1.4 + '@biomejs/cli-linux-x64-musl': 2.1.4 + '@biomejs/cli-win32-arm64': 2.1.4 + '@biomejs/cli-win32-x64': 2.1.4 - '@biomejs/cli-darwin-arm64@2.0.6': + '@biomejs/cli-darwin-arm64@2.1.4': optional: true - '@biomejs/cli-darwin-x64@2.0.6': + '@biomejs/cli-darwin-x64@2.1.4': optional: true - '@biomejs/cli-linux-arm64-musl@2.0.6': + '@biomejs/cli-linux-arm64-musl@2.1.4': optional: true - '@biomejs/cli-linux-arm64@2.0.6': + '@biomejs/cli-linux-arm64@2.1.4': optional: true - '@biomejs/cli-linux-x64-musl@2.0.6': + '@biomejs/cli-linux-x64-musl@2.1.4': optional: true - '@biomejs/cli-linux-x64@2.0.6': + '@biomejs/cli-linux-x64@2.1.4': optional: true - '@biomejs/cli-win32-arm64@2.0.6': + '@biomejs/cli-win32-arm64@2.1.4': optional: true - '@biomejs/cli-win32-x64@2.0.6': + '@biomejs/cli-win32-x64@2.1.4': optional: true - '@types/node@20.19.4': + '@esbuild/aix-ppc64@0.25.11': + optional: true + + '@esbuild/android-arm64@0.25.11': + optional: true + + '@esbuild/android-arm@0.25.11': + optional: true + + '@esbuild/android-x64@0.25.11': + optional: true + + '@esbuild/darwin-arm64@0.25.11': + optional: true + + '@esbuild/darwin-x64@0.25.11': + optional: true + + '@esbuild/freebsd-arm64@0.25.11': + optional: true + + '@esbuild/freebsd-x64@0.25.11': + optional: true + + '@esbuild/linux-arm64@0.25.11': + optional: true + + '@esbuild/linux-arm@0.25.11': + optional: true + + '@esbuild/linux-ia32@0.25.11': + optional: true + + '@esbuild/linux-loong64@0.25.11': + optional: true + + '@esbuild/linux-mips64el@0.25.11': + optional: true + + '@esbuild/linux-ppc64@0.25.11': + optional: true + + '@esbuild/linux-riscv64@0.25.11': + optional: true + + '@esbuild/linux-s390x@0.25.11': + optional: true + + '@esbuild/linux-x64@0.25.11': + optional: true + + '@esbuild/netbsd-arm64@0.25.11': + optional: true + + '@esbuild/netbsd-x64@0.25.11': + optional: true + + '@esbuild/openbsd-arm64@0.25.11': + optional: true + + '@esbuild/openbsd-x64@0.25.11': + optional: true + + '@esbuild/openharmony-arm64@0.25.11': + optional: true + + '@esbuild/sunos-x64@0.25.11': + optional: true + + '@esbuild/win32-arm64@0.25.11': + optional: true + + '@esbuild/win32-ia32@0.25.11': + optional: true + + '@esbuild/win32-x64@0.25.11': + optional: true + + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.2 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + + '@jridgewell/gen-mapping@0.3.13': + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/sourcemap-codec@1.5.5': {} + + '@jridgewell/trace-mapping@0.3.31': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 + + '@pkgjs/parseargs@0.11.0': + optional: true + + '@rollup/plugin-alias@5.1.1(rollup@4.52.5)': + optionalDependencies: + rollup: 4.52.5 + + '@rollup/plugin-commonjs@28.0.9(rollup@4.52.5)': + dependencies: + '@rollup/pluginutils': 5.3.0(rollup@4.52.5) + commondir: 1.0.1 + estree-walker: 2.0.2 + fdir: 6.5.0(picomatch@4.0.3) + is-reference: 1.2.1 + magic-string: 0.30.19 + picomatch: 4.0.3 + optionalDependencies: + rollup: 4.52.5 + + '@rollup/plugin-json@6.1.0(rollup@4.52.5)': + dependencies: + '@rollup/pluginutils': 5.3.0(rollup@4.52.5) + optionalDependencies: + rollup: 4.52.5 + + '@rollup/plugin-node-resolve@16.0.3(rollup@4.52.5)': + dependencies: + '@rollup/pluginutils': 5.3.0(rollup@4.52.5) + '@types/resolve': 1.20.2 + deepmerge: 4.3.1 + is-module: 1.0.0 + resolve: 1.22.11 + optionalDependencies: + rollup: 4.52.5 + + '@rollup/plugin-replace@6.0.2(rollup@4.52.5)': + dependencies: + '@rollup/pluginutils': 5.3.0(rollup@4.52.5) + magic-string: 0.30.19 + optionalDependencies: + rollup: 4.52.5 + + '@rollup/pluginutils@5.3.0(rollup@4.52.5)': + dependencies: + '@types/estree': 1.0.8 + estree-walker: 2.0.2 + picomatch: 4.0.3 + optionalDependencies: + rollup: 4.52.5 + + '@rollup/rollup-android-arm-eabi@4.52.5': + optional: true + + '@rollup/rollup-android-arm64@4.52.5': + optional: true + + '@rollup/rollup-darwin-arm64@4.52.5': + optional: true + + '@rollup/rollup-darwin-x64@4.52.5': + optional: true + + '@rollup/rollup-freebsd-arm64@4.52.5': + optional: true + + '@rollup/rollup-freebsd-x64@4.52.5': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.52.5': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.52.5': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.52.5': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.52.5': + optional: true + + '@rollup/rollup-linux-loong64-gnu@4.52.5': + optional: true + + '@rollup/rollup-linux-ppc64-gnu@4.52.5': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.52.5': + optional: true + + '@rollup/rollup-linux-riscv64-musl@4.52.5': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.52.5': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.52.5': + optional: true + + '@rollup/rollup-linux-x64-musl@4.52.5': + optional: true + + '@rollup/rollup-openharmony-arm64@4.52.5': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.52.5': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.52.5': + optional: true + + '@rollup/rollup-win32-x64-gnu@4.52.5': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.52.5': + optional: true + + '@types/chai@5.2.2': + dependencies: + '@types/deep-eql': 4.0.2 + + '@types/deep-eql@4.0.2': {} + + '@types/estree@1.0.8': {} + + '@types/node@20.19.22': dependencies: undici-types: 6.21.0 + '@types/resolve@1.20.2': {} + + '@vitest/expect@3.2.4': + dependencies: + '@types/chai': 5.2.2 + '@vitest/spy': 3.2.4 + '@vitest/utils': 3.2.4 + 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))': + 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) + + '@vitest/pretty-format@3.2.4': + dependencies: + tinyrainbow: 2.0.0 + + '@vitest/runner@3.2.4': + dependencies: + '@vitest/utils': 3.2.4 + pathe: 2.0.3 + strip-literal: 3.1.0 + + '@vitest/snapshot@3.2.4': + dependencies: + '@vitest/pretty-format': 3.2.4 + magic-string: 0.30.19 + pathe: 2.0.3 + + '@vitest/spy@3.2.4': + dependencies: + tinyspy: 4.0.4 + + '@vitest/utils@3.2.4': + dependencies: + '@vitest/pretty-format': 3.2.4 + loupe: 3.2.1 + tinyrainbow: 2.0.0 + + acorn@8.15.0: {} + + ansi-regex@5.0.1: {} + + ansi-regex@6.2.2: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@6.2.3: {} + + any-promise@1.3.0: {} + + assertion-error@2.0.1: {} + + autoprefixer@10.4.21(postcss@8.5.6): + dependencies: + browserslist: 4.27.0 + caniuse-lite: 1.0.30001751 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.1.1 + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + + balanced-match@1.0.2: {} + + baseline-browser-mapping@2.8.20: {} + + boolbase@1.0.0: {} + + brace-expansion@2.0.2: + dependencies: + balanced-match: 1.0.2 + + browserslist@4.27.0: + dependencies: + baseline-browser-mapping: 2.8.20 + caniuse-lite: 1.0.30001751 + electron-to-chromium: 1.5.240 + node-releases: 2.0.26 + update-browserslist-db: 1.1.4(browserslist@4.27.0) + + bundle-require@5.1.0(esbuild@0.25.11): + dependencies: + esbuild: 0.25.11 + load-tsconfig: 0.2.5 + + cac@6.7.14: {} + + caniuse-api@3.0.0: + dependencies: + browserslist: 4.27.0 + caniuse-lite: 1.0.30001751 + lodash.memoize: 4.1.2 + lodash.uniq: 4.5.0 + + caniuse-lite@1.0.30001751: {} + + chai@5.3.3: + dependencies: + assertion-error: 2.0.1 + check-error: 2.1.1 + deep-eql: 5.0.2 + loupe: 3.2.1 + pathval: 2.0.1 + + check-error@2.1.1: {} + + chokidar@4.0.3: + dependencies: + readdirp: 4.1.2 + + citty@0.1.6: + dependencies: + consola: 3.4.2 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + colord@2.9.3: {} + + commander@11.1.0: {} + + commander@4.1.1: {} + + commondir@1.0.1: {} + + confbox@0.1.8: {} + + confbox@0.2.2: {} + + 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 + shebang-command: 2.0.0 + which: 2.0.2 + + css-declaration-sorter@7.3.0(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + + css-select@5.2.2: + dependencies: + boolbase: 1.0.0 + css-what: 6.2.2 + domhandler: 5.0.3 + domutils: 3.2.2 + nth-check: 2.1.1 + + css-tree@2.2.1: + dependencies: + mdn-data: 2.0.28 + source-map-js: 1.2.1 + + css-tree@3.1.0: + dependencies: + mdn-data: 2.12.2 + source-map-js: 1.2.1 + + css-what@6.2.2: {} + + cssesc@3.0.0: {} + + cssnano-preset-default@7.0.9(postcss@8.5.6): + dependencies: + browserslist: 4.27.0 + css-declaration-sorter: 7.3.0(postcss@8.5.6) + cssnano-utils: 5.0.1(postcss@8.5.6) + postcss: 8.5.6 + postcss-calc: 10.1.1(postcss@8.5.6) + postcss-colormin: 7.0.4(postcss@8.5.6) + postcss-convert-values: 7.0.7(postcss@8.5.6) + postcss-discard-comments: 7.0.4(postcss@8.5.6) + postcss-discard-duplicates: 7.0.2(postcss@8.5.6) + postcss-discard-empty: 7.0.1(postcss@8.5.6) + postcss-discard-overridden: 7.0.1(postcss@8.5.6) + postcss-merge-longhand: 7.0.5(postcss@8.5.6) + postcss-merge-rules: 7.0.6(postcss@8.5.6) + postcss-minify-font-values: 7.0.1(postcss@8.5.6) + postcss-minify-gradients: 7.0.1(postcss@8.5.6) + postcss-minify-params: 7.0.4(postcss@8.5.6) + postcss-minify-selectors: 7.0.5(postcss@8.5.6) + postcss-normalize-charset: 7.0.1(postcss@8.5.6) + postcss-normalize-display-values: 7.0.1(postcss@8.5.6) + postcss-normalize-positions: 7.0.1(postcss@8.5.6) + postcss-normalize-repeat-style: 7.0.1(postcss@8.5.6) + postcss-normalize-string: 7.0.1(postcss@8.5.6) + postcss-normalize-timing-functions: 7.0.1(postcss@8.5.6) + postcss-normalize-unicode: 7.0.4(postcss@8.5.6) + postcss-normalize-url: 7.0.1(postcss@8.5.6) + postcss-normalize-whitespace: 7.0.1(postcss@8.5.6) + postcss-ordered-values: 7.0.2(postcss@8.5.6) + postcss-reduce-initial: 7.0.4(postcss@8.5.6) + postcss-reduce-transforms: 7.0.1(postcss@8.5.6) + postcss-svgo: 7.1.0(postcss@8.5.6) + postcss-unique-selectors: 7.0.4(postcss@8.5.6) + + cssnano-utils@5.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + + cssnano@7.1.1(postcss@8.5.6): + dependencies: + cssnano-preset-default: 7.0.9(postcss@8.5.6) + lilconfig: 3.1.3 + postcss: 8.5.6 + + csso@5.0.5: + dependencies: + css-tree: 2.2.1 + + dayjs@1.11.18: {} + + debug@4.4.3: + dependencies: + ms: 2.1.3 + + deep-eql@5.0.2: {} + + deepmerge@4.3.1: {} + + defu@6.1.4: {} + + dom-serializer@2.0.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.5.0 + + domelementtype@2.3.0: {} + + domhandler@5.0.3: + dependencies: + domelementtype: 2.3.0 + + domutils@3.2.2: + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + + eastasianwidth@0.2.0: {} + + electron-to-chromium@1.5.240: {} + + emoji-regex@8.0.0: {} + + emoji-regex@9.2.2: {} + + entities@4.5.0: {} + + es-module-lexer@1.7.0: {} + + esbuild@0.25.11: + optionalDependencies: + '@esbuild/aix-ppc64': 0.25.11 + '@esbuild/android-arm': 0.25.11 + '@esbuild/android-arm64': 0.25.11 + '@esbuild/android-x64': 0.25.11 + '@esbuild/darwin-arm64': 0.25.11 + '@esbuild/darwin-x64': 0.25.11 + '@esbuild/freebsd-arm64': 0.25.11 + '@esbuild/freebsd-x64': 0.25.11 + '@esbuild/linux-arm': 0.25.11 + '@esbuild/linux-arm64': 0.25.11 + '@esbuild/linux-ia32': 0.25.11 + '@esbuild/linux-loong64': 0.25.11 + '@esbuild/linux-mips64el': 0.25.11 + '@esbuild/linux-ppc64': 0.25.11 + '@esbuild/linux-riscv64': 0.25.11 + '@esbuild/linux-s390x': 0.25.11 + '@esbuild/linux-x64': 0.25.11 + '@esbuild/netbsd-arm64': 0.25.11 + '@esbuild/netbsd-x64': 0.25.11 + '@esbuild/openbsd-arm64': 0.25.11 + '@esbuild/openbsd-x64': 0.25.11 + '@esbuild/openharmony-arm64': 0.25.11 + '@esbuild/sunos-x64': 0.25.11 + '@esbuild/win32-arm64': 0.25.11 + '@esbuild/win32-ia32': 0.25.11 + '@esbuild/win32-x64': 0.25.11 + + escalade@3.2.0: {} + + estree-walker@2.0.2: {} + + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.8 + + expect-type@1.2.2: {} + + exsolve@1.0.7: {} + + fdir@6.5.0(picomatch@4.0.3): + optionalDependencies: + picomatch: 4.0.3 + + fix-dts-default-cjs-exports@1.0.1: + dependencies: + magic-string: 0.30.19 + mlly: 1.8.0 + rollup: 4.52.5 + + foreground-child@3.3.1: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + + fraction.js@4.3.7: {} + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + glob@10.4.5: + dependencies: + foreground-child: 3.3.1 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + hookable@5.5.3: {} + + is-core-module@2.16.1: + dependencies: + hasown: 2.0.2 + + is-fullwidth-code-point@3.0.0: {} + + is-module@1.0.0: {} + + is-reference@1.2.1: + dependencies: + '@types/estree': 1.0.8 + + isexe@2.0.0: {} + + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + jiti@1.21.7: {} + + jiti@2.6.1: {} + + joycon@3.1.1: {} + + js-tokens@4.0.0: + optional: true + + js-tokens@9.0.1: {} + + knitwork@1.2.0: {} + + lilconfig@3.1.3: {} + + lines-and-columns@1.2.4: {} + + load-tsconfig@0.2.5: {} + + lodash.memoize@4.1.2: {} + + lodash.sortby@4.7.0: {} + + lodash.uniq@4.5.0: {} + + loupe@3.2.1: {} + + lru-cache@10.4.3: {} + + magic-string@0.30.19: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + + mdn-data@2.0.28: {} + + mdn-data@2.12.2: {} + + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.2 + + minipass@7.1.2: {} + + mkdist@2.4.1(typescript@5.9.3): + dependencies: + autoprefixer: 10.4.21(postcss@8.5.6) + citty: 0.1.6 + cssnano: 7.1.1(postcss@8.5.6) + defu: 6.1.4 + esbuild: 0.25.11 + jiti: 1.21.7 + mlly: 1.8.0 + pathe: 2.0.3 + pkg-types: 2.3.0 + postcss: 8.5.6 + postcss-nested: 7.0.2(postcss@8.5.6) + semver: 7.7.3 + tinyglobby: 0.2.15 + optionalDependencies: + typescript: 5.9.3 + + mlly@1.8.0: + dependencies: + acorn: 8.15.0 + pathe: 2.0.3 + pkg-types: 1.3.1 + ufo: 1.6.1 + + ms@2.1.3: {} + + mz@2.7.0: + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + + 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: {} + + nth-check@2.1.1: + dependencies: + boolbase: 1.0.0 + + object-assign@4.1.1: {} + + package-json-from-dist@1.0.1: {} + + path-key@3.1.1: {} + + path-parse@1.0.7: {} + + path-scurry@1.11.1: + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.2 + + pathe@2.0.3: {} + + pathval@2.0.1: {} + + picocolors@1.1.1: {} + + picomatch@4.0.3: {} + + pirates@4.0.7: {} + + pkg-types@1.3.1: + dependencies: + confbox: 0.1.8 + mlly: 1.8.0 + pathe: 2.0.3 + + pkg-types@2.3.0: + dependencies: + confbox: 0.2.2 + exsolve: 1.0.7 + pathe: 2.0.3 + + postcss-calc@10.1.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-selector-parser: 7.1.0 + postcss-value-parser: 4.2.0 + + postcss-colormin@7.0.4(postcss@8.5.6): + dependencies: + browserslist: 4.27.0 + caniuse-api: 3.0.0 + colord: 2.9.3 + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + + postcss-convert-values@7.0.7(postcss@8.5.6): + dependencies: + browserslist: 4.27.0 + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + + postcss-discard-comments@7.0.4(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-selector-parser: 7.1.0 + + postcss-discard-duplicates@7.0.2(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + + postcss-discard-empty@7.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + + postcss-discard-overridden@7.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + + postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.6): + dependencies: + lilconfig: 3.1.3 + optionalDependencies: + jiti: 2.6.1 + postcss: 8.5.6 + + postcss-merge-longhand@7.0.5(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + stylehacks: 7.0.6(postcss@8.5.6) + + postcss-merge-rules@7.0.6(postcss@8.5.6): + dependencies: + browserslist: 4.27.0 + caniuse-api: 3.0.0 + cssnano-utils: 5.0.1(postcss@8.5.6) + postcss: 8.5.6 + postcss-selector-parser: 7.1.0 + + postcss-minify-font-values@7.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + + postcss-minify-gradients@7.0.1(postcss@8.5.6): + dependencies: + colord: 2.9.3 + cssnano-utils: 5.0.1(postcss@8.5.6) + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + + postcss-minify-params@7.0.4(postcss@8.5.6): + dependencies: + browserslist: 4.27.0 + cssnano-utils: 5.0.1(postcss@8.5.6) + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + + postcss-minify-selectors@7.0.5(postcss@8.5.6): + dependencies: + cssesc: 3.0.0 + postcss: 8.5.6 + postcss-selector-parser: 7.1.0 + + postcss-nested@7.0.2(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-selector-parser: 7.1.0 + + postcss-normalize-charset@7.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + + postcss-normalize-display-values@7.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + + postcss-normalize-positions@7.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + + postcss-normalize-repeat-style@7.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + + postcss-normalize-string@7.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + + postcss-normalize-timing-functions@7.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + + postcss-normalize-unicode@7.0.4(postcss@8.5.6): + dependencies: + browserslist: 4.27.0 + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + + postcss-normalize-url@7.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + + postcss-normalize-whitespace@7.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + + postcss-ordered-values@7.0.2(postcss@8.5.6): + dependencies: + cssnano-utils: 5.0.1(postcss@8.5.6) + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + + postcss-reduce-initial@7.0.4(postcss@8.5.6): + dependencies: + browserslist: 4.27.0 + caniuse-api: 3.0.0 + postcss: 8.5.6 + + postcss-reduce-transforms@7.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + + postcss-selector-parser@7.1.0: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss-svgo@7.1.0(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + svgo: 4.0.0 + + postcss-unique-selectors@7.0.4(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-selector-parser: 7.1.0 + + postcss-value-parser@4.2.0: {} + + postcss@8.5.6: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + pretty-bytes@7.1.0: {} + + punycode@2.3.1: {} + + readdirp@4.1.2: {} + + resolve-from@5.0.0: {} + + resolve@1.22.11: + dependencies: + is-core-module: 2.16.1 + 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): + dependencies: + magic-string: 0.30.19 + rollup: 4.52.5 + typescript: 5.9.3 + optionalDependencies: + '@babel/code-frame': 7.27.1 + + rollup@4.52.5: + dependencies: + '@types/estree': 1.0.8 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.52.5 + '@rollup/rollup-android-arm64': 4.52.5 + '@rollup/rollup-darwin-arm64': 4.52.5 + '@rollup/rollup-darwin-x64': 4.52.5 + '@rollup/rollup-freebsd-arm64': 4.52.5 + '@rollup/rollup-freebsd-x64': 4.52.5 + '@rollup/rollup-linux-arm-gnueabihf': 4.52.5 + '@rollup/rollup-linux-arm-musleabihf': 4.52.5 + '@rollup/rollup-linux-arm64-gnu': 4.52.5 + '@rollup/rollup-linux-arm64-musl': 4.52.5 + '@rollup/rollup-linux-loong64-gnu': 4.52.5 + '@rollup/rollup-linux-ppc64-gnu': 4.52.5 + '@rollup/rollup-linux-riscv64-gnu': 4.52.5 + '@rollup/rollup-linux-riscv64-musl': 4.52.5 + '@rollup/rollup-linux-s390x-gnu': 4.52.5 + '@rollup/rollup-linux-x64-gnu': 4.52.5 + '@rollup/rollup-linux-x64-musl': 4.52.5 + '@rollup/rollup-openharmony-arm64': 4.52.5 + '@rollup/rollup-win32-arm64-msvc': 4.52.5 + '@rollup/rollup-win32-ia32-msvc': 4.52.5 + '@rollup/rollup-win32-x64-gnu': 4.52.5 + '@rollup/rollup-win32-x64-msvc': 4.52.5 + fsevents: 2.3.3 + + sax@1.4.1: {} + + scule@1.3.0: {} + + semver@7.7.3: {} + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + siginfo@2.0.0: {} + + signal-exit@4.1.0: {} + + source-map-js@1.2.1: {} + + source-map@0.8.0-beta.0: + dependencies: + whatwg-url: 7.1.0 + + stackback@0.0.2: {} + + std-env@3.10.0: {} + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.2 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.1.2: + dependencies: + ansi-regex: 6.2.2 + + strip-literal@3.1.0: + dependencies: + js-tokens: 9.0.1 + + stylehacks@7.0.6(postcss@8.5.6): + dependencies: + browserslist: 4.27.0 + postcss: 8.5.6 + postcss-selector-parser: 7.1.0 + + sucrase@3.35.0: + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + commander: 4.1.1 + glob: 10.4.5 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.7 + ts-interface-checker: 0.1.13 + + supports-preserve-symlinks-flag@1.0.0: {} + + svgo@4.0.0: + dependencies: + commander: 11.1.0 + css-select: 5.2.2 + css-tree: 3.1.0 + css-what: 6.2.2 + csso: 5.0.5 + picocolors: 1.1.1 + sax: 1.4.1 + + thenify-all@1.6.0: + dependencies: + thenify: 3.3.1 + + thenify@3.3.1: + dependencies: + any-promise: 1.3.0 + + tinybench@2.9.0: {} + + tinyexec@0.3.2: {} + + tinyglobby@0.2.15: + dependencies: + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + + tinypool@1.1.1: {} + + tinyrainbow@2.0.0: {} + + tinyspy@4.0.4: {} + tr46@0.0.3: {} - typescript@5.8.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): + dependencies: + bundle-require: 5.1.0(esbuild@0.25.11) + cac: 6.7.14 + chokidar: 4.0.3 + consola: 3.4.2 + debug: 4.4.3 + esbuild: 0.25.11 + 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 + 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 + transitivePeerDependencies: + - jiti + - supports-color + - tsx + - yaml + + typescript@5.9.3: {} + + ufo@1.6.1: {} + + unbuild@3.6.1(typescript@5.9.3): + dependencies: + '@rollup/plugin-alias': 5.1.1(rollup@4.52.5) + '@rollup/plugin-commonjs': 28.0.9(rollup@4.52.5) + '@rollup/plugin-json': 6.1.0(rollup@4.52.5) + '@rollup/plugin-node-resolve': 16.0.3(rollup@4.52.5) + '@rollup/plugin-replace': 6.0.2(rollup@4.52.5) + '@rollup/pluginutils': 5.3.0(rollup@4.52.5) + citty: 0.1.6 + consola: 3.4.2 + defu: 6.1.4 + esbuild: 0.25.11 + fix-dts-default-cjs-exports: 1.0.1 + hookable: 5.5.3 + jiti: 2.6.1 + magic-string: 0.30.19 + mkdist: 2.4.1(typescript@5.9.3) + 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) + scule: 1.3.0 + tinyglobby: 0.2.15 + untyped: 2.0.0 + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - sass + - vue + - vue-sfc-transformer + - vue-tsc undici-types@6.21.0: {} + untyped@2.0.0: + dependencies: + citty: 0.1.6 + defu: 6.1.4 + jiti: 2.6.1 + knitwork: 1.2.0 + scule: 1.3.0 + + update-browserslist-db@1.1.4(browserslist@4.27.0): + dependencies: + browserslist: 4.27.0 + escalade: 3.2.0 + picocolors: 1.1.1 + + util-deprecate@1.0.2: {} + + uuid@11.1.0: {} + + vite-node@3.2.4(@types/node@20.19.22)(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) + transitivePeerDependencies: + - '@types/node' + - jiti + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + + vite@7.1.10(@types/node@20.19.22)(jiti@2.6.1): + dependencies: + esbuild: 0.25.11 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + postcss: 8.5.6 + rollup: 4.52.5 + tinyglobby: 0.2.15 + optionalDependencies: + '@types/node': 20.19.22 + fsevents: 2.3.3 + jiti: 2.6.1 + + vitest@3.2.4(@types/node@20.19.22)(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/pretty-format': 3.2.4 + '@vitest/runner': 3.2.4 + '@vitest/snapshot': 3.2.4 + '@vitest/spy': 3.2.4 + '@vitest/utils': 3.2.4 + chai: 5.3.3 + debug: 4.4.3 + expect-type: 1.2.2 + magic-string: 0.30.19 + pathe: 2.0.3 + picomatch: 4.0.3 + std-env: 3.10.0 + tinybench: 2.9.0 + tinyexec: 0.3.2 + 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) + why-is-node-running: 2.3.0 + optionalDependencies: + '@types/node': 20.19.22 + transitivePeerDependencies: + - jiti + - less + - lightningcss + - msw + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - 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 - zod@3.24.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 + + why-is-node-running@2.3.0: + dependencies: + siginfo: 2.0.0 + stackback: 0.0.2 + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.3 + string-width: 5.1.2 + strip-ansi: 7.1.2 + + zod@4.1.4: {} diff --git a/src/cacheMemoria.ts b/src/cacheMemoria.ts new file mode 100644 index 0000000..1d2c372 --- /dev/null +++ b/src/cacheMemoria.ts @@ -0,0 +1,53 @@ +/** gerar uma função de cache para uso em memoria */ + +const _cache: { + [k: string]: + | { + /** new Date().getTime() */ + validade?: number | undefined + valor: any + } + | undefined +} = {} + +;(globalThis as any).cacheMemoria_cache = _cache + +export const cacheM = ( + chave: any, + valor?: T, + validadeSeg?: number, +): T | undefined => { + // converte a chave e string + const txChave: string = + typeof chave == "string" + ? chave + : typeof chave == "number" + ? String(chave) + : encodeURIComponent(JSON.stringify(chave)) + + const validade = validadeSeg && new Date().getTime() + validadeSeg * 1000 + + if (valor !== undefined) { + _cache[txChave] = { + valor, + validade, + } + } + + const busca = _cache[txChave] + + if (busca?.validade && busca.validade < new Date().getTime()) { + return undefined + } + return busca?.valor +} + +export const verCacheM = () => _cache + +export const cacheMemoria = cacheM + +/** para uso fixo dentro de uma função, trava a chave */ +export const cacheMFixo = + (chave: any) => + (valor?: T) => + cacheM(chave, valor) diff --git a/src/consulta.ts b/src/consulta.ts index c5a434a..5e1d331 100644 --- a/src/consulta.ts +++ b/src/consulta.ts @@ -1,3 +1,5 @@ +import z from "zod" + export enum operadores { "=" = "=", "!=" = "!=", @@ -7,6 +9,7 @@ export enum operadores { "<=" = "<=", like = "like", in = "in", + isNull = "isNull", } export type tipoFiltro = { @@ -26,3 +29,22 @@ export type interfaceConsulta = { apenasConsulta?: boolean apenasContagem?: boolean } + +export const zOperadores = z.enum([ + "=", + "!=", + ">", + ">=", + "<", + "<=", + "like", + "in", + "isNull", +]) + +export const zFiltro = z.object({ + coluna: z.string(), + valor: z.any(), + operador: zOperadores, + ou: z.boolean().optional(), +}) diff --git a/src/dayjs.ts b/src/dayjs.ts new file mode 100644 index 0000000..0450172 --- /dev/null +++ b/src/dayjs.ts @@ -0,0 +1,27 @@ +import dayjs, { type Dayjs } from "dayjs" + +export type { ManipulateType } from "dayjs" + +import duration from "dayjs/plugin/duration.js" +import isSameOrAfter from "dayjs/plugin/isSameOrAfter.js" +import isSameOrBefore from "dayjs/plugin/isSameOrBefore.js" +import minMax from "dayjs/plugin/minMax.js" +import relativeTime from "dayjs/plugin/relativeTime.js" +import timezone from "dayjs/plugin/timezone.js" +import utc from "dayjs/plugin/utc.js" +import weekOfYear from "dayjs/plugin/weekOfYear.js" +import "dayjs/locale/pt-br.js" +dayjs.locale("pt-br") + +dayjs.extend(utc) +dayjs.extend(timezone) +dayjs.extend(weekOfYear) +dayjs.extend(isSameOrBefore) +dayjs.extend(isSameOrAfter) +dayjs.extend(minMax) +dayjs.extend(relativeTime) +dayjs.extend(duration) + +export const dayjsbr = dayjs + +export type { Dayjs } diff --git a/src/index.ts b/src/index.ts index c61ba3a..cd207f7 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,11 +1,20 @@ export * from "./aleatorio" +export * from "./cacheMemoria" export * from "./constantes" export * from "./consulta" +export * from "./dayjs" export * from "./ecosistema" export * from "./extensoes" +export * from "./extensoes" +export * from "./local" export * from "./logger" +export * from "./logger" +export * from "./postgres" +export * from "./produtos" +export * from "./testes-de-variaveis" export * from "./texto_busca" export * from "./tipagemRotas" +export * from "./tipagemRotas" export * from "./unidades_medida" export * from "./uuid" export * from "./variaveisComuns" diff --git a/src/instalarAmbiente.ts b/src/instalarAmbiente.ts new file mode 100644 index 0000000..4e08809 --- /dev/null +++ b/src/instalarAmbiente.ts @@ -0,0 +1,57 @@ +import fs from "node:fs" +import path from "node:path" + +/** + * Mescla objetos recursivamente. + * - Adiciona chaves novas + * - Sobrescreve valores primitivos + * - Mescla objetos aninhados + */ +const mesclar = (entrada: any, novo: any): any => { + const saida = { ...(entrada || {}) } + for (const [k, v] of Object.entries(novo)) { + if (v && typeof v === "object" && !Array.isArray(v)) { + saida[k] = mesclar(saida[k], v) + } else { + saida[k] = v + } + } + return saida +} + +/** Lê JSON ou retorna objeto vazio */ +const abrirJson = (caminho: string) => { + try { + return JSON.parse(fs.readFileSync(caminho, "utf-8")) + } catch { + return {} + } +} + +const settings_json = { + "editor.defaultFormatter": "biomejs.biome", + "[javascript]": { "editor.defaultFormatter": "biomejs.biome" }, + "[javascriptreact]": { "editor.defaultFormatter": "biomejs.biome" }, + "[typescript]": { "editor.defaultFormatter": "biomejs.biome" }, + "[typescriptreact]": { "editor.defaultFormatter": "biomejs.biome" }, + "[json]": { "editor.defaultFormatter": "biomejs.biome" }, + "[jsonc]": { "editor.defaultFormatter": "biomejs.biome" }, + "[vue]": { "editor.defaultFormatter": "esbenp.prettier-vscode" }, + "editor.codeActionsOnSave": { + "source.organizeImports.biome": "always", + "source.fixAll.biome": "always", + }, +} + +const caminhoSeting = path.join(process.cwd(), ".vscode/settings.json") + +// Garante a pasta .vscode +fs.mkdirSync(path.dirname(caminhoSeting), { recursive: true }) + +// Mescla e grava +const atual = abrirJson(caminhoSeting) +const final = mesclar(atual, settings_json) + +fs.writeFileSync(caminhoSeting, JSON.stringify(final, null, 2), "utf8") + +console.log(`✅ Configurações salvas em ${caminhoSeting}`) diff --git a/src/local/index.ts b/src/local/index.ts new file mode 100644 index 0000000..94a7eed --- /dev/null +++ b/src/local/index.ts @@ -0,0 +1,38 @@ +/** + * LocalStorage Tipado + * Lê ou grava um valor no localStorage, mantendo o tipo genérico . + */ +export const localValor = ( + chave_: string | any, + valor?: T | null, +): T | null => { + const localStorage = globalThis.localStorage + + if (typeof localStorage == "undefined") return null + + const chave = + typeof chave_ === "string" + ? chave_ + : encodeURIComponent(JSON.stringify(chave_)) + + try { + // Grava valor se fornecido + if (valor !== undefined) { + localStorage.setItem(chave, JSON.stringify(valor)) + } + + // Lê valor + const v2 = localStorage.getItem(chave) + if (v2 === null) return null + + try { + return JSON.parse(v2) as T + } catch { + // Caso o valor não seja JSON válido + return v2 as unknown as T + } + } catch { + // Em caso de erro de acesso ao localStorage + return null + } +} diff --git a/src/postgres.ts b/src/postgres.ts new file mode 100644 index 0000000..e3e1787 --- /dev/null +++ b/src/postgres.ts @@ -0,0 +1,32 @@ +/** + * Trata um objeto para ser imput para postgres + * @param entrada + * @returns + */ +export const paraObjetoRegistroPg = (entrada: { + [k: string]: any +}): { + [k: string]: string | boolean | null | undefined | number +} => { + try { + return Object.fromEntries( + Object.entries(entrada).map(([k, v]) => [ + k, + v === undefined || v == null + ? v + : typeof v == "string" || + typeof v == "number" || + typeof v == "boolean" + ? v + : JSON.stringify(v, null, 2), + ]), + ) + } catch (error) { + throw new Error( + `Erro na função paraObjetoRegistroPg: ${(error as Error).message} ${(error as Error).stack}`, + ) + } +} + +export const pgObjeto = paraObjetoRegistroPg +export const objetoPg = paraObjetoRegistroPg diff --git a/src/produtos.ts b/src/produtos.ts new file mode 100644 index 0000000..8419aeb --- /dev/null +++ b/src/produtos.ts @@ -0,0 +1,4 @@ +export enum Produtos { + "e-licencie" = "e-licencie", + "gov.e-licencie" = "gov.e-licencie", +} diff --git a/src/teste.ts b/src/teste.ts index fc1d4cc..77f84c2 100644 --- a/src/teste.ts +++ b/src/teste.ts @@ -1,13 +1,8 @@ -import { logger } from "./logger" +import { cacheM } from "./cacheMemoria" +import { texto_busca } from "./texto_busca" -const l = logger({ app: "teste", eProducao: true }) +// node dist-back/teste.mjs +console.log("Variáveis funcionando", texto_busca) -const lg = l({ - inquilino: "conta_1", - usuario: "pedrinho", -}) - -lg("error", "Deu Ruim").then((a) => console.log(JSON.stringify(a))) -lg("info", "Deu Bom", { __filename }).then((a) => - console.log(JSON.stringify(a)), -) +cacheM(1, { Jaca: Promise.resolve() }) +console.log("cache:", cacheM(1)) diff --git a/src/testes-de-variaveis/index.ts b/src/testes-de-variaveis/index.ts new file mode 100644 index 0000000..3a0862b --- /dev/null +++ b/src/testes-de-variaveis/index.ts @@ -0,0 +1,2 @@ +export * from "./umaFuncao" +export * from "./umaVariavel" diff --git a/src/testes-de-variaveis/umaFuncao.ts b/src/testes-de-variaveis/umaFuncao.ts new file mode 100644 index 0000000..2429a9b --- /dev/null +++ b/src/testes-de-variaveis/umaFuncao.ts @@ -0,0 +1 @@ +export const umaFuncao = () => "Olá Mundo! (função)" diff --git a/src/testes-de-variaveis/umaVariavel.ts b/src/testes-de-variaveis/umaVariavel.ts new file mode 100644 index 0000000..5096dac --- /dev/null +++ b/src/testes-de-variaveis/umaVariavel.ts @@ -0,0 +1 @@ +export const umaVariavel = "Olá Mundo! (variável)" diff --git a/src/testes/TipagemRotas.test.ts b/src/testes/TipagemRotas.test.ts new file mode 100644 index 0000000..a4458d4 --- /dev/null +++ b/src/testes/TipagemRotas.test.ts @@ -0,0 +1,29 @@ +import { describe, expect, it } from "vitest" +import { TipagemRotas } from "../tipagemRotas" + +describe("TipagemRotas", () => { + it("deve montar _partesCaminho a partir de string ou array, normalizando barras", () => { + const r1 = new TipagemRotas<{ q: string }>({ caminho: "aplicacao/func" }) + expect(r1.caminho).toBe("/aplicacao/func") + + const r2 = new TipagemRotas<{ q: string }>({ + caminho: ["aplicacao", "func"], + }) + expect(r2.caminho).toBe("/aplicacao/func") + + const r3 = new TipagemRotas<{ q: string }>({ caminho: "/a//b///c/" }) + expect(r3.caminho).toBe("/a/b/c") + }) + + it("Valores de entrada com mesmo valor dos valores de saída", () => { + type tipagem = { nome: string; idade: number } + const r1 = new TipagemRotas({ caminho: "aplicacao/func" }) + const objetoEntrada: tipagem = { idade: 21, nome: "João" } + + const rota = r1.endereco(objetoEntrada) + + const parametros = r1.parametros(rota) + + expect(parametros.nome).toBe(objetoEntrada.nome) + }) +}) diff --git a/src/tipagemRotas.ts b/src/tipagemRotas.ts index e2291b5..8755a30 100644 --- a/src/tipagemRotas.ts +++ b/src/tipagemRotas.ts @@ -9,9 +9,10 @@ * parametros = {nome:"José"} */ -export class TipagemRotas { +export class TipagemRotas { _partesCaminho: string[] = [] _acaoIr?: (endereco: string) => undefined + rotulo: string | undefined /** Ao criar novo obijeto de tipagem de rota é necessário passar o caminho parcial ** export const mCaminho = new TipagemRotas<{q:string}>("aplicacao","funcionalidade") @@ -19,15 +20,24 @@ export class TipagemRotas { constructor({ caminho, acaoIr, + rotulo, }: { - caminho: string[] | string + caminho: (string | null | undefined)[] | string acaoIr?: undefined | ((endereco: string) => undefined) + + /** Rotulo da página + * Inicio | Controle + */ + rotulo?: string }) { this._acaoIr = acaoIr this._partesCaminho = (Array.isArray(caminho) ? caminho : [caminho]) + .filter(Boolean) + .map((a) => String(a)) .flatMap((a) => a.split("/")) .filter(Boolean) + this.rotulo = rotulo } /** Retorna o caminho completo da rota @@ -64,10 +74,7 @@ export class TipagemRotas { const queryKeys = Object.entries(query) for (const [key, value] of queryKeys) { - url.searchParams.set( - String(key), - value === undefined || value === null ? "" : value, - ) + url.searchParams.set(String(key), JSON.stringify(value)) } url.hash = "" @@ -86,10 +93,10 @@ export class TipagemRotas { */ ir(query: T) { if (this._acaoIr) { - this._acaoIr(this.endereco(query)) + this._acaoIr(this.endereco({ ...query })) } else { if (typeof window != "undefined") { - window.location.href = this.endereco(query) + window.location.href = this.endereco({ ...query }) } } } @@ -99,12 +106,16 @@ export class TipagemRotas { ** {q:"query"} */ - get parametros() { - const url = new URL( - typeof window !== "undefined" ? window.location.href : "http://localhost", - ) + parametros(urlEntrada?: string) { + const url = urlEntrada + ? new URL(urlEntrada) + : new URL( + typeof window !== "undefined" + ? window.location.href + : "http://localhost", + ) const query = url.searchParams - const queryObj = Object.fromEntries(query.entries()) + let queryObj = Object.fromEntries(query.entries()) // pegar hash const hash = url.hash @@ -112,7 +123,15 @@ export class TipagemRotas { const hashObj = Object.fromEntries( new URLSearchParams(hash.slice(1)).entries(), ) - return { ...queryObj, ...hashObj } as T + queryObj = { ...queryObj, ...hashObj } as T + } + + for (const chave in queryObj) { + try { + queryObj[chave] = JSON.parse(queryObj[chave]) + } catch { + console.log(`[${chave}|${queryObj[chave]}] não é um json válido.`) + } } return queryObj as Partial diff --git a/src/uuid.ts b/src/uuid.ts index fc636c2..1b88c91 100644 --- a/src/uuid.ts +++ b/src/uuid.ts @@ -1,15 +1,53 @@ -//Gerar uma uuid V4 -const letras = "0123456789abcdef".split("") -export const uuid = () => { - letras.sort(() => Math.random() - 0.5) - const modelo = "xxxxxxxx-xxxx-4xxx-xxxx-xxxxxxxxxxxx".split("") - const retorno = modelo - .map((letra) => - letra === "x" - ? letras[((1000 * Math.random()) | 0) % letras.length] - : letra, - ) - .join("") +import { NIL, v3, v4 } from "uuid" +/** + * Valida se uma string é um UUID válido (qualquer versão). + * + * @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 validarUuid = (uuid: string | number | undefined | null) => { + const retorno = erUuid.test(String(uuid || "")) return retorno } + +/** + * Gera um UUID determinístico (versão 3) com base em uma chave e um grupo (namespace). + * + * - Usa o algoritmo MD5 (RFC 4122). + * - Sempre retorna o mesmo UUID para a mesma combinação chave + grupo. + * - Caso o grupo não seja informado, usa o UUID "nil" como namespace. + * + * @param chave - Qualquer valor que será convertido em string para gerar o UUID (ex: número, string ou objeto). + * @param grupo - Opcional. Namespace para separar domínios diferentes de UUIDs. + * @returns UUID v3 (determinístico) + */ +export const uuidV3 = (chave: any, grupo?: any): string => { + return v3( + // Converte a chave para string (de forma segura) + typeof chave === "string" + ? chave + : typeof chave === "number" + ? String(chave) + : JSON.stringify(chave), + + // Se um grupo foi fornecido, gera um UUID v3 recursivamente com base nele, senão usa NIL + grupo ? uuidV3(grupo) : NIL, + ) +} + +/** + * Gera um UUID v4 (aleatório, não determinístico). + * + * - Usado quando unicidade é necessária, mas não se exige que seja previsível. + */ +export const uuidV4 = v4 + +/** + * @deprecated Esta variável será descontinuada em versões futuras. + * Use a função `uuidV4()` diretamente. + */ +export const uuid = uuidV4 diff --git a/tsconfig.json b/tsconfig.json index deebe41..97ddeec 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,25 +1,31 @@ { "compilerOptions": { + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + /* Linguagem e Ambiente */ - "target": "ES2020", /* Define a versão do JavaScript para o código emitido. */ - "lib": ["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. */ + "target": "ES2020" /* Define a versão do JavaScript para o código emitido. */, + "lib": [ + "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. */ - "rootDir": "./src", /* Define a pasta raiz para os arquivos de origem. */ + "moduleResolution": "node" /* Define como o TypeScript resolve módulos. */, + "rootDir": "./src" /* Define a pasta raiz para os arquivos de origem. */, /* Emissão */ - "declaration": true, /* Gera arquivos .d.ts para os arquivos TypeScript. */ + "declaration": true /* Gera arquivos .d.ts para os arquivos TypeScript. */, /* Interoperabilidade de Módulos */ - "esModuleInterop": true, /* Habilita a compatibilidade com módulos CommonJS ao importar. */ - "forceConsistentCasingInFileNames": true,/* Garante consistência na diferenciação entre maiúsculas e minúsculas em nomes de arquivos. */ + "forceConsistentCasingInFileNames": true /* Garante consistência na diferenciação entre maiúsculas e minúsculas em nomes de arquivos. */, /* Verificação de Tipos */ - "strict": true, /* Habilita todas as opções de verificação estrita de tipos. */ - "skipLibCheck": true /* Ignora a verificação de tipos em arquivos de declaração de bibliotecas. */ + "strict": true /* Habilita todas as opções de verificação estrita de tipos. */, + "skipLibCheck": true /* Ignora a verificação de tipos em arquivos de declaração de bibliotecas. */ }, - "include": ["src/**/*"] /* Inclui todos os arquivos TypeScript dentro da pasta src. */ + "include": [ + "src/**/*" + ] /* Inclui todos os arquivos TypeScript dentro da pasta src. */ } diff --git a/tsup/como usar.md b/tsup/como usar.md new file mode 100644 index 0000000..82f689b --- /dev/null +++ b/tsup/como usar.md @@ -0,0 +1,14 @@ +"tsup --config tsup.config.ts" + +tsup --config ./node_modules/p-comuns/tsup/tsup.config.ts + + "main": "./dist-back/index.js", + "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" + } + }, \ No newline at end of file diff --git a/tsup/tsup.config.back.ts b/tsup/tsup.config.back.ts new file mode 100644 index 0000000..cffbdf4 --- /dev/null +++ b/tsup/tsup.config.back.ts @@ -0,0 +1,24 @@ +// tsup.config.ts (Configuração Ajustada para Back-end) +import { defineConfig, type Options } from "tsup" + +// Definimos as opções em uma constante para clareza, como você fez. +// Exportamos para que possam ser reutilizadas ou inspecionadas. +export const tsup_config_back: Options = { + /** Não mecher aqui */ + entry: ["src/**/*.ts", "src/**/*.tsx"], // Adicionado .tsx para compatibilidade, se aplicável + format: "cjs", // Gera módulos CommonJS, padrão para Node.js + target: "node20", // Compila para o ambiente Node.js versão 20 (ou sua versão alvo) + outDir: "dist-back", // Diretório de saída para os arquivos transpilados + clean: true, // Limpa o diretório de saída antes de cada build + bundle: false, // ESSENCIAL: Mantém a estrutura de arquivos e pastas original + splitting: false, // Desnecessário quando bundle é false + dts: false, // RECOMENDADO: Gera arquivos de declaração TypeScript (.d.ts) + // legacyOutput e outExtension foram removidos por não serem necessários + sourcemap: false, + minify: false, // Geralmente não minificamos o código do backend em produção, mas você pode mudar + platform: "node", + outExtension: () => ({ js: ".js" }), +} + +// Exporta a configuração padrão usando defineConfig +export default defineConfig(tsup_config_back) diff --git a/tsup/tsup.config.front.interno.ts b/tsup/tsup.config.front.interno.ts new file mode 100644 index 0000000..5168a41 --- /dev/null +++ b/tsup/tsup.config.front.interno.ts @@ -0,0 +1,10 @@ +// tsup.config.ts (Configuração Ajustada para Back-end) +import { defineConfig, type Options } from "tsup" +import { tsup_config_front } from "./tsup.config.front" + +tsup_config_front. noExternal= [/./] + +export {tsup_config_front} + +// Exporta a configuração padrão usando defineConfig +export default defineConfig(tsup_config_front) diff --git a/tsup/tsup.config.front.ts b/tsup/tsup.config.front.ts new file mode 100644 index 0000000..685f79e --- /dev/null +++ b/tsup/tsup.config.front.ts @@ -0,0 +1,25 @@ +// tsup.config.ts (Configuração Ajustada para Back-end) +import { defineConfig, type Options } from "tsup" + +// Definimos as opções em uma constante para clareza, como você fez. +// Exportamos para que possam ser reutilizadas ou inspecionadas. +export const tsup_config_front: Options = { + entry: ["src/index.ts"], // Adicionado .tsx para compatibilidade, se aplicável + format: "esm", // Gera módulos ES para import/export no navegador + target: "es2022", // Ou 'esnext' para os recursos mais recentes + outDir: "dist-front", // Diretório de saída para os arquivos transpilados + clean: true, // Limpa o diretório de saída antes de cada build + bundle: true, // ESSENCIAL: Mantém a estrutura de arquivos e pastas original + splitting: false, // Desnecessário quando bundle é false + dts: true, // Gera arquivos de declaração TypeScript (.d.ts) para uso em front-end JS + // legacyOutput e outExtension foram removidos por não serem necessários + sourcemap: false, + minify: true, // Recomendado para builds de produção + platform: "browser", + external: ['dayjs'], + outExtension: () => ({ js: ".mjs" }), + shims: false, +} + +// Exporta a configuração padrão usando defineConfig +export default defineConfig(tsup_config_front) diff --git a/tsup/tsup.config.interno.ts b/tsup/tsup.config.interno.ts new file mode 100644 index 0000000..dc970c7 --- /dev/null +++ b/tsup/tsup.config.interno.ts @@ -0,0 +1,7 @@ +// tsup.config.ts (Configuração Ajustada para Back-end) +import { defineConfig } from "tsup" +import { tsup_config_back } from "./tsup.config.back" +import { tsup_config_front } from "./tsup.config.front.interno" + +// Exporta a configuração padrão usando defineConfig +export default defineConfig([tsup_config_back, tsup_config_front]) diff --git a/tsup/tsup.config.ts b/tsup/tsup.config.ts new file mode 100644 index 0000000..7e70a5a --- /dev/null +++ b/tsup/tsup.config.ts @@ -0,0 +1,7 @@ +// tsup.config.ts (Configuração Ajustada para Back-end) +import { defineConfig } from "tsup" +import { tsup_config_back } from "./tsup.config.back" +import { tsup_config_front } from "./tsup.config.front" + +// Exporta a configuração padrão usando defineConfig +export default defineConfig([tsup_config_back, tsup_config_front])