From f34b66cbe47e16aa5830c75a68e5604434fa4ba0 Mon Sep 17 00:00:00 2001 From: Luiz Silva Date: Sun, 6 Jul 2025 18:35:12 -0300 Subject: [PATCH] isolamento de pacote --- .gitignore | 2 + .vscode/settings.json | 5 + README.md | 3 + biome.json | 7 + bun.lock | 82 +++++ .../autenticacao/_codigoContaSite.d.ts | 9 + dist-import/autenticacao/_codigoContaSite.js | 19 ++ dist-import/autenticacao/_usuarios_quipo.d.ts | 17 + dist-import/autenticacao/_usuarios_quipo.js | 19 ++ .../_usuarios_quipo_vincular.d.ts | 9 + .../autenticacao/_usuarios_quipo_vincular.js | 22 ++ dist-import/autenticacao/_validarToken.d.ts | 9 + dist-import/autenticacao/_validarToken.js | 20 ++ dist-import/autenticacao/index.d.ts | 30 ++ dist-import/autenticacao/index.js | 11 + dist-import/index.d.ts | 6 + dist-import/index.js | 6 + dist-import/lista-prefeituras.d.ts | 12 + dist-import/lista-prefeituras.js | 21 ++ dist-import/lista-usuarios.d.ts | 20 ++ dist-import/lista-usuarios.js | 22 ++ dist-import/lista-vinculos.d.ts | 16 + dist-import/lista-vinculos.js | 25 ++ .../produtos/_betha-meio-ambiente.d.ts | 2 + dist-import/produtos/_betha-meio-ambiente.js | 9 + dist-import/produtos/_e-licencie-gov.d.ts | 2 + dist-import/produtos/_e-licencie-gov.js | 10 + dist-import/produtos/_e-licencie.d.ts | 2 + dist-import/produtos/_e-licencie.js | 7 + dist-import/produtos/_suporte.d.ts | 2 + dist-import/produtos/_suporte.js | 7 + dist-import/produtos/doc.d.ts | 31 ++ dist-import/produtos/doc.js | 32 ++ dist-import/produtos/index.d.ts | 9 + dist-import/produtos/index.js | 12 + dist-import/produtos/tipagem.d.ts | 94 ++++++ dist-import/produtos/tipagem.js | 50 +++ dist-import/tokens/index.d.ts | 10 + dist-import/tokens/index.js | 1 + .../autenticacao/_codigoContaSite.d.ts | 9 + dist-require/autenticacao/_codigoContaSite.js | 26 ++ .../autenticacao/_usuarios_quipo.d.ts | 17 + dist-require/autenticacao/_usuarios_quipo.js | 26 ++ .../_usuarios_quipo_vincular.d.ts | 9 + .../autenticacao/_usuarios_quipo_vincular.js | 29 ++ dist-require/autenticacao/_validarToken.d.ts | 9 + dist-require/autenticacao/_validarToken.js | 27 ++ dist-require/autenticacao/index.d.ts | 30 ++ dist-require/autenticacao/index.js | 14 + dist-require/index.d.ts | 6 + dist-require/index.js | 22 ++ dist-require/lista-prefeituras.d.ts | 12 + dist-require/lista-prefeituras.js | 28 ++ dist-require/lista-usuarios.d.ts | 20 ++ dist-require/lista-usuarios.js | 29 ++ dist-require/lista-vinculos.d.ts | 16 + dist-require/lista-vinculos.js | 32 ++ .../produtos/_betha-meio-ambiente.d.ts | 2 + dist-require/produtos/_betha-meio-ambiente.js | 12 + dist-require/produtos/_e-licencie-gov.d.ts | 2 + dist-require/produtos/_e-licencie-gov.js | 13 + dist-require/produtos/_e-licencie.d.ts | 2 + dist-require/produtos/_e-licencie.js | 10 + dist-require/produtos/_suporte.d.ts | 2 + dist-require/produtos/_suporte.js | 10 + dist-require/produtos/doc.d.ts | 31 ++ dist-require/produtos/doc.js | 32 ++ dist-require/produtos/index.d.ts | 9 + dist-require/produtos/index.js | 24 ++ dist-require/produtos/tipagem.d.ts | 94 ++++++ dist-require/produtos/tipagem.js | 55 ++++ dist-require/tokens/index.d.ts | 10 + dist-require/tokens/index.js | 2 + package.json | 42 +++ pacote.sh | 27 ++ pnpm-lock.yaml | 298 ++++++++++++++++++ src/autenticacao/_codigoContaSite.ts | 32 ++ src/autenticacao/_usuarios_quipo.ts | 44 +++ src/autenticacao/_usuarios_quipo_vincular.ts | 40 +++ src/autenticacao/_validarToken.ts | 34 ++ src/autenticacao/index.ts | 14 + src/index.ts | 6 + src/lista-prefeituras.ts | 40 +++ src/lista-usuarios.ts | 54 ++++ src/lista-vinculos.ts | 48 +++ src/produtos/_betha-meio-ambiente.ts | 15 + src/produtos/_e-licencie-gov.ts | 13 + src/produtos/_e-licencie.ts | 8 + src/produtos/_suporte.ts | 9 + src/produtos/doc.ts | 31 ++ src/produtos/index.ts | 35 ++ src/produtos/tipagem.ts | 102 ++++++ src/tokens/index.ts | 11 + tsconfig-back.json | 7 + tsconfig-front.json | 7 + tsconfig.json | 25 ++ 96 files changed, 2285 insertions(+) create mode 100644 .gitignore create mode 100644 .vscode/settings.json create mode 100644 README.md create mode 100644 biome.json create mode 100644 bun.lock create mode 100644 dist-import/autenticacao/_codigoContaSite.d.ts create mode 100644 dist-import/autenticacao/_codigoContaSite.js create mode 100644 dist-import/autenticacao/_usuarios_quipo.d.ts create mode 100644 dist-import/autenticacao/_usuarios_quipo.js create mode 100644 dist-import/autenticacao/_usuarios_quipo_vincular.d.ts create mode 100644 dist-import/autenticacao/_usuarios_quipo_vincular.js create mode 100644 dist-import/autenticacao/_validarToken.d.ts create mode 100644 dist-import/autenticacao/_validarToken.js create mode 100644 dist-import/autenticacao/index.d.ts create mode 100644 dist-import/autenticacao/index.js create mode 100644 dist-import/index.d.ts create mode 100644 dist-import/index.js create mode 100644 dist-import/lista-prefeituras.d.ts create mode 100644 dist-import/lista-prefeituras.js create mode 100644 dist-import/lista-usuarios.d.ts create mode 100644 dist-import/lista-usuarios.js create mode 100644 dist-import/lista-vinculos.d.ts create mode 100644 dist-import/lista-vinculos.js create mode 100644 dist-import/produtos/_betha-meio-ambiente.d.ts create mode 100644 dist-import/produtos/_betha-meio-ambiente.js create mode 100644 dist-import/produtos/_e-licencie-gov.d.ts create mode 100644 dist-import/produtos/_e-licencie-gov.js create mode 100644 dist-import/produtos/_e-licencie.d.ts create mode 100644 dist-import/produtos/_e-licencie.js create mode 100644 dist-import/produtos/_suporte.d.ts create mode 100644 dist-import/produtos/_suporte.js create mode 100644 dist-import/produtos/doc.d.ts create mode 100644 dist-import/produtos/doc.js create mode 100644 dist-import/produtos/index.d.ts create mode 100644 dist-import/produtos/index.js create mode 100644 dist-import/produtos/tipagem.d.ts create mode 100644 dist-import/produtos/tipagem.js create mode 100644 dist-import/tokens/index.d.ts create mode 100644 dist-import/tokens/index.js create mode 100644 dist-require/autenticacao/_codigoContaSite.d.ts create mode 100644 dist-require/autenticacao/_codigoContaSite.js create mode 100644 dist-require/autenticacao/_usuarios_quipo.d.ts create mode 100644 dist-require/autenticacao/_usuarios_quipo.js create mode 100644 dist-require/autenticacao/_usuarios_quipo_vincular.d.ts create mode 100644 dist-require/autenticacao/_usuarios_quipo_vincular.js create mode 100644 dist-require/autenticacao/_validarToken.d.ts create mode 100644 dist-require/autenticacao/_validarToken.js create mode 100644 dist-require/autenticacao/index.d.ts create mode 100644 dist-require/autenticacao/index.js create mode 100644 dist-require/index.d.ts create mode 100644 dist-require/index.js create mode 100644 dist-require/lista-prefeituras.d.ts create mode 100644 dist-require/lista-prefeituras.js create mode 100644 dist-require/lista-usuarios.d.ts create mode 100644 dist-require/lista-usuarios.js create mode 100644 dist-require/lista-vinculos.d.ts create mode 100644 dist-require/lista-vinculos.js create mode 100644 dist-require/produtos/_betha-meio-ambiente.d.ts create mode 100644 dist-require/produtos/_betha-meio-ambiente.js create mode 100644 dist-require/produtos/_e-licencie-gov.d.ts create mode 100644 dist-require/produtos/_e-licencie-gov.js create mode 100644 dist-require/produtos/_e-licencie.d.ts create mode 100644 dist-require/produtos/_e-licencie.js create mode 100644 dist-require/produtos/_suporte.d.ts create mode 100644 dist-require/produtos/_suporte.js create mode 100644 dist-require/produtos/doc.d.ts create mode 100644 dist-require/produtos/doc.js create mode 100644 dist-require/produtos/index.d.ts create mode 100644 dist-require/produtos/index.js create mode 100644 dist-require/produtos/tipagem.d.ts create mode 100644 dist-require/produtos/tipagem.js create mode 100644 dist-require/tokens/index.d.ts create mode 100644 dist-require/tokens/index.js create mode 100644 package.json create mode 100644 pacote.sh create mode 100644 pnpm-lock.yaml create mode 100644 src/autenticacao/_codigoContaSite.ts create mode 100644 src/autenticacao/_usuarios_quipo.ts create mode 100644 src/autenticacao/_usuarios_quipo_vincular.ts create mode 100644 src/autenticacao/_validarToken.ts create mode 100644 src/autenticacao/index.ts create mode 100644 src/index.ts create mode 100644 src/lista-prefeituras.ts create mode 100644 src/lista-usuarios.ts create mode 100644 src/lista-vinculos.ts create mode 100644 src/produtos/_betha-meio-ambiente.ts create mode 100644 src/produtos/_e-licencie-gov.ts create mode 100644 src/produtos/_e-licencie.ts create mode 100644 src/produtos/_suporte.ts create mode 100644 src/produtos/doc.ts create mode 100644 src/produtos/index.ts create mode 100644 src/produtos/tipagem.ts create mode 100644 src/tokens/index.ts create mode 100644 tsconfig-back.json create mode 100644 tsconfig-front.json create mode 100644 tsconfig.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..234ef2d --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +node_modules +pacotes \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..2e82148 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "[javascript]": { + "editor.defaultFormatter": "biomejs.biome" + } +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..16756c1 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +Vaŕiáves e fuções para serem compartilhadas com outras aplicações + +Evitar importar pacotes nessa aplicação \ No newline at end of file diff --git a/biome.json b/biome.json new file mode 100644 index 0000000..18249aa --- /dev/null +++ b/biome.json @@ -0,0 +1,7 @@ +{ + "$schema": "node_modules/@biomejs/biome/configuration_schema.json", + "extends": ["node_modules/p-comuns/Documentos/biome.json"], + "files": { + + } +} diff --git a/bun.lock b/bun.lock new file mode 100644 index 0000000..b89a93a --- /dev/null +++ b/bun.lock @@ -0,0 +1,82 @@ +{ + "lockfileVersion": 1, + "workspaces": { + "": { + "name": "p-autenticacao-drive", + "dependencies": { + "cross-fetch": "^4.1.0", + }, + "devDependencies": { + "@biomejs/biome": "^2.0.6", + "@types/node": "^20.16.1", + "check-node-version": "^4.2.1", + "typescript": "5.5.4", + }, + }, + }, + "overrides": { + "p-comuns": "git+https://git2.idz.one/luiz/_comuns.git#master", + "p-respostas": "git+https://git2.idz.one/luiz/_respostas.git#master", + }, + "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.4", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-OP+We5WV8Xnbuvw0zC2m4qfB/BJvjyCwtNjhHdJxV1639SGSKrLmJkc3fMnp2Qy8nJyHp8RO6umxELN/dS1/EA=="], + + "ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + + "chalk": ["chalk@3.0.0", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg=="], + + "check-node-version": ["check-node-version@4.2.1", "", { "dependencies": { "chalk": "^3.0.0", "map-values": "^1.0.1", "minimist": "^1.2.0", "object-filter": "^1.0.2", "run-parallel": "^1.1.4", "semver": "^6.3.0" }, "bin": { "check-node-version": "bin.js" } }, "sha512-YYmFYHV/X7kSJhuN/QYHUu998n/TRuDe8UenM3+m5NrkiH670lb9ILqHIvBencvJc4SDh+XcbXMR4b+TtubJiw=="], + + "color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="], + + "color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="], + + "cross-fetch": ["cross-fetch@4.1.0", "", { "dependencies": { "node-fetch": "^2.7.0" } }, "sha512-uKm5PU+MHTootlWEY+mZ4vvXoCn4fLQxT9dSc1sXVMSFkINTJVN8cAQROpwcKm8bJ/c7rgZVIBWzH5T78sNZZw=="], + + "has-flag": ["has-flag@4.0.0", "", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="], + + "map-values": ["map-values@1.0.1", "", {}, "sha512-BbShUnr5OartXJe1GeccAWtfro11hhgNJg6G9/UtWKjVGvV5U4C09cg5nk8JUevhXODaXY+hQ3xxMUKSs62ONQ=="], + + "minimist": ["minimist@1.2.8", "", {}, "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="], + + "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=="], + + "object-filter": ["object-filter@1.0.2", "", {}, "sha512-NahvP2vZcy1ZiiYah30CEPw0FpDcSkSePJBMpzl5EQgCmISijiGuJm3SPYp7U+Lf2TljyaIw3E5EgkEx/TNEVA=="], + + "queue-microtask": ["queue-microtask@1.2.3", "", {}, "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="], + + "run-parallel": ["run-parallel@1.2.0", "", { "dependencies": { "queue-microtask": "^1.2.2" } }, "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA=="], + + "semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], + + "supports-color": ["supports-color@7.2.0", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="], + + "tr46": ["tr46@0.0.3", "", {}, "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="], + + "typescript": ["typescript@5.5.4", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q=="], + + "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=="], + } +} diff --git a/dist-import/autenticacao/_codigoContaSite.d.ts b/dist-import/autenticacao/_codigoContaSite.d.ts new file mode 100644 index 0000000..41e1592 --- /dev/null +++ b/dist-import/autenticacao/_codigoContaSite.d.ts @@ -0,0 +1,9 @@ +import { type tipoResposta } from "p-respostas"; +type tipoPostCodigoContaSite = { + site: string; +}; +export declare const codigoContaSite: ({ url_api_autenticacao, post, }: { + url_api_autenticacao: string; + post: tipoPostCodigoContaSite; +}) => Promise>; +export {}; diff --git a/dist-import/autenticacao/_codigoContaSite.js b/dist-import/autenticacao/_codigoContaSite.js new file mode 100644 index 0000000..fe83e06 --- /dev/null +++ b/dist-import/autenticacao/_codigoContaSite.js @@ -0,0 +1,19 @@ +import { respostaComuns } from "p-respostas"; +import node_fetch from "cross-fetch"; +export const codigoContaSite = async ({ url_api_autenticacao, post, }) => { + const url = `${url_api_autenticacao}/api/codigo_prefeitura_site`; + try { + const resp = await node_fetch(url, { + method: "POST", + body: JSON.stringify(post), + headers: { "Content-Type": "application/json" }, + }) + .then((r) => r.json()) + .catch((e) => respostaComuns.erro("Erro ao enviar registros", [e.message])) + .then((r) => r); + return resp; + } + catch (e) { + return respostaComuns.erro(`erro ao buscar código do site: ${e}`); + } +}; diff --git a/dist-import/autenticacao/_usuarios_quipo.d.ts b/dist-import/autenticacao/_usuarios_quipo.d.ts new file mode 100644 index 0000000..757ec14 --- /dev/null +++ b/dist-import/autenticacao/_usuarios_quipo.d.ts @@ -0,0 +1,17 @@ +import { type tipoResposta } from "p-respostas"; +import type { tipo_usuarios__listar_retorno } from "../lista-usuarios"; +export type tipoUsuarioExterno = { + _nome: string; + _email: string; + _telefone: string; + vinculo: string; + inquilino: string; + chave_produto: string; + codigo: string; + _cpf: string; +}; +export declare const usuarios_quipo: ({ token_produto, url_api_autenticacao, inquilino, }: { + url_api_autenticacao: string; + token_produto: string; + inquilino: string; +}) => Promise>; diff --git a/dist-import/autenticacao/_usuarios_quipo.js b/dist-import/autenticacao/_usuarios_quipo.js new file mode 100644 index 0000000..f4eea06 --- /dev/null +++ b/dist-import/autenticacao/_usuarios_quipo.js @@ -0,0 +1,19 @@ +import node_fetch from "cross-fetch"; +import { respostaComuns } from "p-respostas"; +export const usuarios_quipo = async ({ token_produto, url_api_autenticacao, inquilino, }) => { + const url = `${url_api_autenticacao}/api/usuarios__listar`; + if (!token_produto) + return respostaComuns.erro("token_produto não informado"); + const headers = { + token: token_produto, + "Content-Type": "application/json", + }; + return node_fetch(url, { + method: "POST", + body: JSON.stringify({ inquilino }), + headers, + }) + .then((r) => r.json()) + .catch((e) => respostaComuns.erro(`Erro ao buscar usuários quipo governo ${e.message}`)) + .then((r) => r); +}; diff --git a/dist-import/autenticacao/_usuarios_quipo_vincular.d.ts b/dist-import/autenticacao/_usuarios_quipo_vincular.d.ts new file mode 100644 index 0000000..f5a03e8 --- /dev/null +++ b/dist-import/autenticacao/_usuarios_quipo_vincular.d.ts @@ -0,0 +1,9 @@ +import { type tipoResposta } from "p-respostas"; +export declare const usuarios_quipo_vincular: ({ token_produto, url_api_autenticacao, inquilino_codigo, vinculo, usuario_codigo, email, }: { + url_api_autenticacao: string; + token_produto: string; + inquilino_codigo: string; + vinculo: string; + usuario_codigo?: string; + email: string; +}) => Promise>; diff --git a/dist-import/autenticacao/_usuarios_quipo_vincular.js b/dist-import/autenticacao/_usuarios_quipo_vincular.js new file mode 100644 index 0000000..aa745b8 --- /dev/null +++ b/dist-import/autenticacao/_usuarios_quipo_vincular.js @@ -0,0 +1,22 @@ +import node_fetch from "cross-fetch"; +import { respostaComuns } from "p-respostas"; +export const usuarios_quipo_vincular = async ({ token_produto, url_api_autenticacao, inquilino_codigo, vinculo, usuario_codigo, email, }) => { + const url = `${url_api_autenticacao}/api/vinculos__criar`; + if (!token_produto) + return respostaComuns.erro("token_produto não informado"); + const headers = { + token: token_produto, + "Content-Type": "application/json", + }; + const parametros = { + vinculos: { inquilino_codigo, usuario_codigo, vinculo }, + email: email, + }; + return await node_fetch(url, { + headers, + body: JSON.stringify(parametros), + method: "POST", + }) + .then(async (r) => await r.json()) + .catch((e) => respostaComuns.erro(`Erro ao criar vinculo de usuario ${e.message}`)); +}; diff --git a/dist-import/autenticacao/_validarToken.d.ts b/dist-import/autenticacao/_validarToken.d.ts new file mode 100644 index 0000000..872d220 --- /dev/null +++ b/dist-import/autenticacao/_validarToken.d.ts @@ -0,0 +1,9 @@ +type tipoPostValidarTokem = { + token: string; +}; +/** faz a validação do token */ +export declare const validarToken: ({ url_api_autenticacao, post, }: { + url_api_autenticacao: string; + post: tipoPostValidarTokem; +}) => Promise<"valido" | "erro">; +export {}; diff --git a/dist-import/autenticacao/_validarToken.js b/dist-import/autenticacao/_validarToken.js new file mode 100644 index 0000000..ce52a1f --- /dev/null +++ b/dist-import/autenticacao/_validarToken.js @@ -0,0 +1,20 @@ +import node_fetch from "cross-fetch"; +/** faz a validação do token */ +export const validarToken = async ({ url_api_autenticacao, post, }) => { + const url = `${url_api_autenticacao}/api/validar_token`; + try { + const resposta = await node_fetch(url, { + method: "POST", + body: JSON.stringify(post), + headers: { "Content-Type": "application/json" }, + }) + .then((r) => r.json()) + .then((r) => r) + .then((resposta) => resposta.eCerto ? "valido" : "erro") + .catch(() => "erro"); + return resposta; + } + catch (_e) { + return "erro"; + } +}; diff --git a/dist-import/autenticacao/index.d.ts b/dist-import/autenticacao/index.d.ts new file mode 100644 index 0000000..2a45dc9 --- /dev/null +++ b/dist-import/autenticacao/index.d.ts @@ -0,0 +1,30 @@ +import { type tipoUsuarioExterno } from "./_usuarios_quipo"; +export type { tipoUsuarioExterno }; +/** todas as rotas de comunicação com autenticador partem dessa variável */ +export declare const pAutenticacao: { + validarToken: ({ url_api_autenticacao, post, }: { + url_api_autenticacao: string; + post: { + token: string; + }; + }) => Promise<"valido" | "erro">; + codigoContaSite: ({ url_api_autenticacao, post, }: { + url_api_autenticacao: string; + post: { + site: string; + }; + }) => Promise>; + usuarios_quipo: ({ token_produto, url_api_autenticacao, inquilino, }: { + url_api_autenticacao: string; + token_produto: string; + inquilino: string; + }) => Promise>; + usuarios_quipo_vincular: ({ token_produto, url_api_autenticacao, inquilino_codigo, vinculo, usuario_codigo, email, }: { + url_api_autenticacao: string; + token_produto: string; + inquilino_codigo: string; + vinculo: string; + usuario_codigo?: string; + email: string; + }) => Promise>; +}; diff --git a/dist-import/autenticacao/index.js b/dist-import/autenticacao/index.js new file mode 100644 index 0000000..8e15e91 --- /dev/null +++ b/dist-import/autenticacao/index.js @@ -0,0 +1,11 @@ +import { codigoContaSite } from "./_codigoContaSite"; +import { usuarios_quipo } from "./_usuarios_quipo"; +import { usuarios_quipo_vincular } from "./_usuarios_quipo_vincular"; +import { validarToken } from "./_validarToken"; +/** todas as rotas de comunicação com autenticador partem dessa variável */ +export const pAutenticacao = { + validarToken, + codigoContaSite, + usuarios_quipo, + usuarios_quipo_vincular, +}; diff --git a/dist-import/index.d.ts b/dist-import/index.d.ts new file mode 100644 index 0000000..b8e4f3c --- /dev/null +++ b/dist-import/index.d.ts @@ -0,0 +1,6 @@ +export * from "./autenticacao"; +export * from "./lista-prefeituras"; +export * from "./lista-usuarios"; +export * from "./lista-vinculos"; +export * from "./produtos"; +export * from "./tokens"; diff --git a/dist-import/index.js b/dist-import/index.js new file mode 100644 index 0000000..b8e4f3c --- /dev/null +++ b/dist-import/index.js @@ -0,0 +1,6 @@ +export * from "./autenticacao"; +export * from "./lista-prefeituras"; +export * from "./lista-usuarios"; +export * from "./lista-vinculos"; +export * from "./produtos"; +export * from "./tokens"; diff --git a/dist-import/lista-prefeituras.d.ts b/dist-import/lista-prefeituras.d.ts new file mode 100644 index 0000000..5d5e0aa --- /dev/null +++ b/dist-import/lista-prefeituras.d.ts @@ -0,0 +1,12 @@ +import { type tipoResposta } from "p-respostas"; +import type { chaves_produto } from "./produtos/tipagem"; +export type tipoRetornoListarPrefeitrua = { + nome: string; + inquilino: string; + base_url: string; + produto: keyof typeof chaves_produto; +}; +export declare const tx_listar_prefeituras: "listar_prefeituras"; +export declare const listarPrefeituras: ({ url_api_autenticacao, }: { + url_api_autenticacao: string; +}) => Promise>; diff --git a/dist-import/lista-prefeituras.js b/dist-import/lista-prefeituras.js new file mode 100644 index 0000000..91ed9d4 --- /dev/null +++ b/dist-import/lista-prefeituras.js @@ -0,0 +1,21 @@ +import cFetch from "cross-fetch"; +import { respostaComuns } from "p-respostas"; +export const tx_listar_prefeituras = "listar_prefeituras"; +export const listarPrefeituras = async ({ url_api_autenticacao, }) => { + const url = `${url_api_autenticacao}/api/${tx_listar_prefeituras}`; + return cFetch(url) + .then(async (a) => { + const texto = await a.text(); + try { + const res = JSON.parse(texto); + return res; + } + catch (error) { + return respostaComuns.erro(`Erro ao listar cidades: ${error.message}`, [ + texto, + error, + ]); + } + }) + .catch((error) => respostaComuns.erro(`Erro ao listar cidades: ${error.message}`, [error])); +}; diff --git a/dist-import/lista-usuarios.d.ts b/dist-import/lista-usuarios.d.ts new file mode 100644 index 0000000..9d540cb --- /dev/null +++ b/dist-import/lista-usuarios.d.ts @@ -0,0 +1,20 @@ +import { type tipoResposta } from "p-respostas"; +export declare const tx_usuarios__listar: "usuarios__listar"; +export type tipo_usuarios__listar_retorno = { + inquilino: string; + vinculo: string; + codigo: string; + cpf: string; + data_hora_atualizacao: string; + email: string; + id_betha_sistema: string; + nome: string; + telefone: string; +}; +export type tipo_usuarios__listar_parametros = { + inquilino?: string; +}; +export declare const listarUsuarios: ({ token, url_api_autenticacao, }: { + url_api_autenticacao: string; + token: string; +}, parametros: tipo_usuarios__listar_parametros) => Promise>; diff --git a/dist-import/lista-usuarios.js b/dist-import/lista-usuarios.js new file mode 100644 index 0000000..1f8a280 --- /dev/null +++ b/dist-import/lista-usuarios.js @@ -0,0 +1,22 @@ +import cFetch from "cross-fetch"; +import { respostaComuns } from "p-respostas"; +export const tx_usuarios__listar = "usuarios__listar"; +export const listarUsuarios = async ({ token, url_api_autenticacao, }, parametros) => { + const url = `${url_api_autenticacao}/api/${tx_usuarios__listar}`; + return cFetch(url, { + headers: { token, "Content-Type": "application/json" }, + body: JSON.stringify(parametros), + method: "post", + }) + .then(async (a) => { + const texto = await a.text(); + try { + const res = JSON.parse(texto); + return res; + } + catch (error) { + return respostaComuns.erro(`Erro ao listar usuários: ${error.message}`, [texto, error]); + } + }) + .catch((error) => respostaComuns.erro(`Erro ao listar usuários: ${error.message}`, [error])); +}; diff --git a/dist-import/lista-vinculos.d.ts b/dist-import/lista-vinculos.d.ts new file mode 100644 index 0000000..27e7cb2 --- /dev/null +++ b/dist-import/lista-vinculos.d.ts @@ -0,0 +1,16 @@ +import { type tipoResposta } from "p-respostas"; +export declare const tx_vinculos__listar: "vinculos__listar"; +export type tipo_retorno_vinculo_listas = { + codigo: string; + usuario_codigo: string; + inquilino: string; + vinculo: string; + chave_produto: string; + _usuario_nome: string; + _inquilino_nome: string; + _inquilino_base_url: string; +}; +export declare const listarVinculos: ({ token, url_api_autenticacao, }: { + url_api_autenticacao: string; + token: string; +}) => Promise>; diff --git a/dist-import/lista-vinculos.js b/dist-import/lista-vinculos.js new file mode 100644 index 0000000..c9532a6 --- /dev/null +++ b/dist-import/lista-vinculos.js @@ -0,0 +1,25 @@ +import cFetch from "cross-fetch"; +import { respostaComuns } from "p-respostas"; +export const tx_vinculos__listar = "vinculos__listar"; +export const listarVinculos = async ({ token, url_api_autenticacao, }) => { + const url = `${url_api_autenticacao}/api/${tx_vinculos__listar}`; + return cFetch(url, { + headers: { token, "Content-Type": "application/json" }, + body: "{}", + method: "post", + }) + .then(async (a) => { + const texto = await a.text(); + try { + const res = JSON.parse(texto); + return res; + } + catch (error) { + return respostaComuns.erro(`Erro ao listar cidades: ${error.message}`, [ + texto, + error, + ]); + } + }) + .catch((error) => respostaComuns.erro(`Erro ao listar cidades: ${error.message}`, [error])); +}; diff --git a/dist-import/produtos/_betha-meio-ambiente.d.ts b/dist-import/produtos/_betha-meio-ambiente.d.ts new file mode 100644 index 0000000..701ee61 --- /dev/null +++ b/dist-import/produtos/_betha-meio-ambiente.d.ts @@ -0,0 +1,2 @@ +import { ProdutoQuipo } from "./tipagem"; +export declare const produto_betha_meio_ambiente: ProdutoQuipo<"betha-meio-ambiente">; diff --git a/dist-import/produtos/_betha-meio-ambiente.js b/dist-import/produtos/_betha-meio-ambiente.js new file mode 100644 index 0000000..e69f86b --- /dev/null +++ b/dist-import/produtos/_betha-meio-ambiente.js @@ -0,0 +1,9 @@ +import { ProdutoQuipo } from "./tipagem"; +export const produto_betha_meio_ambiente = new ProdutoQuipo({ + chave_produto: "betha-meio-ambiente", + titulo: "Betha Meio Ambiente", + descricao: "Betha Meio Ambiente: Software de gestão de processos ambientais para órgãos públicos da Betha Sistemas.", + url_produto: ({ inquilino, base_url, vinculo }) => `${base_url}/${inquilino}${vinculo == "anonimo" + ? "" + : `/${vinculo}#/admin`}`, +}); diff --git a/dist-import/produtos/_e-licencie-gov.d.ts b/dist-import/produtos/_e-licencie-gov.d.ts new file mode 100644 index 0000000..c61248c --- /dev/null +++ b/dist-import/produtos/_e-licencie-gov.d.ts @@ -0,0 +1,2 @@ +import { ProdutoQuipo } from "./tipagem"; +export declare const produto_e_licencie_gov: ProdutoQuipo<"e-licencie-gov">; diff --git a/dist-import/produtos/_e-licencie-gov.js b/dist-import/produtos/_e-licencie-gov.js new file mode 100644 index 0000000..c479dca --- /dev/null +++ b/dist-import/produtos/_e-licencie-gov.js @@ -0,0 +1,10 @@ +import { produto_betha_meio_ambiente } from "./_betha-meio-ambiente"; +import { ProdutoQuipo } from "./tipagem"; +export const produto_e_licencie_gov = new ProdutoQuipo({ + ...produto_betha_meio_ambiente, + titulo: "e-Licencie Gov", + chave_produto: "e-licencie-gov", + url_produto: ({ inquilino, base_url, vinculo }) => `${base_url}/${inquilino}${vinculo == "anonimo" + ? "" + : `/${vinculo}#/admin`}`, +}); diff --git a/dist-import/produtos/_e-licencie.d.ts b/dist-import/produtos/_e-licencie.d.ts new file mode 100644 index 0000000..d5043b2 --- /dev/null +++ b/dist-import/produtos/_e-licencie.d.ts @@ -0,0 +1,2 @@ +import { Produto } from "./tipagem"; +export declare const produto_e_licencie: Produto<"e-licencie">; diff --git a/dist-import/produtos/_e-licencie.js b/dist-import/produtos/_e-licencie.js new file mode 100644 index 0000000..2ea965d --- /dev/null +++ b/dist-import/produtos/_e-licencie.js @@ -0,0 +1,7 @@ +import { Produto } from "./tipagem"; +export const produto_e_licencie = new Produto({ + chave_produto: "e-licencie", + titulo: "e-Licencie", + descricao: "e-Licencie: Software de gestão de processos e dados ambientais.", + url_produto: ({ base_url }) => base_url, +}); diff --git a/dist-import/produtos/_suporte.d.ts b/dist-import/produtos/_suporte.d.ts new file mode 100644 index 0000000..f13f8e1 --- /dev/null +++ b/dist-import/produtos/_suporte.d.ts @@ -0,0 +1,2 @@ +import { Produto } from "./tipagem"; +export declare const produto_suporte: Produto<"suporte">; diff --git a/dist-import/produtos/_suporte.js b/dist-import/produtos/_suporte.js new file mode 100644 index 0000000..7e2c222 --- /dev/null +++ b/dist-import/produtos/_suporte.js @@ -0,0 +1,7 @@ +import { Produto } from "./tipagem"; +export const produto_suporte = new Produto({ + chave_produto: "suporte", + titulo: "Suporte", + descricao: "Gestão de contas e usuários dos produtos da e-licencie", + url_produto: ({ base_url }) => base_url, +}); diff --git a/dist-import/produtos/doc.d.ts b/dist-import/produtos/doc.d.ts new file mode 100644 index 0000000..2e00a65 --- /dev/null +++ b/dist-import/produtos/doc.d.ts @@ -0,0 +1,31 @@ +/** + +Produtos existentes: + +Atenticacao: + Acesso a gestão de produtos + Apenas uma conta com o código autenticao + /autenticacao + +Betha Meio Ambiente: + Acesso a gestão da aplicação Quipo + Acesso pode ser sociedade ou governo + /quipo + Possue limite de acesso a módulos: + Licenciamento + Fiscalização + + + +e-licencie GOV: + Acesso a gestão da aplicação Quipo + Acesso pode ser sociedade ou governo + /quipo + + +e-licencie: + Acesso a Aplicação e-licencie + Adminstrador e Não adminstrasdor + + + */ diff --git a/dist-import/produtos/doc.js b/dist-import/produtos/doc.js new file mode 100644 index 0000000..4dd180b --- /dev/null +++ b/dist-import/produtos/doc.js @@ -0,0 +1,32 @@ +"use strict"; +/** + +Produtos existentes: + +Atenticacao: + Acesso a gestão de produtos + Apenas uma conta com o código autenticao + /autenticacao + +Betha Meio Ambiente: + Acesso a gestão da aplicação Quipo + Acesso pode ser sociedade ou governo + /quipo + Possue limite de acesso a módulos: + Licenciamento + Fiscalização + + + +e-licencie GOV: + Acesso a gestão da aplicação Quipo + Acesso pode ser sociedade ou governo + /quipo + + +e-licencie: + Acesso a Aplicação e-licencie + Adminstrador e Não adminstrasdor + + + */ diff --git a/dist-import/produtos/index.d.ts b/dist-import/produtos/index.d.ts new file mode 100644 index 0000000..438e4d8 --- /dev/null +++ b/dist-import/produtos/index.d.ts @@ -0,0 +1,9 @@ +import { produto_betha_meio_ambiente } from "./_betha-meio-ambiente"; +import { produto_e_licencie } from "./_e-licencie"; +import { produto_e_licencie_gov } from "./_e-licencie-gov"; +import { produto_suporte } from "./_suporte"; +import { chaves_produto, opcoesVinculos, opcoesVinculosGov, Produto, provedoresGov, versao_usuarios } from "./tipagem"; +export declare const listaProdutos: { + [k in keyof typeof chaves_produto]: Produto; +}; +export { Produto, chaves_produto, opcoesVinculosGov, opcoesVinculos, provedoresGov, produto_betha_meio_ambiente, produto_e_licencie, produto_e_licencie_gov, produto_suporte, versao_usuarios, }; diff --git a/dist-import/produtos/index.js b/dist-import/produtos/index.js new file mode 100644 index 0000000..98607fc --- /dev/null +++ b/dist-import/produtos/index.js @@ -0,0 +1,12 @@ +import { produto_betha_meio_ambiente } from "./_betha-meio-ambiente"; +import { produto_e_licencie } from "./_e-licencie"; +import { produto_e_licencie_gov } from "./_e-licencie-gov"; +import { produto_suporte } from "./_suporte"; +import { chaves_produto, opcoesVinculos, opcoesVinculosGov, Produto, provedoresGov, versao_usuarios, } from "./tipagem"; +export const listaProdutos = { + "betha-meio-ambiente": produto_betha_meio_ambiente, + "e-licencie": produto_e_licencie, + "e-licencie-gov": produto_e_licencie_gov, + suporte: produto_suporte, +}; +export { Produto, chaves_produto, opcoesVinculosGov, opcoesVinculos, provedoresGov, produto_betha_meio_ambiente, produto_e_licencie, produto_e_licencie_gov, produto_suporte, versao_usuarios, }; diff --git a/dist-import/produtos/tipagem.d.ts b/dist-import/produtos/tipagem.d.ts new file mode 100644 index 0000000..d42fa16 --- /dev/null +++ b/dist-import/produtos/tipagem.d.ts @@ -0,0 +1,94 @@ +/** Lista dos produtos da e-licencie */ +export declare enum chaves_produto { + suporte = "suporte", + "betha-meio-ambiente" = "betha-meio-ambiente", + "e-licencie-gov" = "e-licencie-gov", + "e-licencie" = "e-licencie" +} +export declare const opcoesVinculosGov: { + readonly governo: "Governo"; + readonly sociedade: "Sociedade"; + readonly anonimo: "Anônimo"; +}; +export declare const opcoesVinculosSuporte: { + readonly "suporte-1": "Suporte Primário"; +}; +export declare const opcoesVinculos: { + readonly suporte: { + readonly "suporte-1": "Suporte Primário"; + }; + readonly "betha-meio-ambiente": { + readonly governo: "Governo"; + readonly sociedade: "Sociedade"; + readonly anonimo: "Anônimo"; + }; + readonly "e-licencie-gov": { + readonly governo: "Governo"; + readonly sociedade: "Sociedade"; + readonly anonimo: "Anônimo"; + }; + readonly "e-licencie": {}; +}; +export declare const tiposAcesso: { + readonly governo: "Governo"; + readonly sociedade: "Sociedade"; + readonly anonimo: "Anônimo"; +}; +export declare const provedoresGov: { + /** Sistema de login da Beta */ + readonly "betha-sistemas": "Betha Sistemas"; + /** sistema de login do altenticado */ + readonly "e-licencie": "e-licencie"; +}; +type extruturaTokenBase = { + inquilino_codigo: string; + usuario_codigo: string; + usuario_nome: string; + codigo_acesso_produto: string; + codigo_autenticacao: string; +}; +type extrutruaraTokenQuipo = extruturaTokenBase & { + inquilino_nome: string; + tipo_de_acesso: keyof typeof opcoesVinculosGov; + provedor: keyof typeof provedoresGov; +}; +export declare class Produto { + /** Chave do produto*/ + chave_produto: C; + /** Titulo do produto */ + titulo: string; + /** Descrição do módulo */ + descricao: string; + /** URL base do módulo */ + url_produto: (_: { + inquilino: string; + base_url: string; + vinculo: string; + }) => string; + constructor(_: { + /** Chave do produto*/ chave_produto: C; + /** Titulo do produto */ + titulo: string; + /** Descrição do módulo */ + descricao: string; + /** URL base do módulo */ + url_produto: (_: { + inquilino: string; + base_url: string; + vinculo: string; + }) => string; + }); + extruturaToken(_: extruturaTokenBase): extruturaTokenBase & { + chave_produto: C; + }; +} +export declare class ProdutoQuipo extends Produto { + extruturaToken(_: extrutruaraTokenQuipo): extrutruaraTokenQuipo & { + chave_produto: C; + }; +} +export declare enum versao_usuarios { + versao_usuarios_autenticacao = "versao_usuarios_autenticacao", + versao_usuarios_quipo = "versao_usuarios_quipo" +} +export {}; diff --git a/dist-import/produtos/tipagem.js b/dist-import/produtos/tipagem.js new file mode 100644 index 0000000..ec192d2 --- /dev/null +++ b/dist-import/produtos/tipagem.js @@ -0,0 +1,50 @@ +/** Lista dos produtos da e-licencie */ +export var chaves_produto; +(function (chaves_produto) { + chaves_produto["suporte"] = "suporte"; + chaves_produto["betha-meio-ambiente"] = "betha-meio-ambiente"; + chaves_produto["e-licencie-gov"] = "e-licencie-gov"; + chaves_produto["e-licencie"] = "e-licencie"; +})(chaves_produto || (chaves_produto = {})); +export const opcoesVinculosGov = { + governo: "Governo", + sociedade: "Sociedade", + anonimo: "Anônimo", +}; +export const opcoesVinculosSuporte = { + "suporte-1": "Suporte Primário", +}; +export const opcoesVinculos = { + [chaves_produto.suporte]: opcoesVinculosSuporte, + [chaves_produto["betha-meio-ambiente"]]: opcoesVinculosGov, + [chaves_produto["e-licencie-gov"]]: opcoesVinculosGov, + [chaves_produto["e-licencie"]]: {}, +}; +export const tiposAcesso = opcoesVinculosGov; +export const provedoresGov = { + /** Sistema de login da Beta */ + "betha-sistemas": "Betha Sistemas", + /** sistema de login do altenticado */ + "e-licencie": "e-licencie", +}; +export class Produto { + constructor(_) { + this.chave_produto = _.chave_produto; + this.titulo = _.titulo; + this.descricao = _.descricao; + this.url_produto = _.url_produto; + } + extruturaToken(_) { + return { ..._, chave_produto: this.chave_produto }; + } +} +export class ProdutoQuipo extends Produto { + extruturaToken(_) { + return { ..._, chave_produto: this.chave_produto }; + } +} +export var versao_usuarios; +(function (versao_usuarios) { + versao_usuarios["versao_usuarios_autenticacao"] = "versao_usuarios_autenticacao"; + versao_usuarios["versao_usuarios_quipo"] = "versao_usuarios_quipo"; +})(versao_usuarios || (versao_usuarios = {})); diff --git a/dist-import/tokens/index.d.ts b/dist-import/tokens/index.d.ts new file mode 100644 index 0000000..a95421b --- /dev/null +++ b/dist-import/tokens/index.d.ts @@ -0,0 +1,10 @@ +import type { provedoresGov } from "../produtos"; +export type tipoUsuarioTokenAutneticacao = { + usuario_codigo: string; + usuario_nome: string; + usuario_email: string; + usuario_cpf: string; + autenticacao_codigo: string; + eSuporte: boolean; + autenticacao_provedor: keyof typeof provedoresGov; +}; diff --git a/dist-import/tokens/index.js b/dist-import/tokens/index.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/dist-import/tokens/index.js @@ -0,0 +1 @@ +export {}; diff --git a/dist-require/autenticacao/_codigoContaSite.d.ts b/dist-require/autenticacao/_codigoContaSite.d.ts new file mode 100644 index 0000000..41e1592 --- /dev/null +++ b/dist-require/autenticacao/_codigoContaSite.d.ts @@ -0,0 +1,9 @@ +import { type tipoResposta } from "p-respostas"; +type tipoPostCodigoContaSite = { + site: string; +}; +export declare const codigoContaSite: ({ url_api_autenticacao, post, }: { + url_api_autenticacao: string; + post: tipoPostCodigoContaSite; +}) => Promise>; +export {}; diff --git a/dist-require/autenticacao/_codigoContaSite.js b/dist-require/autenticacao/_codigoContaSite.js new file mode 100644 index 0000000..f9b9f04 --- /dev/null +++ b/dist-require/autenticacao/_codigoContaSite.js @@ -0,0 +1,26 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.codigoContaSite = void 0; +const p_respostas_1 = require("p-respostas"); +const cross_fetch_1 = __importDefault(require("cross-fetch")); +const codigoContaSite = async ({ url_api_autenticacao, post, }) => { + const url = `${url_api_autenticacao}/api/codigo_prefeitura_site`; + try { + const resp = await (0, cross_fetch_1.default)(url, { + method: "POST", + body: JSON.stringify(post), + headers: { "Content-Type": "application/json" }, + }) + .then((r) => r.json()) + .catch((e) => p_respostas_1.respostaComuns.erro("Erro ao enviar registros", [e.message])) + .then((r) => r); + return resp; + } + catch (e) { + return p_respostas_1.respostaComuns.erro(`erro ao buscar código do site: ${e}`); + } +}; +exports.codigoContaSite = codigoContaSite; diff --git a/dist-require/autenticacao/_usuarios_quipo.d.ts b/dist-require/autenticacao/_usuarios_quipo.d.ts new file mode 100644 index 0000000..757ec14 --- /dev/null +++ b/dist-require/autenticacao/_usuarios_quipo.d.ts @@ -0,0 +1,17 @@ +import { type tipoResposta } from "p-respostas"; +import type { tipo_usuarios__listar_retorno } from "../lista-usuarios"; +export type tipoUsuarioExterno = { + _nome: string; + _email: string; + _telefone: string; + vinculo: string; + inquilino: string; + chave_produto: string; + codigo: string; + _cpf: string; +}; +export declare const usuarios_quipo: ({ token_produto, url_api_autenticacao, inquilino, }: { + url_api_autenticacao: string; + token_produto: string; + inquilino: string; +}) => Promise>; diff --git a/dist-require/autenticacao/_usuarios_quipo.js b/dist-require/autenticacao/_usuarios_quipo.js new file mode 100644 index 0000000..62f9d6d --- /dev/null +++ b/dist-require/autenticacao/_usuarios_quipo.js @@ -0,0 +1,26 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.usuarios_quipo = void 0; +const cross_fetch_1 = __importDefault(require("cross-fetch")); +const p_respostas_1 = require("p-respostas"); +const usuarios_quipo = async ({ token_produto, url_api_autenticacao, inquilino, }) => { + const url = `${url_api_autenticacao}/api/usuarios__listar`; + if (!token_produto) + return p_respostas_1.respostaComuns.erro("token_produto não informado"); + const headers = { + token: token_produto, + "Content-Type": "application/json", + }; + return (0, cross_fetch_1.default)(url, { + method: "POST", + body: JSON.stringify({ inquilino }), + headers, + }) + .then((r) => r.json()) + .catch((e) => p_respostas_1.respostaComuns.erro(`Erro ao buscar usuários quipo governo ${e.message}`)) + .then((r) => r); +}; +exports.usuarios_quipo = usuarios_quipo; diff --git a/dist-require/autenticacao/_usuarios_quipo_vincular.d.ts b/dist-require/autenticacao/_usuarios_quipo_vincular.d.ts new file mode 100644 index 0000000..f5a03e8 --- /dev/null +++ b/dist-require/autenticacao/_usuarios_quipo_vincular.d.ts @@ -0,0 +1,9 @@ +import { type tipoResposta } from "p-respostas"; +export declare const usuarios_quipo_vincular: ({ token_produto, url_api_autenticacao, inquilino_codigo, vinculo, usuario_codigo, email, }: { + url_api_autenticacao: string; + token_produto: string; + inquilino_codigo: string; + vinculo: string; + usuario_codigo?: string; + email: string; +}) => Promise>; diff --git a/dist-require/autenticacao/_usuarios_quipo_vincular.js b/dist-require/autenticacao/_usuarios_quipo_vincular.js new file mode 100644 index 0000000..9791c4c --- /dev/null +++ b/dist-require/autenticacao/_usuarios_quipo_vincular.js @@ -0,0 +1,29 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.usuarios_quipo_vincular = void 0; +const cross_fetch_1 = __importDefault(require("cross-fetch")); +const p_respostas_1 = require("p-respostas"); +const usuarios_quipo_vincular = async ({ token_produto, url_api_autenticacao, inquilino_codigo, vinculo, usuario_codigo, email, }) => { + const url = `${url_api_autenticacao}/api/vinculos__criar`; + if (!token_produto) + return p_respostas_1.respostaComuns.erro("token_produto não informado"); + const headers = { + token: token_produto, + "Content-Type": "application/json", + }; + const parametros = { + vinculos: { inquilino_codigo, usuario_codigo, vinculo }, + email: email, + }; + return await (0, cross_fetch_1.default)(url, { + headers, + body: JSON.stringify(parametros), + method: "POST", + }) + .then(async (r) => await r.json()) + .catch((e) => p_respostas_1.respostaComuns.erro(`Erro ao criar vinculo de usuario ${e.message}`)); +}; +exports.usuarios_quipo_vincular = usuarios_quipo_vincular; diff --git a/dist-require/autenticacao/_validarToken.d.ts b/dist-require/autenticacao/_validarToken.d.ts new file mode 100644 index 0000000..872d220 --- /dev/null +++ b/dist-require/autenticacao/_validarToken.d.ts @@ -0,0 +1,9 @@ +type tipoPostValidarTokem = { + token: string; +}; +/** faz a validação do token */ +export declare const validarToken: ({ url_api_autenticacao, post, }: { + url_api_autenticacao: string; + post: tipoPostValidarTokem; +}) => Promise<"valido" | "erro">; +export {}; diff --git a/dist-require/autenticacao/_validarToken.js b/dist-require/autenticacao/_validarToken.js new file mode 100644 index 0000000..f980d33 --- /dev/null +++ b/dist-require/autenticacao/_validarToken.js @@ -0,0 +1,27 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.validarToken = void 0; +const cross_fetch_1 = __importDefault(require("cross-fetch")); +/** faz a validação do token */ +const validarToken = async ({ url_api_autenticacao, post, }) => { + const url = `${url_api_autenticacao}/api/validar_token`; + try { + const resposta = await (0, cross_fetch_1.default)(url, { + method: "POST", + body: JSON.stringify(post), + headers: { "Content-Type": "application/json" }, + }) + .then((r) => r.json()) + .then((r) => r) + .then((resposta) => resposta.eCerto ? "valido" : "erro") + .catch(() => "erro"); + return resposta; + } + catch (_e) { + return "erro"; + } +}; +exports.validarToken = validarToken; diff --git a/dist-require/autenticacao/index.d.ts b/dist-require/autenticacao/index.d.ts new file mode 100644 index 0000000..2a45dc9 --- /dev/null +++ b/dist-require/autenticacao/index.d.ts @@ -0,0 +1,30 @@ +import { type tipoUsuarioExterno } from "./_usuarios_quipo"; +export type { tipoUsuarioExterno }; +/** todas as rotas de comunicação com autenticador partem dessa variável */ +export declare const pAutenticacao: { + validarToken: ({ url_api_autenticacao, post, }: { + url_api_autenticacao: string; + post: { + token: string; + }; + }) => Promise<"valido" | "erro">; + codigoContaSite: ({ url_api_autenticacao, post, }: { + url_api_autenticacao: string; + post: { + site: string; + }; + }) => Promise>; + usuarios_quipo: ({ token_produto, url_api_autenticacao, inquilino, }: { + url_api_autenticacao: string; + token_produto: string; + inquilino: string; + }) => Promise>; + usuarios_quipo_vincular: ({ token_produto, url_api_autenticacao, inquilino_codigo, vinculo, usuario_codigo, email, }: { + url_api_autenticacao: string; + token_produto: string; + inquilino_codigo: string; + vinculo: string; + usuario_codigo?: string; + email: string; + }) => Promise>; +}; diff --git a/dist-require/autenticacao/index.js b/dist-require/autenticacao/index.js new file mode 100644 index 0000000..09a942d --- /dev/null +++ b/dist-require/autenticacao/index.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.pAutenticacao = void 0; +const _codigoContaSite_1 = require("./_codigoContaSite"); +const _usuarios_quipo_1 = require("./_usuarios_quipo"); +const _usuarios_quipo_vincular_1 = require("./_usuarios_quipo_vincular"); +const _validarToken_1 = require("./_validarToken"); +/** todas as rotas de comunicação com autenticador partem dessa variável */ +exports.pAutenticacao = { + validarToken: _validarToken_1.validarToken, + codigoContaSite: _codigoContaSite_1.codigoContaSite, + usuarios_quipo: _usuarios_quipo_1.usuarios_quipo, + usuarios_quipo_vincular: _usuarios_quipo_vincular_1.usuarios_quipo_vincular, +}; diff --git a/dist-require/index.d.ts b/dist-require/index.d.ts new file mode 100644 index 0000000..b8e4f3c --- /dev/null +++ b/dist-require/index.d.ts @@ -0,0 +1,6 @@ +export * from "./autenticacao"; +export * from "./lista-prefeituras"; +export * from "./lista-usuarios"; +export * from "./lista-vinculos"; +export * from "./produtos"; +export * from "./tokens"; diff --git a/dist-require/index.js b/dist-require/index.js new file mode 100644 index 0000000..399341d --- /dev/null +++ b/dist-require/index.js @@ -0,0 +1,22 @@ +"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("./autenticacao"), exports); +__exportStar(require("./lista-prefeituras"), exports); +__exportStar(require("./lista-usuarios"), exports); +__exportStar(require("./lista-vinculos"), exports); +__exportStar(require("./produtos"), exports); +__exportStar(require("./tokens"), exports); diff --git a/dist-require/lista-prefeituras.d.ts b/dist-require/lista-prefeituras.d.ts new file mode 100644 index 0000000..5d5e0aa --- /dev/null +++ b/dist-require/lista-prefeituras.d.ts @@ -0,0 +1,12 @@ +import { type tipoResposta } from "p-respostas"; +import type { chaves_produto } from "./produtos/tipagem"; +export type tipoRetornoListarPrefeitrua = { + nome: string; + inquilino: string; + base_url: string; + produto: keyof typeof chaves_produto; +}; +export declare const tx_listar_prefeituras: "listar_prefeituras"; +export declare const listarPrefeituras: ({ url_api_autenticacao, }: { + url_api_autenticacao: string; +}) => Promise>; diff --git a/dist-require/lista-prefeituras.js b/dist-require/lista-prefeituras.js new file mode 100644 index 0000000..4c25430 --- /dev/null +++ b/dist-require/lista-prefeituras.js @@ -0,0 +1,28 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.listarPrefeituras = exports.tx_listar_prefeituras = void 0; +const cross_fetch_1 = __importDefault(require("cross-fetch")); +const p_respostas_1 = require("p-respostas"); +exports.tx_listar_prefeituras = "listar_prefeituras"; +const listarPrefeituras = async ({ url_api_autenticacao, }) => { + const url = `${url_api_autenticacao}/api/${exports.tx_listar_prefeituras}`; + return (0, cross_fetch_1.default)(url) + .then(async (a) => { + const texto = await a.text(); + try { + const res = JSON.parse(texto); + return res; + } + catch (error) { + return p_respostas_1.respostaComuns.erro(`Erro ao listar cidades: ${error.message}`, [ + texto, + error, + ]); + } + }) + .catch((error) => p_respostas_1.respostaComuns.erro(`Erro ao listar cidades: ${error.message}`, [error])); +}; +exports.listarPrefeituras = listarPrefeituras; diff --git a/dist-require/lista-usuarios.d.ts b/dist-require/lista-usuarios.d.ts new file mode 100644 index 0000000..9d540cb --- /dev/null +++ b/dist-require/lista-usuarios.d.ts @@ -0,0 +1,20 @@ +import { type tipoResposta } from "p-respostas"; +export declare const tx_usuarios__listar: "usuarios__listar"; +export type tipo_usuarios__listar_retorno = { + inquilino: string; + vinculo: string; + codigo: string; + cpf: string; + data_hora_atualizacao: string; + email: string; + id_betha_sistema: string; + nome: string; + telefone: string; +}; +export type tipo_usuarios__listar_parametros = { + inquilino?: string; +}; +export declare const listarUsuarios: ({ token, url_api_autenticacao, }: { + url_api_autenticacao: string; + token: string; +}, parametros: tipo_usuarios__listar_parametros) => Promise>; diff --git a/dist-require/lista-usuarios.js b/dist-require/lista-usuarios.js new file mode 100644 index 0000000..b9c546c --- /dev/null +++ b/dist-require/lista-usuarios.js @@ -0,0 +1,29 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.listarUsuarios = exports.tx_usuarios__listar = void 0; +const cross_fetch_1 = __importDefault(require("cross-fetch")); +const p_respostas_1 = require("p-respostas"); +exports.tx_usuarios__listar = "usuarios__listar"; +const listarUsuarios = async ({ token, url_api_autenticacao, }, parametros) => { + const url = `${url_api_autenticacao}/api/${exports.tx_usuarios__listar}`; + return (0, cross_fetch_1.default)(url, { + headers: { token, "Content-Type": "application/json" }, + body: JSON.stringify(parametros), + method: "post", + }) + .then(async (a) => { + const texto = await a.text(); + try { + const res = JSON.parse(texto); + return res; + } + catch (error) { + return p_respostas_1.respostaComuns.erro(`Erro ao listar usuários: ${error.message}`, [texto, error]); + } + }) + .catch((error) => p_respostas_1.respostaComuns.erro(`Erro ao listar usuários: ${error.message}`, [error])); +}; +exports.listarUsuarios = listarUsuarios; diff --git a/dist-require/lista-vinculos.d.ts b/dist-require/lista-vinculos.d.ts new file mode 100644 index 0000000..27e7cb2 --- /dev/null +++ b/dist-require/lista-vinculos.d.ts @@ -0,0 +1,16 @@ +import { type tipoResposta } from "p-respostas"; +export declare const tx_vinculos__listar: "vinculos__listar"; +export type tipo_retorno_vinculo_listas = { + codigo: string; + usuario_codigo: string; + inquilino: string; + vinculo: string; + chave_produto: string; + _usuario_nome: string; + _inquilino_nome: string; + _inquilino_base_url: string; +}; +export declare const listarVinculos: ({ token, url_api_autenticacao, }: { + url_api_autenticacao: string; + token: string; +}) => Promise>; diff --git a/dist-require/lista-vinculos.js b/dist-require/lista-vinculos.js new file mode 100644 index 0000000..3dcab64 --- /dev/null +++ b/dist-require/lista-vinculos.js @@ -0,0 +1,32 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.listarVinculos = exports.tx_vinculos__listar = void 0; +const cross_fetch_1 = __importDefault(require("cross-fetch")); +const p_respostas_1 = require("p-respostas"); +exports.tx_vinculos__listar = "vinculos__listar"; +const listarVinculos = async ({ token, url_api_autenticacao, }) => { + const url = `${url_api_autenticacao}/api/${exports.tx_vinculos__listar}`; + return (0, cross_fetch_1.default)(url, { + headers: { token, "Content-Type": "application/json" }, + body: "{}", + method: "post", + }) + .then(async (a) => { + const texto = await a.text(); + try { + const res = JSON.parse(texto); + return res; + } + catch (error) { + return p_respostas_1.respostaComuns.erro(`Erro ao listar cidades: ${error.message}`, [ + texto, + error, + ]); + } + }) + .catch((error) => p_respostas_1.respostaComuns.erro(`Erro ao listar cidades: ${error.message}`, [error])); +}; +exports.listarVinculos = listarVinculos; diff --git a/dist-require/produtos/_betha-meio-ambiente.d.ts b/dist-require/produtos/_betha-meio-ambiente.d.ts new file mode 100644 index 0000000..701ee61 --- /dev/null +++ b/dist-require/produtos/_betha-meio-ambiente.d.ts @@ -0,0 +1,2 @@ +import { ProdutoQuipo } from "./tipagem"; +export declare const produto_betha_meio_ambiente: ProdutoQuipo<"betha-meio-ambiente">; diff --git a/dist-require/produtos/_betha-meio-ambiente.js b/dist-require/produtos/_betha-meio-ambiente.js new file mode 100644 index 0000000..ad659db --- /dev/null +++ b/dist-require/produtos/_betha-meio-ambiente.js @@ -0,0 +1,12 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.produto_betha_meio_ambiente = void 0; +const tipagem_1 = require("./tipagem"); +exports.produto_betha_meio_ambiente = new tipagem_1.ProdutoQuipo({ + chave_produto: "betha-meio-ambiente", + titulo: "Betha Meio Ambiente", + descricao: "Betha Meio Ambiente: Software de gestão de processos ambientais para órgãos públicos da Betha Sistemas.", + url_produto: ({ inquilino, base_url, vinculo }) => `${base_url}/${inquilino}${vinculo == "anonimo" + ? "" + : `/${vinculo}#/admin`}`, +}); diff --git a/dist-require/produtos/_e-licencie-gov.d.ts b/dist-require/produtos/_e-licencie-gov.d.ts new file mode 100644 index 0000000..c61248c --- /dev/null +++ b/dist-require/produtos/_e-licencie-gov.d.ts @@ -0,0 +1,2 @@ +import { ProdutoQuipo } from "./tipagem"; +export declare const produto_e_licencie_gov: ProdutoQuipo<"e-licencie-gov">; diff --git a/dist-require/produtos/_e-licencie-gov.js b/dist-require/produtos/_e-licencie-gov.js new file mode 100644 index 0000000..eb5bc4d --- /dev/null +++ b/dist-require/produtos/_e-licencie-gov.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.produto_e_licencie_gov = void 0; +const _betha_meio_ambiente_1 = require("./_betha-meio-ambiente"); +const tipagem_1 = require("./tipagem"); +exports.produto_e_licencie_gov = new tipagem_1.ProdutoQuipo({ + ..._betha_meio_ambiente_1.produto_betha_meio_ambiente, + titulo: "e-Licencie Gov", + chave_produto: "e-licencie-gov", + url_produto: ({ inquilino, base_url, vinculo }) => `${base_url}/${inquilino}${vinculo == "anonimo" + ? "" + : `/${vinculo}#/admin`}`, +}); diff --git a/dist-require/produtos/_e-licencie.d.ts b/dist-require/produtos/_e-licencie.d.ts new file mode 100644 index 0000000..d5043b2 --- /dev/null +++ b/dist-require/produtos/_e-licencie.d.ts @@ -0,0 +1,2 @@ +import { Produto } from "./tipagem"; +export declare const produto_e_licencie: Produto<"e-licencie">; diff --git a/dist-require/produtos/_e-licencie.js b/dist-require/produtos/_e-licencie.js new file mode 100644 index 0000000..855d52e --- /dev/null +++ b/dist-require/produtos/_e-licencie.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.produto_e_licencie = void 0; +const tipagem_1 = require("./tipagem"); +exports.produto_e_licencie = new tipagem_1.Produto({ + chave_produto: "e-licencie", + titulo: "e-Licencie", + descricao: "e-Licencie: Software de gestão de processos e dados ambientais.", + url_produto: ({ base_url }) => base_url, +}); diff --git a/dist-require/produtos/_suporte.d.ts b/dist-require/produtos/_suporte.d.ts new file mode 100644 index 0000000..f13f8e1 --- /dev/null +++ b/dist-require/produtos/_suporte.d.ts @@ -0,0 +1,2 @@ +import { Produto } from "./tipagem"; +export declare const produto_suporte: Produto<"suporte">; diff --git a/dist-require/produtos/_suporte.js b/dist-require/produtos/_suporte.js new file mode 100644 index 0000000..0c20849 --- /dev/null +++ b/dist-require/produtos/_suporte.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.produto_suporte = void 0; +const tipagem_1 = require("./tipagem"); +exports.produto_suporte = new tipagem_1.Produto({ + chave_produto: "suporte", + titulo: "Suporte", + descricao: "Gestão de contas e usuários dos produtos da e-licencie", + url_produto: ({ base_url }) => base_url, +}); diff --git a/dist-require/produtos/doc.d.ts b/dist-require/produtos/doc.d.ts new file mode 100644 index 0000000..2e00a65 --- /dev/null +++ b/dist-require/produtos/doc.d.ts @@ -0,0 +1,31 @@ +/** + +Produtos existentes: + +Atenticacao: + Acesso a gestão de produtos + Apenas uma conta com o código autenticao + /autenticacao + +Betha Meio Ambiente: + Acesso a gestão da aplicação Quipo + Acesso pode ser sociedade ou governo + /quipo + Possue limite de acesso a módulos: + Licenciamento + Fiscalização + + + +e-licencie GOV: + Acesso a gestão da aplicação Quipo + Acesso pode ser sociedade ou governo + /quipo + + +e-licencie: + Acesso a Aplicação e-licencie + Adminstrador e Não adminstrasdor + + + */ diff --git a/dist-require/produtos/doc.js b/dist-require/produtos/doc.js new file mode 100644 index 0000000..4dd180b --- /dev/null +++ b/dist-require/produtos/doc.js @@ -0,0 +1,32 @@ +"use strict"; +/** + +Produtos existentes: + +Atenticacao: + Acesso a gestão de produtos + Apenas uma conta com o código autenticao + /autenticacao + +Betha Meio Ambiente: + Acesso a gestão da aplicação Quipo + Acesso pode ser sociedade ou governo + /quipo + Possue limite de acesso a módulos: + Licenciamento + Fiscalização + + + +e-licencie GOV: + Acesso a gestão da aplicação Quipo + Acesso pode ser sociedade ou governo + /quipo + + +e-licencie: + Acesso a Aplicação e-licencie + Adminstrador e Não adminstrasdor + + + */ diff --git a/dist-require/produtos/index.d.ts b/dist-require/produtos/index.d.ts new file mode 100644 index 0000000..438e4d8 --- /dev/null +++ b/dist-require/produtos/index.d.ts @@ -0,0 +1,9 @@ +import { produto_betha_meio_ambiente } from "./_betha-meio-ambiente"; +import { produto_e_licencie } from "./_e-licencie"; +import { produto_e_licencie_gov } from "./_e-licencie-gov"; +import { produto_suporte } from "./_suporte"; +import { chaves_produto, opcoesVinculos, opcoesVinculosGov, Produto, provedoresGov, versao_usuarios } from "./tipagem"; +export declare const listaProdutos: { + [k in keyof typeof chaves_produto]: Produto; +}; +export { Produto, chaves_produto, opcoesVinculosGov, opcoesVinculos, provedoresGov, produto_betha_meio_ambiente, produto_e_licencie, produto_e_licencie_gov, produto_suporte, versao_usuarios, }; diff --git a/dist-require/produtos/index.js b/dist-require/produtos/index.js new file mode 100644 index 0000000..97de87e --- /dev/null +++ b/dist-require/produtos/index.js @@ -0,0 +1,24 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.versao_usuarios = exports.produto_suporte = exports.produto_e_licencie_gov = exports.produto_e_licencie = exports.produto_betha_meio_ambiente = exports.provedoresGov = exports.opcoesVinculos = exports.opcoesVinculosGov = exports.chaves_produto = exports.Produto = exports.listaProdutos = void 0; +const _betha_meio_ambiente_1 = require("./_betha-meio-ambiente"); +Object.defineProperty(exports, "produto_betha_meio_ambiente", { enumerable: true, get: function () { return _betha_meio_ambiente_1.produto_betha_meio_ambiente; } }); +const _e_licencie_1 = require("./_e-licencie"); +Object.defineProperty(exports, "produto_e_licencie", { enumerable: true, get: function () { return _e_licencie_1.produto_e_licencie; } }); +const _e_licencie_gov_1 = require("./_e-licencie-gov"); +Object.defineProperty(exports, "produto_e_licencie_gov", { enumerable: true, get: function () { return _e_licencie_gov_1.produto_e_licencie_gov; } }); +const _suporte_1 = require("./_suporte"); +Object.defineProperty(exports, "produto_suporte", { enumerable: true, get: function () { return _suporte_1.produto_suporte; } }); +const tipagem_1 = require("./tipagem"); +Object.defineProperty(exports, "chaves_produto", { enumerable: true, get: function () { return tipagem_1.chaves_produto; } }); +Object.defineProperty(exports, "opcoesVinculos", { enumerable: true, get: function () { return tipagem_1.opcoesVinculos; } }); +Object.defineProperty(exports, "opcoesVinculosGov", { enumerable: true, get: function () { return tipagem_1.opcoesVinculosGov; } }); +Object.defineProperty(exports, "Produto", { enumerable: true, get: function () { return tipagem_1.Produto; } }); +Object.defineProperty(exports, "provedoresGov", { enumerable: true, get: function () { return tipagem_1.provedoresGov; } }); +Object.defineProperty(exports, "versao_usuarios", { enumerable: true, get: function () { return tipagem_1.versao_usuarios; } }); +exports.listaProdutos = { + "betha-meio-ambiente": _betha_meio_ambiente_1.produto_betha_meio_ambiente, + "e-licencie": _e_licencie_1.produto_e_licencie, + "e-licencie-gov": _e_licencie_gov_1.produto_e_licencie_gov, + suporte: _suporte_1.produto_suporte, +}; diff --git a/dist-require/produtos/tipagem.d.ts b/dist-require/produtos/tipagem.d.ts new file mode 100644 index 0000000..d42fa16 --- /dev/null +++ b/dist-require/produtos/tipagem.d.ts @@ -0,0 +1,94 @@ +/** Lista dos produtos da e-licencie */ +export declare enum chaves_produto { + suporte = "suporte", + "betha-meio-ambiente" = "betha-meio-ambiente", + "e-licencie-gov" = "e-licencie-gov", + "e-licencie" = "e-licencie" +} +export declare const opcoesVinculosGov: { + readonly governo: "Governo"; + readonly sociedade: "Sociedade"; + readonly anonimo: "Anônimo"; +}; +export declare const opcoesVinculosSuporte: { + readonly "suporte-1": "Suporte Primário"; +}; +export declare const opcoesVinculos: { + readonly suporte: { + readonly "suporte-1": "Suporte Primário"; + }; + readonly "betha-meio-ambiente": { + readonly governo: "Governo"; + readonly sociedade: "Sociedade"; + readonly anonimo: "Anônimo"; + }; + readonly "e-licencie-gov": { + readonly governo: "Governo"; + readonly sociedade: "Sociedade"; + readonly anonimo: "Anônimo"; + }; + readonly "e-licencie": {}; +}; +export declare const tiposAcesso: { + readonly governo: "Governo"; + readonly sociedade: "Sociedade"; + readonly anonimo: "Anônimo"; +}; +export declare const provedoresGov: { + /** Sistema de login da Beta */ + readonly "betha-sistemas": "Betha Sistemas"; + /** sistema de login do altenticado */ + readonly "e-licencie": "e-licencie"; +}; +type extruturaTokenBase = { + inquilino_codigo: string; + usuario_codigo: string; + usuario_nome: string; + codigo_acesso_produto: string; + codigo_autenticacao: string; +}; +type extrutruaraTokenQuipo = extruturaTokenBase & { + inquilino_nome: string; + tipo_de_acesso: keyof typeof opcoesVinculosGov; + provedor: keyof typeof provedoresGov; +}; +export declare class Produto { + /** Chave do produto*/ + chave_produto: C; + /** Titulo do produto */ + titulo: string; + /** Descrição do módulo */ + descricao: string; + /** URL base do módulo */ + url_produto: (_: { + inquilino: string; + base_url: string; + vinculo: string; + }) => string; + constructor(_: { + /** Chave do produto*/ chave_produto: C; + /** Titulo do produto */ + titulo: string; + /** Descrição do módulo */ + descricao: string; + /** URL base do módulo */ + url_produto: (_: { + inquilino: string; + base_url: string; + vinculo: string; + }) => string; + }); + extruturaToken(_: extruturaTokenBase): extruturaTokenBase & { + chave_produto: C; + }; +} +export declare class ProdutoQuipo extends Produto { + extruturaToken(_: extrutruaraTokenQuipo): extrutruaraTokenQuipo & { + chave_produto: C; + }; +} +export declare enum versao_usuarios { + versao_usuarios_autenticacao = "versao_usuarios_autenticacao", + versao_usuarios_quipo = "versao_usuarios_quipo" +} +export {}; diff --git a/dist-require/produtos/tipagem.js b/dist-require/produtos/tipagem.js new file mode 100644 index 0000000..3936c33 --- /dev/null +++ b/dist-require/produtos/tipagem.js @@ -0,0 +1,55 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.versao_usuarios = exports.ProdutoQuipo = exports.Produto = exports.provedoresGov = exports.tiposAcesso = exports.opcoesVinculos = exports.opcoesVinculosSuporte = exports.opcoesVinculosGov = exports.chaves_produto = void 0; +/** Lista dos produtos da e-licencie */ +var chaves_produto; +(function (chaves_produto) { + chaves_produto["suporte"] = "suporte"; + chaves_produto["betha-meio-ambiente"] = "betha-meio-ambiente"; + chaves_produto["e-licencie-gov"] = "e-licencie-gov"; + chaves_produto["e-licencie"] = "e-licencie"; +})(chaves_produto || (exports.chaves_produto = chaves_produto = {})); +exports.opcoesVinculosGov = { + governo: "Governo", + sociedade: "Sociedade", + anonimo: "Anônimo", +}; +exports.opcoesVinculosSuporte = { + "suporte-1": "Suporte Primário", +}; +exports.opcoesVinculos = { + [chaves_produto.suporte]: exports.opcoesVinculosSuporte, + [chaves_produto["betha-meio-ambiente"]]: exports.opcoesVinculosGov, + [chaves_produto["e-licencie-gov"]]: exports.opcoesVinculosGov, + [chaves_produto["e-licencie"]]: {}, +}; +exports.tiposAcesso = exports.opcoesVinculosGov; +exports.provedoresGov = { + /** Sistema de login da Beta */ + "betha-sistemas": "Betha Sistemas", + /** sistema de login do altenticado */ + "e-licencie": "e-licencie", +}; +class Produto { + constructor(_) { + this.chave_produto = _.chave_produto; + this.titulo = _.titulo; + this.descricao = _.descricao; + this.url_produto = _.url_produto; + } + extruturaToken(_) { + return { ..._, chave_produto: this.chave_produto }; + } +} +exports.Produto = Produto; +class ProdutoQuipo extends Produto { + extruturaToken(_) { + return { ..._, chave_produto: this.chave_produto }; + } +} +exports.ProdutoQuipo = ProdutoQuipo; +var versao_usuarios; +(function (versao_usuarios) { + versao_usuarios["versao_usuarios_autenticacao"] = "versao_usuarios_autenticacao"; + versao_usuarios["versao_usuarios_quipo"] = "versao_usuarios_quipo"; +})(versao_usuarios || (exports.versao_usuarios = versao_usuarios = {})); diff --git a/dist-require/tokens/index.d.ts b/dist-require/tokens/index.d.ts new file mode 100644 index 0000000..a95421b --- /dev/null +++ b/dist-require/tokens/index.d.ts @@ -0,0 +1,10 @@ +import type { provedoresGov } from "../produtos"; +export type tipoUsuarioTokenAutneticacao = { + usuario_codigo: string; + usuario_nome: string; + usuario_email: string; + usuario_cpf: string; + autenticacao_codigo: string; + eSuporte: boolean; + autenticacao_provedor: keyof typeof provedoresGov; +}; diff --git a/dist-require/tokens/index.js b/dist-require/tokens/index.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/dist-require/tokens/index.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/package.json b/package.json new file mode 100644 index 0000000..aa25321 --- /dev/null +++ b/package.json @@ -0,0 +1,42 @@ +{ + "name": "p-autenticacao-drive", + "version": "1.22.0", + "description": "", + "main": "src/index.ts", + "packageManager": "pnpm@9.15.4", + "exports": { + ".": { + "import": "./dist-import/index.js", + "require": "./dist-require/index.js" + } + }, + "scripts": { + "at": "pnpm up @biomejs/biome typescript", + "build-back": "rm -fr dist-require && tsc --project ./tsconfig-back.json", + "build-front": "rm -fr dist-import && tsc --project ./tsconfig-front.json", + "build": "pnpm run biome && pnpm run build-back && pnpm run build-front", + "pacote": "npm --no-git-tag-version version minor && sh ./pacote.sh", + "biome": "npx @biomejs/biome check --write ./src && npx @biomejs/biome check --write ./package.json", + "nodev": "check-node-version --node '>= 20'" + }, + "dependencies": { + "cross-fetch": "^4.1.0" + }, + "overrides": { + "p-comuns": "git+https://git2.idz.one/e-licencie/_comuns.git#master", + "p-respostas": "git+https://git2.idz.one/e-licencie/_respostas.git#master" + }, + "devDependencies": { + "@biomejs/biome": "^2.0.6", + "@types/node": "^20.16.1", + "check-node-version": "^4.2.1", + "typescript": "5.5.4" + }, + "keywords": [], + "author": { + "name": "AZTECA SOFTWARE LTDA", + "email": "ti@e-licencie.com.br", + "url": "https://e-licencie.com.br" + }, + "license": "ISC" +} diff --git a/pacote.sh b/pacote.sh new file mode 100644 index 0000000..4c9c898 --- /dev/null +++ b/pacote.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +# Diretório onde o pacote será salvo +PACOTE_DIR="./pacotes" + +# Criar o diretório se não existir +mkdir -p $PACOTE_DIR + +# Executar build e empacotar o pacote +echo "🚀 Gerando pacote..." +pnpm run build && pnpm pack --pack-destination $PACOTE_DIR + +# Obtém o último arquivo .tgz gerado +PACOTE_FILE=$(ls -t $PACOTE_DIR/*.tgz | head -n 1) + +# URL do servidor onde o arquivo será enviado +UPLOAD_URL="https://e-licencie.com.br/pacotes/" + +# Verifica se o arquivo existe antes de enviar +if [ -f "$PACOTE_FILE" ]; then + echo "📤 Enviando pacote: $PACOTE_FILE para $UPLOAD_URL" + curl -X POST -F "file=@$PACOTE_FILE" "$UPLOAD_URL" + echo "" +else + echo "❌ Erro: Nenhum arquivo encontrado em $PACOTE_DIR" + exit 1 +fi \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..b6bca88 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,298 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + cross-fetch: + specifier: ^4.1.0 + version: 4.1.0 + p-comuns: + specifier: git+https://git2.idz.one/luiz/_comuns.git + version: git+https://git2.idz.one/luiz/_comuns.git#0011c9b222deaeb60932191cc1995412a0ba06dd + p-respostas: + specifier: git+https://git2.idz.one/luiz/_respostas.git + version: git+https://git2.idz.one/luiz/_respostas.git#a00d459a800f6238ba00fbcdcbceaa2fe666d42b + devDependencies: + '@biomejs/biome': + specifier: ^2.0.6 + version: 2.0.6 + '@types/node': + specifier: ^20.16.1 + version: 20.19.2 + check-node-version: + specifier: ^4.2.1 + version: 4.2.1 + typescript: + specifier: 5.5.4 + version: 5.5.4 + +packages: + + '@biomejs/biome@2.0.6': + resolution: {integrity: sha512-RRP+9cdh5qwe2t0gORwXaa27oTOiQRQvrFf49x2PA1tnpsyU7FIHX4ZOFMtBC4QNtyWsN7Dqkf5EDbg4X+9iqA==} + engines: {node: '>=14.21.3'} + hasBin: true + + '@biomejs/cli-darwin-arm64@2.0.6': + resolution: {integrity: sha512-AzdiNNjNzsE6LfqWyBvcL29uWoIuZUkndu+wwlXW13EKcBHbbKjNQEZIJKYDc6IL+p7bmWGx3v9ZtcRyIoIz5A==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [darwin] + + '@biomejs/cli-darwin-x64@2.0.6': + resolution: {integrity: sha512-wJjjP4E7bO4WJmiQaLnsdXMa516dbtC6542qeRkyJg0MqMXP0fvs4gdsHhZ7p9XWTAmGIjZHFKXdsjBvKGIJJQ==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [darwin] + + '@biomejs/cli-linux-arm64-musl@2.0.6': + resolution: {integrity: sha512-CVPEMlin3bW49sBqLBg2x016Pws7eUXA27XYDFlEtponD0luYjg2zQaMJ2nOqlkKG9fqzzkamdYxHdMDc2gZFw==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [linux] + + '@biomejs/cli-linux-arm64@2.0.6': + resolution: {integrity: sha512-ZSVf6TYo5rNMUHIW1tww+rs/krol7U5A1Is/yzWyHVZguuB0lBnIodqyFuwCNqG9aJGyk7xIMS8HG0qGUPz0SA==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [linux] + + '@biomejs/cli-linux-x64-musl@2.0.6': + resolution: {integrity: sha512-mKHE/e954hR/hSnAcJSjkf4xGqZc/53Kh39HVW1EgO5iFi0JutTN07TSjEMg616julRtfSNJi0KNyxvc30Y4rQ==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [linux] + + '@biomejs/cli-linux-x64@2.0.6': + resolution: {integrity: sha512-geM1MkHTV1Kh2Cs/Xzot9BOF3WBacihw6bkEmxkz4nSga8B9/hWy5BDiOG3gHDGIBa8WxT0nzsJs2f/hPqQIQw==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [linux] + + '@biomejs/cli-win32-arm64@2.0.6': + resolution: {integrity: sha512-290V4oSFoKaprKE1zkYVsDfAdn0An5DowZ+GIABgjoq1ndhvNxkJcpxPsiYtT7slbVe3xmlT0ncdfOsN7KruzA==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [win32] + + '@biomejs/cli-win32-x64@2.0.6': + resolution: {integrity: sha512-bfM1Bce0d69Ao7pjTjUS+AWSZ02+5UHdiAP85Th8e9yV5xzw6JrHXbL5YWlcEKQ84FIZMdDc7ncuti1wd2sdbw==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [win32] + + '@types/node@20.19.2': + resolution: {integrity: sha512-9pLGGwdzOUBDYi0GNjM97FIA+f92fqSke6joWeBjWXllfNxZBs7qeMF7tvtOIsbY45xkWkxrdwUfUf3MnQa9gA==} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + chalk@3.0.0: + resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} + engines: {node: '>=8'} + + check-node-version@4.2.1: + resolution: {integrity: sha512-YYmFYHV/X7kSJhuN/QYHUu998n/TRuDe8UenM3+m5NrkiH670lb9ILqHIvBencvJc4SDh+XcbXMR4b+TtubJiw==} + engines: {node: '>=8.3.0'} + hasBin: true + + 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==} + + cross-fetch@4.1.0: + resolution: {integrity: sha512-uKm5PU+MHTootlWEY+mZ4vvXoCn4fLQxT9dSc1sXVMSFkINTJVN8cAQROpwcKm8bJ/c7rgZVIBWzH5T78sNZZw==} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + map-values@1.0.1: + resolution: {integrity: sha512-BbShUnr5OartXJe1GeccAWtfro11hhgNJg6G9/UtWKjVGvV5U4C09cg5nk8JUevhXODaXY+hQ3xxMUKSs62ONQ==} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + + object-filter@1.0.2: + resolution: {integrity: sha512-NahvP2vZcy1ZiiYah30CEPw0FpDcSkSePJBMpzl5EQgCmISijiGuJm3SPYp7U+Lf2TljyaIw3E5EgkEx/TNEVA==} + + p-comuns@git+https://git2.idz.one/luiz/_comuns.git#0011c9b222deaeb60932191cc1995412a0ba06dd: + resolution: {commit: 0011c9b222deaeb60932191cc1995412a0ba06dd, repo: https://git2.idz.one/luiz/_comuns.git, type: git} + version: 0.119.0 + + p-respostas@git+https://git2.idz.one/luiz/_respostas.git#a00d459a800f6238ba00fbcdcbceaa2fe666d42b: + resolution: {commit: a00d459a800f6238ba00fbcdcbceaa2fe666d42b, repo: https://git2.idz.one/luiz/_respostas.git, type: git} + version: 0.36.0 + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + + typescript@5.5.4: + resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} + engines: {node: '>=14.17'} + hasBin: true + + undici-types@6.21.0: + resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + + zod@3.24.1: + resolution: {integrity: sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==} + +snapshots: + + '@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 + + '@biomejs/cli-darwin-arm64@2.0.6': + optional: true + + '@biomejs/cli-darwin-x64@2.0.6': + optional: true + + '@biomejs/cli-linux-arm64-musl@2.0.6': + optional: true + + '@biomejs/cli-linux-arm64@2.0.6': + optional: true + + '@biomejs/cli-linux-x64-musl@2.0.6': + optional: true + + '@biomejs/cli-linux-x64@2.0.6': + optional: true + + '@biomejs/cli-win32-arm64@2.0.6': + optional: true + + '@biomejs/cli-win32-x64@2.0.6': + optional: true + + '@types/node@20.19.2': + dependencies: + undici-types: 6.21.0 + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + chalk@3.0.0: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + check-node-version@4.2.1: + dependencies: + chalk: 3.0.0 + map-values: 1.0.1 + minimist: 1.2.8 + object-filter: 1.0.2 + run-parallel: 1.2.0 + semver: 6.3.1 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + cross-fetch@4.1.0: + dependencies: + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + + has-flag@4.0.0: {} + + map-values@1.0.1: {} + + minimist@1.2.8: {} + + node-fetch@2.7.0: + dependencies: + whatwg-url: 5.0.0 + + object-filter@1.0.2: {} + + p-comuns@git+https://git2.idz.one/luiz/_comuns.git#0011c9b222deaeb60932191cc1995412a0ba06dd: + dependencies: + cross-fetch: 4.1.0 + zod: 3.24.1 + transitivePeerDependencies: + - encoding + + p-respostas@git+https://git2.idz.one/luiz/_respostas.git#a00d459a800f6238ba00fbcdcbceaa2fe666d42b: + dependencies: + zod: 3.24.1 + + queue-microtask@1.2.3: {} + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + semver@6.3.1: {} + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + tr46@0.0.3: {} + + typescript@5.5.4: {} + + undici-types@6.21.0: {} + + webidl-conversions@3.0.1: {} + + whatwg-url@5.0.0: + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + + zod@3.24.1: {} diff --git a/src/autenticacao/_codigoContaSite.ts b/src/autenticacao/_codigoContaSite.ts new file mode 100644 index 0000000..bbd1c49 --- /dev/null +++ b/src/autenticacao/_codigoContaSite.ts @@ -0,0 +1,32 @@ +import { respostaComuns, type tipoResposta } from "p-respostas" + +type tipoPostCodigoContaSite = { site: string } + +import node_fetch from "cross-fetch" + +export const codigoContaSite = async ({ + url_api_autenticacao, + post, +}: { + url_api_autenticacao: string + post: tipoPostCodigoContaSite +}): Promise> => { + const url = `${url_api_autenticacao}/api/codigo_prefeitura_site` + + try { + const resp = await node_fetch(url, { + method: "POST", + body: JSON.stringify(post), + headers: { "Content-Type": "application/json" }, + }) + .then((r) => r.json()) + .catch((e) => + respostaComuns.erro("Erro ao enviar registros", [e.message]), + ) + .then((r) => r as tipoResposta) + + return resp + } catch (e) { + return respostaComuns.erro(`erro ao buscar código do site: ${e}`) + } +} diff --git a/src/autenticacao/_usuarios_quipo.ts b/src/autenticacao/_usuarios_quipo.ts new file mode 100644 index 0000000..a14bfe5 --- /dev/null +++ b/src/autenticacao/_usuarios_quipo.ts @@ -0,0 +1,44 @@ +import node_fetch from "cross-fetch" +import { respostaComuns, type tipoResposta } from "p-respostas" +import type { tipo_usuarios__listar_retorno } from "../lista-usuarios" + +export type tipoUsuarioExterno = { + _nome: string + _email: string + _telefone: string + vinculo: string + inquilino: string + chave_produto: string + codigo: string + _cpf: string +} + +export const usuarios_quipo = async ({ + token_produto, + url_api_autenticacao, + inquilino, +}: { + url_api_autenticacao: string + token_produto: string + inquilino: string +}): Promise> => { + const url = `${url_api_autenticacao}/api/usuarios__listar` + + if (!token_produto) return respostaComuns.erro("token_produto não informado") + + const headers = { + token: token_produto, + "Content-Type": "application/json", + } + + return node_fetch(url, { + method: "POST", + body: JSON.stringify({ inquilino }), + headers, + }) + .then((r) => r.json()) + .catch((e) => + respostaComuns.erro(`Erro ao buscar usuários quipo governo ${e.message}`), + ) + .then((r) => r as tipoResposta) +} diff --git a/src/autenticacao/_usuarios_quipo_vincular.ts b/src/autenticacao/_usuarios_quipo_vincular.ts new file mode 100644 index 0000000..481bdeb --- /dev/null +++ b/src/autenticacao/_usuarios_quipo_vincular.ts @@ -0,0 +1,40 @@ +import node_fetch from "cross-fetch" +import { respostaComuns, type tipoResposta } from "p-respostas" + +export const usuarios_quipo_vincular = async ({ + token_produto, + url_api_autenticacao, + inquilino_codigo, + vinculo, + usuario_codigo, + email, +}: { + url_api_autenticacao: string + token_produto: string + inquilino_codigo: string + vinculo: string + usuario_codigo?: string + email: string +}): Promise> => { + const url = `${url_api_autenticacao}/api/vinculos__criar` + + if (!token_produto) return respostaComuns.erro("token_produto não informado") + const headers = { + token: token_produto, + "Content-Type": "application/json", + } + + const parametros = { + vinculos: { inquilino_codigo, usuario_codigo, vinculo }, + email: email, + } + return await node_fetch(url, { + headers, + body: JSON.stringify(parametros), + method: "POST", + }) + .then(async (r) => await r.json()) + .catch((e) => + respostaComuns.erro(`Erro ao criar vinculo de usuario ${e.message}`), + ) +} diff --git a/src/autenticacao/_validarToken.ts b/src/autenticacao/_validarToken.ts new file mode 100644 index 0000000..7899417 --- /dev/null +++ b/src/autenticacao/_validarToken.ts @@ -0,0 +1,34 @@ +import type { tipoResposta } from "p-respostas" + +type tipoPostValidarTokem = { token: string } + +import node_fetch from "cross-fetch" + +/** faz a validação do token */ +export const validarToken = async ({ + url_api_autenticacao, + post, +}: { + url_api_autenticacao: string + post: tipoPostValidarTokem +}): Promise<"valido" | "erro"> => { + const url = `${url_api_autenticacao}/api/validar_token` + + try { + const resposta = await node_fetch(url, { + method: "POST", + body: JSON.stringify(post), + headers: { "Content-Type": "application/json" }, + }) + .then((r) => r.json()) + .then((r) => r as tipoResposta) + .then((resposta) => + resposta.eCerto ? ("valido" as const) : ("erro" as const), + ) + .catch(() => "erro" as const) + + return resposta + } catch (_e) { + return "erro" + } +} diff --git a/src/autenticacao/index.ts b/src/autenticacao/index.ts new file mode 100644 index 0000000..94cf926 --- /dev/null +++ b/src/autenticacao/index.ts @@ -0,0 +1,14 @@ +import { codigoContaSite } from "./_codigoContaSite" +import { type tipoUsuarioExterno, usuarios_quipo } from "./_usuarios_quipo" +import { usuarios_quipo_vincular } from "./_usuarios_quipo_vincular" +import { validarToken } from "./_validarToken" + +export type { tipoUsuarioExterno } + +/** todas as rotas de comunicação com autenticador partem dessa variável */ +export const pAutenticacao = { + validarToken, + codigoContaSite, + usuarios_quipo, + usuarios_quipo_vincular, +} diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 0000000..28b3a8c --- /dev/null +++ b/src/index.ts @@ -0,0 +1,6 @@ +export * from "./autenticacao" +export * from "./lista-prefeituras" +export * from "./lista-usuarios" +export * from "./lista-vinculos" +export * from "./produtos" +export * from "./tokens" diff --git a/src/lista-prefeituras.ts b/src/lista-prefeituras.ts new file mode 100644 index 0000000..ef67a8b --- /dev/null +++ b/src/lista-prefeituras.ts @@ -0,0 +1,40 @@ +import cFetch from "cross-fetch" +import { respostaComuns, type tipoResposta } from "p-respostas" +import type { chaves_produto } from "./produtos/tipagem" + +export type tipoRetornoListarPrefeitrua = { + nome: string + inquilino: string + base_url: string + produto: keyof typeof chaves_produto +} + +export const tx_listar_prefeituras = "listar_prefeituras" as const + +export const listarPrefeituras = async ({ + url_api_autenticacao, +}: { + url_api_autenticacao: string +}): Promise> => { + const url = `${url_api_autenticacao}/api/${tx_listar_prefeituras}` + + return cFetch(url) + .then(async (a) => { + const texto = await a.text() + + try { + const res: tipoResposta = + JSON.parse(texto) + + return res + } catch (error: any) { + return respostaComuns.erro(`Erro ao listar cidades: ${error.message}`, [ + texto, + error, + ]) + } + }) + .catch((error) => + respostaComuns.erro(`Erro ao listar cidades: ${error.message}`, [error]), + ) +} diff --git a/src/lista-usuarios.ts b/src/lista-usuarios.ts new file mode 100644 index 0000000..28fc6f2 --- /dev/null +++ b/src/lista-usuarios.ts @@ -0,0 +1,54 @@ +import cFetch from "cross-fetch" +import { respostaComuns, type tipoResposta } from "p-respostas" + +export const tx_usuarios__listar = "usuarios__listar" as const + +export type tipo_usuarios__listar_retorno = { + inquilino: string + vinculo: string + codigo: string + cpf: string + data_hora_atualizacao: string + email: string + id_betha_sistema: string + nome: string + telefone: string +} + +export type tipo_usuarios__listar_parametros = { + inquilino?: string +} + +export const listarUsuarios = async ( + { + token, + url_api_autenticacao, + }: { url_api_autenticacao: string; token: string }, + parametros: tipo_usuarios__listar_parametros, +): Promise> => { + const url = `${url_api_autenticacao}/api/${tx_usuarios__listar}` + + return cFetch(url, { + headers: { token, "Content-Type": "application/json" }, + body: JSON.stringify(parametros), + method: "post", + }) + .then(async (a) => { + const texto = await a.text() + + try { + const res: tipoResposta = + JSON.parse(texto) + + return res + } catch (error: any) { + return respostaComuns.erro( + `Erro ao listar usuários: ${error.message}`, + [texto, error], + ) + } + }) + .catch((error) => + respostaComuns.erro(`Erro ao listar usuários: ${error.message}`, [error]), + ) +} diff --git a/src/lista-vinculos.ts b/src/lista-vinculos.ts new file mode 100644 index 0000000..ba2a187 --- /dev/null +++ b/src/lista-vinculos.ts @@ -0,0 +1,48 @@ +import cFetch from "cross-fetch" +import { respostaComuns, type tipoResposta } from "p-respostas" + +export const tx_vinculos__listar = "vinculos__listar" as const +export type tipo_retorno_vinculo_listas = { + codigo: string + usuario_codigo: string + inquilino: string + vinculo: string + chave_produto: string + _usuario_nome: string + _inquilino_nome: string + _inquilino_base_url: string +} + +export const listarVinculos = async ({ + token, + url_api_autenticacao, +}: { + url_api_autenticacao: string + token: string +}): Promise> => { + const url = `${url_api_autenticacao}/api/${tx_vinculos__listar}` + + return cFetch(url, { + headers: { token, "Content-Type": "application/json" }, + body: "{}", + method: "post", + }) + .then(async (a) => { + const texto = await a.text() + + try { + const res: tipoResposta = + JSON.parse(texto) + + return res + } catch (error: any) { + return respostaComuns.erro(`Erro ao listar cidades: ${error.message}`, [ + texto, + error, + ]) + } + }) + .catch((error) => + respostaComuns.erro(`Erro ao listar cidades: ${error.message}`, [error]), + ) +} diff --git a/src/produtos/_betha-meio-ambiente.ts b/src/produtos/_betha-meio-ambiente.ts new file mode 100644 index 0000000..16508b5 --- /dev/null +++ b/src/produtos/_betha-meio-ambiente.ts @@ -0,0 +1,15 @@ +import { type opcoesVinculosGov, ProdutoQuipo } from "./tipagem" + +export const produto_betha_meio_ambiente = new ProdutoQuipo({ + chave_produto: "betha-meio-ambiente", + titulo: "Betha Meio Ambiente", + descricao: + "Betha Meio Ambiente: Software de gestão de processos ambientais para órgãos públicos da Betha Sistemas.", + + url_produto: ({ inquilino, base_url, vinculo }) => + `${base_url}/${inquilino}${ + vinculo == ("anonimo" satisfies keyof typeof opcoesVinculosGov) + ? "" + : `/${vinculo}#/admin` + }`, +}) diff --git a/src/produtos/_e-licencie-gov.ts b/src/produtos/_e-licencie-gov.ts new file mode 100644 index 0000000..50fc64c --- /dev/null +++ b/src/produtos/_e-licencie-gov.ts @@ -0,0 +1,13 @@ +import { produto_betha_meio_ambiente } from "./_betha-meio-ambiente" +import { type opcoesVinculosGov, ProdutoQuipo } from "./tipagem" +export const produto_e_licencie_gov = new ProdutoQuipo({ + ...produto_betha_meio_ambiente, + titulo: "e-Licencie Gov", + chave_produto: "e-licencie-gov", + url_produto: ({ inquilino, base_url, vinculo }) => + `${base_url}/${inquilino}${ + vinculo == ("anonimo" satisfies keyof typeof opcoesVinculosGov) + ? "" + : `/${vinculo}#/admin` + }`, +}) diff --git a/src/produtos/_e-licencie.ts b/src/produtos/_e-licencie.ts new file mode 100644 index 0000000..b3e75ca --- /dev/null +++ b/src/produtos/_e-licencie.ts @@ -0,0 +1,8 @@ +import { Produto } from "./tipagem" + +export const produto_e_licencie = new Produto({ + chave_produto: "e-licencie", + titulo: "e-Licencie", + descricao: "e-Licencie: Software de gestão de processos e dados ambientais.", + url_produto: ({ base_url }) => base_url, +}) diff --git a/src/produtos/_suporte.ts b/src/produtos/_suporte.ts new file mode 100644 index 0000000..fe39240 --- /dev/null +++ b/src/produtos/_suporte.ts @@ -0,0 +1,9 @@ +import { Produto } from "./tipagem" + +export const produto_suporte = new Produto({ + chave_produto: "suporte", + titulo: "Suporte", + descricao: "Gestão de contas e usuários dos produtos da e-licencie", + + url_produto: ({ base_url }) => base_url, +}) diff --git a/src/produtos/doc.ts b/src/produtos/doc.ts new file mode 100644 index 0000000..2e00a65 --- /dev/null +++ b/src/produtos/doc.ts @@ -0,0 +1,31 @@ +/** + +Produtos existentes: + +Atenticacao: + Acesso a gestão de produtos + Apenas uma conta com o código autenticao + /autenticacao + +Betha Meio Ambiente: + Acesso a gestão da aplicação Quipo + Acesso pode ser sociedade ou governo + /quipo + Possue limite de acesso a módulos: + Licenciamento + Fiscalização + + + +e-licencie GOV: + Acesso a gestão da aplicação Quipo + Acesso pode ser sociedade ou governo + /quipo + + +e-licencie: + Acesso a Aplicação e-licencie + Adminstrador e Não adminstrasdor + + + */ diff --git a/src/produtos/index.ts b/src/produtos/index.ts new file mode 100644 index 0000000..66e581c --- /dev/null +++ b/src/produtos/index.ts @@ -0,0 +1,35 @@ +import { produto_betha_meio_ambiente } from "./_betha-meio-ambiente" +import { produto_e_licencie } from "./_e-licencie" + +import { produto_e_licencie_gov } from "./_e-licencie-gov" +import { produto_suporte } from "./_suporte" +import { + chaves_produto, + opcoesVinculos, + opcoesVinculosGov, + Produto, + provedoresGov, + versao_usuarios, +} from "./tipagem" + +export const listaProdutos: { + [k in keyof typeof chaves_produto]: Produto +} = { + "betha-meio-ambiente": produto_betha_meio_ambiente, + "e-licencie": produto_e_licencie, + "e-licencie-gov": produto_e_licencie_gov, + suporte: produto_suporte, +} + +export { + Produto, + chaves_produto, + opcoesVinculosGov, + opcoesVinculos, + provedoresGov, + produto_betha_meio_ambiente, + produto_e_licencie, + produto_e_licencie_gov, + produto_suporte, + versao_usuarios, +} diff --git a/src/produtos/tipagem.ts b/src/produtos/tipagem.ts new file mode 100644 index 0000000..23e447f --- /dev/null +++ b/src/produtos/tipagem.ts @@ -0,0 +1,102 @@ +/** Lista dos produtos da e-licencie */ +export enum chaves_produto { + suporte = "suporte", + "betha-meio-ambiente" = "betha-meio-ambiente", + "e-licencie-gov" = "e-licencie-gov", + "e-licencie" = "e-licencie", +} + +export const opcoesVinculosGov = { + governo: "Governo", + sociedade: "Sociedade", + anonimo: "Anônimo", +} as const + +export const opcoesVinculosSuporte = { + "suporte-1": "Suporte Primário", +} as const + +export const opcoesVinculos = { + [chaves_produto.suporte]: opcoesVinculosSuporte, + [chaves_produto["betha-meio-ambiente"]]: opcoesVinculosGov, + [chaves_produto["e-licencie-gov"]]: opcoesVinculosGov, + [chaves_produto["e-licencie"]]: {}, +} as const + +export const tiposAcesso = opcoesVinculosGov + +export const provedoresGov = { + /** Sistema de login da Beta */ + "betha-sistemas": "Betha Sistemas", + /** sistema de login do altenticado */ + "e-licencie": "e-licencie", +} as const + +type extruturaTokenBase = { + inquilino_codigo: string + usuario_codigo: string + usuario_nome: string + codigo_acesso_produto: string + codigo_autenticacao: string +} + +type extrutruaraTokenQuipo = extruturaTokenBase & { + inquilino_nome: string + tipo_de_acesso: keyof typeof opcoesVinculosGov + provedor: keyof typeof provedoresGov +} + +export class Produto { + /** Chave do produto*/ + chave_produto: C + /** Titulo do produto */ + titulo: string + /** Descrição do módulo */ + descricao: string + /** URL base do módulo */ + url_produto: (_: { + inquilino: string + base_url: string + vinculo: string + }) => string + + constructor(_: { + /** Chave do produto*/ chave_produto: C + /** Titulo do produto */ + titulo: string + /** Descrição do módulo */ + descricao: string + /** URL base do módulo */ + url_produto: (_: { + inquilino: string + base_url: string + vinculo: string + }) => string + }) { + this.chave_produto = _.chave_produto + this.titulo = _.titulo + this.descricao = _.descricao + this.url_produto = _.url_produto + } + + extruturaToken( + _: extruturaTokenBase, + ): extruturaTokenBase & { chave_produto: C } { + return { ..._, chave_produto: this.chave_produto } + } +} + +export class ProdutoQuipo< + C extends keyof typeof chaves_produto, +> extends Produto { + extruturaToken( + _: extrutruaraTokenQuipo, + ): extrutruaraTokenQuipo & { chave_produto: C } { + return { ..._, chave_produto: this.chave_produto } + } +} + +export enum versao_usuarios { + versao_usuarios_autenticacao = "versao_usuarios_autenticacao", + versao_usuarios_quipo = "versao_usuarios_quipo", +} diff --git a/src/tokens/index.ts b/src/tokens/index.ts new file mode 100644 index 0000000..4fe57c4 --- /dev/null +++ b/src/tokens/index.ts @@ -0,0 +1,11 @@ +import type { provedoresGov } from "../produtos" + +export type tipoUsuarioTokenAutneticacao = { + usuario_codigo: string + usuario_nome: string + usuario_email: string + usuario_cpf: string + autenticacao_codigo: string + eSuporte: boolean + autenticacao_provedor: keyof typeof provedoresGov +} diff --git a/tsconfig-back.json b/tsconfig-back.json new file mode 100644 index 0000000..c9cde5d --- /dev/null +++ b/tsconfig-back.json @@ -0,0 +1,7 @@ +{ + "extends": "./tsconfig", + "compilerOptions": { + "outDir": "./dist-require", + "module": "commonjs" + } +} diff --git a/tsconfig-front.json b/tsconfig-front.json new file mode 100644 index 0000000..ae18c06 --- /dev/null +++ b/tsconfig-front.json @@ -0,0 +1,7 @@ +{ + "extends": "./tsconfig", + "compilerOptions": { + "outDir": "./dist-import", + "module": "ES6" + } +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..deebe41 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + /* 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. */ + + /* Módulos */ + "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. */ + + /* 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. */ + + /* 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. */ + }, + "include": ["src/**/*"] /* Inclui todos os arquivos TypeScript dentro da pasta src. */ +}