Compare commits

..

3 commits

Author SHA1 Message Date
a70511d5a6 . 2025-07-06 19:12:13 -03:00
ad65d94629 . 2025-07-02 09:23:54 -03:00
127061d04c . 2025-06-30 12:59:56 -03:00
11 changed files with 962 additions and 964 deletions

View file

@ -1,9 +1,8 @@
{ {
"$schema": "node_modules/@biomejs/biome/configuration_schema.json", "$schema": "node_modules/@biomejs/biome/configuration_schema.json",
"extends": ["node_modules/p-comuns/Documentos/biome.json"],
"files": { "files": {},
"ignore": []
},
"formatter": { "formatWithErrors": true }, "formatter": { "formatWithErrors": true },
"linter": { "linter": {
"enabled": true, "enabled": true,

2
dist/index.js.map vendored

File diff suppressed because one or more lines are too long

View file

@ -12,7 +12,7 @@ const mapearPasta = ({ prefixos, pasta, arquivoDestino, variavel, }) => {
const pasta_estaticos = pasta.endsWith("/") ? pasta : `${pasta}/`; const pasta_estaticos = pasta.endsWith("/") ? pasta : `${pasta}/`;
if (!node_fs_1.default.existsSync(pasta_estaticos)) if (!node_fs_1.default.existsSync(pasta_estaticos))
throw new Error(`Pasta ${pasta_estaticos} não existe`); throw new Error(`Pasta ${pasta_estaticos} não existe`);
const gerar = (async () => { const _gerar = (async () => {
// listar arquivos da pasta estáticos // listar arquivos da pasta estáticos
const files = (0, glob_1.globSync)(`${pasta_estaticos}**/*`, { nodir: true }); const files = (0, glob_1.globSync)(`${pasta_estaticos}**/*`, { nodir: true });
const arquivo_ts = ` const arquivo_ts = `

View file

@ -1 +1 @@
{"version":3,"file":"mapear_pasta.js","sourceRoot":"","sources":["../src/mapear_pasta.ts"],"names":[],"mappings":";AAAA,0EAA0E;;;;;;AAE1E,sDAAyB;AACzB,0DAA6B;AAC7B,+BAAgC;AAEzB,MAAM,WAAW,GAAG,CAAC,EAC3B,QAAQ,EACR,KAAK,EACL,cAAc,EACd,QAAQ,GAMR,EAAE,EAAE;IACJ,MAAM,eAAe,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC;IAClE,IAAI,CAAC,iBAAE,CAAC,UAAU,CAAC,eAAe,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,SAAS,eAAe,aAAa,CAAC,CAAC;IAExD,MAAM,KAAK,GAAG,CAAC,KAAK,IAAI,EAAE;QACzB,qCAAqC;QACrC,MAAM,KAAK,GAAG,IAAA,eAAQ,EAAC,GAAG,eAAe,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAElE,MAAM,UAAU,GAAG;;;;GAIlB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;aACxB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC;aACtD,IAAI,CAAC,KAAK,CAAC;;;;;;;;iBAQG,QAAQ,IAAI,WAAW;;;aAG3B,CAAC,GAAG,EAAE;YAchB,MAAM,QAAQ,GAAG,EAAQ,CAAC;YAE1B,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;gBAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAChE,IAAI,KAAK,GAAG,QAAQ,CAAC;gBACrB,KAAK,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;oBAC3C,IAAI,CAAC,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC7B,KAAK,CAAC,KAAK,CAAC,GAAG,iBAAiB,SAAS,CACxC,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CACzC,KAAK,CAAC;oBACR,CAAC;yBAAM,CAAC;wBACP,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;wBAClC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAO,CAAC;oBAC5B,CAAC;gBACF,CAAC;YACF,CAAC;YAED,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;iBACtC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;iBACrB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACzB,CAAC,CAAC,EAAE;;KAED,CAAC;QAEJ,iCAAiC;QACjC,MAAM,YAAY,GAAG,mBAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAClD,IAAI,CAAC,iBAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAClC,iBAAE,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;QAED,mBAAmB;QAEnB,iBAAE,CAAC,aAAa,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;IAC9C,CAAC,CAAC,EAAE,CAAC;AACN,CAAC,CAAC;AApFW,QAAA,WAAW,eAoFtB"} {"version":3,"file":"mapear_pasta.js","sourceRoot":"","sources":["../src/mapear_pasta.ts"],"names":[],"mappings":";AAAA,0EAA0E;;;;;;AAE1E,sDAAwB;AACxB,0DAA4B;AAC5B,+BAA+B;AAExB,MAAM,WAAW,GAAG,CAAC,EAC1B,QAAQ,EACR,KAAK,EACL,cAAc,EACd,QAAQ,GAMT,EAAE,EAAE;IACH,MAAM,eAAe,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAA;IACjE,IAAI,CAAC,iBAAE,CAAC,UAAU,CAAC,eAAe,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,SAAS,eAAe,aAAa,CAAC,CAAA;IAExD,MAAM,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE;QACzB,qCAAqC;QACrC,MAAM,KAAK,GAAG,IAAA,eAAQ,EAAC,GAAG,eAAe,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QAEjE,MAAM,UAAU,GAAG;;;;GAIpB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;aACtB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC;aACtD,IAAI,CAAC,KAAK,CAAC;;;;;;;;iBAQC,QAAQ,IAAI,WAAW;;;aAG3B,CAAC,GAAG,EAAE;YAcb,MAAM,QAAQ,GAAG,EAAQ,CAAA;YAEzB,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;gBAC5B,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBAC/D,IAAI,KAAK,GAAG,QAAQ,CAAA;gBACpB,KAAK,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;oBAC1C,IAAI,CAAC,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC5B,KAAK,CAAC,KAAK,CAAC,GAAG,iBAAiB,SAAS,CACvC,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAC1C,KAAK,CAAA;oBACR,CAAC;yBAAM,CAAC;wBACN,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;wBACjC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAO,CAAA;oBAC5B,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;iBACrC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;iBACrB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;QAC1B,CAAC,CAAC,EAAE;;KAEH,CAAA;QAED,iCAAiC;QACjC,MAAM,YAAY,GAAG,mBAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;QACjD,IAAI,CAAC,iBAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACjC,iBAAE,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QACjD,CAAC;QAED,mBAAmB;QAEnB,iBAAE,CAAC,aAAa,CAAC,cAAc,EAAE,UAAU,CAAC,CAAA;IAC9C,CAAC,CAAC,EAAE,CAAA;AACN,CAAC,CAAA;AApFY,QAAA,WAAW,eAoFvB"}

View file

@ -1,19 +1,19 @@
import { z } from "zod"; import { z } from "zod"
import { PORTA, PREFIXO } from "../PREFIXO"; import { PORTA, PREFIXO } from "../PREFIXO"
const validar = z const validar = z
.object({ .object({
PORTA: z.string(), PORTA: z.string(),
PREFIXO: z.string().regex(/^\/\w+$/), PREFIXO: z.string().regex(/^\/\w+$/),
}) })
.safeParse({ PORTA, PREFIXO }); .safeParse({ PORTA, PREFIXO })
if ("error" in validar) { if ("error" in validar) {
throw new Error( throw new Error(
validar.error?.errors validar.error?.errors
.map((erro) => `${erro.path}: ${erro.message}`) .map((erro) => `${erro.path}: ${erro.message}`)
.join("\n"), .join("\n"),
); )
} }
export const ambiente = validar.data; export const ambiente = validar.data

View file

@ -1,10 +1,10 @@
import path from "node:path"; import path from "node:path"
import { cdn_carro_de_boi } from "p-comuns"; import { cdn_carro_de_boi } from "p-comuns"
import { mapearPasta } from "../src/mapear_pasta"; import { mapearPasta } from "../src/mapear_pasta"
const pasta_estaticos = path.resolve(process.cwd(), "estaticos"); const pasta_estaticos = path.resolve(process.cwd(), "estaticos")
const pasta_src = path.resolve(process.cwd(), "src"); const pasta_src = path.resolve(process.cwd(), "src")
const version = process.env.npm_package_version; const _version = process.env.npm_package_version
export const gerar = (async () => { export const gerar = (async () => {
mapearPasta({ mapearPasta({
@ -16,11 +16,11 @@ export const gerar = (async () => {
}, },
arquivoDestino: path.resolve(pasta_src, "index.ts"), arquivoDestino: path.resolve(pasta_src, "index.ts"),
pasta: pasta_estaticos, pasta: pasta_estaticos,
}); })
})(); })()
if (process.argv.includes("gerar")) { if (process.argv.includes("gerar")) {
gerar.then(() => { gerar.then(() => {
console.log("Arquivo gerado com sucesso"); console.log("Arquivo gerado com sucesso")
}); })
} }

View file

@ -1,37 +1,36 @@
import fs from "node:fs"; import fs from "node:fs"
import path from "node:path"; import path from "node:path"
import cors from "@fastify/cors"; import cors from "@fastify/cors"
import { renderToStaticMarkup } from "react-dom/server"; import fastifyStatc from "@fastify/static"
import { estaticos } from "../src"; import dayjs from "dayjs"
import { ambiente } from "./ambiente"; import Fastify from "fastify"
import { gerar } from "./listar_arquivos"; import type React from "react"
import { renderToStaticMarkup } from "react-dom/server"
import { estaticos } from "../src"
import { ambiente } from "./ambiente"
import { gerar } from "./listar_arquivos"
// biome-ignore lint/style/useImportType: <explanation> const { PORTA, PREFIXO } = ambiente
import React, {} from "react";
import fastifyStatc from "@fastify/static"; const _iframe = String(Math.random())
import dayjs from "dayjs";
import Fastify, {} from "fastify";
const { PORTA, PREFIXO } = ambiente;
const _iframe = String(Math.random());
const criarHtml = (entrada: { const criarHtml = (entrada: {
// biome-ignore lint/complexity/noBannedTypes: <explanation> [key: string]: string | {}
[key: string]: string | {};
}): React.JSX.Element[] => { }): React.JSX.Element[] => {
const retorno = [] as React.JSX.Element[]; const retorno = [] as React.JSX.Element[]
for (const [k, v] of Object.entries(entrada)) { for (const [k, v] of Object.entries(entrada)) {
if (typeof v === "string") { if (typeof v === "string") {
retorno.push( retorno.push(
<p key={Math.random()}> <p key={Math.random()}>
<a target={_iframe} href={`${v}?aleatório=${Math.random()}`}> <a
target={_iframe}
href={`${v}?aleatório=${Math.random()}`}
>
{v} {v}
</a> </a>
</p>, </p>,
); )
} else { } else {
retorno.push( retorno.push(
<div <div
@ -49,19 +48,19 @@ const criarHtml = (entrada: {
{criarHtml(v)} {criarHtml(v)}
</details> </details>
</div>, </div>,
); )
} }
} }
return retorno; return retorno
}; }
gerar.then(() => { gerar.then(() => {
const fastify = Fastify({ const fastify = Fastify({
logger: false, logger: false,
ignoreTrailingSlash: true, ignoreTrailingSlash: true,
}); })
fastify.addHook("onSend", async (request, reply) => { fastify.addHook("onSend", async (request, reply) => {
console.log( console.log(
@ -72,26 +71,26 @@ gerar.then(() => {
reply.statusCode, reply.statusCode,
request.headers.site || request.headers.referer, request.headers.site || request.headers.referer,
].join(" "), ].join(" "),
); )
}); })
//cors //cors
fastify.register(cors, { fastify.register(cors, {
origin: "*", origin: "*",
}); })
fastify.route({ fastify.route({
method: "GET", method: "GET",
url: "/", url: "/",
handler: (req, res) => { handler: (_req, res) => {
res.redirect(`${PREFIXO}/`); res.redirect(`${PREFIXO}/`)
}, },
}); })
fastify.route({ fastify.route({
method: "GET", method: "GET",
url: `${PREFIXO}/`, url: `${PREFIXO}/`,
handler: async (request, reply) => { handler: async (_request, reply) => {
const html = ( const html = (
<html lang="pt-BR"> <html lang="pt-BR">
<head> <head>
@ -114,51 +113,51 @@ gerar.then(() => {
</table> </table>
</body> </body>
</html> </html>
); )
const renderHtml = renderToStaticMarkup(html, {}); const renderHtml = renderToStaticMarkup(html, {})
// htlm utf-8 // htlm utf-8
reply.header("content-type", "text/html; charset=utf-8"); reply.header("content-type", "text/html; charset=utf-8")
reply.send(renderHtml); reply.send(renderHtml)
}, },
}); })
fastify.register(fastifyStatc, { fastify.register(fastifyStatc, {
root: path.join(process.cwd(), "estaticos"), root: path.join(process.cwd(), "estaticos"),
prefix: PREFIXO, prefix: PREFIXO,
}); })
// 404 // 404
fastify.setNotFoundHandler((request, reply) => { fastify.setNotFoundHandler((request, reply) => {
const html404 = fs.readFileSync( const html404 = fs.readFileSync(
path.join(process.cwd(), estaticos("relativo").html["404.html"]), path.join(process.cwd(), estaticos("relativo").html["404.html"]),
"utf8", "utf8",
); )
reply.header("content-type", "text/html; charset=utf-8"); reply.header("content-type", "text/html; charset=utf-8")
reply reply
.code(404) .code(404)
.send(html404.replace("{ERRO}", `Página não encontrada: ${request.url}`)); .send(html404.replace("{ERRO}", `Página não encontrada: ${request.url}`))
}); })
const jaEstaRodando = fetch(`http://0.0.0.0:${PORTA}`) const jaEstaRodando = fetch(`http://0.0.0.0:${PORTA}`)
.then(() => true) .then(() => true)
.catch(() => false); .catch(() => false)
jaEstaRodando.then((jaEstaRodando) => { jaEstaRodando.then((jaEstaRodando) => {
!jaEstaRodando && !jaEstaRodando &&
fastify.listen( fastify.listen(
{ port: Number(PORTA), host: "0.0.0.0" }, { port: Number(PORTA), host: "0.0.0.0" },
(err, address) => { (err, address) => {
if (err) throw err; if (err) throw err
console.log( console.log(
`${new Date().toISOString()} Servidor ${PREFIXO} Rodando em ${address}`, `${new Date().toISOString()} Servidor ${PREFIXO} Rodando em ${address}`,
); )
}, },
); )
jaEstaRodando && console.log(`Servidor ${PREFIXO} já está rodando`); jaEstaRodando && console.log(`Servidor ${PREFIXO} já está rodando`)
}); })
}); })

View file

@ -1,6 +1,6 @@
{ {
"name": "p-estaticos", "name": "p-estaticos",
"version": "0.61.0", "version": "0.69.0",
"description": "", "description": "",
"main": "dist/index.js", "main": "dist/index.js",
"scripts": { "scripts": {
@ -23,13 +23,13 @@
"@fastify/static": "^7.0.4", "@fastify/static": "^7.0.4",
"dayjs": "^1.11.11", "dayjs": "^1.11.11",
"fastify": "^4.27.0", "fastify": "^4.27.0",
"p-comuns": "git+http://leitura:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3MTQ3NTA1NzYsImlzcyI6IkdpdG5lc3MiLCJwaWQiOjgsInRrbiI6eyJ0eXAiOiJwYXQiLCJpZCI6MzJ9fQ.OYdExOVQm5UI3wfeTaWjmD0o65Y1hrjFz5EvMB1a__U@git.idz.one:3000/git/multi-modulos-ambientais/_comuns.git#producao", "p-comuns": "git+https://git2.idz.one/publico/_comuns.git#master",
"react": "^18.3.1", "react": "^18.3.1",
"react-dom": "^18.3.1", "react-dom": "^18.3.1",
"zod": "3.23.8" "zod": "3.23.8"
}, },
"devDependencies": { "devDependencies": {
"@biomejs/biome": "latest", "@biomejs/biome": "^2.0.6",
"@types/node": "^20.11.30", "@types/node": "^20.11.30",
"@types/react": "^18.3.1", "@types/react": "^18.3.1",
"@types/react-dom": "^18.3.0", "@types/react-dom": "^18.3.0",

186
pnpm-lock.yaml generated
View file

@ -19,10 +19,10 @@ importers:
version: 1.11.13 version: 1.11.13
fastify: fastify:
specifier: ^4.27.0 specifier: ^4.27.0
version: 4.29.0 version: 4.29.1
p-comuns: p-comuns:
specifier: git+http://leitura:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3MTQ3NTA1NzYsImlzcyI6IkdpdG5lc3MiLCJwaWQiOjgsInRrbiI6eyJ0eXAiOiJwYXQiLCJpZCI6MzJ9fQ.OYdExOVQm5UI3wfeTaWjmD0o65Y1hrjFz5EvMB1a__U@git.idz.one:3000/git/multi-modulos-ambientais/_comuns.git#producao specifier: git+https://leitura:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3MTQ3NTA1NzYsImlzcyI6IkdpdG5lc3MiLCJwaWQiOjgsInRrbiI6eyJ0eXAiOiJwYXQiLCJpZCI6MzJ9fQ.OYdExOVQm5UI3wfeTaWjmD0o65Y1hrjFz5EvMB1a__U@git.idz.one/git/multi-modulos-ambientais/_comuns.git#producao
version: git+http://leitura:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3MTQ3NTA1NzYsImlzcyI6IkdpdG5lc3MiLCJwaWQiOjgsInRrbiI6eyJ0eXAiOiJwYXQiLCJpZCI6MzJ9fQ.OYdExOVQm5UI3wfeTaWjmD0o65Y1hrjFz5EvMB1a__U@git.idz.one:3000/git/multi-modulos-ambientais/_comuns.git#1350348900bece75a07fcb16f1cca9f7f07cac2d version: git+https://leitura:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3MTQ3NTA1NzYsImlzcyI6IkdpdG5lc3MiLCJwaWQiOjgsInRrbiI6eyJ0eXAiOiJwYXQiLCJpZCI6MzJ9fQ.OYdExOVQm5UI3wfeTaWjmD0o65Y1hrjFz5EvMB1a__U@git.idz.one/git/multi-modulos-ambientais/_comuns.git#432361afd274302bccfce44e164d361d0cb9d9f0
react: react:
specifier: ^18.3.1 specifier: ^18.3.1
version: 18.3.1 version: 18.3.1
@ -34,20 +34,20 @@ importers:
version: 3.23.8 version: 3.23.8
devDependencies: devDependencies:
'@biomejs/biome': '@biomejs/biome':
specifier: latest specifier: ^2.0.6
version: 1.9.4 version: 2.0.6
'@types/node': '@types/node':
specifier: ^20.11.30 specifier: ^20.11.30
version: 20.17.19 version: 20.19.4
'@types/react': '@types/react':
specifier: ^18.3.1 specifier: ^18.3.1
version: 18.3.18 version: 18.3.23
'@types/react-dom': '@types/react-dom':
specifier: ^18.3.0 specifier: ^18.3.0
version: 18.3.5(@types/react@18.3.18) version: 18.3.7(@types/react@18.3.23)
dotenv: dotenv:
specifier: ^16.4.5 specifier: ^16.4.5
version: 16.4.7 version: 16.6.1
dotenv-cli: dotenv-cli:
specifier: ^7.4.1 specifier: ^7.4.1
version: 7.4.4 version: 7.4.4
@ -59,59 +59,59 @@ importers:
version: 3.2.1 version: 3.2.1
typescript: typescript:
specifier: ^5.7.2 specifier: ^5.7.2
version: 5.7.3 version: 5.8.3
packages: packages:
'@biomejs/biome@1.9.4': '@biomejs/biome@2.0.6':
resolution: {integrity: sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog==} resolution: {integrity: sha512-RRP+9cdh5qwe2t0gORwXaa27oTOiQRQvrFf49x2PA1tnpsyU7FIHX4ZOFMtBC4QNtyWsN7Dqkf5EDbg4X+9iqA==}
engines: {node: '>=14.21.3'} engines: {node: '>=14.21.3'}
hasBin: true hasBin: true
'@biomejs/cli-darwin-arm64@1.9.4': '@biomejs/cli-darwin-arm64@2.0.6':
resolution: {integrity: sha512-bFBsPWrNvkdKrNCYeAp+xo2HecOGPAy9WyNyB/jKnnedgzl4W4Hb9ZMzYNbf8dMCGmUdSavlYHiR01QaYR58cw==} resolution: {integrity: sha512-AzdiNNjNzsE6LfqWyBvcL29uWoIuZUkndu+wwlXW13EKcBHbbKjNQEZIJKYDc6IL+p7bmWGx3v9ZtcRyIoIz5A==}
engines: {node: '>=14.21.3'} engines: {node: '>=14.21.3'}
cpu: [arm64] cpu: [arm64]
os: [darwin] os: [darwin]
'@biomejs/cli-darwin-x64@1.9.4': '@biomejs/cli-darwin-x64@2.0.6':
resolution: {integrity: sha512-ngYBh/+bEedqkSevPVhLP4QfVPCpb+4BBe2p7Xs32dBgs7rh9nY2AIYUL6BgLw1JVXV8GlpKmb/hNiuIxfPfZg==} resolution: {integrity: sha512-wJjjP4E7bO4WJmiQaLnsdXMa516dbtC6542qeRkyJg0MqMXP0fvs4gdsHhZ7p9XWTAmGIjZHFKXdsjBvKGIJJQ==}
engines: {node: '>=14.21.3'} engines: {node: '>=14.21.3'}
cpu: [x64] cpu: [x64]
os: [darwin] os: [darwin]
'@biomejs/cli-linux-arm64-musl@1.9.4': '@biomejs/cli-linux-arm64-musl@2.0.6':
resolution: {integrity: sha512-v665Ct9WCRjGa8+kTr0CzApU0+XXtRgwmzIf1SeKSGAv+2scAlW6JR5PMFo6FzqqZ64Po79cKODKf3/AAmECqA==} resolution: {integrity: sha512-CVPEMlin3bW49sBqLBg2x016Pws7eUXA27XYDFlEtponD0luYjg2zQaMJ2nOqlkKG9fqzzkamdYxHdMDc2gZFw==}
engines: {node: '>=14.21.3'} engines: {node: '>=14.21.3'}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
'@biomejs/cli-linux-arm64@1.9.4': '@biomejs/cli-linux-arm64@2.0.6':
resolution: {integrity: sha512-fJIW0+LYujdjUgJJuwesP4EjIBl/N/TcOX3IvIHJQNsAqvV2CHIogsmA94BPG6jZATS4Hi+xv4SkBBQSt1N4/g==} resolution: {integrity: sha512-ZSVf6TYo5rNMUHIW1tww+rs/krol7U5A1Is/yzWyHVZguuB0lBnIodqyFuwCNqG9aJGyk7xIMS8HG0qGUPz0SA==}
engines: {node: '>=14.21.3'} engines: {node: '>=14.21.3'}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
'@biomejs/cli-linux-x64-musl@1.9.4': '@biomejs/cli-linux-x64-musl@2.0.6':
resolution: {integrity: sha512-gEhi/jSBhZ2m6wjV530Yy8+fNqG8PAinM3oV7CyO+6c3CEh16Eizm21uHVsyVBEB6RIM8JHIl6AGYCv6Q6Q9Tg==} resolution: {integrity: sha512-mKHE/e954hR/hSnAcJSjkf4xGqZc/53Kh39HVW1EgO5iFi0JutTN07TSjEMg616julRtfSNJi0KNyxvc30Y4rQ==}
engines: {node: '>=14.21.3'} engines: {node: '>=14.21.3'}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
'@biomejs/cli-linux-x64@1.9.4': '@biomejs/cli-linux-x64@2.0.6':
resolution: {integrity: sha512-lRCJv/Vi3Vlwmbd6K+oQ0KhLHMAysN8lXoCI7XeHlxaajk06u7G+UsFSO01NAs5iYuWKmVZjmiOzJ0OJmGsMwg==} resolution: {integrity: sha512-geM1MkHTV1Kh2Cs/Xzot9BOF3WBacihw6bkEmxkz4nSga8B9/hWy5BDiOG3gHDGIBa8WxT0nzsJs2f/hPqQIQw==}
engines: {node: '>=14.21.3'} engines: {node: '>=14.21.3'}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
'@biomejs/cli-win32-arm64@1.9.4': '@biomejs/cli-win32-arm64@2.0.6':
resolution: {integrity: sha512-tlbhLk+WXZmgwoIKwHIHEBZUwxml7bRJgk0X2sPyNR3S93cdRq6XulAZRQJ17FYGGzWne0fgrXBKpl7l4M87Hg==} resolution: {integrity: sha512-290V4oSFoKaprKE1zkYVsDfAdn0An5DowZ+GIABgjoq1ndhvNxkJcpxPsiYtT7slbVe3xmlT0ncdfOsN7KruzA==}
engines: {node: '>=14.21.3'} engines: {node: '>=14.21.3'}
cpu: [arm64] cpu: [arm64]
os: [win32] os: [win32]
'@biomejs/cli-win32-x64@1.9.4': '@biomejs/cli-win32-x64@2.0.6':
resolution: {integrity: sha512-8Y5wMhVIPaWe6jw2H+KlEm4wP/f7EW3810ZLmDlrEEy5KvBsb9ECEfu/kMWD484ijfQ8+nIi0giMgu9g1UAuuA==} resolution: {integrity: sha512-bfM1Bce0d69Ao7pjTjUS+AWSZ02+5UHdiAP85Th8e9yV5xzw6JrHXbL5YWlcEKQ84FIZMdDc7ncuti1wd2sdbw==}
engines: {node: '>=14.21.3'} engines: {node: '>=14.21.3'}
cpu: [x64] cpu: [x64]
os: [win32] os: [win32]
@ -153,19 +153,19 @@ packages:
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
engines: {node: '>=14'} engines: {node: '>=14'}
'@types/node@20.17.19': '@types/node@20.19.4':
resolution: {integrity: sha512-LEwC7o1ifqg/6r2gn9Dns0f1rhK+fPFDoMiceTJ6kWmVk6bgXBI/9IOWfVan4WiAavK9pIVWdX0/e3J+eEUh5A==} resolution: {integrity: sha512-OP+We5WV8Xnbuvw0zC2m4qfB/BJvjyCwtNjhHdJxV1639SGSKrLmJkc3fMnp2Qy8nJyHp8RO6umxELN/dS1/EA==}
'@types/prop-types@15.7.14': '@types/prop-types@15.7.15':
resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==} resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==}
'@types/react-dom@18.3.5': '@types/react-dom@18.3.7':
resolution: {integrity: sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==} resolution: {integrity: sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==}
peerDependencies: peerDependencies:
'@types/react': ^18.0.0 '@types/react': ^18.0.0
'@types/react@18.3.18': '@types/react@18.3.23':
resolution: {integrity: sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==} resolution: {integrity: sha512-/LDXMQh55EzZQ0uVAZmKKhfENivEvWz6E+EYzh+/MCjMhNsotd+ZHhBGIjFDTi6+fz0OhQQQLbTgdQIxxCsC0w==}
abstract-logging@2.0.1: abstract-logging@2.0.1:
resolution: {integrity: sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==} resolution: {integrity: sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==}
@ -215,8 +215,8 @@ packages:
balanced-match@1.0.2: balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
brace-expansion@2.0.1: brace-expansion@2.0.2:
resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==}
color-convert@2.0.1: color-convert@2.0.1:
resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
@ -261,8 +261,8 @@ packages:
resolution: {integrity: sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==} resolution: {integrity: sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==}
engines: {node: '>=12'} engines: {node: '>=12'}
dotenv@16.4.7: dotenv@16.6.1:
resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==} resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==}
engines: {node: '>=12'} engines: {node: '>=12'}
eastasianwidth@0.2.0: eastasianwidth@0.2.0:
@ -309,8 +309,8 @@ packages:
fastify-plugin@4.5.1: fastify-plugin@4.5.1:
resolution: {integrity: sha512-stRHYGeuqpEZTL1Ef0Ovr2ltazUT9g844X5z/zEBFLG8RYlpDiOCIG+ATvYEp+/zmc7sN29mcIMp8gvYplYPIQ==} resolution: {integrity: sha512-stRHYGeuqpEZTL1Ef0Ovr2ltazUT9g844X5z/zEBFLG8RYlpDiOCIG+ATvYEp+/zmc7sN29mcIMp8gvYplYPIQ==}
fastify@4.29.0: fastify@4.29.1:
resolution: {integrity: sha512-MaaUHUGcCgC8fXQDsDtioaCcag1fmPJ9j64vAKunqZF4aSub040ZGi/ag8NGE2714yREPOKZuHCfpPzuUD3UQQ==} resolution: {integrity: sha512-m2kMNHIG92tSNWv+Z3UeTR9AWLLuo7KctC7mlFPtMEVrfjIhmQhkQnT9v15qA/BfVq3vvj134Y0jl9SBje3jXQ==}
fastq@1.19.1: fastq@1.19.1:
resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==}
@ -429,9 +429,9 @@ packages:
resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==} resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==}
engines: {node: '>=14.0.0'} engines: {node: '>=14.0.0'}
p-comuns@git+http://leitura:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3MTQ3NTA1NzYsImlzcyI6IkdpdG5lc3MiLCJwaWQiOjgsInRrbiI6eyJ0eXAiOiJwYXQiLCJpZCI6MzJ9fQ.OYdExOVQm5UI3wfeTaWjmD0o65Y1hrjFz5EvMB1a__U@git.idz.one:3000/git/multi-modulos-ambientais/_comuns.git#1350348900bece75a07fcb16f1cca9f7f07cac2d: p-comuns@git+https://leitura:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3MTQ3NTA1NzYsImlzcyI6IkdpdG5lc3MiLCJwaWQiOjgsInRrbiI6eyJ0eXAiOiJwYXQiLCJpZCI6MzJ9fQ.OYdExOVQm5UI3wfeTaWjmD0o65Y1hrjFz5EvMB1a__U@git.idz.one/git/multi-modulos-ambientais/_comuns.git#432361afd274302bccfce44e164d361d0cb9d9f0:
resolution: {commit: 1350348900bece75a07fcb16f1cca9f7f07cac2d, repo: http://leitura:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3MTQ3NTA1NzYsImlzcyI6IkdpdG5lc3MiLCJwaWQiOjgsInRrbiI6eyJ0eXAiOiJwYXQiLCJpZCI6MzJ9fQ.OYdExOVQm5UI3wfeTaWjmD0o65Y1hrjFz5EvMB1a__U@git.idz.one:3000/git/multi-modulos-ambientais/_comuns.git, type: git} resolution: {commit: 432361afd274302bccfce44e164d361d0cb9d9f0, repo: https://leitura:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3MTQ3NTA1NzYsImlzcyI6IkdpdG5lc3MiLCJwaWQiOjgsInRrbiI6eyJ0eXAiOiJwYXQiLCJpZCI6MzJ9fQ.OYdExOVQm5UI3wfeTaWjmD0o65Y1hrjFz5EvMB1a__U@git.idz.one/git/multi-modulos-ambientais/_comuns.git, type: git}
version: 0.93.0 version: 0.115.0
p-finally@1.0.0: p-finally@1.0.0:
resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==}
@ -462,15 +462,15 @@ packages:
pino-std-serializers@7.0.0: pino-std-serializers@7.0.0:
resolution: {integrity: sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==} resolution: {integrity: sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==}
pino@9.6.0: pino@9.7.0:
resolution: {integrity: sha512-i85pKRCt4qMjZ1+L7sy2Ag4t1atFcdbEt76+7iRJn1g2BvsnRMGu9p8pivl9fs63M2kF/A0OacFZhTub+m/qMg==} resolution: {integrity: sha512-vnMCM6xZTb1WDmLvtG2lE/2p+t9hDEIvTWJsu6FejkE62vB7gDhvzrpFR4Cw2to+9JNQxVnkAKVPA1KPB98vWg==}
hasBin: true hasBin: true
process-warning@3.0.0: process-warning@3.0.0:
resolution: {integrity: sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==} resolution: {integrity: sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==}
process-warning@4.0.1: process-warning@5.0.0:
resolution: {integrity: sha512-3c2LzQ3rY9d0hc1emcsHhfT9Jwz0cChib/QN89oME2R451w5fy3f0afAhERFZAwrbDU43wk12d0ORBpDVME50Q==} resolution: {integrity: sha512-a39t9ApHNx2L4+HBnQKqxxHNs1r7KF+Intd8Q/g1bUh6q0WIp9voPXJ/x0j+ZL45KF1pJd9+q2jLIRMfvEshkA==}
proxy-addr@2.0.7: proxy-addr@2.0.7:
resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==}
@ -526,8 +526,8 @@ packages:
secure-json-parse@2.7.0: secure-json-parse@2.7.0:
resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==} resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==}
semver@7.7.1: semver@7.7.2:
resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==} resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==}
engines: {node: '>=10'} engines: {node: '>=10'}
hasBin: true hasBin: true
@ -605,13 +605,13 @@ packages:
tr46@0.0.3: tr46@0.0.3:
resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
typescript@5.7.3: typescript@5.8.3:
resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==} resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==}
engines: {node: '>=14.17'} engines: {node: '>=14.17'}
hasBin: true hasBin: true
undici-types@6.19.8: undici-types@6.21.0:
resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}
webidl-conversions@3.0.1: webidl-conversions@3.0.1:
resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
@ -647,39 +647,39 @@ packages:
snapshots: snapshots:
'@biomejs/biome@1.9.4': '@biomejs/biome@2.0.6':
optionalDependencies: optionalDependencies:
'@biomejs/cli-darwin-arm64': 1.9.4 '@biomejs/cli-darwin-arm64': 2.0.6
'@biomejs/cli-darwin-x64': 1.9.4 '@biomejs/cli-darwin-x64': 2.0.6
'@biomejs/cli-linux-arm64': 1.9.4 '@biomejs/cli-linux-arm64': 2.0.6
'@biomejs/cli-linux-arm64-musl': 1.9.4 '@biomejs/cli-linux-arm64-musl': 2.0.6
'@biomejs/cli-linux-x64': 1.9.4 '@biomejs/cli-linux-x64': 2.0.6
'@biomejs/cli-linux-x64-musl': 1.9.4 '@biomejs/cli-linux-x64-musl': 2.0.6
'@biomejs/cli-win32-arm64': 1.9.4 '@biomejs/cli-win32-arm64': 2.0.6
'@biomejs/cli-win32-x64': 1.9.4 '@biomejs/cli-win32-x64': 2.0.6
'@biomejs/cli-darwin-arm64@1.9.4': '@biomejs/cli-darwin-arm64@2.0.6':
optional: true optional: true
'@biomejs/cli-darwin-x64@1.9.4': '@biomejs/cli-darwin-x64@2.0.6':
optional: true optional: true
'@biomejs/cli-linux-arm64-musl@1.9.4': '@biomejs/cli-linux-arm64-musl@2.0.6':
optional: true optional: true
'@biomejs/cli-linux-arm64@1.9.4': '@biomejs/cli-linux-arm64@2.0.6':
optional: true optional: true
'@biomejs/cli-linux-x64-musl@1.9.4': '@biomejs/cli-linux-x64-musl@2.0.6':
optional: true optional: true
'@biomejs/cli-linux-x64@1.9.4': '@biomejs/cli-linux-x64@2.0.6':
optional: true optional: true
'@biomejs/cli-win32-arm64@1.9.4': '@biomejs/cli-win32-arm64@2.0.6':
optional: true optional: true
'@biomejs/cli-win32-x64@1.9.4': '@biomejs/cli-win32-x64@2.0.6':
optional: true optional: true
'@fastify/accept-negotiator@1.1.0': {} '@fastify/accept-negotiator@1.1.0': {}
@ -736,19 +736,19 @@ snapshots:
'@pkgjs/parseargs@0.11.0': '@pkgjs/parseargs@0.11.0':
optional: true optional: true
'@types/node@20.17.19': '@types/node@20.19.4':
dependencies: dependencies:
undici-types: 6.19.8 undici-types: 6.21.0
'@types/prop-types@15.7.14': {} '@types/prop-types@15.7.15': {}
'@types/react-dom@18.3.5(@types/react@18.3.18)': '@types/react-dom@18.3.7(@types/react@18.3.23)':
dependencies: dependencies:
'@types/react': 18.3.18 '@types/react': 18.3.23
'@types/react@18.3.18': '@types/react@18.3.23':
dependencies: dependencies:
'@types/prop-types': 15.7.14 '@types/prop-types': 15.7.15
csstype: 3.1.3 csstype: 3.1.3
abstract-logging@2.0.1: {} abstract-logging@2.0.1: {}
@ -787,7 +787,7 @@ snapshots:
balanced-match@1.0.2: {} balanced-match@1.0.2: {}
brace-expansion@2.0.1: brace-expansion@2.0.2:
dependencies: dependencies:
balanced-match: 1.0.2 balanced-match: 1.0.2
@ -830,13 +830,13 @@ snapshots:
dotenv-cli@7.4.4: dotenv-cli@7.4.4:
dependencies: dependencies:
cross-spawn: 7.0.6 cross-spawn: 7.0.6
dotenv: 16.4.7 dotenv: 16.6.1
dotenv-expand: 10.0.0 dotenv-expand: 10.0.0
minimist: 1.2.8 minimist: 1.2.8
dotenv-expand@10.0.0: {} dotenv-expand@10.0.0: {}
dotenv@16.4.7: {} dotenv@16.6.1: {}
eastasianwidth@0.2.0: {} eastasianwidth@0.2.0: {}
@ -884,7 +884,7 @@ snapshots:
fastify-plugin@4.5.1: {} fastify-plugin@4.5.1: {}
fastify@4.29.0: fastify@4.29.1:
dependencies: dependencies:
'@fastify/ajv-compiler': 3.6.0 '@fastify/ajv-compiler': 3.6.0
'@fastify/error': 3.4.1 '@fastify/error': 3.4.1
@ -895,12 +895,12 @@ snapshots:
fast-json-stringify: 5.16.1 fast-json-stringify: 5.16.1
find-my-way: 8.2.2 find-my-way: 8.2.2
light-my-request: 5.14.0 light-my-request: 5.14.0
pino: 9.6.0 pino: 9.7.0
process-warning: 3.0.0 process-warning: 3.0.0
proxy-addr: 2.0.7 proxy-addr: 2.0.7
rfdc: 1.4.1 rfdc: 1.4.1
secure-json-parse: 2.7.0 secure-json-parse: 2.7.0
semver: 7.7.1 semver: 7.7.2
toad-cache: 3.7.0 toad-cache: 3.7.0
fastq@1.19.1: fastq@1.19.1:
@ -991,7 +991,7 @@ snapshots:
minimatch@9.0.5: minimatch@9.0.5:
dependencies: dependencies:
brace-expansion: 2.0.1 brace-expansion: 2.0.2
minimist@1.2.8: {} minimist@1.2.8: {}
@ -1013,7 +1013,7 @@ snapshots:
on-exit-leak-free@2.1.2: {} on-exit-leak-free@2.1.2: {}
p-comuns@git+http://leitura:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3MTQ3NTA1NzYsImlzcyI6IkdpdG5lc3MiLCJwaWQiOjgsInRrbiI6eyJ0eXAiOiJwYXQiLCJpZCI6MzJ9fQ.OYdExOVQm5UI3wfeTaWjmD0o65Y1hrjFz5EvMB1a__U@git.idz.one:3000/git/multi-modulos-ambientais/_comuns.git#1350348900bece75a07fcb16f1cca9f7f07cac2d: p-comuns@git+https://leitura:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3MTQ3NTA1NzYsImlzcyI6IkdpdG5lc3MiLCJwaWQiOjgsInRrbiI6eyJ0eXAiOiJwYXQiLCJpZCI6MzJ9fQ.OYdExOVQm5UI3wfeTaWjmD0o65Y1hrjFz5EvMB1a__U@git.idz.one/git/multi-modulos-ambientais/_comuns.git#432361afd274302bccfce44e164d361d0cb9d9f0:
dependencies: dependencies:
cross-fetch: 4.1.0 cross-fetch: 4.1.0
zod: 3.24.1 zod: 3.24.1
@ -1043,14 +1043,14 @@ snapshots:
pino-std-serializers@7.0.0: {} pino-std-serializers@7.0.0: {}
pino@9.6.0: pino@9.7.0:
dependencies: dependencies:
atomic-sleep: 1.0.0 atomic-sleep: 1.0.0
fast-redact: 3.5.0 fast-redact: 3.5.0
on-exit-leak-free: 2.1.2 on-exit-leak-free: 2.1.2
pino-abstract-transport: 2.0.0 pino-abstract-transport: 2.0.0
pino-std-serializers: 7.0.0 pino-std-serializers: 7.0.0
process-warning: 4.0.1 process-warning: 5.0.0
quick-format-unescaped: 4.0.4 quick-format-unescaped: 4.0.4
real-require: 0.2.0 real-require: 0.2.0
safe-stable-stringify: 2.5.0 safe-stable-stringify: 2.5.0
@ -1059,7 +1059,7 @@ snapshots:
process-warning@3.0.0: {} process-warning@3.0.0: {}
process-warning@4.0.1: {} process-warning@5.0.0: {}
proxy-addr@2.0.7: proxy-addr@2.0.7:
dependencies: dependencies:
@ -1104,7 +1104,7 @@ snapshots:
secure-json-parse@2.7.0: {} secure-json-parse@2.7.0: {}
semver@7.7.1: {} semver@7.7.2: {}
set-cookie-parser@2.7.1: {} set-cookie-parser@2.7.1: {}
@ -1166,9 +1166,9 @@ snapshots:
tr46@0.0.3: {} tr46@0.0.3: {}
typescript@5.7.3: {} typescript@5.8.3: {}
undici-types@6.19.8: {} undici-types@6.21.0: {}
webidl-conversions@3.0.1: {} webidl-conversions@3.0.1: {}

View file

@ -3,7 +3,7 @@ const Prefixos = {
"link-local": "http://localhost:5020/estaticos", "link-local": "http://localhost:5020/estaticos",
"link-servidor": "https://carro-de-boi-idz-one.b-cdn.net/estaticos", "link-servidor": "https://carro-de-boi-idz-one.b-cdn.net/estaticos",
node_modules: "node_modules/p-estaticos/estaticos", node_modules: "node_modules/p-estaticos/estaticos",
}; }
/** /**
* *
@ -11,7 +11,7 @@ const Prefixos = {
* @returns String * @returns String
*/ */
export const estaticos = (caminho: keyof typeof Prefixos) => { export const estaticos = (caminho: keyof typeof Prefixos) => {
const prefixo = Prefixos[caminho]; const prefixo = Prefixos[caminho]
return { return {
logos: { logos: {
@ -630,5 +630,5 @@ export const estaticos = (caminho: keyof typeof Prefixos) => {
background: { background: {
"Paisagem.jpg": `${prefixo}/background/Paisagem.jpg`, "Paisagem.jpg": `${prefixo}/background/Paisagem.jpg`,
}, },
}; }
}; }

View file

@ -1,8 +1,8 @@
// esse arquivo não pode ser importado em index.ts para não gerar conflito // esse arquivo não pode ser importado em index.ts para não gerar conflito
import fs from "node:fs"; import fs from "node:fs"
import path from "node:path"; import path from "node:path"
import { globSync } from "glob"; import { globSync } from "glob"
export const mapearPasta = ({ export const mapearPasta = ({
prefixos, prefixos,
@ -10,18 +10,18 @@ export const mapearPasta = ({
arquivoDestino, arquivoDestino,
variavel, variavel,
}: { }: {
prefixos: { [k: string]: string }; prefixos: { [k: string]: string }
pasta: string; pasta: string
arquivoDestino: string; arquivoDestino: string
variavel?: string; variavel?: string
}) => { }) => {
const pasta_estaticos = pasta.endsWith("/") ? pasta : `${pasta}/`; const pasta_estaticos = pasta.endsWith("/") ? pasta : `${pasta}/`
if (!fs.existsSync(pasta_estaticos)) if (!fs.existsSync(pasta_estaticos))
throw new Error(`Pasta ${pasta_estaticos} não existe`); throw new Error(`Pasta ${pasta_estaticos} não existe`)
const gerar = (async () => { const _gerar = (async () => {
// listar arquivos da pasta estáticos // listar arquivos da pasta estáticos
const files = globSync(`${pasta_estaticos}**/*`, { nodir: true }); const files = globSync(`${pasta_estaticos}**/*`, { nodir: true })
const arquivo_ts = ` const arquivo_ts = `
@ -51,41 +51,41 @@ export const mapearPasta = ({
*/ */
type tp = { type tp = {
[key: string]: string | tp; [key: string]: string | tp
}; }
const arquivos = {} as tp; const arquivos = {} as tp
for (const arquivo of files) { for (const arquivo of files) {
const partes = arquivo.slice(pasta_estaticos.length).split("/"); const partes = arquivo.slice(pasta_estaticos.length).split("/")
let pasta = arquivos; let pasta = arquivos
for (const [i, parte] of partes.entries()) { for (const [i, parte] of partes.entries()) {
if (i === partes.length - 1) { if (i === partes.length - 1) {
pasta[parte] = `~~~\${prefixo}${encodeURI( pasta[parte] = `~~~\${prefixo}${encodeURI(
arquivo.slice(pasta_estaticos.length - 1), arquivo.slice(pasta_estaticos.length - 1),
)}~~~`; )}~~~`
} else { } else {
pasta[parte] = pasta[parte] || {}; pasta[parte] = pasta[parte] || {}
pasta = pasta[parte] as tp; pasta = pasta[parte] as tp
} }
} }
} }
return JSON.stringify(arquivos, null, 2) return JSON.stringify(arquivos, null, 2)
.replace(/"~~~/g, "`") .replace(/"~~~/g, "`")
.replace(/~~~"/g, "`"); .replace(/~~~"/g, "`")
})()}; })()};
}; };
`; `
// criar pasta de arquivo destino // criar pasta de arquivo destino
const pastaDestino = path.dirname(arquivoDestino); const pastaDestino = path.dirname(arquivoDestino)
if (!fs.existsSync(pastaDestino)) { if (!fs.existsSync(pastaDestino)) {
fs.mkdirSync(pastaDestino, { recursive: true }); fs.mkdirSync(pastaDestino, { recursive: true })
} }
// escrever arquivo // escrever arquivo
fs.writeFileSync(arquivoDestino, arquivo_ts); fs.writeFileSync(arquivoDestino, arquivo_ts)
})(); })()
}; }