@br-validators/core 1.9.0 → 1.10.0-data.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +57 -7
- package/dist/aeroportos.js +1 -1
- package/dist/anp-combustiveis.js +13523 -13795
- package/dist/anp-combustiveis.js.map +1 -1
- package/dist/bancos.js +3 -3
- package/dist/bancos.js.map +1 -1
- package/dist/batch.d.ts +24 -3
- package/dist/batch.js +16 -15
- package/dist/brcode.js +6 -6
- package/dist/cbo.js +1 -1
- package/dist/cep.js +6 -3
- package/dist/{chunk-DQPSNERX.js → chunk-2VHARM5W.js} +12 -11
- package/dist/chunk-2VHARM5W.js.map +1 -0
- package/dist/{chunk-GXCW6FM7.js → chunk-3KMDCHIE.js} +5 -5
- package/dist/{chunk-GXCW6FM7.js.map → chunk-3KMDCHIE.js.map} +1 -1
- package/dist/{chunk-F6LVFAJT.js → chunk-4NS47CJG.js} +3 -3
- package/dist/{chunk-F6LVFAJT.js.map → chunk-4NS47CJG.js.map} +1 -1
- package/dist/{chunk-GREFQOOJ.js → chunk-5BNMQJBF.js} +5 -5
- package/dist/{chunk-GREFQOOJ.js.map → chunk-5BNMQJBF.js.map} +1 -1
- package/dist/{chunk-MOMQLTSD.js → chunk-5Q4N2EZI.js} +11 -11
- package/dist/{chunk-MOMQLTSD.js.map → chunk-5Q4N2EZI.js.map} +1 -1
- package/dist/chunk-5V2TNYC7.js +3 -0
- package/dist/{chunk-KLPONHBL.js.map → chunk-5V2TNYC7.js.map} +1 -1
- package/dist/{chunk-5M4S6ZMM.js → chunk-62VSQ63D.js} +5 -5
- package/dist/{chunk-5M4S6ZMM.js.map → chunk-62VSQ63D.js.map} +1 -1
- package/dist/{chunk-YYHS5WQN.js → chunk-6BWOYNQD.js} +2 -2
- package/dist/{chunk-YYHS5WQN.js.map → chunk-6BWOYNQD.js.map} +1 -1
- package/dist/chunk-6LCZGDCZ.js +27862 -0
- package/dist/chunk-6LCZGDCZ.js.map +1 -0
- package/dist/{chunk-MSYTS5K7.js → chunk-6WBUKUHD.js} +3 -3
- package/dist/{chunk-MSYTS5K7.js.map → chunk-6WBUKUHD.js.map} +1 -1
- package/dist/{chunk-DS6MOO5K.js → chunk-7XVCTDJE.js} +6 -65
- package/dist/chunk-7XVCTDJE.js.map +1 -0
- package/dist/{chunk-4HQ4J2J5.js → chunk-A255RZZ7.js} +3 -3
- package/dist/{chunk-4HQ4J2J5.js.map → chunk-A255RZZ7.js.map} +1 -1
- package/dist/{chunk-KSDAKRG5.js → chunk-A2QZGUA2.js} +16 -11
- package/dist/chunk-A2QZGUA2.js.map +1 -0
- package/dist/chunk-AOBSYTR2.js +31 -0
- package/dist/chunk-AOBSYTR2.js.map +1 -0
- package/dist/{chunk-3FDHWX2H.js → chunk-BTRWDUZF.js} +3 -3
- package/dist/{chunk-3FDHWX2H.js.map → chunk-BTRWDUZF.js.map} +1 -1
- package/dist/{chunk-4ORSIPZU.js → chunk-BVZC4RES.js} +5 -5
- package/dist/{chunk-4ORSIPZU.js.map → chunk-BVZC4RES.js.map} +1 -1
- package/dist/{chunk-55IZCKNL.js → chunk-C4E2AE2A.js} +3 -3
- package/dist/{chunk-55IZCKNL.js.map → chunk-C4E2AE2A.js.map} +1 -1
- package/dist/{chunk-S6ZNVXSM.js → chunk-CAN4WCSR.js} +9 -9
- package/dist/{chunk-S6ZNVXSM.js.map → chunk-CAN4WCSR.js.map} +1 -1
- package/dist/{chunk-62P6SKG3.js → chunk-DABLVVDL.js} +23 -21
- package/dist/chunk-DABLVVDL.js.map +1 -0
- package/dist/{chunk-W5LOXC7J.js → chunk-DQQNXXGO.js} +12 -3
- package/dist/chunk-DQQNXXGO.js.map +1 -0
- package/dist/{chunk-56ZN3TBH.js → chunk-DXKHCIMV.js} +3 -3
- package/dist/{chunk-56ZN3TBH.js.map → chunk-DXKHCIMV.js.map} +1 -1
- package/dist/{chunk-CIOSYWV4.js → chunk-E65XWYIL.js} +3 -3
- package/dist/{chunk-CIOSYWV4.js.map → chunk-E65XWYIL.js.map} +1 -1
- package/dist/{chunk-5IYHOWQU.js → chunk-EZB3ROCN.js} +99 -13
- package/dist/chunk-EZB3ROCN.js.map +1 -0
- package/dist/chunk-FA5ZM5UA.js +63 -0
- package/dist/chunk-FA5ZM5UA.js.map +1 -0
- package/dist/{chunk-SRVFQ34Q.js → chunk-GIYVXSIG.js} +5 -5
- package/dist/{chunk-SRVFQ34Q.js.map → chunk-GIYVXSIG.js.map} +1 -1
- package/dist/{chunk-7HEMXLDS.js → chunk-GQRHLW5W.js} +3 -4
- package/dist/chunk-GQRHLW5W.js.map +1 -0
- package/dist/{chunk-ZL5RDZJM.js → chunk-HEPUV3XR.js} +3 -4
- package/dist/chunk-HEPUV3XR.js.map +1 -0
- package/dist/{chunk-WOIO7FLJ.js → chunk-HS54PUBT.js} +5 -5
- package/dist/{chunk-WOIO7FLJ.js.map → chunk-HS54PUBT.js.map} +1 -1
- package/dist/chunk-JUQMINSZ.js +52 -0
- package/dist/chunk-JUQMINSZ.js.map +1 -0
- package/dist/{chunk-DL4TSGE5.js → chunk-JZOS2MO7.js} +3 -3
- package/dist/{chunk-DL4TSGE5.js.map → chunk-JZOS2MO7.js.map} +1 -1
- package/dist/{chunk-2BNGYQFQ.js → chunk-KCRWHMDY.js} +3 -3
- package/dist/{chunk-2BNGYQFQ.js.map → chunk-KCRWHMDY.js.map} +1 -1
- package/dist/{chunk-W524B2G5.js → chunk-KKCC4DBM.js} +5 -5
- package/dist/{chunk-W524B2G5.js.map → chunk-KKCC4DBM.js.map} +1 -1
- package/dist/{chunk-UNBIJPJU.js → chunk-L3WG36Y4.js} +3 -3
- package/dist/{chunk-UNBIJPJU.js.map → chunk-L3WG36Y4.js.map} +1 -1
- package/dist/{chunk-BLSDFC3C.js → chunk-LGOVAHF6.js} +22 -4
- package/dist/chunk-LGOVAHF6.js.map +1 -0
- package/dist/{chunk-NQIKXTMI.js → chunk-LKDZEPWZ.js} +3 -3
- package/dist/{chunk-NQIKXTMI.js.map → chunk-LKDZEPWZ.js.map} +1 -1
- package/dist/chunk-LLJSXMO2.js +32 -0
- package/dist/chunk-LLJSXMO2.js.map +1 -0
- package/dist/{chunk-2RZXK6C3.js → chunk-MGFDTECS.js} +13 -32
- package/dist/chunk-MGFDTECS.js.map +1 -0
- package/dist/{chunk-JNAZI3HU.js → chunk-OOAVPAQO.js} +10 -9
- package/dist/chunk-OOAVPAQO.js.map +1 -0
- package/dist/{chunk-N2MDJI4B.js → chunk-PNLNKVA2.js} +3 -3
- package/dist/{chunk-N2MDJI4B.js.map → chunk-PNLNKVA2.js.map} +1 -1
- package/dist/{chunk-KVJL4MTV.js → chunk-PRSHGHAS.js} +10 -9
- package/dist/chunk-PRSHGHAS.js.map +1 -0
- package/dist/{chunk-RKL64IOG.js → chunk-Q6QX2OM6.js} +6 -6
- package/dist/{chunk-RKL64IOG.js.map → chunk-Q6QX2OM6.js.map} +1 -1
- package/dist/{chunk-FIZWWQ64.js → chunk-QEMI73EJ.js} +5 -5
- package/dist/{chunk-FIZWWQ64.js.map → chunk-QEMI73EJ.js.map} +1 -1
- package/dist/{chunk-MOND6K5Z.js → chunk-R2FVOWII.js} +5 -5
- package/dist/{chunk-MOND6K5Z.js.map → chunk-R2FVOWII.js.map} +1 -1
- package/dist/{chunk-6F7G6Z5B.js → chunk-TDOPVHOO.js} +5 -5
- package/dist/{chunk-6F7G6Z5B.js.map → chunk-TDOPVHOO.js.map} +1 -1
- package/dist/{chunk-BDYNBRT7.js → chunk-UG2YICWH.js} +3 -3
- package/dist/{chunk-BDYNBRT7.js.map → chunk-UG2YICWH.js.map} +1 -1
- package/dist/{chunk-S4WEXFHC.js → chunk-V5VCS6I5.js} +3 -3
- package/dist/{chunk-S4WEXFHC.js.map → chunk-V5VCS6I5.js.map} +1 -1
- package/dist/{chunk-UBIQFNIP.js → chunk-W6QYVABD.js} +5 -5
- package/dist/{chunk-UBIQFNIP.js.map → chunk-W6QYVABD.js.map} +1 -1
- package/dist/{chunk-X5TJG22D.js → chunk-WH4BS3CY.js} +6 -6
- package/dist/{chunk-X5TJG22D.js.map → chunk-WH4BS3CY.js.map} +1 -1
- package/dist/{chunk-TMHKYUPU.js → chunk-X2JMHCGK.js} +5 -5
- package/dist/{chunk-TMHKYUPU.js.map → chunk-X2JMHCGK.js.map} +1 -1
- package/dist/{chunk-HZ4UGWFE.js → chunk-Y5QZ3DEP.js} +3 -3
- package/dist/{chunk-HZ4UGWFE.js.map → chunk-Y5QZ3DEP.js.map} +1 -1
- package/dist/{chunk-N6CALNFU.js → chunk-YC4GZZJP.js} +3 -3
- package/dist/{chunk-N6CALNFU.js.map → chunk-YC4GZZJP.js.map} +1 -1
- package/dist/{chunk-IBXICIOY.js → chunk-YD7XRMF3.js} +5 -5
- package/dist/{chunk-IBXICIOY.js.map → chunk-YD7XRMF3.js.map} +1 -1
- package/dist/{chunk-56A6XUJP.js → chunk-YLHIA4IY.js} +5 -5
- package/dist/{chunk-56A6XUJP.js.map → chunk-YLHIA4IY.js.map} +1 -1
- package/dist/chunk-YQN6RNJN.js +30 -0
- package/dist/chunk-YQN6RNJN.js.map +1 -0
- package/dist/{chunk-SCBXZLZ5.js → chunk-ZKBSS65Z.js} +20 -15
- package/dist/{chunk-SCBXZLZ5.js.map → chunk-ZKBSS65Z.js.map} +1 -1
- package/dist/{chunk-GFRG6ZPY.js → chunk-ZO6RRZEP.js} +5 -5
- package/dist/{chunk-GFRG6ZPY.js.map → chunk-ZO6RRZEP.js.map} +1 -1
- package/dist/{chunk-LBR6N2CQ.js → chunk-ZWRPWGRT.js} +5 -5
- package/dist/{chunk-LBR6N2CQ.js.map → chunk-ZWRPWGRT.js.map} +1 -1
- package/dist/cnaes.js +1 -1
- package/dist/cnh.js +6 -3
- package/dist/cnpj-motivos.js +1 -1
- package/dist/cnpj.js +3 -3
- package/dist/compare.d.ts +2 -2
- package/dist/compare.js +18 -17
- package/dist/cpf.js +2 -3
- package/dist/csosn.d.ts +54 -0
- package/dist/csosn.js +96 -0
- package/dist/csosn.js.map +1 -0
- package/dist/data-catalog.js +43 -41
- package/dist/data-catalog.js.map +1 -1
- package/dist/detect.js +15 -14
- package/dist/diff.d.ts +2 -2
- package/dist/diff.js +18 -17
- package/dist/esocial.d.ts +29 -1
- package/dist/esocial.js +1720 -2
- package/dist/esocial.js.map +1 -1
- package/dist/generate.js +25 -24
- package/dist/ibge.js +2 -27860
- package/dist/ibge.js.map +1 -1
- package/dist/incoterms.js +1 -1
- package/dist/{index-CttohJuk.d.ts → index-CmpOAd8U.d.ts} +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.js +41 -40
- package/dist/index.js.map +1 -1
- package/dist/iss-municipal.d.ts +71 -3
- package/dist/iss-municipal.js +45366 -235
- package/dist/iss-municipal.js.map +1 -1
- package/dist/mask.js +24 -23
- package/dist/moedas.js +1 -1
- package/dist/natureza-juridica.js +1 -1
- package/dist/nbs.js +1 -1
- package/dist/ncm.js +1 -1
- package/dist/paises-bacen.js +1 -1
- package/dist/{pix-B8_PfK2D.d.ts → pix-DhAb6Iho.d.ts} +3 -1
- package/dist/pix.d.ts +1 -1
- package/dist/pix.js +8 -7
- package/dist/placa.js +6 -3
- package/dist/pncp-reference.js +1 -1
- package/dist/portos.js +1 -1
- package/dist/ptax.d.ts +12 -4
- package/dist/ptax.js +8367 -252
- package/dist/ptax.js.map +1 -1
- package/dist/renavam.js +6 -3
- package/dist/sanitize.d.ts +1 -1
- package/dist/sanitize.js +16 -12
- package/dist/selic.js +13 -13
- package/dist/selic.js.map +1 -1
- package/dist/telefone.js +3 -3
- package/dist/titulo-eleitor.js +6 -3
- package/dist/transparencia-snapshots.js +2 -2
- package/dist/transparencia-snapshots.js.map +1 -1
- package/dist/tse-municipios.js +1 -1
- package/dist/{types-CTLx5zMu.d.ts → types-DLuN-sEJ.d.ts} +1 -1
- package/package.json +5 -1
- package/dist/chunk-2RZXK6C3.js.map +0 -1
- package/dist/chunk-5IYHOWQU.js.map +0 -1
- package/dist/chunk-62P6SKG3.js.map +0 -1
- package/dist/chunk-7HEMXLDS.js.map +0 -1
- package/dist/chunk-BLSDFC3C.js.map +0 -1
- package/dist/chunk-DQPSNERX.js.map +0 -1
- package/dist/chunk-DS6MOO5K.js.map +0 -1
- package/dist/chunk-JNAZI3HU.js.map +0 -1
- package/dist/chunk-KLPONHBL.js +0 -3
- package/dist/chunk-KSDAKRG5.js.map +0 -1
- package/dist/chunk-KVJL4MTV.js.map +0 -1
- package/dist/chunk-RUQDVHR7.js +0 -14
- package/dist/chunk-RUQDVHR7.js.map +0 -1
- package/dist/chunk-VBFKN3NR.js +0 -14
- package/dist/chunk-VBFKN3NR.js.map +0 -1
- package/dist/chunk-W5LOXC7J.js.map +0 -1
- package/dist/chunk-YUAMWVIU.js +0 -30
- package/dist/chunk-YUAMWVIU.js.map +0 -1
- package/dist/chunk-ZL5RDZJM.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { validatePixKey, applyPixEvpKeyMask, applyPixEmailKeyMask, applyPixPhoneKeyMask, applyPixCnpjKeyMask, applyPixCpfKeyMask } from './chunk-
|
|
1
|
+
import { validatePixKey, applyPixEvpKeyMask, applyPixEmailKeyMask, applyPixPhoneKeyMask, applyPixCnpjKeyMask, applyPixCpfKeyMask } from './chunk-7XVCTDJE.js';
|
|
2
2
|
|
|
3
3
|
// src/format/pix.ts
|
|
4
4
|
function applyPixMask(keyType, value) {
|
|
@@ -24,5 +24,5 @@ function formatPixKey(input, options) {
|
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
export { formatPixKey };
|
|
27
|
-
//# sourceMappingURL=chunk-
|
|
28
|
-
//# sourceMappingURL=chunk-
|
|
27
|
+
//# sourceMappingURL=chunk-LKDZEPWZ.js.map
|
|
28
|
+
//# sourceMappingURL=chunk-LKDZEPWZ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/format/pix.ts"],"names":[],"mappings":";;;AAgBA,SAAS,YAAA,CAAa,SAAqB,KAAA,EAAuB;AAChE,EAAA,QAAQ,OAAA;AAAS,IACf,KAAK,KAAA;AACH,MAAA,OAAO,mBAAmB,KAAK,CAAA;AAAA,IACjC,KAAK,MAAA;AACH,MAAA,OAAO,oBAAoB,KAAK,CAAA;AAAA,IAClC,KAAK,OAAA;AACH,MAAA,OAAO,qBAAqB,KAAK,CAAA;AAAA,IACnC,KAAK,OAAA;AACH,MAAA,OAAO,qBAAqB,KAAK,CAAA;AAAA,IACnC,KAAK,KAAA;AACH,MAAA,OAAO,mBAAmB,KAAK,CAAA;AAAA;AAErC;AAEO,SAAS,YAAA,CAAa,OAAe,OAAA,EAA+C;AACzF,EAAA,MAAM,MAAA,GAAS,cAAA,CAAe,KAAA,EAAO,OAAO,CAAA;AAC5C,EAAA,IAAI,CAAC,OAAO,EAAA,EAAI;AACd,IAAA,OAAO,EAAE,IAAI,KAAA,EAAO,IAAA,EAAM,OAAO,IAAA,EAAM,OAAA,EAAS,OAAO,OAAA,EAAQ;AAAA,EACjE;AAEA,EAAA,OAAO,EAAE,IAAI,IAAA,EAAM,SAAA,EAAW,aAAa,MAAA,CAAO,OAAA,EAAS,MAAA,CAAO,KAAK,CAAA,EAAE;AAC3E","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/format/pix.ts"],"names":[],"mappings":";;;AAgBA,SAAS,YAAA,CAAa,SAAqB,KAAA,EAAuB;AAChE,EAAA,QAAQ,OAAA;AAAS,IACf,KAAK,KAAA;AACH,MAAA,OAAO,mBAAmB,KAAK,CAAA;AAAA,IACjC,KAAK,MAAA;AACH,MAAA,OAAO,oBAAoB,KAAK,CAAA;AAAA,IAClC,KAAK,OAAA;AACH,MAAA,OAAO,qBAAqB,KAAK,CAAA;AAAA,IACnC,KAAK,OAAA;AACH,MAAA,OAAO,qBAAqB,KAAK,CAAA;AAAA,IACnC,KAAK,KAAA;AACH,MAAA,OAAO,mBAAmB,KAAK,CAAA;AAAA;AAErC;AAEO,SAAS,YAAA,CAAa,OAAe,OAAA,EAA+C;AACzF,EAAA,MAAM,MAAA,GAAS,cAAA,CAAe,KAAA,EAAO,OAAO,CAAA;AAC5C,EAAA,IAAI,CAAC,OAAO,EAAA,EAAI;AACd,IAAA,OAAO,EAAE,IAAI,KAAA,EAAO,IAAA,EAAM,OAAO,IAAA,EAAM,OAAA,EAAS,OAAO,OAAA,EAAQ;AAAA,EACjE;AAEA,EAAA,OAAO,EAAE,IAAI,IAAA,EAAM,SAAA,EAAW,aAAa,MAAA,CAAO,OAAA,EAAS,MAAA,CAAO,KAAK,CAAA,EAAE;AAC3E","file":"chunk-LKDZEPWZ.js","sourcesContent":["/**\n * Format decorator — strip → validate → apply official mask (UC-003).\n * @see docs/use-cases/UC-003-format-document.md\n * @see docs/VALIDATION-RULES.md BR-GLOBAL-002\n */\nimport type { ValidatePixKeyOptions } from '../core/pix/index.js';\nimport { validatePixKey } from '../core/pix/index.js';\nimport {\n applyPixCnpjKeyMask,\n applyPixCpfKeyMask,\n applyPixEmailKeyMask,\n applyPixEvpKeyMask,\n applyPixPhoneKeyMask,\n} from '../core/pix/mask.js';\nimport type { FormatResult, PixKeyType } from '../types/validation-result.js';\n\nfunction applyPixMask(keyType: PixKeyType, value: string): string {\n switch (keyType) {\n case 'cpf':\n return applyPixCpfKeyMask(value);\n case 'cnpj':\n return applyPixCnpjKeyMask(value);\n case 'phone':\n return applyPixPhoneKeyMask(value);\n case 'email':\n return applyPixEmailKeyMask(value);\n case 'evp':\n return applyPixEvpKeyMask(value);\n }\n}\n\nexport function formatPixKey(input: string, options?: ValidatePixKeyOptions): FormatResult {\n const result = validatePixKey(input, options);\n if (!result.ok) {\n return { ok: false, code: result.code, message: result.message };\n }\n\n return { ok: true, formatted: applyPixMask(result.keyType, result.value) };\n}\n"]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
// src/core/cnpj/constants.ts
|
|
2
|
+
var CNPJ_LENGTH = 14;
|
|
3
|
+
var CNPJ_BASE_LENGTH = 12;
|
|
4
|
+
var CNPJ_DV1_WEIGHTS = [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];
|
|
5
|
+
var CNPJ_DV2_WEIGHTS = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];
|
|
6
|
+
var CNPJ_ALPHANUMERIC_PATTERN = /^[A-Z0-9]{12}[0-9]{2}$/;
|
|
7
|
+
var CNPJ_NUMERIC_PATTERN = /^[0-9]{14}$/;
|
|
8
|
+
var CNPJ_OFFICIAL_SOURCE_URL = "https://www.gov.br/receitafederal/pt-br/centrais-de-conteudo/publicacoes/perguntas-e-respostas/cnpj/cnpj-alfanumerico.pdf";
|
|
9
|
+
var CNPJ_GOLDEN_ALPHANUMERIC = "12ABC34501DE35";
|
|
10
|
+
var CNPJ_GOLDEN_NUMERIC = "11222333000181";
|
|
11
|
+
var CNPJ_GOLDEN_NUMERIC_MASKED = "11.222.333/0001-81";
|
|
12
|
+
var CNPJ_GOLDEN_ALPHANUMERIC_MASKED = "12.ABC.345/01DE-35";
|
|
13
|
+
var CNPJ_MASK_PATTERN = /^(.{2})(.{3})(.{3})(.{4})(.{2})$/;
|
|
14
|
+
|
|
15
|
+
// src/core/cnpj/detect.ts
|
|
16
|
+
function detectCnpjFormat(stripped) {
|
|
17
|
+
const upper = stripped.toUpperCase();
|
|
18
|
+
if (CNPJ_NUMERIC_PATTERN.test(upper)) {
|
|
19
|
+
return "numeric";
|
|
20
|
+
}
|
|
21
|
+
if (CNPJ_ALPHANUMERIC_PATTERN.test(upper)) {
|
|
22
|
+
return "alphanumeric";
|
|
23
|
+
}
|
|
24
|
+
return "unknown";
|
|
25
|
+
}
|
|
26
|
+
function containsLetter(value) {
|
|
27
|
+
return /[A-Za-z]/.test(value);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export { CNPJ_ALPHANUMERIC_PATTERN, CNPJ_BASE_LENGTH, CNPJ_DV1_WEIGHTS, CNPJ_DV2_WEIGHTS, CNPJ_GOLDEN_ALPHANUMERIC, CNPJ_GOLDEN_ALPHANUMERIC_MASKED, CNPJ_GOLDEN_NUMERIC, CNPJ_GOLDEN_NUMERIC_MASKED, CNPJ_LENGTH, CNPJ_MASK_PATTERN, CNPJ_NUMERIC_PATTERN, CNPJ_OFFICIAL_SOURCE_URL, containsLetter, detectCnpjFormat };
|
|
31
|
+
//# sourceMappingURL=chunk-LLJSXMO2.js.map
|
|
32
|
+
//# sourceMappingURL=chunk-LLJSXMO2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/core/cnpj/constants.ts","../src/core/cnpj/detect.ts"],"names":[],"mappings":";AAIO,IAAM,WAAA,GAAc;AACpB,IAAM,gBAAA,GAAmB;AAEzB,IAAM,gBAAA,GAAmB,CAAC,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,GAAG,CAAC;AAC5D,IAAM,gBAAA,GAAmB,CAAC,CAAA,EAAG,CAAA,EAAG,GAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,GAAG,CAAC;AAE/D,IAAM,yBAAA,GAA4B;AAClC,IAAM,oBAAA,GAAuB;AAE7B,IAAM,wBAAA,GACX;AAGK,IAAM,wBAAA,GAA2B;AAGjC,IAAM,mBAAA,GAAsB;AAC5B,IAAM,0BAAA,GAA6B;AACnC,IAAM,+BAAA,GAAkC;AAExC,IAAM,iBAAA,GAAoB;;;ACrB1B,SAAS,iBAAiB,QAAA,EAA8C;AAC7E,EAAA,MAAM,KAAA,GAAQ,SAAS,WAAA,EAAY;AACnC,EAAA,IAAI,oBAAA,CAAqB,IAAA,CAAK,KAAK,CAAA,EAAG;AACpC,IAAA,OAAO,SAAA;AAAA,EACT;AACA,EAAA,IAAI,yBAAA,CAA0B,IAAA,CAAK,KAAK,CAAA,EAAG;AACzC,IAAA,OAAO,cAAA;AAAA,EACT;AACA,EAAA,OAAO,SAAA;AACT;AAEO,SAAS,eAAe,KAAA,EAAwB;AACrD,EAAA,OAAO,UAAA,CAAW,KAAK,KAAK,CAAA;AAC9B","file":"chunk-LLJSXMO2.js","sourcesContent":["/**\n * CNPJ constants — modulo 11 weights from RFB FAQ Q14.\n * @see https://www.gov.br/receitafederal/pt-br/centrais-de-conteudo/publicacoes/perguntas-e-respostas/cnpj/cnpj-alfanumerico.pdf\n */\nexport const CNPJ_LENGTH = 14;\nexport const CNPJ_BASE_LENGTH = 12;\n\nexport const CNPJ_DV1_WEIGHTS = [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2] as const;\nexport const CNPJ_DV2_WEIGHTS = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2] as const;\n\nexport const CNPJ_ALPHANUMERIC_PATTERN = /^[A-Z0-9]{12}[0-9]{2}$/;\nexport const CNPJ_NUMERIC_PATTERN = /^[0-9]{14}$/;\n\nexport const CNPJ_OFFICIAL_SOURCE_URL =\n 'https://www.gov.br/receitafederal/pt-br/centrais-de-conteudo/publicacoes/perguntas-e-respostas/cnpj/cnpj-alfanumerico.pdf';\n\n/** RFB Q14 golden vector */\nexport const CNPJ_GOLDEN_ALPHANUMERIC = '12ABC34501DE35';\n\n/** Valid numeric CNPJ for regression tests (modulo 11) */\nexport const CNPJ_GOLDEN_NUMERIC = '11222333000181';\nexport const CNPJ_GOLDEN_NUMERIC_MASKED = '11.222.333/0001-81';\nexport const CNPJ_GOLDEN_ALPHANUMERIC_MASKED = '12.ABC.345/01DE-35';\n\nexport const CNPJ_MASK_PATTERN = /^(.{2})(.{3})(.{3})(.{4})(.{2})$/;\n","import { CNPJ_ALPHANUMERIC_PATTERN, CNPJ_NUMERIC_PATTERN } from './constants.js';\nimport type { DocumentFormat } from '../../types/validation-result.js';\n\nexport function detectCnpjFormat(stripped: string): DocumentFormat | 'unknown' {\n const upper = stripped.toUpperCase();\n if (CNPJ_NUMERIC_PATTERN.test(upper)) {\n return 'numeric';\n }\n if (CNPJ_ALPHANUMERIC_PATTERN.test(upper)) {\n return 'alphanumeric';\n }\n return 'unknown';\n}\n\nexport function containsLetter(value: string): boolean {\n return /[A-Za-z]/.test(value);\n}\n"]}
|
|
@@ -1,21 +1,8 @@
|
|
|
1
|
+
import { CNPJ_BASE_LENGTH, CNPJ_DV1_WEIGHTS, CNPJ_DV2_WEIGHTS, CNPJ_NUMERIC_PATTERN, containsLetter, CNPJ_MASK_PATTERN, CNPJ_LENGTH, CNPJ_ALPHANUMERIC_PATTERN, detectCnpjFormat } from './chunk-LLJSXMO2.js';
|
|
1
2
|
import { stripCnpj } from './chunk-EB3G4IG6.js';
|
|
2
3
|
import { computeCheckDigit } from './chunk-OTZHMJYE.js';
|
|
3
4
|
import { brandCnpj } from './chunk-BVMY4IWB.js';
|
|
4
5
|
|
|
5
|
-
// src/core/cnpj/constants.ts
|
|
6
|
-
var CNPJ_LENGTH = 14;
|
|
7
|
-
var CNPJ_BASE_LENGTH = 12;
|
|
8
|
-
var CNPJ_DV1_WEIGHTS = [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];
|
|
9
|
-
var CNPJ_DV2_WEIGHTS = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];
|
|
10
|
-
var CNPJ_ALPHANUMERIC_PATTERN = /^[A-Z0-9]{12}[0-9]{2}$/;
|
|
11
|
-
var CNPJ_NUMERIC_PATTERN = /^[0-9]{14}$/;
|
|
12
|
-
var CNPJ_OFFICIAL_SOURCE_URL = "https://www.gov.br/receitafederal/pt-br/centrais-de-conteudo/publicacoes/perguntas-e-respostas/cnpj/cnpj-alfanumerico.pdf";
|
|
13
|
-
var CNPJ_GOLDEN_ALPHANUMERIC = "12ABC34501DE35";
|
|
14
|
-
var CNPJ_GOLDEN_NUMERIC = "11222333000181";
|
|
15
|
-
var CNPJ_GOLDEN_NUMERIC_MASKED = "11.222.333/0001-81";
|
|
16
|
-
var CNPJ_GOLDEN_ALPHANUMERIC_MASKED = "12.ABC.345/01DE-35";
|
|
17
|
-
var CNPJ_MASK_PATTERN = /^(.{2})(.{3})(.{3})(.{4})(.{2})$/;
|
|
18
|
-
|
|
19
6
|
// src/core/cnpj/ascii-value.ts
|
|
20
7
|
function cnpjCharValue(char) {
|
|
21
8
|
return char.charCodeAt(0) - 48;
|
|
@@ -50,21 +37,6 @@ function isValidCnpjAlphanumeric(input) {
|
|
|
50
37
|
return canonical.slice(CNPJ_BASE_LENGTH) === dv1Expected + dv2Expected;
|
|
51
38
|
}
|
|
52
39
|
|
|
53
|
-
// src/core/cnpj/detect.ts
|
|
54
|
-
function detectCnpjFormat(stripped) {
|
|
55
|
-
const upper = stripped.toUpperCase();
|
|
56
|
-
if (CNPJ_NUMERIC_PATTERN.test(upper)) {
|
|
57
|
-
return "numeric";
|
|
58
|
-
}
|
|
59
|
-
if (CNPJ_ALPHANUMERIC_PATTERN.test(upper)) {
|
|
60
|
-
return "alphanumeric";
|
|
61
|
-
}
|
|
62
|
-
return "unknown";
|
|
63
|
-
}
|
|
64
|
-
function containsLetter(value) {
|
|
65
|
-
return /[A-Za-z]/.test(value);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
40
|
// src/core/cnpj/numeric.ts
|
|
69
41
|
function digitValue(char) {
|
|
70
42
|
return Number(char);
|
|
@@ -142,6 +114,15 @@ function validateCnpj(input) {
|
|
|
142
114
|
return failure("INVALID_CHECK_DIGIT", "CNPJ check digits are invalid");
|
|
143
115
|
}
|
|
144
116
|
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
117
|
+
// src/core/cnpj/mask.ts
|
|
118
|
+
function applyCnpjMask(canonical) {
|
|
119
|
+
const match = CNPJ_MASK_PATTERN.exec(canonical);
|
|
120
|
+
if (!match) {
|
|
121
|
+
throw new Error("CNPJ must have exactly 14 characters to apply mask");
|
|
122
|
+
}
|
|
123
|
+
return `${match[1]}.${match[2]}.${match[3]}/${match[4]}-${match[5]}`;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
export { applyCnpjMask, cnpjCharValue, isValidCnpj, isValidCnpjAlphanumeric, isValidCnpjNumeric, validateCnpj };
|
|
127
|
+
//# sourceMappingURL=chunk-MGFDTECS.js.map
|
|
128
|
+
//# sourceMappingURL=chunk-MGFDTECS.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/core/cnpj/ascii-value.ts","../src/core/cnpj/alphanumeric.ts","../src/core/cnpj/numeric.ts","../src/core/cnpj/index.ts","../src/core/cnpj/mask.ts"],"names":[],"mappings":"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","file":"chunk-MGFDTECS.js","sourcesContent":["/**\n * Character value for CNPJ modulo 11 — ASCII decimal minus 48 (RFB Q14).\n * @see https://www.gov.br/receitafederal/pt-br/centrais-de-conteudo/publicacoes/perguntas-e-respostas/cnpj/cnpj-alfanumerico.pdf\n */\nexport function cnpjCharValue(char: string): number {\n return char.charCodeAt(0) - 48;\n}\n","import { CNPJ_ALPHANUMERIC_PATTERN, CNPJ_BASE_LENGTH, CNPJ_DV1_WEIGHTS, CNPJ_DV2_WEIGHTS, CNPJ_LENGTH } from './constants.js';\nimport { cnpjCharValue } from './ascii-value.js';\nimport { computeCheckDigit } from './modulo11.js';\n\nfunction hasRepeatedChars(value: string): boolean {\n const first = value[0];\n for (let i = 1; i < value.length; i++) {\n if (value[i] !== first) {\n return false;\n }\n }\n return true;\n}\n\nfunction isValidStructure(canonical: string): boolean {\n return canonical.length === CNPJ_LENGTH && CNPJ_ALPHANUMERIC_PATTERN.test(canonical);\n}\n\n/**\n * Alphanumeric CNPJ — ASCII-48 modulo 11 (RFB Q14).\n * Golden vector: 12ABC34501DE35\n */\nexport function isValidCnpjAlphanumeric(input: string): boolean {\n const canonical = input.toUpperCase();\n if (!isValidStructure(canonical)) {\n return false;\n }\n if (hasRepeatedChars(canonical)) {\n return false;\n }\n\n const base = canonical.slice(0, CNPJ_BASE_LENGTH);\n const dv1Expected = String(computeCheckDigit(base, CNPJ_DV1_WEIGHTS, cnpjCharValue));\n const dv2Expected = String(\n computeCheckDigit(base + dv1Expected, CNPJ_DV2_WEIGHTS, cnpjCharValue),\n );\n\n return canonical.slice(CNPJ_BASE_LENGTH) === dv1Expected + dv2Expected;\n}\n","import { CNPJ_BASE_LENGTH, CNPJ_DV1_WEIGHTS, CNPJ_DV2_WEIGHTS, CNPJ_NUMERIC_PATTERN } from './constants.js';\nimport { computeCheckDigit } from './modulo11.js';\n\nfunction digitValue(char: string): number {\n return Number(char);\n}\n\nfunction hasRepeatedDigits(value: string): boolean {\n const first = value[0];\n for (let i = 1; i < value.length; i++) {\n if (value[i] !== first) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * Numeric CNPJ — traditional modulo 11 on digits (RFB Q6–Q7 coexistence).\n */\nexport function isValidCnpjNumeric(input: string): boolean {\n const canonical = input.replace(/\\D/g, '');\n if (!CNPJ_NUMERIC_PATTERN.test(canonical)) {\n return false;\n }\n if (hasRepeatedDigits(canonical)) {\n return false;\n }\n\n const base = canonical.slice(0, CNPJ_BASE_LENGTH);\n const dv1Expected = String(computeCheckDigit(base, CNPJ_DV1_WEIGHTS, digitValue));\n const dv2Expected = String(\n computeCheckDigit(base + dv1Expected, CNPJ_DV2_WEIGHTS, digitValue),\n );\n\n return canonical.slice(CNPJ_BASE_LENGTH) === dv1Expected + dv2Expected;\n}\n","import { stripCnpj } from '../../strip/cnpj.js';\nimport type { Cnpj, DocumentFormat, ValidationResult } from '../../types/validation-result.js';\nimport { brandCnpj } from '../../types/validation-result.js';\nimport { isValidCnpjAlphanumeric } from './alphanumeric.js';\nimport { CNPJ_LENGTH } from './constants.js';\nimport { containsLetter, detectCnpjFormat } from './detect.js';\nimport { isValidCnpjNumeric } from './numeric.js';\n\nexport { detectCnpjFormat, containsLetter } from './detect.js';\nexport { isValidCnpjAlphanumeric } from './alphanumeric.js';\nexport { isValidCnpjNumeric } from './numeric.js';\nexport {\n CNPJ_GOLDEN_ALPHANUMERIC,\n CNPJ_GOLDEN_ALPHANUMERIC_MASKED,\n CNPJ_GOLDEN_NUMERIC,\n CNPJ_GOLDEN_NUMERIC_MASKED,\n CNPJ_OFFICIAL_SOURCE_URL,\n} from './constants.js';\n\ntype FailedResult = Extract<ValidationResult, { ok: false }>;\n\nfunction failure(code: FailedResult['code'], message: string): FailedResult {\n return { ok: false, code, message };\n}\n\nfunction validateStructure(\n input: string,\n stripped: string,\n): FailedResult | { format: DocumentFormat } {\n if (stripped.length === 0) {\n return failure('EMPTY_INPUT', 'CNPJ input is empty');\n }\n\n const withoutMask = input.replace(/[.\\-/]/g, '');\n if (/[^A-Za-z0-9]/.test(withoutMask)) {\n return failure('INVALID_CHARACTER', 'CNPJ contains invalid characters');\n }\n\n if (stripped.length !== CNPJ_LENGTH) {\n return failure('INVALID_LENGTH', `CNPJ must have ${CNPJ_LENGTH} characters after normalization`);\n }\n\n const format = detectCnpjFormat(stripped);\n if (format === 'unknown') {\n return failure('UNSUPPORTED_FORMAT', 'CNPJ format is not numeric or alphanumeric');\n }\n\n return { format };\n}\n\nexport function isValidCnpj(input: string): boolean {\n return validateCnpj(input).ok;\n}\n\nexport function validateCnpj(input: string): ValidationResult<Cnpj> {\n const stripped = stripCnpj(input);\n const structural = validateStructure(input, stripped);\n if ('ok' in structural) {\n return structural;\n }\n\n const { format } = structural;\n\n if (format === 'numeric' || !containsLetter(stripped)) {\n if (isValidCnpjNumeric(stripped)) {\n return { ok: true, value: brandCnpj(stripped), format: 'numeric' };\n }\n if (format === 'numeric') {\n if (/^(\\d)\\1{13}$/.test(stripped)) {\n return failure('KNOWN_INVALID_PATTERN', 'CNPJ with all identical digits is invalid');\n }\n return failure('INVALID_CHECK_DIGIT', 'CNPJ check digits are invalid');\n }\n }\n\n if (isValidCnpjAlphanumeric(stripped)) {\n return { ok: true, value: brandCnpj(stripped), format: 'alphanumeric' };\n }\n\n return failure('INVALID_CHECK_DIGIT', 'CNPJ check digits are invalid');\n}\n","import { CNPJ_MASK_PATTERN } from './constants.js';\n\n/** Mask XX.XXX.XXX/XXXX-DD — same for numeric and alphanumeric (RFB Q21). */\nexport function applyCnpjMask(canonical: string): string {\n const match = CNPJ_MASK_PATTERN.exec(canonical);\n if (!match) {\n throw new Error('CNPJ must have exactly 14 characters to apply mask');\n }\n return `${match[1]}.${match[2]}.${match[3]}/${match[4]}-${match[5]}`;\n}\n"]}
|
|
@@ -7,27 +7,28 @@ var metadata_default = {
|
|
|
7
7
|
"https://olinda.bcb.gov.br/olinda/servico/PTAX/versao/v1/odata/CotacaoMoedaPeriodo(moeda=@moeda,dataInicial=@dataInicial,dataFinalCotacao=@dataFinalCotacao)",
|
|
8
8
|
"https://olinda.bcb.gov.br/olinda/servico/PTAX/versao/v1/swagger-ui3"
|
|
9
9
|
],
|
|
10
|
-
capturadoEm: "2026-06-
|
|
11
|
-
atualizadoEm: "2026-06-
|
|
10
|
+
capturadoEm: "2026-06-29",
|
|
11
|
+
atualizadoEm: "2026-06-29T12:17:21.591Z",
|
|
12
12
|
contagens: {
|
|
13
|
-
cotacoes:
|
|
13
|
+
cotacoes: 850,
|
|
14
14
|
moedas: 10,
|
|
15
|
-
diasUteis:
|
|
15
|
+
diasUteis: 85
|
|
16
16
|
},
|
|
17
17
|
alteracoes: {
|
|
18
18
|
adicionados: 0,
|
|
19
19
|
removidos: 0,
|
|
20
20
|
alterados: 0,
|
|
21
|
-
comparadoCom: "2026-06-
|
|
21
|
+
comparadoCom: "2026-06-29"
|
|
22
22
|
},
|
|
23
23
|
verificacao: {
|
|
24
24
|
agendamento: "diario",
|
|
25
25
|
workflow: "data-refresh-bot.yml",
|
|
26
|
-
ultimaExecucao: "2026-06-
|
|
26
|
+
ultimaExecucao: "2026-06-29T12:17:21.591Z"
|
|
27
27
|
},
|
|
28
|
-
documentacao: "docs/OFFICIAL-SOURCES.md#ptax-cotacoes"
|
|
28
|
+
documentacao: "docs/OFFICIAL-SOURCES.md#ptax-cotacoes",
|
|
29
|
+
janelaDiasUteis: 90
|
|
29
30
|
};
|
|
30
31
|
|
|
31
32
|
export { metadata_default };
|
|
32
|
-
//# sourceMappingURL=chunk-
|
|
33
|
-
//# sourceMappingURL=chunk-
|
|
33
|
+
//# sourceMappingURL=chunk-OOAVPAQO.js.map
|
|
34
|
+
//# sourceMappingURL=chunk-OOAVPAQO.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/ptax/data/metadata.json"],"names":[],"mappings":";AAAA,IAAA,gBAAA,GAAA;AAAA,EACE,EAAA,EAAM,MAAA;AAAA,EACN,IAAA,EAAQ,uBAAA;AAAA,EACR,KAAA,EAAS,sDAAA;AAAA,EACT,SAAA,EAAa;AAAA,IACX,6JAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,WAAA,EAAe,YAAA;AAAA,EACf,YAAA,EAAgB,0BAAA;AAAA,EAChB,SAAA,EAAa;AAAA,IACX,QAAA,EAAY,GAAA;AAAA,IACZ,MAAA,EAAU,EAAA;AAAA,IACV,SAAA,EAAa;AAAA,GACf;AAAA,EACA,UAAA,EAAc;AAAA,IACZ,WAAA,EAAe,CAAA;AAAA,IACf,SAAA,EAAa,CAAA;AAAA,IACb,SAAA,EAAa,CAAA;AAAA,IACb,YAAA,EAAgB;AAAA,GAClB;AAAA,EACA,WAAA,EAAe;AAAA,IACb,WAAA,EAAe,QAAA;AAAA,IACf,QAAA,EAAY,sBAAA;AAAA,IACZ,cAAA,EAAkB;AAAA,GACpB;AAAA,EACA,YAAA,EAAgB,wCAAA;AAAA,EAChB,eAAA,EAAmB;AACrB","file":"chunk-OOAVPAQO.js","sourcesContent":["{\n \"id\": \"ptax\",\n \"nome\": \"Bacen PTAX Fechamento\",\n \"fonte\": \"Banco Central Olinda PTAX API — Fechamento PTAX\",\n \"endpoints\": [\n \"https://olinda.bcb.gov.br/olinda/servico/PTAX/versao/v1/odata/CotacaoMoedaPeriodo(moeda=@moeda,dataInicial=@dataInicial,dataFinalCotacao=@dataFinalCotacao)\",\n \"https://olinda.bcb.gov.br/olinda/servico/PTAX/versao/v1/swagger-ui3\"\n ],\n \"capturadoEm\": \"2026-06-29\",\n \"atualizadoEm\": \"2026-06-29T12:17:21.591Z\",\n \"contagens\": {\n \"cotacoes\": 850,\n \"moedas\": 10,\n \"diasUteis\": 85\n },\n \"alteracoes\": {\n \"adicionados\": 0,\n \"removidos\": 0,\n \"alterados\": 0,\n \"comparadoCom\": \"2026-06-29\"\n },\n \"verificacao\": {\n \"agendamento\": \"diario\",\n \"workflow\": \"data-refresh-bot.yml\",\n \"ultimaExecucao\": \"2026-06-29T12:17:21.591Z\"\n },\n \"documentacao\": \"docs/OFFICIAL-SOURCES.md#ptax-cotacoes\",\n \"janelaDiasUteis\": 90\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { normalizeForPlatform } from './chunk-
|
|
1
|
+
import { normalizeForPlatform } from './chunk-ZKBSS65Z.js';
|
|
2
2
|
|
|
3
3
|
// src/diff/index.ts
|
|
4
4
|
function diff(a, b, type, options = {}) {
|
|
@@ -100,5 +100,5 @@ function splitFields(value, type) {
|
|
|
100
100
|
}
|
|
101
101
|
|
|
102
102
|
export { diff };
|
|
103
|
-
//# sourceMappingURL=chunk-
|
|
104
|
-
//# sourceMappingURL=chunk-
|
|
103
|
+
//# sourceMappingURL=chunk-PNLNKVA2.js.map
|
|
104
|
+
//# sourceMappingURL=chunk-PNLNKVA2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/diff/index.ts"],"names":[],"mappings":";;;AAkBO,SAAS,KACd,CAAA,EACA,CAAA,EACA,IAAA,EACA,OAAA,GAA2B,EAAC,EAChB;AACZ,EAAA,MAAM,IAAA,GAAO,oBAAA,CAAqB,CAAA,EAAG,IAAA,EAAM,OAAO,CAAA;AAClD,EAAA,MAAM,KAAA,GAAQ,oBAAA,CAAqB,CAAA,EAAG,IAAA,EAAM,OAAO,CAAA;AAEnD,EAAA,IAAI,SAAS,KAAA,EAAO;AAClB,IAAA,OAAO,EAAE,OAAA,EAAS,KAAA,EAAO,MAAA,EAAQ,EAAC,EAAE;AAAA,EACtC;AAEA,EAAA,MAAM,UAAA,GAAa,WAAA,CAAY,IAAA,EAAM,IAAI,CAAA;AACzC,EAAA,MAAM,WAAA,GAAc,WAAA,CAAY,KAAA,EAAO,IAAI,CAAA;AAC3C,EAAA,MAAM,IAAA,mBAAO,IAAI,GAAA,CAAI,CAAC,GAAG,MAAA,CAAO,IAAA,CAAK,UAAU,CAAA,EAAG,GAAG,MAAA,CAAO,IAAA,CAAK,WAAW,CAAC,CAAC,CAAA;AAC9E,EAAA,MAAM,SAAsB,EAAC;AAE7B,EAAA,KAAA,MAAW,SAAS,IAAA,EAAM;AACxB,IAAA,MAAM,SAAA,GAAY,WAAW,KAAK,CAAA;AAClC,IAAA,MAAM,UAAA,GAAa,YAAY,KAAK,CAAA;AACpC,IAAA,IAAI,cAAc,UAAA,EAAY;AAC5B,MAAA,MAAA,CAAO,KAAK,EAAE,KAAA,EAAO,GAAG,SAAA,EAAW,CAAA,EAAG,YAAY,CAAA;AAAA,IACpD;AAAA,EACF;AAEA,EAAA,OAAO,EAAE,OAAA,EAAS,MAAA,CAAO,MAAA,GAAS,GAAG,MAAA,EAAO;AAC9C;AAEA,SAAS,WAAA,CAAY,OAAe,IAAA,EAAoD;AACtF,EAAA,QAAQ,IAAA;AAAM,IACZ,KAAK,KAAA;AACH,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,KAAA,CAAM,KAAA,CAAM,CAAA,EAAG,CAAC,CAAA;AAAA,QACtB,EAAA,EAAI,KAAA,CAAM,KAAA,CAAM,CAAA,EAAG,EAAE;AAAA,OACvB;AAAA,IACF,KAAK,MAAA;AACH,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,KAAA,CAAM,KAAA,CAAM,CAAA,EAAG,EAAE,CAAA;AAAA,QACvB,EAAA,EAAI,KAAA,CAAM,KAAA,CAAM,EAAA,EAAI,EAAE;AAAA,OACxB;AAAA,IACF,KAAK,KAAA;AACH,MAAA,OAAO;AAAA,QACL,MAAA,EAAQ,KAAA,CAAM,KAAA,CAAM,CAAA,EAAG,CAAC,CAAA;AAAA,QACxB,MAAA,EAAQ,KAAA,CAAM,KAAA,CAAM,CAAA,EAAG,CAAC;AAAA,OAC1B;AAAA,IACF,KAAK,UAAA;AACH,MAAA,OAAO,EAAE,GAAA,EAAK,KAAA,CAAM,KAAA,CAAM,CAAA,EAAG,CAAC,CAAA,EAAG,UAAA,EAAY,KAAA,CAAM,KAAA,CAAM,CAAC,CAAA,EAAE;AAAA,IAC9D,KAAK,WAAA;AACH,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,KAAA,CAAM,KAAA,CAAM,CAAA,EAAG,EAAE,CAAA;AAAA,QACvB,EAAA,EAAI,KAAA,CAAM,KAAA,CAAM,EAAA,EAAI,EAAE;AAAA,OACxB;AAAA,IACF,KAAK,KAAA;AACH,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,KAAA,CAAM,KAAA,CAAM,CAAA,EAAG,CAAC,CAAA;AAAA,QACtB,GAAA,EAAK,KAAA,CAAM,KAAA,CAAM,CAAA,EAAG,EAAE,CAAA;AAAA,QACtB,GAAA,EAAK,KAAA,CAAM,KAAA,CAAM,EAAA,EAAI,EAAE;AAAA,OACzB;AAAA,IACF,KAAK,SAAA;AACH,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,KAAA,CAAM,KAAA,CAAM,CAAA,EAAG,EAAE,CAAA;AAAA,QACvB,EAAA,EAAI,KAAA,CAAM,KAAA,CAAM,EAAA,EAAI,EAAE;AAAA,OACxB;AAAA,IACF,KAAK,gBAAA;AACH,MAAA,OAAO;AAAA,QACL,UAAA,EAAY,KAAA,CAAM,KAAA,CAAM,CAAA,EAAG,CAAC,CAAA;AAAA,QAC5B,EAAA,EAAI,KAAA,CAAM,KAAA,CAAM,CAAA,EAAG,EAAE,CAAA;AAAA,QACrB,EAAA,EAAI,KAAA,CAAM,KAAA,CAAM,EAAA,EAAI,EAAE;AAAA,OACxB;AAAA,IACF,KAAK,mBAAA;AACH,MAAA,OAAO;AAAA,QACL,UAAA,EAAY,KAAA,CAAM,KAAA,CAAM,CAAA,EAAG,CAAC,CAAA;AAAA,QAC5B,WAAA,EAAa,KAAA,CAAM,KAAA,CAAM,CAAA,EAAG,CAAC,CAAA;AAAA,QAC7B,GAAA,EAAK,KAAA,CAAM,KAAA,CAAM,CAAA,EAAG,EAAE,CAAA;AAAA,QACtB,eAAA,EAAiB,KAAA,CAAM,KAAA,CAAM,EAAA,EAAI,EAAE,CAAA;AAAA,QACnC,QAAA,EAAU,KAAA,CAAM,KAAA,CAAM,EAAA,EAAI,EAAE,CAAA;AAAA,QAC5B,MAAA,EAAQ,KAAA,CAAM,KAAA,CAAM,EAAA,EAAI,EAAE;AAAA,OAC5B;AAAA,IACF,KAAK,WAAA;AACH,MAAA,OAAO;AAAA,QACL,GAAA,EAAK,KAAA,CAAM,KAAA,CAAM,CAAA,EAAG,CAAC,CAAA;AAAA,QACrB,IAAA,EAAM,KAAA,CAAM,KAAA,CAAM,CAAA,EAAG,CAAC,CAAA;AAAA,QACtB,IAAA,EAAM,KAAA,CAAM,KAAA,CAAM,CAAA,EAAG,EAAE,CAAA;AAAA,QACvB,GAAA,EAAK,KAAA,CAAM,KAAA,CAAM,EAAA,EAAI,EAAE,CAAA;AAAA,QACvB,KAAA,EAAO,KAAA,CAAM,KAAA,CAAM,EAAA,EAAI,EAAE,CAAA;AAAA,QACzB,GAAA,EAAK,KAAA,CAAM,KAAA,CAAM,EAAA,EAAI,EAAE,CAAA;AAAA,QACvB,MAAA,EAAQ,KAAA,CAAM,KAAA,CAAM,EAAA,EAAI,EAAE,CAAA;AAAA,QAC1B,GAAA,EAAK,KAAA,CAAM,KAAA,CAAM,EAAA,EAAI,EAAE,CAAA;AAAA,QACvB,GAAA,EAAK,KAAA,CAAM,KAAA,CAAM,EAAA,EAAI,EAAE;AAAA,OACzB;AAAA,IACF,KAAK,OAAA;AACH,MAAA,OAAO,EAAE,KAAA,EAAM;AAAA,IACjB,KAAK,QAAA;AAAA,IACL,KAAK,gBAAA;AAAA,IACL,KAAK,KAAA;AAAA,IACL,KAAK,oBAAA;AAAA,IACL,KAAK,mCAAA;AAAA,IACL,KAAK,IAAA;AAAA,IACL,KAAK,KAAA;AAAA,IACL,KAAK,QAAA;AACH,MAAA,OAAO,EAAE,KAAA,EAAM;AAAA,IACjB,SAAS;AAGP,MAAA,OAAO,EAAE,KAAA,EAAM;AAAA,IACjB;AAAA;AAEJ","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/diff/index.ts"],"names":[],"mappings":"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","file":"chunk-PNLNKVA2.js","sourcesContent":["/**\n * Field-level document diff — per-type structural decomposition (BR-DIFF-001).\n * @see docs/OFFICIAL-SOURCES.md\n */\nimport { normalizeForPlatform } from '../platform/normalize.js';\nimport type { PlatformDocumentType, PlatformOptions } from '../platform/types.js';\n\nexport type DiffField = {\n field: string;\n a: string;\n b: string;\n};\n\nexport type DiffResult = {\n changed: boolean;\n fields: DiffField[];\n};\n\nexport function diff(\n a: string,\n b: string,\n type: PlatformDocumentType,\n options: PlatformOptions = {},\n): DiffResult {\n const left = normalizeForPlatform(a, type, options);\n const right = normalizeForPlatform(b, type, options);\n\n if (left === right) {\n return { changed: false, fields: [] };\n }\n\n const leftFields = splitFields(left, type);\n const rightFields = splitFields(right, type);\n const keys = new Set([...Object.keys(leftFields), ...Object.keys(rightFields)]);\n const fields: DiffField[] = [];\n\n for (const field of keys) {\n const leftValue = leftFields[field];\n const rightValue = rightFields[field];\n if (leftValue !== rightValue) {\n fields.push({ field, a: leftValue, b: rightValue });\n }\n }\n\n return { changed: fields.length > 0, fields };\n}\n\nfunction splitFields(value: string, type: PlatformDocumentType): Record<string, string> {\n switch (type) {\n case 'cpf':\n return {\n base: value.slice(0, 9),\n dv: value.slice(9, 11),\n };\n case 'cnpj':\n return {\n base: value.slice(0, 12),\n dv: value.slice(12, 14),\n };\n case 'cep':\n return {\n prefix: value.slice(0, 5),\n suffix: value.slice(5, 8),\n };\n case 'telefone':\n return { ddd: value.slice(0, 2), subscriber: value.slice(2) };\n case 'pis-pasep':\n return {\n base: value.slice(0, 10),\n dv: value.slice(10, 11),\n };\n case 'cnh':\n return {\n base: value.slice(0, 9),\n dv1: value.slice(9, 10),\n dv2: value.slice(10, 11),\n };\n case 'renavam':\n return {\n base: value.slice(0, 10),\n dv: value.slice(10, 11),\n };\n case 'titulo-eleitor':\n return {\n sequential: value.slice(0, 8),\n uf: value.slice(8, 10),\n dv: value.slice(10, 12),\n };\n case 'processo-judicial':\n return {\n sequencial: value.slice(0, 7),\n checkDigits: value.slice(7, 9),\n ano: value.slice(9, 13),\n segmentoJustica: value.slice(13, 14),\n tribunal: value.slice(14, 16),\n origem: value.slice(16, 20),\n };\n case 'nfe-chave':\n return {\n cUF: value.slice(0, 2),\n aamm: value.slice(2, 6),\n cnpj: value.slice(6, 20),\n mod: value.slice(20, 22),\n serie: value.slice(22, 25),\n nNF: value.slice(25, 34),\n tpEmis: value.slice(34, 35),\n cNF: value.slice(35, 43),\n cDV: value.slice(43, 44),\n };\n case 'placa':\n return { value };\n case 'boleto':\n case 'cartao-credito':\n case 'ean':\n case 'inscricao-estadual':\n case 'inscricao-estadual-produtor-rural':\n case 'rg':\n case 'pix':\n case 'brcode':\n return { value };\n default: {\n const _exhaustive: never = type;\n void _exhaustive;\n return { value };\n }\n }\n}\n"]}
|
|
@@ -2,37 +2,38 @@
|
|
|
2
2
|
var metadata_default = {
|
|
3
3
|
id: "iss-municipal",
|
|
4
4
|
nome: "ISS municipal al\xEDquotas \u2014 partial embed (capitals + top PIB)",
|
|
5
|
-
fonte: "
|
|
5
|
+
fonte: "SIDRA 5938 PIB 2022 + LC 116 Art. 8 band + capital legislation seeds",
|
|
6
6
|
endpoints: [
|
|
7
7
|
"https://www.planalto.gov.br/ccivil_03/leis/lcp/lcp116.htm",
|
|
8
8
|
"https://www.ibge.gov.br/estatisticas/economicas/contas-nacionais/9088-produto-interno-bruto-dos-municipios.html",
|
|
9
9
|
"https://www.ibge.gov.br/explica/codigos-dos-municipios.php",
|
|
10
|
+
"https://apisidra.ibge.gov.br/values/t/5938/n6/all/v/37/p/2022",
|
|
10
11
|
"https://ftp.ibge.gov.br/Pib_Municipios/2022_2023/xlsx/tabelas_completas_2022.xlsx",
|
|
11
12
|
"https://www.cnm.org.br/",
|
|
12
13
|
"https://www.gov.br/nfse/pt-br"
|
|
13
14
|
],
|
|
14
15
|
capturadoEm: "2026-06-26",
|
|
15
|
-
atualizadoEm: "2026-06-
|
|
16
|
+
atualizadoEm: "2026-06-26T20:38:58.298Z",
|
|
16
17
|
contagens: {
|
|
17
|
-
municipios:
|
|
18
|
+
municipios: 500,
|
|
18
19
|
capitais: 27,
|
|
19
|
-
estimativaRows:
|
|
20
|
+
estimativaRows: 473
|
|
20
21
|
},
|
|
21
22
|
alteracoes: {
|
|
22
|
-
adicionados:
|
|
23
|
+
adicionados: 400,
|
|
23
24
|
removidos: 0,
|
|
24
25
|
alterados: 0,
|
|
25
|
-
comparadoCom:
|
|
26
|
+
comparadoCom: "2026-06-26"
|
|
26
27
|
},
|
|
27
28
|
verificacao: {
|
|
28
29
|
agendamento: "manual",
|
|
29
30
|
workflow: "data-refresh-bot.yml",
|
|
30
|
-
ultimaExecucao: "2026-06-
|
|
31
|
+
ultimaExecucao: "2026-06-26T20:38:58.298Z"
|
|
31
32
|
},
|
|
32
33
|
documentacao: "docs/OFFICIAL-SOURCES.md#iss-municipal",
|
|
33
34
|
estimativa: true
|
|
34
35
|
};
|
|
35
36
|
|
|
36
37
|
export { metadata_default };
|
|
37
|
-
//# sourceMappingURL=chunk-
|
|
38
|
-
//# sourceMappingURL=chunk-
|
|
38
|
+
//# sourceMappingURL=chunk-PRSHGHAS.js.map
|
|
39
|
+
//# sourceMappingURL=chunk-PRSHGHAS.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/iss-municipal/data/metadata.json"],"names":[],"mappings":";AAAA,IAAA,gBAAA,GAAA;AAAA,EACE,EAAA,EAAM,eAAA;AAAA,EACN,IAAA,EAAQ,sEAAA;AAAA,EACR,KAAA,EAAS,sEAAA;AAAA,EACT,SAAA,EAAa;AAAA,IACX,2DAAA;AAAA,IACA,iHAAA;AAAA,IACA,4DAAA;AAAA,IACA,+DAAA;AAAA,IACA,mFAAA;AAAA,IACA,yBAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,WAAA,EAAe,YAAA;AAAA,EACf,YAAA,EAAgB,0BAAA;AAAA,EAChB,SAAA,EAAa;AAAA,IACX,UAAA,EAAc,GAAA;AAAA,IACd,QAAA,EAAY,EAAA;AAAA,IACZ,cAAA,EAAkB;AAAA,GACpB;AAAA,EACA,UAAA,EAAc;AAAA,IACZ,WAAA,EAAe,GAAA;AAAA,IACf,SAAA,EAAa,CAAA;AAAA,IACb,SAAA,EAAa,CAAA;AAAA,IACb,YAAA,EAAgB;AAAA,GAClB;AAAA,EACA,WAAA,EAAe;AAAA,IACb,WAAA,EAAe,QAAA;AAAA,IACf,QAAA,EAAY,sBAAA;AAAA,IACZ,cAAA,EAAkB;AAAA,GACpB;AAAA,EACA,YAAA,EAAgB,wCAAA;AAAA,EAChB,UAAA,EAAc;AAChB","file":"chunk-PRSHGHAS.js","sourcesContent":["{\n \"id\": \"iss-municipal\",\n \"nome\": \"ISS municipal alíquotas — partial embed (capitals + top PIB)\",\n \"fonte\": \"SIDRA 5938 PIB 2022 + LC 116 Art. 8 band + capital legislation seeds\",\n \"endpoints\": [\n \"https://www.planalto.gov.br/ccivil_03/leis/lcp/lcp116.htm\",\n \"https://www.ibge.gov.br/estatisticas/economicas/contas-nacionais/9088-produto-interno-bruto-dos-municipios.html\",\n \"https://www.ibge.gov.br/explica/codigos-dos-municipios.php\",\n \"https://apisidra.ibge.gov.br/values/t/5938/n6/all/v/37/p/2022\",\n \"https://ftp.ibge.gov.br/Pib_Municipios/2022_2023/xlsx/tabelas_completas_2022.xlsx\",\n \"https://www.cnm.org.br/\",\n \"https://www.gov.br/nfse/pt-br\"\n ],\n \"capturadoEm\": \"2026-06-26\",\n \"atualizadoEm\": \"2026-06-26T20:38:58.298Z\",\n \"contagens\": {\n \"municipios\": 500,\n \"capitais\": 27,\n \"estimativaRows\": 473\n },\n \"alteracoes\": {\n \"adicionados\": 400,\n \"removidos\": 0,\n \"alterados\": 0,\n \"comparadoCom\": \"2026-06-26\"\n },\n \"verificacao\": {\n \"agendamento\": \"manual\",\n \"workflow\": \"data-refresh-bot.yml\",\n \"ultimaExecucao\": \"2026-06-26T20:38:58.298Z\"\n },\n \"documentacao\": \"docs/OFFICIAL-SOURCES.md#iss-municipal\",\n \"estimativa\": true\n}\n"]}
|
|
@@ -9,8 +9,8 @@ var metadata_default = {
|
|
|
9
9
|
"https://www3.bcb.gov.br/sgspub/consultarvalores/consultarValoresSeries.do?method=consultarGraficoPorId&hdOidSeriesSelecionadas=432",
|
|
10
10
|
"https://www.bcb.gov.br/controleinflacao/copom"
|
|
11
11
|
],
|
|
12
|
-
capturadoEm: "2026-06-
|
|
13
|
-
atualizadoEm: "2026-06-
|
|
12
|
+
capturadoEm: "2026-06-29",
|
|
13
|
+
atualizadoEm: "2026-06-29T12:17:23.134Z",
|
|
14
14
|
contagens: {
|
|
15
15
|
observacoes: 90,
|
|
16
16
|
dias: 90
|
|
@@ -19,16 +19,16 @@ var metadata_default = {
|
|
|
19
19
|
adicionados: 0,
|
|
20
20
|
removidos: 0,
|
|
21
21
|
alterados: 0,
|
|
22
|
-
comparadoCom: "2026-06-
|
|
22
|
+
comparadoCom: "2026-06-29"
|
|
23
23
|
},
|
|
24
24
|
verificacao: {
|
|
25
25
|
agendamento: "diario",
|
|
26
26
|
workflow: "data-refresh-bot.yml",
|
|
27
|
-
ultimaExecucao: "2026-06-
|
|
27
|
+
ultimaExecucao: "2026-06-29T12:17:23.134Z"
|
|
28
28
|
},
|
|
29
29
|
documentacao: "docs/OFFICIAL-SOURCES.md#selic-meta-sgs-432"
|
|
30
30
|
};
|
|
31
31
|
|
|
32
32
|
export { metadata_default };
|
|
33
|
-
//# sourceMappingURL=chunk-
|
|
34
|
-
//# sourceMappingURL=chunk-
|
|
33
|
+
//# sourceMappingURL=chunk-Q6QX2OM6.js.map
|
|
34
|
+
//# sourceMappingURL=chunk-Q6QX2OM6.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/selic/data/metadata.json"],"names":[],"mappings":";AAAA,IAAA,gBAAA,GAAA;AAAA,EACE,EAAA,EAAM,OAAA;AAAA,EACN,IAAA,EAAQ,4CAAA;AAAA,EACR,KAAA,EAAS,0DAAA;AAAA,EACT,SAAA,EAAa;AAAA,IACX,4FAAA;AAAA,IACA,sEAAA;AAAA,IACA,oIAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,WAAA,EAAe,YAAA;AAAA,EACf,YAAA,EAAgB,0BAAA;AAAA,EAChB,SAAA,EAAa;AAAA,IACX,WAAA,EAAe,EAAA;AAAA,IACf,IAAA,EAAQ;AAAA,GACV;AAAA,EACA,UAAA,EAAc;AAAA,IACZ,WAAA,EAAe,CAAA;AAAA,IACf,SAAA,EAAa,CAAA;AAAA,IACb,SAAA,EAAa,CAAA;AAAA,IACb,YAAA,EAAgB;AAAA,GAClB;AAAA,EACA,WAAA,EAAe;AAAA,IACb,WAAA,EAAe,QAAA;AAAA,IACf,QAAA,EAAY,sBAAA;AAAA,IACZ,cAAA,EAAkB;AAAA,GACpB;AAAA,EACA,YAAA,EAAgB;AAClB","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/selic/data/metadata.json"],"names":[],"mappings":";AAAA,IAAA,gBAAA,GAAA;AAAA,EACE,EAAA,EAAM,OAAA;AAAA,EACN,IAAA,EAAQ,4CAAA;AAAA,EACR,KAAA,EAAS,0DAAA;AAAA,EACT,SAAA,EAAa;AAAA,IACX,4FAAA;AAAA,IACA,sEAAA;AAAA,IACA,oIAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,WAAA,EAAe,YAAA;AAAA,EACf,YAAA,EAAgB,0BAAA;AAAA,EAChB,SAAA,EAAa;AAAA,IACX,WAAA,EAAe,EAAA;AAAA,IACf,IAAA,EAAQ;AAAA,GACV;AAAA,EACA,UAAA,EAAc;AAAA,IACZ,WAAA,EAAe,CAAA;AAAA,IACf,SAAA,EAAa,CAAA;AAAA,IACb,SAAA,EAAa,CAAA;AAAA,IACb,YAAA,EAAgB;AAAA,GAClB;AAAA,EACA,WAAA,EAAe;AAAA,IACb,WAAA,EAAe,QAAA;AAAA,IACf,QAAA,EAAY,sBAAA;AAAA,IACZ,cAAA,EAAkB;AAAA,GACpB;AAAA,EACA,YAAA,EAAgB;AAClB","file":"chunk-Q6QX2OM6.js","sourcesContent":["{\n \"id\": \"selic\",\n \"nome\": \"Bacen SGS — Meta Selic (série 432)\",\n \"fonte\": \"Banco Central — Taxa meta Selic definida pelo Copom\",\n \"endpoints\": [\n \"https://dadosabertos.bcb.gov.br/dataset/432-taxa-de-juros---meta-selic-definida-pelo-copom\",\n \"https://api.bcb.gov.br/dados/serie/bcdata.sgs.432/dados?formato=json\",\n \"https://www3.bcb.gov.br/sgspub/consultarvalores/consultarValoresSeries.do?method=consultarGraficoPorId&hdOidSeriesSelecionadas=432\",\n \"https://www.bcb.gov.br/controleinflacao/copom\"\n ],\n \"capturadoEm\": \"2026-06-29\",\n \"atualizadoEm\": \"2026-06-29T12:17:23.134Z\",\n \"contagens\": {\n \"observacoes\": 90,\n \"dias\": 90\n },\n \"alteracoes\": {\n \"adicionados\": 0,\n \"removidos\": 0,\n \"alterados\": 0,\n \"comparadoCom\": \"2026-06-29\"\n },\n \"verificacao\": {\n \"agendamento\": \"diario\",\n \"workflow\": \"data-refresh-bot.yml\",\n \"ultimaExecucao\": \"2026-06-29T12:17:23.134Z\"\n },\n \"documentacao\": \"docs/OFFICIAL-SOURCES.md#selic-meta-sgs-432\"\n}\n"]}
|
|
@@ -6,8 +6,8 @@ var metadata_default = {
|
|
|
6
6
|
endpoints: [
|
|
7
7
|
"https://www.gov.br/antaq/pt-br/central-de-conteudos/Instalaesporturias06052025.zip"
|
|
8
8
|
],
|
|
9
|
-
capturadoEm: "2026-06-
|
|
10
|
-
atualizadoEm: "2026-06-
|
|
9
|
+
capturadoEm: "2026-06-29",
|
|
10
|
+
atualizadoEm: "2026-06-29T12:48:01.388Z",
|
|
11
11
|
contagens: {
|
|
12
12
|
portos: 1094
|
|
13
13
|
},
|
|
@@ -20,11 +20,11 @@ var metadata_default = {
|
|
|
20
20
|
verificacao: {
|
|
21
21
|
agendamento: "diario",
|
|
22
22
|
workflow: "data-refresh-bot.yml",
|
|
23
|
-
ultimaExecucao: "2026-06-
|
|
23
|
+
ultimaExecucao: "2026-06-29T12:48:01.388Z"
|
|
24
24
|
},
|
|
25
25
|
documentacao: "docs/OFFICIAL-SOURCES.md#portos"
|
|
26
26
|
};
|
|
27
27
|
|
|
28
28
|
export { metadata_default };
|
|
29
|
-
//# sourceMappingURL=chunk-
|
|
30
|
-
//# sourceMappingURL=chunk-
|
|
29
|
+
//# sourceMappingURL=chunk-QEMI73EJ.js.map
|
|
30
|
+
//# sourceMappingURL=chunk-QEMI73EJ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/portos/data/metadata.json"],"names":[],"mappings":";AAAA,IAAA,gBAAA,GAAA;AAAA,EACE,EAAA,EAAM,QAAA;AAAA,EACN,IAAA,EAAQ,0BAAA;AAAA,EACR,KAAA,EAAS,uEAAA;AAAA,EACT,SAAA,EAAa;AAAA,IACX;AAAA,GACF;AAAA,EACA,WAAA,EAAe,YAAA;AAAA,EACf,YAAA,EAAgB,0BAAA;AAAA,EAChB,SAAA,EAAa;AAAA,IACX,MAAA,EAAU;AAAA,GACZ;AAAA,EACA,UAAA,EAAc;AAAA,IACZ,WAAA,EAAe,CAAA;AAAA,IACf,SAAA,EAAa,CAAA;AAAA,IACb,SAAA,EAAa,CAAA;AAAA,IACb,YAAA,EAAgB;AAAA,GAClB;AAAA,EACA,WAAA,EAAe;AAAA,IACb,WAAA,EAAe,QAAA;AAAA,IACf,QAAA,EAAY,sBAAA;AAAA,IACZ,cAAA,EAAkB;AAAA,GACpB;AAAA,EACA,YAAA,EAAgB;AAClB","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/portos/data/metadata.json"],"names":[],"mappings":";AAAA,IAAA,gBAAA,GAAA;AAAA,EACE,EAAA,EAAM,QAAA;AAAA,EACN,IAAA,EAAQ,0BAAA;AAAA,EACR,KAAA,EAAS,uEAAA;AAAA,EACT,SAAA,EAAa;AAAA,IACX;AAAA,GACF;AAAA,EACA,WAAA,EAAe,YAAA;AAAA,EACf,YAAA,EAAgB,0BAAA;AAAA,EAChB,SAAA,EAAa;AAAA,IACX,MAAA,EAAU;AAAA,GACZ;AAAA,EACA,UAAA,EAAc;AAAA,IACZ,WAAA,EAAe,CAAA;AAAA,IACf,SAAA,EAAa,CAAA;AAAA,IACb,SAAA,EAAa,CAAA;AAAA,IACb,YAAA,EAAgB;AAAA,GAClB;AAAA,EACA,WAAA,EAAe;AAAA,IACb,WAAA,EAAe,QAAA;AAAA,IACf,QAAA,EAAY,sBAAA;AAAA,IACZ,cAAA,EAAkB;AAAA,GACpB;AAAA,EACA,YAAA,EAAgB;AAClB","file":"chunk-QEMI73EJ.js","sourcesContent":["{\n \"id\": \"portos\",\n \"nome\": \"ANTAQ port installations\",\n \"fonte\": \"ANTAQ — Instalações Portuárias Outorgadas (Portos.xlsx)\",\n \"endpoints\": [\n \"https://www.gov.br/antaq/pt-br/central-de-conteudos/Instalaesporturias06052025.zip\"\n ],\n \"capturadoEm\": \"2026-06-29\",\n \"atualizadoEm\": \"2026-06-29T12:48:01.388Z\",\n \"contagens\": {\n \"portos\": 1094\n },\n \"alteracoes\": {\n \"adicionados\": 0,\n \"removidos\": 0,\n \"alterados\": 0,\n \"comparadoCom\": \"2026-06-26\"\n },\n \"verificacao\": {\n \"agendamento\": \"diario\",\n \"workflow\": \"data-refresh-bot.yml\",\n \"ultimaExecucao\": \"2026-06-29T12:48:01.388Z\"\n },\n \"documentacao\": \"docs/OFFICIAL-SOURCES.md#portos\"\n}\n"]}
|
|
@@ -6,8 +6,8 @@ var metadata_default = {
|
|
|
6
6
|
endpoints: [
|
|
7
7
|
"https://servicodados.ibge.gov.br/api/v2/cnae/subclasses"
|
|
8
8
|
],
|
|
9
|
-
capturadoEm: "2026-06-
|
|
10
|
-
atualizadoEm: "2026-06-
|
|
9
|
+
capturadoEm: "2026-06-29",
|
|
10
|
+
atualizadoEm: "2026-06-29T12:17:47.759Z",
|
|
11
11
|
contagens: {
|
|
12
12
|
cnaes: 1332
|
|
13
13
|
},
|
|
@@ -20,11 +20,11 @@ var metadata_default = {
|
|
|
20
20
|
verificacao: {
|
|
21
21
|
agendamento: "diario",
|
|
22
22
|
workflow: "data-refresh-bot.yml",
|
|
23
|
-
ultimaExecucao: "2026-06-
|
|
23
|
+
ultimaExecucao: "2026-06-29T12:17:47.759Z"
|
|
24
24
|
},
|
|
25
25
|
documentacao: "docs/OFFICIAL-SOURCES.md#cnae-economic-activity"
|
|
26
26
|
};
|
|
27
27
|
|
|
28
28
|
export { metadata_default };
|
|
29
|
-
//# sourceMappingURL=chunk-
|
|
30
|
-
//# sourceMappingURL=chunk-
|
|
29
|
+
//# sourceMappingURL=chunk-R2FVOWII.js.map
|
|
30
|
+
//# sourceMappingURL=chunk-R2FVOWII.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cnaes/data/metadata.json"],"names":[],"mappings":";AAAA,IAAA,gBAAA,GAAA;AAAA,EACE,EAAA,EAAM,OAAA;AAAA,EACN,IAAA,EAAQ,0BAAA;AAAA,EACR,KAAA,EAAS,8BAAA;AAAA,EACT,SAAA,EAAa;AAAA,IACX;AAAA,GACF;AAAA,EACA,WAAA,EAAe,YAAA;AAAA,EACf,YAAA,EAAgB,0BAAA;AAAA,EAChB,SAAA,EAAa;AAAA,IACX,KAAA,EAAS;AAAA,GACX;AAAA,EACA,UAAA,EAAc;AAAA,IACZ,WAAA,EAAe,CAAA;AAAA,IACf,SAAA,EAAa,CAAA;AAAA,IACb,SAAA,EAAa,CAAA;AAAA,IACb,YAAA,EAAgB;AAAA,GAClB;AAAA,EACA,WAAA,EAAe;AAAA,IACb,WAAA,EAAe,QAAA;AAAA,IACf,QAAA,EAAY,sBAAA;AAAA,IACZ,cAAA,EAAkB;AAAA,GACpB;AAAA,EACA,YAAA,EAAgB;AAClB","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/cnaes/data/metadata.json"],"names":[],"mappings":";AAAA,IAAA,gBAAA,GAAA;AAAA,EACE,EAAA,EAAM,OAAA;AAAA,EACN,IAAA,EAAQ,0BAAA;AAAA,EACR,KAAA,EAAS,8BAAA;AAAA,EACT,SAAA,EAAa;AAAA,IACX;AAAA,GACF;AAAA,EACA,WAAA,EAAe,YAAA;AAAA,EACf,YAAA,EAAgB,0BAAA;AAAA,EAChB,SAAA,EAAa;AAAA,IACX,KAAA,EAAS;AAAA,GACX;AAAA,EACA,UAAA,EAAc;AAAA,IACZ,WAAA,EAAe,CAAA;AAAA,IACf,SAAA,EAAa,CAAA;AAAA,IACb,SAAA,EAAa,CAAA;AAAA,IACb,YAAA,EAAgB;AAAA,GAClB;AAAA,EACA,WAAA,EAAe;AAAA,IACb,WAAA,EAAe,QAAA;AAAA,IACf,QAAA,EAAY,sBAAA;AAAA,IACZ,cAAA,EAAkB;AAAA,GACpB;AAAA,EACA,YAAA,EAAgB;AAClB","file":"chunk-R2FVOWII.js","sourcesContent":["{\n \"id\": \"cnaes\",\n \"nome\": \"IBGE CNAE 2.3 Subclasses\",\n \"fonte\": \"IBGE API v2 /cnae/subclasses\",\n \"endpoints\": [\n \"https://servicodados.ibge.gov.br/api/v2/cnae/subclasses\"\n ],\n \"capturadoEm\": \"2026-06-29\",\n \"atualizadoEm\": \"2026-06-29T12:17:47.759Z\",\n \"contagens\": {\n \"cnaes\": 1332\n },\n \"alteracoes\": {\n \"adicionados\": 0,\n \"removidos\": 0,\n \"alterados\": 0,\n \"comparadoCom\": \"2026-06-26\"\n },\n \"verificacao\": {\n \"agendamento\": \"diario\",\n \"workflow\": \"data-refresh-bot.yml\",\n \"ultimaExecucao\": \"2026-06-29T12:17:47.759Z\"\n },\n \"documentacao\": \"docs/OFFICIAL-SOURCES.md#cnae-economic-activity\"\n}\n"]}
|
|
@@ -8,8 +8,8 @@ var metadata_default = {
|
|
|
8
8
|
"https://api.portaldatransparencia.gov.br/v3/api-docs",
|
|
9
9
|
"https://portaldatransparencia.gov.br/"
|
|
10
10
|
],
|
|
11
|
-
capturadoEm: "2026-06-
|
|
12
|
-
atualizadoEm: "2026-06-
|
|
11
|
+
capturadoEm: "2026-06-29",
|
|
12
|
+
atualizadoEm: "2026-06-29T12:48:08.458Z",
|
|
13
13
|
contagens: {
|
|
14
14
|
endpoints: 8,
|
|
15
15
|
queryAdapter: 7
|
|
@@ -23,11 +23,11 @@ var metadata_default = {
|
|
|
23
23
|
verificacao: {
|
|
24
24
|
agendamento: "diario",
|
|
25
25
|
workflow: "data-refresh-bot.yml",
|
|
26
|
-
ultimaExecucao: "2026-06-
|
|
26
|
+
ultimaExecucao: "2026-06-29T12:48:08.458Z"
|
|
27
27
|
},
|
|
28
28
|
documentacao: "docs/OFFICIAL-SOURCES.md#portal-transparencia"
|
|
29
29
|
};
|
|
30
30
|
|
|
31
31
|
export { metadata_default };
|
|
32
|
-
//# sourceMappingURL=chunk-
|
|
33
|
-
//# sourceMappingURL=chunk-
|
|
32
|
+
//# sourceMappingURL=chunk-TDOPVHOO.js.map
|
|
33
|
+
//# sourceMappingURL=chunk-TDOPVHOO.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/transparencia-snapshots/data/metadata.json"],"names":[],"mappings":";AAAA,IAAA,gBAAA,GAAA;AAAA,EACE,EAAA,EAAM,yBAAA;AAAA,EACN,IAAA,EAAQ,8CAAA;AAAA,EACR,KAAA,EAAS,4FAAA;AAAA,EACT,SAAA,EAAa;AAAA,IACX,gEAAA;AAAA,IACA,sDAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,WAAA,EAAe,YAAA;AAAA,EACf,YAAA,EAAgB,0BAAA;AAAA,EAChB,SAAA,EAAa;AAAA,IACX,SAAA,EAAa,CAAA;AAAA,IACb,YAAA,EAAgB;AAAA,GAClB;AAAA,EACA,UAAA,EAAc;AAAA,IACZ,WAAA,EAAe,CAAA;AAAA,IACf,SAAA,EAAa,CAAA;AAAA,IACb,SAAA,EAAa,CAAA;AAAA,IACb,YAAA,EAAgB;AAAA,GAClB;AAAA,EACA,WAAA,EAAe;AAAA,IACb,WAAA,EAAe,QAAA;AAAA,IACf,QAAA,EAAY,sBAAA;AAAA,IACZ,cAAA,EAAkB;AAAA,GACpB;AAAA,EACA,YAAA,EAAgB;AAClB","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/transparencia-snapshots/data/metadata.json"],"names":[],"mappings":";AAAA,IAAA,gBAAA,GAAA;AAAA,EACE,EAAA,EAAM,yBAAA;AAAA,EACN,IAAA,EAAQ,8CAAA;AAAA,EACR,KAAA,EAAS,4FAAA;AAAA,EACT,SAAA,EAAa;AAAA,IACX,gEAAA;AAAA,IACA,sDAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,WAAA,EAAe,YAAA;AAAA,EACf,YAAA,EAAgB,0BAAA;AAAA,EAChB,SAAA,EAAa;AAAA,IACX,SAAA,EAAa,CAAA;AAAA,IACb,YAAA,EAAgB;AAAA,GAClB;AAAA,EACA,UAAA,EAAc;AAAA,IACZ,WAAA,EAAe,CAAA;AAAA,IACf,SAAA,EAAa,CAAA;AAAA,IACb,SAAA,EAAa,CAAA;AAAA,IACb,YAAA,EAAgB;AAAA,GAClB;AAAA,EACA,WAAA,EAAe;AAAA,IACb,WAAA,EAAe,QAAA;AAAA,IACf,QAAA,EAAY,sBAAA;AAAA,IACZ,cAAA,EAAkB;AAAA,GACpB;AAAA,EACA,YAAA,EAAgB;AAClB","file":"chunk-TDOPVHOO.js","sourcesContent":["{\n \"id\": \"transparencia-snapshots\",\n \"nome\": \"Portal da Transparência endpoint registry\",\n \"fonte\": \"CGU Portal da Transparência — Swagger audit (query endpoints; no bulk embed in v1)\",\n \"endpoints\": [\n \"https://api.portaldatransparencia.gov.br/swagger-ui/index.html\",\n \"https://api.portaldatransparencia.gov.br/v3/api-docs\",\n \"https://portaldatransparencia.gov.br/\"\n ],\n \"capturadoEm\": \"2026-06-29\",\n \"atualizadoEm\": \"2026-06-29T12:48:08.458Z\",\n \"contagens\": {\n \"endpoints\": 8,\n \"queryAdapter\": 7\n },\n \"alteracoes\": {\n \"adicionados\": 0,\n \"removidos\": 0,\n \"alterados\": 0,\n \"comparadoCom\": \"2026-06-26\"\n },\n \"verificacao\": {\n \"agendamento\": \"diario\",\n \"workflow\": \"data-refresh-bot.yml\",\n \"ultimaExecucao\": \"2026-06-29T12:48:08.458Z\"\n },\n \"documentacao\": \"docs/OFFICIAL-SOURCES.md#portal-transparencia\"\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { stripPlaca } from './chunk-
|
|
1
|
+
import { stripPlaca } from './chunk-6BWOYNQD.js';
|
|
2
2
|
import { brandPlaca } from './chunk-BVMY4IWB.js';
|
|
3
3
|
|
|
4
4
|
// src/core/placa/constants.ts
|
|
@@ -102,5 +102,5 @@ function validatePlaca(input) {
|
|
|
102
102
|
}
|
|
103
103
|
|
|
104
104
|
export { PLACA_GOLDEN_CONVERSION_FROM, PLACA_GOLDEN_CONVERSION_TO, PLACA_GOLDEN_LEGACY, PLACA_GOLDEN_MERCOSUL, PLACA_LEGACY_PATTERN, PLACA_LENGTH, PLACA_MERCOSUL_PATTERN, PLACA_OFFICIAL_SOURCE_URL, convertPlacaToMercosul, detectPlacaFormat, isValidPlaca, isValidPlacaLegacy, isValidPlacaMercosul, validatePlaca };
|
|
105
|
-
//# sourceMappingURL=chunk-
|
|
106
|
-
//# sourceMappingURL=chunk-
|
|
105
|
+
//# sourceMappingURL=chunk-UG2YICWH.js.map
|
|
106
|
+
//# sourceMappingURL=chunk-UG2YICWH.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/placa/constants.ts","../src/core/placa/detect.ts","../src/core/placa/legacy.ts","../src/core/placa/mercosul.ts","../src/core/placa/convert.ts","../src/core/placa/index.ts"],"names":["failure"],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/core/placa/constants.ts","../src/core/placa/detect.ts","../src/core/placa/legacy.ts","../src/core/placa/mercosul.ts","../src/core/placa/convert.ts","../src/core/placa/index.ts"],"names":["failure"],"mappings":"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","file":"chunk-UG2YICWH.js","sourcesContent":["/**\n * License plate patterns — CONTRAN 729/2018 (legacy + Mercosul).\n * @see https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao7292018consolidada.pdf\n * @see docs/use-cases/UC-004-validate-placa.md — golden vectors ABC1D23, ABC1234\n */\nexport const PLACA_LENGTH = 7;\nexport const PLACA_LEGACY_PATTERN = /^[A-Z]{3}[0-9]{4}$/;\nexport const PLACA_MERCOSUL_PATTERN = /^[A-Z]{3}[0-9][A-Z0-9][0-9]{2}$/;\nexport const PLACA_LEGACY_TO_MERCOSUL_MAP: Record<string, string> = {\n '0': 'A',\n '1': 'B',\n '2': 'C',\n '3': 'D',\n '4': 'E',\n '5': 'F',\n '6': 'G',\n '7': 'H',\n '8': 'I',\n '9': 'J',\n};\nexport const PLACA_GOLDEN_MERCOSUL = 'ABC1D23';\nexport const PLACA_GOLDEN_LEGACY = 'ABC1234';\nexport const PLACA_GOLDEN_CONVERSION_FROM = 'ABC1234';\nexport const PLACA_GOLDEN_CONVERSION_TO = 'ABC1C34';\nexport const PLACA_OFFICIAL_SOURCE_URL =\n 'https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao7292018consolidada.pdf';\n","/**\n * License plate format detection — legacy vs Mercosul (CONTRAN).\n * @see https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao7292018consolidada.pdf\n */\nimport { stripPlaca } from '../../strip/index.js';\nimport { PLACA_LENGTH, PLACA_LEGACY_PATTERN, PLACA_MERCOSUL_PATTERN } from './constants.js';\n\nexport type PlacaFormat = 'legacy' | 'mercosul' | 'unknown';\n\nexport function detectPlacaFormat(input: string): PlacaFormat {\n const stripped = stripPlaca(input);\n if (stripped.length !== PLACA_LENGTH) {\n return 'unknown';\n }\n if (PLACA_LEGACY_PATTERN.test(stripped)) {\n return 'legacy';\n }\n if (PLACA_MERCOSUL_PATTERN.test(stripped)) {\n return 'mercosul';\n }\n return 'unknown';\n}\n","/**\n * License plate — legacy format LLLNNNN (CONTRAN).\n * @see https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao7292018consolidada.pdf\n */\nimport { stripPlaca } from '../../strip/index.js';\nimport { PLACA_LEGACY_PATTERN } from './constants.js';\n\nexport function isValidPlacaLegacy(input: string): boolean {\n const stripped = stripPlaca(input);\n return PLACA_LEGACY_PATTERN.test(stripped);\n}\n","/**\n * License plate — Mercosul format LLLNLNN (CONTRAN).\n * @see https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao7292018consolidada.pdf\n */\nimport { stripPlaca } from '../../strip/index.js';\nimport { PLACA_MERCOSUL_PATTERN } from './constants.js';\n\nexport function isValidPlacaMercosul(input: string): boolean {\n const stripped = stripPlaca(input);\n return PLACA_MERCOSUL_PATTERN.test(stripped);\n}\n","/**\n * Legacy → Mercosul plate conversion (CONTRAN digit-to-letter table).\n * @see https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao7292018consolidada.pdf\n */\nimport type { FormatResult } from '../../types/validation-result.js';\nimport { stripPlaca } from '../../strip/index.js';\nimport { PLACA_LEGACY_TO_MERCOSUL_MAP } from './constants.js';\nimport { detectPlacaFormat } from './detect.js';\n\ntype FailedResult = Extract<FormatResult, { ok: false }>;\n\nfunction failure(code: FailedResult['code'], message: string): FailedResult {\n return { ok: false, code, message };\n}\n\nexport function convertPlacaToMercosul(input: string): FormatResult {\n const stripped = stripPlaca(input);\n if (stripped.length === 0) {\n return failure('EMPTY_INPUT', 'Placa input is empty');\n }\n\n if (detectPlacaFormat(input) !== 'legacy') {\n return failure('UNSUPPORTED_FORMAT', 'Conversion requires a valid legacy plate (LLLNNNN)');\n }\n\n const prefix = stripped.slice(0, 4);\n const mapped = PLACA_LEGACY_TO_MERCOSUL_MAP[stripped.charAt(4)];\n const suffix = stripped.slice(5);\n return { ok: true, formatted: `${prefix}${mapped}${suffix}` };\n}\n","/**\n * License plate validation — legacy (LLLNNNN) + Mercosul (LLLNLNN). CONTRAN 729/2018.\n * @see https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao7292018consolidada.pdf\n * @see docs/use-cases/UC-004-validate-placa.md — golden vectors ABC1D23, ABC1234\n */\nimport { stripPlaca } from '../../strip/index.js';\nimport type { DocumentFormat, Placa, ValidationResult } from '../../types/validation-result.js';\nimport { brandPlaca } from '../../types/validation-result.js';\nimport { detectPlacaFormat } from './detect.js';\nimport { PLACA_LENGTH } from './constants.js';\n\nexport {\n PLACA_GOLDEN_CONVERSION_FROM,\n PLACA_GOLDEN_CONVERSION_TO,\n PLACA_GOLDEN_LEGACY,\n PLACA_GOLDEN_MERCOSUL,\n PLACA_OFFICIAL_SOURCE_URL,\n} from './constants.js';\nexport { detectPlacaFormat, type PlacaFormat } from './detect.js';\nexport { isValidPlacaLegacy } from './legacy.js';\nexport { isValidPlacaMercosul } from './mercosul.js';\nexport { convertPlacaToMercosul } from './convert.js';\n\ntype FailedResult = Extract<ValidationResult, { ok: false }>;\n\nfunction failure(code: FailedResult['code'], message: string): FailedResult {\n return { ok: false, code, message };\n}\n\nfunction validateStructure(input: string, stripped: string): FailedResult | null {\n if (stripped.length === 0) {\n return failure('EMPTY_INPUT', 'Placa input is empty');\n }\n\n const withoutSeparators = input.replace(/[-\\s]/g, '');\n if (/[^A-Za-z0-9]/.test(withoutSeparators)) {\n return failure('INVALID_CHARACTER', 'Placa contains invalid characters');\n }\n\n if (stripped.length !== PLACA_LENGTH) {\n return failure('INVALID_LENGTH', `Placa must have ${PLACA_LENGTH} characters after normalization`);\n }\n\n return null;\n}\n\nexport function isValidPlaca(input: string): boolean {\n return validatePlaca(input).ok;\n}\n\nexport function validatePlaca(input: string): ValidationResult<Placa> {\n const stripped = stripPlaca(input);\n const structural = validateStructure(input, stripped);\n if (structural) {\n return structural;\n }\n\n const format = detectPlacaFormat(input);\n if (format === 'unknown') {\n return failure('UNSUPPORTED_FORMAT', 'Placa does not match legacy or Mercosul format');\n }\n\n return { ok: true, value: brandPlaca(stripped), format: format as DocumentFormat };\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { validateTelefone, TELEFONE_CELULAR_MASK_PATTERN, TELEFONE_FIXO_MASK_PATTERN } from './chunk-
|
|
1
|
+
import { validateTelefone, TELEFONE_CELULAR_MASK_PATTERN, TELEFONE_FIXO_MASK_PATTERN } from './chunk-Y5QZ3DEP.js';
|
|
2
2
|
|
|
3
3
|
// src/core/telefone/mask.ts
|
|
4
4
|
function applyTelefoneMask(canonical, tipo) {
|
|
@@ -20,5 +20,5 @@ function formatTelefone(input) {
|
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
export { formatTelefone };
|
|
23
|
-
//# sourceMappingURL=chunk-
|
|
24
|
-
//# sourceMappingURL=chunk-
|
|
23
|
+
//# sourceMappingURL=chunk-V5VCS6I5.js.map
|
|
24
|
+
//# sourceMappingURL=chunk-V5VCS6I5.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/telefone/mask.ts","../src/format/telefone.ts"],"names":[],"mappings":";;;AAOO,SAAS,iBAAA,CAAkB,WAAmB,IAAA,EAA4B;AAC/E,EAAA,MAAM,OAAA,GAAU,IAAA,KAAS,SAAA,GAAY,6BAAA,GAAgC,0BAAA;AACrE,EAAA,MAAM,KAAA,GAAQ,OAAA,CAAQ,IAAA,CAAK,SAAS,CAAA;AACpC,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,0BAAA,EAA6B,IAAI,CAAA,qBAAA,CAAuB,CAAA;AAAA,EAC1E;AACA,EAAA,OAAO,CAAA,CAAA,EAAI,KAAA,CAAM,CAAC,CAAC,CAAA,EAAA,EAAK,KAAA,CAAM,CAAC,CAAC,CAAA,CAAA,EAAI,KAAA,CAAM,CAAC,CAAC,CAAA,CAAA;AAC9C;;;ACVO,SAAS,eAAe,KAAA,EAA6B;AAC1D,EAAA,MAAM,MAAA,GAAS,iBAAiB,KAAK,CAAA;AACrC,EAAA,IAAI,CAAC,OAAO,EAAA,EAAI;AACd,IAAA,OAAO,EAAE,IAAI,KAAA,EAAO,IAAA,EAAM,OAAO,IAAA,EAAM,OAAA,EAAS,OAAO,OAAA,EAAQ;AAAA,EACjE;AACA,EAAA,OAAO,EAAE,IAAI,IAAA,EAAM,SAAA,EAAW,kBAAkB,MAAA,CAAO,KAAA,EAAO,MAAA,CAAO,IAAI,CAAA,EAAE;AAC7E","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/core/telefone/mask.ts","../src/format/telefone.ts"],"names":[],"mappings":";;;AAOO,SAAS,iBAAA,CAAkB,WAAmB,IAAA,EAA4B;AAC/E,EAAA,MAAM,OAAA,GAAU,IAAA,KAAS,SAAA,GAAY,6BAAA,GAAgC,0BAAA;AACrE,EAAA,MAAM,KAAA,GAAQ,OAAA,CAAQ,IAAA,CAAK,SAAS,CAAA;AACpC,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,0BAAA,EAA6B,IAAI,CAAA,qBAAA,CAAuB,CAAA;AAAA,EAC1E;AACA,EAAA,OAAO,CAAA,CAAA,EAAI,KAAA,CAAM,CAAC,CAAC,CAAA,EAAA,EAAK,KAAA,CAAM,CAAC,CAAC,CAAA,CAAA,EAAI,KAAA,CAAM,CAAC,CAAC,CAAA,CAAA;AAC9C;;;ACVO,SAAS,eAAe,KAAA,EAA6B;AAC1D,EAAA,MAAM,MAAA,GAAS,iBAAiB,KAAK,CAAA;AACrC,EAAA,IAAI,CAAC,OAAO,EAAA,EAAI;AACd,IAAA,OAAO,EAAE,IAAI,KAAA,EAAO,IAAA,EAAM,OAAO,IAAA,EAAM,OAAA,EAAS,OAAO,OAAA,EAAQ;AAAA,EACjE;AACA,EAAA,OAAO,EAAE,IAAI,IAAA,EAAM,SAAA,EAAW,kBAAkB,MAAA,CAAO,KAAA,EAAO,MAAA,CAAO,IAAI,CAAA,EAAE;AAC7E","file":"chunk-V5VCS6I5.js","sourcesContent":["import {\n TELEFONE_CELULAR_MASK_PATTERN,\n TELEFONE_FIXO_MASK_PATTERN,\n} from './constants.js';\nimport type { TelefoneTipo } from '../../types/validation-result.js';\n\n/** Mask (DD) 9XXXX-XXXX or (DD) XXXX-XXXX per Anatel E.164 layout. */\nexport function applyTelefoneMask(canonical: string, tipo: TelefoneTipo): string {\n const pattern = tipo === 'celular' ? TELEFONE_CELULAR_MASK_PATTERN : TELEFONE_FIXO_MASK_PATTERN;\n const match = pattern.exec(canonical);\n if (!match) {\n throw new Error(`Telephone must have valid ${tipo} length to apply mask`);\n }\n return `(${match[1]}) ${match[2]}-${match[3]}`;\n}\n","import { applyTelefoneMask } from '../core/telefone/mask.js';\nimport { validateTelefone } from '../core/telefone/index.js';\nimport type { FormatResult } from '../types/validation-result.js';\n\nexport function formatTelefone(input: string): FormatResult {\n const result = validateTelefone(input);\n if (!result.ok) {\n return { ok: false, code: result.code, message: result.message };\n }\n return { ok: true, formatted: applyTelefoneMask(result.value, result.tipo) };\n}\n"]}
|
|
@@ -6,8 +6,8 @@ var metadata_default = {
|
|
|
6
6
|
endpoints: [
|
|
7
7
|
"https://olinda.bcb.gov.br/olinda/servico/PTAX/versao/v1/odata/Moedas"
|
|
8
8
|
],
|
|
9
|
-
capturadoEm: "2026-06-
|
|
10
|
-
atualizadoEm: "2026-06-
|
|
9
|
+
capturadoEm: "2026-06-29",
|
|
10
|
+
atualizadoEm: "2026-06-29T12:17:16.602Z",
|
|
11
11
|
contagens: {
|
|
12
12
|
moedas: 154
|
|
13
13
|
},
|
|
@@ -20,11 +20,11 @@ var metadata_default = {
|
|
|
20
20
|
verificacao: {
|
|
21
21
|
agendamento: "diario",
|
|
22
22
|
workflow: "data-refresh-bot.yml",
|
|
23
|
-
ultimaExecucao: "2026-06-
|
|
23
|
+
ultimaExecucao: "2026-06-29T12:17:16.602Z"
|
|
24
24
|
},
|
|
25
25
|
documentacao: "docs/OFFICIAL-SOURCES.md#moedas"
|
|
26
26
|
};
|
|
27
27
|
|
|
28
28
|
export { metadata_default };
|
|
29
|
-
//# sourceMappingURL=chunk-
|
|
30
|
-
//# sourceMappingURL=chunk-
|
|
29
|
+
//# sourceMappingURL=chunk-W6QYVABD.js.map
|
|
30
|
+
//# sourceMappingURL=chunk-W6QYVABD.js.map
|