diff --git a/dist-back/index.js b/dist-back/index.js index 1dbf4dc..a6c6ab0 100644 --- a/dist-back/index.js +++ b/dist-back/index.js @@ -38,6 +38,7 @@ __reExport(index_exports, require("./uuid"), module.exports); __reExport(index_exports, require("./variaveisComuns"), module.exports); __reExport(index_exports, require("./zCoordenadas"), module.exports); __reExport(index_exports, require("./zDocumento"), module.exports); +__reExport(index_exports, require("./zodCustomizados"), module.exports); // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { ...require("./aleatorio"), @@ -62,5 +63,6 @@ __reExport(index_exports, require("./zDocumento"), module.exports); ...require("./uuid"), ...require("./variaveisComuns"), ...require("./zCoordenadas"), - ...require("./zDocumento") + ...require("./zDocumento"), + ...require("./zodCustomizados") }); diff --git a/dist-back/zodCustomizados.js b/dist-back/zodCustomizados.js new file mode 100644 index 0000000..56d1cdc --- /dev/null +++ b/dist-back/zodCustomizados.js @@ -0,0 +1,56 @@ +"use strict"; +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); +var zodCustomizados_exports = {}; +__export(zodCustomizados_exports, { + zNumero: () => zNumero, + zNumeroInteiro: () => zNumeroInteiro, + zNumeroPositivo: () => zNumeroPositivo +}); +module.exports = __toCommonJS(zodCustomizados_exports); +var import_zod = __toESM(require("zod")); +const zPreprocessarNumero = (p) => { + if (typeof p === "number") return p; + if (typeof p !== "string") return p; + let p2 = p; + if (p2.includes(",")) { + p2 = p2.replace(/\./g, "").replace(",", "."); + } + p2 = p2.replace(/[^0-9.]/g, ""); + if (p2 == "") return null; + return Number(p2); +}; +const zNumero = import_zod.default.preprocess(zPreprocessarNumero, import_zod.default.number()); +const zNumeroPositivo = import_zod.default.preprocess(zPreprocessarNumero, import_zod.default.number().positive()); +const zNumeroInteiro = import_zod.default.preprocess(zPreprocessarNumero, import_zod.default.number().int()); +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + zNumero, + zNumeroInteiro, + zNumeroPositivo +}); diff --git a/dist-front/index.d.mts b/dist-front/index.d.mts index 0bb0769..d5f0b46 100644 --- a/dist-front/index.d.mts +++ b/dist-front/index.d.mts @@ -580,4 +580,21 @@ declare const zDocCnpj: z.ZodString; declare const zDocCpf: z.ZodString; declare const zDocumento: z.ZodUnion<[z.ZodString, z.ZodString]>; -export { Produtos, TipagemRotas, type TipoPayloadAuditoria, aleatorio, cacheM, cacheMFixo, cacheMemoria, camposComuns, criarFiltroDelta, defineDayjsBr, erUuid, esperar, extensoes, iniciarDayjsBr, iniciarFiltroDelta, type interfaceConsulta, link_paiol, localValor, nomeVariavel, objetoPg, operadorFiltroDeltaDetalhes, operadores, paraObjetoRegistroPg, pgObjeto, siglas_unidades_medida, texto_busca, tipoArquivo, type tipoColunaFiltroDelta, type tipoCondicaoFiltroDelta, type tipoCondicaoFiltroDeltaTipado, type tipoFiltro, type tipoFiltroDelta, type tipoFiltroDeltaColunaTipada, type tipoOperadorFiltroDelta, tipoUsuarioResiduos, tiposSituacoesElicencie, tx, umaFuncao, umaVariavel, unidades_medida, uuid, uuidV3, uuidV4, uuid_null, validarUuid, verCacheM, zColunaFiltroDelta, zCondicaoFiltroDelta, zCoordenadas, zDocCnpj, zDocCpf, zDocumento, zFiltro, zFiltroDelta, zOperadorFiltroDelta, zOperadores }; +/** + * Schema numérico que aceita strings legadas e normaliza para `number`. + * + * O campo **é** um número. O `preprocess` resolve compatibilidade com dados + * antigos onde o frontend enviava strings formatadas (BR ou monetária). + * + * Formatos de entrada aceitos: + * - `10` → number direto + * - `10.1` → ponto decimal + * - `10,1` → vírgula decimal (BR) + * - `1.000,1` → milhar com ponto + vírgula decimal (BR) + * - `R$ 10,01` → prefixo monetário legado + */ +declare const zNumero: z.ZodPipe, z.ZodNumber>; +declare const zNumeroPositivo: z.ZodPipe, z.ZodNumber>; +declare const zNumeroInteiro: z.ZodPipe, z.ZodNumber>; + +export { Produtos, TipagemRotas, type TipoPayloadAuditoria, aleatorio, cacheM, cacheMFixo, cacheMemoria, camposComuns, criarFiltroDelta, defineDayjsBr, erUuid, esperar, extensoes, iniciarDayjsBr, iniciarFiltroDelta, type interfaceConsulta, link_paiol, localValor, nomeVariavel, objetoPg, operadorFiltroDeltaDetalhes, operadores, paraObjetoRegistroPg, pgObjeto, siglas_unidades_medida, texto_busca, tipoArquivo, type tipoColunaFiltroDelta, type tipoCondicaoFiltroDelta, type tipoCondicaoFiltroDeltaTipado, type tipoFiltro, type tipoFiltroDelta, type tipoFiltroDeltaColunaTipada, type tipoOperadorFiltroDelta, tipoUsuarioResiduos, tiposSituacoesElicencie, tx, umaFuncao, umaVariavel, unidades_medida, uuid, uuidV3, uuidV4, uuid_null, validarUuid, verCacheM, zColunaFiltroDelta, zCondicaoFiltroDelta, zCoordenadas, zDocCnpj, zDocCpf, zDocumento, zFiltro, zFiltroDelta, zNumero, zNumeroInteiro, zNumeroPositivo, zOperadorFiltroDelta, zOperadores }; diff --git a/dist-front/index.mjs b/dist-front/index.mjs index 9f090f2..ef97ac5 100644 --- a/dist-front/index.mjs +++ b/dist-front/index.mjs @@ -1 +1 @@ -var f="ABCDEFGHIJKLMNOPQRSTUVWXYZ".split(""),Z=e=>`eli-${Array.from({length:e||8}).map(()=>f[(999*Math.random()|0)%f.length]).join("")}`;var u={};globalThis.cacheMemoria_cache=u;var c=(e,r,a)=>{let n=typeof e=="string"?e:typeof e=="number"?String(e):encodeURIComponent(JSON.stringify(e)),t=a&&new Date().getTime()+a*1e3;r!==void 0&&(u[n]={valor:r,validade:t});let i=u[n];if(!(i?.validade&&i.validadeu,W=c,S=e=>r=>c(e,r);var ee="00000000-0000-0000-0000-000000000000",v=(d=>(d.codigo="codigo",d.excluido="excluido",d.data_hora_criacao="data_hora_criacao",d.data_hora_atualizacao="data_hora_atualizacao",d.codigo_usuario_criacao="codigo_usuario_criacao",d.codigo_usuario_atualizacao="codigo_usuario_atualizacao",d.versao="versao",d))(v||{}),b=(r=>(r.token="token",r))(b||{}),h=(a=>(a.Usuario="usuario",a.Fornecedor="fornecedor",a))(h||{});import p from"zod";var O=(n=>(n["="]="=",n["!="]="!=",n[">"]=">",n[">="]=">=",n["<"]="<",n["<="]="<=",n.like="like",n.in="in",n.isNull="isNull",n))(O||{}),z=p.enum(["=","!=",">",">=","<","<=","like","in","isNull"]),ae=p.object({coluna:p.string(),valor:p.any(),operador:z,ou:p.boolean().optional()});var T=({dayjs:e,duration:r,isSameOrAfter:a,isSameOrBefore:n,minMax:t,relativeTime:i,timezone:m,utc:d,weekOfYear:y})=>(e.extend(d),e.extend(m),e.extend(y),e.extend(n),e.extend(a),e.extend(t),e.extend(i),e.extend(r),e.locale("pt-br"),e),ne=T;var de="https://paiol.idz.one";var w=[{ext:"gif",tipo:"imagem",mime:"image/gif"},{ext:"jpg",tipo:"imagem",mime:"image/jpeg"},{ext:"jpeg",tipo:"imagem",mime:"image/jpeg"},{ext:"png",tipo:"imagem",mime:"image/png"},{ext:"bmp",tipo:"imagem",mime:"image/bmp"},{ext:"webp",tipo:"imagem",mime:"image/webp"},{ext:"tiff",tipo:"imagem",mime:"image/tiff"},{ext:"svg",tipo:"imagem",mime:"image/svg+xml"},{ext:"ico",tipo:"imagem",mime:"image/x-icon"},{ext:"pdf",tipo:"documento",mime:"application/pdf"},{ext:"doc",tipo:"documento",mime:"application/msword"},{ext:"docx",tipo:"documento",mime:"application/vnd.openxmlformats-officedocument.wordprocessingml.document"},{ext:"xls",tipo:"documento",mime:"application/vnd.ms-excel"},{ext:"xlsx",tipo:"documento",mime:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"},{ext:"ppt",tipo:"documento",mime:"application/vnd.ms-powerpoint"},{ext:"pptx",tipo:"documento",mime:"application/vnd.openxmlformats-officedocument.presentationml.presentation"},{ext:"txt",tipo:"documento",mime:"text/plain"},{ext:"odt",tipo:"documento",mime:"application/vnd.oasis.opendocument.text"},{ext:"ods",tipo:"documento",mime:"application/vnd.oasis.opendocument.spreadsheet"},{ext:"rtf",tipo:"documento",mime:"application/rtf"},{ext:"csv",tipo:"documento",mime:"text/csv"},{ext:"mp4",tipo:"v\xEDdeo",mime:"video/mp4"},{ext:"avi",tipo:"v\xEDdeo",mime:"video/x-msvideo"},{ext:"mkv",tipo:"v\xEDdeo",mime:"video/x-matroska"},{ext:"mov",tipo:"v\xEDdeo",mime:"video/quicktime"},{ext:"wmv",tipo:"v\xEDdeo",mime:"video/x-ms-wmv"},{ext:"flv",tipo:"v\xEDdeo",mime:"video/x-flv"},{ext:"webm",tipo:"v\xEDdeo",mime:"video/webm"},{ext:"3gp",tipo:"v\xEDdeo",mime:"video/3gpp"},{ext:"mpeg",tipo:"v\xEDdeo",mime:"video/mpeg"}],se=e=>{let r=String(e||"").toLocaleLowerCase().split(".").pop();return w.find(n=>n.ext===r)?.tipo||"outros"};import l from"zod";var D=l.enum([">","<",">=","<=","=","!=","in","like","\u2229"]),ce={">":{rotulo:"Maior que",descricao:"O valor de A deve ser maior que o valor de B"},"<":{rotulo:"Menor que",descricao:"O valor de A deve ser menor que o valor de B"},">=":{rotulo:"Maior ou igual a",descricao:"O valor de A deve ser maior ou igual ao valor de B"},"<=":{rotulo:"Menor ou igual a",descricao:"O valor de A deve ser menor ou igual ao valor de B"},"=":{rotulo:"Igual a",descricao:"O valor de A deve ser igual ao valor de B"},"!=":{rotulo:"Diferente de",descricao:"O valor de A deve ser diferente do valor de B"},in:{rotulo:"Est\xE1 em",descricao:"O valor de A deve estar presente na cole\xE7\xE3o ou lista definida em B"},like:{rotulo:"Cont\xE9m",descricao:"O valor de A deve conter o texto informado em B"},"\u2229":{rotulo:"Interse\xE7\xE3o",descricao:"A e B devem possuir pelo menos um elemento em comum"}},j=/^\{[\w:]+\}$/,F=/^\w+(\.\w+)*$/,C=l.string().regex(F,"Coluna inv\xE1lida").describe("nome da coluna ou caminho aninhado do jsonb"),A=l.object({id:l.string().describe("id da condi\xE7\xE3o do filtro").regex(j,"O id deve seguir o formato {identificador}"),coluna:C,operador:D,valor:l.any().describe("valor de compara\xE7\xE3o")}),k=e=>{let a=(e.match(/\{[\w:]+\}|\bNAO\b|\bE\b|\bOU\b|\(|\)/g)||[]).join(""),n=e.replace(/\s+/g,""),t=a.replace(/\s+/g,"");if(n!==t)return!1;let i=e.replace(/\{[\w:]+\}/g,"true").replace(/\bNAO\b/g,"!").replace(/\bE\b/g,"&&").replace(/\bOU\b/g,"||");try{return new Function(`return (${i})`)(),!0}catch{return!1}},N=l.object({condicoes:l.array(A),formula:l.string().refine(k,{message:"F\xF3rmula inv\xE1lida. Use apenas refer\xEAncias de condi\xE7\xF5es {id} ou {id:sufixo}, operadores E/OU/NAO e par\xEAnteses."})}).superRefine((e,r)=>{let a=new Set(e.condicoes.map(t=>t.id)),n=e.formula.match(/\{[\w:]+\}/g)||[];for(let t of n)a.has(t)||r.addIssue({code:"custom",path:["formula"],message:`A refer\xEAncia ${t} n\xE3o existe em condicoes.`})}),X=e=>N.parse(e),ge=()=>({criarFiltroDelta:X});var _e=(e,r)=>{let a="localStorage"in globalThis?globalThis.localStorage:void 0;if(typeof a>"u")return null;let n=typeof e=="string"?e:encodeURIComponent(JSON.stringify(e));try{r!==void 0&&a.setItem(n,JSON.stringify(r));let t=a.getItem(n);if(t===null)return null;try{return JSON.parse(t)}catch{return t}}catch{return null}};var g=e=>{try{return Object.fromEntries(Object.entries(e).map(([r,a])=>[r,a===void 0||a==null||typeof a=="string"||typeof a=="number"||typeof a=="boolean"?a:JSON.stringify(a,null,2)]))}catch(r){throw new Error(`Erro na fun\xE7\xE3o paraObjetoRegistroPg: ${r.message} ${r.stack}`)}},ve=g,be=g;var M=(e=>(e["e-licencie"]="e-licencie",e["gov.e-licencie"]="gov.e-licencie",e))(M||{});var B=(o=>(o.modelo="000_modelo",o.vencida="100_vencida",o.expirado="200_expirado",o.alerta="300_alerta",o.protocoladafora="350_protocoladafora",o.protocolada="400_protocolada",o.protocoladaApenas="430_protocolada",o.protocolada_alteracao="450_protocolada",o.prazo="500_prazo",o.emitida="515_emitida",o.valida="518_valida",o.novo="520_novo",o.recebido="521_recebido",o.em_andamento="530_em_andamento",o.aguardando="530_aguardando",o.aguardandoresposta="540_aguardandoresposta",o.suspensaotemporaria="540_suspensaotemporaria",o.cancelada="550_cancelada",o.execucao="560_execucao",o.pendente="570_pendente",o.executadafora="600_executadafora",o.executada="700_executada",o.naoexecutada="701_naoexecutada",o.concluida="730_concluida",o.respondido_negado="740_respondido_negado",o.respondido_aceito="741_respondido_aceito",o.atendidoparcial="742_atendidoparcial",o.naoatendido="743_naoatendido",o.atendido="744_atendido",o.renovada="760_renovada",o.finalizada="800_finalizada",o.emitirnota="101_emitirnota",o.faturaatrasada="301_faturaatrasada",o.pagarfatura="302_pagarfatura",o.aguardandoconfirmacao="531_aguardandoconfirmacao",o.agendado="701_agendado",o.faturapaga="801_faturapaga",o.excluida="999_excluida",o.requerida="401_requerida",o.vigente="516_vigente",o.emrenovacao="402_emrenovacao",o.arquivada="801_arquivada",o.aguardando_sincronizacao="999_aguardando_sincronizacao",o.nao_conforme="710_nao_conforme",o.conforme="720_conforme",o.nao_aplicavel="730_nao_aplicavel",o.parcial="715_parcial",o))(B||{});var Te=()=>"Ol\xE1 Mundo! (fun\xE7\xE3o)";var De="Ol\xE1 Mundo! (vari\xE1vel)";var ke=(...e)=>e.map(r=>r==null?"":String(r).normalize("NFD").replace(/[\u0300-\u036f]/g,"").replace(/\s+/g," ").toLowerCase()).join(" ");var x=class{constructor({caminho:r,acaoIr:a,rotulo:n}){this._partesCaminho=[];this._acaoIr=a,this._partesCaminho=(Array.isArray(r)?r:[r]).filter(Boolean).map(t=>String(t)).flatMap(t=>t.split("/")).filter(Boolean),this.rotulo=n}get caminho(){return`/${this._partesCaminho.join("/")}`}set caminho(r){this._partesCaminho=r.split("/").filter(a=>a)}endereco(r,a){let n=typeof globalThis<"u"&&globalThis.window||void 0,t=new URL(n?n.location.href:"http://localhost");t.pathname=this.caminho,t.search="";let i=Object.entries(r);for(let[m,d]of i)t.searchParams.set(String(m),JSON.stringify(d));return t.hash="",a&&(t.hash=`#${t.search}`,t.search=""),t.href}ir(r){if(this._acaoIr)this._acaoIr(this.endereco({...r}));else{let a=typeof globalThis<"u"&&globalThis.window||void 0;a&&(a.location.href=this.endereco({...r}))}}parametros(r){let a=r?new URL(r):new URL(typeof globalThis<"u"&&globalThis.window?globalThis.window.location.href:"http://localhost"),n=a.searchParams,t=Object.fromEntries(n.entries()),i=a.hash;if(i){let m=Object.fromEntries(new URLSearchParams(i.slice(1)).entries());t={...t,...m}}for(let m in t)try{t[m]=JSON.parse(t[m])}catch{console.log(`[${m}|${t[m]}] n\xE3o \xE9 um json v\xE1lido.`)}return t}};var q=(i=>(i.UN="UN",i.KG="KG",i.TON="TON",i.g="g",i["M\xB3"]="M\xB3",i.Lt="Lt",i))(q||{}),Me=[{sigla_unidade:"KG",nome:"Quilograma",sigla_normalizada:"KG",normalizar:e=>e,tipo:"massa"},{sigla_unidade:"g",nome:"Grama",sigla_normalizada:"KG",normalizar:e=>e/1e3,tipo:"massa"},{sigla_unidade:"TON",nome:"Tonelada",sigla_normalizada:"KG",normalizar:e=>e*1e3,tipo:"massa"},{sigla_unidade:"Lt",nome:"Litro",sigla_normalizada:"Lt",normalizar:e=>e,tipo:"volume"},{sigla_unidade:"M\xB3",nome:"Metro C\xFAbico",sigla_normalizada:"Lt",normalizar:e=>e*1e3,tipo:"volume"},{sigla_unidade:"UN",nome:"Unidade",sigla_normalizada:"UN",normalizar:e=>e,tipo:"unidade"}];import{NIL as U,v3 as I,v4 as L}from"uuid";var P=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,Ue=e=>P.test(String(e||"")),$=(e,r)=>I(typeof e=="string"?e:typeof e=="number"?String(e):JSON.stringify(e),r?$(r):U),J=L,Ie=J;var Pe=e=>new Promise(r=>setTimeout(()=>r(!0),e)),$e=e=>Object.keys(e).join("/");import s from"zod";var Re=s.object({formato:s.literal("decimal").default("decimal"),datum:s.literal("EPSG:4326").default("EPSG:4326"),latitude:s.number(),longitude:s.number()});import _ from"zod";var G=/^\d{2}\.\d{3}\.\d{3}\/\d{4}-\d{2}$/,R=/^[A-Z0-9]{2}\.[A-Z0-9]{3}\.[A-Z0-9]{3}\/[A-Z0-9]{4}-\d{2}$/i,K=Number(new Date().toISOString().slice(0,7).replace("-","")),V=_.string().regex(K<202407?G:R).describe("Documento (CNPJ) no formato XX.XXX.XXX/XXXX-XX"),Y=_.string().regex(/^\d{3}\.\d{3}\.\d{3}-\d{2}$/).describe("Documento (CPF) no formato XXX.XXX.XXX-XX"),Ye=Y.or(V).describe("CPF ou CNPJ");export{M as Produtos,x as TipagemRotas,Z as aleatorio,c as cacheM,S as cacheMFixo,W as cacheMemoria,v as camposComuns,X as criarFiltroDelta,ne as defineDayjsBr,P as erUuid,Pe as esperar,w as extensoes,T as iniciarDayjsBr,ge as iniciarFiltroDelta,de as link_paiol,_e as localValor,$e as nomeVariavel,be as objetoPg,ce as operadorFiltroDeltaDetalhes,O as operadores,g as paraObjetoRegistroPg,ve as pgObjeto,q as siglas_unidades_medida,ke as texto_busca,se as tipoArquivo,h as tipoUsuarioResiduos,B as tiposSituacoesElicencie,b as tx,Te as umaFuncao,De as umaVariavel,Me as unidades_medida,Ie as uuid,$ as uuidV3,J as uuidV4,ee as uuid_null,Ue as validarUuid,H as verCacheM,C as zColunaFiltroDelta,A as zCondicaoFiltroDelta,Re as zCoordenadas,V as zDocCnpj,Y as zDocCpf,Ye as zDocumento,ae as zFiltro,N as zFiltroDelta,D as zOperadorFiltroDelta,z as zOperadores}; +var g="ABCDEFGHIJKLMNOPQRSTUVWXYZ".split(""),H=e=>`eli-${Array.from({length:e||8}).map(()=>g[(999*Math.random()|0)%g.length]).join("")}`;var f={};globalThis.cacheMemoria_cache=f;var x=(e,o,a)=>{let n=typeof e=="string"?e:typeof e=="number"?String(e):encodeURIComponent(JSON.stringify(e)),t=a&&new Date().getTime()+a*1e3;o!==void 0&&(f[n]={valor:o,validade:t});let i=f[n];if(!(i?.validade&&i.validadef,E=x,ee=e=>o=>x(e,o);var re="00000000-0000-0000-0000-000000000000",h=(d=>(d.codigo="codigo",d.excluido="excluido",d.data_hora_criacao="data_hora_criacao",d.data_hora_atualizacao="data_hora_atualizacao",d.codigo_usuario_criacao="codigo_usuario_criacao",d.codigo_usuario_atualizacao="codigo_usuario_atualizacao",d.versao="versao",d))(h||{}),z=(o=>(o.token="token",o))(z||{}),O=(a=>(a.Usuario="usuario",a.Fornecedor="fornecedor",a))(O||{});import s from"zod";var T=(n=>(n["="]="=",n["!="]="!=",n[">"]=">",n[">="]=">=",n["<"]="<",n["<="]="<=",n.like="like",n.in="in",n.isNull="isNull",n))(T||{}),w=s.enum(["=","!=",">",">=","<","<=","like","in","isNull"]),ne=s.object({coluna:s.string(),valor:s.any(),operador:w,ou:s.boolean().optional()});var D=({dayjs:e,duration:o,isSameOrAfter:a,isSameOrBefore:n,minMax:t,relativeTime:i,timezone:m,utc:d,weekOfYear:b})=>(e.extend(d),e.extend(m),e.extend(b),e.extend(n),e.extend(a),e.extend(t),e.extend(i),e.extend(o),e.locale("pt-br"),e),de=D;var le="https://paiol.idz.one";var j=[{ext:"gif",tipo:"imagem",mime:"image/gif"},{ext:"jpg",tipo:"imagem",mime:"image/jpeg"},{ext:"jpeg",tipo:"imagem",mime:"image/jpeg"},{ext:"png",tipo:"imagem",mime:"image/png"},{ext:"bmp",tipo:"imagem",mime:"image/bmp"},{ext:"webp",tipo:"imagem",mime:"image/webp"},{ext:"tiff",tipo:"imagem",mime:"image/tiff"},{ext:"svg",tipo:"imagem",mime:"image/svg+xml"},{ext:"ico",tipo:"imagem",mime:"image/x-icon"},{ext:"pdf",tipo:"documento",mime:"application/pdf"},{ext:"doc",tipo:"documento",mime:"application/msword"},{ext:"docx",tipo:"documento",mime:"application/vnd.openxmlformats-officedocument.wordprocessingml.document"},{ext:"xls",tipo:"documento",mime:"application/vnd.ms-excel"},{ext:"xlsx",tipo:"documento",mime:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"},{ext:"ppt",tipo:"documento",mime:"application/vnd.ms-powerpoint"},{ext:"pptx",tipo:"documento",mime:"application/vnd.openxmlformats-officedocument.presentationml.presentation"},{ext:"txt",tipo:"documento",mime:"text/plain"},{ext:"odt",tipo:"documento",mime:"application/vnd.oasis.opendocument.text"},{ext:"ods",tipo:"documento",mime:"application/vnd.oasis.opendocument.spreadsheet"},{ext:"rtf",tipo:"documento",mime:"application/rtf"},{ext:"csv",tipo:"documento",mime:"text/csv"},{ext:"mp4",tipo:"v\xEDdeo",mime:"video/mp4"},{ext:"avi",tipo:"v\xEDdeo",mime:"video/x-msvideo"},{ext:"mkv",tipo:"v\xEDdeo",mime:"video/x-matroska"},{ext:"mov",tipo:"v\xEDdeo",mime:"video/quicktime"},{ext:"wmv",tipo:"v\xEDdeo",mime:"video/x-ms-wmv"},{ext:"flv",tipo:"v\xEDdeo",mime:"video/x-flv"},{ext:"webm",tipo:"v\xEDdeo",mime:"video/webm"},{ext:"3gp",tipo:"v\xEDdeo",mime:"video/3gpp"},{ext:"mpeg",tipo:"v\xEDdeo",mime:"video/mpeg"}],fe=e=>{let o=String(e||"").toLocaleLowerCase().split(".").pop();return j.find(n=>n.ext===o)?.tipo||"outros"};import l from"zod";var F=l.enum([">","<",">=","<=","=","!=","in","like","\u2229"]),xe={">":{rotulo:"Maior que",descricao:"O valor de A deve ser maior que o valor de B"},"<":{rotulo:"Menor que",descricao:"O valor de A deve ser menor que o valor de B"},">=":{rotulo:"Maior ou igual a",descricao:"O valor de A deve ser maior ou igual ao valor de B"},"<=":{rotulo:"Menor ou igual a",descricao:"O valor de A deve ser menor ou igual ao valor de B"},"=":{rotulo:"Igual a",descricao:"O valor de A deve ser igual ao valor de B"},"!=":{rotulo:"Diferente de",descricao:"O valor de A deve ser diferente do valor de B"},in:{rotulo:"Est\xE1 em",descricao:"O valor de A deve estar presente na cole\xE7\xE3o ou lista definida em B"},like:{rotulo:"Cont\xE9m",descricao:"O valor de A deve conter o texto informado em B"},"\u2229":{rotulo:"Interse\xE7\xE3o",descricao:"A e B devem possuir pelo menos um elemento em comum"}},C=/^\{[\w:]+\}$/,N=/^\w+(\.\w+)*$/,A=l.string().regex(N,"Coluna inv\xE1lida").describe("nome da coluna ou caminho aninhado do jsonb"),k=l.object({id:l.string().describe("id da condi\xE7\xE3o do filtro").regex(C,"O id deve seguir o formato {identificador}"),coluna:A,operador:F,valor:l.any().describe("valor de compara\xE7\xE3o")}),X=e=>{let a=(e.match(/\{[\w:]+\}|\bNAO\b|\bE\b|\bOU\b|\(|\)/g)||[]).join(""),n=e.replace(/\s+/g,""),t=a.replace(/\s+/g,"");if(n!==t)return!1;let i=e.replace(/\{[\w:]+\}/g,"true").replace(/\bNAO\b/g,"!").replace(/\bE\b/g,"&&").replace(/\bOU\b/g,"||");try{return new Function(`return (${i})`)(),!0}catch{return!1}},M=l.object({condicoes:l.array(k),formula:l.string().refine(X,{message:"F\xF3rmula inv\xE1lida. Use apenas refer\xEAncias de condi\xE7\xF5es {id} ou {id:sufixo}, operadores E/OU/NAO e par\xEAnteses."})}).superRefine((e,o)=>{let a=new Set(e.condicoes.map(t=>t.id)),n=e.formula.match(/\{[\w:]+\}/g)||[];for(let t of n)a.has(t)||o.addIssue({code:"custom",path:["formula"],message:`A refer\xEAncia ${t} n\xE3o existe em condicoes.`})}),B=e=>M.parse(e),_e=()=>({criarFiltroDelta:B});var ve=(e,o)=>{let a="localStorage"in globalThis?globalThis.localStorage:void 0;if(typeof a>"u")return null;let n=typeof e=="string"?e:encodeURIComponent(JSON.stringify(e));try{o!==void 0&&a.setItem(n,JSON.stringify(o));let t=a.getItem(n);if(t===null)return null;try{return JSON.parse(t)}catch{return t}}catch{return null}};var _=e=>{try{return Object.fromEntries(Object.entries(e).map(([o,a])=>[o,a===void 0||a==null||typeof a=="string"||typeof a=="number"||typeof a=="boolean"?a:JSON.stringify(a,null,2)]))}catch(o){throw new Error(`Erro na fun\xE7\xE3o paraObjetoRegistroPg: ${o.message} ${o.stack}`)}},he=_,ze=_;var P=(e=>(e["e-licencie"]="e-licencie",e["gov.e-licencie"]="gov.e-licencie",e))(P||{});var q=(r=>(r.modelo="000_modelo",r.vencida="100_vencida",r.expirado="200_expirado",r.alerta="300_alerta",r.protocoladafora="350_protocoladafora",r.protocolada="400_protocolada",r.protocoladaApenas="430_protocolada",r.protocolada_alteracao="450_protocolada",r.prazo="500_prazo",r.emitida="515_emitida",r.valida="518_valida",r.novo="520_novo",r.recebido="521_recebido",r.em_andamento="530_em_andamento",r.aguardando="530_aguardando",r.aguardandoresposta="540_aguardandoresposta",r.suspensaotemporaria="540_suspensaotemporaria",r.cancelada="550_cancelada",r.execucao="560_execucao",r.pendente="570_pendente",r.executadafora="600_executadafora",r.executada="700_executada",r.naoexecutada="701_naoexecutada",r.concluida="730_concluida",r.respondido_negado="740_respondido_negado",r.respondido_aceito="741_respondido_aceito",r.atendidoparcial="742_atendidoparcial",r.naoatendido="743_naoatendido",r.atendido="744_atendido",r.renovada="760_renovada",r.finalizada="800_finalizada",r.emitirnota="101_emitirnota",r.faturaatrasada="301_faturaatrasada",r.pagarfatura="302_pagarfatura",r.aguardandoconfirmacao="531_aguardandoconfirmacao",r.agendado="701_agendado",r.faturapaga="801_faturapaga",r.excluida="999_excluida",r.requerida="401_requerida",r.vigente="516_vigente",r.emrenovacao="402_emrenovacao",r.arquivada="801_arquivada",r.aguardando_sincronizacao="999_aguardando_sincronizacao",r.nao_conforme="710_nao_conforme",r.conforme="720_conforme",r.nao_aplicavel="730_nao_aplicavel",r.parcial="715_parcial",r))(q||{});var De=()=>"Ol\xE1 Mundo! (fun\xE7\xE3o)";var Fe="Ol\xE1 Mundo! (vari\xE1vel)";var Xe=(...e)=>e.map(o=>o==null?"":String(o).normalize("NFD").replace(/[\u0300-\u036f]/g,"").replace(/\s+/g," ").toLowerCase()).join(" ");var y=class{constructor({caminho:o,acaoIr:a,rotulo:n}){this._partesCaminho=[];this._acaoIr=a,this._partesCaminho=(Array.isArray(o)?o:[o]).filter(Boolean).map(t=>String(t)).flatMap(t=>t.split("/")).filter(Boolean),this.rotulo=n}get caminho(){return`/${this._partesCaminho.join("/")}`}set caminho(o){this._partesCaminho=o.split("/").filter(a=>a)}endereco(o,a){let n=typeof globalThis<"u"&&globalThis.window||void 0,t=new URL(n?n.location.href:"http://localhost");t.pathname=this.caminho,t.search="";let i=Object.entries(o);for(let[m,d]of i)t.searchParams.set(String(m),JSON.stringify(d));return t.hash="",a&&(t.hash=`#${t.search}`,t.search=""),t.href}ir(o){if(this._acaoIr)this._acaoIr(this.endereco({...o}));else{let a=typeof globalThis<"u"&&globalThis.window||void 0;a&&(a.location.href=this.endereco({...o}))}}parametros(o){let a=o?new URL(o):new URL(typeof globalThis<"u"&&globalThis.window?globalThis.window.location.href:"http://localhost"),n=a.searchParams,t=Object.fromEntries(n.entries()),i=a.hash;if(i){let m=Object.fromEntries(new URLSearchParams(i.slice(1)).entries());t={...t,...m}}for(let m in t)try{t[m]=JSON.parse(t[m])}catch{console.log(`[${m}|${t[m]}] n\xE3o \xE9 um json v\xE1lido.`)}return t}};var I=(i=>(i.UN="UN",i.KG="KG",i.TON="TON",i.g="g",i["M\xB3"]="M\xB3",i.Lt="Lt",i))(I||{}),Pe=[{sigla_unidade:"KG",nome:"Quilograma",sigla_normalizada:"KG",normalizar:e=>e,tipo:"massa"},{sigla_unidade:"g",nome:"Grama",sigla_normalizada:"KG",normalizar:e=>e/1e3,tipo:"massa"},{sigla_unidade:"TON",nome:"Tonelada",sigla_normalizada:"KG",normalizar:e=>e*1e3,tipo:"massa"},{sigla_unidade:"Lt",nome:"Litro",sigla_normalizada:"Lt",normalizar:e=>e,tipo:"volume"},{sigla_unidade:"M\xB3",nome:"Metro C\xFAbico",sigla_normalizada:"Lt",normalizar:e=>e*1e3,tipo:"volume"},{sigla_unidade:"UN",nome:"Unidade",sigla_normalizada:"UN",normalizar:e=>e,tipo:"unidade"}];import{NIL as U,v3 as L,v4 as $}from"uuid";var J=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,Ue=e=>J.test(String(e||"")),G=(e,o)=>L(typeof e=="string"?e:typeof e=="number"?String(e):JSON.stringify(e),o?G(o):U),R=$,Le=R;var Je=e=>new Promise(o=>setTimeout(()=>o(!0),e)),Ge=e=>Object.keys(e).join("/");import u from"zod";var Ve=u.object({formato:u.literal("decimal").default("decimal"),datum:u.literal("EPSG:4326").default("EPSG:4326"),latitude:u.number(),longitude:u.number()});import v from"zod";var K=/^\d{2}\.\d{3}\.\d{3}\/\d{4}-\d{2}$/,V=/^[A-Z0-9]{2}\.[A-Z0-9]{3}\.[A-Z0-9]{3}\/[A-Z0-9]{4}-\d{2}$/i,Y=Number(new Date().toISOString().slice(0,7).replace("-","")),Z=v.string().regex(Y<202407?K:V).describe("Documento (CNPJ) no formato XX.XXX.XXX/XXXX-XX"),Q=v.string().regex(/^\d{3}\.\d{3}\.\d{3}-\d{2}$/).describe("Documento (CPF) no formato XXX.XXX.XXX-XX"),Qe=Q.or(Z).describe("CPF ou CNPJ");import p from"zod";var c=e=>{if(typeof e=="number"||typeof e!="string")return e;let o=e;return o.includes(",")&&(o=o.replace(/\./g,"").replace(",",".")),o=o.replace(/[^0-9.]/g,""),o==""?null:Number(o)},Se=p.preprocess(c,p.number()),Ee=p.preprocess(c,p.number().positive()),eo=p.preprocess(c,p.number().int());export{P as Produtos,y as TipagemRotas,H as aleatorio,x as cacheM,ee as cacheMFixo,E as cacheMemoria,h as camposComuns,B as criarFiltroDelta,de as defineDayjsBr,J as erUuid,Je as esperar,j as extensoes,D as iniciarDayjsBr,_e as iniciarFiltroDelta,le as link_paiol,ve as localValor,Ge as nomeVariavel,ze as objetoPg,xe as operadorFiltroDeltaDetalhes,T as operadores,_ as paraObjetoRegistroPg,he as pgObjeto,I as siglas_unidades_medida,Xe as texto_busca,fe as tipoArquivo,O as tipoUsuarioResiduos,q as tiposSituacoesElicencie,z as tx,De as umaFuncao,Fe as umaVariavel,Pe as unidades_medida,Le as uuid,G as uuidV3,R as uuidV4,re as uuid_null,Ue as validarUuid,S as verCacheM,A as zColunaFiltroDelta,k as zCondicaoFiltroDelta,Ve as zCoordenadas,Z as zDocCnpj,Q as zDocCpf,Qe as zDocumento,ne as zFiltro,M as zFiltroDelta,Se as zNumero,eo as zNumeroInteiro,Ee as zNumeroPositivo,F as zOperadorFiltroDelta,w as zOperadores}; diff --git a/package.json b/package.json index ef9c30c..1d2dfa1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "p-comuns", - "version": "0.347.0", + "version": "0.348.0", "description": "", "main": "./dist-front/index.mjs", "module": "./dist-front/index.mjs", diff --git a/pacote.tgz b/pacote.tgz index 8d99726..a18073a 100644 Binary files a/pacote.tgz and b/pacote.tgz differ diff --git a/src/index.ts b/src/index.ts index 85148aa..cadd713 100755 --- a/src/index.ts +++ b/src/index.ts @@ -21,3 +21,4 @@ export * from "./uuid" export * from "./variaveisComuns" export * from "./zCoordenadas" export * from "./zDocumento" +export * from "./zodCustomizados" diff --git a/src/zodCustomizados.ts b/src/zodCustomizados.ts new file mode 100644 index 0000000..5bad656 --- /dev/null +++ b/src/zodCustomizados.ts @@ -0,0 +1,39 @@ +import z from "zod" + +const zPreprocessarNumero = (p: unknown) => { + if (typeof p === "number") return p + if (typeof p !== "string") return p + + let p2 = p + + if (p2.includes(",")) { + // ponto de milhar → remove; vírgula decimal → troca por ponto + p2 = p2.replace(/\./g, "").replace(",", ".") + } + + // remove tudo que não seja dígito ou ponto decimal + p2 = p2.replace(/[^0-9.]/g, "") + + if (p2 == "") return null + + return Number(p2) +} + +/** + * Schema numérico que aceita strings legadas e normaliza para `number`. + * + * O campo **é** um número. O `preprocess` resolve compatibilidade com dados + * antigos onde o frontend enviava strings formatadas (BR ou monetária). + * + * Formatos de entrada aceitos: + * - `10` → number direto + * - `10.1` → ponto decimal + * - `10,1` → vírgula decimal (BR) + * - `1.000,1` → milhar com ponto + vírgula decimal (BR) + * - `R$ 10,01` → prefixo monetário legado + */ +export const zNumero = z.preprocess(zPreprocessarNumero, z.number()) + +export const zNumeroPositivo = z.preprocess(zPreprocessarNumero, z.number().positive()) + +export const zNumeroInteiro = z.preprocess(zPreprocessarNumero, z.number().int())