diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..6c59086 --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +enable-pre-post-scripts=true diff --git a/Documentos/biome.json b/Documentos/biome.json index 9ea8a1e..7c9e297 100644 --- a/Documentos/biome.json +++ b/Documentos/biome.json @@ -1,8 +1,6 @@ { - "$schema": "https://biomejs.dev/schemas/1.7.3/schema.json", - "organizeImports": { - "enabled": true - }, + "root": false, + "$schema": "../node_modules/@biomejs/biome/configuration_schema.json", "linter": { "enabled": true, "rules": { @@ -11,21 +9,43 @@ "noDoubleEquals": "off", "noExplicitAny": "off", "noDebugger": "off", - "noApproximativeNumericConstant": "off" + "noApproximativeNumericConstant": "off", + "noAsyncPromiseExecutor": "off" }, "style": { - "noUselessElse": "off" + "noUselessElse": "off", + "noParameterAssign": "error", + "useAsConstAssertion": "error", + "useDefaultParameterLast": "error", + "useEnumInitializers": "error", + "useSelfClosingElements": "error", + "useSingleVarDeclarator": "error", + "noUnusedTemplateLiteral": "error", + "useNumberNamespace": "error", + "noInferrableTypes": "error" }, "complexity": { "noBannedTypes": "off", "noForEach": "off", - "useLiteralKeys": "off" + "useLiteralKeys": "off", + "noUselessConstructor": "off", + "useArrowFunction": "off", + "useDateNow":"off", + "noUselessFragments":"off" }, "correctness": { - "noEmptyPattern": "off" + "noEmptyPattern": "off", + "noUnusedVariables": "error", + "noUnusedImports": "off", + "useExhaustiveDependencies":"off" + + }, "performance": { "noAccumulatingSpread": "off" + }, + "a11y": { + "useSemanticElements": "off" } } }, @@ -40,7 +60,7 @@ "arrowParentheses": "always", "enabled": true, "bracketSameLine": false, - "trailingComma": "all", + "trailingCommas": "all", "attributePosition": "multiline" } } diff --git a/biome.json b/biome.json index fa50494..e4c3596 100644 --- a/biome.json +++ b/biome.json @@ -1,7 +1,21 @@ { - "$schema": "https://biomejs.dev/schemas/1.7.3/schema.json", + "$schema": "node_modules/@biomejs/biome/configuration_schema.json", "extends": ["Documentos/biome.json"], - "files": { - "ignore": [] + "files": {}, + "linter": { + "rules": { + "style": { + "noParameterAssign": "error", + "useAsConstAssertion": "error", + "useDefaultParameterLast": "error", + "useEnumInitializers": "error", + "useSelfClosingElements": "error", + "useSingleVarDeclarator": "error", + "noUnusedTemplateLiteral": "error", + "useNumberNamespace": "error", + "noInferrableTypes": "error", + "noUselessElse": "error" + } + } } } diff --git a/dist/autorizacoes/auntenticacaoResiduos.d.ts b/dist/autorizacoes/auntenticacaoResiduos.d.ts deleted file mode 100644 index 0dc0f98..0000000 --- a/dist/autorizacoes/auntenticacaoResiduos.d.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { z } from "zod"; -export declare const InterfaceAuntenticacao: z.ZodObject<{ - codigo_usuario: z.ZodString; - nome_usuario: z.ZodString; - email_usuario: z.ZodString; - documento_usuario: z.ZodString; - organizacao: z.ZodString; - rotas: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>; - sistema: z.ZodString; - sistema_cor: z.ZodString; - sistema_nome: z.ZodString; - sistema_logo: z.ZodString; - /** as url de integração serão armazenadas pelo sistema resíduos e identificado pelo código do token */ - codigo_token: z.ZodString; - url_usuarios: z.ZodString; - url_empreendedores: z.ZodString; - url_empreendimentos: z.ZodString; -}, "strip", z.ZodTypeAny, { - codigo_usuario?: string; - nome_usuario?: string; - email_usuario?: string; - documento_usuario?: string; - organizacao?: string; - rotas?: {}; - sistema?: string; - sistema_cor?: string; - sistema_nome?: string; - sistema_logo?: string; - codigo_token?: string; - url_usuarios?: string; - url_empreendedores?: string; - url_empreendimentos?: string; -}, { - codigo_usuario?: string; - nome_usuario?: string; - email_usuario?: string; - documento_usuario?: string; - organizacao?: string; - rotas?: {}; - sistema?: string; - sistema_cor?: string; - sistema_nome?: string; - sistema_logo?: string; - codigo_token?: string; - url_usuarios?: string; - url_empreendedores?: string; - url_empreendimentos?: string; -}>; diff --git a/dist/autorizacoes/auntenticacaoResiduos.js b/dist/autorizacoes/auntenticacaoResiduos.js deleted file mode 100644 index 688e688..0000000 --- a/dist/autorizacoes/auntenticacaoResiduos.js +++ /dev/null @@ -1,25 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.InterfaceAuntenticacao = void 0; -const zod_1 = require("zod"); -exports.InterfaceAuntenticacao = zod_1.z.object({ - // usuários - codigo_usuario: zod_1.z.string().uuid(), - nome_usuario: zod_1.z.string(), - email_usuario: zod_1.z.string(), - documento_usuario: zod_1.z.string(), - organizacao: zod_1.z.string(), - rotas: zod_1.z.object({}), - // Dados do sistema - sistema: zod_1.z.string(), - sistema_cor: zod_1.z.string(), - sistema_nome: zod_1.z.string(), - sistema_logo: zod_1.z.string(), - // integrações - /** as url de integração serão armazenadas pelo sistema resíduos e identificado pelo código do token */ - codigo_token: zod_1.z.string(), - url_usuarios: zod_1.z.string().url(), - url_empreendedores: zod_1.z.string().url(), - url_empreendimentos: zod_1.z.string().url(), -}); -//# sourceMappingURL=auntenticacaoResiduos.js.map \ No newline at end of file diff --git a/dist/autorizacoes/auntenticacaoResiduos.js.map b/dist/autorizacoes/auntenticacaoResiduos.js.map deleted file mode 100644 index 93e72fa..0000000 --- a/dist/autorizacoes/auntenticacaoResiduos.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"auntenticacaoResiduos.js","sourceRoot":"","sources":["../../src/autorizacoes/auntenticacaoResiduos.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEV,QAAA,sBAAsB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC7C,WAAW;IAEX,cAAc,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IACjC,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE;IACxB,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE;IACzB,iBAAiB,EAAE,OAAC,CAAC,MAAM,EAAE;IAC7B,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE;IACvB,KAAK,EAAE,OAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IAEnB,mBAAmB;IACnB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;IACnB,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE;IACvB,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE;IACxB,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE;IAExB,cAAc;IAEd,uGAAuG;IACvG,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE;IACxB,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC9B,kBAAkB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACpC,mBAAmB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;CACtC,CAAC,CAAA"} \ No newline at end of file diff --git a/dist/autorizacoes/index.d.ts b/dist/autorizacoes/index.d.ts deleted file mode 100644 index d2cb75b..0000000 --- a/dist/autorizacoes/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -/** Sistemas vão conversar por meio de autorizações tipar eles aqui */ -export * from "./auntenticacaoResiduos"; diff --git a/dist/autorizacoes/index.js b/dist/autorizacoes/index.js deleted file mode 100644 index a0b27ec..0000000 --- a/dist/autorizacoes/index.js +++ /dev/null @@ -1,19 +0,0 @@ -"use strict"; -/** Sistemas vão conversar por meio de autorizações tipar eles aqui */ -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("./auntenticacaoResiduos"), exports); -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/autorizacoes/index.js.map b/dist/autorizacoes/index.js.map deleted file mode 100644 index 5fe8287..0000000 --- a/dist/autorizacoes/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/autorizacoes/index.ts"],"names":[],"mappings":";AAAA,sEAAsE;;;;;;;;;;;;;;;;AAEtE,0DAAuC"} \ No newline at end of file diff --git a/dist/constantes.d.ts b/dist/constantes.d.ts index f8284d5..1bedbc1 100644 --- a/dist/constantes.d.ts +++ b/dist/constantes.d.ts @@ -6,9 +6,14 @@ export declare enum camposComuns { data_hora_criacao = "data_hora_criacao", data_hora_atualizacao = "data_hora_atualizacao", codigo_usuario_criacao = "codigo_usuario_criacao", - codigo_usuario_atualizacao = "codigo_usuario_atualizacao" + codigo_usuario_atualizacao = "codigo_usuario_atualizacao", + versao = "versao" } /** Palavras comumente usadas */ export declare enum tx { token = "token" } +export declare enum tipoUsuarioResiduos { + Usuario = "usuario", + Fornecedor = "fornecedor" +} diff --git a/dist/constantes.js b/dist/constantes.js index c9bf5db..e6ffa74 100644 --- a/dist/constantes.js +++ b/dist/constantes.js @@ -1,6 +1,6 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -exports.tx = exports.camposComuns = exports.uuid_null = void 0; +exports.tipoUsuarioResiduos = exports.tx = exports.camposComuns = exports.uuid_null = void 0; exports.uuid_null = "00000000-0000-0000-0000-000000000000"; /** Colunas Presentes n maioria das tabelas */ var camposComuns; @@ -11,10 +11,16 @@ var camposComuns; camposComuns["data_hora_atualizacao"] = "data_hora_atualizacao"; camposComuns["codigo_usuario_criacao"] = "codigo_usuario_criacao"; camposComuns["codigo_usuario_atualizacao"] = "codigo_usuario_atualizacao"; + camposComuns["versao"] = "versao"; })(camposComuns || (exports.camposComuns = camposComuns = {})); /** Palavras comumente usadas */ var tx; (function (tx) { tx["token"] = "token"; })(tx || (exports.tx = tx = {})); +var tipoUsuarioResiduos; +(function (tipoUsuarioResiduos) { + tipoUsuarioResiduos["Usuario"] = "usuario"; + tipoUsuarioResiduos["Fornecedor"] = "fornecedor"; +})(tipoUsuarioResiduos || (exports.tipoUsuarioResiduos = tipoUsuarioResiduos = {})); //# sourceMappingURL=constantes.js.map \ No newline at end of file diff --git a/dist/constantes.js.map b/dist/constantes.js.map index be775f6..8dc7670 100644 --- a/dist/constantes.js.map +++ b/dist/constantes.js.map @@ -1 +1 @@ -{"version":3,"file":"constantes.js","sourceRoot":"","sources":["../src/constantes.ts"],"names":[],"mappings":";;;AAAa,QAAA,SAAS,GAAG,sCAAsC,CAAA;AAE/D,8CAA8C;AAC9C,IAAY,YAOX;AAPD,WAAY,YAAY;IACtB,iCAAiB,CAAA;IACjB,qCAAqB,CAAA;IACrB,uDAAuC,CAAA;IACvC,+DAA+C,CAAA;IAC/C,iEAAiD,CAAA;IACjD,yEAAyD,CAAA;AAC3D,CAAC,EAPW,YAAY,4BAAZ,YAAY,QAOvB;AAED,gCAAgC;AAChC,IAAY,EAEX;AAFD,WAAY,EAAE;IACZ,qBAAe,CAAA;AACjB,CAAC,EAFW,EAAE,kBAAF,EAAE,QAEb"} \ No newline at end of file +{"version":3,"file":"constantes.js","sourceRoot":"","sources":["../src/constantes.ts"],"names":[],"mappings":";;;AAAa,QAAA,SAAS,GAAG,sCAAsC,CAAA;AAE/D,8CAA8C;AAC9C,IAAY,YAQX;AARD,WAAY,YAAY;IACtB,iCAAiB,CAAA;IACjB,qCAAqB,CAAA;IACrB,uDAAuC,CAAA;IACvC,+DAA+C,CAAA;IAC/C,iEAAiD,CAAA;IACjD,yEAAyD,CAAA;IACzD,iCAAiB,CAAA;AACnB,CAAC,EARW,YAAY,4BAAZ,YAAY,QAQvB;AAED,gCAAgC;AAChC,IAAY,EAEX;AAFD,WAAY,EAAE;IACZ,qBAAe,CAAA;AACjB,CAAC,EAFW,EAAE,kBAAF,EAAE,QAEb;AAED,IAAY,mBAGX;AAHD,WAAY,mBAAmB;IAC7B,0CAAmB,CAAA;IACnB,gDAAyB,CAAA;AAC3B,CAAC,EAHW,mBAAmB,mCAAnB,mBAAmB,QAG9B"} \ No newline at end of file diff --git a/dist/extensoes.d.ts b/dist/extensoes.d.ts new file mode 100644 index 0000000..76b648c --- /dev/null +++ b/dist/extensoes.d.ts @@ -0,0 +1,13 @@ +type tiposArquivo = "imagem" | "documento" | "vídeo" | "outros"; +export declare const extensoes: { + ext: string; + tipo: tiposArquivo; + mime: string; +}[]; +/** + * Função que retorna o tipo do arquivo + * @param nomeArquivo + * @returns + */ +export declare const tipoArquivo: (nomeArquivo: string | null | undefined) => tiposArquivo; +export {}; diff --git a/dist/extensoes.js b/dist/extensoes.js new file mode 100644 index 0000000..32f6820 --- /dev/null +++ b/dist/extensoes.js @@ -0,0 +1,173 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.tipoArquivo = exports.extensoes = void 0; +exports.extensoes = [ + { + ext: "gif", + tipo: "imagem", + mime: "image/gif", + }, + { + ext: "jpg", + tipo: "imagem", + mime: "image/jpeg", + }, + { + ext: "jpeg", + tipo: "imagem", + mime: "image/jpeg", + }, + { + ext: "png", + tipo: "imagem", + mime: "image/png", + }, + { + ext: "bmp", + tipo: "imagem", + mime: "image/bmp", + }, + { + ext: "webp", + tipo: "imagem", + mime: "image/webp", + }, + { + ext: "tiff", + tipo: "imagem", + mime: "image/tiff", + }, + { + ext: "svg", + tipo: "imagem", + mime: "image/svg+xml", + }, + { + ext: "ico", + tipo: "imagem", + mime: "image/x-icon", + }, + { + ext: "pdf", + tipo: "documento", + mime: "application/pdf", + }, + { + ext: "doc", + tipo: "documento", + mime: "application/msword", + }, + { + ext: "docx", + tipo: "documento", + mime: "application/vnd.openxmlformats-officedocument.wordprocessingml.document", + }, + { + ext: "xls", + tipo: "documento", + mime: "application/vnd.ms-excel", + }, + { + ext: "xlsx", + tipo: "documento", + mime: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + }, + { + ext: "ppt", + tipo: "documento", + mime: "application/vnd.ms-powerpoint", + }, + { + ext: "pptx", + tipo: "documento", + mime: "application/vnd.openxmlformats-officedocument.presentationml.presentation", + }, + { + ext: "txt", + tipo: "documento", + mime: "text/plain", + }, + { + ext: "odt", + tipo: "documento", + mime: "application/vnd.oasis.opendocument.text", + }, + { + ext: "ods", + tipo: "documento", + mime: "application/vnd.oasis.opendocument.spreadsheet", + }, + { + ext: "rtf", + tipo: "documento", + mime: "application/rtf", + }, + { + ext: "csv", + tipo: "documento", + mime: "text/csv", + }, + { + ext: "mp4", + tipo: "vídeo", + mime: "video/mp4", + }, + { + ext: "avi", + tipo: "vídeo", + mime: "video/x-msvideo", + }, + { + ext: "mkv", + tipo: "vídeo", + mime: "video/x-matroska", + }, + { + ext: "mov", + tipo: "vídeo", + mime: "video/quicktime", + }, + { + ext: "wmv", + tipo: "vídeo", + mime: "video/x-ms-wmv", + }, + { + ext: "flv", + tipo: "vídeo", + mime: "video/x-flv", + }, + { + ext: "webm", + tipo: "vídeo", + mime: "video/webm", + }, + { + ext: "3gp", + tipo: "vídeo", + mime: "video/3gpp", + }, + { + ext: "mpeg", + tipo: "vídeo", + mime: "video/mpeg", + }, +]; +/** + * Função que retorna o tipo do arquivo + * @param nomeArquivo + * @returns + */ +const tipoArquivo = (nomeArquivo) => { + // extenssão do arquivo + const extArquivo = String(nomeArquivo || "") + .toLocaleLowerCase() + .split(".") + .pop(); + // procura a extensão do arquivo na lista de extensões + const extensao = exports.extensoes.find((extensao) => extensao.ext === extArquivo); + // retorna o tipo do arquivo + return extensao?.tipo || "outros"; +}; +exports.tipoArquivo = tipoArquivo; +//# sourceMappingURL=extensoes.js.map \ No newline at end of file diff --git a/dist/extensoes.js.map b/dist/extensoes.js.map new file mode 100644 index 0000000..8aa2abd --- /dev/null +++ b/dist/extensoes.js.map @@ -0,0 +1 @@ +{"version":3,"file":"extensoes.js","sourceRoot":"","sources":["../src/extensoes.ts"],"names":[],"mappings":";;;AAEa,QAAA,SAAS,GAIhB;IACJ;QACE,GAAG,EAAE,KAAK;QACV,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,WAAW;KAClB;IACD;QACE,GAAG,EAAE,KAAK;QACV,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,YAAY;KACnB;IACD;QACE,GAAG,EAAE,MAAM;QACX,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,YAAY;KACnB;IACD;QACE,GAAG,EAAE,KAAK;QACV,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,WAAW;KAClB;IACD;QACE,GAAG,EAAE,KAAK;QACV,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,WAAW;KAClB;IACD;QACE,GAAG,EAAE,MAAM;QACX,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,YAAY;KACnB;IACD;QACE,GAAG,EAAE,MAAM;QACX,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,YAAY;KACnB;IACD;QACE,GAAG,EAAE,KAAK;QACV,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,eAAe;KACtB;IACD;QACE,GAAG,EAAE,KAAK;QACV,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,cAAc;KACrB;IACD;QACE,GAAG,EAAE,KAAK;QACV,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,iBAAiB;KACxB;IACD;QACE,GAAG,EAAE,KAAK;QACV,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,oBAAoB;KAC3B;IACD;QACE,GAAG,EAAE,MAAM;QACX,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,yEAAyE;KAChF;IACD;QACE,GAAG,EAAE,KAAK;QACV,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,0BAA0B;KACjC;IACD;QACE,GAAG,EAAE,MAAM;QACX,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,mEAAmE;KAC1E;IACD;QACE,GAAG,EAAE,KAAK;QACV,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,+BAA+B;KACtC;IACD;QACE,GAAG,EAAE,MAAM;QACX,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,2EAA2E;KAClF;IACD;QACE,GAAG,EAAE,KAAK;QACV,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,YAAY;KACnB;IACD;QACE,GAAG,EAAE,KAAK;QACV,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,yCAAyC;KAChD;IACD;QACE,GAAG,EAAE,KAAK;QACV,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,gDAAgD;KACvD;IACD;QACE,GAAG,EAAE,KAAK;QACV,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,iBAAiB;KACxB;IACD;QACE,GAAG,EAAE,KAAK;QACV,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,GAAG,EAAE,KAAK;QACV,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,WAAW;KAClB;IACD;QACE,GAAG,EAAE,KAAK;QACV,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,iBAAiB;KACxB;IACD;QACE,GAAG,EAAE,KAAK;QACV,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,kBAAkB;KACzB;IACD;QACE,GAAG,EAAE,KAAK;QACV,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,iBAAiB;KACxB;IACD;QACE,GAAG,EAAE,KAAK;QACV,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,gBAAgB;KACvB;IACD;QACE,GAAG,EAAE,KAAK;QACV,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,aAAa;KACpB;IACD;QACE,GAAG,EAAE,MAAM;QACX,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,YAAY;KACnB;IACD;QACE,GAAG,EAAE,KAAK;QACV,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,YAAY;KACnB;IACD;QACE,GAAG,EAAE,MAAM;QACX,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,YAAY;KACnB;CACF,CAAA;AAED;;;;GAIG;AACI,MAAM,WAAW,GAAG,CACzB,WAAsC,EACxB,EAAE;IAChB,uBAAuB;IACvB,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;SACzC,iBAAiB,EAAE;SACnB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,EAAE,CAAA;IACR,sDAAsD;IACtD,MAAM,QAAQ,GAAG,iBAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,KAAK,UAAU,CAAC,CAAA;IAC1E,4BAA4B;IAC5B,OAAO,QAAQ,EAAE,IAAI,IAAI,QAAQ,CAAA;AACnC,CAAC,CAAA;AAZY,QAAA,WAAW,eAYvB"} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts index 7c8237f..eaca916 100644 --- a/dist/index.d.ts +++ b/dist/index.d.ts @@ -1,9 +1,11 @@ -export * from "./autorizacoes"; +export * from "./aleatorio"; export * from "./constantes"; export * from "./consulta"; -export * from "./aleatorio"; +export * from "./ecosistema"; +export * from "./extensoes"; +export * from "./logger"; export * from "./texto_busca"; +export * from "./tipagemRotas"; export * from "./unidades_medida"; export * from "./uuid"; -export * from "./provedores"; -export * from "./ecosistema"; +export * from "./variaveisComuns"; diff --git a/dist/index.js b/dist/index.js index c6b5b4e..31f310d 100644 --- a/dist/index.js +++ b/dist/index.js @@ -14,13 +14,15 @@ 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("./autorizacoes"), exports); +__exportStar(require("./aleatorio"), exports); __exportStar(require("./constantes"), exports); __exportStar(require("./consulta"), exports); -__exportStar(require("./aleatorio"), exports); +__exportStar(require("./ecosistema"), exports); +__exportStar(require("./extensoes"), exports); +__exportStar(require("./logger"), exports); __exportStar(require("./texto_busca"), exports); +__exportStar(require("./tipagemRotas"), exports); __exportStar(require("./unidades_medida"), exports); __exportStar(require("./uuid"), exports); -__exportStar(require("./provedores"), exports); -__exportStar(require("./ecosistema"), exports); +__exportStar(require("./variaveisComuns"), exports); //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/index.js.map b/dist/index.js.map index 6cf4810..eb65be1 100644 --- a/dist/index.js.map +++ b/dist/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA8B;AAC9B,+CAA4B;AAC5B,6CAA0B;AAC1B,8CAA2B;AAC3B,gDAA6B;AAC7B,oDAAiC;AACjC,yCAAsB;AACtB,+CAA4B;AAC5B,+CAA4B"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA2B;AAC3B,+CAA4B;AAC5B,6CAA0B;AAC1B,+CAA4B;AAC5B,8CAA2B;AAC3B,2CAAwB;AACxB,gDAA6B;AAC7B,iDAA8B;AAC9B,oDAAiC;AACjC,yCAAsB;AACtB,oDAAiC"} \ No newline at end of file diff --git a/dist/logger.d.ts b/dist/logger.d.ts new file mode 100644 index 0000000..89e1e56 --- /dev/null +++ b/dist/logger.d.ts @@ -0,0 +1,40 @@ +export type tipoLokiObjeto = { + streams: { + stream: { + [k: string]: string; + }; + values: [string, string][]; + }[]; +}; +export declare const postLogger: ({ objeto, }: { + objeto: tipoLokiObjeto; +}) => Promise<[objeto: tipoLokiObjeto, erro?: string]>; +/** define a localização da pasta do projeto */ +export declare const defineCwd: (novoCwd: string) => void; +type tipoLevel = "info" | "warn" | "error"; +type tipoOpSessao = { + inquilino: string; + usuario: string; + parametros?: { + [k: string]: string; + }; +}; +type tipoLog = { + detalhes?: unknown[]; + __filename?: string; + local?: string; + parametros?: { + [k: string]: string; + }; +}; +export type tipoLoggerLog = (level: tipoLevel, mensagem: string, op_tipoLog?: tipoLog) => Promise<[objeto: tipoLokiObjeto, erro?: string]>; +export type TipoLoggerSessao = (sess: tipoOpSessao) => tipoLoggerLog; +export type tipoLogger = (amb: { + app: string; + eProducao: boolean; + parametros?: { + [k: string]: string; + }; +}) => TipoLoggerSessao; +export declare const logger: tipoLogger; +export {}; diff --git a/dist/logger.js b/dist/logger.js new file mode 100644 index 0000000..82d4faf --- /dev/null +++ b/dist/logger.js @@ -0,0 +1,70 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.logger = exports.defineCwd = exports.postLogger = void 0; +const cross_fetch_1 = __importDefault(require("cross-fetch")); +const variaveisComuns_1 = require("./variaveisComuns"); +const LOKI_BASE_URL = "https://log.idz.one"; +const LOKI_ENDPOINT = "/loki/api/v1/push"; +const postLogger = async ({ objeto, }) => { + const response = await (0, cross_fetch_1.default)(`${LOKI_BASE_URL}${LOKI_ENDPOINT}`, { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify(objeto), + }).catch((a) => a); + if (!response.ok) { + return [objeto, `Erro ${response.status}: ${await response?.text?.()}`]; + } + return [objeto]; +}; +exports.postLogger = postLogger; +let cwd = ""; +/** define a localização da pasta do projeto */ +const defineCwd = (novoCwd) => { + cwd = novoCwd; +}; +exports.defineCwd = defineCwd; +const logger = ({ app: app_e, eProducao, parametros: parametrosAmbiente }) => ({ inquilino, usuario, parametros: parametrosSessao }) => async (level, mensagem, op_tipoLog) => { + let { __filename, detalhes, local, parametros: parametrosLog, } = op_tipoLog || {}; + const app = `${eProducao ? "" : "DEV-"}${app_e}`; + if (cwd && __filename) { + __filename = __filename.replace(cwd, ""); + } + if (local) { + detalhes = [`${(0, variaveisComuns_1.nomeVariavel)({ local })}="${local}"`, ...(detalhes || [])]; + } + if (__filename) { + detalhes = [ + `${(0, variaveisComuns_1.nomeVariavel)({ __filename })}="${__filename}"`, + ...(detalhes || []), + ]; + } + const timestamp = `${Date.now()}000000`; + const mainLog = detalhes?.length + ? `${mensagem} | ${detalhes.map((d) => JSON.stringify(d)).join(" | ")}` + : mensagem; + const payload = { + stream: { + app, + inquilino, + usuario, + level, + ...(parametrosAmbiente || {}), + ...(parametrosSessao || {}), + ...(parametrosLog || {}), + }, + values: [ + [ + timestamp, + mainLog, // Linha de log direta + ], + ], + }; + const objeto = { streams: [payload] }; + const response = await (0, exports.postLogger)({ objeto }); + return response; +}; +exports.logger = logger; +//# sourceMappingURL=logger.js.map \ No newline at end of file diff --git a/dist/logger.js.map b/dist/logger.js.map new file mode 100644 index 0000000..edd815a --- /dev/null +++ b/dist/logger.js.map @@ -0,0 +1 @@ +{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/provedores.d.ts b/dist/provedores.d.ts deleted file mode 100644 index e350450..0000000 --- a/dist/provedores.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -export declare enum provedores { - "betha-sistemas" = "Betha Sistemas", - "e-licencie" = "e-licencie" -} diff --git a/dist/provedores.js b/dist/provedores.js deleted file mode 100644 index 121a02c..0000000 --- a/dist/provedores.js +++ /dev/null @@ -1,9 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.provedores = void 0; -var provedores; -(function (provedores) { - provedores["betha-sistemas"] = "Betha Sistemas"; - provedores["e-licencie"] = "e-licencie"; -})(provedores || (exports.provedores = provedores = {})); -//# sourceMappingURL=provedores.js.map \ No newline at end of file diff --git a/dist/provedores.js.map b/dist/provedores.js.map deleted file mode 100644 index ebf3644..0000000 --- a/dist/provedores.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"provedores.js","sourceRoot":"","sources":["../src/provedores.ts"],"names":[],"mappings":";;;AAAA,IAAY,UAGX;AAHD,WAAY,UAAU;IACpB,+CAAmC,CAAA;IACnC,uCAA2B,CAAA;AAC7B,CAAC,EAHW,UAAU,0BAAV,UAAU,QAGrB"} \ No newline at end of file diff --git a/dist/teste.d.ts b/dist/teste.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/dist/teste.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/dist/teste.js b/dist/teste.js new file mode 100644 index 0000000..c8ae54c --- /dev/null +++ b/dist/teste.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const logger_1 = require("./logger"); +const l = (0, logger_1.logger)({ app: "teste", eProducao: true }); +const lg = l({ + inquilino: "conta_1", + usuario: "pedrinho", +}); +lg("error", "Deu Ruim").then((a) => console.log(JSON.stringify(a))); +lg("info", "Deu Bom", { __filename }).then((a) => console.log(JSON.stringify(a))); +//# sourceMappingURL=teste.js.map \ No newline at end of file diff --git a/dist/teste.js.map b/dist/teste.js.map new file mode 100644 index 0000000..5f79640 --- /dev/null +++ b/dist/teste.js.map @@ -0,0 +1 @@ +{"version":3,"file":"teste.js","sourceRoot":"","sources":["../src/teste.ts"],"names":[],"mappings":";;AAAA,qCAAiC;AAEjC,MAAM,CAAC,GAAG,IAAA,eAAM,EAAC,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;AAEnD,MAAM,EAAE,GAAG,CAAC,CAAC;IACX,SAAS,EAAE,SAAS;IACpB,OAAO,EAAE,UAAU;CACpB,CAAC,CAAA;AAEF,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACnE,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAC/C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAC/B,CAAA"} \ No newline at end of file diff --git a/dist/texto_busca.js b/dist/texto_busca.js index 3c6218a..259c6f9 100644 --- a/dist/texto_busca.js +++ b/dist/texto_busca.js @@ -7,7 +7,6 @@ const texto_busca = (...texto) => texto ? "" : String(txt) .normalize("NFD") - // biome-ignore lint/suspicious/noMisleadingCharacterClass: .replace(/[\u0300-\u036f]/g, "") .replace(/\s+/g, " ") .toLowerCase()) diff --git a/dist/texto_busca.js.map b/dist/texto_busca.js.map index 037ccc7..b3d4626 100644 --- a/dist/texto_busca.js.map +++ b/dist/texto_busca.js.map @@ -1 +1 @@ -{"version":3,"file":"texto_busca.js","sourceRoot":"","sources":["../src/texto_busca.ts"],"names":[],"mappings":";AAAA,wEAAwE;;;AAEjE,MAAM,WAAW,GAAG,CAAC,GAAG,KAAY,EAAU,EAAE,CACrD,KAAK;KACF,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACX,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS;IAC/B,CAAC,CAAC,EAAE;IACJ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;SACR,SAAS,CAAC,KAAK,CAAC;QACjB,yEAAyE;SACxE,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;SAC/B,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,WAAW,EAAE,CACrB;KACA,IAAI,CAAC,GAAG,CAAC,CAAA;AAZD,QAAA,WAAW,eAYV"} \ No newline at end of file +{"version":3,"file":"texto_busca.js","sourceRoot":"","sources":["../src/texto_busca.ts"],"names":[],"mappings":";AAAA,wEAAwE;;;AAEjE,MAAM,WAAW,GAAG,CAAC,GAAG,KAAY,EAAU,EAAE,CACrD,KAAK;KACF,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACX,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS;IAC/B,CAAC,CAAC,EAAE;IACJ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;SACR,SAAS,CAAC,KAAK,CAAC;SAChB,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;SAC/B,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,WAAW,EAAE,CACrB;KACA,IAAI,CAAC,GAAG,CAAC,CAAA;AAXD,QAAA,WAAW,eAWV"} \ No newline at end of file diff --git a/dist/tipagemRotas.d.ts b/dist/tipagemRotas.d.ts new file mode 100644 index 0000000..5705b77 --- /dev/null +++ b/dist/tipagemRotas.d.ts @@ -0,0 +1,49 @@ +/** Gerar uma classe que facilita a gestão de rotas com a tipagem das querys + * + * Definições: + * + * caminho = "/aplicacao/funcionalidade" + * + * endereco = "http://localhost:3000/aplicacao/funcionalidade" + * + * parametros = {nome:"José"} + */ +export declare class TipagemRotas { + _partesCaminho: string[]; + _acaoIr?: (endereco: string) => undefined; + /** Ao criar novo obijeto de tipagem de rota é necessário passar o caminho parcial + ** export const mCaminho = new TipagemRotas<{q:string}>("aplicacao","funcionalidade") + */ + constructor({ caminho, acaoIr, }: { + caminho: string[] | string; + acaoIr?: undefined | ((endereco: string) => undefined); + }); + /** Retorna o caminho completo da rota + ** console.log(mCaminho.caminho) + ** "/caminho" + */ + get caminho(): string; + /** Define o caminho completo da rota + ** mCaminho.caminho = "/novoCaminho" + ** console.log(mCaminho.caminho) + ** "/novoCaminho" + ** */ + set caminho(caminhoParcial: string); + /** Retorna o caminho completo da rota com a query + ** console.log(mCaminho.resolve({q:"query"})) + ** "http://localhost:3000/caminho?q=query" + */ + endereco(query: T, usarComoHash?: boolean): string; + /** Vai para a url + ** mCaminho.ir({q:"query"}) + ** window.location.href = "http://localhost:3000/caminho?q=query" + */ + ir(query: T): void; + /** Retorna os parametros da url + ** console.log(mCaminho.parametros()) + ** {q:"query"} + */ + get parametros(): Partial; +} diff --git a/dist/tipagemRotas.js b/dist/tipagemRotas.js new file mode 100644 index 0000000..7b982f2 --- /dev/null +++ b/dist/tipagemRotas.js @@ -0,0 +1,92 @@ +"use strict"; +/** Gerar uma classe que facilita a gestão de rotas com a tipagem das querys + * + * Definições: + * + * caminho = "/aplicacao/funcionalidade" + * + * endereco = "http://localhost:3000/aplicacao/funcionalidade" + * + * parametros = {nome:"José"} + */ +Object.defineProperty(exports, "__esModule", { value: true }); +exports.TipagemRotas = void 0; +class TipagemRotas { + /** Ao criar novo obijeto de tipagem de rota é necessário passar o caminho parcial + ** export const mCaminho = new TipagemRotas<{q:string}>("aplicacao","funcionalidade") + */ + constructor({ caminho, acaoIr, }) { + this._partesCaminho = []; + this._acaoIr = acaoIr; + this._partesCaminho = (Array.isArray(caminho) ? caminho : [caminho]) + .flatMap((a) => a.split("/")) + .filter(Boolean); + } + /** Retorna o caminho completo da rota + ** console.log(mCaminho.caminho) + ** "/caminho" + */ + get caminho() { + const ret = `/${this._partesCaminho.join("/")}`; + return ret; + } + /** Define o caminho completo da rota + ** mCaminho.caminho = "/novoCaminho" + ** console.log(mCaminho.caminho) + ** "/novoCaminho" + ** */ + set caminho(caminhoParcial) { + this._partesCaminho = caminhoParcial.split("/").filter((parte) => parte); + } + /** Retorna o caminho completo da rota com a query + ** console.log(mCaminho.resolve({q:"query"})) + ** "http://localhost:3000/caminho?q=query" + */ + endereco(query, usarComoHash) { + const url = new URL(typeof window !== "undefined" ? window.location.href : "http://localhost"); + url.pathname = this.caminho; + url.search = ""; + const queryKeys = Object.entries(query); + for (const [key, value] of queryKeys) { + url.searchParams.set(String(key), value === undefined || value === null ? "" : value); + } + url.hash = ""; + if (usarComoHash) { + url.hash = `#${url.search}`; + url.search = ""; + } + return url.href; + } + /** Vai para a url + ** mCaminho.ir({q:"query"}) + ** window.location.href = "http://localhost:3000/caminho?q=query" + */ + ir(query) { + if (this._acaoIr) { + this._acaoIr(this.endereco(query)); + } + else { + if (typeof window != "undefined") { + window.location.href = this.endereco(query); + } + } + } + /** Retorna os parametros da url + ** console.log(mCaminho.parametros()) + ** {q:"query"} + */ + get parametros() { + const url = new URL(typeof window !== "undefined" ? window.location.href : "http://localhost"); + const query = url.searchParams; + const queryObj = Object.fromEntries(query.entries()); + // pegar hash + const hash = url.hash; + if (hash) { + const hashObj = Object.fromEntries(new URLSearchParams(hash.slice(1)).entries()); + return { ...queryObj, ...hashObj }; + } + return queryObj; + } +} +exports.TipagemRotas = TipagemRotas; +//# sourceMappingURL=tipagemRotas.js.map \ No newline at end of file diff --git a/dist/tipagemRotas.js.map b/dist/tipagemRotas.js.map new file mode 100644 index 0000000..93d5f07 --- /dev/null +++ b/dist/tipagemRotas.js.map @@ -0,0 +1 @@ +{"version":3,"file":"tipagemRotas.js","sourceRoot":"","sources":["../src/tipagemRotas.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/unidades_medida.d.ts b/dist/unidades_medida.d.ts index 53f8b64..dfe57d6 100644 --- a/dist/unidades_medida.d.ts +++ b/dist/unidades_medida.d.ts @@ -1,7 +1,23 @@ +/** + * Essa variável se conecta a tabela_lidades + * + * onde sigla se conecta com sigla + * + * Usuário terá mais opções de unidades, quando fazer o envio para o mtr, usar a opção fornecida pelo usuarios, caso não tenha + * usar a normalizada + */ +export declare enum siglas_unidades_medida { + UN = "UN", + KG = "KG", + TON = "TON", + g = "g", + "M³" = "M\u00B3", + Lt = "Lt" +} export declare const unidades_medida: { - unidade: string; + sigla_unidade: keyof typeof siglas_unidades_medida; nome: string; - unidade_normalizada: string; + sigla_normalizada: keyof typeof siglas_unidades_medida; normalizar: (valor: number) => number; - tipo: "massa" | "volume" | "comprimento"; + tipo: "massa" | "volume" | "comprimento" | "unidade"; }[]; diff --git a/dist/unidades_medida.js b/dist/unidades_medida.js index b3d08d1..ea72e63 100644 --- a/dist/unidades_medida.js +++ b/dist/unidades_medida.js @@ -1,76 +1,65 @@ "use strict"; +/** + * Essa variável se conecta a tabela_lidades + * + * onde sigla se conecta com sigla + * + * Usuário terá mais opções de unidades, quando fazer o envio para o mtr, usar a opção fornecida pelo usuarios, caso não tenha + * usar a normalizada + */ Object.defineProperty(exports, "__esModule", { value: true }); -exports.unidades_medida = void 0; +exports.unidades_medida = exports.siglas_unidades_medida = void 0; +var siglas_unidades_medida; +(function (siglas_unidades_medida) { + siglas_unidades_medida["UN"] = "UN"; + siglas_unidades_medida["KG"] = "KG"; + siglas_unidades_medida["TON"] = "TON"; + siglas_unidades_medida["g"] = "g"; + siglas_unidades_medida["M\u00B3"] = "M\u00B3"; + siglas_unidades_medida["Lt"] = "Lt"; +})(siglas_unidades_medida || (exports.siglas_unidades_medida = siglas_unidades_medida = {})); exports.unidades_medida = [ { - unidade: "kg", + sigla_unidade: "KG", nome: "Quilograma", - unidade_normalizada: "kg", + sigla_normalizada: "KG", normalizar: (valor) => valor, tipo: "massa", }, { - unidade: "g", + sigla_unidade: "g", nome: "Grama", - unidade_normalizada: "kg", + sigla_normalizada: "KG", normalizar: (valor) => valor / 1000, tipo: "massa", }, { - unidade: "ton", + sigla_unidade: "TON", nome: "Tonelada", - unidade_normalizada: "kg", + sigla_normalizada: "KG", normalizar: (valor) => valor * 1000, tipo: "massa", }, { - unidade: "L", + sigla_unidade: "Lt", nome: "Litro", - unidade_normalizada: "L", + sigla_normalizada: "Lt", normalizar: (valor) => valor, tipo: "volume", }, { - unidade: "m3", + sigla_unidade: "M³", nome: "Metro Cúbico", - unidade_normalizada: "L", + sigla_normalizada: "Lt", normalizar: (valor) => valor * 1000, tipo: "volume", }, { - unidade: "mL", - nome: "Mililitro", - unidade_normalizada: "L", - normalizar: (valor) => valor / 1000, - tipo: "volume", - }, - { - unidade: "cm", - nome: "Centímetro", - unidade_normalizada: "m", - normalizar: (valor) => valor / 100, - tipo: "comprimento", - }, - { - unidade: "mm", - nome: "Milímetro", - unidade_normalizada: "m", - normalizar: (valor) => valor / 1000, - tipo: "comprimento", - }, - { - unidade: "m", - nome: "Metro", - unidade_normalizada: "m", + sigla_unidade: "UN", + nome: "Unidade", + sigla_normalizada: "UN", normalizar: (valor) => valor, - tipo: "comprimento", - }, - { - unidade: "km", - nome: "Quilômetro", - unidade_normalizada: "m", - normalizar: (valor) => valor * 1000, - tipo: "comprimento", + tipo: "unidade", }, ]; //# sourceMappingURL=unidades_medida.js.map \ No newline at end of file diff --git a/dist/unidades_medida.js.map b/dist/unidades_medida.js.map index 1204af2..41c9b31 100644 --- a/dist/unidades_medida.js.map +++ b/dist/unidades_medida.js.map @@ -1 +1 @@ -{"version":3,"file":"unidades_medida.js","sourceRoot":"","sources":["../src/unidades_medida.ts"],"names":[],"mappings":";;;AAAa,QAAA,eAAe,GAMtB;IACJ;QACE,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,YAAY;QAClB,mBAAmB,EAAE,IAAI;QACzB,UAAU,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK;QACpC,IAAI,EAAE,OAAO;KACd;IACD;QACE,OAAO,EAAE,GAAG;QACZ,IAAI,EAAE,OAAO;QACb,mBAAmB,EAAE,IAAI;QACzB,UAAU,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI;QAC3C,IAAI,EAAE,OAAO;KACd;IACD;QACE,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,UAAU;QAChB,mBAAmB,EAAE,IAAI;QACzB,UAAU,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI;QAC3C,IAAI,EAAE,OAAO;KACd;IACD;QACE,OAAO,EAAE,GAAG;QACZ,IAAI,EAAE,OAAO;QACb,mBAAmB,EAAE,GAAG;QACxB,UAAU,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK;QACpC,IAAI,EAAE,QAAQ;KACf;IACD;QACE,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,cAAc;QACpB,mBAAmB,EAAE,GAAG;QACxB,UAAU,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI;QAC3C,IAAI,EAAE,QAAQ;KACf;IACD;QACE,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,WAAW;QACjB,mBAAmB,EAAE,GAAG;QACxB,UAAU,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI;QAC3C,IAAI,EAAE,QAAQ;KACf;IACD;QACE,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,YAAY;QAClB,mBAAmB,EAAE,GAAG;QACxB,UAAU,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,GAAG,GAAG;QAC1C,IAAI,EAAE,aAAa;KACpB;IACD;QACE,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,WAAW;QACjB,mBAAmB,EAAE,GAAG;QACxB,UAAU,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI;QAC3C,IAAI,EAAE,aAAa;KACpB;IACD;QACE,OAAO,EAAE,GAAG;QACZ,IAAI,EAAE,OAAO;QACb,mBAAmB,EAAE,GAAG;QACxB,UAAU,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK;QACpC,IAAI,EAAE,aAAa;KACpB;IACD;QACE,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,YAAY;QAClB,mBAAmB,EAAE,GAAG;QACxB,UAAU,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI;QAC3C,IAAI,EAAE,aAAa;KACpB;CACF,CAAA"} \ No newline at end of file +{"version":3,"file":"unidades_medida.js","sourceRoot":"","sources":["../src/unidades_medida.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEH,IAAY,sBASX;AATD,WAAY,sBAAsB;IAChC,mCAAS,CAAA;IAET,mCAAS,CAAA;IACT,qCAAW,CAAA;IACX,iCAAO,CAAA;IAEP,6CAAW,CAAA;IACX,mCAAS,CAAA;AACX,CAAC,EATW,sBAAsB,sCAAtB,sBAAsB,QASjC;AAEY,QAAA,eAAe,GAMtB;IACJ;QACE,aAAa,EAAE,IAAI;QACnB,IAAI,EAAE,YAAY;QAClB,iBAAiB,EAAE,IAAI;QACvB,UAAU,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK;QACpC,IAAI,EAAE,OAAO;KACd;IACD;QACE,aAAa,EAAE,GAAG;QAClB,IAAI,EAAE,OAAO;QACb,iBAAiB,EAAE,IAAI;QACvB,UAAU,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI;QAC3C,IAAI,EAAE,OAAO;KACd;IACD;QACE,aAAa,EAAE,KAAK;QACpB,IAAI,EAAE,UAAU;QAChB,iBAAiB,EAAE,IAAI;QACvB,UAAU,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI;QAC3C,IAAI,EAAE,OAAO;KACd;IACD;QACE,aAAa,EAAE,IAAI;QACnB,IAAI,EAAE,OAAO;QACb,iBAAiB,EAAE,IAAI;QACvB,UAAU,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK;QACpC,IAAI,EAAE,QAAQ;KACf;IACD;QACE,aAAa,EAAE,IAAI;QACnB,IAAI,EAAE,cAAc;QACpB,iBAAiB,EAAE,IAAI;QACvB,UAAU,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI;QAC3C,IAAI,EAAE,QAAQ;KACf;IACD;QACE,aAAa,EAAE,IAAI;QACnB,IAAI,EAAE,SAAS;QACf,iBAAiB,EAAE,IAAI;QACvB,UAAU,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK;QACpC,IAAI,EAAE,SAAS;KAChB;CACF,CAAA"} \ No newline at end of file diff --git a/dist/variaveisComuns.d.ts b/dist/variaveisComuns.d.ts index 4af43d4..29c1db8 100644 --- a/dist/variaveisComuns.d.ts +++ b/dist/variaveisComuns.d.ts @@ -1 +1,11 @@ export declare const esperar: (ms: number) => Promise; +/** + * Usado para retronat o no de uma variável, deve ser usado dentro de um objeto + * const nomex = {a: 1, b: 2} + * nomeVariavel({nomex}) // retorna "nomex" + * @param v + * @returns + */ +export declare const nomeVariavel: (v: { + [key: string]: any; +}) => string; diff --git a/dist/variaveisComuns.js b/dist/variaveisComuns.js index 4863508..68ec93c 100644 --- a/dist/variaveisComuns.js +++ b/dist/variaveisComuns.js @@ -1,6 +1,15 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -exports.esperar = void 0; +exports.nomeVariavel = exports.esperar = void 0; const esperar = (ms) => new Promise((resolve) => setTimeout(() => resolve(true), ms)); exports.esperar = esperar; +/** + * Usado para retronat o no de uma variável, deve ser usado dentro de um objeto + * const nomex = {a: 1, b: 2} + * nomeVariavel({nomex}) // retorna "nomex" + * @param v + * @returns + */ +const nomeVariavel = (v) => Object.keys(v).join("/"); +exports.nomeVariavel = nomeVariavel; //# sourceMappingURL=variaveisComuns.js.map \ No newline at end of file diff --git a/dist/variaveisComuns.js.map b/dist/variaveisComuns.js.map index b2aaade..6922273 100644 --- a/dist/variaveisComuns.js.map +++ b/dist/variaveisComuns.js.map @@ -1 +1 @@ -{"version":3,"file":"variaveisComuns.js","sourceRoot":"","sources":["../src/variaveisComuns.ts"],"names":[],"mappings":";;;AAAO,MAAM,OAAO,GAAG,CAAC,EAAU,EAAiB,EAAE,CACnD,IAAI,OAAO,CAAC,CAAC,OAA0B,EAAE,EAAE,CACzC,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CACpC,CAAA;AAHU,QAAA,OAAO,WAGjB"} \ No newline at end of file +{"version":3,"file":"variaveisComuns.js","sourceRoot":"","sources":["../src/variaveisComuns.ts"],"names":[],"mappings":";;;AAAO,MAAM,OAAO,GAAG,CAAC,EAAU,EAAiB,EAAE,CACnD,IAAI,OAAO,CAAC,CAAC,OAA0B,EAAE,EAAE,CACzC,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CACpC,CAAA;AAHU,QAAA,OAAO,WAGjB;AACH;;;;;;GAMG;AACI,MAAM,YAAY,GAAG,CAAC,CAAyB,EAAE,EAAE,CACxD,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AADb,QAAA,YAAY,gBACC"} \ No newline at end of file diff --git a/package.json b/package.json index 0c683d6..80af995 100644 --- a/package.json +++ b/package.json @@ -1,22 +1,26 @@ { "name": "p-comuns", - "version": "0.26.0", + "version": "0.115.0", "description": "", "main": "dist/index.js", "scripts": { "build": "rm -rf ./dist && pnpm run biome && npm --no-git-tag-version version minor && tsc", - "biome": "npx @biomejs/biome check --apply ./src" + "biome": "npx @biomejs/biome check --write ./src", + "at": "pnpm up @biomejs/biome typescript" + }, + "author": { + "name": "AZTECA SOFTWARE LTDA", + "email": "ti@e-licencie.com.br", + "url": "https://e-licencie.com.br" }, - "author": "", "license": "ISC", "dependencies": { - "zod": "3.23.8" + "cross-fetch": "^4.1.0", + "zod": "3.24.1" }, "devDependencies": { - "@biomejs/biome": "1.7.3", - "@types/node": "^20.12.5" - }, - "peerDependencies": { - "typescript": "^5.0.0" + "@biomejs/biome": "^2.0.6", + "@types/node": "^20.16.10", + "typescript": "^5.7.2" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d33e112..65adc6c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,132 +8,175 @@ importers: .: dependencies: - typescript: - specifier: ^5.0.0 - version: 5.4.4 + cross-fetch: + specifier: ^4.1.0 + version: 4.1.0 zod: - specifier: 3.23.8 - version: 3.23.8 + specifier: 3.24.1 + version: 3.24.1 devDependencies: '@biomejs/biome': - specifier: 1.7.3 - version: 1.7.3 + specifier: ^2.0.6 + version: 2.0.6 '@types/node': - specifier: ^20.12.5 - version: 20.12.5 + specifier: ^20.16.10 + version: 20.19.4 + typescript: + specifier: ^5.7.2 + version: 5.8.3 packages: - '@biomejs/biome@1.7.3': - resolution: {integrity: sha512-ogFQI+fpXftr+tiahA6bIXwZ7CSikygASdqMtH07J2cUzrpjyTMVc9Y97v23c7/tL1xCZhM+W9k4hYIBm7Q6cQ==} + '@biomejs/biome@2.0.6': + resolution: {integrity: sha512-RRP+9cdh5qwe2t0gORwXaa27oTOiQRQvrFf49x2PA1tnpsyU7FIHX4ZOFMtBC4QNtyWsN7Dqkf5EDbg4X+9iqA==} engines: {node: '>=14.21.3'} hasBin: true - '@biomejs/cli-darwin-arm64@1.7.3': - resolution: {integrity: sha512-eDvLQWmGRqrPIRY7AIrkPHkQ3visEItJKkPYSHCscSDdGvKzYjmBJwG1Gu8+QC5ed6R7eiU63LEC0APFBobmfQ==} + '@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@1.7.3': - resolution: {integrity: sha512-JXCaIseKRER7dIURsVlAJacnm8SG5I0RpxZ4ya3dudASYUc68WGl4+FEN03ABY3KMIq7hcK1tzsJiWlmXyosZg==} + '@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@1.7.3': - resolution: {integrity: sha512-c8AlO45PNFZ1BYcwaKzdt46kYbuP6xPGuGQ6h4j3XiEDpyseRRUy/h+6gxj07XovmyxKnSX9GSZ6nVbZvcVUAw==} + '@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@1.7.3': - resolution: {integrity: sha512-phNTBpo7joDFastnmZsFjYcDYobLTx4qR4oPvc9tJ486Bd1SfEVPHEvJdNJrMwUQK56T+TRClOQd/8X1nnjA9w==} + '@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@1.7.3': - resolution: {integrity: sha512-UdEHKtYGWEX3eDmVWvQeT+z05T9/Sdt2+F/7zmMOFQ7boANeX8pcO6EkJPK3wxMudrApsNEKT26rzqK6sZRTRA==} + '@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@1.7.3': - resolution: {integrity: sha512-vnedYcd5p4keT3iD48oSKjOIRPYcjSNNbd8MO1bKo9ajg3GwQXZLAH+0Cvlr+eMsO67/HddWmscSQwTFrC/uPA==} + '@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@1.7.3': - resolution: {integrity: sha512-unNCDqUKjujYkkSxs7gFIfdasttbDC4+z0kYmcqzRk6yWVoQBL4dNLcCbdnJS+qvVDNdI9rHp2NwpQ0WAdla4Q==} + '@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@1.7.3': - resolution: {integrity: sha512-ZmByhbrnmz/UUFYB622CECwhKIPjJLLPr5zr3edhu04LzbfcOrz16VYeNq5dpO1ADG70FORhAJkaIGdaVBG00w==} + '@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.12.5': - resolution: {integrity: sha512-BD+BjQ9LS/D8ST9p5uqBxghlN+S42iuNxjsUGjeZobe/ciXzk2qb1B6IXc6AnRLS+yFJRpN2IPEHMzwspfDJNw==} + '@types/node@20.19.4': + resolution: {integrity: sha512-OP+We5WV8Xnbuvw0zC2m4qfB/BJvjyCwtNjhHdJxV1639SGSKrLmJkc3fMnp2Qy8nJyHp8RO6umxELN/dS1/EA==} - typescript@5.4.4: - resolution: {integrity: sha512-dGE2Vv8cpVvw28v8HCPqyb08EzbBURxDpuhJvTrusShUfGnhHBafDsLdS1EhhxyL6BJQE+2cT3dDPAv+MQ6oLw==} + cross-fetch@4.1.0: + resolution: {integrity: sha512-uKm5PU+MHTootlWEY+mZ4vvXoCn4fLQxT9dSc1sXVMSFkINTJVN8cAQROpwcKm8bJ/c7rgZVIBWzH5T78sNZZw==} + + 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 + + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + + typescript@5.8.3: + resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} engines: {node: '>=14.17'} hasBin: true - undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + undici-types@6.21.0: + resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} - zod@3.23.8: - resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} + 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@1.7.3': + '@biomejs/biome@2.0.6': optionalDependencies: - '@biomejs/cli-darwin-arm64': 1.7.3 - '@biomejs/cli-darwin-x64': 1.7.3 - '@biomejs/cli-linux-arm64': 1.7.3 - '@biomejs/cli-linux-arm64-musl': 1.7.3 - '@biomejs/cli-linux-x64': 1.7.3 - '@biomejs/cli-linux-x64-musl': 1.7.3 - '@biomejs/cli-win32-arm64': 1.7.3 - '@biomejs/cli-win32-x64': 1.7.3 + '@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@1.7.3': + '@biomejs/cli-darwin-arm64@2.0.6': optional: true - '@biomejs/cli-darwin-x64@1.7.3': + '@biomejs/cli-darwin-x64@2.0.6': optional: true - '@biomejs/cli-linux-arm64-musl@1.7.3': + '@biomejs/cli-linux-arm64-musl@2.0.6': optional: true - '@biomejs/cli-linux-arm64@1.7.3': + '@biomejs/cli-linux-arm64@2.0.6': optional: true - '@biomejs/cli-linux-x64-musl@1.7.3': + '@biomejs/cli-linux-x64-musl@2.0.6': optional: true - '@biomejs/cli-linux-x64@1.7.3': + '@biomejs/cli-linux-x64@2.0.6': optional: true - '@biomejs/cli-win32-arm64@1.7.3': + '@biomejs/cli-win32-arm64@2.0.6': optional: true - '@biomejs/cli-win32-x64@1.7.3': + '@biomejs/cli-win32-x64@2.0.6': optional: true - '@types/node@20.12.5': + '@types/node@20.19.4': dependencies: - undici-types: 5.26.5 + undici-types: 6.21.0 - typescript@5.4.4: {} + cross-fetch@4.1.0: + dependencies: + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding - undici-types@5.26.5: {} + node-fetch@2.7.0: + dependencies: + whatwg-url: 5.0.0 - zod@3.23.8: {} + tr46@0.0.3: {} + + typescript@5.8.3: {} + + 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/autorizacoes/auntenticacaoResiduos.ts b/src/autorizacoes/auntenticacaoResiduos.ts deleted file mode 100644 index b002238..0000000 --- a/src/autorizacoes/auntenticacaoResiduos.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { z } from "zod" - -export const InterfaceAuntenticacao = z.object({ - // usuários - - codigo_usuario: z.string().uuid(), - nome_usuario: z.string(), - email_usuario: z.string(), - documento_usuario: z.string(), - organizacao: z.string(), - rotas: z.object({}), - - // Dados do sistema - sistema: z.string(), - sistema_cor: z.string(), - sistema_nome: z.string(), - sistema_logo: z.string(), - - // integrações - - /** as url de integração serão armazenadas pelo sistema resíduos e identificado pelo código do token */ - codigo_token: z.string(), - url_usuarios: z.string().url(), - url_empreendedores: z.string().url(), - url_empreendimentos: z.string().url(), -}) diff --git a/src/autorizacoes/index.ts b/src/autorizacoes/index.ts deleted file mode 100644 index 4efe733..0000000 --- a/src/autorizacoes/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -/** Sistemas vão conversar por meio de autorizações tipar eles aqui */ - -export * from "./auntenticacaoResiduos" diff --git a/src/constantes.ts b/src/constantes.ts index b8f1fd2..cacf79a 100644 --- a/src/constantes.ts +++ b/src/constantes.ts @@ -8,9 +8,15 @@ export enum camposComuns { data_hora_atualizacao = "data_hora_atualizacao", codigo_usuario_criacao = "codigo_usuario_criacao", codigo_usuario_atualizacao = "codigo_usuario_atualizacao", + versao = "versao", } /** Palavras comumente usadas */ export enum tx { token = "token", } + +export enum tipoUsuarioResiduos { + Usuario = "usuario", + Fornecedor = "fornecedor", +} diff --git a/src/extensoes.ts b/src/extensoes.ts new file mode 100644 index 0000000..b321977 --- /dev/null +++ b/src/extensoes.ts @@ -0,0 +1,177 @@ +type tiposArquivo = "imagem" | "documento" | "vídeo" | "outros" + +export const extensoes: { + ext: string + tipo: tiposArquivo + mime: string +}[] = [ + { + ext: "gif", + tipo: "imagem", + mime: "image/gif", + }, + { + ext: "jpg", + tipo: "imagem", + mime: "image/jpeg", + }, + { + ext: "jpeg", + tipo: "imagem", + mime: "image/jpeg", + }, + { + ext: "png", + tipo: "imagem", + mime: "image/png", + }, + { + ext: "bmp", + tipo: "imagem", + mime: "image/bmp", + }, + { + ext: "webp", + tipo: "imagem", + mime: "image/webp", + }, + { + ext: "tiff", + tipo: "imagem", + mime: "image/tiff", + }, + { + ext: "svg", + tipo: "imagem", + mime: "image/svg+xml", + }, + { + ext: "ico", + tipo: "imagem", + mime: "image/x-icon", + }, + { + ext: "pdf", + tipo: "documento", + mime: "application/pdf", + }, + { + ext: "doc", + tipo: "documento", + mime: "application/msword", + }, + { + ext: "docx", + tipo: "documento", + mime: "application/vnd.openxmlformats-officedocument.wordprocessingml.document", + }, + { + ext: "xls", + tipo: "documento", + mime: "application/vnd.ms-excel", + }, + { + ext: "xlsx", + tipo: "documento", + mime: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + }, + { + ext: "ppt", + tipo: "documento", + mime: "application/vnd.ms-powerpoint", + }, + { + ext: "pptx", + tipo: "documento", + mime: "application/vnd.openxmlformats-officedocument.presentationml.presentation", + }, + { + ext: "txt", + tipo: "documento", + mime: "text/plain", + }, + { + ext: "odt", + tipo: "documento", + mime: "application/vnd.oasis.opendocument.text", + }, + { + ext: "ods", + tipo: "documento", + mime: "application/vnd.oasis.opendocument.spreadsheet", + }, + { + ext: "rtf", + tipo: "documento", + mime: "application/rtf", + }, + { + ext: "csv", + tipo: "documento", + mime: "text/csv", + }, + { + ext: "mp4", + tipo: "vídeo", + mime: "video/mp4", + }, + { + ext: "avi", + tipo: "vídeo", + mime: "video/x-msvideo", + }, + { + ext: "mkv", + tipo: "vídeo", + mime: "video/x-matroska", + }, + { + ext: "mov", + tipo: "vídeo", + mime: "video/quicktime", + }, + { + ext: "wmv", + tipo: "vídeo", + mime: "video/x-ms-wmv", + }, + { + ext: "flv", + tipo: "vídeo", + mime: "video/x-flv", + }, + { + ext: "webm", + tipo: "vídeo", + mime: "video/webm", + }, + { + ext: "3gp", + tipo: "vídeo", + mime: "video/3gpp", + }, + { + ext: "mpeg", + tipo: "vídeo", + mime: "video/mpeg", + }, +] + +/** + * Função que retorna o tipo do arquivo + * @param nomeArquivo + * @returns + */ +export const tipoArquivo = ( + nomeArquivo: string | null | undefined, +): tiposArquivo => { + // extenssão do arquivo + const extArquivo = String(nomeArquivo || "") + .toLocaleLowerCase() + .split(".") + .pop() + // procura a extensão do arquivo na lista de extensões + const extensao = extensoes.find((extensao) => extensao.ext === extArquivo) + // retorna o tipo do arquivo + return extensao?.tipo || "outros" +} diff --git a/src/index.ts b/src/index.ts index 6681f07..c61ba3a 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,9 +1,11 @@ -export * from "./autorizacoes" +export * from "./aleatorio" export * from "./constantes" export * from "./consulta" -export * from "./aleatorio" +export * from "./ecosistema" +export * from "./extensoes" +export * from "./logger" export * from "./texto_busca" +export * from "./tipagemRotas" export * from "./unidades_medida" export * from "./uuid" -export * from "./provedores" -export * from "./ecosistema" +export * from "./variaveisComuns" diff --git a/src/logger.ts b/src/logger.ts new file mode 100644 index 0000000..7dec9f1 --- /dev/null +++ b/src/logger.ts @@ -0,0 +1,126 @@ +import crossFetch from "cross-fetch" +import { nomeVariavel } from "./variaveisComuns" + +const LOKI_BASE_URL = "https://log.idz.one" +const LOKI_ENDPOINT = "/loki/api/v1/push" +export type tipoLokiObjeto = { + streams: { + stream: { + [k: string]: string + } + values: [string, string][] + }[] +} + +export const postLogger = async ({ + objeto, +}: { + objeto: tipoLokiObjeto +}): Promise<[objeto: tipoLokiObjeto, erro?: string]> => { + const response = await crossFetch(`${LOKI_BASE_URL}${LOKI_ENDPOINT}`, { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify(objeto), + }).catch((a) => a) + if (!response.ok) { + return [objeto, `Erro ${response.status}: ${await response?.text?.()}`] + } + return [objeto] +} + +let cwd = "" + +/** define a localização da pasta do projeto */ +export const defineCwd = (novoCwd: string) => { + cwd = novoCwd +} + +type tipoLevel = "info" | "warn" | "error" + +type tipoOpSessao = { + inquilino: string + usuario: string + parametros?: { [k: string]: string } +} + +type tipoLog = { + detalhes?: unknown[] + __filename?: string + local?: string + parametros?: { [k: string]: string } +} + +export type tipoLoggerLog = ( + level: tipoLevel, + mensagem: string, + op_tipoLog?: tipoLog, +) => Promise<[objeto: tipoLokiObjeto, erro?: string]> + +export type TipoLoggerSessao = (sess: tipoOpSessao) => tipoLoggerLog + +export type tipoLogger = (amb: { + app: string + eProducao: boolean + parametros?: { + [k: string]: string + } +}) => TipoLoggerSessao + +export const logger: tipoLogger = + ({ app: app_e, eProducao, parametros: parametrosAmbiente }) => + ({ inquilino, usuario, parametros: parametrosSessao }) => + async (level, mensagem, op_tipoLog) => { + let { + __filename, + detalhes, + local, + parametros: parametrosLog, + } = op_tipoLog || {} + + const app = `${eProducao ? "" : "DEV-"}${app_e}` + + if (cwd && __filename) { + __filename = __filename.replace(cwd, "") + } + + if (local) { + detalhes = [`${nomeVariavel({ local })}="${local}"`, ...(detalhes || [])] + } + + if (__filename) { + detalhes = [ + `${nomeVariavel({ __filename })}="${__filename}"`, + ...(detalhes || []), + ] + } + + const timestamp = `${Date.now()}000000` + + const mainLog = detalhes?.length + ? `${mensagem} | ${detalhes.map((d) => JSON.stringify(d)).join(" | ")}` + : mensagem + + const payload: tipoLokiObjeto["streams"][number] = { + stream: { + app, + inquilino, + usuario, + level, + ...(parametrosAmbiente || {}), + ...(parametrosSessao || {}), + ...(parametrosLog || {}), + }, + values: [ + [ + timestamp, + mainLog, // Linha de log direta + ], + ], + } + + const objeto: tipoLokiObjeto = { streams: [payload] } + + const response = await postLogger({ objeto }) + + return response + } diff --git a/src/provedores.ts b/src/provedores.ts deleted file mode 100644 index 128c7f4..0000000 --- a/src/provedores.ts +++ /dev/null @@ -1,4 +0,0 @@ -export enum provedores { - "betha-sistemas" = "Betha Sistemas", - "e-licencie" = "e-licencie", -} diff --git a/src/teste.ts b/src/teste.ts new file mode 100644 index 0000000..fc1d4cc --- /dev/null +++ b/src/teste.ts @@ -0,0 +1,13 @@ +import { logger } from "./logger" + +const l = logger({ app: "teste", eProducao: true }) + +const lg = l({ + inquilino: "conta_1", + usuario: "pedrinho", +}) + +lg("error", "Deu Ruim").then((a) => console.log(JSON.stringify(a))) +lg("info", "Deu Bom", { __filename }).then((a) => + console.log(JSON.stringify(a)), +) diff --git a/src/texto_busca.ts b/src/texto_busca.ts index dccd8b7..3f6c1e8 100644 --- a/src/texto_busca.ts +++ b/src/texto_busca.ts @@ -7,7 +7,6 @@ export const texto_busca = (...texto: any[]): string => ? "" : String(txt) .normalize("NFD") - // biome-ignore lint/suspicious/noMisleadingCharacterClass: .replace(/[\u0300-\u036f]/g, "") .replace(/\s+/g, " ") .toLowerCase(), diff --git a/src/tipagemRotas.ts b/src/tipagemRotas.ts new file mode 100644 index 0000000..e2291b5 --- /dev/null +++ b/src/tipagemRotas.ts @@ -0,0 +1,120 @@ +/** Gerar uma classe que facilita a gestão de rotas com a tipagem das querys + * + * Definições: + * + * caminho = "/aplicacao/funcionalidade" + * + * endereco = "http://localhost:3000/aplicacao/funcionalidade" + * + * parametros = {nome:"José"} + */ + +export class TipagemRotas { + _partesCaminho: string[] = [] + _acaoIr?: (endereco: string) => undefined + + /** Ao criar novo obijeto de tipagem de rota é necessário passar o caminho parcial + ** export const mCaminho = new TipagemRotas<{q:string}>("aplicacao","funcionalidade") + */ + constructor({ + caminho, + acaoIr, + }: { + caminho: string[] | string + acaoIr?: undefined | ((endereco: string) => undefined) + }) { + this._acaoIr = acaoIr + + this._partesCaminho = (Array.isArray(caminho) ? caminho : [caminho]) + .flatMap((a) => a.split("/")) + .filter(Boolean) + } + + /** Retorna o caminho completo da rota + ** console.log(mCaminho.caminho) + ** "/caminho" + */ + get caminho() { + const ret = `/${this._partesCaminho.join("/")}` + return ret + } + /** Define o caminho completo da rota + ** mCaminho.caminho = "/novoCaminho" + ** console.log(mCaminho.caminho) + ** "/novoCaminho" + ** */ + set caminho(caminhoParcial: string) { + this._partesCaminho = caminhoParcial.split("/").filter((parte) => parte) + } + + /** Retorna o caminho completo da rota com a query + ** console.log(mCaminho.resolve({q:"query"})) + ** "http://localhost:3000/caminho?q=query" + */ + + endereco(query: T, usarComoHash?: boolean) { + const url = new URL( + typeof window !== "undefined" ? window.location.href : "http://localhost", + ) + + url.pathname = this.caminho + + url.search = "" + + const queryKeys = Object.entries(query) + + for (const [key, value] of queryKeys) { + url.searchParams.set( + String(key), + value === undefined || value === null ? "" : value, + ) + } + + url.hash = "" + + if (usarComoHash) { + url.hash = `#${url.search}` + url.search = "" + } + + return url.href + } + + /** Vai para a url + ** mCaminho.ir({q:"query"}) + ** window.location.href = "http://localhost:3000/caminho?q=query" + */ + ir(query: T) { + if (this._acaoIr) { + this._acaoIr(this.endereco(query)) + } else { + if (typeof window != "undefined") { + window.location.href = this.endereco(query) + } + } + } + + /** Retorna os parametros da url + ** console.log(mCaminho.parametros()) + ** {q:"query"} + */ + + get parametros() { + const url = new URL( + typeof window !== "undefined" ? window.location.href : "http://localhost", + ) + const query = url.searchParams + const queryObj = Object.fromEntries(query.entries()) + + // pegar hash + const hash = url.hash + if (hash) { + const hashObj = Object.fromEntries( + new URLSearchParams(hash.slice(1)).entries(), + ) + return { ...queryObj, ...hashObj } as T + } + + return queryObj as Partial + } +} diff --git a/src/unidades_medida.ts b/src/unidades_medida.ts index 9651acd..95a0fd0 100644 --- a/src/unidades_medida.ts +++ b/src/unidades_medida.ts @@ -1,79 +1,71 @@ +/** + * Essa variável se conecta a tabela_lidades + * + * onde sigla se conecta com sigla + * + * Usuário terá mais opções de unidades, quando fazer o envio para o mtr, usar a opção fornecida pelo usuarios, caso não tenha + * usar a normalizada + */ + +export enum siglas_unidades_medida { + UN = "UN", + + KG = "KG", + TON = "TON", + g = "g", + + "M³" = "M³", + Lt = "Lt", +} + export const unidades_medida: { - unidade: string + sigla_unidade: keyof typeof siglas_unidades_medida nome: string - unidade_normalizada: string + sigla_normalizada: keyof typeof siglas_unidades_medida normalizar: (valor: number) => number - tipo: "massa" | "volume" | "comprimento" + tipo: "massa" | "volume" | "comprimento" | "unidade" }[] = [ { - unidade: "kg", + sigla_unidade: "KG", nome: "Quilograma", - unidade_normalizada: "kg", + sigla_normalizada: "KG", normalizar: (valor: number) => valor, tipo: "massa", }, { - unidade: "g", + sigla_unidade: "g", nome: "Grama", - unidade_normalizada: "kg", + sigla_normalizada: "KG", normalizar: (valor: number) => valor / 1000, tipo: "massa", }, { - unidade: "ton", + sigla_unidade: "TON", nome: "Tonelada", - unidade_normalizada: "kg", + sigla_normalizada: "KG", normalizar: (valor: number) => valor * 1000, tipo: "massa", }, { - unidade: "L", + sigla_unidade: "Lt", nome: "Litro", - unidade_normalizada: "L", + sigla_normalizada: "Lt", normalizar: (valor: number) => valor, tipo: "volume", }, { - unidade: "m3", + sigla_unidade: "M³", nome: "Metro Cúbico", - unidade_normalizada: "L", + sigla_normalizada: "Lt", normalizar: (valor: number) => valor * 1000, tipo: "volume", }, { - unidade: "mL", - nome: "Mililitro", - unidade_normalizada: "L", - normalizar: (valor: number) => valor / 1000, - tipo: "volume", - }, - { - unidade: "cm", - nome: "Centímetro", - unidade_normalizada: "m", - normalizar: (valor: number) => valor / 100, - tipo: "comprimento", - }, - { - unidade: "mm", - nome: "Milímetro", - unidade_normalizada: "m", - normalizar: (valor: number) => valor / 1000, - tipo: "comprimento", - }, - { - unidade: "m", - nome: "Metro", - unidade_normalizada: "m", + sigla_unidade: "UN", + nome: "Unidade", + sigla_normalizada: "UN", normalizar: (valor: number) => valor, - tipo: "comprimento", - }, - { - unidade: "km", - nome: "Quilômetro", - unidade_normalizada: "m", - normalizar: (valor: number) => valor * 1000, - tipo: "comprimento", + tipo: "unidade", }, { unidade: "UN", diff --git a/src/variaveisComuns.ts b/src/variaveisComuns.ts index 51dc267..9128332 100644 --- a/src/variaveisComuns.ts +++ b/src/variaveisComuns.ts @@ -2,3 +2,12 @@ export const esperar = (ms: number): Promise => new Promise((resolve: (r: true) => void) => setTimeout(() => resolve(true), ms), ) +/** + * Usado para retronat o no de uma variável, deve ser usado dentro de um objeto + * const nomex = {a: 1, b: 2} + * nomeVariavel({nomex}) // retorna "nomex" + * @param v + * @returns + */ +export const nomeVariavel = (v: { [key: string]: any }) => + Object.keys(v).join("/") diff --git a/tsconfig.json b/tsconfig.json index dd7bb1d..3b0d0be 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -3,7 +3,7 @@ "outDir": "dist", "esModuleInterop": true, "noImplicitAny": true, - "target": "ESNext", + "target": "ES2020", "jsx": "react", "declaration": true, "declarationDir": "dist",