🚀 Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more
Sign In

@br-validators/core

Package Overview
Dependencies
Maintainers
1
Versions
29
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@br-validators/core - npm Package Compare versions

Comparing version
1.10.0-data.5
to
1.10.0-data.6
+34
dist/chunk-4IOLUZDR.js
// src/selic/data/metadata.json
var metadata_default = {
id: "selic",
nome: "Bacen SGS \u2014 Meta Selic (s\xE9rie 432)",
fonte: "Banco Central \u2014 Taxa meta Selic definida pelo Copom",
endpoints: [
"https://dadosabertos.bcb.gov.br/dataset/432-taxa-de-juros---meta-selic-definida-pelo-copom",
"https://api.bcb.gov.br/dados/serie/bcdata.sgs.432/dados?formato=json",
"https://www3.bcb.gov.br/sgspub/consultarvalores/consultarValoresSeries.do?method=consultarGraficoPorId&hdOidSeriesSelecionadas=432",
"https://www.bcb.gov.br/controleinflacao/copom"
],
capturadoEm: "2026-07-02",
atualizadoEm: "2026-07-02T06:44:58.110Z",
contagens: {
observacoes: 90,
dias: 90
},
alteracoes: {
adicionados: 1,
removidos: 1,
alterados: 0,
comparadoCom: "2026-07-01"
},
verificacao: {
agendamento: "diario",
workflow: "data-refresh-bot.yml",
ultimaExecucao: "2026-07-02T06:44:58.110Z"
},
documentacao: "docs/OFFICIAL-SOURCES.md#selic-meta-sgs-432"
};
export { metadata_default };
//# sourceMappingURL=chunk-4IOLUZDR.js.map
//# sourceMappingURL=chunk-4IOLUZDR.js.map
{"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-4IOLUZDR.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-07-02\",\n \"atualizadoEm\": \"2026-07-02T06:44:58.110Z\",\n \"contagens\": {\n \"observacoes\": 90,\n \"dias\": 90\n },\n \"alteracoes\": {\n \"adicionados\": 1,\n \"removidos\": 1,\n \"alterados\": 0,\n \"comparadoCom\": \"2026-07-01\"\n },\n \"verificacao\": {\n \"agendamento\": \"diario\",\n \"workflow\": \"data-refresh-bot.yml\",\n \"ultimaExecucao\": \"2026-07-02T06:44:58.110Z\"\n },\n \"documentacao\": \"docs/OFFICIAL-SOURCES.md#selic-meta-sgs-432\"\n}\n"]}
import { validateProcessoJudicial, PROCESSO_JUDICIAL_MASKED_PATTERN, PROCESSO_JUDICIAL_LENGTH } from './chunk-A4QBLVVO.js';
import { validateTelefone } from './chunk-VTCBD6OS.js';
import { validateTituloEleitor } from './chunk-6WBUKUHD.js';
import { validatePlaca, PLACA_LENGTH } from './chunk-UG2YICWH.js';
import { validateNfeChave, NFE_CHAVE_LENGTH } from './chunk-XRT44FMY.js';
import { validatePisPasep } from './chunk-HORKZQIH.js';
import { validateInscricaoEstadual } from './chunk-OHBSYBG7.js';
import { isSpRuralIeInput, validateIeProdutorRural } from './chunk-FGOPYU2L.js';
import { validateEan, EAN_8_LENGTH, EAN_13_LENGTH } from './chunk-OFAU4VTU.js';
import { validateCep } from './chunk-C4E2AE2A.js';
import { validateCnh } from './chunk-JZOS2MO7.js';
import { validateBoleto } from './chunk-JOBIJQGE.js';
import { validateArrecadacao } from './chunk-UB2ZUHQZ.js';
import { detectBoletoInputKind } from './chunk-7U64V3YD.js';
import { validateBrCode } from './chunk-L3WG36Y4.js';
import { validatePixKey } from './chunk-7XVCTDJE.js';
import { validateCpf } from './chunk-DQQNXXGO.js';
import { validateCnpj } from './chunk-MGFDTECS.js';
import { CNPJ_LENGTH } from './chunk-LLJSXMO2.js';
import { validateCartaoCredito, CARTAO_PAN_MIN_LENGTH, CARTAO_PAN_MAX_LENGTH } from './chunk-PU5TKJZI.js';
// src/detect/helpers.ts
function stripDigits(input) {
return input.replace(/\D/g, "");
}
function stripAlnumUpper(input) {
return input.replace(/[^A-Za-z0-9]/g, "").toUpperCase();
}
function hasLetters(input) {
return /[A-Za-z]/.test(input);
}
function looksLikeBrCode(input) {
const trimmed = input.trim();
return trimmed.startsWith("00020") && trimmed.length > 20;
}
function looksLikeBoleto(input) {
const kind = detectBoletoInputKind(input);
return kind === "linha-digitavel" || kind === "codigo-barras";
}
function isBoletoArrecadacao(input) {
return detectBoletoInputKind(input) === "arrecadacao";
}
function looksLikeNfeChave(input) {
const digits = stripDigits(input);
return digits.length === NFE_CHAVE_LENGTH && /^\d+$/.test(digits);
}
function looksLikeCnpjNumeric(input) {
const digits = stripDigits(input);
return digits.length === CNPJ_LENGTH && /^\d+$/.test(digits);
}
function looksLikeCnpjAlphanumeric(input) {
const stripped = stripAlnumUpper(input);
return stripped.length === CNPJ_LENGTH && hasLetters(input);
}
function looksLikeElevenDigits(input) {
const digits = stripDigits(input);
return digits.length === 11 && /^\d+$/.test(digits);
}
function looksLikeTituloEleitor(input) {
const digits = stripDigits(input);
return digits.length === 12 && /^\d+$/.test(digits);
}
function looksLikeCep(input) {
const digits = stripDigits(input);
return digits.length === 8 && /^\d+$/.test(digits);
}
function looksLikePlaca(input) {
const stripped = stripAlnumUpper(input);
return stripped.length === PLACA_LENGTH && /^[A-Z0-9]+$/.test(stripped);
}
function looksLikeCartao(input) {
const withoutMask = input.replace(/[\s-]/g, "");
if (/[^0-9]/.test(withoutMask)) {
return false;
}
const digits = stripDigits(input);
return digits.length >= CARTAO_PAN_MIN_LENGTH && digits.length <= CARTAO_PAN_MAX_LENGTH;
}
function looksLikeEan(input) {
const withoutMask = input.replace(/[\s-]/g, "");
if (/[^0-9]/.test(withoutMask)) {
return false;
}
const digits = stripDigits(input);
return digits.length === EAN_8_LENGTH || digits.length === EAN_13_LENGTH;
}
function looksLikeIe(input, uf) {
if (!uf) {
return false;
}
if (uf === "SP" && isSpRuralIeInput(input)) {
return true;
}
const digits = stripDigits(input);
return digits.length >= 8 && digits.length <= 14;
}
function looksLikePix(input) {
const trimmed = input.trim();
if (trimmed.includes("@")) {
return true;
}
if (/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(trimmed)) {
return true;
}
if (/^\+?\d/.test(trimmed)) {
const digits = stripDigits(trimmed);
return digits.length === 11 || digits.length === 14;
}
return false;
}
function looksLikeTelefone(input) {
const digits = stripDigits(input);
return digits.length >= 10 && digits.length <= 13;
}
function looksLikeProcessoJudicial(input) {
const trimmed = input.trim();
if (PROCESSO_JUDICIAL_MASKED_PATTERN.test(trimmed)) {
return true;
}
const digits = stripDigits(trimmed);
return digits.length === PROCESSO_JUDICIAL_LENGTH && /^\d+$/.test(digits);
}
// src/detect/index.ts
function success(type, value, format, meta) {
return { type, ok: true, value, ...format ? { format } : {}, ...meta ? { meta } : {} };
}
function tryValidators(attempts) {
for (const attempt of attempts) {
const result = attempt();
if (result) {
return result;
}
}
return null;
}
var CANDIDATES = [
{
canTry: (raw) => isBoletoArrecadacao(raw),
detect: (raw) => {
const result = validateArrecadacao(raw);
if (!result.ok) {
return null;
}
return success("boleto", result.value, "arrecadacao", {
inputKind: result.inputKind,
segment: result.segment,
valueType: result.valueType
});
}
},
{
canTry: (raw) => looksLikeBoleto(raw) && !isBoletoArrecadacao(raw),
detect: (raw) => {
const result = validateBoleto(raw);
if (!result.ok || result.format === "arrecadacao") {
return null;
}
return success("boleto", result.value, result.format, {
inputKind: result.inputKind,
situacao: result.situacao
});
}
},
{
canTry: (raw) => looksLikeNfeChave(raw),
detect: (raw) => {
const result = validateNfeChave(raw);
if (!result.ok) {
return null;
}
return success("nfe-chave", result.value, result.format, {
parsed: result.parsed,
uf: result.uf
});
}
},
{
canTry: (raw) => looksLikeBrCode(raw),
detect: (raw) => {
const result = validateBrCode(raw);
if (!result.ok) {
return null;
}
return success("brcode", result.value, result.format, {
merchantName: result.merchantName,
merchantCity: result.merchantCity,
pixKey: result.pixKey,
pixKeyType: result.pixKeyType
});
}
},
{
canTry: (raw) => looksLikeCnpjAlphanumeric(raw),
detect: (raw) => {
const result = validateCnpj(raw);
if (!result.ok) {
return null;
}
return success("cnpj", result.value, result.format);
}
},
{
canTry: (raw) => looksLikeCnpjNumeric(raw),
detect: (raw) => {
const result = validateCnpj(raw);
if (!result.ok) {
return null;
}
return success("cnpj", result.value, result.format);
}
},
{
canTry: (raw) => looksLikeElevenDigits(raw),
detect: (raw) => tryValidators([
() => {
const result = validateCpf(raw);
return result.ok ? success("cpf", result.value, result.format) : null;
},
() => {
const result = validateCnh(raw);
return result.ok ? success("cnh", result.value, result.format) : null;
},
() => {
const result = validatePisPasep(raw);
return result.ok ? success("pis-pasep", result.value, result.format) : null;
}
])
},
{
canTry: (raw) => looksLikeProcessoJudicial(raw),
detect: (raw) => {
const result = validateProcessoJudicial(raw);
if (!result.ok) {
return null;
}
return success("processo-judicial", result.value, result.format, {
segments: result.segments
});
}
},
{
canTry: (raw) => looksLikeTituloEleitor(raw),
detect: (raw) => {
const result = validateTituloEleitor(raw);
if (!result.ok) {
return null;
}
return success("titulo-eleitor", result.value, result.format, {
ufCode: result.ufCode,
...result.uf ? { uf: result.uf } : {},
...result.exterior ? { exterior: result.exterior } : {}
});
}
},
{
canTry: (raw) => looksLikeCep(raw),
detect: (raw) => {
const result = validateCep(raw);
if (!result.ok) {
return null;
}
return success("cep", result.value, result.format);
}
},
{
canTry: (raw) => looksLikePlaca(raw),
detect: (raw) => {
const result = validatePlaca(raw);
if (!result.ok) {
return null;
}
return success("placa", result.value, result.format);
}
},
{
canTry: (raw) => looksLikePix(raw),
detect: (raw) => {
const result = validatePixKey(raw);
if (!result.ok) {
return null;
}
return success("pix", result.value, result.format, { keyType: result.keyType });
}
},
{
canTry: (raw) => looksLikeTelefone(raw),
detect: (raw) => {
const result = validateTelefone(raw);
if (!result.ok) {
return null;
}
return success("telefone", result.value, result.format, { tipo: result.tipo });
}
},
{
canTry: (raw) => looksLikeEan(raw),
detect: (raw) => {
const result = validateEan(raw);
if (!result.ok) {
return null;
}
return success("ean", result.value, result.format);
}
},
{
canTry: (raw) => looksLikeCartao(raw),
detect: (raw) => {
const result = validateCartaoCredito(raw);
if (!result.ok) {
return null;
}
return success("cartao-credito", result.value, result.format, { brand: result.brand });
}
},
{
canTry: (raw, options) => looksLikeIe(raw, options.uf),
detect: (raw, options) => {
const uf = options.uf;
if (uf === "SP" && isSpRuralIeInput(raw)) {
const result2 = validateIeProdutorRural(uf, raw);
if (!result2.ok) {
return null;
}
return success("inscricao-estadual-produtor-rural", result2.value, result2.format, { uf: result2.uf });
}
const result = validateInscricaoEstadual(raw, { uf });
if (!result.ok) {
return null;
}
return success("inscricao-estadual", result.value, result.format, { uf: result.uf });
}
}
];
function detect(raw, options = {}) {
const trimmed = raw.trim();
if (trimmed.length === 0) {
return {
type: "unknown",
ok: false,
code: "EMPTY_INPUT",
message: "Input is empty"
};
}
for (const candidate of CANDIDATES) {
if (!candidate.canTry(trimmed, options)) {
continue;
}
const result = candidate.detect(trimmed, options);
if (result?.ok) {
return result;
}
}
return {
type: "unknown",
ok: false,
code: "UNSUPPORTED_FORMAT",
message: options.uf ? "No supported document type matched the input" : "No supported document type matched the input; provide options.uf for Inscri\xE7\xE3o Estadual detection"
};
}
export { detect };
//# sourceMappingURL=chunk-5KU4Q3VR.js.map
//# sourceMappingURL=chunk-5KU4Q3VR.js.map
{"version":3,"sources":["../src/detect/helpers.ts","../src/detect/index.ts"],"names":["result"],"mappings":"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","file":"chunk-5KU4Q3VR.js","sourcesContent":["import { BOLETO_CODIGO_BARRAS_LENGTH, BOLETO_LINHA_LENGTH } from '../core/boleto/constants.js';\nimport { CARTAO_PAN_MAX_LENGTH, CARTAO_PAN_MIN_LENGTH } from '../core/cartao-credito/constants.js';\nimport { EAN_13_LENGTH, EAN_8_LENGTH } from '../core/ean/constants.js';\nimport { CNPJ_LENGTH } from '../core/cnpj/constants.js';\nimport { NFE_CHAVE_LENGTH } from '../core/nfe-chave/constants.js';\nimport { PROCESSO_JUDICIAL_LENGTH, PROCESSO_JUDICIAL_MASKED_PATTERN } from '../core/processo-judicial/constants.js';\nimport { PLACA_LENGTH } from '../core/placa/constants.js';\nimport { detectBoletoInputKind } from '../core/boleto/detect.js';\nimport { isSpRuralIeInput } from '../core/inscricao-estadual/sp-rural.js';\n\nexport function stripDigits(input: string): string {\n return input.replace(/\\D/g, '');\n}\n\nexport function stripAlnumUpper(input: string): string {\n return input.replace(/[^A-Za-z0-9]/g, '').toUpperCase();\n}\n\nexport function hasLetters(input: string): boolean {\n return /[A-Za-z]/.test(input);\n}\n\nexport function looksLikeBrCode(input: string): boolean {\n const trimmed = input.trim();\n return trimmed.startsWith('00020') && trimmed.length > 20;\n}\n\nexport function looksLikeBoleto(input: string): boolean {\n const kind = detectBoletoInputKind(input);\n return kind === 'linha-digitavel' || kind === 'codigo-barras';\n}\n\nexport function isBoletoArrecadacao(input: string): boolean {\n return detectBoletoInputKind(input) === 'arrecadacao';\n}\n\nexport function looksLikeNfeChave(input: string): boolean {\n const digits = stripDigits(input);\n return digits.length === NFE_CHAVE_LENGTH && /^\\d+$/.test(digits);\n}\n\nexport function looksLikeCnpjNumeric(input: string): boolean {\n const digits = stripDigits(input);\n return digits.length === CNPJ_LENGTH && /^\\d+$/.test(digits);\n}\n\nexport function looksLikeCnpjAlphanumeric(input: string): boolean {\n const stripped = stripAlnumUpper(input);\n return stripped.length === CNPJ_LENGTH && hasLetters(input);\n}\n\nexport function looksLikeElevenDigits(input: string): boolean {\n const digits = stripDigits(input);\n return digits.length === 11 && /^\\d+$/.test(digits);\n}\n\nexport function looksLikeTituloEleitor(input: string): boolean {\n const digits = stripDigits(input);\n return digits.length === 12 && /^\\d+$/.test(digits);\n}\n\nexport function looksLikeCep(input: string): boolean {\n const digits = stripDigits(input);\n return digits.length === 8 && /^\\d+$/.test(digits);\n}\n\nexport function looksLikePlaca(input: string): boolean {\n const stripped = stripAlnumUpper(input);\n return stripped.length === PLACA_LENGTH && /^[A-Z0-9]+$/.test(stripped);\n}\n\nexport function looksLikeCartao(input: string): boolean {\n const withoutMask = input.replace(/[\\s-]/g, '');\n if (/[^0-9]/.test(withoutMask)) {\n return false;\n }\n const digits = stripDigits(input);\n return digits.length >= CARTAO_PAN_MIN_LENGTH && digits.length <= CARTAO_PAN_MAX_LENGTH;\n}\n\nexport function looksLikeEan(input: string): boolean {\n const withoutMask = input.replace(/[\\s-]/g, '');\n if (/[^0-9]/.test(withoutMask)) {\n return false;\n }\n const digits = stripDigits(input);\n return digits.length === EAN_8_LENGTH || digits.length === EAN_13_LENGTH;\n}\n\nexport function looksLikeIe(input: string, uf?: string): boolean {\n if (!uf) {\n return false;\n }\n if (uf === 'SP' && isSpRuralIeInput(input)) {\n return true;\n }\n const digits = stripDigits(input);\n return digits.length >= 8 && digits.length <= 14;\n}\n\nexport function looksLikePix(input: string): boolean {\n const trimmed = input.trim();\n if (trimmed.includes('@')) {\n return true;\n }\n if (/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(trimmed)) {\n return true;\n }\n if (/^\\+?\\d/.test(trimmed)) {\n const digits = stripDigits(trimmed);\n return digits.length === 11 || digits.length === 14;\n }\n return false;\n}\n\nexport function looksLikeTelefone(input: string): boolean {\n const digits = stripDigits(input);\n return digits.length >= 10 && digits.length <= 13;\n}\n\nexport function looksLikeProcessoJudicial(input: string): boolean {\n const trimmed = input.trim();\n if (PROCESSO_JUDICIAL_MASKED_PATTERN.test(trimmed)) {\n return true;\n }\n const digits = stripDigits(trimmed);\n return digits.length === PROCESSO_JUDICIAL_LENGTH && /^\\d+$/.test(digits);\n}\n\nexport {\n BOLETO_CODIGO_BARRAS_LENGTH,\n BOLETO_LINHA_LENGTH,\n};\n","/**\n * Unified document type detection — delegates to existing validators (BR-DETECT-001).\n * @see docs/VALIDATION-RULES.md\n */\nimport { validateArrecadacao } from '../core/boleto/arrecadacao.js';\nimport { validateBoleto } from '../core/boleto/index.js';\nimport { validateBrCode } from '../core/brcode/index.js';\nimport { validateCartaoCredito } from '../core/cartao-credito/index.js';\nimport { validateEan } from '../core/ean/index.js';\nimport { validateCep } from '../core/cep/index.js';\nimport { validateCnh } from '../core/cnh/index.js';\nimport { validateCnpj } from '../core/cnpj/index.js';\nimport { validateCpf } from '../core/cpf/index.js';\nimport { validateInscricaoEstadual } from '../core/inscricao-estadual/index.js';\nimport { validateIeProdutorRural } from '../core/inscricao-estadual/validate-produtor-rural.js';\nimport { isSpRuralIeInput } from '../core/inscricao-estadual/sp-rural.js';\nimport { validateNfeChave } from '../core/nfe-chave/index.js';\nimport { validatePisPasep } from '../core/pis-pasep/index.js';\nimport { validatePlaca } from '../core/placa/index.js';\nimport { validatePixKey } from '../core/pix/index.js';\nimport { validateTelefone } from '../core/telefone/index.js';\nimport { validateProcessoJudicial } from '../core/processo-judicial/index.js';\nimport { validateTituloEleitor } from '../core/titulo-eleitor/index.js';\nimport {\n isBoletoArrecadacao,\n looksLikeBoleto,\n looksLikeBrCode,\n looksLikeCartao,\n looksLikeCep,\n looksLikeEan,\n looksLikeCnpjAlphanumeric,\n looksLikeCnpjNumeric,\n looksLikeElevenDigits,\n looksLikeIe,\n looksLikeNfeChave,\n looksLikePix,\n looksLikePlaca,\n looksLikeTelefone,\n looksLikeProcessoJudicial,\n looksLikeTituloEleitor,\n} from './helpers.js';\nimport type { DocumentFormat, UfCode, ValidationErrorCode } from '../types/validation-result.js';\n\nexport type DetectableDocumentType =\n | 'cpf'\n | 'cnpj'\n | 'cep'\n | 'placa'\n | 'pis-pasep'\n | 'pix'\n | 'telefone'\n | 'boleto'\n | 'cartao-credito'\n | 'ean'\n | 'cnh'\n | 'renavam'\n | 'nfe-chave'\n | 'titulo-eleitor'\n | 'processo-judicial'\n | 'inscricao-estadual'\n | 'inscricao-estadual-produtor-rural'\n | 'brcode'\n | 'unknown';\n\nexport type DetectOptions = {\n uf?: UfCode;\n};\n\nexport type DetectSuccess = {\n type: DetectableDocumentType;\n ok: true;\n value: string;\n format?: DocumentFormat;\n meta?: Record<string, unknown>;\n};\n\nexport type DetectFailure = {\n type: DetectableDocumentType;\n ok: false;\n code: ValidationErrorCode;\n message: string;\n};\n\nexport type DetectResult = DetectSuccess | DetectFailure;\n\ntype Candidate = {\n canTry: (raw: string, options: DetectOptions) => boolean;\n detect: (raw: string, options: DetectOptions) => DetectResult | null;\n};\n\n/** @internal Test hook for success result branches. */\nexport function buildDetectSuccess(\n type: DetectableDocumentType,\n value: string,\n format?: DocumentFormat,\n meta?: Record<string, unknown>,\n): DetectResult {\n return success(type, value, format, meta);\n}\n\nfunction success(\n type: DetectableDocumentType,\n value: string,\n format?: DocumentFormat,\n meta?: Record<string, unknown>,\n): DetectResult {\n return { type, ok: true, value, ...(format ? { format } : {}), ...(meta ? { meta } : {}) };\n}\n\nfunction tryValidators(attempts: Array<() => DetectResult | null>): DetectResult | null {\n for (const attempt of attempts) {\n const result = attempt();\n if (result) {\n return result;\n }\n }\n return null;\n}\n\nconst CANDIDATES: Candidate[] = [\n {\n canTry: (raw) => isBoletoArrecadacao(raw),\n detect: (raw) => {\n const result = validateArrecadacao(raw);\n if (!result.ok) {\n return null;\n }\n return success('boleto', result.value, 'arrecadacao', {\n inputKind: result.inputKind,\n segment: result.segment,\n valueType: result.valueType,\n });\n },\n },\n {\n canTry: (raw) => looksLikeBoleto(raw) && !isBoletoArrecadacao(raw),\n detect: (raw) => {\n const result = validateBoleto(raw);\n if (!result.ok || result.format === 'arrecadacao') {\n return null;\n }\n return success('boleto', result.value, result.format, {\n inputKind: result.inputKind,\n situacao: result.situacao,\n });\n },\n },\n {\n canTry: (raw) => looksLikeNfeChave(raw),\n detect: (raw) => {\n const result = validateNfeChave(raw);\n if (!result.ok) {\n return null;\n }\n return success('nfe-chave', result.value, result.format, {\n parsed: result.parsed,\n uf: result.uf,\n });\n },\n },\n {\n canTry: (raw) => looksLikeBrCode(raw),\n detect: (raw) => {\n const result = validateBrCode(raw);\n if (!result.ok) {\n return null;\n }\n return success('brcode', result.value, result.format, {\n merchantName: result.merchantName,\n merchantCity: result.merchantCity,\n pixKey: result.pixKey,\n pixKeyType: result.pixKeyType,\n });\n },\n },\n {\n canTry: (raw) => looksLikeCnpjAlphanumeric(raw),\n detect: (raw) => {\n const result = validateCnpj(raw);\n if (!result.ok) {\n return null;\n }\n return success('cnpj', result.value, result.format);\n },\n },\n {\n canTry: (raw) => looksLikeCnpjNumeric(raw),\n detect: (raw) => {\n const result = validateCnpj(raw);\n if (!result.ok) {\n return null;\n }\n return success('cnpj', result.value, result.format);\n },\n },\n {\n canTry: (raw) => looksLikeElevenDigits(raw),\n detect: (raw) =>\n tryValidators([\n () => {\n const result = validateCpf(raw);\n return result.ok ? success('cpf', result.value, result.format) : null;\n },\n () => {\n const result = validateCnh(raw);\n return result.ok ? success('cnh', result.value, result.format) : null;\n },\n () => {\n const result = validatePisPasep(raw);\n return result.ok ? success('pis-pasep', result.value, result.format) : null;\n },\n ]),\n },\n {\n canTry: (raw) => looksLikeProcessoJudicial(raw),\n detect: (raw) => {\n const result = validateProcessoJudicial(raw);\n if (!result.ok) {\n return null;\n }\n return success('processo-judicial', result.value, result.format, {\n segments: result.segments,\n });\n },\n },\n {\n canTry: (raw) => looksLikeTituloEleitor(raw),\n detect: (raw) => {\n const result = validateTituloEleitor(raw);\n if (!result.ok) {\n return null;\n }\n return success('titulo-eleitor', result.value, result.format, {\n ufCode: result.ufCode,\n ...(result.uf ? { uf: result.uf } : {}),\n ...(result.exterior ? { exterior: result.exterior } : {}),\n });\n },\n },\n {\n canTry: (raw) => looksLikeCep(raw),\n detect: (raw) => {\n const result = validateCep(raw);\n if (!result.ok) {\n return null;\n }\n return success('cep', result.value, result.format);\n },\n },\n {\n canTry: (raw) => looksLikePlaca(raw),\n detect: (raw) => {\n const result = validatePlaca(raw);\n if (!result.ok) {\n return null;\n }\n return success('placa', result.value, result.format);\n },\n },\n {\n canTry: (raw) => looksLikePix(raw),\n detect: (raw) => {\n const result = validatePixKey(raw);\n if (!result.ok) {\n return null;\n }\n return success('pix', result.value, result.format, { keyType: result.keyType });\n },\n },\n {\n canTry: (raw) => looksLikeTelefone(raw),\n detect: (raw) => {\n const result = validateTelefone(raw);\n if (!result.ok) {\n return null;\n }\n return success('telefone', result.value, result.format, { tipo: result.tipo });\n },\n },\n {\n canTry: (raw) => looksLikeEan(raw),\n detect: (raw) => {\n const result = validateEan(raw);\n if (!result.ok) {\n return null;\n }\n return success('ean', result.value, result.format);\n },\n },\n {\n canTry: (raw) => looksLikeCartao(raw),\n detect: (raw) => {\n const result = validateCartaoCredito(raw);\n if (!result.ok) {\n return null;\n }\n return success('cartao-credito', result.value, result.format, { brand: result.brand });\n },\n },\n {\n canTry: (raw, options) => looksLikeIe(raw, options.uf),\n detect: (raw, options) => {\n const uf = options.uf as UfCode;\n if (uf === 'SP' && isSpRuralIeInput(raw)) {\n const result = validateIeProdutorRural(uf, raw);\n if (!result.ok) {\n return null;\n }\n return success('inscricao-estadual-produtor-rural', result.value, result.format, { uf: result.uf });\n }\n const result = validateInscricaoEstadual(raw, { uf });\n if (!result.ok) {\n return null;\n }\n return success('inscricao-estadual', result.value, result.format, { uf: result.uf });\n },\n },\n];\n\nexport function detect(raw: string, options: DetectOptions = {}): DetectResult {\n const trimmed = raw.trim();\n if (trimmed.length === 0) {\n return {\n type: 'unknown',\n ok: false,\n code: 'EMPTY_INPUT',\n message: 'Input is empty',\n };\n }\n\n for (const candidate of CANDIDATES) {\n if (!candidate.canTry(trimmed, options)) {\n continue;\n }\n const result = candidate.detect(trimmed, options);\n if (result?.ok) {\n return result;\n }\n }\n\n return {\n type: 'unknown',\n ok: false,\n code: 'UNSUPPORTED_FORMAT',\n message: options.uf\n ? 'No supported document type matched the input'\n : 'No supported document type matched the input; provide options.uf for Inscrição Estadual detection',\n };\n}\n"]}
import { stripProcessoJudicial } from './chunk-A4QBLVVO.js';
import { normalizeTelefoneDigits, extractTelefoneDigits } from './chunk-VTCBD6OS.js';
import { stripPisPasep } from './chunk-HORKZQIH.js';
import { stripInscricaoEstadual } from './chunk-OHBSYBG7.js';
import { stripIeSpRural } from './chunk-FGOPYU2L.js';
import { stripTituloEleitor, stripRenavam, stripCnh, stripPlaca, stripCep } from './chunk-6BWOYNQD.js';
import { stripNfeChave } from './chunk-4SNBZFS5.js';
import { stripPixKey } from './chunk-JUQMINSZ.js';
import { stripCpf } from './chunk-UCJPSJN5.js';
import { stripCnpj } from './chunk-EB3G4IG6.js';
// src/sanitize/fixes.ts
function trimFix(raw) {
const trimmed = raw.trim();
const fixes = [];
if (trimmed !== raw) {
fixes.push("trimmed");
}
return { value: trimmed, fixes };
}
function digitsFix(value, fixes) {
const digits = value.replace(/\D/g, "");
if (digits !== value) {
fixes.push("removed_non_digits");
}
return { value: digits, fixes };
}
function upperAndStripSeparators(value, fixes) {
const upper = value.toUpperCase();
if (upper !== value) {
fixes.push("uppercased");
}
const stripped = upper.replace(/[^A-Z0-9]/g, "");
if (stripped !== upper) {
fixes.push("removed_separators");
}
return { value: stripped, fixes };
}
function placaFix(value, fixes) {
const upper = value.toUpperCase();
if (upper !== value) {
fixes.push("uppercased");
}
if (/[-.\s/]/.test(value)) {
fixes.push("removed_separators");
}
return { value: stripPlaca(upper), fixes };
}
function telefoneFix(value, fixes) {
if (/[\s()-]/.test(value)) {
fixes.push("removed_mask_chars");
}
const digitsOnly = extractTelefoneDigits(value);
const normalized = normalizeTelefoneDigits(value);
if (normalized !== digitsOnly && normalized.length > 0) {
fixes.push("normalized_national");
}
return { value: normalized, fixes };
}
function ieProdutorRuralFix(value, fixes) {
const upper = value.toUpperCase();
if (upper !== value) {
fixes.push("uppercased");
}
if (/^[Pp]/.test(upper)) {
fixes.push("preserved_p_prefix");
}
return { value: stripIeSpRural(upper), fixes };
}
function pixFix(value, fixes) {
const stripped = stripPixKey(value);
if (value !== value.toLowerCase() && stripped === value.toLowerCase()) {
fixes.push("lowercased");
}
if (stripped.replace(/\D/g, "") !== value.replace(/\D/g, "")) {
fixes.push("removed_non_digits");
}
if (/[\s()-]/.test(value)) {
fixes.push("removed_mask_chars");
}
return { value: stripped, fixes };
}
function applyFixes(raw, type) {
const { value: trimmed, fixes } = trimFix(raw);
switch (type) {
case "cpf":
case "cep":
case "pis-pasep":
case "cnh":
case "renavam":
case "nfe-chave":
case "cartao-credito":
case "ean":
case "boleto":
case "titulo-eleitor":
case "processo-judicial":
case "inscricao-estadual":
return digitsFix(trimmed, fixes);
case "rg":
return upperAndStripSeparators(trimmed, fixes);
case "cnpj":
return upperAndStripSeparators(trimmed, fixes);
case "placa":
return placaFix(trimmed, fixes);
case "telefone":
return telefoneFix(trimmed, fixes);
case "inscricao-estadual-produtor-rural":
return ieProdutorRuralFix(trimmed, fixes);
case "pix":
return pixFix(trimmed, fixes);
default: {
const _exhaustive = type;
return { value: _exhaustive, fixes };
}
}
}
function stripForType(value, type) {
switch (type) {
case "cpf":
return stripCpf(value);
case "cnpj":
return stripCnpj(value);
case "cep":
return stripCep(value);
case "placa":
return stripPlaca(value);
case "pis-pasep":
return stripPisPasep(value);
case "telefone":
return normalizeTelefoneDigits(value);
case "cnh":
return stripCnh(value);
case "renavam":
return stripRenavam(value);
case "titulo-eleitor":
return stripTituloEleitor(value);
case "processo-judicial":
return stripProcessoJudicial(value);
case "rg":
return value.toUpperCase().replace(/[^A-Z0-9]/g, "");
case "nfe-chave":
return stripNfeChave(value);
case "boleto":
return value.replace(/\D/g, "");
case "cartao-credito":
case "ean":
return value.replace(/\D/g, "");
case "inscricao-estadual":
return stripInscricaoEstadual(value);
case "inscricao-estadual-produtor-rural":
return stripIeSpRural(value);
case "pix":
return stripPixKey(value);
default: {
const _exhaustive = type;
return _exhaustive;
}
}
}
export { applyFixes, stripForType };
//# sourceMappingURL=chunk-5OS2QI55.js.map
//# sourceMappingURL=chunk-5OS2QI55.js.map
{"version":3,"sources":["../src/sanitize/fixes.ts"],"names":[],"mappings":"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","file":"chunk-5OS2QI55.js","sourcesContent":["import { stripCep } from '../strip/cep.js';\nimport { stripCnh } from '../strip/cnh.js';\nimport { stripCnpj } from '../strip/cnpj.js';\nimport { stripCpf } from '../strip/cpf.js';\nimport { stripIeSpRural } from '../strip/inscricao-estadual-produtor-rural.js';\nimport { stripInscricaoEstadual } from '../core/inscricao-estadual/index.js';\nimport { stripNfeChave } from '../strip/nfe-chave.js';\nimport { stripPisPasep } from '../strip/pis-pasep.js';\nimport { stripPlaca } from '../strip/placa.js';\nimport { stripPixKey } from '../strip/pix.js';\nimport { stripProcessoJudicial } from '../strip/processo-judicial.js';\nimport { stripRenavam } from '../strip/renavam.js';\nimport { stripTituloEleitor } from '../strip/titulo-eleitor.js';\nimport { extractTelefoneDigits, normalizeTelefoneDigits } from '../strip/telefone.js';\n\nexport type SanitizableDocumentType =\n | 'cpf'\n | 'cnpj'\n | 'cep'\n | 'placa'\n | 'pis-pasep'\n | 'telefone'\n | 'cnh'\n | 'renavam'\n | 'titulo-eleitor'\n | 'processo-judicial'\n | 'rg'\n | 'nfe-chave'\n | 'boleto'\n | 'cartao-credito'\n | 'ean'\n | 'inscricao-estadual'\n | 'inscricao-estadual-produtor-rural'\n | 'pix';\n\nexport type FixResult = {\n value: string;\n fixes: string[];\n};\n\nfunction trimFix(raw: string): FixResult {\n const trimmed = raw.trim();\n const fixes: string[] = [];\n if (trimmed !== raw) {\n fixes.push('trimmed');\n }\n return { value: trimmed, fixes };\n}\n\nfunction digitsFix(value: string, fixes: string[]): FixResult {\n const digits = value.replace(/\\D/g, '');\n if (digits !== value) {\n fixes.push('removed_non_digits');\n }\n return { value: digits, fixes };\n}\n\nfunction upperAndStripSeparators(value: string, fixes: string[]): FixResult {\n const upper = value.toUpperCase();\n if (upper !== value) {\n fixes.push('uppercased');\n }\n const stripped = upper.replace(/[^A-Z0-9]/g, '');\n if (stripped !== upper) {\n fixes.push('removed_separators');\n }\n return { value: stripped, fixes };\n}\n\nfunction placaFix(value: string, fixes: string[]): FixResult {\n const upper = value.toUpperCase();\n if (upper !== value) {\n fixes.push('uppercased');\n }\n if (/[-.\\s/]/.test(value)) {\n fixes.push('removed_separators');\n }\n return { value: stripPlaca(upper), fixes };\n}\n\nfunction telefoneFix(value: string, fixes: string[]): FixResult {\n if (/[\\s()-]/.test(value)) {\n fixes.push('removed_mask_chars');\n }\n const digitsOnly = extractTelefoneDigits(value);\n const normalized = normalizeTelefoneDigits(value);\n if (normalized !== digitsOnly && normalized.length > 0) {\n fixes.push('normalized_national');\n }\n return { value: normalized, fixes };\n}\n\nfunction ieProdutorRuralFix(value: string, fixes: string[]): FixResult {\n const upper = value.toUpperCase();\n if (upper !== value) {\n fixes.push('uppercased');\n }\n if (/^[Pp]/.test(upper)) {\n fixes.push('preserved_p_prefix');\n }\n return { value: stripIeSpRural(upper), fixes };\n}\n\nfunction pixFix(value: string, fixes: string[]): FixResult {\n const stripped = stripPixKey(value);\n if (value !== value.toLowerCase() && stripped === value.toLowerCase()) {\n fixes.push('lowercased');\n }\n if (stripped.replace(/\\D/g, '') !== value.replace(/\\D/g, '')) {\n fixes.push('removed_non_digits');\n }\n if (/[\\s()-]/.test(value)) {\n fixes.push('removed_mask_chars');\n }\n return { value: stripped, fixes };\n}\n\nexport function applyFixes(raw: string, type: SanitizableDocumentType): FixResult {\n const { value: trimmed, fixes } = trimFix(raw);\n\n switch (type) {\n case 'cpf':\n case 'cep':\n case 'pis-pasep':\n case 'cnh':\n case 'renavam':\n case 'nfe-chave':\n case 'cartao-credito':\n case 'ean':\n case 'boleto':\n case 'titulo-eleitor':\n case 'processo-judicial':\n case 'inscricao-estadual':\n return digitsFix(trimmed, fixes);\n case 'rg':\n return upperAndStripSeparators(trimmed, fixes);\n case 'cnpj':\n return upperAndStripSeparators(trimmed, fixes);\n case 'placa':\n return placaFix(trimmed, fixes);\n case 'telefone':\n return telefoneFix(trimmed, fixes);\n case 'inscricao-estadual-produtor-rural':\n return ieProdutorRuralFix(trimmed, fixes);\n case 'pix':\n return pixFix(trimmed, fixes);\n default: {\n const _exhaustive: never = type;\n return { value: _exhaustive, fixes };\n }\n }\n}\n\n/** Validates canonical strip output matches fix pipeline (used in tests). */\nexport function stripForType(value: string, type: SanitizableDocumentType): string {\n switch (type) {\n case 'cpf':\n return stripCpf(value);\n case 'cnpj':\n return stripCnpj(value);\n case 'cep':\n return stripCep(value);\n case 'placa':\n return stripPlaca(value);\n case 'pis-pasep':\n return stripPisPasep(value);\n case 'telefone':\n return normalizeTelefoneDigits(value);\n case 'cnh':\n return stripCnh(value);\n case 'renavam':\n return stripRenavam(value);\n case 'titulo-eleitor':\n return stripTituloEleitor(value);\n case 'processo-judicial':\n return stripProcessoJudicial(value);\n case 'rg':\n return value.toUpperCase().replace(/[^A-Z0-9]/g, '');\n case 'nfe-chave':\n return stripNfeChave(value);\n case 'boleto':\n return value.replace(/\\D/g, '');\n case 'cartao-credito':\n case 'ean':\n return value.replace(/\\D/g, '');\n case 'inscricao-estadual':\n return stripInscricaoEstadual(value);\n case 'inscricao-estadual-produtor-rural':\n return stripIeSpRural(value);\n case 'pix':\n return stripPixKey(value);\n default: {\n const _exhaustive: never = type;\n return _exhaustive;\n }\n }\n}\n"]}
// src/moedas/data/metadata.json
var metadata_default = {
id: "moedas",
nome: "ISO 4217 Currencies + Bacen PTAX",
fonte: "ISO 4217 (embedded) + Banco Central PTAX Moedas",
endpoints: [
"https://olinda.bcb.gov.br/olinda/servico/PTAX/versao/v1/odata/Moedas"
],
capturadoEm: "2026-07-02",
atualizadoEm: "2026-07-02T06:44:50.152Z",
contagens: {
moedas: 154
},
alteracoes: {
adicionados: 0,
removidos: 0,
alterados: 0,
comparadoCom: "2026-07-01"
},
verificacao: {
agendamento: "diario",
workflow: "data-refresh-bot.yml",
ultimaExecucao: "2026-07-02T06:44:50.152Z"
},
documentacao: "docs/OFFICIAL-SOURCES.md#moedas"
};
export { metadata_default };
//# sourceMappingURL=chunk-6322TKAQ.js.map
//# sourceMappingURL=chunk-6322TKAQ.js.map
{"version":3,"sources":["../src/moedas/data/metadata.json"],"names":[],"mappings":";AAAA,IAAA,gBAAA,GAAA;AAAA,EACE,EAAA,EAAM,QAAA;AAAA,EACN,IAAA,EAAQ,kCAAA;AAAA,EACR,KAAA,EAAS,iDAAA;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-6322TKAQ.js","sourcesContent":["{\n \"id\": \"moedas\",\n \"nome\": \"ISO 4217 Currencies + Bacen PTAX\",\n \"fonte\": \"ISO 4217 (embedded) + Banco Central PTAX Moedas\",\n \"endpoints\": [\n \"https://olinda.bcb.gov.br/olinda/servico/PTAX/versao/v1/odata/Moedas\"\n ],\n \"capturadoEm\": \"2026-07-02\",\n \"atualizadoEm\": \"2026-07-02T06:44:50.152Z\",\n \"contagens\": {\n \"moedas\": 154\n },\n \"alteracoes\": {\n \"adicionados\": 0,\n \"removidos\": 0,\n \"alterados\": 0,\n \"comparadoCom\": \"2026-07-01\"\n },\n \"verificacao\": {\n \"agendamento\": \"diario\",\n \"workflow\": \"data-refresh-bot.yml\",\n \"ultimaExecucao\": \"2026-07-02T06:44:50.152Z\"\n },\n \"documentacao\": \"docs/OFFICIAL-SOURCES.md#moedas\"\n}\n"]}
// src/cnpj-motivos/data/metadata.json
var metadata_default = {
id: "cnpj-motivos",
nome: "RFB CNPJ Motivos de Situa\xE7\xE3o Cadastral",
fonte: "Receita Federal \u2014 Dados Abertos CNPJ (Motivos.zip)",
endpoints: [
"https://github.com/jonathands/dados-abertos-receita-cnpj/releases/download/2024.09/Motivos.zip"
],
capturadoEm: "2026-07-02",
atualizadoEm: "2026-07-02T07:23:58.963Z",
contagens: {
motivos: 61
},
alteracoes: {
adicionados: 0,
removidos: 0,
alterados: 0,
comparadoCom: "2026-07-01"
},
verificacao: {
agendamento: "diario",
workflow: "data-refresh-bot.yml",
ultimaExecucao: "2026-07-02T07:23:58.963Z"
},
documentacao: "docs/OFFICIAL-SOURCES.md#cnpj-motivos-situacao-cadastral"
};
export { metadata_default };
//# sourceMappingURL=chunk-DH5PLOFD.js.map
//# sourceMappingURL=chunk-DH5PLOFD.js.map
{"version":3,"sources":["../src/cnpj-motivos/data/metadata.json"],"names":[],"mappings":";AAAA,IAAA,gBAAA,GAAA;AAAA,EACE,EAAA,EAAM,cAAA;AAAA,EACN,IAAA,EAAQ,8CAAA;AAAA,EACR,KAAA,EAAS,yDAAA;AAAA,EACT,SAAA,EAAa;AAAA,IACX;AAAA,GACF;AAAA,EACA,WAAA,EAAe,YAAA;AAAA,EACf,YAAA,EAAgB,0BAAA;AAAA,EAChB,SAAA,EAAa;AAAA,IACX,OAAA,EAAW;AAAA,GACb;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-DH5PLOFD.js","sourcesContent":["{\n \"id\": \"cnpj-motivos\",\n \"nome\": \"RFB CNPJ Motivos de Situação Cadastral\",\n \"fonte\": \"Receita Federal — Dados Abertos CNPJ (Motivos.zip)\",\n \"endpoints\": [\n \"https://github.com/jonathands/dados-abertos-receita-cnpj/releases/download/2024.09/Motivos.zip\"\n ],\n \"capturadoEm\": \"2026-07-02\",\n \"atualizadoEm\": \"2026-07-02T07:23:58.963Z\",\n \"contagens\": {\n \"motivos\": 61\n },\n \"alteracoes\": {\n \"adicionados\": 0,\n \"removidos\": 0,\n \"alterados\": 0,\n \"comparadoCom\": \"2026-07-01\"\n },\n \"verificacao\": {\n \"agendamento\": \"diario\",\n \"workflow\": \"data-refresh-bot.yml\",\n \"ultimaExecucao\": \"2026-07-02T07:23:58.963Z\"\n },\n \"documentacao\": \"docs/OFFICIAL-SOURCES.md#cnpj-motivos-situacao-cadastral\"\n}\n"]}
// src/bancos/data/metadata.json
var metadata_default = {
id: "bancos",
nome: "Bacen STR Participants",
fonte: "Banco Central \u2014 Participantes STR",
endpoints: [
"https://www.bcb.gov.br/content/estabilidadefinanceira/str1/ParticipantesSTR.csv"
],
capturadoEm: "2026-07-02",
atualizadoEm: "2026-07-02T06:43:45.529Z",
contagens: {
bancos: 469
},
alteracoes: {
adicionados: 0,
removidos: 0,
alterados: 0,
comparadoCom: "2026-07-01"
},
verificacao: {
agendamento: "diario",
workflow: "data-refresh-bot.yml",
ultimaExecucao: "2026-07-02T06:43:45.529Z"
},
documentacao: "docs/OFFICIAL-SOURCES.md#bacen-banks"
};
export { metadata_default };
//# sourceMappingURL=chunk-E5S3EWJO.js.map
//# sourceMappingURL=chunk-E5S3EWJO.js.map
{"version":3,"sources":["../src/bancos/data/metadata.json"],"names":[],"mappings":";AAAA,IAAA,gBAAA,GAAA;AAAA,EACE,EAAA,EAAM,QAAA;AAAA,EACN,IAAA,EAAQ,wBAAA;AAAA,EACR,KAAA,EAAS,wCAAA;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-E5S3EWJO.js","sourcesContent":["{\n \"id\": \"bancos\",\n \"nome\": \"Bacen STR Participants\",\n \"fonte\": \"Banco Central — Participantes STR\",\n \"endpoints\": [\n \"https://www.bcb.gov.br/content/estabilidadefinanceira/str1/ParticipantesSTR.csv\"\n ],\n \"capturadoEm\": \"2026-07-02\",\n \"atualizadoEm\": \"2026-07-02T06:43:45.529Z\",\n \"contagens\": {\n \"bancos\": 469\n },\n \"alteracoes\": {\n \"adicionados\": 0,\n \"removidos\": 0,\n \"alterados\": 0,\n \"comparadoCom\": \"2026-07-01\"\n },\n \"verificacao\": {\n \"agendamento\": \"diario\",\n \"workflow\": \"data-refresh-bot.yml\",\n \"ultimaExecucao\": \"2026-07-02T06:43:45.529Z\"\n },\n \"documentacao\": \"docs/OFFICIAL-SOURCES.md#bacen-banks\"\n}\n"]}
// src/ibpt/data/metadata.json
var metadata_default = {
id: "ibpt",
nome: "IBPT \u2014 Carga tribut\xE1ria aproximada por NCM (Lei 12.741/2012)",
fonte: "IBPT \u2014 De Olho no Imposto (tabelas oficiais NCM \xD7 UF)",
endpoints: [
"https://deolhonoimposto.ibpt.org.br/",
"https://apidoni.ibpt.org.br/api/v1/produtos",
"https://ibpt.valraw.com.br/api/meta.json",
"https://ibpt.valraw.com.br/api/ncm/SP.json.gz (resolved after meta.json)",
"https://ibpt.valraw.com.br/api/ncm/RJ.json.gz (resolved after meta.json)",
"https://ibpt.valraw.com.br/api/ncm/MG.json.gz (resolved after meta.json)",
"/home/runner/work/br-validators/br-validators/data/source-mirrors/ibpt/golden-cargas.json"
],
capturadoEm: "2026-07-02",
atualizadoEm: "2026-07-02T07:24:07.974Z",
contagens: {
cargas: 12
},
alteracoes: {
adicionados: 0,
removidos: 0,
alterados: 0,
comparadoCom: "2026-07-01"
},
verificacao: {
agendamento: "diario",
workflow: "data-refresh-bot.yml",
ultimaExecucao: "2026-07-02T07:24:07.974Z"
},
documentacao: "docs/OFFICIAL-SOURCES.md#ibpt-carga-tributaria-ncm"
};
export { metadata_default };
//# sourceMappingURL=chunk-FMUSBJBU.js.map
//# sourceMappingURL=chunk-FMUSBJBU.js.map
{"version":3,"sources":["../src/ibpt/data/metadata.json"],"names":[],"mappings":";AAAA,IAAA,gBAAA,GAAA;AAAA,EACE,EAAA,EAAM,MAAA;AAAA,EACN,IAAA,EAAQ,sEAAA;AAAA,EACR,KAAA,EAAS,+DAAA;AAAA,EACT,SAAA,EAAa;AAAA,IACX,sCAAA;AAAA,IACA,6CAAA;AAAA,IACA,0CAAA;AAAA,IACA,0EAAA;AAAA,IACA,0EAAA;AAAA,IACA,0EAAA;AAAA,IACA;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-FMUSBJBU.js","sourcesContent":["{\n \"id\": \"ibpt\",\n \"nome\": \"IBPT — Carga tributária aproximada por NCM (Lei 12.741/2012)\",\n \"fonte\": \"IBPT — De Olho no Imposto (tabelas oficiais NCM × UF)\",\n \"endpoints\": [\n \"https://deolhonoimposto.ibpt.org.br/\",\n \"https://apidoni.ibpt.org.br/api/v1/produtos\",\n \"https://ibpt.valraw.com.br/api/meta.json\",\n \"https://ibpt.valraw.com.br/api/ncm/SP.json.gz (resolved after meta.json)\",\n \"https://ibpt.valraw.com.br/api/ncm/RJ.json.gz (resolved after meta.json)\",\n \"https://ibpt.valraw.com.br/api/ncm/MG.json.gz (resolved after meta.json)\",\n \"/home/runner/work/br-validators/br-validators/data/source-mirrors/ibpt/golden-cargas.json\"\n ],\n \"capturadoEm\": \"2026-07-02\",\n \"atualizadoEm\": \"2026-07-02T07:24:07.974Z\",\n \"contagens\": {\n \"cargas\": 12\n },\n \"alteracoes\": {\n \"adicionados\": 0,\n \"removidos\": 0,\n \"alterados\": 0,\n \"comparadoCom\": \"2026-07-01\"\n },\n \"verificacao\": {\n \"agendamento\": \"diario\",\n \"workflow\": \"data-refresh-bot.yml\",\n \"ultimaExecucao\": \"2026-07-02T07:24:07.974Z\"\n },\n \"documentacao\": \"docs/OFFICIAL-SOURCES.md#ibpt-carga-tributaria-ncm\"\n}\n"]}
import { applyFixes } from './chunk-5OS2QI55.js';
import { validateRg } from './chunk-6F3A3NT4.js';
import { validateRenavam } from './chunk-4NS47CJG.js';
import { validateProcessoJudicial } from './chunk-A4QBLVVO.js';
import { validateTelefone } from './chunk-VTCBD6OS.js';
import { validateTituloEleitor } from './chunk-6WBUKUHD.js';
import { validatePlaca } from './chunk-UG2YICWH.js';
import { validateNfeChave } from './chunk-XRT44FMY.js';
import { validatePisPasep } from './chunk-HORKZQIH.js';
import { validateInscricaoEstadual } from './chunk-OHBSYBG7.js';
import { validateIeSpRural } from './chunk-FGOPYU2L.js';
import { validateEan } from './chunk-OFAU4VTU.js';
import { validateCep } from './chunk-C4E2AE2A.js';
import { validateCnh } from './chunk-JZOS2MO7.js';
import { validateBoleto } from './chunk-JOBIJQGE.js';
import { validatePixKey } from './chunk-7XVCTDJE.js';
import { validateCpf } from './chunk-DQQNXXGO.js';
import { validateCnpj } from './chunk-MGFDTECS.js';
import { validateCartaoCredito } from './chunk-PU5TKJZI.js';
// src/sanitize/index.ts
function sanitize(raw, type, options = {}) {
const { value: fixed, fixes } = applyFixes(raw, type);
if (type === "inscricao-estadual" && !options.uf) {
return {
ok: false,
code: "UNSUPPORTED_FORMAT",
message: "UF is required for inscricao-estadual sanitization"
};
}
if (type === "rg" && !options.uf) {
return {
ok: false,
code: "UNSUPPORTED_FORMAT",
message: "UF is required for RG sanitization"
};
}
const validation = validateFixed(fixed, type, options.uf);
if (!validation.ok) {
return { ok: false, code: validation.code, message: validation.message };
}
return { ok: true, value: validation.value, fixes };
}
function validateFixed(value, type, uf) {
switch (type) {
case "cpf": {
const result = validateCpf(value);
return result.ok ? { ok: true, value: result.value } : result;
}
case "cnpj": {
const result = validateCnpj(value);
return result.ok ? { ok: true, value: result.value } : result;
}
case "cep": {
const result = validateCep(value);
return result.ok ? { ok: true, value: result.value } : result;
}
case "placa": {
const result = validatePlaca(value);
return result.ok ? { ok: true, value: result.value } : result;
}
case "pis-pasep": {
const result = validatePisPasep(value);
return result.ok ? { ok: true, value: result.value } : result;
}
case "telefone": {
const result = validateTelefone(value);
return result.ok ? { ok: true, value: result.value } : result;
}
case "cnh": {
const result = validateCnh(value);
return result.ok ? { ok: true, value: result.value } : result;
}
case "renavam": {
const result = validateRenavam(value);
return result.ok ? { ok: true, value: result.value } : result;
}
case "titulo-eleitor": {
const result = validateTituloEleitor(value);
return result.ok ? { ok: true, value: result.value } : result;
}
case "processo-judicial": {
const result = validateProcessoJudicial(value);
return result.ok ? { ok: true, value: result.value } : result;
}
case "rg": {
const result = validateRg(value, { uf });
return result.ok ? { ok: true, value: result.value } : result;
}
case "nfe-chave": {
const result = validateNfeChave(value);
return result.ok ? { ok: true, value: result.value } : result;
}
case "boleto": {
const result = validateBoleto(value);
return result.ok ? { ok: true, value: result.value } : result;
}
case "cartao-credito": {
const result = validateCartaoCredito(value);
return result.ok ? { ok: true, value: result.value } : result;
}
case "ean": {
const result = validateEan(value);
return result.ok ? { ok: true, value: result.value } : result;
}
case "inscricao-estadual": {
const result = validateInscricaoEstadual(value, { uf });
return result.ok ? { ok: true, value: result.value } : result;
}
case "inscricao-estadual-produtor-rural": {
const result = validateIeSpRural(value);
return result.ok ? { ok: true, value: result.value } : result;
}
case "pix": {
const result = validatePixKey(value);
return result.ok ? { ok: true, value: result.value } : result;
}
default: {
const _exhaustive = type;
return { ok: false, code: "UNSUPPORTED_FORMAT", message: `Unsupported type: ${String(_exhaustive)}` };
}
}
}
export { sanitize };
//# sourceMappingURL=chunk-GLXKCVZM.js.map
//# sourceMappingURL=chunk-GLXKCVZM.js.map
{"version":3,"sources":["../src/sanitize/index.ts"],"names":[],"mappings":"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","file":"chunk-GLXKCVZM.js","sourcesContent":["/**\n * ETL-style document sanitization — applies fixes then validates (BR-SANITIZE-001).\n * @see docs/VALIDATION-RULES.md\n */\nimport { validateBoleto } from '../core/boleto/index.js';\nimport { validateCartaoCredito } from '../core/cartao-credito/index.js';\nimport { validateEan } from '../core/ean/index.js';\nimport { validateCep } from '../core/cep/index.js';\nimport { validateCnh } from '../core/cnh/index.js';\nimport { validateCnpj } from '../core/cnpj/index.js';\nimport { validateCpf } from '../core/cpf/index.js';\nimport { validateInscricaoEstadual } from '../core/inscricao-estadual/index.js';\nimport { validateIeSpRural } from '../core/inscricao-estadual/sp-rural.js';\nimport { validateNfeChave } from '../core/nfe-chave/index.js';\nimport { validatePisPasep } from '../core/pis-pasep/index.js';\nimport { validatePixKey } from '../core/pix/index.js';\nimport { validatePlaca } from '../core/placa/index.js';\nimport { validateProcessoJudicial } from '../core/processo-judicial/index.js';\nimport { validateRg } from '../core/rg/index.js';\nimport type { RgUfCode } from '../types/validation-result.js';\nimport { validateRenavam } from '../core/renavam/index.js';\nimport { validateTelefone } from '../core/telefone/index.js';\nimport { validateTituloEleitor } from '../core/titulo-eleitor/index.js';\nimport type { UfCode, ValidationErrorCode } from '../types/validation-result.js';\nimport { applyFixes } from './fixes.js';\n\nexport type SanitizableDocumentType =\n | 'cpf'\n | 'cnpj'\n | 'cep'\n | 'placa'\n | 'pis-pasep'\n | 'telefone'\n | 'cnh'\n | 'renavam'\n | 'titulo-eleitor'\n | 'processo-judicial'\n | 'rg'\n | 'nfe-chave'\n | 'boleto'\n | 'cartao-credito'\n | 'ean'\n | 'inscricao-estadual'\n | 'inscricao-estadual-produtor-rural'\n | 'pix';\n\nexport type SanitizeOptions = {\n uf?: UfCode;\n};\n\nexport type SanitizeSuccess = {\n ok: true;\n value: string;\n fixes: string[];\n};\n\nexport type SanitizeFailure = {\n ok: false;\n code: ValidationErrorCode;\n message: string;\n};\n\nexport type SanitizeResult = SanitizeSuccess | SanitizeFailure;\n\nexport type { FixResult } from './fixes.js';\n\ntype ValidateFixedResult =\n | { ok: true; value: string }\n | { ok: false; code: ValidationErrorCode; message: string };\n\nexport function sanitize(\n raw: string,\n type: SanitizableDocumentType,\n options: SanitizeOptions = {},\n): SanitizeResult {\n const { value: fixed, fixes } = applyFixes(raw, type);\n\n if (type === 'inscricao-estadual' && !options.uf) {\n return {\n ok: false,\n code: 'UNSUPPORTED_FORMAT',\n message: 'UF is required for inscricao-estadual sanitization',\n };\n }\n\n if (type === 'rg' && !options.uf) {\n return {\n ok: false,\n code: 'UNSUPPORTED_FORMAT',\n message: 'UF is required for RG sanitization',\n };\n }\n\n const validation = validateFixed(fixed, type, options.uf);\n if (!validation.ok) {\n return { ok: false, code: validation.code, message: validation.message };\n }\n\n return { ok: true, value: validation.value, fixes };\n}\n\nfunction validateFixed(value: string, type: SanitizableDocumentType, uf?: UfCode): ValidateFixedResult {\n switch (type) {\n case 'cpf': {\n const result = validateCpf(value);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'cnpj': {\n const result = validateCnpj(value);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'cep': {\n const result = validateCep(value);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'placa': {\n const result = validatePlaca(value);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'pis-pasep': {\n const result = validatePisPasep(value);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'telefone': {\n const result = validateTelefone(value);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'cnh': {\n const result = validateCnh(value);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'renavam': {\n const result = validateRenavam(value);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'titulo-eleitor': {\n const result = validateTituloEleitor(value);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'processo-judicial': {\n const result = validateProcessoJudicial(value);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'rg': {\n const result = validateRg(value, { uf: uf as RgUfCode });\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'nfe-chave': {\n const result = validateNfeChave(value);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'boleto': {\n const result = validateBoleto(value);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'cartao-credito': {\n const result = validateCartaoCredito(value);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'ean': {\n const result = validateEan(value);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'inscricao-estadual': {\n const result = validateInscricaoEstadual(value, { uf: uf as UfCode });\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'inscricao-estadual-produtor-rural': {\n const result = validateIeSpRural(value);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'pix': {\n const result = validatePixKey(value);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n default: {\n const _exhaustive: never = type;\n return { ok: false, code: 'UNSUPPORTED_FORMAT', message: `Unsupported type: ${String(_exhaustive)}` };\n }\n }\n}\n"]}
import { normalizeForPlatform } from './chunk-PL7QQ5U2.js';
// src/platform/types.ts
var PLATFORM_DOCUMENT_TYPES = [
"cpf",
"cnpj",
"cep",
"placa",
"pis-pasep",
"telefone",
"cnh",
"renavam",
"titulo-eleitor",
"processo-judicial",
"rg",
"nfe-chave",
"boleto",
"cartao-credito",
"ean",
"inscricao-estadual",
"inscricao-estadual-produtor-rural",
"pix",
"brcode"
];
function isPlatformDocumentType(type) {
return PLATFORM_DOCUMENT_TYPES.includes(type);
}
// src/compare/index.ts
function compare(a, b, type, options = {}) {
const left = normalizeForPlatform(a, type, options);
const right = normalizeForPlatform(b, type, options);
return { equal: left === right };
}
function compareRuntime(a, b, type, options = {}) {
if (!isPlatformDocumentType(type)) {
return { equal: false, code: "UNSUPPORTED_FORMAT", message: `Unknown document type: ${type}` };
}
return compare(a, b, type, options);
}
export { compare, compareRuntime };
//# sourceMappingURL=chunk-GOGAM2I4.js.map
//# sourceMappingURL=chunk-GOGAM2I4.js.map
{"version":3,"sources":["../src/platform/types.ts","../src/compare/index.ts"],"names":[],"mappings":";;;AAKO,IAAM,uBAAA,GAA0B;AAAA,EACrC,KAAA;AAAA,EACA,MAAA;AAAA,EACA,KAAA;AAAA,EACA,OAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA;AAAA,EACA,gBAAA;AAAA,EACA,mBAAA;AAAA,EACA,IAAA;AAAA,EACA,WAAA;AAAA,EACA,QAAA;AAAA,EACA,gBAAA;AAAA,EACA,KAAA;AAAA,EACA,oBAAA;AAAA,EACA,mCAAA;AAAA,EACA,KAAA;AAAA,EACA;AACF,CAAA;AAMO,SAAS,uBAAuB,IAAA,EAA4C;AACjF,EAAA,OAAQ,uBAAA,CAA8C,SAAS,IAAI,CAAA;AACrE;;;ACrBO,SAAS,QACd,CAAA,EACA,CAAA,EACA,IAAA,EACA,OAAA,GAA2B,EAAC,EACb;AACf,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;AACnD,EAAA,OAAO,EAAE,KAAA,EAAO,IAAA,KAAS,KAAA,EAAM;AACjC;AAGO,SAAS,eACd,CAAA,EACA,CAAA,EACA,IAAA,EACA,OAAA,GAA2B,EAAC,EACmD;AAC/E,EAAA,IAAI,CAAC,sBAAA,CAAuB,IAAI,CAAA,EAAG;AACjC,IAAA,OAAO,EAAE,OAAO,KAAA,EAAO,IAAA,EAAM,sBAAsB,OAAA,EAAS,CAAA,uBAAA,EAA0B,IAAI,CAAA,CAAA,EAAG;AAAA,EAC/F;AACA,EAAA,OAAO,OAAA,CAAQ,CAAA,EAAG,CAAA,EAAG,IAAA,EAAM,OAAO,CAAA;AACpC","file":"chunk-GOGAM2I4.js","sourcesContent":["import type { SanitizableDocumentType } from '../sanitize/index.js';\n\n/** Document types supported by compare, batch, and diff platform APIs. */\nexport type PlatformDocumentType = SanitizableDocumentType | 'pix' | 'brcode';\n\nexport const PLATFORM_DOCUMENT_TYPES = [\n 'cpf',\n 'cnpj',\n 'cep',\n 'placa',\n 'pis-pasep',\n 'telefone',\n 'cnh',\n 'renavam',\n 'titulo-eleitor',\n 'processo-judicial',\n 'rg',\n 'nfe-chave',\n 'boleto',\n 'cartao-credito',\n 'ean',\n 'inscricao-estadual',\n 'inscricao-estadual-produtor-rural',\n 'pix',\n 'brcode',\n] as const satisfies readonly PlatformDocumentType[];\n\nexport type PlatformOptions = {\n uf?: import('../types/validation-result.js').UfCode;\n};\n\nexport function isPlatformDocumentType(type: string): type is PlatformDocumentType {\n return (PLATFORM_DOCUMENT_TYPES as readonly string[]).includes(type);\n}\n","/**\n * Unified equality check — normalizes via strip/validate canonical (BR-COMPARE-001).\n * @see docs/OFFICIAL-SOURCES.md\n */\nimport { normalizeForPlatform } from '../platform/normalize.js';\nimport { isPlatformDocumentType } from '../platform/types.js';\nimport type { PlatformDocumentType, PlatformOptions } from '../platform/types.js';\n\nexport type CompareResult = {\n equal: boolean;\n};\n\nexport function compare(\n a: string,\n b: string,\n type: PlatformDocumentType,\n options: PlatformOptions = {},\n): CompareResult {\n const left = normalizeForPlatform(a, type, options);\n const right = normalizeForPlatform(b, type, options);\n return { equal: left === right };\n}\n\n/** Runtime guard for dynamic callers (non-exhaustive type string). */\nexport function compareRuntime(\n a: string,\n b: string,\n type: string,\n options: PlatformOptions = {},\n): CompareResult | { equal: false; code: 'UNSUPPORTED_FORMAT'; message: string } {\n if (!isPlatformDocumentType(type)) {\n return { equal: false, code: 'UNSUPPORTED_FORMAT', message: `Unknown document type: ${type}` };\n }\n return compare(a, b, type, options);\n}\n"]}
import { formatTelefone } from './chunk-VSSHM2V2.js';
import { formatTituloEleitor } from './chunk-A255RZZ7.js';
import { formatPlaca } from './chunk-KCRWHMDY.js';
import { formatRenavam } from './chunk-YC4GZZJP.js';
import { formatNfeChave } from './chunk-6KHTKD5U.js';
import { formatPisPasep } from './chunk-INPLK35M.js';
import { formatPixKey } from './chunk-LKDZEPWZ.js';
import { formatIeProdutorRural } from './chunk-5ZJMYR63.js';
import { formatCpf } from './chunk-GQRHLW5W.js';
import { formatCep } from './chunk-DXKHCIMV.js';
import { formatCnh } from './chunk-BTRWDUZF.js';
import { formatCnpj } from './chunk-HEPUV3XR.js';
import { computeRenavamCheckDigit, RENAVAM_BASE_LENGTH } from './chunk-4NS47CJG.js';
import { ANATEL_DDDS, validateTelefone } from './chunk-VTCBD6OS.js';
import { TITULO_ELEITOR_UF_BY_CODE, validateTituloEleitor, TITULO_ELEITOR_SEQUENTIAL_LENGTH, computeTituloEleitorCheckDigits, TITULO_ELEITOR_GOLDEN_PRIMARY, TITULO_ELEITOR_GOLDEN_SP_SPECIAL } from './chunk-6WBUKUHD.js';
import { PLACA_LEGACY_PATTERN, PLACA_MERCOSUL_PATTERN, validatePlaca } from './chunk-UG2YICWH.js';
import { NFE_IBGE_UF_CODES, validateNfeChave, NFE_MODELO_NFE, computeNfeChaveCheckDigit, NFE_CHAVE_GOLDEN_PRIMARY } from './chunk-XRT44FMY.js';
import { validateInscricaoEstadual, formatInscricaoEstadual } from './chunk-OHBSYBG7.js';
import { validateIeSpRural, computeIeSpCheckDigit, IE_SP_DV1_WEIGHTS, IE_SP_RURAL_GOLDEN, IE_SP_GOLDEN, IE_MT_GOLDEN_LEGACY, IE_DF_GOLDEN, computeIeToCheckDigit, computeIeRoCheckDigit, computeIeCyclicMod11CheckDigit, computeIeRrCheckDigit, computeIeAmCheckDigit, computeIeAlCheckDigit, IE_AP_PREFIX, computeIeApCheckDigit, IE_GO_PREFIXES, computeIeGoCheckDigit, computeIePeCheckDigit, computeIeBaModule, computeIeBaCheckDigit, computeIeMgFirstCheckDigit, computeIeMgSecondCheckDigit, IE_MT_PREFIX, computeIeMtCheckDigit, IE_DF_PREFIX, computeIeDfCheckDigit, IE_DF_DV1_WEIGHTS, IE_DF_DV2_WEIGHTS, IE_SP_DV2_WEIGHTS, IE_RR_PREFIX, computeIeCeCheckDigit, IE_AL_PREFIX, computeIePrStyleCheckDigit, IE_RN_PREFIX, IE_MA_PREFIX, IE_PA_PREFIX, IE_MS_PREFIX, computeIeAcCheckDigit, IE_AC_PREFIX } from './chunk-FGOPYU2L.js';
import { validateCep } from './chunk-C4E2AE2A.js';
import { computeCnhCheckDigits, CNH_BASE_LENGTH } from './chunk-JZOS2MO7.js';
import { PIS_PASEP_DV_WEIGHTS, PIS_PASEP_BASE_LENGTH } from './chunk-W64OQYC4.js';
import { formatBoleto } from './chunk-S6ER3Y3B.js';
import { buildArrecadacaoGoldenPair, validateArrecadacao, validateCodigoBarras } from './chunk-UB2ZUHQZ.js';
import { convertCodigoBarrasToLinhaDigits, BOLETO_GOLDEN_LINHA_STRIPPED, computeModulo11BarcodeDv, BOLETO_CURRENCY_REAL } from './chunk-7U64V3YD.js';
import { validateBrCode, buildStaticPixBrCode, BRCODE_GOLDEN_STATIC_EVP } from './chunk-L3WG36Y4.js';
import { validatePixEvpKey } from './chunk-7XVCTDJE.js';
import { CPF_DV1_WEIGHTS, CPF_DV2_WEIGHTS, CPF_BASE_LENGTH } from './chunk-DQQNXXGO.js';
import { PIX_GOLDEN_EVP } from './chunk-FA5ZM5UA.js';
import { cnpjCharValue } from './chunk-MGFDTECS.js';
import { CNPJ_DV1_WEIGHTS, CNPJ_DV2_WEIGHTS, CNPJ_BASE_LENGTH } from './chunk-LLJSXMO2.js';
import { computeCheckDigit } from './chunk-OTZHMJYE.js';
import { formatCartaoCredito } from './chunk-UFKWTBOO.js';
import { detectCardBrand, validateCartaoCredito, CARTAO_GOLDEN_AMEX, CARTAO_GOLDEN_MASTERCARD, CARTAO_GOLDEN_VISA, HIPERCARD_IIN_PREFIXES, ELO_IIN_PREFIXES } from './chunk-PU5TKJZI.js';
// src/generate/apply-mask.ts
function applyMask(type, value) {
switch (type) {
case "cpf": {
const result = formatCpf(value);
return result.ok ? result.formatted : value;
}
case "cnpj": {
const result = formatCnpj(value);
return result.ok ? result.formatted : value;
}
case "cep": {
const result = formatCep(value);
return result.ok ? result.formatted : value;
}
case "placa": {
const result = formatPlaca(value);
return result.ok ? result.formatted : value;
}
case "pis-pasep": {
const result = formatPisPasep(value);
return result.ok ? result.formatted : value;
}
case "renavam": {
const result = formatRenavam(value);
return result.ok ? result.formatted : value;
}
case "cnh": {
const result = formatCnh(value);
return result.ok ? result.formatted : value;
}
case "telefone": {
const result = formatTelefone(value);
return result.ok ? result.formatted : value;
}
case "cartao-credito": {
const result = formatCartaoCredito(value);
return result.ok ? result.formatted : value;
}
case "inscricao-estadual":
return value;
case "titulo-eleitor": {
const result = formatTituloEleitor(value);
return result.ok ? result.formatted : value;
}
case "pix": {
const result = formatPixKey(value);
return result.ok ? result.formatted : value;
}
case "nfe-chave": {
const result = formatNfeChave(value);
return result.ok ? result.formatted : value;
}
case "boleto": {
const result = formatBoleto(value);
return result.ok ? result.formatted : value;
}
case "boleto-arrecadacao":
return value;
case "brcode":
return value;
case "inscricao-estadual-produtor-rural": {
const result = formatIeProdutorRural(value);
return result.ok ? result.formatted : value;
}
default: {
const _exhaustive = type;
return _exhaustive;
}
}
}
// src/generate/boleto.ts
var MAX_ATTEMPTS = 80;
var BANK_CODES = ["001", "033", "104", "237", "341", "756"];
function buildBarcode(rng, validateBarcode) {
const bank = rng.pick(BANK_CODES);
const fator = rng.digits(4);
const valor = rng.digits(10);
const freeField = rng.digits(25);
const withoutDv = bank + BOLETO_CURRENCY_REAL + fator + valor + freeField;
const dv = computeModulo11BarcodeDv(withoutDv);
const barcode = `${bank}${BOLETO_CURRENCY_REAL}${String(dv)}${fator}${valor}${freeField}`;
if (!validateBarcode(barcode).ok) {
return null;
}
return barcode;
}
function generateBoletoValue(rng, validateBarcode = validateCodigoBarras) {
for (let attempt = 0; attempt < MAX_ATTEMPTS; attempt++) {
const barcode = buildBarcode(rng, validateBarcode);
if (barcode) {
return convertCodigoBarrasToLinhaDigits(barcode);
}
}
return BOLETO_GOLDEN_LINHA_STRIPPED;
}
// src/generate/boleto-arrecadacao.ts
var ARRECADACAO_GOLDEN_LINHA = buildArrecadacaoGoldenPair({
segment: "4",
valueType: "6",
value: "00000008123",
company: "4567",
free: "89012345678901234567890123"
}).linha;
var MAX_ATTEMPTS2 = 80;
var VALUE_TYPES = ["6", "7", "8", "9"];
var SEGMENTS = ["1", "2", "3", "4", "5", "6", "7", "9"];
function applyArrecadacaoLinhaMask(linha) {
return `${linha.slice(0, 11)} ${linha.slice(11, 23)} ${linha.slice(23, 35)} ${linha.slice(35, 47)} ${linha.charAt(47)}`;
}
function generateBoletoArrecadacaoValue(rng, validate = validateArrecadacao) {
for (let attempt = 0; attempt < MAX_ATTEMPTS2; attempt++) {
const pair = buildArrecadacaoGoldenPair({
segment: rng.pick(SEGMENTS),
valueType: rng.pick(VALUE_TYPES),
value: rng.digits(11),
company: rng.digits(4),
free: rng.digits(25)
});
if (validate(pair.linha).ok) {
return pair.linha;
}
}
return ARRECADACAO_GOLDEN_LINHA;
}
// src/generate/pix.ts
var MAX_ATTEMPTS3 = 80;
function seededUuidV4(rng) {
const bytes = Array.from({ length: 16 }, () => rng.int(0, 255));
bytes[6] = bytes[6] & 15 | 64;
bytes[8] = bytes[8] & 63 | 128;
const hex = bytes.map((byte) => byte.toString(16).padStart(2, "0")).join("");
return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20, 32)}`;
}
function generatePixEvpValue(rng, validate = validatePixEvpKey) {
for (let attempt = 0; attempt < MAX_ATTEMPTS3; attempt++) {
const candidate = seededUuidV4(rng);
if (validate(candidate).ok) {
return candidate;
}
}
return PIX_GOLDEN_EVP;
}
// src/generate/brcode.ts
var MAX_ATTEMPTS4 = 50;
var DEFAULT_MERCHANT_NAME = "Merchant Test";
var DEFAULT_MERCHANT_CITY = "BRASILIA";
function generateBrcodeValue(rng, input = {}, validate = validateBrCode) {
const pixKey = input.pixKey ?? generatePixEvpValue(rng);
const merchantName = input.merchantName ?? DEFAULT_MERCHANT_NAME;
const merchantCity = input.merchantCity ?? DEFAULT_MERCHANT_CITY;
for (let attempt = 0; attempt < MAX_ATTEMPTS4; attempt++) {
const payload = buildStaticPixBrCode({
pixKey,
merchantName,
merchantCity,
...input.amount ? { amount: input.amount } : {},
...input.txid ? { txid: input.txid } : {}
});
if (validate(payload).ok) {
return payload;
}
}
return BRCODE_GOLDEN_STATIC_EVP;
}
// src/generate/random.ts
function mulberry32(seed) {
let state = seed >>> 0;
return () => {
state = state + 1831565813 >>> 0;
let t = state;
t = Math.imul(t ^ t >>> 15, t | 1);
t ^= t + Math.imul(t ^ t >>> 7, t | 61);
return ((t ^ t >>> 14) >>> 0) / 4294967296;
};
}
function createRandomSource(seed) {
const nextFn = seed === void 0 ? () => Math.random() : mulberry32(seed);
return {
next: nextFn,
int(min, max) {
return Math.floor(nextFn() * (max - min + 1)) + min;
},
digit() {
return String(Math.floor(nextFn() * 10));
},
digits(count) {
let out = "";
for (let i = 0; i < count; i++) {
out += this.digit();
}
return out;
},
letter() {
const letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
return letters.charAt(this.int(0, letters.length - 1));
},
pick(items) {
return items[this.int(0, items.length - 1)];
}
};
}
function hasRepeatedChars(value) {
const first = value[0];
for (let i = 1; i < value.length; i++) {
if (value[i] !== first) {
return false;
}
}
return true;
}
function computeLuhnCheckDigit(partial) {
let sum = 0;
let double = true;
for (let i = partial.length - 1; i >= 0; i--) {
let digit = Number(partial.charAt(i));
if (double) {
digit *= 2;
if (digit > 9) {
digit -= 9;
}
}
sum += digit;
double = !double;
}
return String((10 - sum % 10) % 10);
}
// src/generate/cartao-credito.ts
var MAX_ATTEMPTS5 = 50;
var GENERATABLE_CARD_BRANDS = [
"visa",
"mastercard",
"amex",
"elo",
"hipercard"
];
var BRAND_FALLBACKS = {
visa: CARTAO_GOLDEN_VISA,
mastercard: CARTAO_GOLDEN_MASTERCARD,
amex: CARTAO_GOLDEN_AMEX,
elo: "401178000000006",
hipercard: "606282000000003"
};
function buildBrandPartial(rng, brand) {
switch (brand) {
case "visa":
return `411111${rng.digits(9)}`;
case "mastercard":
return `${rng.pick(["51", "52", "53", "54", "55"])}${rng.digits(13)}`;
case "amex":
return `${rng.pick(["34", "37"])}${rng.digits(12)}`;
case "elo": {
const prefix = rng.pick(ELO_IIN_PREFIXES);
return `${prefix}${rng.digits(16 - prefix.length - 1)}`;
}
case "hipercard": {
const prefix = rng.pick(HIPERCARD_IIN_PREFIXES);
return `${prefix}${rng.digits(16 - prefix.length - 1)}`;
}
default: {
const _exhaustive = brand;
return _exhaustive;
}
}
}
function buildRandomPartial(rng) {
const length = rng.int(13, 16);
return rng.digits(length - 1);
}
function generateCartaoCreditoValue(rng, brand, detectBrand = detectCardBrand, validate = validateCartaoCredito) {
for (let attempt = 0; attempt < MAX_ATTEMPTS5; attempt++) {
const partial = brand ? buildBrandPartial(rng, brand) : buildRandomPartial(rng);
if (hasRepeatedChars(partial)) {
continue;
}
const candidate = partial + computeLuhnCheckDigit(partial);
if (!validate(candidate).ok) {
continue;
}
if (brand && detectBrand(candidate) !== brand) {
continue;
}
return candidate;
}
if (brand) {
return BRAND_FALLBACKS[brand];
}
return CARTAO_GOLDEN_VISA;
}
function isGeneratableCardBrand(brand) {
return GENERATABLE_CARD_BRANDS.includes(brand);
}
// src/generate/cpf-alpha.ts
var CPF_ALPHA_GENERATE_STUB = {
ok: false,
code: "CPF_ALPHA_SPEC_PENDING",
message: "Alphanumeric CPF generation is pending official RFB specification \u2014 numeric CPF only until published"
};
function rejectCpfAlphanumericGenerate() {
return CPF_ALPHA_GENERATE_STUB;
}
function assertCpfAlphanumericGenerateAllowed() {
throw new Error(`${CPF_ALPHA_GENERATE_STUB.code}: ${CPF_ALPHA_GENERATE_STUB.message}`);
}
// src/generate/inscricao-estadual-produtor-rural.ts
var MAX_ATTEMPTS6 = 50;
function generateIeProdutorRuralValue(rng, validate = validateIeSpRural) {
for (let attempt = 0; attempt < MAX_ATTEMPTS6; attempt++) {
const dvInput = rng.digits(8);
const dv = String(computeIeSpCheckDigit(dvInput, IE_SP_DV1_WEIGHTS));
const suffix = rng.digits(3);
const candidate = `P${dvInput}${dv}${suffix}`;
if (validate(candidate).ok) {
return candidate;
}
}
return IE_SP_RURAL_GOLDEN;
}
// src/generate/inscricao-estadual.ts
var MAX_ATTEMPTS7 = 50;
var IE_GENERATE_FALLBACKS = {
AC: "0113253877910",
AL: "248682954",
AM: "917050150",
AP: "039045820",
BA: "63984300",
CE: "836182316",
DF: IE_DF_GOLDEN,
ES: "463921810",
GO: "112237118",
MA: "123517680",
MG: "2490944173923",
MS: "282570926",
MT: IE_MT_GOLDEN_LEGACY,
PA: "153662476",
PB: "312029063",
PE: "064970639",
PI: "465180426",
PR: "0031595584",
RJ: "06540481",
RN: "204502292",
RO: "39206839474860",
RR: "247681047",
RS: "3288345503",
SC: "632480718",
SE: "826594042",
SP: IE_SP_GOLDEN,
TO: "27035910938"
};
function prefixBody8(rng, prefix) {
return prefix + rng.digits(8 - prefix.length);
}
function buildCeStyle(rng, prefix) {
const body = prefix ? prefixBody8(rng, prefix) : rng.digits(8);
return body + String(computeIeCeCheckDigit(body));
}
function buildDualTrailing(rng, prefix, bodyLength, computeFirst, computeSecond) {
const body = prefix + rng.digits(bodyLength - prefix.length);
const first = computeFirst(body);
const second = computeSecond(body + String(first));
return body + String(first) + String(second);
}
function generateSpValue(rng) {
const head = rng.digits(8);
const middle = rng.digits(2);
let partial = `${head}0${middle}0`;
const dv1 = computeIeSpCheckDigit(partial, IE_SP_DV1_WEIGHTS);
partial = `${head}${String(dv1)}${middle}0`;
const dv2 = computeIeSpCheckDigit(partial, IE_SP_DV2_WEIGHTS);
return `${head}${String(dv1)}${middle}${String(dv2)}`;
}
function generateDfValue(rng) {
const core11 = IE_DF_PREFIX + rng.digits(9);
const dv1 = computeIeDfCheckDigit(core11, IE_DF_DV1_WEIGHTS);
const dv2 = computeIeDfCheckDigit(core11, IE_DF_DV2_WEIGHTS, true, dv1);
return `${core11}${String(dv1)}${String(dv2)}`;
}
function generateMtValue(rng) {
const padded = `${IE_MT_PREFIX.padStart(4, "0")}${rng.digits(6)}`;
const dv = computeIeMtCheckDigit(padded.slice(0, 10));
return `${padded.slice(0, 10)}${String(dv)}`;
}
function generateMgValue(rng) {
const body = rng.digits(11);
const first = computeIeMgFirstCheckDigit(body);
const second = computeIeMgSecondCheckDigit(body + String(first));
return body + String(first) + String(second);
}
function generateBaValue(rng) {
const body = rng.digits(6);
const mod = computeIeBaModule(`${body}00`);
const second = computeIeBaCheckDigit(body, mod);
const first = computeIeBaCheckDigit(body + String(second), mod);
return body + String(first) + String(second);
}
function generatePeValue(rng) {
const body = rng.digits(7);
const first = computeIePeCheckDigit(body);
const second = computeIePeCheckDigit(body + String(first));
return body + String(first) + String(second);
}
function generateGoValue(rng) {
const prefix = rng.pick([...IE_GO_PREFIXES]);
const body = prefix + rng.digits(6);
return body + String(computeIeGoCheckDigit(body));
}
function generateApValue(rng) {
const body = IE_AP_PREFIX + rng.digits(6);
const dv = computeIeApCheckDigit(body);
return body + String(dv);
}
var GENERATORS = {
SP: generateSpValue,
DF: generateDfValue,
MT: generateMtValue,
MG: generateMgValue,
BA: generateBaValue,
PE: generatePeValue,
GO: generateGoValue,
AP: generateApValue,
AC: (rng) => buildDualTrailing(rng, IE_AC_PREFIX, 11, computeIeAcCheckDigit, computeIeAcCheckDigit),
AL: (rng) => {
const body = prefixBody8(rng, IE_AL_PREFIX);
return body + String(computeIeAlCheckDigit(body));
},
AM: (rng) => {
const body = rng.digits(8);
return body + String(computeIeAmCheckDigit(body));
},
CE: (rng) => buildCeStyle(rng),
ES: (rng) => buildCeStyle(rng),
SC: (rng) => buildCeStyle(rng),
SE: (rng) => buildCeStyle(rng),
PB: (rng) => buildCeStyle(rng),
PI: (rng) => buildCeStyle(rng),
MS: (rng) => buildCeStyle(rng, IE_MS_PREFIX),
PA: (rng) => buildCeStyle(rng, IE_PA_PREFIX),
MA: (rng) => buildCeStyle(rng, IE_MA_PREFIX),
RN: (rng) => buildCeStyle(rng, IE_RN_PREFIX),
RR: (rng) => {
const body = prefixBody8(rng, IE_RR_PREFIX);
return body + String(computeIeRrCheckDigit(body));
},
PR: (rng) => buildDualTrailing(rng, "", 8, computeIePrStyleCheckDigit, computeIePrStyleCheckDigit),
RJ: (rng) => {
const body = rng.digits(7);
return body + String(computeIeCyclicMod11CheckDigit(body, 2, 7));
},
RS: (rng) => {
const body = rng.digits(9);
return body + String(computeIeCyclicMod11CheckDigit(body, 2, 9));
},
RO: (rng) => {
const body = rng.digits(13);
return body + String(computeIeRoCheckDigit(body));
},
TO: (rng) => {
const body = rng.digits(8);
return body + String(computeIeToCheckDigit(body));
}
};
function generateInscricaoEstadualValue(uf, rng, validate = validateInscricaoEstadual) {
const generator = GENERATORS[uf];
for (let attempt = 0; attempt < MAX_ATTEMPTS7; attempt++) {
const candidate = generator(rng);
if (validate(candidate, { uf }).ok) {
return candidate;
}
}
return IE_GENERATE_FALLBACKS[uf];
}
// src/generate/nfe-chave.ts
var MAX_ATTEMPTS8 = 80;
var NFE_UF_CODES = [...NFE_IBGE_UF_CODES];
function generateNfeChaveValue(rng, validate = validateNfeChave) {
for (let attempt = 0; attempt < MAX_ATTEMPTS8; attempt++) {
const cuf = String(rng.pick(NFE_UF_CODES)).padStart(2, "0");
const aamm = rng.digits(4);
const cnpj = rng.digits(14);
const serie = rng.digits(3);
const invoiceNumber = rng.digits(9);
const emissionType = String(rng.int(0, 9));
const numericCode = rng.digits(8);
const base43 = `${cuf}${aamm}${cnpj}${NFE_MODELO_NFE}${serie}${invoiceNumber}${emissionType}${numericCode}`;
const candidate = `${base43}${String(computeNfeChaveCheckDigit(base43))}`;
if (validate(candidate).ok) {
return candidate;
}
}
return NFE_CHAVE_GOLDEN_PRIMARY;
}
// src/generate/titulo-eleitor.ts
var MAX_ATTEMPTS9 = 50;
var TITULO_ELEITOR_CODE_BY_UF = Object.fromEntries(
Object.entries(TITULO_ELEITOR_UF_BY_CODE).map(([code, uf]) => [uf, Number(code)])
);
var TITULO_GENERATE_FALLBACKS = {
SP: TITULO_ELEITOR_GOLDEN_SP_SPECIAL,
SC: TITULO_ELEITOR_GOLDEN_PRIMARY
};
function deterministicTituloFallback(uf) {
const ufCode = TITULO_ELEITOR_CODE_BY_UF[uf];
const ufDigits = String(ufCode).padStart(2, "0");
const sequential = "12345678";
const checkDigits = computeTituloEleitorCheckDigits(sequential, ufDigits, ufCode);
return `${sequential}${ufDigits}${checkDigits}`;
}
function generateTituloEleitorValue(uf, rng, validate = validateTituloEleitor) {
const ufCode = TITULO_ELEITOR_CODE_BY_UF[uf];
const ufDigits = String(ufCode).padStart(2, "0");
for (let attempt = 0; attempt < MAX_ATTEMPTS9; attempt++) {
const sequential = rng.digits(TITULO_ELEITOR_SEQUENTIAL_LENGTH);
if (hasRepeatedChars(sequential)) {
continue;
}
const checkDigits = computeTituloEleitorCheckDigits(sequential, ufDigits, ufCode);
const candidate = `${sequential}${ufDigits}${checkDigits}`;
if (validate(candidate).ok) {
return candidate;
}
}
return TITULO_GENERATE_FALLBACKS[uf] ?? deterministicTituloFallback(uf);
}
// src/generate/index.ts
function shouldApplyGenerateMask(options) {
return options.masked === true && options.stripped !== true;
}
var CNPJ_ALNUM_CHARS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var MAX_ATTEMPTS10 = 50;
function digitValue(char) {
return Number(char);
}
function randomBaseDigits(rng, length) {
for (let attempt = 0; attempt < MAX_ATTEMPTS10; attempt++) {
const base = rng.digits(length);
if (!hasRepeatedChars(base)) {
return base;
}
}
return "123456789".slice(0, length).padEnd(length, "1");
}
function randomCnpjAlphanumericBase(rng) {
for (let attempt = 0; attempt < MAX_ATTEMPTS10; attempt++) {
let base = "";
for (let i = 0; i < CNPJ_BASE_LENGTH; i++) {
base += CNPJ_ALNUM_CHARS.charAt(rng.int(0, CNPJ_ALNUM_CHARS.length - 1));
}
if (!hasRepeatedChars(base)) {
return base;
}
}
return "12ABC34501DE";
}
function generateCpfValue(rng) {
const base = randomBaseDigits(rng, CPF_BASE_LENGTH);
const dv1 = String(computeCheckDigit(base, CPF_DV1_WEIGHTS, digitValue));
const dv2 = String(computeCheckDigit(base + dv1, CPF_DV2_WEIGHTS, digitValue));
return base + dv1 + dv2;
}
function generateCnpjValue(rng, format) {
if (format === "alphanumeric") {
const base2 = randomCnpjAlphanumericBase(rng);
const dv12 = String(computeCheckDigit(base2, CNPJ_DV1_WEIGHTS, cnpjCharValue));
const dv22 = String(computeCheckDigit(base2 + dv12, CNPJ_DV2_WEIGHTS, cnpjCharValue));
return base2 + dv12 + dv22;
}
const base = randomBaseDigits(rng, CNPJ_BASE_LENGTH);
const dv1 = String(computeCheckDigit(base, CNPJ_DV1_WEIGHTS, digitValue));
const dv2 = String(computeCheckDigit(base + dv1, CNPJ_DV2_WEIGHTS, digitValue));
return base + dv1 + dv2;
}
function generateCepValue(rng) {
for (let attempt = 0; attempt < MAX_ATTEMPTS10; attempt++) {
const value = rng.digits(8);
if (value !== "00000000" && validateCep(value).ok) {
return value;
}
}
return "01310100";
}
function generatePlacaValue(rng, format) {
const mode = format === "legacy" ? "legacy" : "mercosul";
for (let attempt = 0; attempt < MAX_ATTEMPTS10; attempt++) {
const letters = rng.letter() + rng.letter() + rng.letter();
let candidate;
if (mode === "legacy") {
candidate = letters + rng.digits(4);
if (!PLACA_LEGACY_PATTERN.test(candidate)) {
continue;
}
} else {
candidate = letters + rng.digit() + rng.pick(["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]) + rng.digits(2);
if (!PLACA_MERCOSUL_PATTERN.test(candidate)) {
continue;
}
}
if (validatePlaca(candidate).ok) {
return candidate;
}
}
return mode === "legacy" ? "ABC1234" : "ABC1D23";
}
function generatePisValue(rng) {
const base = randomBaseDigits(rng, PIS_PASEP_BASE_LENGTH);
const dv = String(computeCheckDigit(base, PIS_PASEP_DV_WEIGHTS, digitValue));
return base + dv;
}
function generateRenavamValue(rng) {
const base = randomBaseDigits(rng, RENAVAM_BASE_LENGTH);
const dv = String(computeRenavamCheckDigit(base));
return base + dv;
}
function generateCnhValue(rng) {
const base = randomBaseDigits(rng, CNH_BASE_LENGTH);
return base + computeCnhCheckDigits(base);
}
function generateTelefoneValue(rng, format) {
const ddd = rng.pick(ANATEL_DDDS);
const useFixo = format === "fixo";
for (let attempt = 0; attempt < MAX_ATTEMPTS10; attempt++) {
const local = useFixo ? String(rng.int(2, 5)) + rng.digits(7) : `9${rng.digits(8)}`;
const candidate = ddd + local;
if (validateTelefone(candidate).ok) {
return candidate;
}
}
return useFixo ? "1133333333" : "11999999999";
}
function generateCartaoValue(rng, brand) {
return generateCartaoCreditoValue(rng, brand);
}
function applyInscricaoEstadualGenerateMask(value, uf) {
const formatted = formatInscricaoEstadual(value, { uf });
return formatted.ok ? formatted.formatted : value;
}
function generate(type, options = {}) {
const rng = createRandomSource(options.seed);
let value;
switch (type) {
case "cpf":
if (options.format === "alphanumeric") {
assertCpfAlphanumericGenerateAllowed();
}
value = generateCpfValue(rng);
break;
case "cnpj":
value = generateCnpjValue(rng, options.format);
break;
case "cep":
value = generateCepValue(rng);
break;
case "placa":
value = generatePlacaValue(rng, options.format);
break;
case "pis-pasep":
value = generatePisValue(rng);
break;
case "renavam":
value = generateRenavamValue(rng);
break;
case "cnh":
value = generateCnhValue(rng);
break;
case "telefone":
value = generateTelefoneValue(rng, options.format);
break;
case "cartao-credito":
value = generateCartaoValue(rng, options.brand);
break;
case "inscricao-estadual": {
if (!options.uf) {
throw new Error("UF is required for inscricao-estadual generation");
}
value = generateInscricaoEstadualValue(options.uf, rng);
break;
}
case "titulo-eleitor": {
if (!options.uf) {
throw new Error("UF is required for titulo-eleitor generation");
}
value = generateTituloEleitorValue(options.uf, rng);
break;
}
case "pix":
value = generatePixEvpValue(rng);
break;
case "nfe-chave":
value = generateNfeChaveValue(rng);
break;
case "brcode":
value = generateBrcodeValue(rng, {
pixKey: options.pixKey,
merchantName: options.merchantName,
merchantCity: options.merchantCity,
amount: options.amount,
txid: options.txid
});
break;
case "boleto":
value = generateBoletoValue(rng);
break;
case "boleto-arrecadacao":
value = generateBoletoArrecadacaoValue(rng);
break;
case "inscricao-estadual-produtor-rural":
value = generateIeProdutorRuralValue(rng);
break;
default: {
const _exhaustive = type;
throw new Error(`Unsupported generatable type: ${String(_exhaustive)}`);
}
}
if (shouldApplyGenerateMask(options) && type === "inscricao-estadual") {
return applyInscricaoEstadualGenerateMask(value, options.uf);
}
if (shouldApplyGenerateMask(options) && type === "boleto-arrecadacao") {
return applyArrecadacaoLinhaMask(value);
}
return shouldApplyGenerateMask(options) ? applyMask(type, value) : value;
}
export { CPF_ALPHA_GENERATE_STUB, GENERATABLE_CARD_BRANDS, applyArrecadacaoLinhaMask, assertCpfAlphanumericGenerateAllowed, generate, isGeneratableCardBrand, rejectCpfAlphanumericGenerate };
//# sourceMappingURL=chunk-JYSGHDBE.js.map
//# sourceMappingURL=chunk-JYSGHDBE.js.map

Sorry, the diff of this file is too big to display

import { normalizeForPlatform } from './chunk-PL7QQ5U2.js';
// src/diff/index.ts
function diff(a, b, type, options = {}) {
const left = normalizeForPlatform(a, type, options);
const right = normalizeForPlatform(b, type, options);
if (left === right) {
return { changed: false, fields: [] };
}
const leftFields = splitFields(left, type);
const rightFields = splitFields(right, type);
const keys = /* @__PURE__ */ new Set([...Object.keys(leftFields), ...Object.keys(rightFields)]);
const fields = [];
for (const field of keys) {
const leftValue = leftFields[field];
const rightValue = rightFields[field];
if (leftValue !== rightValue) {
fields.push({ field, a: leftValue, b: rightValue });
}
}
return { changed: fields.length > 0, fields };
}
function splitFields(value, type) {
switch (type) {
case "cpf":
return {
base: value.slice(0, 9),
dv: value.slice(9, 11)
};
case "cnpj":
return {
base: value.slice(0, 12),
dv: value.slice(12, 14)
};
case "cep":
return {
prefix: value.slice(0, 5),
suffix: value.slice(5, 8)
};
case "telefone":
return { ddd: value.slice(0, 2), subscriber: value.slice(2) };
case "pis-pasep":
return {
base: value.slice(0, 10),
dv: value.slice(10, 11)
};
case "cnh":
return {
base: value.slice(0, 9),
dv1: value.slice(9, 10),
dv2: value.slice(10, 11)
};
case "renavam":
return {
base: value.slice(0, 10),
dv: value.slice(10, 11)
};
case "titulo-eleitor":
return {
sequential: value.slice(0, 8),
uf: value.slice(8, 10),
dv: value.slice(10, 12)
};
case "processo-judicial":
return {
sequencial: value.slice(0, 7),
checkDigits: value.slice(7, 9),
ano: value.slice(9, 13),
segmentoJustica: value.slice(13, 14),
tribunal: value.slice(14, 16),
origem: value.slice(16, 20)
};
case "nfe-chave":
return {
cUF: value.slice(0, 2),
aamm: value.slice(2, 6),
cnpj: value.slice(6, 20),
mod: value.slice(20, 22),
serie: value.slice(22, 25),
nNF: value.slice(25, 34),
tpEmis: value.slice(34, 35),
cNF: value.slice(35, 43),
cDV: value.slice(43, 44)
};
case "placa":
return { value };
case "boleto":
case "cartao-credito":
case "ean":
case "inscricao-estadual":
case "inscricao-estadual-produtor-rural":
case "rg":
case "pix":
case "brcode":
return { value };
default: {
return { value };
}
}
}
export { diff };
//# sourceMappingURL=chunk-K6U6VQUL.js.map
//# sourceMappingURL=chunk-K6U6VQUL.js.map
{"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-K6U6VQUL.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"]}
import { validateRg } from './chunk-6F3A3NT4.js';
import { validateRenavam } from './chunk-4NS47CJG.js';
import { validateProcessoJudicial } from './chunk-A4QBLVVO.js';
import { validateTelefone } from './chunk-VTCBD6OS.js';
import { validateTituloEleitor } from './chunk-6WBUKUHD.js';
import { validatePlaca } from './chunk-UG2YICWH.js';
import { validateNfeChave } from './chunk-XRT44FMY.js';
import { validatePisPasep } from './chunk-HORKZQIH.js';
import { validateInscricaoEstadual } from './chunk-OHBSYBG7.js';
import { validateIeSpRural } from './chunk-FGOPYU2L.js';
import { validateEan } from './chunk-OFAU4VTU.js';
import { validateCep } from './chunk-C4E2AE2A.js';
import { validateCnh } from './chunk-JZOS2MO7.js';
import { validateBoleto } from './chunk-JOBIJQGE.js';
import { validateBrCode } from './chunk-L3WG36Y4.js';
import { validatePixKey } from './chunk-7XVCTDJE.js';
import { validateCpf } from './chunk-DQQNXXGO.js';
import { validateCnpj } from './chunk-MGFDTECS.js';
import { validateCartaoCredito } from './chunk-PU5TKJZI.js';
// src/platform/validate-dispatch.ts
function validateForPlatform(input, type, options = {}) {
if (type === "inscricao-estadual" && !options.uf) {
return {
ok: false,
code: "UNSUPPORTED_FORMAT",
message: "UF is required for inscricao-estadual validation"
};
}
if (type === "rg" && !options.uf) {
return {
ok: false,
code: "UNSUPPORTED_FORMAT",
message: "UF is required for RG validation"
};
}
switch (type) {
case "cpf": {
const result = validateCpf(input);
return result.ok ? { ok: true, value: result.value } : result;
}
case "cnpj": {
const result = validateCnpj(input);
return result.ok ? { ok: true, value: result.value } : result;
}
case "cep": {
const result = validateCep(input);
return result.ok ? { ok: true, value: result.value } : result;
}
case "placa": {
const result = validatePlaca(input);
return result.ok ? { ok: true, value: result.value } : result;
}
case "pis-pasep": {
const result = validatePisPasep(input);
return result.ok ? { ok: true, value: result.value } : result;
}
case "telefone": {
const result = validateTelefone(input);
return result.ok ? { ok: true, value: result.value } : result;
}
case "cnh": {
const result = validateCnh(input);
return result.ok ? { ok: true, value: result.value } : result;
}
case "renavam": {
const result = validateRenavam(input);
return result.ok ? { ok: true, value: result.value } : result;
}
case "titulo-eleitor": {
const result = validateTituloEleitor(input);
return result.ok ? { ok: true, value: result.value } : result;
}
case "processo-judicial": {
const result = validateProcessoJudicial(input);
return result.ok ? { ok: true, value: result.value } : result;
}
case "rg": {
const result = validateRg(input, { uf: options.uf });
return result.ok ? { ok: true, value: result.value } : result;
}
case "nfe-chave": {
const result = validateNfeChave(input);
return result.ok ? { ok: true, value: result.value } : result;
}
case "boleto": {
const result = validateBoleto(input);
return result.ok ? { ok: true, value: result.value } : result;
}
case "cartao-credito": {
const result = validateCartaoCredito(input);
return result.ok ? { ok: true, value: result.value } : result;
}
case "ean": {
const result = validateEan(input);
return result.ok ? { ok: true, value: result.value } : result;
}
case "inscricao-estadual": {
const result = validateInscricaoEstadual(input, { uf: options.uf });
return result.ok ? { ok: true, value: result.value } : result;
}
case "inscricao-estadual-produtor-rural": {
const result = validateIeSpRural(input);
return result.ok ? { ok: true, value: result.value } : result;
}
case "pix": {
const result = validatePixKey(input);
return result.ok ? { ok: true, value: result.value } : result;
}
case "brcode": {
const result = validateBrCode(input);
return result.ok ? { ok: true, value: result.value } : result;
}
default: {
const _exhaustive = type;
return {
ok: false,
code: "UNSUPPORTED_FORMAT",
message: `Unsupported type: ${String(_exhaustive)}`
};
}
}
}
// src/batch/parse-csv.ts
function parseCsvRow(line, delimiter) {
const fields = [];
let current = "";
let inQuotes = false;
for (let index = 0; index < line.length; index += 1) {
const char = line[index];
if (char === '"') {
if (inQuotes && line[index + 1] === '"') {
current += '"';
index += 1;
} else {
inQuotes = !inQuotes;
}
continue;
}
if (char === delimiter && !inQuotes) {
fields.push(current);
current = "";
continue;
}
current += char;
}
fields.push(current);
return fields;
}
function resolveColumnIndex(col, header) {
const trimmed = col.trim();
if (/^\d+$/.test(trimmed)) {
const index2 = Number.parseInt(trimmed, 10);
if (index2 >= 0 && index2 < header.length) {
return index2;
}
return null;
}
const index = header.findIndex((field) => field.trim().toLowerCase() === trimmed.toLowerCase());
return index >= 0 ? index : null;
}
function parseBatchCsv(raw, options) {
const delimiter = options.delimiter ?? ",";
const lines = raw.split(/\r?\n/).filter((line) => line.trim().length > 0);
if (lines.length === 0) {
return { ok: false, message: "CSV input is empty" };
}
const skipHeader = options.skipHeader ?? true;
let colIdx;
let startIdx = 0;
if (skipHeader) {
const header = parseCsvRow(lines[0], delimiter);
const resolved = resolveColumnIndex(options.col, header);
if (resolved === null) {
return {
ok: false,
message: `Column "${options.col}" not found in header: [${header.join(", ")}]`
};
}
colIdx = resolved;
startIdx = 1;
} else {
const asIndex = Number.parseInt(options.col.trim(), 10);
if (!/^\d+$/.test(options.col.trim())) {
return {
ok: false,
message: `Column "${options.col}" requires --skip-header when using header name`
};
}
colIdx = asIndex;
}
const values = [];
for (let rowIndex = startIdx; rowIndex < lines.length; rowIndex += 1) {
const row = parseCsvRow(lines[rowIndex], delimiter);
const field = row.at(colIdx);
if (field === void 0) {
continue;
}
const cell = field.trim();
if (cell.length > 0) {
values.push(cell);
}
}
if (values.length === 0) {
return { ok: false, message: "No values found in CSV column" };
}
return { ok: true, values };
}
// src/batch/index.ts
function batch(inputs, type, options = {}) {
const valid = [];
const invalid = [];
inputs.forEach((input, index) => {
const result = validateForPlatform(input, type, options);
if (result.ok) {
valid.push({ index, input, value: result.value });
} else {
invalid.push({ index, input, code: result.code, message: result.message });
}
});
return {
valid,
invalid,
summary: {
total: inputs.length,
valid: valid.length,
invalid: invalid.length
}
};
}
export { batch, parseBatchCsv };
//# sourceMappingURL=chunk-KWUXOOEM.js.map
//# sourceMappingURL=chunk-KWUXOOEM.js.map
{"version":3,"sources":["../src/platform/validate-dispatch.ts","../src/batch/parse-csv.ts","../src/batch/index.ts"],"names":["index"],"mappings":"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","file":"chunk-KWUXOOEM.js","sourcesContent":["import { validateBrCode } from '../core/brcode/index.js';\nimport { validateBoleto } from '../core/boleto/index.js';\nimport { validateCartaoCredito } from '../core/cartao-credito/index.js';\nimport { validateEan } from '../core/ean/index.js';\nimport { validateCep } from '../core/cep/index.js';\nimport { validateCnh } from '../core/cnh/index.js';\nimport { validateCnpj } from '../core/cnpj/index.js';\nimport { validateCpf } from '../core/cpf/index.js';\nimport { validateInscricaoEstadual } from '../core/inscricao-estadual/index.js';\nimport { validateIeSpRural } from '../core/inscricao-estadual/sp-rural.js';\nimport { validateNfeChave } from '../core/nfe-chave/index.js';\nimport { validatePisPasep } from '../core/pis-pasep/index.js';\nimport { validatePlaca } from '../core/placa/index.js';\nimport { validatePixKey } from '../core/pix/index.js';\nimport { validateRenavam } from '../core/renavam/index.js';\nimport { validateTelefone } from '../core/telefone/index.js';\nimport { validateProcessoJudicial } from '../core/processo-judicial/index.js';\nimport { validateRg } from '../core/rg/index.js';\nimport type { RgUfCode } from '../types/validation-result.js';\nimport { validateTituloEleitor } from '../core/titulo-eleitor/index.js';\nimport type { UfCode, ValidationErrorCode } from '../types/validation-result.js';\nimport type { PlatformDocumentType, PlatformOptions } from './types.js';\n\nexport type ValidateDispatchSuccess = { ok: true; value: string };\nexport type ValidateDispatchFailure = {\n ok: false;\n code: ValidationErrorCode;\n message: string;\n};\nexport type ValidateDispatchResult = ValidateDispatchSuccess | ValidateDispatchFailure;\n\nexport function validateForPlatform(\n input: string,\n type: PlatformDocumentType,\n options: PlatformOptions = {},\n): ValidateDispatchResult {\n if (type === 'inscricao-estadual' && !options.uf) {\n return {\n ok: false,\n code: 'UNSUPPORTED_FORMAT',\n message: 'UF is required for inscricao-estadual validation',\n };\n }\n\n if (type === 'rg' && !options.uf) {\n return {\n ok: false,\n code: 'UNSUPPORTED_FORMAT',\n message: 'UF is required for RG validation',\n };\n }\n\n switch (type) {\n case 'cpf': {\n const result = validateCpf(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'cnpj': {\n const result = validateCnpj(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'cep': {\n const result = validateCep(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'placa': {\n const result = validatePlaca(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'pis-pasep': {\n const result = validatePisPasep(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'telefone': {\n const result = validateTelefone(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'cnh': {\n const result = validateCnh(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'renavam': {\n const result = validateRenavam(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'titulo-eleitor': {\n const result = validateTituloEleitor(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'processo-judicial': {\n const result = validateProcessoJudicial(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'rg': {\n const result = validateRg(input, { uf: options.uf as RgUfCode });\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'nfe-chave': {\n const result = validateNfeChave(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'boleto': {\n const result = validateBoleto(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'cartao-credito': {\n const result = validateCartaoCredito(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'ean': {\n const result = validateEan(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'inscricao-estadual': {\n const result = validateInscricaoEstadual(input, { uf: options.uf as UfCode });\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'inscricao-estadual-produtor-rural': {\n const result = validateIeSpRural(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'pix': {\n const result = validatePixKey(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'brcode': {\n const result = validateBrCode(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n default: {\n const _exhaustive: never = type;\n return {\n ok: false,\n code: 'UNSUPPORTED_FORMAT',\n message: `Unsupported type: ${String(_exhaustive)}`,\n };\n }\n }\n}\n","/**\n * Minimal RFC 4180 CSV column extractor for batch ETL (zero runtime deps).\n * @see docs/OFFICIAL-SOURCES.md\n */\n\nexport type ParseBatchCsvOptions = {\n col: string;\n delimiter?: string;\n skipHeader?: boolean;\n};\n\nexport type ParseBatchCsvSuccess = {\n ok: true;\n values: string[];\n};\n\nexport type ParseBatchCsvFailure = {\n ok: false;\n message: string;\n};\n\nexport type ParseBatchCsvResult = ParseBatchCsvSuccess | ParseBatchCsvFailure;\n\nfunction parseCsvRow(line: string, delimiter: string): string[] {\n const fields: string[] = [];\n let current = '';\n let inQuotes = false;\n\n for (let index = 0; index < line.length; index += 1) {\n const char = line[index];\n if (char === '\"') {\n if (inQuotes && line[index + 1] === '\"') {\n current += '\"';\n index += 1;\n } else {\n inQuotes = !inQuotes;\n }\n continue;\n }\n if (char === delimiter && !inQuotes) {\n fields.push(current);\n current = '';\n continue;\n }\n current += char;\n }\n\n fields.push(current);\n return fields;\n}\n\nfunction resolveColumnIndex(col: string, header: readonly string[]): number | null {\n const trimmed = col.trim();\n if (/^\\d+$/.test(trimmed)) {\n const index = Number.parseInt(trimmed, 10);\n if (index >= 0 && index < header.length) {\n return index;\n }\n return null;\n }\n\n const index = header.findIndex((field) => field.trim().toLowerCase() === trimmed.toLowerCase());\n return index >= 0 ? index : null;\n}\n\nexport function parseBatchCsv(raw: string, options: ParseBatchCsvOptions): ParseBatchCsvResult {\n const delimiter = options.delimiter ?? ',';\n const lines = raw.split(/\\r?\\n/).filter((line) => line.trim().length > 0);\n if (lines.length === 0) {\n return { ok: false, message: 'CSV input is empty' };\n }\n\n const skipHeader = options.skipHeader ?? true;\n let colIdx: number;\n let startIdx = 0;\n\n if (skipHeader) {\n const header = parseCsvRow(lines[0], delimiter);\n const resolved = resolveColumnIndex(options.col, header);\n if (resolved === null) {\n return {\n ok: false,\n message: `Column \"${options.col}\" not found in header: [${header.join(', ')}]`,\n };\n }\n colIdx = resolved;\n startIdx = 1;\n } else {\n const asIndex = Number.parseInt(options.col.trim(), 10);\n if (!/^\\d+$/.test(options.col.trim())) {\n return {\n ok: false,\n message: `Column \"${options.col}\" requires --skip-header when using header name`,\n };\n }\n colIdx = asIndex;\n }\n\n const values: string[] = [];\n for (let rowIndex = startIdx; rowIndex < lines.length; rowIndex += 1) {\n const row = parseCsvRow(lines[rowIndex], delimiter);\n const field = row.at(colIdx);\n if (field === undefined) {\n continue;\n }\n const cell = field.trim();\n if (cell.length > 0) {\n values.push(cell);\n }\n }\n\n if (values.length === 0) {\n return { ok: false, message: 'No values found in CSV column' };\n }\n\n return { ok: true, values };\n}\n","/**\n * Batch validation — maps `validate*` per row, never throws (BR-BATCH-001).\n * @see docs/OFFICIAL-SOURCES.md\n */\nimport { validateForPlatform } from '../platform/validate-dispatch.js';\nimport type { PlatformDocumentType, PlatformOptions } from '../platform/types.js';\nimport type { ValidationErrorCode } from '../types/validation-result.js';\n\nexport type BatchValidEntry = {\n index: number;\n input: string;\n value: string;\n};\n\nexport type BatchInvalidEntry = {\n index: number;\n input: string;\n code: ValidationErrorCode;\n message: string;\n};\n\nexport type BatchSummary = {\n total: number;\n valid: number;\n invalid: number;\n};\n\nexport type BatchResult = {\n valid: BatchValidEntry[];\n invalid: BatchInvalidEntry[];\n summary: BatchSummary;\n};\n\nexport { parseBatchCsv } from './parse-csv.js';\nexport type {\n ParseBatchCsvFailure,\n ParseBatchCsvOptions,\n ParseBatchCsvResult,\n ParseBatchCsvSuccess,\n} from './parse-csv.js';\n\nexport function batch(\n inputs: readonly string[],\n type: PlatformDocumentType,\n options: PlatformOptions = {},\n): BatchResult {\n const valid: BatchValidEntry[] = [];\n const invalid: BatchInvalidEntry[] = [];\n\n inputs.forEach((input, index) => {\n const result = validateForPlatform(input, type, options);\n if (result.ok) {\n valid.push({ index, input, value: result.value });\n } else {\n invalid.push({ index, input, code: result.code, message: result.message });\n }\n });\n\n return {\n valid,\n invalid,\n summary: {\n total: inputs.length,\n valid: valid.length,\n invalid: invalid.length,\n },\n };\n}\n"]}
// src/transparencia-snapshots/data/metadata.json
var metadata_default = {
id: "transparencia-snapshots",
nome: "Portal da Transpar\xEAncia endpoint registry",
fonte: "CGU Portal da Transpar\xEAncia \u2014 Swagger audit (query endpoints; no bulk embed in v1)",
endpoints: [
"https://api.portaldatransparencia.gov.br/swagger-ui/index.html",
"https://api.portaldatransparencia.gov.br/v3/api-docs",
"https://portaldatransparencia.gov.br/"
],
capturadoEm: "2026-07-02",
atualizadoEm: "2026-07-02T07:59:13.831Z",
contagens: {
endpoints: 8,
queryAdapter: 7
},
alteracoes: {
adicionados: 0,
removidos: 0,
alterados: 0,
comparadoCom: "2026-07-01"
},
verificacao: {
agendamento: "diario",
workflow: "data-refresh-bot.yml",
ultimaExecucao: "2026-07-02T07:59:13.831Z"
},
documentacao: "docs/OFFICIAL-SOURCES.md#portal-transparencia"
};
export { metadata_default };
//# sourceMappingURL=chunk-MCNZZ7MG.js.map
//# sourceMappingURL=chunk-MCNZZ7MG.js.map
{"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-MCNZZ7MG.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-07-02\",\n \"atualizadoEm\": \"2026-07-02T07:59:13.831Z\",\n \"contagens\": {\n \"endpoints\": 8,\n \"queryAdapter\": 7\n },\n \"alteracoes\": {\n \"adicionados\": 0,\n \"removidos\": 0,\n \"alterados\": 0,\n \"comparadoCom\": \"2026-07-01\"\n },\n \"verificacao\": {\n \"agendamento\": \"diario\",\n \"workflow\": \"data-refresh-bot.yml\",\n \"ultimaExecucao\": \"2026-07-02T07:59:13.831Z\"\n },\n \"documentacao\": \"docs/OFFICIAL-SOURCES.md#portal-transparencia\"\n}\n"]}
import { formatProcessoJudicial } from './chunk-MAMBSTTO.js';
import { formatTelefone } from './chunk-VSSHM2V2.js';
import { formatTituloEleitor } from './chunk-A255RZZ7.js';
import { formatPlaca } from './chunk-KCRWHMDY.js';
import { formatRenavam } from './chunk-YC4GZZJP.js';
import { formatNfeChave } from './chunk-6KHTKD5U.js';
import { formatPisPasep } from './chunk-INPLK35M.js';
import { formatPixKey } from './chunk-LKDZEPWZ.js';
import { formatIeProdutorRural } from './chunk-5ZJMYR63.js';
import { formatCpf } from './chunk-GQRHLW5W.js';
import { formatEan } from './chunk-WIBYIZ4N.js';
import { formatCep } from './chunk-DXKHCIMV.js';
import { formatCnh } from './chunk-BTRWDUZF.js';
import { formatCnpj } from './chunk-HEPUV3XR.js';
import { formatRg } from './chunk-6F3A3NT4.js';
import { formatInscricaoEstadual } from './chunk-OHBSYBG7.js';
import { formatBoleto } from './chunk-S6ER3Y3B.js';
import { formatCartaoCredito } from './chunk-UFKWTBOO.js';
// src/format/rg.ts
function formatRg2(input, options) {
return formatRg(input, options);
}
// src/mask/index.ts
var MASKABLE_DOCUMENT_TYPES = [
"cpf",
"cnpj",
"cep",
"placa",
"pis-pasep",
"telefone",
"cnh",
"renavam",
"titulo-eleitor",
"processo-judicial",
"rg",
"nfe-chave",
"boleto",
"cartao-credito",
"ean",
"inscricao-estadual",
"inscricao-estadual-produtor-rural",
"pix"
];
function isMaskableDocumentType(type) {
return MASKABLE_DOCUMENT_TYPES.includes(type);
}
function mask(raw, type, options = {}) {
if (type === "inscricao-estadual" && !options.uf) {
return {
ok: false,
code: "UNSUPPORTED_FORMAT",
message: "UF is required for inscricao-estadual masking"
};
}
if (type === "rg" && !options.uf) {
return {
ok: false,
code: "UNSUPPORTED_FORMAT",
message: "UF is required for RG masking"
};
}
return dispatchMask(raw, type, options);
}
function maskRuntime(type, raw, options = {}) {
if (!isMaskableDocumentType(type)) {
return { ok: false, code: "UNSUPPORTED_FORMAT", message: `Unknown document type: ${type}` };
}
return mask(raw, type, options);
}
function dispatchMask(raw, type, options) {
switch (type) {
case "cpf":
return formatCpf(raw);
case "cnpj":
return formatCnpj(raw);
case "cep":
return formatCep(raw);
case "placa":
return formatPlaca(raw);
case "pis-pasep":
return formatPisPasep(raw);
case "telefone":
return formatTelefone(raw);
case "cnh":
return formatCnh(raw);
case "renavam":
return formatRenavam(raw);
case "titulo-eleitor":
return formatTituloEleitor(raw);
case "processo-judicial":
return formatProcessoJudicial(raw);
case "rg":
return formatRg2(raw, { uf: options.uf });
case "nfe-chave":
return formatNfeChave(raw);
case "boleto":
return formatBoleto(raw);
case "cartao-credito":
return formatCartaoCredito(raw);
case "ean":
return formatEan(raw);
case "inscricao-estadual":
return formatInscricaoEstadual(raw, { uf: options.uf });
case "inscricao-estadual-produtor-rural":
return formatIeProdutorRural(raw);
case "pix":
return formatPixKey(raw);
default: {
const _exhaustive = type;
return {
ok: false,
code: "UNSUPPORTED_FORMAT",
message: `Unsupported type: ${String(_exhaustive)}`
};
}
}
}
export { MASKABLE_DOCUMENT_TYPES, isMaskableDocumentType, mask, maskRuntime };
//# sourceMappingURL=chunk-NEK4V54G.js.map
//# sourceMappingURL=chunk-NEK4V54G.js.map
{"version":3,"sources":["../src/format/rg.ts","../src/mask/index.ts"],"names":["formatRg"],"mappings":"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","file":"chunk-NEK4V54G.js","sourcesContent":["import type { ValidateRgOptions } from '../core/rg/index.js';\nimport { formatRg as formatRgCore } from '../core/rg/index.js';\n\nexport function formatRg(input: string, options: ValidateRgOptions): ReturnType<typeof formatRgCore> {\n return formatRgCore(input, options);\n}\n","/**\n * Unified display mask — delegates to existing `format*` (BR-MASK-001).\n * @see docs/use-cases/UC-003-format-document.md\n * @see docs/OFFICIAL-SOURCES.md\n */\nimport { formatInscricaoEstadual } from '../core/inscricao-estadual/index.js';\nimport { formatBoleto } from '../format/boleto.js';\nimport { formatCartaoCredito } from '../format/cartao-credito.js';\nimport { formatEan } from '../format/ean.js';\nimport { formatCep } from '../format/cep.js';\nimport { formatCnh } from '../format/cnh.js';\nimport { formatCnpj } from '../format/cnpj.js';\nimport { formatCpf } from '../format/cpf.js';\nimport { formatIeProdutorRural } from '../format/inscricao-estadual-produtor-rural.js';\nimport { formatNfeChave } from '../format/nfe-chave.js';\nimport { formatPisPasep } from '../format/pis-pasep.js';\nimport { formatPixKey } from '../format/pix.js';\nimport { formatPlaca } from '../format/placa.js';\nimport { formatProcessoJudicial } from '../format/processo-judicial.js';\nimport { formatRg } from '../format/rg.js';\nimport { formatRenavam } from '../format/renavam.js';\nimport { formatTelefone } from '../format/telefone.js';\nimport { formatTituloEleitor } from '../format/titulo-eleitor.js';\nimport type { FormatResult, RgUfCode, UfCode } from '../types/validation-result.js';\n\nexport type MaskableDocumentType =\n | 'cpf'\n | 'cnpj'\n | 'cep'\n | 'placa'\n | 'pis-pasep'\n | 'telefone'\n | 'cnh'\n | 'renavam'\n | 'titulo-eleitor'\n | 'processo-judicial'\n | 'rg'\n | 'nfe-chave'\n | 'boleto'\n | 'cartao-credito'\n | 'ean'\n | 'inscricao-estadual'\n | 'inscricao-estadual-produtor-rural'\n | 'pix';\n\nexport const MASKABLE_DOCUMENT_TYPES = [\n 'cpf',\n 'cnpj',\n 'cep',\n 'placa',\n 'pis-pasep',\n 'telefone',\n 'cnh',\n 'renavam',\n 'titulo-eleitor',\n 'processo-judicial',\n 'rg',\n 'nfe-chave',\n 'boleto',\n 'cartao-credito',\n 'ean',\n 'inscricao-estadual',\n 'inscricao-estadual-produtor-rural',\n 'pix',\n] as const satisfies readonly MaskableDocumentType[];\n\nexport type MaskOptions = {\n uf?: UfCode;\n};\n\nexport function isMaskableDocumentType(type: string): type is MaskableDocumentType {\n return (MASKABLE_DOCUMENT_TYPES as readonly string[]).includes(type);\n}\n\nexport function mask(\n raw: string,\n type: MaskableDocumentType,\n options: MaskOptions = {},\n): FormatResult {\n if (type === 'inscricao-estadual' && !options.uf) {\n return {\n ok: false,\n code: 'UNSUPPORTED_FORMAT',\n message: 'UF is required for inscricao-estadual masking',\n };\n }\n\n if (type === 'rg' && !options.uf) {\n return {\n ok: false,\n code: 'UNSUPPORTED_FORMAT',\n message: 'UF is required for RG masking',\n };\n }\n\n return dispatchMask(raw, type, options);\n}\n\n/** Runtime guard for dynamic callers (non-exhaustive type string). */\nexport function maskRuntime(\n type: string,\n raw: string,\n options: MaskOptions = {},\n): FormatResult {\n if (!isMaskableDocumentType(type)) {\n return { ok: false, code: 'UNSUPPORTED_FORMAT', message: `Unknown document type: ${type}` };\n }\n return mask(raw, type, options);\n}\n\nfunction dispatchMask(raw: string, type: MaskableDocumentType, options: MaskOptions): FormatResult {\n switch (type) {\n case 'cpf':\n return formatCpf(raw);\n case 'cnpj':\n return formatCnpj(raw);\n case 'cep':\n return formatCep(raw);\n case 'placa':\n return formatPlaca(raw);\n case 'pis-pasep':\n return formatPisPasep(raw);\n case 'telefone':\n return formatTelefone(raw);\n case 'cnh':\n return formatCnh(raw);\n case 'renavam':\n return formatRenavam(raw);\n case 'titulo-eleitor':\n return formatTituloEleitor(raw);\n case 'processo-judicial':\n return formatProcessoJudicial(raw);\n case 'rg':\n return formatRg(raw, { uf: options.uf as RgUfCode });\n case 'nfe-chave':\n return formatNfeChave(raw);\n case 'boleto':\n return formatBoleto(raw);\n case 'cartao-credito':\n return formatCartaoCredito(raw);\n case 'ean':\n return formatEan(raw);\n case 'inscricao-estadual':\n return formatInscricaoEstadual(raw, { uf: options.uf as UfCode });\n case 'inscricao-estadual-produtor-rural':\n return formatIeProdutorRural(raw);\n case 'pix':\n return formatPixKey(raw);\n default: {\n const _exhaustive: never = type;\n return {\n ok: false,\n code: 'UNSUPPORTED_FORMAT',\n message: `Unsupported type: ${String(_exhaustive)}`,\n };\n }\n }\n}\n"]}
// src/incoterms/data/metadata.json
var metadata_default = {
id: "incoterms",
nome: "ICC Incoterms 2020",
fonte: "International Chamber of Commerce \u2014 Incoterms 2020 (static reference)",
endpoints: [
"https://iccwbo.org/resources-for-business/incoterms-rules/"
],
capturadoEm: "2026-07-02",
atualizadoEm: "2026-07-02T06:54:03.702Z",
contagens: {
incoterms: 11
},
alteracoes: {
adicionados: 0,
removidos: 0,
alterados: 0,
comparadoCom: "2026-07-01"
},
verificacao: {
agendamento: "diario",
workflow: "data-refresh-bot.yml",
ultimaExecucao: "2026-07-02T06:54:03.702Z"
},
documentacao: "docs/OFFICIAL-SOURCES.md#incoterms"
};
export { metadata_default };
//# sourceMappingURL=chunk-NLJZ5ZRH.js.map
//# sourceMappingURL=chunk-NLJZ5ZRH.js.map
{"version":3,"sources":["../src/incoterms/data/metadata.json"],"names":[],"mappings":";AAAA,IAAA,gBAAA,GAAA;AAAA,EACE,EAAA,EAAM,WAAA;AAAA,EACN,IAAA,EAAQ,oBAAA;AAAA,EACR,KAAA,EAAS,4EAAA;AAAA,EACT,SAAA,EAAa;AAAA,IACX;AAAA,GACF;AAAA,EACA,WAAA,EAAe,YAAA;AAAA,EACf,YAAA,EAAgB,0BAAA;AAAA,EAChB,SAAA,EAAa;AAAA,IACX,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;AAClB","file":"chunk-NLJZ5ZRH.js","sourcesContent":["{\n \"id\": \"incoterms\",\n \"nome\": \"ICC Incoterms 2020\",\n \"fonte\": \"International Chamber of Commerce — Incoterms 2020 (static reference)\",\n \"endpoints\": [\n \"https://iccwbo.org/resources-for-business/incoterms-rules/\"\n ],\n \"capturadoEm\": \"2026-07-02\",\n \"atualizadoEm\": \"2026-07-02T06:54:03.702Z\",\n \"contagens\": {\n \"incoterms\": 11\n },\n \"alteracoes\": {\n \"adicionados\": 0,\n \"removidos\": 0,\n \"alterados\": 0,\n \"comparadoCom\": \"2026-07-01\"\n },\n \"verificacao\": {\n \"agendamento\": \"diario\",\n \"workflow\": \"data-refresh-bot.yml\",\n \"ultimaExecucao\": \"2026-07-02T06:54:03.702Z\"\n },\n \"documentacao\": \"docs/OFFICIAL-SOURCES.md#incoterms\"\n}\n"]}
import { stripForType } from './chunk-5OS2QI55.js';
import { isRgUfImplemented, validateRg } from './chunk-6F3A3NT4.js';
import { validateRenavam } from './chunk-4NS47CJG.js';
import { validateProcessoJudicial } from './chunk-A4QBLVVO.js';
import { validateTelefone } from './chunk-VTCBD6OS.js';
import { validateTituloEleitor } from './chunk-6WBUKUHD.js';
import { validatePlaca } from './chunk-UG2YICWH.js';
import { validateNfeChave } from './chunk-XRT44FMY.js';
import { validatePisPasep } from './chunk-HORKZQIH.js';
import { validateInscricaoEstadual } from './chunk-OHBSYBG7.js';
import { validateIeSpRural } from './chunk-FGOPYU2L.js';
import { validateEan } from './chunk-OFAU4VTU.js';
import { validateCep } from './chunk-C4E2AE2A.js';
import { validateCnh } from './chunk-JZOS2MO7.js';
import { stripPixKey } from './chunk-JUQMINSZ.js';
import { validateBoleto } from './chunk-JOBIJQGE.js';
import { validateBrCode } from './chunk-L3WG36Y4.js';
import { validatePixKey } from './chunk-7XVCTDJE.js';
import { validateCpf } from './chunk-DQQNXXGO.js';
import { validateCnpj } from './chunk-MGFDTECS.js';
import { validateCartaoCredito } from './chunk-PU5TKJZI.js';
// src/platform/normalize.ts
var SANITIZABLE_PLATFORM_TYPES = /* @__PURE__ */ new Set([
"cpf",
"cnpj",
"cep",
"placa",
"pis-pasep",
"telefone",
"cnh",
"renavam",
"titulo-eleitor",
"processo-judicial",
"rg",
"nfe-chave",
"boleto",
"cartao-credito",
"ean",
"inscricao-estadual",
"inscricao-estadual-produtor-rural",
"pix"
]);
function isSanitizablePlatformType(type) {
return SANITIZABLE_PLATFORM_TYPES.has(type);
}
function stripForPlatform(raw, type) {
if (type === "pix") {
return stripPixKey(raw);
}
if (type === "brcode") {
return raw;
}
if (isSanitizablePlatformType(type)) {
return stripForType(raw, type);
}
return raw;
}
function normalizeForPlatform(raw, type, options = {}) {
const trimmed = raw.trim();
const stripped = stripForPlatform(trimmed, type);
const validated = tryValidatedCanonical(stripped, type, options.uf);
return validated ?? stripped;
}
function tryValidatedCanonical(value, type, uf) {
switch (type) {
case "cpf": {
const result = validateCpf(value);
return result.ok ? result.value : null;
}
case "cnpj": {
const result = validateCnpj(value);
return result.ok ? result.value : null;
}
case "cep": {
const result = validateCep(value);
return result.ok ? result.value : null;
}
case "placa": {
const result = validatePlaca(value);
return result.ok ? result.value : null;
}
case "pis-pasep": {
const result = validatePisPasep(value);
return result.ok ? result.value : null;
}
case "telefone": {
const result = validateTelefone(value);
return result.ok ? result.value : null;
}
case "cnh": {
const result = validateCnh(value);
return result.ok ? result.value : null;
}
case "renavam": {
const result = validateRenavam(value);
return result.ok ? result.value : null;
}
case "titulo-eleitor": {
const result = validateTituloEleitor(value);
return result.ok ? result.value : null;
}
case "processo-judicial": {
const result = validateProcessoJudicial(value);
return result.ok ? result.value : null;
}
case "rg": {
if (!uf || !isRgUfImplemented(uf)) {
return null;
}
const result = validateRg(value, { uf });
return result.ok ? result.value : null;
}
case "nfe-chave": {
const result = validateNfeChave(value);
return result.ok ? result.value : null;
}
case "boleto": {
const result = validateBoleto(value);
return result.ok ? result.value : null;
}
case "cartao-credito": {
const result = validateCartaoCredito(value);
return result.ok ? result.value : null;
}
case "ean": {
const result = validateEan(value);
return result.ok ? result.value : null;
}
case "inscricao-estadual": {
if (!uf) {
return null;
}
const result = validateInscricaoEstadual(value, { uf });
return result.ok ? result.value : null;
}
case "inscricao-estadual-produtor-rural": {
const result = validateIeSpRural(value);
return result.ok ? result.value : null;
}
case "pix": {
const result = validatePixKey(value);
return result.ok ? result.value : null;
}
case "brcode": {
const result = validateBrCode(value);
return result.ok ? result.value : null;
}
default: {
return null;
}
}
}
export { normalizeForPlatform };
//# sourceMappingURL=chunk-PL7QQ5U2.js.map
//# sourceMappingURL=chunk-PL7QQ5U2.js.map
{"version":3,"sources":["../src/platform/normalize.ts"],"names":[],"mappings":"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","file":"chunk-PL7QQ5U2.js","sourcesContent":["/**\n * Canonical normalization for platform compare/diff (BR-PLATFORM-001).\n * @see docs/OFFICIAL-SOURCES.md\n */\nimport { validateBrCode } from '../core/brcode/index.js';\nimport { validateBoleto } from '../core/boleto/index.js';\nimport { validateCartaoCredito } from '../core/cartao-credito/index.js';\nimport { validateEan } from '../core/ean/index.js';\nimport { validateCep } from '../core/cep/index.js';\nimport { validateCnh } from '../core/cnh/index.js';\nimport { validateCnpj } from '../core/cnpj/index.js';\nimport { validateCpf } from '../core/cpf/index.js';\nimport { validateInscricaoEstadual } from '../core/inscricao-estadual/index.js';\nimport { validateIeSpRural } from '../core/inscricao-estadual/sp-rural.js';\nimport { validateNfeChave } from '../core/nfe-chave/index.js';\nimport { validatePisPasep } from '../core/pis-pasep/index.js';\nimport { validatePlaca } from '../core/placa/index.js';\nimport { validatePixKey } from '../core/pix/index.js';\nimport { validateRenavam } from '../core/renavam/index.js';\nimport { validateTelefone } from '../core/telefone/index.js';\nimport { validateProcessoJudicial } from '../core/processo-judicial/index.js';\nimport { validateRg, isRgUfImplemented } from '../core/rg/index.js';\nimport { validateTituloEleitor } from '../core/titulo-eleitor/index.js';\nimport { stripForType } from '../sanitize/fixes.js';\nimport { stripPixKey } from '../strip/pix.js';\nimport type { SanitizableDocumentType } from '../sanitize/index.js';\nimport type { UfCode } from '../types/validation-result.js';\nimport type { PlatformDocumentType, PlatformOptions } from './types.js';\n\nconst SANITIZABLE_PLATFORM_TYPES = new Set<PlatformDocumentType>([\n 'cpf',\n 'cnpj',\n 'cep',\n 'placa',\n 'pis-pasep',\n 'telefone',\n 'cnh',\n 'renavam',\n 'titulo-eleitor',\n 'processo-judicial',\n 'rg',\n 'nfe-chave',\n 'boleto',\n 'cartao-credito',\n 'ean',\n 'inscricao-estadual',\n 'inscricao-estadual-produtor-rural',\n 'pix',\n]);\n\nfunction isSanitizablePlatformType(type: PlatformDocumentType): type is SanitizableDocumentType {\n return SANITIZABLE_PLATFORM_TYPES.has(type);\n}\n\nfunction stripForPlatform(raw: string, type: PlatformDocumentType): string {\n if (type === 'pix') {\n return stripPixKey(raw);\n }\n if (type === 'brcode') {\n return raw;\n }\n if (isSanitizablePlatformType(type)) {\n return stripForType(raw, type);\n }\n return raw;\n}\n\nexport function normalizeForPlatform(\n raw: string,\n type: PlatformDocumentType,\n options: PlatformOptions = {},\n): string {\n const trimmed = raw.trim();\n const stripped = stripForPlatform(trimmed, type);\n const validated = tryValidatedCanonical(stripped, type, options.uf);\n return validated ?? stripped;\n}\n\nfunction tryValidatedCanonical(\n value: string,\n type: PlatformDocumentType,\n uf?: UfCode,\n): string | null {\n switch (type) {\n case 'cpf': {\n const result = validateCpf(value);\n return result.ok ? result.value : null;\n }\n case 'cnpj': {\n const result = validateCnpj(value);\n return result.ok ? result.value : null;\n }\n case 'cep': {\n const result = validateCep(value);\n return result.ok ? result.value : null;\n }\n case 'placa': {\n const result = validatePlaca(value);\n return result.ok ? result.value : null;\n }\n case 'pis-pasep': {\n const result = validatePisPasep(value);\n return result.ok ? result.value : null;\n }\n case 'telefone': {\n const result = validateTelefone(value);\n return result.ok ? result.value : null;\n }\n case 'cnh': {\n const result = validateCnh(value);\n return result.ok ? result.value : null;\n }\n case 'renavam': {\n const result = validateRenavam(value);\n return result.ok ? result.value : null;\n }\n case 'titulo-eleitor': {\n const result = validateTituloEleitor(value);\n return result.ok ? result.value : null;\n }\n case 'processo-judicial': {\n const result = validateProcessoJudicial(value);\n return result.ok ? result.value : null;\n }\n case 'rg': {\n if (!uf || !isRgUfImplemented(uf)) {\n return null;\n }\n const result = validateRg(value, { uf });\n return result.ok ? result.value : null;\n }\n case 'nfe-chave': {\n const result = validateNfeChave(value);\n return result.ok ? result.value : null;\n }\n case 'boleto': {\n const result = validateBoleto(value);\n return result.ok ? result.value : null;\n }\n case 'cartao-credito': {\n const result = validateCartaoCredito(value);\n return result.ok ? result.value : null;\n }\n case 'ean': {\n const result = validateEan(value);\n return result.ok ? result.value : null;\n }\n case 'inscricao-estadual': {\n if (!uf) {\n return null;\n }\n const result = validateInscricaoEstadual(value, { uf });\n return result.ok ? result.value : null;\n }\n case 'inscricao-estadual-produtor-rural': {\n const result = validateIeSpRural(value);\n return result.ok ? result.value : null;\n }\n case 'pix': {\n const result = validatePixKey(value);\n return result.ok ? result.value : null;\n }\n case 'brcode': {\n const result = validateBrCode(value);\n return result.ok ? result.value : null;\n }\n default: {\n return null;\n }\n }\n}\n"]}
// src/cfop/data/metadata.json
var metadata_default = {
id: "cfop",
nome: "CONFAZ CFOP",
fonte: "CONFAZ SINIEF Conv\xEAnio s/n\xBA 1970 \u2014 Anexo II",
endpoints: [
"https://www.confaz.fazenda.gov.br/legislacao/ajustes/sinief/cfop_cvsn_70_vigente",
"/home/runner/work/br-validators/br-validators/data/source-mirrors/confaz/cfop_cvsn_70_vigente.html"
],
capturadoEm: "2026-07-02",
atualizadoEm: "2026-07-02T07:11:51.229Z",
contagens: {
cfop: 689
},
alteracoes: {
adicionados: 0,
removidos: 0,
alterados: 0,
comparadoCom: "2026-07-01"
},
verificacao: {
agendamento: "diario",
workflow: "data-refresh-bot.yml",
ultimaExecucao: "2026-07-02T07:11:51.229Z"
},
documentacao: "docs/OFFICIAL-SOURCES.md#cfop-fiscal-operations"
};
export { metadata_default };
//# sourceMappingURL=chunk-PPEXHLHV.js.map
//# sourceMappingURL=chunk-PPEXHLHV.js.map
{"version":3,"sources":["../src/cfop/data/metadata.json"],"names":[],"mappings":";AAAA,IAAA,gBAAA,GAAA;AAAA,EACE,EAAA,EAAM,MAAA;AAAA,EACN,IAAA,EAAQ,aAAA;AAAA,EACR,KAAA,EAAS,wDAAA;AAAA,EACT,SAAA,EAAa;AAAA,IACX,kFAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,WAAA,EAAe,YAAA;AAAA,EACf,YAAA,EAAgB,0BAAA;AAAA,EAChB,SAAA,EAAa;AAAA,IACX,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-PPEXHLHV.js","sourcesContent":["{\n \"id\": \"cfop\",\n \"nome\": \"CONFAZ CFOP\",\n \"fonte\": \"CONFAZ SINIEF Convênio s/nº 1970 — Anexo II\",\n \"endpoints\": [\n \"https://www.confaz.fazenda.gov.br/legislacao/ajustes/sinief/cfop_cvsn_70_vigente\",\n \"/home/runner/work/br-validators/br-validators/data/source-mirrors/confaz/cfop_cvsn_70_vigente.html\"\n ],\n \"capturadoEm\": \"2026-07-02\",\n \"atualizadoEm\": \"2026-07-02T07:11:51.229Z\",\n \"contagens\": {\n \"cfop\": 689\n },\n \"alteracoes\": {\n \"adicionados\": 0,\n \"removidos\": 0,\n \"alterados\": 0,\n \"comparadoCom\": \"2026-07-01\"\n },\n \"verificacao\": {\n \"agendamento\": \"diario\",\n \"workflow\": \"data-refresh-bot.yml\",\n \"ultimaExecucao\": \"2026-07-02T07:11:51.229Z\"\n },\n \"documentacao\": \"docs/OFFICIAL-SOURCES.md#cfop-fiscal-operations\"\n}\n"]}
// src/natureza-juridica/data/metadata.json
var metadata_default = {
id: "natureza-juridica",
nome: "RFB CNPJ Naturezas Jur\xEDdicas",
fonte: "Receita Federal \u2014 Dados Abertos CNPJ (Naturezas.zip)",
endpoints: [
"https://github.com/jonathands/dados-abertos-receita-cnpj/releases/download/2024.09/Naturezas.zip"
],
capturadoEm: "2026-07-02",
atualizadoEm: "2026-07-02T07:17:55.087Z",
contagens: {
naturezas: 90
},
alteracoes: {
adicionados: 0,
removidos: 0,
alterados: 0,
comparadoCom: "2026-07-01"
},
verificacao: {
agendamento: "diario",
workflow: "data-refresh-bot.yml",
ultimaExecucao: "2026-07-02T07:17:55.087Z"
},
documentacao: "docs/OFFICIAL-SOURCES.md#natureza-juridica"
};
export { metadata_default };
//# sourceMappingURL=chunk-QRKJHWIW.js.map
//# sourceMappingURL=chunk-QRKJHWIW.js.map
{"version":3,"sources":["../src/natureza-juridica/data/metadata.json"],"names":[],"mappings":";AAAA,IAAA,gBAAA,GAAA;AAAA,EACE,EAAA,EAAM,mBAAA;AAAA,EACN,IAAA,EAAQ,iCAAA;AAAA,EACR,KAAA,EAAS,2DAAA;AAAA,EACT,SAAA,EAAa;AAAA,IACX;AAAA,GACF;AAAA,EACA,WAAA,EAAe,YAAA;AAAA,EACf,YAAA,EAAgB,0BAAA;AAAA,EAChB,SAAA,EAAa;AAAA,IACX,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;AAClB","file":"chunk-QRKJHWIW.js","sourcesContent":["{\n \"id\": \"natureza-juridica\",\n \"nome\": \"RFB CNPJ Naturezas Jurídicas\",\n \"fonte\": \"Receita Federal — Dados Abertos CNPJ (Naturezas.zip)\",\n \"endpoints\": [\n \"https://github.com/jonathands/dados-abertos-receita-cnpj/releases/download/2024.09/Naturezas.zip\"\n ],\n \"capturadoEm\": \"2026-07-02\",\n \"atualizadoEm\": \"2026-07-02T07:17:55.087Z\",\n \"contagens\": {\n \"naturezas\": 90\n },\n \"alteracoes\": {\n \"adicionados\": 0,\n \"removidos\": 0,\n \"alterados\": 0,\n \"comparadoCom\": \"2026-07-01\"\n },\n \"verificacao\": {\n \"agendamento\": \"diario\",\n \"workflow\": \"data-refresh-bot.yml\",\n \"ultimaExecucao\": \"2026-07-02T07:17:55.087Z\"\n },\n \"documentacao\": \"docs/OFFICIAL-SOURCES.md#natureza-juridica\"\n}\n"]}
// src/aeroportos/data/metadata.json
var metadata_default = {
id: "aeroportos",
nome: "ANAC Public Aerodromos",
fonte: "ANAC \u2014 Lista de aer\xF3dromos de uso p\xFAblico",
endpoints: [
"https://www.anac.gov.br/acesso-a-informacao/dados-abertos/areas-de-atuacao/aerodromos/lista-de-aerodromos-publicos/aerodromospublicosv1.csv/@@download/file/aerodromospublicosv1.csv"
],
capturadoEm: "2026-07-02",
atualizadoEm: "2026-07-02T06:43:47.387Z",
contagens: {
aeroportos: 533,
comIata: 87
},
alteracoes: {
adicionados: 0,
removidos: 0,
alterados: 0,
comparadoCom: "2026-07-01"
},
verificacao: {
agendamento: "diario",
workflow: "data-refresh-bot.yml",
ultimaExecucao: "2026-07-02T06:43:47.387Z"
},
documentacao: "docs/OFFICIAL-SOURCES.md#aeroportos"
};
export { metadata_default };
//# sourceMappingURL=chunk-RAB4BG5S.js.map
//# sourceMappingURL=chunk-RAB4BG5S.js.map
{"version":3,"sources":["../src/aeroportos/data/metadata.json"],"names":[],"mappings":";AAAA,IAAA,gBAAA,GAAA;AAAA,EACE,EAAA,EAAM,YAAA;AAAA,EACN,IAAA,EAAQ,wBAAA;AAAA,EACR,KAAA,EAAS,sDAAA;AAAA,EACT,SAAA,EAAa;AAAA,IACX;AAAA,GACF;AAAA,EACA,WAAA,EAAe,YAAA;AAAA,EACf,YAAA,EAAgB,0BAAA;AAAA,EAChB,SAAA,EAAa;AAAA,IACX,UAAA,EAAc,GAAA;AAAA,IACd,OAAA,EAAW;AAAA,GACb;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-RAB4BG5S.js","sourcesContent":["{\n \"id\": \"aeroportos\",\n \"nome\": \"ANAC Public Aerodromos\",\n \"fonte\": \"ANAC — Lista de aeródromos de uso público\",\n \"endpoints\": [\n \"https://www.anac.gov.br/acesso-a-informacao/dados-abertos/areas-de-atuacao/aerodromos/lista-de-aerodromos-publicos/aerodromospublicosv1.csv/@@download/file/aerodromospublicosv1.csv\"\n ],\n \"capturadoEm\": \"2026-07-02\",\n \"atualizadoEm\": \"2026-07-02T06:43:47.387Z\",\n \"contagens\": {\n \"aeroportos\": 533,\n \"comIata\": 87\n },\n \"alteracoes\": {\n \"adicionados\": 0,\n \"removidos\": 0,\n \"alterados\": 0,\n \"comparadoCom\": \"2026-07-01\"\n },\n \"verificacao\": {\n \"agendamento\": \"diario\",\n \"workflow\": \"data-refresh-bot.yml\",\n \"ultimaExecucao\": \"2026-07-02T06:43:47.387Z\"\n },\n \"documentacao\": \"docs/OFFICIAL-SOURCES.md#aeroportos\"\n}\n"]}
// src/ptax/data/metadata.json
var metadata_default = {
id: "ptax",
nome: "Bacen PTAX Fechamento",
fonte: "Banco Central Olinda PTAX API \u2014 Fechamento PTAX",
endpoints: [
"https://olinda.bcb.gov.br/olinda/servico/PTAX/versao/v1/odata/CotacaoMoedaPeriodo(moeda=@moeda,dataInicial=@dataInicial,dataFinalCotacao=@dataFinalCotacao)",
"https://olinda.bcb.gov.br/olinda/servico/PTAX/versao/v1/swagger-ui3"
],
capturadoEm: "2026-07-02",
atualizadoEm: "2026-07-02T06:44:56.311Z",
contagens: {
cotacoes: 850,
moedas: 10,
diasUteis: 85
},
alteracoes: {
adicionados: 10,
removidos: 10,
alterados: 0,
comparadoCom: "2026-07-01"
},
verificacao: {
agendamento: "diario",
workflow: "data-refresh-bot.yml",
ultimaExecucao: "2026-07-02T06:44:56.311Z"
},
documentacao: "docs/OFFICIAL-SOURCES.md#ptax-cotacoes",
janelaDiasUteis: 90
};
export { metadata_default };
//# sourceMappingURL=chunk-TVD3ALTA.js.map
//# sourceMappingURL=chunk-TVD3ALTA.js.map
{"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,EAAA;AAAA,IACf,SAAA,EAAa,EAAA;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-TVD3ALTA.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-07-02\",\n \"atualizadoEm\": \"2026-07-02T06:44:56.311Z\",\n \"contagens\": {\n \"cotacoes\": 850,\n \"moedas\": 10,\n \"diasUteis\": 85\n },\n \"alteracoes\": {\n \"adicionados\": 10,\n \"removidos\": 10,\n \"alterados\": 0,\n \"comparadoCom\": \"2026-07-01\"\n },\n \"verificacao\": {\n \"agendamento\": \"diario\",\n \"workflow\": \"data-refresh-bot.yml\",\n \"ultimaExecucao\": \"2026-07-02T06:44:56.311Z\"\n },\n \"documentacao\": \"docs/OFFICIAL-SOURCES.md#ptax-cotacoes\",\n \"janelaDiasUteis\": 90\n}\n"]}
// src/core/telefone/data/ddd-metadata.json
var ddd_metadata_default = {
id: "telefone-ddd",
nome: "Anatel DDD Geographic Lookup",
fonte: "Anatel Plano de Numera\xE7\xE3o + IBGE municipios",
endpoints: [
"https://informacoes.anatel.gov.br/paineis/areas-tarifarias/codigos-nacionais",
"packages/br-validators/src/ibge/data/municipios.json"
],
capturadoEm: "2026-07-02",
atualizadoEm: "2026-07-02T06:54:04.386Z",
contagens: {
ddds: 67
},
alteracoes: {
adicionados: 0,
removidos: 0,
alterados: 0,
comparadoCom: "2026-07-01"
},
verificacao: {
agendamento: "diario",
workflow: "data-refresh-bot.yml",
ultimaExecucao: "2026-07-02T06:54:04.386Z"
},
documentacao: "docs/OFFICIAL-SOURCES.md#anatel-ddd-lookup"
};
export { ddd_metadata_default };
//# sourceMappingURL=chunk-UVZGKHCD.js.map
//# sourceMappingURL=chunk-UVZGKHCD.js.map
{"version":3,"sources":["../src/core/telefone/data/ddd-metadata.json"],"names":[],"mappings":";AAAA,IAAA,oBAAA,GAAA;AAAA,EACE,EAAA,EAAM,cAAA;AAAA,EACN,IAAA,EAAQ,8BAAA;AAAA,EACR,KAAA,EAAS,mDAAA;AAAA,EACT,SAAA,EAAa;AAAA,IACX,8EAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,WAAA,EAAe,YAAA;AAAA,EACf,YAAA,EAAgB,0BAAA;AAAA,EAChB,SAAA,EAAa;AAAA,IACX,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-UVZGKHCD.js","sourcesContent":["{\n \"id\": \"telefone-ddd\",\n \"nome\": \"Anatel DDD Geographic Lookup\",\n \"fonte\": \"Anatel Plano de Numeração + IBGE municipios\",\n \"endpoints\": [\n \"https://informacoes.anatel.gov.br/paineis/areas-tarifarias/codigos-nacionais\",\n \"packages/br-validators/src/ibge/data/municipios.json\"\n ],\n \"capturadoEm\": \"2026-07-02\",\n \"atualizadoEm\": \"2026-07-02T06:54:04.386Z\",\n \"contagens\": {\n \"ddds\": 67\n },\n \"alteracoes\": {\n \"adicionados\": 0,\n \"removidos\": 0,\n \"alterados\": 0,\n \"comparadoCom\": \"2026-07-01\"\n },\n \"verificacao\": {\n \"agendamento\": \"diario\",\n \"workflow\": \"data-refresh-bot.yml\",\n \"ultimaExecucao\": \"2026-07-02T06:54:04.386Z\"\n },\n \"documentacao\": \"docs/OFFICIAL-SOURCES.md#anatel-ddd-lookup\"\n}\n"]}
import { validateTelefone, TELEFONE_CELULAR_MASK_PATTERN, TELEFONE_FIXO_MASK_PATTERN } from './chunk-VTCBD6OS.js';
// src/core/telefone/mask.ts
function applyTelefoneMask(canonical, tipo) {
const pattern = tipo === "celular" ? TELEFONE_CELULAR_MASK_PATTERN : TELEFONE_FIXO_MASK_PATTERN;
const match = pattern.exec(canonical);
if (!match) {
throw new Error(`Telephone must have valid ${tipo} length to apply mask`);
}
return `(${match[1]}) ${match[2]}-${match[3]}`;
}
// src/format/telefone.ts
function formatTelefone(input) {
const result = validateTelefone(input);
if (!result.ok) {
return { ok: false, code: result.code, message: result.message };
}
return { ok: true, formatted: applyTelefoneMask(result.value, result.tipo) };
}
export { formatTelefone };
//# sourceMappingURL=chunk-VSSHM2V2.js.map
//# sourceMappingURL=chunk-VSSHM2V2.js.map
{"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-VSSHM2V2.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"]}

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

// src/paises-bacen/data/metadata.json
var metadata_default = {
id: "paises-bacen",
nome: "NF-e Bacen Country Codes",
fonte: "Banco Central FTP paises.txt + NF-e supplemental codes",
endpoints: [
"http://www.nfe.fazenda.gov.br/portal/exibirArquivo.aspx?conteudo=PfPDd6dW200=",
"http://www.nfe.fazenda.gov.br/portal/listaConteudo.aspx?tipoConteudo=/NJarYc9nus=",
"https://www.bcb.gov.br/ftp/paises.txt"
],
capturadoEm: "2026-07-02",
atualizadoEm: "2026-07-02T06:54:03.031Z",
contagens: {
paises: 260
},
alteracoes: {
adicionados: 0,
removidos: 0,
alterados: 0,
comparadoCom: "2026-07-01"
},
verificacao: {
agendamento: "diario",
workflow: "data-refresh-bot.yml",
ultimaExecucao: "2026-07-02T06:54:03.031Z"
},
documentacao: "docs/OFFICIAL-SOURCES.md#paises-bacen"
};
export { metadata_default };
//# sourceMappingURL=chunk-WNSDRGOS.js.map
//# sourceMappingURL=chunk-WNSDRGOS.js.map
{"version":3,"sources":["../src/paises-bacen/data/metadata.json"],"names":[],"mappings":";AAAA,IAAA,gBAAA,GAAA;AAAA,EACE,EAAA,EAAM,cAAA;AAAA,EACN,IAAA,EAAQ,0BAAA;AAAA,EACR,KAAA,EAAS,wDAAA;AAAA,EACT,SAAA,EAAa;AAAA,IACX,+EAAA;AAAA,IACA,mFAAA;AAAA,IACA;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-WNSDRGOS.js","sourcesContent":["{\n \"id\": \"paises-bacen\",\n \"nome\": \"NF-e Bacen Country Codes\",\n \"fonte\": \"Banco Central FTP paises.txt + NF-e supplemental codes\",\n \"endpoints\": [\n \"http://www.nfe.fazenda.gov.br/portal/exibirArquivo.aspx?conteudo=PfPDd6dW200=\",\n \"http://www.nfe.fazenda.gov.br/portal/listaConteudo.aspx?tipoConteudo=/NJarYc9nus=\",\n \"https://www.bcb.gov.br/ftp/paises.txt\"\n ],\n \"capturadoEm\": \"2026-07-02\",\n \"atualizadoEm\": \"2026-07-02T06:54:03.031Z\",\n \"contagens\": {\n \"paises\": 260\n },\n \"alteracoes\": {\n \"adicionados\": 0,\n \"removidos\": 0,\n \"alterados\": 0,\n \"comparadoCom\": \"2026-07-01\"\n },\n \"verificacao\": {\n \"agendamento\": \"diario\",\n \"workflow\": \"data-refresh-bot.yml\",\n \"ultimaExecucao\": \"2026-07-02T06:54:03.031Z\"\n },\n \"documentacao\": \"docs/OFFICIAL-SOURCES.md#paises-bacen\"\n}\n"]}
// src/cest/data/metadata.json
var metadata_default = {
id: "cest",
nome: "CONFAZ CEST",
fonte: "CONFAZ Conv\xEAnio ICMS 142/2018 \u2014 Anexos II a XXVI",
endpoints: [
"https://www.confaz.fazenda.gov.br/legislacao/convenios/2018/CV142_18",
"/home/runner/work/br-validators/br-validators/data/source-mirrors/confaz/cest_cv142_18.html"
],
capturadoEm: "2026-07-02",
atualizadoEm: "2026-07-02T07:33:11.593Z",
contagens: {
cest: 1018
},
alteracoes: {
adicionados: 0,
removidos: 0,
alterados: 0,
comparadoCom: "2026-07-01"
},
verificacao: {
agendamento: "diario",
workflow: "data-refresh-bot.yml",
ultimaExecucao: "2026-07-02T07:33:11.593Z"
},
documentacao: "docs/OFFICIAL-SOURCES.md#cest"
};
export { metadata_default };
//# sourceMappingURL=chunk-ZP2TTQCZ.js.map
//# sourceMappingURL=chunk-ZP2TTQCZ.js.map
{"version":3,"sources":["../src/cest/data/metadata.json"],"names":[],"mappings":";AAAA,IAAA,gBAAA,GAAA;AAAA,EACE,EAAA,EAAM,MAAA;AAAA,EACN,IAAA,EAAQ,aAAA;AAAA,EACR,KAAA,EAAS,0DAAA;AAAA,EACT,SAAA,EAAa;AAAA,IACX,sEAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,WAAA,EAAe,YAAA;AAAA,EACf,YAAA,EAAgB,0BAAA;AAAA,EAChB,SAAA,EAAa;AAAA,IACX,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-ZP2TTQCZ.js","sourcesContent":["{\n \"id\": \"cest\",\n \"nome\": \"CONFAZ CEST\",\n \"fonte\": \"CONFAZ Convênio ICMS 142/2018 — Anexos II a XXVI\",\n \"endpoints\": [\n \"https://www.confaz.fazenda.gov.br/legislacao/convenios/2018/CV142_18\",\n \"/home/runner/work/br-validators/br-validators/data/source-mirrors/confaz/cest_cv142_18.html\"\n ],\n \"capturadoEm\": \"2026-07-02\",\n \"atualizadoEm\": \"2026-07-02T07:33:11.593Z\",\n \"contagens\": {\n \"cest\": 1018\n },\n \"alteracoes\": {\n \"adicionados\": 0,\n \"removidos\": 0,\n \"alterados\": 0,\n \"comparadoCom\": \"2026-07-01\"\n },\n \"verificacao\": {\n \"agendamento\": \"diario\",\n \"workflow\": \"data-refresh-bot.yml\",\n \"ultimaExecucao\": \"2026-07-02T07:33:11.593Z\"\n },\n \"documentacao\": \"docs/OFFICIAL-SOURCES.md#cest\"\n}\n"]}
+3
-3

@@ -1,6 +0,6 @@

export { batch, parseBatchCsv } from './chunk-YWVBXQSZ.js';
export { batch, parseBatchCsv } from './chunk-KWUXOOEM.js';
import './chunk-6F3A3NT4.js';
import './chunk-4NS47CJG.js';
import './chunk-A4QBLVVO.js';
import './chunk-JVI4PL7M.js';
import './chunk-VTCBD6OS.js';
import './chunk-6WBUKUHD.js';

@@ -12,3 +12,3 @@ import './chunk-UG2YICWH.js';

import './chunk-FGOPYU2L.js';
import './chunk-7BKTNWUC.js';
import './chunk-UVZGKHCD.js';
import './chunk-OFAU4VTU.js';

@@ -15,0 +15,0 @@ import './chunk-C4E2AE2A.js';

@@ -1,2 +0,2 @@

import { metadata_default } from './chunk-4SX3WMMX.js';
import { metadata_default } from './chunk-DH5PLOFD.js';
import { resolveFixedLengthCodeLookup } from './chunk-2WWKXKJV.js';

@@ -3,0 +3,0 @@ import { unwrapLookupValue } from './chunk-3F3YHV65.js';

@@ -1,4 +0,4 @@

export { compare, compareRuntime } from './chunk-R6VCAOGH.js';
import './chunk-QBGJZLXQ.js';
import './chunk-GOMCPGST.js';
export { compare, compareRuntime } from './chunk-GOGAM2I4.js';
import './chunk-PL7QQ5U2.js';
import './chunk-5OS2QI55.js';
import './chunk-GVK6IMBF.js';

@@ -8,3 +8,3 @@ import './chunk-6F3A3NT4.js';

import './chunk-A4QBLVVO.js';
import './chunk-JVI4PL7M.js';
import './chunk-VTCBD6OS.js';
import './chunk-6WBUKUHD.js';

@@ -16,3 +16,3 @@ import './chunk-UG2YICWH.js';

import './chunk-FGOPYU2L.js';
import './chunk-7BKTNWUC.js';
import './chunk-UVZGKHCD.js';
import './chunk-OFAU4VTU.js';

@@ -19,0 +19,0 @@ import './chunk-C4E2AE2A.js';

@@ -1,13 +0,13 @@

import { metadata_default as metadata_default$u } from './chunk-MAWOA6DL.js';
import { metadata_default as metadata_default$u } from './chunk-4IOLUZDR.js';
import { metadata_default as metadata_default$k } from './chunk-BG72VA7O.js';
import { metadata_default as metadata_default$q } from './chunk-YB6Z2SSG.js';
import { metadata_default as metadata_default$q } from './chunk-MCNZZ7MG.js';
import { metadata_default as metadata_default$3 } from './chunk-F7UMUH4M.js';
import { metadata_default as metadata_default$p } from './chunk-FC2GVEXU.js';
import { metadata_default as metadata_default$n } from './chunk-SEWCLVNC.js';
import { metadata_default as metadata_default$5 } from './chunk-GRONAN5E.js';
import { metadata_default as metadata_default$b } from './chunk-CCQWVAHV.js';
import { metadata_default as metadata_default$5 } from './chunk-TVD3ALTA.js';
import { metadata_default as metadata_default$b } from './chunk-QRKJHWIW.js';
import { metadata_default as metadata_default$e } from './chunk-A4OLWQRV.js';
import { metadata_default as metadata_default$l } from './chunk-G7YIBIDJ.js';
import { metadata_default as metadata_default$r } from './chunk-EDX7VK7X.js';
import { metadata_default as metadata_default$6 } from './chunk-MNAWEOU6.js';
import { metadata_default as metadata_default$6 } from './chunk-WNSDRGOS.js';
import { metadata_default as metadata_default$t } from './chunk-2I3QBCG7.js';

@@ -17,18 +17,18 @@ import { metadata_default as metadata_default$s } from './chunk-2OLU7OKM.js';

import { metadata_default as metadata_default$i } from './chunk-G65WTGYO.js';
import { metadata_default as metadata_default$4 } from './chunk-ANOYHON5.js';
import { metadata_default as metadata_default$4 } from './chunk-6322TKAQ.js';
import { metadata_default as metadata_default$j } from './chunk-AOBSYTR2.js';
import { metadata_default as metadata_default$8 } from './chunk-SVRNYFMY.js';
import { metadata_default } from './chunk-G2CAJ6UF.js';
import { metadata_default as metadata_default$d } from './chunk-AORS6NOC.js';
import { metadata_default as metadata_default$7 } from './chunk-ADEZMHS6.js';
import { metadata_default as metadata_default$d } from './chunk-FMUSBJBU.js';
import { metadata_default as metadata_default$7 } from './chunk-NLJZ5ZRH.js';
import { metadata_default as metadata_default$h } from './chunk-YQN6RNJN.js';
import { metadata_default as metadata_default$g } from './chunk-BPGBJFTV.js';
import { metadata_default as metadata_default$f } from './chunk-BIAXPT4X.js';
import { metadata_default as metadata_default$a } from './chunk-EJVZBU3E.js';
import { metadata_default as metadata_default$f } from './chunk-ZP2TTQCZ.js';
import { metadata_default as metadata_default$a } from './chunk-PPEXHLHV.js';
import { metadata_default as metadata_default$9 } from './chunk-F5OHEUO6.js';
import { metadata_default as metadata_default$c } from './chunk-4SX3WMMX.js';
import { metadata_default as metadata_default$2 } from './chunk-PY6V2ZNR.js';
import { metadata_default as metadata_default$c } from './chunk-DH5PLOFD.js';
import { metadata_default as metadata_default$2 } from './chunk-RAB4BG5S.js';
import { metadata_default as metadata_default$o } from './chunk-OHFC3VK3.js';
import { metadata_default as metadata_default$1 } from './chunk-JLA7IAHK.js';
import { ddd_metadata_default } from './chunk-7BKTNWUC.js';
import { metadata_default as metadata_default$1 } from './chunk-E5S3EWJO.js';
import { ddd_metadata_default } from './chunk-UVZGKHCD.js';
import { faixa_metadata_default } from './chunk-RY2BSDOR.js';

@@ -35,0 +35,0 @@ import { metadata_default as metadata_default$m } from './chunk-FA2SBA4X.js';

@@ -1,4 +0,4 @@

export { detect } from './chunk-Y5JCK4YH.js';
export { detect } from './chunk-5KU4Q3VR.js';
import './chunk-A4QBLVVO.js';
import './chunk-JVI4PL7M.js';
import './chunk-VTCBD6OS.js';
import './chunk-6WBUKUHD.js';

@@ -10,3 +10,3 @@ import './chunk-UG2YICWH.js';

import './chunk-FGOPYU2L.js';
import './chunk-7BKTNWUC.js';
import './chunk-UVZGKHCD.js';
import './chunk-OFAU4VTU.js';

@@ -13,0 +13,0 @@ import './chunk-C4E2AE2A.js';

@@ -1,4 +0,4 @@

export { diff } from './chunk-URP7YUV5.js';
import './chunk-QBGJZLXQ.js';
import './chunk-GOMCPGST.js';
export { diff } from './chunk-K6U6VQUL.js';
import './chunk-PL7QQ5U2.js';
import './chunk-5OS2QI55.js';
import './chunk-GVK6IMBF.js';

@@ -8,3 +8,3 @@ import './chunk-6F3A3NT4.js';

import './chunk-A4QBLVVO.js';
import './chunk-JVI4PL7M.js';
import './chunk-VTCBD6OS.js';
import './chunk-6WBUKUHD.js';

@@ -16,3 +16,3 @@ import './chunk-UG2YICWH.js';

import './chunk-FGOPYU2L.js';
import './chunk-7BKTNWUC.js';
import './chunk-UVZGKHCD.js';
import './chunk-OFAU4VTU.js';

@@ -19,0 +19,0 @@ import './chunk-C4E2AE2A.js';

@@ -1,3 +0,3 @@

export { CPF_ALPHA_GENERATE_STUB, GENERATABLE_CARD_BRANDS, applyArrecadacaoLinhaMask, assertCpfAlphanumericGenerateAllowed, generate, isGeneratableCardBrand, rejectCpfAlphanumericGenerate } from './chunk-NWPW7IAK.js';
import './chunk-TZW4N7QM.js';
export { CPF_ALPHA_GENERATE_STUB, GENERATABLE_CARD_BRANDS, applyArrecadacaoLinhaMask, assertCpfAlphanumericGenerateAllowed, generate, isGeneratableCardBrand, rejectCpfAlphanumericGenerate } from './chunk-JYSGHDBE.js';
import './chunk-VSSHM2V2.js';
import './chunk-A255RZZ7.js';

@@ -16,3 +16,3 @@ import './chunk-KCRWHMDY.js';

import './chunk-4NS47CJG.js';
import './chunk-JVI4PL7M.js';
import './chunk-VTCBD6OS.js';
import './chunk-6WBUKUHD.js';

@@ -24,3 +24,3 @@ import './chunk-UG2YICWH.js';

import './chunk-FGOPYU2L.js';
import './chunk-7BKTNWUC.js';
import './chunk-UVZGKHCD.js';
import './chunk-C4E2AE2A.js';

@@ -27,0 +27,0 @@ import './chunk-RY2BSDOR.js';

@@ -1,2 +0,2 @@

import { metadata_default } from './chunk-AORS6NOC.js';
import { metadata_default } from './chunk-FMUSBJBU.js';
import { lookupInvalidInput, lookupInvalidFormat, lookupNotFound, lookupFound, unwrapLookupValue } from './chunk-3F3YHV65.js';

@@ -3,0 +3,0 @@

@@ -1,2 +0,2 @@

import { metadata_default } from './chunk-ADEZMHS6.js';
import { metadata_default } from './chunk-NLJZ5ZRH.js';
import { resolveStringCodeLookup } from './chunk-2WWKXKJV.js';

@@ -3,0 +3,0 @@ import { unwrapLookupValue } from './chunk-3F3YHV65.js';

@@ -7,3 +7,3 @@ import './chunk-ZH4RJNG7.js';

import './chunk-NQIDHQ6U.js';
export { sanitize } from './chunk-MKQVOEQZ.js';
export { sanitize } from './chunk-GLXKCVZM.js';
import './chunk-4J5IMD7B.js';

@@ -13,6 +13,6 @@ import './chunk-P55H5YRX.js';

import './chunk-QGMVUIDD.js';
export { MASKABLE_DOCUMENT_TYPES, isMaskableDocumentType, mask, maskRuntime } from './chunk-54762ILZ.js';
export { MASKABLE_DOCUMENT_TYPES, isMaskableDocumentType, mask, maskRuntime } from './chunk-NEK4V54G.js';
export { formatProcessoJudicial } from './chunk-MAMBSTTO.js';
export { CPF_ALPHA_GENERATE_STUB, GENERATABLE_CARD_BRANDS, applyArrecadacaoLinhaMask, assertCpfAlphanumericGenerateAllowed, generate, isGeneratableCardBrand, rejectCpfAlphanumericGenerate } from './chunk-NWPW7IAK.js';
export { formatTelefone } from './chunk-TZW4N7QM.js';
export { CPF_ALPHA_GENERATE_STUB, GENERATABLE_CARD_BRANDS, applyArrecadacaoLinhaMask, assertCpfAlphanumericGenerateAllowed, generate, isGeneratableCardBrand, rejectCpfAlphanumericGenerate } from './chunk-JYSGHDBE.js';
export { formatTelefone } from './chunk-VSSHM2V2.js';
export { formatTituloEleitor } from './chunk-A255RZZ7.js';

@@ -29,10 +29,10 @@ import { formatPlaca } from './chunk-KCRWHMDY.js';

export { formatIeProdutorRural } from './chunk-5ZJMYR63.js';
export { compare, compareRuntime } from './chunk-R6VCAOGH.js';
export { compare, compareRuntime } from './chunk-GOGAM2I4.js';
import './chunk-YGA5W54J.js';
import { formatCpf } from './chunk-GQRHLW5W.js';
export { formatCpf } from './chunk-GQRHLW5W.js';
export { detect } from './chunk-Y5JCK4YH.js';
export { diff } from './chunk-URP7YUV5.js';
import './chunk-QBGJZLXQ.js';
import './chunk-GOMCPGST.js';
export { detect } from './chunk-5KU4Q3VR.js';
export { diff } from './chunk-K6U6VQUL.js';
import './chunk-PL7QQ5U2.js';
import './chunk-5OS2QI55.js';
import './chunk-GVK6IMBF.js';

@@ -52,7 +52,7 @@ import './chunk-P5BDKYBC.js';

export { formatCnpj, formatCnpjAlphanumeric, formatCnpjNumeric } from './chunk-HEPUV3XR.js';
export { batch, parseBatchCsv } from './chunk-YWVBXQSZ.js';
export { batch, parseBatchCsv } from './chunk-KWUXOOEM.js';
export { RG_AC_GOLDEN, RG_AL_GOLDEN, RG_AM_GOLDEN, RG_AP_GOLDEN, RG_BA_GOLDEN, RG_CE_GOLDEN, RG_DF_GOLDEN, RG_ES_GOLDEN, RG_GO_GOLDEN, RG_MA_GOLDEN, RG_MG_GOLDEN, RG_MG_GOLDEN_MASKED, RG_MG_GOLDEN_PREFIXED, RG_MS_GOLDEN, RG_MT_GOLDEN, RG_OFFICIAL_SOURCE_URL, RG_OFFICIAL_SOURCE_URLS, RG_PA_GOLDEN, RG_PB_GOLDEN, RG_PENDING_UFS, RG_PE_GOLDEN, RG_PI_GOLDEN, RG_PR_GOLDEN, RG_RESEARCH_URLS, RG_RJ_GOLDEN, RG_RJ_GOLDEN_MASKED, RG_RN_GOLDEN, RG_RO_GOLDEN, RG_RR_GOLDEN, RG_RS_GOLDEN, RG_SC_GOLDEN, RG_SE_GOLDEN, RG_SP_GOLDEN, RG_SP_GOLDEN_MASKED, RG_SP_GOLDEN_X, RG_SP_GOLDEN_X_MASKED, RG_SUPPORTED_UFS, RG_TO_GOLDEN, RG_UF_RULES, computeRgMod10AlternatingCheckDigit, computeRgSpCheckDigit, formatRg, getRgOfficialSourceUrl, getRgPendingUfs, getRgResearchUrl, getRgUfRules, getRgUfSupport, isRgUfImplemented, isValidRg, stripRg, validateRg, validateRgAc, validateRgAl, validateRgAm, validateRgAp, validateRgBa, validateRgCe, validateRgDf, validateRgEs, validateRgGo, validateRgMa, validateRgMg, validateRgMs, validateRgMt, validateRgPa, validateRgPb, validateRgPe, validateRgPi, validateRgPr, validateRgRj, validateRgRn, validateRgRo, validateRgRr, validateRgRs, validateRgSc, validateRgSe, validateRgSp, validateRgTo } from './chunk-6F3A3NT4.js';
export { RENAVAM_BASE_LENGTH, RENAVAM_DV_WEIGHTS, RENAVAM_GOLDEN_DASH_INPUT, RENAVAM_GOLDEN_DV_ZERO, RENAVAM_GOLDEN_LEADING_ZEROS, RENAVAM_GOLDEN_PRIMARY, RENAVAM_GOLDEN_SECONDARY, RENAVAM_LENGTH, RENAVAM_OFFICIAL_SOURCE_URL, RENAVAM_SENATRAN_CONSULTA_URL, isValidRenavam, validateRenavam } from './chunk-4NS47CJG.js';
export { PROCESSO_JUDICIAL_ANEXO_VIII_URL, PROCESSO_JUDICIAL_ANO_LENGTH, PROCESSO_JUDICIAL_DV_LENGTH, PROCESSO_JUDICIAL_GOLDEN_PRIMARY, PROCESSO_JUDICIAL_GOLDEN_PRIMARY_MASKED, PROCESSO_JUDICIAL_GOLDEN_SECONDARY, PROCESSO_JUDICIAL_GOLDEN_SECONDARY_MASKED, PROCESSO_JUDICIAL_GOLDEN_TJSP, PROCESSO_JUDICIAL_GOLDEN_TJSP_MASKED, PROCESSO_JUDICIAL_LENGTH, PROCESSO_JUDICIAL_MASKED_PATTERN, PROCESSO_JUDICIAL_MAX_SEGMENTO, PROCESSO_JUDICIAL_MIN_SEGMENTO, PROCESSO_JUDICIAL_NUMERIC_PATTERN, PROCESSO_JUDICIAL_OFFICIAL_SOURCE_URL, PROCESSO_JUDICIAL_ORIGEM_LENGTH, PROCESSO_JUDICIAL_SEGMENTO_LENGTH, PROCESSO_JUDICIAL_SEQUENCIAL_LENGTH, PROCESSO_JUDICIAL_TRIBUNAL_LENGTH, computeProcessoJudicialCheckDigits, isValidProcessoJudicial, isValidProcessoJudicialCheckDigits, parseProcessoJudicial, parseProcessoJudicialParts, stripProcessoJudicial, validateProcessoJudicial } from './chunk-A4QBLVVO.js';
export { ANATEL_DDDS, ANATEL_DDD_SET, TELEFONE_ANATEL_DDD_PANEL_URL, TELEFONE_DDD_DATA_VERSION, TELEFONE_GOLDEN_CELULAR, TELEFONE_GOLDEN_CELULAR_MASKED, TELEFONE_GOLDEN_FIXO, TELEFONE_GOLDEN_FIXO_MASKED, TELEFONE_OFFICIAL_SOURCE_URL, extractTelefoneDigits, getDddInfo, isValidTelefone, normalizeTelefoneDigits, stripTelefone, validateTelefone } from './chunk-JVI4PL7M.js';
export { ANATEL_DDDS, ANATEL_DDD_SET, TELEFONE_ANATEL_DDD_PANEL_URL, TELEFONE_DDD_DATA_VERSION, TELEFONE_GOLDEN_CELULAR, TELEFONE_GOLDEN_CELULAR_MASKED, TELEFONE_GOLDEN_FIXO, TELEFONE_GOLDEN_FIXO_MASKED, TELEFONE_OFFICIAL_SOURCE_URL, extractTelefoneDigits, getDddInfo, isValidTelefone, normalizeTelefoneDigits, stripTelefone, validateTelefone } from './chunk-VTCBD6OS.js';
export { TITULO_ELEITOR_ALGORITHM_REF_URL, TITULO_ELEITOR_ALGORITHM_WEIGHTS_REF_URL, TITULO_ELEITOR_DV1_WEIGHTS_8, TITULO_ELEITOR_DV1_WEIGHTS_9, TITULO_ELEITOR_DV2_WEIGHTS, TITULO_ELEITOR_ETITULO_URL, TITULO_ELEITOR_EXTERIOR_UF_CODE, TITULO_ELEITOR_GOLDEN_EXTERIOR, TITULO_ELEITOR_GOLDEN_MASKED_INPUT, TITULO_ELEITOR_GOLDEN_PRIMARY, TITULO_ELEITOR_GOLDEN_SP_EXTENDED, TITULO_ELEITOR_GOLDEN_SP_SPECIAL, TITULO_ELEITOR_LENGTH, TITULO_ELEITOR_LENGTH_EXTENDED, TITULO_ELEITOR_NORMATIVE_SECONDARY_URL, TITULO_ELEITOR_NUMERIC_PATTERN_12, TITULO_ELEITOR_NUMERIC_PATTERN_13, TITULO_ELEITOR_OFFICIAL_SOURCE_URL, TITULO_ELEITOR_SEQUENTIAL_LENGTH, TITULO_ELEITOR_SEQUENTIAL_LENGTH_EXTENDED, TITULO_ELEITOR_SPECIAL_UF_CODES, TITULO_ELEITOR_TSE_PORTAL_URL, TITULO_ELEITOR_UF_BY_CODE, isValidTituloEleitor, validateTituloEleitor } from './chunk-6WBUKUHD.js';

@@ -64,3 +64,3 @@ export { PLACA_GOLDEN_CONVERSION_FROM, PLACA_GOLDEN_CONVERSION_TO, PLACA_GOLDEN_LEGACY, PLACA_GOLDEN_MERCOSUL, PLACA_OFFICIAL_SOURCE_URL, convertPlacaToMercosul, detectPlacaFormat, isValidPlaca, isValidPlacaLegacy, isValidPlacaMercosul, validatePlaca } from './chunk-UG2YICWH.js';

export { IE_DF_GOLDEN, IE_DF_GOLDEN_MASKED, IE_DF_OFFICIAL_SOURCE_URL, IE_MT_GOLDEN_CANONICAL, IE_MT_GOLDEN_LEGACY, IE_MT_OFFICIAL_SOURCE_URL, IE_OFFICIAL_SOURCE_URLS, IE_SP_GOLDEN, IE_SP_GOLDEN_MASKED, IE_SP_OFFICIAL_SOURCE_URL, IE_SP_RURAL_GOLDEN, IE_SP_RURAL_GOLDEN_MASKED, IE_SP_RURAL_LENGTH, IE_SP_RURAL_OFFICIAL_SOURCE_URL, IE_SUPPORTED_UFS, getIeProdutorRuralOfficialSourceUrl, isSpRuralIeInput, isValidIeProdutorRural, stripIeSpRural, stripIeSpRural as stripInscricaoEstadualProdutorRural, validateIeProdutorRural, validateIeSpRural } from './chunk-FGOPYU2L.js';
import './chunk-7BKTNWUC.js';
import './chunk-UVZGKHCD.js';
export { EAN_13_LENGTH, EAN_8_LENGTH, EAN_GOLDEN_13, EAN_GOLDEN_13_MASKED, EAN_GOLDEN_8, EAN_GOLDEN_8_MASKED, EAN_OFFICIAL_SOURCE_URL, applyEanMask, computeGs1Modulo10CheckDigit, computeGs1Modulo10Sum, detectEanFormat, isValidEan, isValidGs1Modulo10, passesGs1Modulo10, stripEan, validateEan } from './chunk-OFAU4VTU.js';

@@ -67,0 +67,0 @@ export { CEP_FAIXA_CNEFE_BASE_URL, CEP_FAIXA_DATA_VERSION, CEP_FAIXA_GOLDEN_PREFIX_RJ, CEP_FAIXA_GOLDEN_PREFIX_SP, CEP_FAIXA_MAX_PREFIXES, CEP_FAIXA_MIN_PREFIXES, CEP_GOLDEN_PRIMARY, CEP_GOLDEN_PRIMARY_MASKED, CEP_GOLDEN_SECONDARY, CEP_OFFICIAL_SOURCE_URL, getCepFaixaInfo, getCepFaixas, isValidCep, validateCep } from './chunk-C4E2AE2A.js';

@@ -1,4 +0,4 @@

export { MASKABLE_DOCUMENT_TYPES, isMaskableDocumentType, mask, maskRuntime } from './chunk-54762ILZ.js';
export { MASKABLE_DOCUMENT_TYPES, isMaskableDocumentType, mask, maskRuntime } from './chunk-NEK4V54G.js';
import './chunk-MAMBSTTO.js';
import './chunk-TZW4N7QM.js';
import './chunk-VSSHM2V2.js';
import './chunk-A255RZZ7.js';

@@ -20,3 +20,3 @@ import './chunk-KCRWHMDY.js';

import './chunk-A4QBLVVO.js';
import './chunk-JVI4PL7M.js';
import './chunk-VTCBD6OS.js';
import './chunk-6WBUKUHD.js';

@@ -28,3 +28,3 @@ import './chunk-UG2YICWH.js';

import './chunk-FGOPYU2L.js';
import './chunk-7BKTNWUC.js';
import './chunk-UVZGKHCD.js';
import './chunk-OFAU4VTU.js';

@@ -31,0 +31,0 @@ import './chunk-C4E2AE2A.js';

@@ -1,2 +0,2 @@

import { metadata_default } from './chunk-ANOYHON5.js';
import { metadata_default } from './chunk-6322TKAQ.js';
import { resolveStringCodeLookup } from './chunk-2WWKXKJV.js';

@@ -3,0 +3,0 @@ import { unwrapLookupValue } from './chunk-3F3YHV65.js';

@@ -1,2 +0,2 @@

import { metadata_default } from './chunk-CCQWVAHV.js';
import { metadata_default } from './chunk-QRKJHWIW.js';
import { resolveFixedLengthCodeLookup } from './chunk-2WWKXKJV.js';

@@ -3,0 +3,0 @@ import { unwrapLookupValue } from './chunk-3F3YHV65.js';

@@ -1,2 +0,2 @@

import { metadata_default } from './chunk-MNAWEOU6.js';
import { metadata_default } from './chunk-WNSDRGOS.js';
import { resolveFixedLengthCodeLookup } from './chunk-2WWKXKJV.js';

@@ -3,0 +3,0 @@ import { unwrapLookupValue } from './chunk-3F3YHV65.js';

@@ -1,3 +0,3 @@

export { sanitize } from './chunk-MKQVOEQZ.js';
import './chunk-GOMCPGST.js';
export { sanitize } from './chunk-GLXKCVZM.js';
import './chunk-5OS2QI55.js';
import './chunk-GVK6IMBF.js';

@@ -7,3 +7,3 @@ import './chunk-6F3A3NT4.js';

import './chunk-A4QBLVVO.js';
import './chunk-JVI4PL7M.js';
import './chunk-VTCBD6OS.js';
import './chunk-6WBUKUHD.js';

@@ -15,3 +15,3 @@ import './chunk-UG2YICWH.js';

import './chunk-FGOPYU2L.js';
import './chunk-7BKTNWUC.js';
import './chunk-UVZGKHCD.js';
import './chunk-OFAU4VTU.js';

@@ -18,0 +18,0 @@ import './chunk-C4E2AE2A.js';

import { parseIsoDateString, addUtcDays, formatIsoDate, isWeekendUtc, isFeriadoNacional } from './chunk-MQG2IR7F.js';
import { metadata_default } from './chunk-MAWOA6DL.js';
import { metadata_default } from './chunk-4IOLUZDR.js';

@@ -7,6 +7,2 @@ // src/selic/data/selic.json

{
data: "2026-04-03",
valor: 14.75
},
{
data: "2026-04-04",

@@ -366,2 +362,6 @@ valor: 14.75

valor: 14.25
},
{
data: "2026-07-02",
valor: 14.25
}

@@ -368,0 +368,0 @@ ];

@@ -1,1 +0,1 @@

{"version":3,"sources":["../src/selic/data/selic.json","../src/selic/constants.ts","../src/selic/staleness.ts","../src/selic/lookup.ts","../src/selic/version.ts"],"names":[],"mappings":"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","file":"selic.js","sourcesContent":["[\n {\n \"data\": \"2026-04-03\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-04\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-05\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-06\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-07\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-08\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-09\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-10\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-11\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-12\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-13\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-14\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-15\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-16\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-17\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-18\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-19\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-20\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-21\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-22\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-23\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-24\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-25\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-26\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-27\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-28\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-29\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-30\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-01\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-02\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-03\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-04\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-05\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-06\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-07\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-08\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-09\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-10\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-11\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-12\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-13\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-14\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-15\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-16\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-17\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-18\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-19\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-20\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-21\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-22\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-23\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-24\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-25\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-26\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-27\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-28\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-29\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-30\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-31\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-01\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-02\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-03\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-04\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-05\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-06\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-07\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-08\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-09\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-10\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-11\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-12\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-13\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-14\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-15\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-16\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-17\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-18\",\n \"valor\": 14.25\n },\n {\n \"data\": \"2026-06-19\",\n \"valor\": 14.25\n },\n {\n \"data\": \"2026-06-20\",\n \"valor\": 14.25\n },\n {\n \"data\": \"2026-06-21\",\n \"valor\": 14.25\n },\n {\n \"data\": \"2026-06-22\",\n \"valor\": 14.25\n },\n {\n \"data\": \"2026-06-23\",\n \"valor\": 14.25\n },\n {\n \"data\": \"2026-06-24\",\n \"valor\": 14.25\n },\n {\n \"data\": \"2026-06-25\",\n \"valor\": 14.25\n },\n {\n \"data\": \"2026-06-26\",\n \"valor\": 14.25\n },\n {\n \"data\": \"2026-06-27\",\n \"valor\": 14.25\n },\n {\n \"data\": \"2026-06-28\",\n \"valor\": 14.25\n },\n {\n \"data\": \"2026-06-29\",\n \"valor\": 14.25\n },\n {\n \"data\": \"2026-06-30\",\n \"valor\": 14.25\n },\n {\n \"data\": \"2026-07-01\",\n \"valor\": 14.25\n }\n]\n","/**\n * Bacen SGS série 432 — Meta Selic constants.\n * @see https://dadosabertos.bcb.gov.br/dataset/432-taxa-de-juros---meta-selic-definida-pelo-copom\n */\n\nexport const BCB_SELIC_DATASET_URL =\n 'https://dadosabertos.bcb.gov.br/dataset/432-taxa-de-juros---meta-selic-definida-pelo-copom';\n\nexport const BCB_SELIC_SGS_API_URL =\n 'https://api.bcb.gov.br/dados/serie/bcdata.sgs.432/dados?formato=json';\n\nexport const BCB_SELIC_SGS_CONSULTA_URL =\n 'https://www3.bcb.gov.br/sgspub/consultarvalores/consultarValoresSeries.do?method=consultarGraficoPorId&hdOidSeriesSelecionadas=432';\n\nexport const BCB_SELIC_COPOM_URL = 'https://www.bcb.gov.br/controleinflacao/copom';\n\nexport const SELIC_SGS_SERIE = 432;\n\nexport const SELIC_EMBED_CALENDAR_DAYS = 90;\n\nexport const SELIC_STALE_WARNING =\n 'Embedded data. For real-time use @br-validators/adapters-selic';\n\n/** Golden meta Selic 14,25% a.a. on 2026-06-18 (COPOM). */\nexport const SELIC_GOLDEN_DATA_COPOM = '2026-06-18';\n\nexport const SELIC_GOLDEN_VALOR_COPOM = 14.25;\n","/**\n * SELIC embed staleness — business-day age vs Brazil local today.\n * @see docs/OFFICIAL-SOURCES.md#selic-meta-sgs-432\n */\n\nimport { isFeriadoNacional } from '../feriados/calendar.js';\nimport {\n addUtcDays,\n formatIsoDate,\n isWeekendUtc,\n parseIsoDateString,\n} from '../feriados/date-utils.js';\nimport { SELIC_STALE_WARNING } from './constants.js';\nimport type { SelicLookupOptions, SelicMetaObservacao, SelicMetaResult } from './types.js';\n\nexport function isDiaUtil(isoDate: string): boolean {\n const parts = parseIsoDateString(isoDate);\n if (parts === null) {\n return false;\n }\n return !isWeekendUtc(parts) && !isFeriadoNacional(isoDate);\n}\n\nexport function getBrazilTodayIso(now: Date = new Date()): string {\n return new Intl.DateTimeFormat('en-CA', { timeZone: 'America/Sao_Paulo' }).format(now);\n}\n\nexport function subtractBusinessDays(fromIso: string, businessDays: number): string {\n if (businessDays < 1) {\n return fromIso;\n }\n\n const start = parseIsoDateString(fromIso);\n if (start === null) {\n return '';\n }\n\n let cursor = start;\n let remaining = businessDays;\n const maxIterations = businessDays * 4 + 14;\n\n for (let iteration = 0; iteration < maxIterations && remaining > 0; iteration += 1) {\n cursor = addUtcDays(cursor, -1);\n const iso = formatIsoDate(cursor);\n if (isDiaUtil(iso)) {\n remaining -= 1;\n }\n }\n\n return formatIsoDate(cursor);\n}\n\nexport function isSelicMetaStale(dataReferencia: string, asOfDate: string): boolean {\n const reference = parseIsoDateString(dataReferencia);\n const asOf = parseIsoDateString(asOfDate);\n if (reference === null || asOf === null) {\n return false;\n }\n\n const previousBusinessDay = subtractBusinessDays(asOfDate, 1);\n return dataReferencia < previousBusinessDay;\n}\n\nexport function buildSelicMetaResult(\n observacao: SelicMetaObservacao,\n options?: SelicLookupOptions,\n): SelicMetaResult {\n const asOfDate = options?.asOfDate ?? getBrazilTodayIso();\n const dataReferencia = observacao.data;\n const isStale = isSelicMetaStale(dataReferencia, asOfDate);\n\n return {\n ...observacao,\n dataReferencia,\n isStale,\n ...(isStale ? { warning: SELIC_STALE_WARNING } : {}),\n };\n}\n","/**\n * Bacen SELIC meta (SGS 432) — offline embedded daily series.\n * @see https://api.bcb.gov.br/dados/serie/bcdata.sgs.432/dados?formato=json\n */\n\nimport selicData from './data/selic.json';\nimport { buildSelicMetaResult } from './staleness.js';\nimport type {\n SelicHistoricoRange,\n SelicLookupOptions,\n SelicMetaObservacao,\n SelicMetaResult,\n} from './types.js';\n\nconst observacoes: readonly SelicMetaObservacao[] = selicData;\n\nfunction normalizeData(data: string): string {\n const trimmed = data.trim();\n const isoMatch = /^(\\d{4})-(\\d{2})-(\\d{2})$/u.exec(trimmed);\n if (isoMatch !== null) {\n return `${isoMatch[1]}-${isoMatch[2]}-${isoMatch[3]}`;\n }\n\n const bacenMatch = /^(\\d{2})-(\\d{2})-(\\d{4})$/u.exec(trimmed);\n if (bacenMatch !== null) {\n return `${bacenMatch[3]}-${bacenMatch[1]}-${bacenMatch[2]}`;\n }\n\n const slashMatch = /^(\\d{2})\\/(\\d{2})\\/(\\d{4})$/u.exec(trimmed);\n if (slashMatch !== null) {\n return `${slashMatch[3]}-${slashMatch[2]}-${slashMatch[1]}`;\n }\n\n return '';\n}\n\nfunction compareByDateDesc(left: SelicMetaObservacao, right: SelicMetaObservacao): number {\n return right.data.localeCompare(left.data);\n}\n\nfunction compareByDateAsc(left: SelicMetaObservacao, right: SelicMetaObservacao): number {\n return left.data.localeCompare(right.data);\n}\n\nexport function getSelicList(): readonly SelicMetaObservacao[] {\n return observacoes;\n}\n\nexport function pickLatestSelicMeta(\n items: readonly SelicMetaObservacao[],\n): SelicMetaObservacao | undefined {\n if (items.length === 0) {\n return undefined;\n }\n return [...items].sort(compareByDateDesc)[0];\n}\n\nfunction resolveSelicObservacao(data?: string): SelicMetaObservacao | undefined {\n if (data === undefined) {\n return pickLatestSelicMeta(observacoes);\n }\n\n const normalizedData = normalizeData(data);\n if (normalizedData.length === 0) {\n return undefined;\n }\n\n return observacoes.find((entry) => entry.data === normalizedData);\n}\n\nexport function getSelicMeta(options?: SelicLookupOptions): SelicMetaResult | undefined {\n const observacao = resolveSelicObservacao();\n if (observacao === undefined) {\n return undefined;\n }\n return buildSelicMetaResult(observacao, options);\n}\n\nexport function getSelicMetaPorData(\n isoDate: string,\n options?: SelicLookupOptions,\n): SelicMetaResult | undefined {\n const observacao = resolveSelicObservacao(isoDate);\n if (observacao === undefined) {\n return undefined;\n }\n return buildSelicMetaResult(observacao, options);\n}\n\nexport function getSelicHistorico(range: SelicHistoricoRange): readonly SelicMetaObservacao[] {\n const from = range.from === undefined ? '' : normalizeData(range.from);\n const to = range.to === undefined ? '' : normalizeData(range.to);\n\n if ((range.from !== undefined && from.length === 0) || (range.to !== undefined && to.length === 0)) {\n return [];\n }\n\n if (from.length > 0 && to.length > 0 && from > to) {\n return [];\n }\n\n return observacoes\n .filter((entry) => {\n if (from.length > 0 && entry.data < from) {\n return false;\n }\n if (to.length > 0 && entry.data > to) {\n return false;\n }\n return true;\n })\n .sort(compareByDateAsc);\n}\n","import selicMetadata from './data/metadata.json';\nimport type { SelicDataVersion } from './types.js';\n\nexport const SELIC_DATA_VERSION: SelicDataVersion = selicMetadata as SelicDataVersion;\n"]}
{"version":3,"sources":["../src/selic/data/selic.json","../src/selic/constants.ts","../src/selic/staleness.ts","../src/selic/lookup.ts","../src/selic/version.ts"],"names":[],"mappings":"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","file":"selic.js","sourcesContent":["[\n {\n \"data\": \"2026-04-04\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-05\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-06\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-07\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-08\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-09\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-10\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-11\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-12\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-13\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-14\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-15\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-16\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-17\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-18\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-19\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-20\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-21\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-22\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-23\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-24\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-25\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-26\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-27\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-28\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-29\",\n \"valor\": 14.75\n },\n {\n \"data\": \"2026-04-30\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-01\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-02\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-03\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-04\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-05\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-06\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-07\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-08\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-09\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-10\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-11\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-12\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-13\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-14\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-15\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-16\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-17\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-18\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-19\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-20\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-21\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-22\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-23\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-24\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-25\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-26\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-27\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-28\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-29\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-30\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-05-31\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-01\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-02\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-03\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-04\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-05\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-06\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-07\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-08\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-09\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-10\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-11\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-12\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-13\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-14\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-15\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-16\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-17\",\n \"valor\": 14.5\n },\n {\n \"data\": \"2026-06-18\",\n \"valor\": 14.25\n },\n {\n \"data\": \"2026-06-19\",\n \"valor\": 14.25\n },\n {\n \"data\": \"2026-06-20\",\n \"valor\": 14.25\n },\n {\n \"data\": \"2026-06-21\",\n \"valor\": 14.25\n },\n {\n \"data\": \"2026-06-22\",\n \"valor\": 14.25\n },\n {\n \"data\": \"2026-06-23\",\n \"valor\": 14.25\n },\n {\n \"data\": \"2026-06-24\",\n \"valor\": 14.25\n },\n {\n \"data\": \"2026-06-25\",\n \"valor\": 14.25\n },\n {\n \"data\": \"2026-06-26\",\n \"valor\": 14.25\n },\n {\n \"data\": \"2026-06-27\",\n \"valor\": 14.25\n },\n {\n \"data\": \"2026-06-28\",\n \"valor\": 14.25\n },\n {\n \"data\": \"2026-06-29\",\n \"valor\": 14.25\n },\n {\n \"data\": \"2026-06-30\",\n \"valor\": 14.25\n },\n {\n \"data\": \"2026-07-01\",\n \"valor\": 14.25\n },\n {\n \"data\": \"2026-07-02\",\n \"valor\": 14.25\n }\n]\n","/**\n * Bacen SGS série 432 — Meta Selic constants.\n * @see https://dadosabertos.bcb.gov.br/dataset/432-taxa-de-juros---meta-selic-definida-pelo-copom\n */\n\nexport const BCB_SELIC_DATASET_URL =\n 'https://dadosabertos.bcb.gov.br/dataset/432-taxa-de-juros---meta-selic-definida-pelo-copom';\n\nexport const BCB_SELIC_SGS_API_URL =\n 'https://api.bcb.gov.br/dados/serie/bcdata.sgs.432/dados?formato=json';\n\nexport const BCB_SELIC_SGS_CONSULTA_URL =\n 'https://www3.bcb.gov.br/sgspub/consultarvalores/consultarValoresSeries.do?method=consultarGraficoPorId&hdOidSeriesSelecionadas=432';\n\nexport const BCB_SELIC_COPOM_URL = 'https://www.bcb.gov.br/controleinflacao/copom';\n\nexport const SELIC_SGS_SERIE = 432;\n\nexport const SELIC_EMBED_CALENDAR_DAYS = 90;\n\nexport const SELIC_STALE_WARNING =\n 'Embedded data. For real-time use @br-validators/adapters-selic';\n\n/** Golden meta Selic 14,25% a.a. on 2026-06-18 (COPOM). */\nexport const SELIC_GOLDEN_DATA_COPOM = '2026-06-18';\n\nexport const SELIC_GOLDEN_VALOR_COPOM = 14.25;\n","/**\n * SELIC embed staleness — business-day age vs Brazil local today.\n * @see docs/OFFICIAL-SOURCES.md#selic-meta-sgs-432\n */\n\nimport { isFeriadoNacional } from '../feriados/calendar.js';\nimport {\n addUtcDays,\n formatIsoDate,\n isWeekendUtc,\n parseIsoDateString,\n} from '../feriados/date-utils.js';\nimport { SELIC_STALE_WARNING } from './constants.js';\nimport type { SelicLookupOptions, SelicMetaObservacao, SelicMetaResult } from './types.js';\n\nexport function isDiaUtil(isoDate: string): boolean {\n const parts = parseIsoDateString(isoDate);\n if (parts === null) {\n return false;\n }\n return !isWeekendUtc(parts) && !isFeriadoNacional(isoDate);\n}\n\nexport function getBrazilTodayIso(now: Date = new Date()): string {\n return new Intl.DateTimeFormat('en-CA', { timeZone: 'America/Sao_Paulo' }).format(now);\n}\n\nexport function subtractBusinessDays(fromIso: string, businessDays: number): string {\n if (businessDays < 1) {\n return fromIso;\n }\n\n const start = parseIsoDateString(fromIso);\n if (start === null) {\n return '';\n }\n\n let cursor = start;\n let remaining = businessDays;\n const maxIterations = businessDays * 4 + 14;\n\n for (let iteration = 0; iteration < maxIterations && remaining > 0; iteration += 1) {\n cursor = addUtcDays(cursor, -1);\n const iso = formatIsoDate(cursor);\n if (isDiaUtil(iso)) {\n remaining -= 1;\n }\n }\n\n return formatIsoDate(cursor);\n}\n\nexport function isSelicMetaStale(dataReferencia: string, asOfDate: string): boolean {\n const reference = parseIsoDateString(dataReferencia);\n const asOf = parseIsoDateString(asOfDate);\n if (reference === null || asOf === null) {\n return false;\n }\n\n const previousBusinessDay = subtractBusinessDays(asOfDate, 1);\n return dataReferencia < previousBusinessDay;\n}\n\nexport function buildSelicMetaResult(\n observacao: SelicMetaObservacao,\n options?: SelicLookupOptions,\n): SelicMetaResult {\n const asOfDate = options?.asOfDate ?? getBrazilTodayIso();\n const dataReferencia = observacao.data;\n const isStale = isSelicMetaStale(dataReferencia, asOfDate);\n\n return {\n ...observacao,\n dataReferencia,\n isStale,\n ...(isStale ? { warning: SELIC_STALE_WARNING } : {}),\n };\n}\n","/**\n * Bacen SELIC meta (SGS 432) — offline embedded daily series.\n * @see https://api.bcb.gov.br/dados/serie/bcdata.sgs.432/dados?formato=json\n */\n\nimport selicData from './data/selic.json';\nimport { buildSelicMetaResult } from './staleness.js';\nimport type {\n SelicHistoricoRange,\n SelicLookupOptions,\n SelicMetaObservacao,\n SelicMetaResult,\n} from './types.js';\n\nconst observacoes: readonly SelicMetaObservacao[] = selicData;\n\nfunction normalizeData(data: string): string {\n const trimmed = data.trim();\n const isoMatch = /^(\\d{4})-(\\d{2})-(\\d{2})$/u.exec(trimmed);\n if (isoMatch !== null) {\n return `${isoMatch[1]}-${isoMatch[2]}-${isoMatch[3]}`;\n }\n\n const bacenMatch = /^(\\d{2})-(\\d{2})-(\\d{4})$/u.exec(trimmed);\n if (bacenMatch !== null) {\n return `${bacenMatch[3]}-${bacenMatch[1]}-${bacenMatch[2]}`;\n }\n\n const slashMatch = /^(\\d{2})\\/(\\d{2})\\/(\\d{4})$/u.exec(trimmed);\n if (slashMatch !== null) {\n return `${slashMatch[3]}-${slashMatch[2]}-${slashMatch[1]}`;\n }\n\n return '';\n}\n\nfunction compareByDateDesc(left: SelicMetaObservacao, right: SelicMetaObservacao): number {\n return right.data.localeCompare(left.data);\n}\n\nfunction compareByDateAsc(left: SelicMetaObservacao, right: SelicMetaObservacao): number {\n return left.data.localeCompare(right.data);\n}\n\nexport function getSelicList(): readonly SelicMetaObservacao[] {\n return observacoes;\n}\n\nexport function pickLatestSelicMeta(\n items: readonly SelicMetaObservacao[],\n): SelicMetaObservacao | undefined {\n if (items.length === 0) {\n return undefined;\n }\n return [...items].sort(compareByDateDesc)[0];\n}\n\nfunction resolveSelicObservacao(data?: string): SelicMetaObservacao | undefined {\n if (data === undefined) {\n return pickLatestSelicMeta(observacoes);\n }\n\n const normalizedData = normalizeData(data);\n if (normalizedData.length === 0) {\n return undefined;\n }\n\n return observacoes.find((entry) => entry.data === normalizedData);\n}\n\nexport function getSelicMeta(options?: SelicLookupOptions): SelicMetaResult | undefined {\n const observacao = resolveSelicObservacao();\n if (observacao === undefined) {\n return undefined;\n }\n return buildSelicMetaResult(observacao, options);\n}\n\nexport function getSelicMetaPorData(\n isoDate: string,\n options?: SelicLookupOptions,\n): SelicMetaResult | undefined {\n const observacao = resolveSelicObservacao(isoDate);\n if (observacao === undefined) {\n return undefined;\n }\n return buildSelicMetaResult(observacao, options);\n}\n\nexport function getSelicHistorico(range: SelicHistoricoRange): readonly SelicMetaObservacao[] {\n const from = range.from === undefined ? '' : normalizeData(range.from);\n const to = range.to === undefined ? '' : normalizeData(range.to);\n\n if ((range.from !== undefined && from.length === 0) || (range.to !== undefined && to.length === 0)) {\n return [];\n }\n\n if (from.length > 0 && to.length > 0 && from > to) {\n return [];\n }\n\n return observacoes\n .filter((entry) => {\n if (from.length > 0 && entry.data < from) {\n return false;\n }\n if (to.length > 0 && entry.data > to) {\n return false;\n }\n return true;\n })\n .sort(compareByDateAsc);\n}\n","import selicMetadata from './data/metadata.json';\nimport type { SelicDataVersion } from './types.js';\n\nexport const SELIC_DATA_VERSION: SelicDataVersion = selicMetadata as SelicDataVersion;\n"]}
import './chunk-ZH4RJNG7.js';
export { formatTelefone } from './chunk-TZW4N7QM.js';
export { ANATEL_DDDS, ANATEL_DDD_SET, TELEFONE_ANATEL_DDD_PANEL_URL, TELEFONE_DDD_DATA_VERSION, TELEFONE_GOLDEN_CELULAR, TELEFONE_GOLDEN_CELULAR_MASKED, TELEFONE_GOLDEN_FIXO, TELEFONE_GOLDEN_FIXO_MASKED, TELEFONE_OFFICIAL_SOURCE_URL, extractTelefoneDigits, getDddInfo, isValidTelefone, normalizeTelefoneDigits, stripTelefone, validateTelefone } from './chunk-JVI4PL7M.js';
import './chunk-7BKTNWUC.js';
export { formatTelefone } from './chunk-VSSHM2V2.js';
export { ANATEL_DDDS, ANATEL_DDD_SET, TELEFONE_ANATEL_DDD_PANEL_URL, TELEFONE_DDD_DATA_VERSION, TELEFONE_GOLDEN_CELULAR, TELEFONE_GOLDEN_CELULAR_MASKED, TELEFONE_GOLDEN_FIXO, TELEFONE_GOLDEN_FIXO_MASKED, TELEFONE_OFFICIAL_SOURCE_URL, extractTelefoneDigits, getDddInfo, isValidTelefone, normalizeTelefoneDigits, stripTelefone, validateTelefone } from './chunk-VTCBD6OS.js';
import './chunk-UVZGKHCD.js';
import './chunk-BVMY4IWB.js';
//# sourceMappingURL=telefone.js.map
//# sourceMappingURL=telefone.js.map

@@ -1,2 +0,2 @@

import { metadata_default } from './chunk-YB6Z2SSG.js';
import { metadata_default } from './chunk-MCNZZ7MG.js';
import { stripCpf } from './chunk-UCJPSJN5.js';

@@ -7,3 +7,3 @@ import { stripCnpj } from './chunk-EB3G4IG6.js';

var endpoints_default = {
capturadoEm: "2026-07-01T13:38:02.222Z",
capturadoEm: "2026-07-02T07:59:13.831Z",
swaggerOk: true,

@@ -10,0 +10,0 @@ openapiOk: true,

@@ -1,1 +0,1 @@

{"version":3,"sources":["../src/transparencia-snapshots/data/endpoints.json","../src/transparencia-snapshots/lookup.ts","../src/transparencia-snapshots/normalize.ts","../src/transparencia-snapshots/constants.ts","../src/transparencia-snapshots/version.ts"],"names":[],"mappings":"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","file":"transparencia-snapshots.js","sourcesContent":["{\n \"capturadoEm\": \"2026-07-01T13:38:02.222Z\",\n \"swaggerOk\": true,\n \"openapiOk\": true,\n \"cadastroUrl\": \"https://portaldatransparencia.gov.br/\",\n \"adapterPackage\": \"@br-validators/adapters-transparencia\",\n \"endpoints\": [\n {\n \"id\": \"ceis\",\n \"path\": \"/api-de-dados/ceis\",\n \"domain\": \"sanctions\",\n \"delivery\": \"query-adapter\",\n \"description\": \"Cadastro de Empresas Inidôneas e Suspensas — paginated query by CNPJ/CPF\"\n },\n {\n \"id\": \"cnep\",\n \"path\": \"/api-de-dados/cnep\",\n \"domain\": \"sanctions\",\n \"delivery\": \"query-adapter\",\n \"description\": \"Cadastro Nacional de Empresas Punidas — paginated query by CNPJ/CPF\"\n },\n {\n \"id\": \"ceaf\",\n \"path\": \"/api-de-dados/ceaf\",\n \"domain\": \"sanctions\",\n \"delivery\": \"query-adapter\",\n \"description\": \"Cadastro de Expulsões da Administração Federal — paginated query\"\n },\n {\n \"id\": \"peps\",\n \"path\": \"/api-de-dados/peps\",\n \"domain\": \"pep\",\n \"delivery\": \"query-adapter\",\n \"description\": \"Pessoas Expostas Politicamente — paginated query; no open bulk export in v1\"\n },\n {\n \"id\": \"bolsa-familia\",\n \"path\": \"/api-de-dados/bolsa-familia-beneficios\",\n \"domain\": \"social-programs\",\n \"delivery\": \"query-adapter\",\n \"description\": \"Bolsa Família benefits — query by CPF/NIS; adapter only\"\n },\n {\n \"id\": \"bpc\",\n \"path\": \"/api-de-dados/beneficios-por-pessoa\",\n \"domain\": \"social-programs\",\n \"delivery\": \"query-adapter\",\n \"description\": \"BPC and related benefits — query by CPF/NIS; adapter only\"\n },\n {\n \"id\": \"auxilio-emergencial\",\n \"path\": \"/api-de-dados/auxilio-emergencial\",\n \"domain\": \"social-programs\",\n \"delivery\": \"query-adapter\",\n \"description\": \"Auxílio Emergencial — historical query by CPF/NIS; adapter only\"\n },\n {\n \"id\": \"despesas\",\n \"path\": \"/api-de-dados/despesas\",\n \"domain\": \"budget\",\n \"delivery\": \"out-of-scope\",\n \"description\": \"Federal spending — high volume; out of scope for core embed v1\"\n }\n ]\n}\n","/**\n * Portal da Transparência endpoint registry — offline metadata (no live API in core).\n * @see docs/OFFICIAL-SOURCES.md#portal-transparencia\n */\n\nimport registryData from './data/endpoints.json';\nimport type { TransparenciaEndpoint, TransparenciaSnapshotsRegistry } from './types.js';\n\nconst registry = registryData as TransparenciaSnapshotsRegistry;\nconst endpoints: readonly TransparenciaEndpoint[] = registry.endpoints;\n\nexport function getTransparenciaRegistry(): TransparenciaSnapshotsRegistry {\n return registry;\n}\n\nexport function getTransparenciaEndpoints(): readonly TransparenciaEndpoint[] {\n return endpoints;\n}\n\nexport function getTransparenciaEndpointPorId(id: string): TransparenciaEndpoint | undefined {\n const normalized = id.trim().toLowerCase();\n if (normalized.length === 0) {\n return undefined;\n }\n return endpoints.find((endpoint) => endpoint.id === normalized);\n}\n\nexport function getTransparenciaEndpointsPorDominio(domain: string): readonly TransparenciaEndpoint[] {\n const normalized = domain.trim().toLowerCase();\n if (normalized.length === 0) {\n return [];\n }\n return endpoints.filter((endpoint) => endpoint.domain === normalized);\n}\n\nexport function getTransparenciaQueryAdapterEndpoints(): readonly TransparenciaEndpoint[] {\n return endpoints.filter((endpoint) => endpoint.delivery === 'query-adapter');\n}\n","/**\n * Normalize identifiers for Transparência adapter queries — delegates to core strip helpers.\n * @see docs/ADAPTERS-TRANSPARENCIA-RFC.md\n */\n\nimport { stripCnpj } from '../strip/cnpj.js';\nimport { stripCpf } from '../strip/cpf.js';\n\nexport function normalizeTransparenciaCpf(input: string): string {\n return stripCpf(input);\n}\n\nexport function normalizeTransparenciaCnpj(input: string): string {\n return stripCnpj(input);\n}\n","export const TRANSPARENCIA_SWAGGER_URL =\n 'https://api.portaldatransparencia.gov.br/swagger-ui/index.html';\n\nexport const TRANSPARENCIA_OPENAPI_URL = 'https://api.portaldatransparencia.gov.br/v3/api-docs';\n\nexport const TRANSPARENCIA_CADASTRO_URL = 'https://portaldatransparencia.gov.br/';\n\nexport const TRANSPARENCIA_ADAPTER_PACKAGE = '@br-validators/adapters-transparencia';\n\nexport const TRANSPARENCIA_GOLDEN_CEIS_PATH = '/api-de-dados/ceis';\n","import transparenciaMetadata from './data/metadata.json';\nimport type { TransparenciaSnapshotsDataVersion } from './types.js';\n\nexport const TRANSPARENCIA_SNAPSHOTS_DATA_VERSION: TransparenciaSnapshotsDataVersion =\n transparenciaMetadata as TransparenciaSnapshotsDataVersion;\n"]}
{"version":3,"sources":["../src/transparencia-snapshots/data/endpoints.json","../src/transparencia-snapshots/lookup.ts","../src/transparencia-snapshots/normalize.ts","../src/transparencia-snapshots/constants.ts","../src/transparencia-snapshots/version.ts"],"names":[],"mappings":"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","file":"transparencia-snapshots.js","sourcesContent":["{\n \"capturadoEm\": \"2026-07-02T07:59:13.831Z\",\n \"swaggerOk\": true,\n \"openapiOk\": true,\n \"cadastroUrl\": \"https://portaldatransparencia.gov.br/\",\n \"adapterPackage\": \"@br-validators/adapters-transparencia\",\n \"endpoints\": [\n {\n \"id\": \"ceis\",\n \"path\": \"/api-de-dados/ceis\",\n \"domain\": \"sanctions\",\n \"delivery\": \"query-adapter\",\n \"description\": \"Cadastro de Empresas Inidôneas e Suspensas — paginated query by CNPJ/CPF\"\n },\n {\n \"id\": \"cnep\",\n \"path\": \"/api-de-dados/cnep\",\n \"domain\": \"sanctions\",\n \"delivery\": \"query-adapter\",\n \"description\": \"Cadastro Nacional de Empresas Punidas — paginated query by CNPJ/CPF\"\n },\n {\n \"id\": \"ceaf\",\n \"path\": \"/api-de-dados/ceaf\",\n \"domain\": \"sanctions\",\n \"delivery\": \"query-adapter\",\n \"description\": \"Cadastro de Expulsões da Administração Federal — paginated query\"\n },\n {\n \"id\": \"peps\",\n \"path\": \"/api-de-dados/peps\",\n \"domain\": \"pep\",\n \"delivery\": \"query-adapter\",\n \"description\": \"Pessoas Expostas Politicamente — paginated query; no open bulk export in v1\"\n },\n {\n \"id\": \"bolsa-familia\",\n \"path\": \"/api-de-dados/bolsa-familia-beneficios\",\n \"domain\": \"social-programs\",\n \"delivery\": \"query-adapter\",\n \"description\": \"Bolsa Família benefits — query by CPF/NIS; adapter only\"\n },\n {\n \"id\": \"bpc\",\n \"path\": \"/api-de-dados/beneficios-por-pessoa\",\n \"domain\": \"social-programs\",\n \"delivery\": \"query-adapter\",\n \"description\": \"BPC and related benefits — query by CPF/NIS; adapter only\"\n },\n {\n \"id\": \"auxilio-emergencial\",\n \"path\": \"/api-de-dados/auxilio-emergencial\",\n \"domain\": \"social-programs\",\n \"delivery\": \"query-adapter\",\n \"description\": \"Auxílio Emergencial — historical query by CPF/NIS; adapter only\"\n },\n {\n \"id\": \"despesas\",\n \"path\": \"/api-de-dados/despesas\",\n \"domain\": \"budget\",\n \"delivery\": \"out-of-scope\",\n \"description\": \"Federal spending — high volume; out of scope for core embed v1\"\n }\n ]\n}\n","/**\n * Portal da Transparência endpoint registry — offline metadata (no live API in core).\n * @see docs/OFFICIAL-SOURCES.md#portal-transparencia\n */\n\nimport registryData from './data/endpoints.json';\nimport type { TransparenciaEndpoint, TransparenciaSnapshotsRegistry } from './types.js';\n\nconst registry = registryData as TransparenciaSnapshotsRegistry;\nconst endpoints: readonly TransparenciaEndpoint[] = registry.endpoints;\n\nexport function getTransparenciaRegistry(): TransparenciaSnapshotsRegistry {\n return registry;\n}\n\nexport function getTransparenciaEndpoints(): readonly TransparenciaEndpoint[] {\n return endpoints;\n}\n\nexport function getTransparenciaEndpointPorId(id: string): TransparenciaEndpoint | undefined {\n const normalized = id.trim().toLowerCase();\n if (normalized.length === 0) {\n return undefined;\n }\n return endpoints.find((endpoint) => endpoint.id === normalized);\n}\n\nexport function getTransparenciaEndpointsPorDominio(domain: string): readonly TransparenciaEndpoint[] {\n const normalized = domain.trim().toLowerCase();\n if (normalized.length === 0) {\n return [];\n }\n return endpoints.filter((endpoint) => endpoint.domain === normalized);\n}\n\nexport function getTransparenciaQueryAdapterEndpoints(): readonly TransparenciaEndpoint[] {\n return endpoints.filter((endpoint) => endpoint.delivery === 'query-adapter');\n}\n","/**\n * Normalize identifiers for Transparência adapter queries — delegates to core strip helpers.\n * @see docs/ADAPTERS-TRANSPARENCIA-RFC.md\n */\n\nimport { stripCnpj } from '../strip/cnpj.js';\nimport { stripCpf } from '../strip/cpf.js';\n\nexport function normalizeTransparenciaCpf(input: string): string {\n return stripCpf(input);\n}\n\nexport function normalizeTransparenciaCnpj(input: string): string {\n return stripCnpj(input);\n}\n","export const TRANSPARENCIA_SWAGGER_URL =\n 'https://api.portaldatransparencia.gov.br/swagger-ui/index.html';\n\nexport const TRANSPARENCIA_OPENAPI_URL = 'https://api.portaldatransparencia.gov.br/v3/api-docs';\n\nexport const TRANSPARENCIA_CADASTRO_URL = 'https://portaldatransparencia.gov.br/';\n\nexport const TRANSPARENCIA_ADAPTER_PACKAGE = '@br-validators/adapters-transparencia';\n\nexport const TRANSPARENCIA_GOLDEN_CEIS_PATH = '/api-de-dados/ceis';\n","import transparenciaMetadata from './data/metadata.json';\nimport type { TransparenciaSnapshotsDataVersion } from './types.js';\n\nexport const TRANSPARENCIA_SNAPSHOTS_DATA_VERSION: TransparenciaSnapshotsDataVersion =\n transparenciaMetadata as TransparenciaSnapshotsDataVersion;\n"]}
{
"name": "@br-validators/core",
"version": "1.10.0-data.5",
"version": "1.10.0-data.6",
"description": "The Brazilian document validation library for TypeScript — CPF, CNPJ (alphanumeric), NF-e, PIX, boleto, IE (27 UFs), offline IBGE/ANP/NCM/CST/LC116 reference data, and 15+ more. Zero deps, fully typed, never throws.",

@@ -5,0 +5,0 @@ "homepage": "https://www.npmjs.com/package/@br-validators/core",

// src/cnpj-motivos/data/metadata.json
var metadata_default = {
id: "cnpj-motivos",
nome: "RFB CNPJ Motivos de Situa\xE7\xE3o Cadastral",
fonte: "Receita Federal \u2014 Dados Abertos CNPJ (Motivos.zip)",
endpoints: [
"https://github.com/jonathands/dados-abertos-receita-cnpj/releases/download/2024.09/Motivos.zip"
],
capturadoEm: "2026-07-01",
atualizadoEm: "2026-07-01T13:02:47.434Z",
contagens: {
motivos: 61
},
alteracoes: {
adicionados: 0,
removidos: 0,
alterados: 0,
comparadoCom: "2026-07-01"
},
verificacao: {
agendamento: "diario",
workflow: "data-refresh-bot.yml",
ultimaExecucao: "2026-07-01T13:02:47.434Z"
},
documentacao: "docs/OFFICIAL-SOURCES.md#cnpj-motivos-situacao-cadastral"
};
export { metadata_default };
//# sourceMappingURL=chunk-4SX3WMMX.js.map
//# sourceMappingURL=chunk-4SX3WMMX.js.map
{"version":3,"sources":["../src/cnpj-motivos/data/metadata.json"],"names":[],"mappings":";AAAA,IAAA,gBAAA,GAAA;AAAA,EACE,EAAA,EAAM,cAAA;AAAA,EACN,IAAA,EAAQ,8CAAA;AAAA,EACR,KAAA,EAAS,yDAAA;AAAA,EACT,SAAA,EAAa;AAAA,IACX;AAAA,GACF;AAAA,EACA,WAAA,EAAe,YAAA;AAAA,EACf,YAAA,EAAgB,0BAAA;AAAA,EAChB,SAAA,EAAa;AAAA,IACX,OAAA,EAAW;AAAA,GACb;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-4SX3WMMX.js","sourcesContent":["{\n \"id\": \"cnpj-motivos\",\n \"nome\": \"RFB CNPJ Motivos de Situação Cadastral\",\n \"fonte\": \"Receita Federal — Dados Abertos CNPJ (Motivos.zip)\",\n \"endpoints\": [\n \"https://github.com/jonathands/dados-abertos-receita-cnpj/releases/download/2024.09/Motivos.zip\"\n ],\n \"capturadoEm\": \"2026-07-01\",\n \"atualizadoEm\": \"2026-07-01T13:02:47.434Z\",\n \"contagens\": {\n \"motivos\": 61\n },\n \"alteracoes\": {\n \"adicionados\": 0,\n \"removidos\": 0,\n \"alterados\": 0,\n \"comparadoCom\": \"2026-07-01\"\n },\n \"verificacao\": {\n \"agendamento\": \"diario\",\n \"workflow\": \"data-refresh-bot.yml\",\n \"ultimaExecucao\": \"2026-07-01T13:02:47.434Z\"\n },\n \"documentacao\": \"docs/OFFICIAL-SOURCES.md#cnpj-motivos-situacao-cadastral\"\n}\n"]}
import { formatProcessoJudicial } from './chunk-MAMBSTTO.js';
import { formatTelefone } from './chunk-TZW4N7QM.js';
import { formatTituloEleitor } from './chunk-A255RZZ7.js';
import { formatPlaca } from './chunk-KCRWHMDY.js';
import { formatRenavam } from './chunk-YC4GZZJP.js';
import { formatNfeChave } from './chunk-6KHTKD5U.js';
import { formatPisPasep } from './chunk-INPLK35M.js';
import { formatPixKey } from './chunk-LKDZEPWZ.js';
import { formatIeProdutorRural } from './chunk-5ZJMYR63.js';
import { formatCpf } from './chunk-GQRHLW5W.js';
import { formatEan } from './chunk-WIBYIZ4N.js';
import { formatCep } from './chunk-DXKHCIMV.js';
import { formatCnh } from './chunk-BTRWDUZF.js';
import { formatCnpj } from './chunk-HEPUV3XR.js';
import { formatRg } from './chunk-6F3A3NT4.js';
import { formatInscricaoEstadual } from './chunk-OHBSYBG7.js';
import { formatBoleto } from './chunk-S6ER3Y3B.js';
import { formatCartaoCredito } from './chunk-UFKWTBOO.js';
// src/format/rg.ts
function formatRg2(input, options) {
return formatRg(input, options);
}
// src/mask/index.ts
var MASKABLE_DOCUMENT_TYPES = [
"cpf",
"cnpj",
"cep",
"placa",
"pis-pasep",
"telefone",
"cnh",
"renavam",
"titulo-eleitor",
"processo-judicial",
"rg",
"nfe-chave",
"boleto",
"cartao-credito",
"ean",
"inscricao-estadual",
"inscricao-estadual-produtor-rural",
"pix"
];
function isMaskableDocumentType(type) {
return MASKABLE_DOCUMENT_TYPES.includes(type);
}
function mask(raw, type, options = {}) {
if (type === "inscricao-estadual" && !options.uf) {
return {
ok: false,
code: "UNSUPPORTED_FORMAT",
message: "UF is required for inscricao-estadual masking"
};
}
if (type === "rg" && !options.uf) {
return {
ok: false,
code: "UNSUPPORTED_FORMAT",
message: "UF is required for RG masking"
};
}
return dispatchMask(raw, type, options);
}
function maskRuntime(type, raw, options = {}) {
if (!isMaskableDocumentType(type)) {
return { ok: false, code: "UNSUPPORTED_FORMAT", message: `Unknown document type: ${type}` };
}
return mask(raw, type, options);
}
function dispatchMask(raw, type, options) {
switch (type) {
case "cpf":
return formatCpf(raw);
case "cnpj":
return formatCnpj(raw);
case "cep":
return formatCep(raw);
case "placa":
return formatPlaca(raw);
case "pis-pasep":
return formatPisPasep(raw);
case "telefone":
return formatTelefone(raw);
case "cnh":
return formatCnh(raw);
case "renavam":
return formatRenavam(raw);
case "titulo-eleitor":
return formatTituloEleitor(raw);
case "processo-judicial":
return formatProcessoJudicial(raw);
case "rg":
return formatRg2(raw, { uf: options.uf });
case "nfe-chave":
return formatNfeChave(raw);
case "boleto":
return formatBoleto(raw);
case "cartao-credito":
return formatCartaoCredito(raw);
case "ean":
return formatEan(raw);
case "inscricao-estadual":
return formatInscricaoEstadual(raw, { uf: options.uf });
case "inscricao-estadual-produtor-rural":
return formatIeProdutorRural(raw);
case "pix":
return formatPixKey(raw);
default: {
const _exhaustive = type;
return {
ok: false,
code: "UNSUPPORTED_FORMAT",
message: `Unsupported type: ${String(_exhaustive)}`
};
}
}
}
export { MASKABLE_DOCUMENT_TYPES, isMaskableDocumentType, mask, maskRuntime };
//# sourceMappingURL=chunk-54762ILZ.js.map
//# sourceMappingURL=chunk-54762ILZ.js.map
{"version":3,"sources":["../src/format/rg.ts","../src/mask/index.ts"],"names":["formatRg"],"mappings":"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","file":"chunk-54762ILZ.js","sourcesContent":["import type { ValidateRgOptions } from '../core/rg/index.js';\nimport { formatRg as formatRgCore } from '../core/rg/index.js';\n\nexport function formatRg(input: string, options: ValidateRgOptions): ReturnType<typeof formatRgCore> {\n return formatRgCore(input, options);\n}\n","/**\n * Unified display mask — delegates to existing `format*` (BR-MASK-001).\n * @see docs/use-cases/UC-003-format-document.md\n * @see docs/OFFICIAL-SOURCES.md\n */\nimport { formatInscricaoEstadual } from '../core/inscricao-estadual/index.js';\nimport { formatBoleto } from '../format/boleto.js';\nimport { formatCartaoCredito } from '../format/cartao-credito.js';\nimport { formatEan } from '../format/ean.js';\nimport { formatCep } from '../format/cep.js';\nimport { formatCnh } from '../format/cnh.js';\nimport { formatCnpj } from '../format/cnpj.js';\nimport { formatCpf } from '../format/cpf.js';\nimport { formatIeProdutorRural } from '../format/inscricao-estadual-produtor-rural.js';\nimport { formatNfeChave } from '../format/nfe-chave.js';\nimport { formatPisPasep } from '../format/pis-pasep.js';\nimport { formatPixKey } from '../format/pix.js';\nimport { formatPlaca } from '../format/placa.js';\nimport { formatProcessoJudicial } from '../format/processo-judicial.js';\nimport { formatRg } from '../format/rg.js';\nimport { formatRenavam } from '../format/renavam.js';\nimport { formatTelefone } from '../format/telefone.js';\nimport { formatTituloEleitor } from '../format/titulo-eleitor.js';\nimport type { FormatResult, RgUfCode, UfCode } from '../types/validation-result.js';\n\nexport type MaskableDocumentType =\n | 'cpf'\n | 'cnpj'\n | 'cep'\n | 'placa'\n | 'pis-pasep'\n | 'telefone'\n | 'cnh'\n | 'renavam'\n | 'titulo-eleitor'\n | 'processo-judicial'\n | 'rg'\n | 'nfe-chave'\n | 'boleto'\n | 'cartao-credito'\n | 'ean'\n | 'inscricao-estadual'\n | 'inscricao-estadual-produtor-rural'\n | 'pix';\n\nexport const MASKABLE_DOCUMENT_TYPES = [\n 'cpf',\n 'cnpj',\n 'cep',\n 'placa',\n 'pis-pasep',\n 'telefone',\n 'cnh',\n 'renavam',\n 'titulo-eleitor',\n 'processo-judicial',\n 'rg',\n 'nfe-chave',\n 'boleto',\n 'cartao-credito',\n 'ean',\n 'inscricao-estadual',\n 'inscricao-estadual-produtor-rural',\n 'pix',\n] as const satisfies readonly MaskableDocumentType[];\n\nexport type MaskOptions = {\n uf?: UfCode;\n};\n\nexport function isMaskableDocumentType(type: string): type is MaskableDocumentType {\n return (MASKABLE_DOCUMENT_TYPES as readonly string[]).includes(type);\n}\n\nexport function mask(\n raw: string,\n type: MaskableDocumentType,\n options: MaskOptions = {},\n): FormatResult {\n if (type === 'inscricao-estadual' && !options.uf) {\n return {\n ok: false,\n code: 'UNSUPPORTED_FORMAT',\n message: 'UF is required for inscricao-estadual masking',\n };\n }\n\n if (type === 'rg' && !options.uf) {\n return {\n ok: false,\n code: 'UNSUPPORTED_FORMAT',\n message: 'UF is required for RG masking',\n };\n }\n\n return dispatchMask(raw, type, options);\n}\n\n/** Runtime guard for dynamic callers (non-exhaustive type string). */\nexport function maskRuntime(\n type: string,\n raw: string,\n options: MaskOptions = {},\n): FormatResult {\n if (!isMaskableDocumentType(type)) {\n return { ok: false, code: 'UNSUPPORTED_FORMAT', message: `Unknown document type: ${type}` };\n }\n return mask(raw, type, options);\n}\n\nfunction dispatchMask(raw: string, type: MaskableDocumentType, options: MaskOptions): FormatResult {\n switch (type) {\n case 'cpf':\n return formatCpf(raw);\n case 'cnpj':\n return formatCnpj(raw);\n case 'cep':\n return formatCep(raw);\n case 'placa':\n return formatPlaca(raw);\n case 'pis-pasep':\n return formatPisPasep(raw);\n case 'telefone':\n return formatTelefone(raw);\n case 'cnh':\n return formatCnh(raw);\n case 'renavam':\n return formatRenavam(raw);\n case 'titulo-eleitor':\n return formatTituloEleitor(raw);\n case 'processo-judicial':\n return formatProcessoJudicial(raw);\n case 'rg':\n return formatRg(raw, { uf: options.uf as RgUfCode });\n case 'nfe-chave':\n return formatNfeChave(raw);\n case 'boleto':\n return formatBoleto(raw);\n case 'cartao-credito':\n return formatCartaoCredito(raw);\n case 'ean':\n return formatEan(raw);\n case 'inscricao-estadual':\n return formatInscricaoEstadual(raw, { uf: options.uf as UfCode });\n case 'inscricao-estadual-produtor-rural':\n return formatIeProdutorRural(raw);\n case 'pix':\n return formatPixKey(raw);\n default: {\n const _exhaustive: never = type;\n return {\n ok: false,\n code: 'UNSUPPORTED_FORMAT',\n message: `Unsupported type: ${String(_exhaustive)}`,\n };\n }\n }\n}\n"]}
// src/core/telefone/data/ddd-metadata.json
var ddd_metadata_default = {
id: "telefone-ddd",
nome: "Anatel DDD Geographic Lookup",
fonte: "Anatel Plano de Numera\xE7\xE3o + IBGE municipios",
endpoints: [
"https://informacoes.anatel.gov.br/paineis/areas-tarifarias/codigos-nacionais",
"packages/br-validators/src/ibge/data/municipios.json"
],
capturadoEm: "2026-07-01",
atualizadoEm: "2026-07-01T12:32:52.995Z",
contagens: {
ddds: 67
},
alteracoes: {
adicionados: 0,
removidos: 0,
alterados: 0,
comparadoCom: "2026-07-01"
},
verificacao: {
agendamento: "diario",
workflow: "data-refresh-bot.yml",
ultimaExecucao: "2026-07-01T12:32:52.995Z"
},
documentacao: "docs/OFFICIAL-SOURCES.md#anatel-ddd-lookup"
};
export { ddd_metadata_default };
//# sourceMappingURL=chunk-7BKTNWUC.js.map
//# sourceMappingURL=chunk-7BKTNWUC.js.map
{"version":3,"sources":["../src/core/telefone/data/ddd-metadata.json"],"names":[],"mappings":";AAAA,IAAA,oBAAA,GAAA;AAAA,EACE,EAAA,EAAM,cAAA;AAAA,EACN,IAAA,EAAQ,8BAAA;AAAA,EACR,KAAA,EAAS,mDAAA;AAAA,EACT,SAAA,EAAa;AAAA,IACX,8EAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,WAAA,EAAe,YAAA;AAAA,EACf,YAAA,EAAgB,0BAAA;AAAA,EAChB,SAAA,EAAa;AAAA,IACX,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-7BKTNWUC.js","sourcesContent":["{\n \"id\": \"telefone-ddd\",\n \"nome\": \"Anatel DDD Geographic Lookup\",\n \"fonte\": \"Anatel Plano de Numeração + IBGE municipios\",\n \"endpoints\": [\n \"https://informacoes.anatel.gov.br/paineis/areas-tarifarias/codigos-nacionais\",\n \"packages/br-validators/src/ibge/data/municipios.json\"\n ],\n \"capturadoEm\": \"2026-07-01\",\n \"atualizadoEm\": \"2026-07-01T12:32:52.995Z\",\n \"contagens\": {\n \"ddds\": 67\n },\n \"alteracoes\": {\n \"adicionados\": 0,\n \"removidos\": 0,\n \"alterados\": 0,\n \"comparadoCom\": \"2026-07-01\"\n },\n \"verificacao\": {\n \"agendamento\": \"diario\",\n \"workflow\": \"data-refresh-bot.yml\",\n \"ultimaExecucao\": \"2026-07-01T12:32:52.995Z\"\n },\n \"documentacao\": \"docs/OFFICIAL-SOURCES.md#anatel-ddd-lookup\"\n}\n"]}
// src/incoterms/data/metadata.json
var metadata_default = {
id: "incoterms",
nome: "ICC Incoterms 2020",
fonte: "International Chamber of Commerce \u2014 Incoterms 2020 (static reference)",
endpoints: [
"https://iccwbo.org/resources-for-business/incoterms-rules/"
],
capturadoEm: "2026-07-01",
atualizadoEm: "2026-07-01T12:32:52.286Z",
contagens: {
incoterms: 11
},
alteracoes: {
adicionados: 0,
removidos: 0,
alterados: 0,
comparadoCom: "2026-07-01"
},
verificacao: {
agendamento: "diario",
workflow: "data-refresh-bot.yml",
ultimaExecucao: "2026-07-01T12:32:52.286Z"
},
documentacao: "docs/OFFICIAL-SOURCES.md#incoterms"
};
export { metadata_default };
//# sourceMappingURL=chunk-ADEZMHS6.js.map
//# sourceMappingURL=chunk-ADEZMHS6.js.map
{"version":3,"sources":["../src/incoterms/data/metadata.json"],"names":[],"mappings":";AAAA,IAAA,gBAAA,GAAA;AAAA,EACE,EAAA,EAAM,WAAA;AAAA,EACN,IAAA,EAAQ,oBAAA;AAAA,EACR,KAAA,EAAS,4EAAA;AAAA,EACT,SAAA,EAAa;AAAA,IACX;AAAA,GACF;AAAA,EACA,WAAA,EAAe,YAAA;AAAA,EACf,YAAA,EAAgB,0BAAA;AAAA,EAChB,SAAA,EAAa;AAAA,IACX,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;AAClB","file":"chunk-ADEZMHS6.js","sourcesContent":["{\n \"id\": \"incoterms\",\n \"nome\": \"ICC Incoterms 2020\",\n \"fonte\": \"International Chamber of Commerce — Incoterms 2020 (static reference)\",\n \"endpoints\": [\n \"https://iccwbo.org/resources-for-business/incoterms-rules/\"\n ],\n \"capturadoEm\": \"2026-07-01\",\n \"atualizadoEm\": \"2026-07-01T12:32:52.286Z\",\n \"contagens\": {\n \"incoterms\": 11\n },\n \"alteracoes\": {\n \"adicionados\": 0,\n \"removidos\": 0,\n \"alterados\": 0,\n \"comparadoCom\": \"2026-07-01\"\n },\n \"verificacao\": {\n \"agendamento\": \"diario\",\n \"workflow\": \"data-refresh-bot.yml\",\n \"ultimaExecucao\": \"2026-07-01T12:32:52.286Z\"\n },\n \"documentacao\": \"docs/OFFICIAL-SOURCES.md#incoterms\"\n}\n"]}
// src/moedas/data/metadata.json
var metadata_default = {
id: "moedas",
nome: "ISO 4217 Currencies + Bacen PTAX",
fonte: "ISO 4217 (embedded) + Banco Central PTAX Moedas",
endpoints: [
"https://olinda.bcb.gov.br/olinda/servico/PTAX/versao/v1/odata/Moedas"
],
capturadoEm: "2026-07-01",
atualizadoEm: "2026-07-01T12:23:40.362Z",
contagens: {
moedas: 154
},
alteracoes: {
adicionados: 0,
removidos: 0,
alterados: 0,
comparadoCom: "2026-07-01"
},
verificacao: {
agendamento: "diario",
workflow: "data-refresh-bot.yml",
ultimaExecucao: "2026-07-01T12:23:40.362Z"
},
documentacao: "docs/OFFICIAL-SOURCES.md#moedas"
};
export { metadata_default };
//# sourceMappingURL=chunk-ANOYHON5.js.map
//# sourceMappingURL=chunk-ANOYHON5.js.map
{"version":3,"sources":["../src/moedas/data/metadata.json"],"names":[],"mappings":";AAAA,IAAA,gBAAA,GAAA;AAAA,EACE,EAAA,EAAM,QAAA;AAAA,EACN,IAAA,EAAQ,kCAAA;AAAA,EACR,KAAA,EAAS,iDAAA;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-ANOYHON5.js","sourcesContent":["{\n \"id\": \"moedas\",\n \"nome\": \"ISO 4217 Currencies + Bacen PTAX\",\n \"fonte\": \"ISO 4217 (embedded) + Banco Central PTAX Moedas\",\n \"endpoints\": [\n \"https://olinda.bcb.gov.br/olinda/servico/PTAX/versao/v1/odata/Moedas\"\n ],\n \"capturadoEm\": \"2026-07-01\",\n \"atualizadoEm\": \"2026-07-01T12:23:40.362Z\",\n \"contagens\": {\n \"moedas\": 154\n },\n \"alteracoes\": {\n \"adicionados\": 0,\n \"removidos\": 0,\n \"alterados\": 0,\n \"comparadoCom\": \"2026-07-01\"\n },\n \"verificacao\": {\n \"agendamento\": \"diario\",\n \"workflow\": \"data-refresh-bot.yml\",\n \"ultimaExecucao\": \"2026-07-01T12:23:40.362Z\"\n },\n \"documentacao\": \"docs/OFFICIAL-SOURCES.md#moedas\"\n}\n"]}
// src/ibpt/data/metadata.json
var metadata_default = {
id: "ibpt",
nome: "IBPT \u2014 Carga tribut\xE1ria aproximada por NCM (Lei 12.741/2012)",
fonte: "IBPT \u2014 De Olho no Imposto (tabelas oficiais NCM \xD7 UF)",
endpoints: [
"https://deolhonoimposto.ibpt.org.br/",
"https://apidoni.ibpt.org.br/api/v1/produtos",
"https://ibpt.valraw.com.br/api/meta.json",
"https://ibpt.valraw.com.br/api/ncm/SP.json.gz (resolved after meta.json)",
"https://ibpt.valraw.com.br/api/ncm/RJ.json.gz (resolved after meta.json)",
"https://ibpt.valraw.com.br/api/ncm/MG.json.gz (resolved after meta.json)",
"/home/runner/work/br-validators/br-validators/data/source-mirrors/ibpt/golden-cargas.json"
],
capturadoEm: "2026-07-01",
atualizadoEm: "2026-07-01T13:02:56.463Z",
contagens: {
cargas: 12
},
alteracoes: {
adicionados: 0,
removidos: 0,
alterados: 0,
comparadoCom: "2026-07-01"
},
verificacao: {
agendamento: "diario",
workflow: "data-refresh-bot.yml",
ultimaExecucao: "2026-07-01T13:02:56.463Z"
},
documentacao: "docs/OFFICIAL-SOURCES.md#ibpt-carga-tributaria-ncm"
};
export { metadata_default };
//# sourceMappingURL=chunk-AORS6NOC.js.map
//# sourceMappingURL=chunk-AORS6NOC.js.map
{"version":3,"sources":["../src/ibpt/data/metadata.json"],"names":[],"mappings":";AAAA,IAAA,gBAAA,GAAA;AAAA,EACE,EAAA,EAAM,MAAA;AAAA,EACN,IAAA,EAAQ,sEAAA;AAAA,EACR,KAAA,EAAS,+DAAA;AAAA,EACT,SAAA,EAAa;AAAA,IACX,sCAAA;AAAA,IACA,6CAAA;AAAA,IACA,0CAAA;AAAA,IACA,0EAAA;AAAA,IACA,0EAAA;AAAA,IACA,0EAAA;AAAA,IACA;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-AORS6NOC.js","sourcesContent":["{\n \"id\": \"ibpt\",\n \"nome\": \"IBPT — Carga tributária aproximada por NCM (Lei 12.741/2012)\",\n \"fonte\": \"IBPT — De Olho no Imposto (tabelas oficiais NCM × UF)\",\n \"endpoints\": [\n \"https://deolhonoimposto.ibpt.org.br/\",\n \"https://apidoni.ibpt.org.br/api/v1/produtos\",\n \"https://ibpt.valraw.com.br/api/meta.json\",\n \"https://ibpt.valraw.com.br/api/ncm/SP.json.gz (resolved after meta.json)\",\n \"https://ibpt.valraw.com.br/api/ncm/RJ.json.gz (resolved after meta.json)\",\n \"https://ibpt.valraw.com.br/api/ncm/MG.json.gz (resolved after meta.json)\",\n \"/home/runner/work/br-validators/br-validators/data/source-mirrors/ibpt/golden-cargas.json\"\n ],\n \"capturadoEm\": \"2026-07-01\",\n \"atualizadoEm\": \"2026-07-01T13:02:56.463Z\",\n \"contagens\": {\n \"cargas\": 12\n },\n \"alteracoes\": {\n \"adicionados\": 0,\n \"removidos\": 0,\n \"alterados\": 0,\n \"comparadoCom\": \"2026-07-01\"\n },\n \"verificacao\": {\n \"agendamento\": \"diario\",\n \"workflow\": \"data-refresh-bot.yml\",\n \"ultimaExecucao\": \"2026-07-01T13:02:56.463Z\"\n },\n \"documentacao\": \"docs/OFFICIAL-SOURCES.md#ibpt-carga-tributaria-ncm\"\n}\n"]}
// src/cest/data/metadata.json
var metadata_default = {
id: "cest",
nome: "CONFAZ CEST",
fonte: "CONFAZ Conv\xEAnio ICMS 142/2018 \u2014 Anexos II a XXVI",
endpoints: [
"https://www.confaz.fazenda.gov.br/legislacao/convenios/2018/CV142_18",
"/home/runner/work/br-validators/br-validators/data/source-mirrors/confaz/cest_cv142_18.html"
],
capturadoEm: "2026-07-01",
atualizadoEm: "2026-07-01T13:11:59.880Z",
contagens: {
cest: 1018
},
alteracoes: {
adicionados: 0,
removidos: 0,
alterados: 0,
comparadoCom: "2026-07-01"
},
verificacao: {
agendamento: "diario",
workflow: "data-refresh-bot.yml",
ultimaExecucao: "2026-07-01T13:11:59.880Z"
},
documentacao: "docs/OFFICIAL-SOURCES.md#cest"
};
export { metadata_default };
//# sourceMappingURL=chunk-BIAXPT4X.js.map
//# sourceMappingURL=chunk-BIAXPT4X.js.map
{"version":3,"sources":["../src/cest/data/metadata.json"],"names":[],"mappings":";AAAA,IAAA,gBAAA,GAAA;AAAA,EACE,EAAA,EAAM,MAAA;AAAA,EACN,IAAA,EAAQ,aAAA;AAAA,EACR,KAAA,EAAS,0DAAA;AAAA,EACT,SAAA,EAAa;AAAA,IACX,sEAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,WAAA,EAAe,YAAA;AAAA,EACf,YAAA,EAAgB,0BAAA;AAAA,EAChB,SAAA,EAAa;AAAA,IACX,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-BIAXPT4X.js","sourcesContent":["{\n \"id\": \"cest\",\n \"nome\": \"CONFAZ CEST\",\n \"fonte\": \"CONFAZ Convênio ICMS 142/2018 — Anexos II a XXVI\",\n \"endpoints\": [\n \"https://www.confaz.fazenda.gov.br/legislacao/convenios/2018/CV142_18\",\n \"/home/runner/work/br-validators/br-validators/data/source-mirrors/confaz/cest_cv142_18.html\"\n ],\n \"capturadoEm\": \"2026-07-01\",\n \"atualizadoEm\": \"2026-07-01T13:11:59.880Z\",\n \"contagens\": {\n \"cest\": 1018\n },\n \"alteracoes\": {\n \"adicionados\": 0,\n \"removidos\": 0,\n \"alterados\": 0,\n \"comparadoCom\": \"2026-07-01\"\n },\n \"verificacao\": {\n \"agendamento\": \"diario\",\n \"workflow\": \"data-refresh-bot.yml\",\n \"ultimaExecucao\": \"2026-07-01T13:11:59.880Z\"\n },\n \"documentacao\": \"docs/OFFICIAL-SOURCES.md#cest\"\n}\n"]}
// src/natureza-juridica/data/metadata.json
var metadata_default = {
id: "natureza-juridica",
nome: "RFB CNPJ Naturezas Jur\xEDdicas",
fonte: "Receita Federal \u2014 Dados Abertos CNPJ (Naturezas.zip)",
endpoints: [
"https://github.com/jonathands/dados-abertos-receita-cnpj/releases/download/2024.09/Naturezas.zip"
],
capturadoEm: "2026-07-01",
atualizadoEm: "2026-07-01T12:56:43.569Z",
contagens: {
naturezas: 90
},
alteracoes: {
adicionados: 0,
removidos: 0,
alterados: 0,
comparadoCom: "2026-07-01"
},
verificacao: {
agendamento: "diario",
workflow: "data-refresh-bot.yml",
ultimaExecucao: "2026-07-01T12:56:43.569Z"
},
documentacao: "docs/OFFICIAL-SOURCES.md#natureza-juridica"
};
export { metadata_default };
//# sourceMappingURL=chunk-CCQWVAHV.js.map
//# sourceMappingURL=chunk-CCQWVAHV.js.map
{"version":3,"sources":["../src/natureza-juridica/data/metadata.json"],"names":[],"mappings":";AAAA,IAAA,gBAAA,GAAA;AAAA,EACE,EAAA,EAAM,mBAAA;AAAA,EACN,IAAA,EAAQ,iCAAA;AAAA,EACR,KAAA,EAAS,2DAAA;AAAA,EACT,SAAA,EAAa;AAAA,IACX;AAAA,GACF;AAAA,EACA,WAAA,EAAe,YAAA;AAAA,EACf,YAAA,EAAgB,0BAAA;AAAA,EAChB,SAAA,EAAa;AAAA,IACX,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;AAClB","file":"chunk-CCQWVAHV.js","sourcesContent":["{\n \"id\": \"natureza-juridica\",\n \"nome\": \"RFB CNPJ Naturezas Jurídicas\",\n \"fonte\": \"Receita Federal — Dados Abertos CNPJ (Naturezas.zip)\",\n \"endpoints\": [\n \"https://github.com/jonathands/dados-abertos-receita-cnpj/releases/download/2024.09/Naturezas.zip\"\n ],\n \"capturadoEm\": \"2026-07-01\",\n \"atualizadoEm\": \"2026-07-01T12:56:43.569Z\",\n \"contagens\": {\n \"naturezas\": 90\n },\n \"alteracoes\": {\n \"adicionados\": 0,\n \"removidos\": 0,\n \"alterados\": 0,\n \"comparadoCom\": \"2026-07-01\"\n },\n \"verificacao\": {\n \"agendamento\": \"diario\",\n \"workflow\": \"data-refresh-bot.yml\",\n \"ultimaExecucao\": \"2026-07-01T12:56:43.569Z\"\n },\n \"documentacao\": \"docs/OFFICIAL-SOURCES.md#natureza-juridica\"\n}\n"]}
// src/cfop/data/metadata.json
var metadata_default = {
id: "cfop",
nome: "CONFAZ CFOP",
fonte: "CONFAZ SINIEF Conv\xEAnio s/n\xBA 1970 \u2014 Anexo II",
endpoints: [
"https://www.confaz.fazenda.gov.br/legislacao/ajustes/sinief/cfop_cvsn_70_vigente",
"/home/runner/work/br-validators/br-validators/data/source-mirrors/confaz/cfop_cvsn_70_vigente.html"
],
capturadoEm: "2026-07-01",
atualizadoEm: "2026-07-01T12:50:39.779Z",
contagens: {
cfop: 689
},
alteracoes: {
adicionados: 0,
removidos: 0,
alterados: 0,
comparadoCom: "2026-07-01"
},
verificacao: {
agendamento: "diario",
workflow: "data-refresh-bot.yml",
ultimaExecucao: "2026-07-01T12:50:39.779Z"
},
documentacao: "docs/OFFICIAL-SOURCES.md#cfop-fiscal-operations"
};
export { metadata_default };
//# sourceMappingURL=chunk-EJVZBU3E.js.map
//# sourceMappingURL=chunk-EJVZBU3E.js.map
{"version":3,"sources":["../src/cfop/data/metadata.json"],"names":[],"mappings":";AAAA,IAAA,gBAAA,GAAA;AAAA,EACE,EAAA,EAAM,MAAA;AAAA,EACN,IAAA,EAAQ,aAAA;AAAA,EACR,KAAA,EAAS,wDAAA;AAAA,EACT,SAAA,EAAa;AAAA,IACX,kFAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,WAAA,EAAe,YAAA;AAAA,EACf,YAAA,EAAgB,0BAAA;AAAA,EAChB,SAAA,EAAa;AAAA,IACX,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-EJVZBU3E.js","sourcesContent":["{\n \"id\": \"cfop\",\n \"nome\": \"CONFAZ CFOP\",\n \"fonte\": \"CONFAZ SINIEF Convênio s/nº 1970 — Anexo II\",\n \"endpoints\": [\n \"https://www.confaz.fazenda.gov.br/legislacao/ajustes/sinief/cfop_cvsn_70_vigente\",\n \"/home/runner/work/br-validators/br-validators/data/source-mirrors/confaz/cfop_cvsn_70_vigente.html\"\n ],\n \"capturadoEm\": \"2026-07-01\",\n \"atualizadoEm\": \"2026-07-01T12:50:39.779Z\",\n \"contagens\": {\n \"cfop\": 689\n },\n \"alteracoes\": {\n \"adicionados\": 0,\n \"removidos\": 0,\n \"alterados\": 0,\n \"comparadoCom\": \"2026-07-01\"\n },\n \"verificacao\": {\n \"agendamento\": \"diario\",\n \"workflow\": \"data-refresh-bot.yml\",\n \"ultimaExecucao\": \"2026-07-01T12:50:39.779Z\"\n },\n \"documentacao\": \"docs/OFFICIAL-SOURCES.md#cfop-fiscal-operations\"\n}\n"]}
import { stripProcessoJudicial } from './chunk-A4QBLVVO.js';
import { normalizeTelefoneDigits, extractTelefoneDigits } from './chunk-JVI4PL7M.js';
import { stripPisPasep } from './chunk-HORKZQIH.js';
import { stripInscricaoEstadual } from './chunk-OHBSYBG7.js';
import { stripIeSpRural } from './chunk-FGOPYU2L.js';
import { stripTituloEleitor, stripRenavam, stripCnh, stripPlaca, stripCep } from './chunk-6BWOYNQD.js';
import { stripNfeChave } from './chunk-4SNBZFS5.js';
import { stripPixKey } from './chunk-JUQMINSZ.js';
import { stripCpf } from './chunk-UCJPSJN5.js';
import { stripCnpj } from './chunk-EB3G4IG6.js';
// src/sanitize/fixes.ts
function trimFix(raw) {
const trimmed = raw.trim();
const fixes = [];
if (trimmed !== raw) {
fixes.push("trimmed");
}
return { value: trimmed, fixes };
}
function digitsFix(value, fixes) {
const digits = value.replace(/\D/g, "");
if (digits !== value) {
fixes.push("removed_non_digits");
}
return { value: digits, fixes };
}
function upperAndStripSeparators(value, fixes) {
const upper = value.toUpperCase();
if (upper !== value) {
fixes.push("uppercased");
}
const stripped = upper.replace(/[^A-Z0-9]/g, "");
if (stripped !== upper) {
fixes.push("removed_separators");
}
return { value: stripped, fixes };
}
function placaFix(value, fixes) {
const upper = value.toUpperCase();
if (upper !== value) {
fixes.push("uppercased");
}
if (/[-.\s/]/.test(value)) {
fixes.push("removed_separators");
}
return { value: stripPlaca(upper), fixes };
}
function telefoneFix(value, fixes) {
if (/[\s()-]/.test(value)) {
fixes.push("removed_mask_chars");
}
const digitsOnly = extractTelefoneDigits(value);
const normalized = normalizeTelefoneDigits(value);
if (normalized !== digitsOnly && normalized.length > 0) {
fixes.push("normalized_national");
}
return { value: normalized, fixes };
}
function ieProdutorRuralFix(value, fixes) {
const upper = value.toUpperCase();
if (upper !== value) {
fixes.push("uppercased");
}
if (/^[Pp]/.test(upper)) {
fixes.push("preserved_p_prefix");
}
return { value: stripIeSpRural(upper), fixes };
}
function pixFix(value, fixes) {
const stripped = stripPixKey(value);
if (value !== value.toLowerCase() && stripped === value.toLowerCase()) {
fixes.push("lowercased");
}
if (stripped.replace(/\D/g, "") !== value.replace(/\D/g, "")) {
fixes.push("removed_non_digits");
}
if (/[\s()-]/.test(value)) {
fixes.push("removed_mask_chars");
}
return { value: stripped, fixes };
}
function applyFixes(raw, type) {
const { value: trimmed, fixes } = trimFix(raw);
switch (type) {
case "cpf":
case "cep":
case "pis-pasep":
case "cnh":
case "renavam":
case "nfe-chave":
case "cartao-credito":
case "ean":
case "boleto":
case "titulo-eleitor":
case "processo-judicial":
case "inscricao-estadual":
return digitsFix(trimmed, fixes);
case "rg":
return upperAndStripSeparators(trimmed, fixes);
case "cnpj":
return upperAndStripSeparators(trimmed, fixes);
case "placa":
return placaFix(trimmed, fixes);
case "telefone":
return telefoneFix(trimmed, fixes);
case "inscricao-estadual-produtor-rural":
return ieProdutorRuralFix(trimmed, fixes);
case "pix":
return pixFix(trimmed, fixes);
default: {
const _exhaustive = type;
return { value: _exhaustive, fixes };
}
}
}
function stripForType(value, type) {
switch (type) {
case "cpf":
return stripCpf(value);
case "cnpj":
return stripCnpj(value);
case "cep":
return stripCep(value);
case "placa":
return stripPlaca(value);
case "pis-pasep":
return stripPisPasep(value);
case "telefone":
return normalizeTelefoneDigits(value);
case "cnh":
return stripCnh(value);
case "renavam":
return stripRenavam(value);
case "titulo-eleitor":
return stripTituloEleitor(value);
case "processo-judicial":
return stripProcessoJudicial(value);
case "rg":
return value.toUpperCase().replace(/[^A-Z0-9]/g, "");
case "nfe-chave":
return stripNfeChave(value);
case "boleto":
return value.replace(/\D/g, "");
case "cartao-credito":
case "ean":
return value.replace(/\D/g, "");
case "inscricao-estadual":
return stripInscricaoEstadual(value);
case "inscricao-estadual-produtor-rural":
return stripIeSpRural(value);
case "pix":
return stripPixKey(value);
default: {
const _exhaustive = type;
return _exhaustive;
}
}
}
export { applyFixes, stripForType };
//# sourceMappingURL=chunk-GOMCPGST.js.map
//# sourceMappingURL=chunk-GOMCPGST.js.map
{"version":3,"sources":["../src/sanitize/fixes.ts"],"names":[],"mappings":"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","file":"chunk-GOMCPGST.js","sourcesContent":["import { stripCep } from '../strip/cep.js';\nimport { stripCnh } from '../strip/cnh.js';\nimport { stripCnpj } from '../strip/cnpj.js';\nimport { stripCpf } from '../strip/cpf.js';\nimport { stripIeSpRural } from '../strip/inscricao-estadual-produtor-rural.js';\nimport { stripInscricaoEstadual } from '../core/inscricao-estadual/index.js';\nimport { stripNfeChave } from '../strip/nfe-chave.js';\nimport { stripPisPasep } from '../strip/pis-pasep.js';\nimport { stripPlaca } from '../strip/placa.js';\nimport { stripPixKey } from '../strip/pix.js';\nimport { stripProcessoJudicial } from '../strip/processo-judicial.js';\nimport { stripRenavam } from '../strip/renavam.js';\nimport { stripTituloEleitor } from '../strip/titulo-eleitor.js';\nimport { extractTelefoneDigits, normalizeTelefoneDigits } from '../strip/telefone.js';\n\nexport type SanitizableDocumentType =\n | 'cpf'\n | 'cnpj'\n | 'cep'\n | 'placa'\n | 'pis-pasep'\n | 'telefone'\n | 'cnh'\n | 'renavam'\n | 'titulo-eleitor'\n | 'processo-judicial'\n | 'rg'\n | 'nfe-chave'\n | 'boleto'\n | 'cartao-credito'\n | 'ean'\n | 'inscricao-estadual'\n | 'inscricao-estadual-produtor-rural'\n | 'pix';\n\nexport type FixResult = {\n value: string;\n fixes: string[];\n};\n\nfunction trimFix(raw: string): FixResult {\n const trimmed = raw.trim();\n const fixes: string[] = [];\n if (trimmed !== raw) {\n fixes.push('trimmed');\n }\n return { value: trimmed, fixes };\n}\n\nfunction digitsFix(value: string, fixes: string[]): FixResult {\n const digits = value.replace(/\\D/g, '');\n if (digits !== value) {\n fixes.push('removed_non_digits');\n }\n return { value: digits, fixes };\n}\n\nfunction upperAndStripSeparators(value: string, fixes: string[]): FixResult {\n const upper = value.toUpperCase();\n if (upper !== value) {\n fixes.push('uppercased');\n }\n const stripped = upper.replace(/[^A-Z0-9]/g, '');\n if (stripped !== upper) {\n fixes.push('removed_separators');\n }\n return { value: stripped, fixes };\n}\n\nfunction placaFix(value: string, fixes: string[]): FixResult {\n const upper = value.toUpperCase();\n if (upper !== value) {\n fixes.push('uppercased');\n }\n if (/[-.\\s/]/.test(value)) {\n fixes.push('removed_separators');\n }\n return { value: stripPlaca(upper), fixes };\n}\n\nfunction telefoneFix(value: string, fixes: string[]): FixResult {\n if (/[\\s()-]/.test(value)) {\n fixes.push('removed_mask_chars');\n }\n const digitsOnly = extractTelefoneDigits(value);\n const normalized = normalizeTelefoneDigits(value);\n if (normalized !== digitsOnly && normalized.length > 0) {\n fixes.push('normalized_national');\n }\n return { value: normalized, fixes };\n}\n\nfunction ieProdutorRuralFix(value: string, fixes: string[]): FixResult {\n const upper = value.toUpperCase();\n if (upper !== value) {\n fixes.push('uppercased');\n }\n if (/^[Pp]/.test(upper)) {\n fixes.push('preserved_p_prefix');\n }\n return { value: stripIeSpRural(upper), fixes };\n}\n\nfunction pixFix(value: string, fixes: string[]): FixResult {\n const stripped = stripPixKey(value);\n if (value !== value.toLowerCase() && stripped === value.toLowerCase()) {\n fixes.push('lowercased');\n }\n if (stripped.replace(/\\D/g, '') !== value.replace(/\\D/g, '')) {\n fixes.push('removed_non_digits');\n }\n if (/[\\s()-]/.test(value)) {\n fixes.push('removed_mask_chars');\n }\n return { value: stripped, fixes };\n}\n\nexport function applyFixes(raw: string, type: SanitizableDocumentType): FixResult {\n const { value: trimmed, fixes } = trimFix(raw);\n\n switch (type) {\n case 'cpf':\n case 'cep':\n case 'pis-pasep':\n case 'cnh':\n case 'renavam':\n case 'nfe-chave':\n case 'cartao-credito':\n case 'ean':\n case 'boleto':\n case 'titulo-eleitor':\n case 'processo-judicial':\n case 'inscricao-estadual':\n return digitsFix(trimmed, fixes);\n case 'rg':\n return upperAndStripSeparators(trimmed, fixes);\n case 'cnpj':\n return upperAndStripSeparators(trimmed, fixes);\n case 'placa':\n return placaFix(trimmed, fixes);\n case 'telefone':\n return telefoneFix(trimmed, fixes);\n case 'inscricao-estadual-produtor-rural':\n return ieProdutorRuralFix(trimmed, fixes);\n case 'pix':\n return pixFix(trimmed, fixes);\n default: {\n const _exhaustive: never = type;\n return { value: _exhaustive, fixes };\n }\n }\n}\n\n/** Validates canonical strip output matches fix pipeline (used in tests). */\nexport function stripForType(value: string, type: SanitizableDocumentType): string {\n switch (type) {\n case 'cpf':\n return stripCpf(value);\n case 'cnpj':\n return stripCnpj(value);\n case 'cep':\n return stripCep(value);\n case 'placa':\n return stripPlaca(value);\n case 'pis-pasep':\n return stripPisPasep(value);\n case 'telefone':\n return normalizeTelefoneDigits(value);\n case 'cnh':\n return stripCnh(value);\n case 'renavam':\n return stripRenavam(value);\n case 'titulo-eleitor':\n return stripTituloEleitor(value);\n case 'processo-judicial':\n return stripProcessoJudicial(value);\n case 'rg':\n return value.toUpperCase().replace(/[^A-Z0-9]/g, '');\n case 'nfe-chave':\n return stripNfeChave(value);\n case 'boleto':\n return value.replace(/\\D/g, '');\n case 'cartao-credito':\n case 'ean':\n return value.replace(/\\D/g, '');\n case 'inscricao-estadual':\n return stripInscricaoEstadual(value);\n case 'inscricao-estadual-produtor-rural':\n return stripIeSpRural(value);\n case 'pix':\n return stripPixKey(value);\n default: {\n const _exhaustive: never = type;\n return _exhaustive;\n }\n }\n}\n"]}
// src/ptax/data/metadata.json
var metadata_default = {
id: "ptax",
nome: "Bacen PTAX Fechamento",
fonte: "Banco Central Olinda PTAX API \u2014 Fechamento PTAX",
endpoints: [
"https://olinda.bcb.gov.br/olinda/servico/PTAX/versao/v1/odata/CotacaoMoedaPeriodo(moeda=@moeda,dataInicial=@dataInicial,dataFinalCotacao=@dataFinalCotacao)",
"https://olinda.bcb.gov.br/olinda/servico/PTAX/versao/v1/swagger-ui3"
],
capturadoEm: "2026-07-01",
atualizadoEm: "2026-07-01T12:23:45.987Z",
contagens: {
cotacoes: 850,
moedas: 10,
diasUteis: 85
},
alteracoes: {
adicionados: 0,
removidos: 0,
alterados: 0,
comparadoCom: "2026-07-01"
},
verificacao: {
agendamento: "diario",
workflow: "data-refresh-bot.yml",
ultimaExecucao: "2026-07-01T12:23:45.987Z"
},
documentacao: "docs/OFFICIAL-SOURCES.md#ptax-cotacoes",
janelaDiasUteis: 90
};
export { metadata_default };
//# sourceMappingURL=chunk-GRONAN5E.js.map
//# sourceMappingURL=chunk-GRONAN5E.js.map
{"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-GRONAN5E.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-07-01\",\n \"atualizadoEm\": \"2026-07-01T12:23:45.987Z\",\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-07-01\"\n },\n \"verificacao\": {\n \"agendamento\": \"diario\",\n \"workflow\": \"data-refresh-bot.yml\",\n \"ultimaExecucao\": \"2026-07-01T12:23:45.987Z\"\n },\n \"documentacao\": \"docs/OFFICIAL-SOURCES.md#ptax-cotacoes\",\n \"janelaDiasUteis\": 90\n}\n"]}
// src/bancos/data/metadata.json
var metadata_default = {
id: "bancos",
nome: "Bacen STR Participants",
fonte: "Banco Central \u2014 Participantes STR",
endpoints: [
"https://www.bcb.gov.br/content/estabilidadefinanceira/str1/ParticipantesSTR.csv"
],
capturadoEm: "2026-07-01",
atualizadoEm: "2026-07-01T12:22:35.561Z",
contagens: {
bancos: 469
},
alteracoes: {
adicionados: 0,
removidos: 0,
alterados: 1,
comparadoCom: "2026-07-01"
},
verificacao: {
agendamento: "diario",
workflow: "data-refresh-bot.yml",
ultimaExecucao: "2026-07-01T12:22:35.561Z"
},
documentacao: "docs/OFFICIAL-SOURCES.md#bacen-banks"
};
export { metadata_default };
//# sourceMappingURL=chunk-JLA7IAHK.js.map
//# sourceMappingURL=chunk-JLA7IAHK.js.map
{"version":3,"sources":["../src/bancos/data/metadata.json"],"names":[],"mappings":";AAAA,IAAA,gBAAA,GAAA;AAAA,EACE,EAAA,EAAM,QAAA;AAAA,EACN,IAAA,EAAQ,wBAAA;AAAA,EACR,KAAA,EAAS,wCAAA;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-JLA7IAHK.js","sourcesContent":["{\n \"id\": \"bancos\",\n \"nome\": \"Bacen STR Participants\",\n \"fonte\": \"Banco Central — Participantes STR\",\n \"endpoints\": [\n \"https://www.bcb.gov.br/content/estabilidadefinanceira/str1/ParticipantesSTR.csv\"\n ],\n \"capturadoEm\": \"2026-07-01\",\n \"atualizadoEm\": \"2026-07-01T12:22:35.561Z\",\n \"contagens\": {\n \"bancos\": 469\n },\n \"alteracoes\": {\n \"adicionados\": 0,\n \"removidos\": 0,\n \"alterados\": 1,\n \"comparadoCom\": \"2026-07-01\"\n },\n \"verificacao\": {\n \"agendamento\": \"diario\",\n \"workflow\": \"data-refresh-bot.yml\",\n \"ultimaExecucao\": \"2026-07-01T12:22:35.561Z\"\n },\n \"documentacao\": \"docs/OFFICIAL-SOURCES.md#bacen-banks\"\n}\n"]}

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

// src/selic/data/metadata.json
var metadata_default = {
id: "selic",
nome: "Bacen SGS \u2014 Meta Selic (s\xE9rie 432)",
fonte: "Banco Central \u2014 Taxa meta Selic definida pelo Copom",
endpoints: [
"https://dadosabertos.bcb.gov.br/dataset/432-taxa-de-juros---meta-selic-definida-pelo-copom",
"https://api.bcb.gov.br/dados/serie/bcdata.sgs.432/dados?formato=json",
"https://www3.bcb.gov.br/sgspub/consultarvalores/consultarValoresSeries.do?method=consultarGraficoPorId&hdOidSeriesSelecionadas=432",
"https://www.bcb.gov.br/controleinflacao/copom"
],
capturadoEm: "2026-07-01",
atualizadoEm: "2026-07-01T12:23:47.338Z",
contagens: {
observacoes: 90,
dias: 90
},
alteracoes: {
adicionados: 0,
removidos: 0,
alterados: 0,
comparadoCom: "2026-07-01"
},
verificacao: {
agendamento: "diario",
workflow: "data-refresh-bot.yml",
ultimaExecucao: "2026-07-01T12:23:47.338Z"
},
documentacao: "docs/OFFICIAL-SOURCES.md#selic-meta-sgs-432"
};
export { metadata_default };
//# sourceMappingURL=chunk-MAWOA6DL.js.map
//# sourceMappingURL=chunk-MAWOA6DL.js.map
{"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-MAWOA6DL.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-07-01\",\n \"atualizadoEm\": \"2026-07-01T12:23:47.338Z\",\n \"contagens\": {\n \"observacoes\": 90,\n \"dias\": 90\n },\n \"alteracoes\": {\n \"adicionados\": 0,\n \"removidos\": 0,\n \"alterados\": 0,\n \"comparadoCom\": \"2026-07-01\"\n },\n \"verificacao\": {\n \"agendamento\": \"diario\",\n \"workflow\": \"data-refresh-bot.yml\",\n \"ultimaExecucao\": \"2026-07-01T12:23:47.338Z\"\n },\n \"documentacao\": \"docs/OFFICIAL-SOURCES.md#selic-meta-sgs-432\"\n}\n"]}
import { applyFixes } from './chunk-GOMCPGST.js';
import { validateRg } from './chunk-6F3A3NT4.js';
import { validateRenavam } from './chunk-4NS47CJG.js';
import { validateProcessoJudicial } from './chunk-A4QBLVVO.js';
import { validateTelefone } from './chunk-JVI4PL7M.js';
import { validateTituloEleitor } from './chunk-6WBUKUHD.js';
import { validatePlaca } from './chunk-UG2YICWH.js';
import { validateNfeChave } from './chunk-XRT44FMY.js';
import { validatePisPasep } from './chunk-HORKZQIH.js';
import { validateInscricaoEstadual } from './chunk-OHBSYBG7.js';
import { validateIeSpRural } from './chunk-FGOPYU2L.js';
import { validateEan } from './chunk-OFAU4VTU.js';
import { validateCep } from './chunk-C4E2AE2A.js';
import { validateCnh } from './chunk-JZOS2MO7.js';
import { validateBoleto } from './chunk-JOBIJQGE.js';
import { validatePixKey } from './chunk-7XVCTDJE.js';
import { validateCpf } from './chunk-DQQNXXGO.js';
import { validateCnpj } from './chunk-MGFDTECS.js';
import { validateCartaoCredito } from './chunk-PU5TKJZI.js';
// src/sanitize/index.ts
function sanitize(raw, type, options = {}) {
const { value: fixed, fixes } = applyFixes(raw, type);
if (type === "inscricao-estadual" && !options.uf) {
return {
ok: false,
code: "UNSUPPORTED_FORMAT",
message: "UF is required for inscricao-estadual sanitization"
};
}
if (type === "rg" && !options.uf) {
return {
ok: false,
code: "UNSUPPORTED_FORMAT",
message: "UF is required for RG sanitization"
};
}
const validation = validateFixed(fixed, type, options.uf);
if (!validation.ok) {
return { ok: false, code: validation.code, message: validation.message };
}
return { ok: true, value: validation.value, fixes };
}
function validateFixed(value, type, uf) {
switch (type) {
case "cpf": {
const result = validateCpf(value);
return result.ok ? { ok: true, value: result.value } : result;
}
case "cnpj": {
const result = validateCnpj(value);
return result.ok ? { ok: true, value: result.value } : result;
}
case "cep": {
const result = validateCep(value);
return result.ok ? { ok: true, value: result.value } : result;
}
case "placa": {
const result = validatePlaca(value);
return result.ok ? { ok: true, value: result.value } : result;
}
case "pis-pasep": {
const result = validatePisPasep(value);
return result.ok ? { ok: true, value: result.value } : result;
}
case "telefone": {
const result = validateTelefone(value);
return result.ok ? { ok: true, value: result.value } : result;
}
case "cnh": {
const result = validateCnh(value);
return result.ok ? { ok: true, value: result.value } : result;
}
case "renavam": {
const result = validateRenavam(value);
return result.ok ? { ok: true, value: result.value } : result;
}
case "titulo-eleitor": {
const result = validateTituloEleitor(value);
return result.ok ? { ok: true, value: result.value } : result;
}
case "processo-judicial": {
const result = validateProcessoJudicial(value);
return result.ok ? { ok: true, value: result.value } : result;
}
case "rg": {
const result = validateRg(value, { uf });
return result.ok ? { ok: true, value: result.value } : result;
}
case "nfe-chave": {
const result = validateNfeChave(value);
return result.ok ? { ok: true, value: result.value } : result;
}
case "boleto": {
const result = validateBoleto(value);
return result.ok ? { ok: true, value: result.value } : result;
}
case "cartao-credito": {
const result = validateCartaoCredito(value);
return result.ok ? { ok: true, value: result.value } : result;
}
case "ean": {
const result = validateEan(value);
return result.ok ? { ok: true, value: result.value } : result;
}
case "inscricao-estadual": {
const result = validateInscricaoEstadual(value, { uf });
return result.ok ? { ok: true, value: result.value } : result;
}
case "inscricao-estadual-produtor-rural": {
const result = validateIeSpRural(value);
return result.ok ? { ok: true, value: result.value } : result;
}
case "pix": {
const result = validatePixKey(value);
return result.ok ? { ok: true, value: result.value } : result;
}
default: {
const _exhaustive = type;
return { ok: false, code: "UNSUPPORTED_FORMAT", message: `Unsupported type: ${String(_exhaustive)}` };
}
}
}
export { sanitize };
//# sourceMappingURL=chunk-MKQVOEQZ.js.map
//# sourceMappingURL=chunk-MKQVOEQZ.js.map
{"version":3,"sources":["../src/sanitize/index.ts"],"names":[],"mappings":"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","file":"chunk-MKQVOEQZ.js","sourcesContent":["/**\n * ETL-style document sanitization — applies fixes then validates (BR-SANITIZE-001).\n * @see docs/VALIDATION-RULES.md\n */\nimport { validateBoleto } from '../core/boleto/index.js';\nimport { validateCartaoCredito } from '../core/cartao-credito/index.js';\nimport { validateEan } from '../core/ean/index.js';\nimport { validateCep } from '../core/cep/index.js';\nimport { validateCnh } from '../core/cnh/index.js';\nimport { validateCnpj } from '../core/cnpj/index.js';\nimport { validateCpf } from '../core/cpf/index.js';\nimport { validateInscricaoEstadual } from '../core/inscricao-estadual/index.js';\nimport { validateIeSpRural } from '../core/inscricao-estadual/sp-rural.js';\nimport { validateNfeChave } from '../core/nfe-chave/index.js';\nimport { validatePisPasep } from '../core/pis-pasep/index.js';\nimport { validatePixKey } from '../core/pix/index.js';\nimport { validatePlaca } from '../core/placa/index.js';\nimport { validateProcessoJudicial } from '../core/processo-judicial/index.js';\nimport { validateRg } from '../core/rg/index.js';\nimport type { RgUfCode } from '../types/validation-result.js';\nimport { validateRenavam } from '../core/renavam/index.js';\nimport { validateTelefone } from '../core/telefone/index.js';\nimport { validateTituloEleitor } from '../core/titulo-eleitor/index.js';\nimport type { UfCode, ValidationErrorCode } from '../types/validation-result.js';\nimport { applyFixes } from './fixes.js';\n\nexport type SanitizableDocumentType =\n | 'cpf'\n | 'cnpj'\n | 'cep'\n | 'placa'\n | 'pis-pasep'\n | 'telefone'\n | 'cnh'\n | 'renavam'\n | 'titulo-eleitor'\n | 'processo-judicial'\n | 'rg'\n | 'nfe-chave'\n | 'boleto'\n | 'cartao-credito'\n | 'ean'\n | 'inscricao-estadual'\n | 'inscricao-estadual-produtor-rural'\n | 'pix';\n\nexport type SanitizeOptions = {\n uf?: UfCode;\n};\n\nexport type SanitizeSuccess = {\n ok: true;\n value: string;\n fixes: string[];\n};\n\nexport type SanitizeFailure = {\n ok: false;\n code: ValidationErrorCode;\n message: string;\n};\n\nexport type SanitizeResult = SanitizeSuccess | SanitizeFailure;\n\nexport type { FixResult } from './fixes.js';\n\ntype ValidateFixedResult =\n | { ok: true; value: string }\n | { ok: false; code: ValidationErrorCode; message: string };\n\nexport function sanitize(\n raw: string,\n type: SanitizableDocumentType,\n options: SanitizeOptions = {},\n): SanitizeResult {\n const { value: fixed, fixes } = applyFixes(raw, type);\n\n if (type === 'inscricao-estadual' && !options.uf) {\n return {\n ok: false,\n code: 'UNSUPPORTED_FORMAT',\n message: 'UF is required for inscricao-estadual sanitization',\n };\n }\n\n if (type === 'rg' && !options.uf) {\n return {\n ok: false,\n code: 'UNSUPPORTED_FORMAT',\n message: 'UF is required for RG sanitization',\n };\n }\n\n const validation = validateFixed(fixed, type, options.uf);\n if (!validation.ok) {\n return { ok: false, code: validation.code, message: validation.message };\n }\n\n return { ok: true, value: validation.value, fixes };\n}\n\nfunction validateFixed(value: string, type: SanitizableDocumentType, uf?: UfCode): ValidateFixedResult {\n switch (type) {\n case 'cpf': {\n const result = validateCpf(value);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'cnpj': {\n const result = validateCnpj(value);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'cep': {\n const result = validateCep(value);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'placa': {\n const result = validatePlaca(value);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'pis-pasep': {\n const result = validatePisPasep(value);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'telefone': {\n const result = validateTelefone(value);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'cnh': {\n const result = validateCnh(value);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'renavam': {\n const result = validateRenavam(value);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'titulo-eleitor': {\n const result = validateTituloEleitor(value);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'processo-judicial': {\n const result = validateProcessoJudicial(value);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'rg': {\n const result = validateRg(value, { uf: uf as RgUfCode });\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'nfe-chave': {\n const result = validateNfeChave(value);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'boleto': {\n const result = validateBoleto(value);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'cartao-credito': {\n const result = validateCartaoCredito(value);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'ean': {\n const result = validateEan(value);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'inscricao-estadual': {\n const result = validateInscricaoEstadual(value, { uf: uf as UfCode });\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'inscricao-estadual-produtor-rural': {\n const result = validateIeSpRural(value);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'pix': {\n const result = validatePixKey(value);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n default: {\n const _exhaustive: never = type;\n return { ok: false, code: 'UNSUPPORTED_FORMAT', message: `Unsupported type: ${String(_exhaustive)}` };\n }\n }\n}\n"]}
// src/paises-bacen/data/metadata.json
var metadata_default = {
id: "paises-bacen",
nome: "NF-e Bacen Country Codes",
fonte: "Banco Central FTP paises.txt + NF-e supplemental codes",
endpoints: [
"http://www.nfe.fazenda.gov.br/portal/exibirArquivo.aspx?conteudo=PfPDd6dW200=",
"http://www.nfe.fazenda.gov.br/portal/listaConteudo.aspx?tipoConteudo=/NJarYc9nus=",
"https://www.bcb.gov.br/ftp/paises.txt"
],
capturadoEm: "2026-07-01",
atualizadoEm: "2026-07-01T12:32:51.600Z",
contagens: {
paises: 260
},
alteracoes: {
adicionados: 11,
removidos: 4,
alterados: 33,
comparadoCom: "2026-07-01"
},
verificacao: {
agendamento: "diario",
workflow: "data-refresh-bot.yml",
ultimaExecucao: "2026-07-01T12:32:51.600Z"
},
documentacao: "docs/OFFICIAL-SOURCES.md#paises-bacen"
};
export { metadata_default };
//# sourceMappingURL=chunk-MNAWEOU6.js.map
//# sourceMappingURL=chunk-MNAWEOU6.js.map
{"version":3,"sources":["../src/paises-bacen/data/metadata.json"],"names":[],"mappings":";AAAA,IAAA,gBAAA,GAAA;AAAA,EACE,EAAA,EAAM,cAAA;AAAA,EACN,IAAA,EAAQ,0BAAA;AAAA,EACR,KAAA,EAAS,wDAAA;AAAA,EACT,SAAA,EAAa;AAAA,IACX,+EAAA;AAAA,IACA,mFAAA;AAAA,IACA;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,EAAA;AAAA,IACf,SAAA,EAAa,CAAA;AAAA,IACb,SAAA,EAAa,EAAA;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-MNAWEOU6.js","sourcesContent":["{\n \"id\": \"paises-bacen\",\n \"nome\": \"NF-e Bacen Country Codes\",\n \"fonte\": \"Banco Central FTP paises.txt + NF-e supplemental codes\",\n \"endpoints\": [\n \"http://www.nfe.fazenda.gov.br/portal/exibirArquivo.aspx?conteudo=PfPDd6dW200=\",\n \"http://www.nfe.fazenda.gov.br/portal/listaConteudo.aspx?tipoConteudo=/NJarYc9nus=\",\n \"https://www.bcb.gov.br/ftp/paises.txt\"\n ],\n \"capturadoEm\": \"2026-07-01\",\n \"atualizadoEm\": \"2026-07-01T12:32:51.600Z\",\n \"contagens\": {\n \"paises\": 260\n },\n \"alteracoes\": {\n \"adicionados\": 11,\n \"removidos\": 4,\n \"alterados\": 33,\n \"comparadoCom\": \"2026-07-01\"\n },\n \"verificacao\": {\n \"agendamento\": \"diario\",\n \"workflow\": \"data-refresh-bot.yml\",\n \"ultimaExecucao\": \"2026-07-01T12:32:51.600Z\"\n },\n \"documentacao\": \"docs/OFFICIAL-SOURCES.md#paises-bacen\"\n}\n"]}
import { formatTelefone } from './chunk-TZW4N7QM.js';
import { formatTituloEleitor } from './chunk-A255RZZ7.js';
import { formatPlaca } from './chunk-KCRWHMDY.js';
import { formatRenavam } from './chunk-YC4GZZJP.js';
import { formatNfeChave } from './chunk-6KHTKD5U.js';
import { formatPisPasep } from './chunk-INPLK35M.js';
import { formatPixKey } from './chunk-LKDZEPWZ.js';
import { formatIeProdutorRural } from './chunk-5ZJMYR63.js';
import { formatCpf } from './chunk-GQRHLW5W.js';
import { formatCep } from './chunk-DXKHCIMV.js';
import { formatCnh } from './chunk-BTRWDUZF.js';
import { formatCnpj } from './chunk-HEPUV3XR.js';
import { computeRenavamCheckDigit, RENAVAM_BASE_LENGTH } from './chunk-4NS47CJG.js';
import { ANATEL_DDDS, validateTelefone } from './chunk-JVI4PL7M.js';
import { TITULO_ELEITOR_UF_BY_CODE, validateTituloEleitor, TITULO_ELEITOR_SEQUENTIAL_LENGTH, computeTituloEleitorCheckDigits, TITULO_ELEITOR_GOLDEN_PRIMARY, TITULO_ELEITOR_GOLDEN_SP_SPECIAL } from './chunk-6WBUKUHD.js';
import { PLACA_LEGACY_PATTERN, PLACA_MERCOSUL_PATTERN, validatePlaca } from './chunk-UG2YICWH.js';
import { NFE_IBGE_UF_CODES, validateNfeChave, NFE_MODELO_NFE, computeNfeChaveCheckDigit, NFE_CHAVE_GOLDEN_PRIMARY } from './chunk-XRT44FMY.js';
import { validateInscricaoEstadual, formatInscricaoEstadual } from './chunk-OHBSYBG7.js';
import { validateIeSpRural, computeIeSpCheckDigit, IE_SP_DV1_WEIGHTS, IE_SP_RURAL_GOLDEN, IE_SP_GOLDEN, IE_MT_GOLDEN_LEGACY, IE_DF_GOLDEN, computeIeToCheckDigit, computeIeRoCheckDigit, computeIeCyclicMod11CheckDigit, computeIeRrCheckDigit, computeIeAmCheckDigit, computeIeAlCheckDigit, IE_AP_PREFIX, computeIeApCheckDigit, IE_GO_PREFIXES, computeIeGoCheckDigit, computeIePeCheckDigit, computeIeBaModule, computeIeBaCheckDigit, computeIeMgFirstCheckDigit, computeIeMgSecondCheckDigit, IE_MT_PREFIX, computeIeMtCheckDigit, IE_DF_PREFIX, computeIeDfCheckDigit, IE_DF_DV1_WEIGHTS, IE_DF_DV2_WEIGHTS, IE_SP_DV2_WEIGHTS, IE_RR_PREFIX, computeIeCeCheckDigit, IE_AL_PREFIX, computeIePrStyleCheckDigit, IE_RN_PREFIX, IE_MA_PREFIX, IE_PA_PREFIX, IE_MS_PREFIX, computeIeAcCheckDigit, IE_AC_PREFIX } from './chunk-FGOPYU2L.js';
import { validateCep } from './chunk-C4E2AE2A.js';
import { computeCnhCheckDigits, CNH_BASE_LENGTH } from './chunk-JZOS2MO7.js';
import { PIS_PASEP_DV_WEIGHTS, PIS_PASEP_BASE_LENGTH } from './chunk-W64OQYC4.js';
import { formatBoleto } from './chunk-S6ER3Y3B.js';
import { buildArrecadacaoGoldenPair, validateArrecadacao, validateCodigoBarras } from './chunk-UB2ZUHQZ.js';
import { convertCodigoBarrasToLinhaDigits, BOLETO_GOLDEN_LINHA_STRIPPED, computeModulo11BarcodeDv, BOLETO_CURRENCY_REAL } from './chunk-7U64V3YD.js';
import { validateBrCode, buildStaticPixBrCode, BRCODE_GOLDEN_STATIC_EVP } from './chunk-L3WG36Y4.js';
import { validatePixEvpKey } from './chunk-7XVCTDJE.js';
import { CPF_DV1_WEIGHTS, CPF_DV2_WEIGHTS, CPF_BASE_LENGTH } from './chunk-DQQNXXGO.js';
import { PIX_GOLDEN_EVP } from './chunk-FA5ZM5UA.js';
import { cnpjCharValue } from './chunk-MGFDTECS.js';
import { CNPJ_DV1_WEIGHTS, CNPJ_DV2_WEIGHTS, CNPJ_BASE_LENGTH } from './chunk-LLJSXMO2.js';
import { computeCheckDigit } from './chunk-OTZHMJYE.js';
import { formatCartaoCredito } from './chunk-UFKWTBOO.js';
import { detectCardBrand, validateCartaoCredito, CARTAO_GOLDEN_AMEX, CARTAO_GOLDEN_MASTERCARD, CARTAO_GOLDEN_VISA, HIPERCARD_IIN_PREFIXES, ELO_IIN_PREFIXES } from './chunk-PU5TKJZI.js';
// src/generate/apply-mask.ts
function applyMask(type, value) {
switch (type) {
case "cpf": {
const result = formatCpf(value);
return result.ok ? result.formatted : value;
}
case "cnpj": {
const result = formatCnpj(value);
return result.ok ? result.formatted : value;
}
case "cep": {
const result = formatCep(value);
return result.ok ? result.formatted : value;
}
case "placa": {
const result = formatPlaca(value);
return result.ok ? result.formatted : value;
}
case "pis-pasep": {
const result = formatPisPasep(value);
return result.ok ? result.formatted : value;
}
case "renavam": {
const result = formatRenavam(value);
return result.ok ? result.formatted : value;
}
case "cnh": {
const result = formatCnh(value);
return result.ok ? result.formatted : value;
}
case "telefone": {
const result = formatTelefone(value);
return result.ok ? result.formatted : value;
}
case "cartao-credito": {
const result = formatCartaoCredito(value);
return result.ok ? result.formatted : value;
}
case "inscricao-estadual":
return value;
case "titulo-eleitor": {
const result = formatTituloEleitor(value);
return result.ok ? result.formatted : value;
}
case "pix": {
const result = formatPixKey(value);
return result.ok ? result.formatted : value;
}
case "nfe-chave": {
const result = formatNfeChave(value);
return result.ok ? result.formatted : value;
}
case "boleto": {
const result = formatBoleto(value);
return result.ok ? result.formatted : value;
}
case "boleto-arrecadacao":
return value;
case "brcode":
return value;
case "inscricao-estadual-produtor-rural": {
const result = formatIeProdutorRural(value);
return result.ok ? result.formatted : value;
}
default: {
const _exhaustive = type;
return _exhaustive;
}
}
}
// src/generate/boleto.ts
var MAX_ATTEMPTS = 80;
var BANK_CODES = ["001", "033", "104", "237", "341", "756"];
function buildBarcode(rng, validateBarcode) {
const bank = rng.pick(BANK_CODES);
const fator = rng.digits(4);
const valor = rng.digits(10);
const freeField = rng.digits(25);
const withoutDv = bank + BOLETO_CURRENCY_REAL + fator + valor + freeField;
const dv = computeModulo11BarcodeDv(withoutDv);
const barcode = `${bank}${BOLETO_CURRENCY_REAL}${String(dv)}${fator}${valor}${freeField}`;
if (!validateBarcode(barcode).ok) {
return null;
}
return barcode;
}
function generateBoletoValue(rng, validateBarcode = validateCodigoBarras) {
for (let attempt = 0; attempt < MAX_ATTEMPTS; attempt++) {
const barcode = buildBarcode(rng, validateBarcode);
if (barcode) {
return convertCodigoBarrasToLinhaDigits(barcode);
}
}
return BOLETO_GOLDEN_LINHA_STRIPPED;
}
// src/generate/boleto-arrecadacao.ts
var ARRECADACAO_GOLDEN_LINHA = buildArrecadacaoGoldenPair({
segment: "4",
valueType: "6",
value: "00000008123",
company: "4567",
free: "89012345678901234567890123"
}).linha;
var MAX_ATTEMPTS2 = 80;
var VALUE_TYPES = ["6", "7", "8", "9"];
var SEGMENTS = ["1", "2", "3", "4", "5", "6", "7", "9"];
function applyArrecadacaoLinhaMask(linha) {
return `${linha.slice(0, 11)} ${linha.slice(11, 23)} ${linha.slice(23, 35)} ${linha.slice(35, 47)} ${linha.charAt(47)}`;
}
function generateBoletoArrecadacaoValue(rng, validate = validateArrecadacao) {
for (let attempt = 0; attempt < MAX_ATTEMPTS2; attempt++) {
const pair = buildArrecadacaoGoldenPair({
segment: rng.pick(SEGMENTS),
valueType: rng.pick(VALUE_TYPES),
value: rng.digits(11),
company: rng.digits(4),
free: rng.digits(25)
});
if (validate(pair.linha).ok) {
return pair.linha;
}
}
return ARRECADACAO_GOLDEN_LINHA;
}
// src/generate/pix.ts
var MAX_ATTEMPTS3 = 80;
function seededUuidV4(rng) {
const bytes = Array.from({ length: 16 }, () => rng.int(0, 255));
bytes[6] = bytes[6] & 15 | 64;
bytes[8] = bytes[8] & 63 | 128;
const hex = bytes.map((byte) => byte.toString(16).padStart(2, "0")).join("");
return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20, 32)}`;
}
function generatePixEvpValue(rng, validate = validatePixEvpKey) {
for (let attempt = 0; attempt < MAX_ATTEMPTS3; attempt++) {
const candidate = seededUuidV4(rng);
if (validate(candidate).ok) {
return candidate;
}
}
return PIX_GOLDEN_EVP;
}
// src/generate/brcode.ts
var MAX_ATTEMPTS4 = 50;
var DEFAULT_MERCHANT_NAME = "Merchant Test";
var DEFAULT_MERCHANT_CITY = "BRASILIA";
function generateBrcodeValue(rng, input = {}, validate = validateBrCode) {
const pixKey = input.pixKey ?? generatePixEvpValue(rng);
const merchantName = input.merchantName ?? DEFAULT_MERCHANT_NAME;
const merchantCity = input.merchantCity ?? DEFAULT_MERCHANT_CITY;
for (let attempt = 0; attempt < MAX_ATTEMPTS4; attempt++) {
const payload = buildStaticPixBrCode({
pixKey,
merchantName,
merchantCity,
...input.amount ? { amount: input.amount } : {},
...input.txid ? { txid: input.txid } : {}
});
if (validate(payload).ok) {
return payload;
}
}
return BRCODE_GOLDEN_STATIC_EVP;
}
// src/generate/random.ts
function mulberry32(seed) {
let state = seed >>> 0;
return () => {
state = state + 1831565813 >>> 0;
let t = state;
t = Math.imul(t ^ t >>> 15, t | 1);
t ^= t + Math.imul(t ^ t >>> 7, t | 61);
return ((t ^ t >>> 14) >>> 0) / 4294967296;
};
}
function createRandomSource(seed) {
const nextFn = seed === void 0 ? () => Math.random() : mulberry32(seed);
return {
next: nextFn,
int(min, max) {
return Math.floor(nextFn() * (max - min + 1)) + min;
},
digit() {
return String(Math.floor(nextFn() * 10));
},
digits(count) {
let out = "";
for (let i = 0; i < count; i++) {
out += this.digit();
}
return out;
},
letter() {
const letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
return letters.charAt(this.int(0, letters.length - 1));
},
pick(items) {
return items[this.int(0, items.length - 1)];
}
};
}
function hasRepeatedChars(value) {
const first = value[0];
for (let i = 1; i < value.length; i++) {
if (value[i] !== first) {
return false;
}
}
return true;
}
function computeLuhnCheckDigit(partial) {
let sum = 0;
let double = true;
for (let i = partial.length - 1; i >= 0; i--) {
let digit = Number(partial.charAt(i));
if (double) {
digit *= 2;
if (digit > 9) {
digit -= 9;
}
}
sum += digit;
double = !double;
}
return String((10 - sum % 10) % 10);
}
// src/generate/cartao-credito.ts
var MAX_ATTEMPTS5 = 50;
var GENERATABLE_CARD_BRANDS = [
"visa",
"mastercard",
"amex",
"elo",
"hipercard"
];
var BRAND_FALLBACKS = {
visa: CARTAO_GOLDEN_VISA,
mastercard: CARTAO_GOLDEN_MASTERCARD,
amex: CARTAO_GOLDEN_AMEX,
elo: "401178000000006",
hipercard: "606282000000003"
};
function buildBrandPartial(rng, brand) {
switch (brand) {
case "visa":
return `411111${rng.digits(9)}`;
case "mastercard":
return `${rng.pick(["51", "52", "53", "54", "55"])}${rng.digits(13)}`;
case "amex":
return `${rng.pick(["34", "37"])}${rng.digits(12)}`;
case "elo": {
const prefix = rng.pick(ELO_IIN_PREFIXES);
return `${prefix}${rng.digits(16 - prefix.length - 1)}`;
}
case "hipercard": {
const prefix = rng.pick(HIPERCARD_IIN_PREFIXES);
return `${prefix}${rng.digits(16 - prefix.length - 1)}`;
}
default: {
const _exhaustive = brand;
return _exhaustive;
}
}
}
function buildRandomPartial(rng) {
const length = rng.int(13, 16);
return rng.digits(length - 1);
}
function generateCartaoCreditoValue(rng, brand, detectBrand = detectCardBrand, validate = validateCartaoCredito) {
for (let attempt = 0; attempt < MAX_ATTEMPTS5; attempt++) {
const partial = brand ? buildBrandPartial(rng, brand) : buildRandomPartial(rng);
if (hasRepeatedChars(partial)) {
continue;
}
const candidate = partial + computeLuhnCheckDigit(partial);
if (!validate(candidate).ok) {
continue;
}
if (brand && detectBrand(candidate) !== brand) {
continue;
}
return candidate;
}
if (brand) {
return BRAND_FALLBACKS[brand];
}
return CARTAO_GOLDEN_VISA;
}
function isGeneratableCardBrand(brand) {
return GENERATABLE_CARD_BRANDS.includes(brand);
}
// src/generate/cpf-alpha.ts
var CPF_ALPHA_GENERATE_STUB = {
ok: false,
code: "CPF_ALPHA_SPEC_PENDING",
message: "Alphanumeric CPF generation is pending official RFB specification \u2014 numeric CPF only until published"
};
function rejectCpfAlphanumericGenerate() {
return CPF_ALPHA_GENERATE_STUB;
}
function assertCpfAlphanumericGenerateAllowed() {
throw new Error(`${CPF_ALPHA_GENERATE_STUB.code}: ${CPF_ALPHA_GENERATE_STUB.message}`);
}
// src/generate/inscricao-estadual-produtor-rural.ts
var MAX_ATTEMPTS6 = 50;
function generateIeProdutorRuralValue(rng, validate = validateIeSpRural) {
for (let attempt = 0; attempt < MAX_ATTEMPTS6; attempt++) {
const dvInput = rng.digits(8);
const dv = String(computeIeSpCheckDigit(dvInput, IE_SP_DV1_WEIGHTS));
const suffix = rng.digits(3);
const candidate = `P${dvInput}${dv}${suffix}`;
if (validate(candidate).ok) {
return candidate;
}
}
return IE_SP_RURAL_GOLDEN;
}
// src/generate/inscricao-estadual.ts
var MAX_ATTEMPTS7 = 50;
var IE_GENERATE_FALLBACKS = {
AC: "0113253877910",
AL: "248682954",
AM: "917050150",
AP: "039045820",
BA: "63984300",
CE: "836182316",
DF: IE_DF_GOLDEN,
ES: "463921810",
GO: "112237118",
MA: "123517680",
MG: "2490944173923",
MS: "282570926",
MT: IE_MT_GOLDEN_LEGACY,
PA: "153662476",
PB: "312029063",
PE: "064970639",
PI: "465180426",
PR: "0031595584",
RJ: "06540481",
RN: "204502292",
RO: "39206839474860",
RR: "247681047",
RS: "3288345503",
SC: "632480718",
SE: "826594042",
SP: IE_SP_GOLDEN,
TO: "27035910938"
};
function prefixBody8(rng, prefix) {
return prefix + rng.digits(8 - prefix.length);
}
function buildCeStyle(rng, prefix) {
const body = prefix ? prefixBody8(rng, prefix) : rng.digits(8);
return body + String(computeIeCeCheckDigit(body));
}
function buildDualTrailing(rng, prefix, bodyLength, computeFirst, computeSecond) {
const body = prefix + rng.digits(bodyLength - prefix.length);
const first = computeFirst(body);
const second = computeSecond(body + String(first));
return body + String(first) + String(second);
}
function generateSpValue(rng) {
const head = rng.digits(8);
const middle = rng.digits(2);
let partial = `${head}0${middle}0`;
const dv1 = computeIeSpCheckDigit(partial, IE_SP_DV1_WEIGHTS);
partial = `${head}${String(dv1)}${middle}0`;
const dv2 = computeIeSpCheckDigit(partial, IE_SP_DV2_WEIGHTS);
return `${head}${String(dv1)}${middle}${String(dv2)}`;
}
function generateDfValue(rng) {
const core11 = IE_DF_PREFIX + rng.digits(9);
const dv1 = computeIeDfCheckDigit(core11, IE_DF_DV1_WEIGHTS);
const dv2 = computeIeDfCheckDigit(core11, IE_DF_DV2_WEIGHTS, true, dv1);
return `${core11}${String(dv1)}${String(dv2)}`;
}
function generateMtValue(rng) {
const padded = `${IE_MT_PREFIX.padStart(4, "0")}${rng.digits(6)}`;
const dv = computeIeMtCheckDigit(padded.slice(0, 10));
return `${padded.slice(0, 10)}${String(dv)}`;
}
function generateMgValue(rng) {
const body = rng.digits(11);
const first = computeIeMgFirstCheckDigit(body);
const second = computeIeMgSecondCheckDigit(body + String(first));
return body + String(first) + String(second);
}
function generateBaValue(rng) {
const body = rng.digits(6);
const mod = computeIeBaModule(`${body}00`);
const second = computeIeBaCheckDigit(body, mod);
const first = computeIeBaCheckDigit(body + String(second), mod);
return body + String(first) + String(second);
}
function generatePeValue(rng) {
const body = rng.digits(7);
const first = computeIePeCheckDigit(body);
const second = computeIePeCheckDigit(body + String(first));
return body + String(first) + String(second);
}
function generateGoValue(rng) {
const prefix = rng.pick([...IE_GO_PREFIXES]);
const body = prefix + rng.digits(6);
return body + String(computeIeGoCheckDigit(body));
}
function generateApValue(rng) {
const body = IE_AP_PREFIX + rng.digits(6);
const dv = computeIeApCheckDigit(body);
return body + String(dv);
}
var GENERATORS = {
SP: generateSpValue,
DF: generateDfValue,
MT: generateMtValue,
MG: generateMgValue,
BA: generateBaValue,
PE: generatePeValue,
GO: generateGoValue,
AP: generateApValue,
AC: (rng) => buildDualTrailing(rng, IE_AC_PREFIX, 11, computeIeAcCheckDigit, computeIeAcCheckDigit),
AL: (rng) => {
const body = prefixBody8(rng, IE_AL_PREFIX);
return body + String(computeIeAlCheckDigit(body));
},
AM: (rng) => {
const body = rng.digits(8);
return body + String(computeIeAmCheckDigit(body));
},
CE: (rng) => buildCeStyle(rng),
ES: (rng) => buildCeStyle(rng),
SC: (rng) => buildCeStyle(rng),
SE: (rng) => buildCeStyle(rng),
PB: (rng) => buildCeStyle(rng),
PI: (rng) => buildCeStyle(rng),
MS: (rng) => buildCeStyle(rng, IE_MS_PREFIX),
PA: (rng) => buildCeStyle(rng, IE_PA_PREFIX),
MA: (rng) => buildCeStyle(rng, IE_MA_PREFIX),
RN: (rng) => buildCeStyle(rng, IE_RN_PREFIX),
RR: (rng) => {
const body = prefixBody8(rng, IE_RR_PREFIX);
return body + String(computeIeRrCheckDigit(body));
},
PR: (rng) => buildDualTrailing(rng, "", 8, computeIePrStyleCheckDigit, computeIePrStyleCheckDigit),
RJ: (rng) => {
const body = rng.digits(7);
return body + String(computeIeCyclicMod11CheckDigit(body, 2, 7));
},
RS: (rng) => {
const body = rng.digits(9);
return body + String(computeIeCyclicMod11CheckDigit(body, 2, 9));
},
RO: (rng) => {
const body = rng.digits(13);
return body + String(computeIeRoCheckDigit(body));
},
TO: (rng) => {
const body = rng.digits(8);
return body + String(computeIeToCheckDigit(body));
}
};
function generateInscricaoEstadualValue(uf, rng, validate = validateInscricaoEstadual) {
const generator = GENERATORS[uf];
for (let attempt = 0; attempt < MAX_ATTEMPTS7; attempt++) {
const candidate = generator(rng);
if (validate(candidate, { uf }).ok) {
return candidate;
}
}
return IE_GENERATE_FALLBACKS[uf];
}
// src/generate/nfe-chave.ts
var MAX_ATTEMPTS8 = 80;
var NFE_UF_CODES = [...NFE_IBGE_UF_CODES];
function generateNfeChaveValue(rng, validate = validateNfeChave) {
for (let attempt = 0; attempt < MAX_ATTEMPTS8; attempt++) {
const cuf = String(rng.pick(NFE_UF_CODES)).padStart(2, "0");
const aamm = rng.digits(4);
const cnpj = rng.digits(14);
const serie = rng.digits(3);
const invoiceNumber = rng.digits(9);
const emissionType = String(rng.int(0, 9));
const numericCode = rng.digits(8);
const base43 = `${cuf}${aamm}${cnpj}${NFE_MODELO_NFE}${serie}${invoiceNumber}${emissionType}${numericCode}`;
const candidate = `${base43}${String(computeNfeChaveCheckDigit(base43))}`;
if (validate(candidate).ok) {
return candidate;
}
}
return NFE_CHAVE_GOLDEN_PRIMARY;
}
// src/generate/titulo-eleitor.ts
var MAX_ATTEMPTS9 = 50;
var TITULO_ELEITOR_CODE_BY_UF = Object.fromEntries(
Object.entries(TITULO_ELEITOR_UF_BY_CODE).map(([code, uf]) => [uf, Number(code)])
);
var TITULO_GENERATE_FALLBACKS = {
SP: TITULO_ELEITOR_GOLDEN_SP_SPECIAL,
SC: TITULO_ELEITOR_GOLDEN_PRIMARY
};
function deterministicTituloFallback(uf) {
const ufCode = TITULO_ELEITOR_CODE_BY_UF[uf];
const ufDigits = String(ufCode).padStart(2, "0");
const sequential = "12345678";
const checkDigits = computeTituloEleitorCheckDigits(sequential, ufDigits, ufCode);
return `${sequential}${ufDigits}${checkDigits}`;
}
function generateTituloEleitorValue(uf, rng, validate = validateTituloEleitor) {
const ufCode = TITULO_ELEITOR_CODE_BY_UF[uf];
const ufDigits = String(ufCode).padStart(2, "0");
for (let attempt = 0; attempt < MAX_ATTEMPTS9; attempt++) {
const sequential = rng.digits(TITULO_ELEITOR_SEQUENTIAL_LENGTH);
if (hasRepeatedChars(sequential)) {
continue;
}
const checkDigits = computeTituloEleitorCheckDigits(sequential, ufDigits, ufCode);
const candidate = `${sequential}${ufDigits}${checkDigits}`;
if (validate(candidate).ok) {
return candidate;
}
}
return TITULO_GENERATE_FALLBACKS[uf] ?? deterministicTituloFallback(uf);
}
// src/generate/index.ts
function shouldApplyGenerateMask(options) {
return options.masked === true && options.stripped !== true;
}
var CNPJ_ALNUM_CHARS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var MAX_ATTEMPTS10 = 50;
function digitValue(char) {
return Number(char);
}
function randomBaseDigits(rng, length) {
for (let attempt = 0; attempt < MAX_ATTEMPTS10; attempt++) {
const base = rng.digits(length);
if (!hasRepeatedChars(base)) {
return base;
}
}
return "123456789".slice(0, length).padEnd(length, "1");
}
function randomCnpjAlphanumericBase(rng) {
for (let attempt = 0; attempt < MAX_ATTEMPTS10; attempt++) {
let base = "";
for (let i = 0; i < CNPJ_BASE_LENGTH; i++) {
base += CNPJ_ALNUM_CHARS.charAt(rng.int(0, CNPJ_ALNUM_CHARS.length - 1));
}
if (!hasRepeatedChars(base)) {
return base;
}
}
return "12ABC34501DE";
}
function generateCpfValue(rng) {
const base = randomBaseDigits(rng, CPF_BASE_LENGTH);
const dv1 = String(computeCheckDigit(base, CPF_DV1_WEIGHTS, digitValue));
const dv2 = String(computeCheckDigit(base + dv1, CPF_DV2_WEIGHTS, digitValue));
return base + dv1 + dv2;
}
function generateCnpjValue(rng, format) {
if (format === "alphanumeric") {
const base2 = randomCnpjAlphanumericBase(rng);
const dv12 = String(computeCheckDigit(base2, CNPJ_DV1_WEIGHTS, cnpjCharValue));
const dv22 = String(computeCheckDigit(base2 + dv12, CNPJ_DV2_WEIGHTS, cnpjCharValue));
return base2 + dv12 + dv22;
}
const base = randomBaseDigits(rng, CNPJ_BASE_LENGTH);
const dv1 = String(computeCheckDigit(base, CNPJ_DV1_WEIGHTS, digitValue));
const dv2 = String(computeCheckDigit(base + dv1, CNPJ_DV2_WEIGHTS, digitValue));
return base + dv1 + dv2;
}
function generateCepValue(rng) {
for (let attempt = 0; attempt < MAX_ATTEMPTS10; attempt++) {
const value = rng.digits(8);
if (value !== "00000000" && validateCep(value).ok) {
return value;
}
}
return "01310100";
}
function generatePlacaValue(rng, format) {
const mode = format === "legacy" ? "legacy" : "mercosul";
for (let attempt = 0; attempt < MAX_ATTEMPTS10; attempt++) {
const letters = rng.letter() + rng.letter() + rng.letter();
let candidate;
if (mode === "legacy") {
candidate = letters + rng.digits(4);
if (!PLACA_LEGACY_PATTERN.test(candidate)) {
continue;
}
} else {
candidate = letters + rng.digit() + rng.pick(["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]) + rng.digits(2);
if (!PLACA_MERCOSUL_PATTERN.test(candidate)) {
continue;
}
}
if (validatePlaca(candidate).ok) {
return candidate;
}
}
return mode === "legacy" ? "ABC1234" : "ABC1D23";
}
function generatePisValue(rng) {
const base = randomBaseDigits(rng, PIS_PASEP_BASE_LENGTH);
const dv = String(computeCheckDigit(base, PIS_PASEP_DV_WEIGHTS, digitValue));
return base + dv;
}
function generateRenavamValue(rng) {
const base = randomBaseDigits(rng, RENAVAM_BASE_LENGTH);
const dv = String(computeRenavamCheckDigit(base));
return base + dv;
}
function generateCnhValue(rng) {
const base = randomBaseDigits(rng, CNH_BASE_LENGTH);
return base + computeCnhCheckDigits(base);
}
function generateTelefoneValue(rng, format) {
const ddd = rng.pick(ANATEL_DDDS);
const useFixo = format === "fixo";
for (let attempt = 0; attempt < MAX_ATTEMPTS10; attempt++) {
const local = useFixo ? String(rng.int(2, 5)) + rng.digits(7) : `9${rng.digits(8)}`;
const candidate = ddd + local;
if (validateTelefone(candidate).ok) {
return candidate;
}
}
return useFixo ? "1133333333" : "11999999999";
}
function generateCartaoValue(rng, brand) {
return generateCartaoCreditoValue(rng, brand);
}
function applyInscricaoEstadualGenerateMask(value, uf) {
const formatted = formatInscricaoEstadual(value, { uf });
return formatted.ok ? formatted.formatted : value;
}
function generate(type, options = {}) {
const rng = createRandomSource(options.seed);
let value;
switch (type) {
case "cpf":
if (options.format === "alphanumeric") {
assertCpfAlphanumericGenerateAllowed();
}
value = generateCpfValue(rng);
break;
case "cnpj":
value = generateCnpjValue(rng, options.format);
break;
case "cep":
value = generateCepValue(rng);
break;
case "placa":
value = generatePlacaValue(rng, options.format);
break;
case "pis-pasep":
value = generatePisValue(rng);
break;
case "renavam":
value = generateRenavamValue(rng);
break;
case "cnh":
value = generateCnhValue(rng);
break;
case "telefone":
value = generateTelefoneValue(rng, options.format);
break;
case "cartao-credito":
value = generateCartaoValue(rng, options.brand);
break;
case "inscricao-estadual": {
if (!options.uf) {
throw new Error("UF is required for inscricao-estadual generation");
}
value = generateInscricaoEstadualValue(options.uf, rng);
break;
}
case "titulo-eleitor": {
if (!options.uf) {
throw new Error("UF is required for titulo-eleitor generation");
}
value = generateTituloEleitorValue(options.uf, rng);
break;
}
case "pix":
value = generatePixEvpValue(rng);
break;
case "nfe-chave":
value = generateNfeChaveValue(rng);
break;
case "brcode":
value = generateBrcodeValue(rng, {
pixKey: options.pixKey,
merchantName: options.merchantName,
merchantCity: options.merchantCity,
amount: options.amount,
txid: options.txid
});
break;
case "boleto":
value = generateBoletoValue(rng);
break;
case "boleto-arrecadacao":
value = generateBoletoArrecadacaoValue(rng);
break;
case "inscricao-estadual-produtor-rural":
value = generateIeProdutorRuralValue(rng);
break;
default: {
const _exhaustive = type;
throw new Error(`Unsupported generatable type: ${String(_exhaustive)}`);
}
}
if (shouldApplyGenerateMask(options) && type === "inscricao-estadual") {
return applyInscricaoEstadualGenerateMask(value, options.uf);
}
if (shouldApplyGenerateMask(options) && type === "boleto-arrecadacao") {
return applyArrecadacaoLinhaMask(value);
}
return shouldApplyGenerateMask(options) ? applyMask(type, value) : value;
}
export { CPF_ALPHA_GENERATE_STUB, GENERATABLE_CARD_BRANDS, applyArrecadacaoLinhaMask, assertCpfAlphanumericGenerateAllowed, generate, isGeneratableCardBrand, rejectCpfAlphanumericGenerate };
//# sourceMappingURL=chunk-NWPW7IAK.js.map
//# sourceMappingURL=chunk-NWPW7IAK.js.map

Sorry, the diff of this file is too big to display

// src/aeroportos/data/metadata.json
var metadata_default = {
id: "aeroportos",
nome: "ANAC Public Aerodromos",
fonte: "ANAC \u2014 Lista de aer\xF3dromos de uso p\xFAblico",
endpoints: [
"https://www.anac.gov.br/acesso-a-informacao/dados-abertos/areas-de-atuacao/aerodromos/lista-de-aerodromos-publicos/aerodromospublicosv1.csv/@@download/file/aerodromospublicosv1.csv"
],
capturadoEm: "2026-07-01",
atualizadoEm: "2026-07-01T12:22:37.766Z",
contagens: {
aeroportos: 533,
comIata: 87
},
alteracoes: {
adicionados: 0,
removidos: 0,
alterados: 0,
comparadoCom: "2026-07-01"
},
verificacao: {
agendamento: "diario",
workflow: "data-refresh-bot.yml",
ultimaExecucao: "2026-07-01T12:22:37.766Z"
},
documentacao: "docs/OFFICIAL-SOURCES.md#aeroportos"
};
export { metadata_default };
//# sourceMappingURL=chunk-PY6V2ZNR.js.map
//# sourceMappingURL=chunk-PY6V2ZNR.js.map
{"version":3,"sources":["../src/aeroportos/data/metadata.json"],"names":[],"mappings":";AAAA,IAAA,gBAAA,GAAA;AAAA,EACE,EAAA,EAAM,YAAA;AAAA,EACN,IAAA,EAAQ,wBAAA;AAAA,EACR,KAAA,EAAS,sDAAA;AAAA,EACT,SAAA,EAAa;AAAA,IACX;AAAA,GACF;AAAA,EACA,WAAA,EAAe,YAAA;AAAA,EACf,YAAA,EAAgB,0BAAA;AAAA,EAChB,SAAA,EAAa;AAAA,IACX,UAAA,EAAc,GAAA;AAAA,IACd,OAAA,EAAW;AAAA,GACb;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-PY6V2ZNR.js","sourcesContent":["{\n \"id\": \"aeroportos\",\n \"nome\": \"ANAC Public Aerodromos\",\n \"fonte\": \"ANAC — Lista de aeródromos de uso público\",\n \"endpoints\": [\n \"https://www.anac.gov.br/acesso-a-informacao/dados-abertos/areas-de-atuacao/aerodromos/lista-de-aerodromos-publicos/aerodromospublicosv1.csv/@@download/file/aerodromospublicosv1.csv\"\n ],\n \"capturadoEm\": \"2026-07-01\",\n \"atualizadoEm\": \"2026-07-01T12:22:37.766Z\",\n \"contagens\": {\n \"aeroportos\": 533,\n \"comIata\": 87\n },\n \"alteracoes\": {\n \"adicionados\": 0,\n \"removidos\": 0,\n \"alterados\": 0,\n \"comparadoCom\": \"2026-07-01\"\n },\n \"verificacao\": {\n \"agendamento\": \"diario\",\n \"workflow\": \"data-refresh-bot.yml\",\n \"ultimaExecucao\": \"2026-07-01T12:22:37.766Z\"\n },\n \"documentacao\": \"docs/OFFICIAL-SOURCES.md#aeroportos\"\n}\n"]}
import { stripForType } from './chunk-GOMCPGST.js';
import { isRgUfImplemented, validateRg } from './chunk-6F3A3NT4.js';
import { validateRenavam } from './chunk-4NS47CJG.js';
import { validateProcessoJudicial } from './chunk-A4QBLVVO.js';
import { validateTelefone } from './chunk-JVI4PL7M.js';
import { validateTituloEleitor } from './chunk-6WBUKUHD.js';
import { validatePlaca } from './chunk-UG2YICWH.js';
import { validateNfeChave } from './chunk-XRT44FMY.js';
import { validatePisPasep } from './chunk-HORKZQIH.js';
import { validateInscricaoEstadual } from './chunk-OHBSYBG7.js';
import { validateIeSpRural } from './chunk-FGOPYU2L.js';
import { validateEan } from './chunk-OFAU4VTU.js';
import { validateCep } from './chunk-C4E2AE2A.js';
import { validateCnh } from './chunk-JZOS2MO7.js';
import { stripPixKey } from './chunk-JUQMINSZ.js';
import { validateBoleto } from './chunk-JOBIJQGE.js';
import { validateBrCode } from './chunk-L3WG36Y4.js';
import { validatePixKey } from './chunk-7XVCTDJE.js';
import { validateCpf } from './chunk-DQQNXXGO.js';
import { validateCnpj } from './chunk-MGFDTECS.js';
import { validateCartaoCredito } from './chunk-PU5TKJZI.js';
// src/platform/normalize.ts
var SANITIZABLE_PLATFORM_TYPES = /* @__PURE__ */ new Set([
"cpf",
"cnpj",
"cep",
"placa",
"pis-pasep",
"telefone",
"cnh",
"renavam",
"titulo-eleitor",
"processo-judicial",
"rg",
"nfe-chave",
"boleto",
"cartao-credito",
"ean",
"inscricao-estadual",
"inscricao-estadual-produtor-rural",
"pix"
]);
function isSanitizablePlatformType(type) {
return SANITIZABLE_PLATFORM_TYPES.has(type);
}
function stripForPlatform(raw, type) {
if (type === "pix") {
return stripPixKey(raw);
}
if (type === "brcode") {
return raw;
}
if (isSanitizablePlatformType(type)) {
return stripForType(raw, type);
}
return raw;
}
function normalizeForPlatform(raw, type, options = {}) {
const trimmed = raw.trim();
const stripped = stripForPlatform(trimmed, type);
const validated = tryValidatedCanonical(stripped, type, options.uf);
return validated ?? stripped;
}
function tryValidatedCanonical(value, type, uf) {
switch (type) {
case "cpf": {
const result = validateCpf(value);
return result.ok ? result.value : null;
}
case "cnpj": {
const result = validateCnpj(value);
return result.ok ? result.value : null;
}
case "cep": {
const result = validateCep(value);
return result.ok ? result.value : null;
}
case "placa": {
const result = validatePlaca(value);
return result.ok ? result.value : null;
}
case "pis-pasep": {
const result = validatePisPasep(value);
return result.ok ? result.value : null;
}
case "telefone": {
const result = validateTelefone(value);
return result.ok ? result.value : null;
}
case "cnh": {
const result = validateCnh(value);
return result.ok ? result.value : null;
}
case "renavam": {
const result = validateRenavam(value);
return result.ok ? result.value : null;
}
case "titulo-eleitor": {
const result = validateTituloEleitor(value);
return result.ok ? result.value : null;
}
case "processo-judicial": {
const result = validateProcessoJudicial(value);
return result.ok ? result.value : null;
}
case "rg": {
if (!uf || !isRgUfImplemented(uf)) {
return null;
}
const result = validateRg(value, { uf });
return result.ok ? result.value : null;
}
case "nfe-chave": {
const result = validateNfeChave(value);
return result.ok ? result.value : null;
}
case "boleto": {
const result = validateBoleto(value);
return result.ok ? result.value : null;
}
case "cartao-credito": {
const result = validateCartaoCredito(value);
return result.ok ? result.value : null;
}
case "ean": {
const result = validateEan(value);
return result.ok ? result.value : null;
}
case "inscricao-estadual": {
if (!uf) {
return null;
}
const result = validateInscricaoEstadual(value, { uf });
return result.ok ? result.value : null;
}
case "inscricao-estadual-produtor-rural": {
const result = validateIeSpRural(value);
return result.ok ? result.value : null;
}
case "pix": {
const result = validatePixKey(value);
return result.ok ? result.value : null;
}
case "brcode": {
const result = validateBrCode(value);
return result.ok ? result.value : null;
}
default: {
return null;
}
}
}
export { normalizeForPlatform };
//# sourceMappingURL=chunk-QBGJZLXQ.js.map
//# sourceMappingURL=chunk-QBGJZLXQ.js.map
{"version":3,"sources":["../src/platform/normalize.ts"],"names":[],"mappings":"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","file":"chunk-QBGJZLXQ.js","sourcesContent":["/**\n * Canonical normalization for platform compare/diff (BR-PLATFORM-001).\n * @see docs/OFFICIAL-SOURCES.md\n */\nimport { validateBrCode } from '../core/brcode/index.js';\nimport { validateBoleto } from '../core/boleto/index.js';\nimport { validateCartaoCredito } from '../core/cartao-credito/index.js';\nimport { validateEan } from '../core/ean/index.js';\nimport { validateCep } from '../core/cep/index.js';\nimport { validateCnh } from '../core/cnh/index.js';\nimport { validateCnpj } from '../core/cnpj/index.js';\nimport { validateCpf } from '../core/cpf/index.js';\nimport { validateInscricaoEstadual } from '../core/inscricao-estadual/index.js';\nimport { validateIeSpRural } from '../core/inscricao-estadual/sp-rural.js';\nimport { validateNfeChave } from '../core/nfe-chave/index.js';\nimport { validatePisPasep } from '../core/pis-pasep/index.js';\nimport { validatePlaca } from '../core/placa/index.js';\nimport { validatePixKey } from '../core/pix/index.js';\nimport { validateRenavam } from '../core/renavam/index.js';\nimport { validateTelefone } from '../core/telefone/index.js';\nimport { validateProcessoJudicial } from '../core/processo-judicial/index.js';\nimport { validateRg, isRgUfImplemented } from '../core/rg/index.js';\nimport { validateTituloEleitor } from '../core/titulo-eleitor/index.js';\nimport { stripForType } from '../sanitize/fixes.js';\nimport { stripPixKey } from '../strip/pix.js';\nimport type { SanitizableDocumentType } from '../sanitize/index.js';\nimport type { UfCode } from '../types/validation-result.js';\nimport type { PlatformDocumentType, PlatformOptions } from './types.js';\n\nconst SANITIZABLE_PLATFORM_TYPES = new Set<PlatformDocumentType>([\n 'cpf',\n 'cnpj',\n 'cep',\n 'placa',\n 'pis-pasep',\n 'telefone',\n 'cnh',\n 'renavam',\n 'titulo-eleitor',\n 'processo-judicial',\n 'rg',\n 'nfe-chave',\n 'boleto',\n 'cartao-credito',\n 'ean',\n 'inscricao-estadual',\n 'inscricao-estadual-produtor-rural',\n 'pix',\n]);\n\nfunction isSanitizablePlatformType(type: PlatformDocumentType): type is SanitizableDocumentType {\n return SANITIZABLE_PLATFORM_TYPES.has(type);\n}\n\nfunction stripForPlatform(raw: string, type: PlatformDocumentType): string {\n if (type === 'pix') {\n return stripPixKey(raw);\n }\n if (type === 'brcode') {\n return raw;\n }\n if (isSanitizablePlatformType(type)) {\n return stripForType(raw, type);\n }\n return raw;\n}\n\nexport function normalizeForPlatform(\n raw: string,\n type: PlatformDocumentType,\n options: PlatformOptions = {},\n): string {\n const trimmed = raw.trim();\n const stripped = stripForPlatform(trimmed, type);\n const validated = tryValidatedCanonical(stripped, type, options.uf);\n return validated ?? stripped;\n}\n\nfunction tryValidatedCanonical(\n value: string,\n type: PlatformDocumentType,\n uf?: UfCode,\n): string | null {\n switch (type) {\n case 'cpf': {\n const result = validateCpf(value);\n return result.ok ? result.value : null;\n }\n case 'cnpj': {\n const result = validateCnpj(value);\n return result.ok ? result.value : null;\n }\n case 'cep': {\n const result = validateCep(value);\n return result.ok ? result.value : null;\n }\n case 'placa': {\n const result = validatePlaca(value);\n return result.ok ? result.value : null;\n }\n case 'pis-pasep': {\n const result = validatePisPasep(value);\n return result.ok ? result.value : null;\n }\n case 'telefone': {\n const result = validateTelefone(value);\n return result.ok ? result.value : null;\n }\n case 'cnh': {\n const result = validateCnh(value);\n return result.ok ? result.value : null;\n }\n case 'renavam': {\n const result = validateRenavam(value);\n return result.ok ? result.value : null;\n }\n case 'titulo-eleitor': {\n const result = validateTituloEleitor(value);\n return result.ok ? result.value : null;\n }\n case 'processo-judicial': {\n const result = validateProcessoJudicial(value);\n return result.ok ? result.value : null;\n }\n case 'rg': {\n if (!uf || !isRgUfImplemented(uf)) {\n return null;\n }\n const result = validateRg(value, { uf });\n return result.ok ? result.value : null;\n }\n case 'nfe-chave': {\n const result = validateNfeChave(value);\n return result.ok ? result.value : null;\n }\n case 'boleto': {\n const result = validateBoleto(value);\n return result.ok ? result.value : null;\n }\n case 'cartao-credito': {\n const result = validateCartaoCredito(value);\n return result.ok ? result.value : null;\n }\n case 'ean': {\n const result = validateEan(value);\n return result.ok ? result.value : null;\n }\n case 'inscricao-estadual': {\n if (!uf) {\n return null;\n }\n const result = validateInscricaoEstadual(value, { uf });\n return result.ok ? result.value : null;\n }\n case 'inscricao-estadual-produtor-rural': {\n const result = validateIeSpRural(value);\n return result.ok ? result.value : null;\n }\n case 'pix': {\n const result = validatePixKey(value);\n return result.ok ? result.value : null;\n }\n case 'brcode': {\n const result = validateBrCode(value);\n return result.ok ? result.value : null;\n }\n default: {\n return null;\n }\n }\n}\n"]}
import { normalizeForPlatform } from './chunk-QBGJZLXQ.js';
// src/platform/types.ts
var PLATFORM_DOCUMENT_TYPES = [
"cpf",
"cnpj",
"cep",
"placa",
"pis-pasep",
"telefone",
"cnh",
"renavam",
"titulo-eleitor",
"processo-judicial",
"rg",
"nfe-chave",
"boleto",
"cartao-credito",
"ean",
"inscricao-estadual",
"inscricao-estadual-produtor-rural",
"pix",
"brcode"
];
function isPlatformDocumentType(type) {
return PLATFORM_DOCUMENT_TYPES.includes(type);
}
// src/compare/index.ts
function compare(a, b, type, options = {}) {
const left = normalizeForPlatform(a, type, options);
const right = normalizeForPlatform(b, type, options);
return { equal: left === right };
}
function compareRuntime(a, b, type, options = {}) {
if (!isPlatformDocumentType(type)) {
return { equal: false, code: "UNSUPPORTED_FORMAT", message: `Unknown document type: ${type}` };
}
return compare(a, b, type, options);
}
export { compare, compareRuntime };
//# sourceMappingURL=chunk-R6VCAOGH.js.map
//# sourceMappingURL=chunk-R6VCAOGH.js.map
{"version":3,"sources":["../src/platform/types.ts","../src/compare/index.ts"],"names":[],"mappings":";;;AAKO,IAAM,uBAAA,GAA0B;AAAA,EACrC,KAAA;AAAA,EACA,MAAA;AAAA,EACA,KAAA;AAAA,EACA,OAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA;AAAA,EACA,gBAAA;AAAA,EACA,mBAAA;AAAA,EACA,IAAA;AAAA,EACA,WAAA;AAAA,EACA,QAAA;AAAA,EACA,gBAAA;AAAA,EACA,KAAA;AAAA,EACA,oBAAA;AAAA,EACA,mCAAA;AAAA,EACA,KAAA;AAAA,EACA;AACF,CAAA;AAMO,SAAS,uBAAuB,IAAA,EAA4C;AACjF,EAAA,OAAQ,uBAAA,CAA8C,SAAS,IAAI,CAAA;AACrE;;;ACrBO,SAAS,QACd,CAAA,EACA,CAAA,EACA,IAAA,EACA,OAAA,GAA2B,EAAC,EACb;AACf,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;AACnD,EAAA,OAAO,EAAE,KAAA,EAAO,IAAA,KAAS,KAAA,EAAM;AACjC;AAGO,SAAS,eACd,CAAA,EACA,CAAA,EACA,IAAA,EACA,OAAA,GAA2B,EAAC,EACmD;AAC/E,EAAA,IAAI,CAAC,sBAAA,CAAuB,IAAI,CAAA,EAAG;AACjC,IAAA,OAAO,EAAE,OAAO,KAAA,EAAO,IAAA,EAAM,sBAAsB,OAAA,EAAS,CAAA,uBAAA,EAA0B,IAAI,CAAA,CAAA,EAAG;AAAA,EAC/F;AACA,EAAA,OAAO,OAAA,CAAQ,CAAA,EAAG,CAAA,EAAG,IAAA,EAAM,OAAO,CAAA;AACpC","file":"chunk-R6VCAOGH.js","sourcesContent":["import type { SanitizableDocumentType } from '../sanitize/index.js';\n\n/** Document types supported by compare, batch, and diff platform APIs. */\nexport type PlatformDocumentType = SanitizableDocumentType | 'pix' | 'brcode';\n\nexport const PLATFORM_DOCUMENT_TYPES = [\n 'cpf',\n 'cnpj',\n 'cep',\n 'placa',\n 'pis-pasep',\n 'telefone',\n 'cnh',\n 'renavam',\n 'titulo-eleitor',\n 'processo-judicial',\n 'rg',\n 'nfe-chave',\n 'boleto',\n 'cartao-credito',\n 'ean',\n 'inscricao-estadual',\n 'inscricao-estadual-produtor-rural',\n 'pix',\n 'brcode',\n] as const satisfies readonly PlatformDocumentType[];\n\nexport type PlatformOptions = {\n uf?: import('../types/validation-result.js').UfCode;\n};\n\nexport function isPlatformDocumentType(type: string): type is PlatformDocumentType {\n return (PLATFORM_DOCUMENT_TYPES as readonly string[]).includes(type);\n}\n","/**\n * Unified equality check — normalizes via strip/validate canonical (BR-COMPARE-001).\n * @see docs/OFFICIAL-SOURCES.md\n */\nimport { normalizeForPlatform } from '../platform/normalize.js';\nimport { isPlatformDocumentType } from '../platform/types.js';\nimport type { PlatformDocumentType, PlatformOptions } from '../platform/types.js';\n\nexport type CompareResult = {\n equal: boolean;\n};\n\nexport function compare(\n a: string,\n b: string,\n type: PlatformDocumentType,\n options: PlatformOptions = {},\n): CompareResult {\n const left = normalizeForPlatform(a, type, options);\n const right = normalizeForPlatform(b, type, options);\n return { equal: left === right };\n}\n\n/** Runtime guard for dynamic callers (non-exhaustive type string). */\nexport function compareRuntime(\n a: string,\n b: string,\n type: string,\n options: PlatformOptions = {},\n): CompareResult | { equal: false; code: 'UNSUPPORTED_FORMAT'; message: string } {\n if (!isPlatformDocumentType(type)) {\n return { equal: false, code: 'UNSUPPORTED_FORMAT', message: `Unknown document type: ${type}` };\n }\n return compare(a, b, type, options);\n}\n"]}
import { validateTelefone, TELEFONE_CELULAR_MASK_PATTERN, TELEFONE_FIXO_MASK_PATTERN } from './chunk-JVI4PL7M.js';
// src/core/telefone/mask.ts
function applyTelefoneMask(canonical, tipo) {
const pattern = tipo === "celular" ? TELEFONE_CELULAR_MASK_PATTERN : TELEFONE_FIXO_MASK_PATTERN;
const match = pattern.exec(canonical);
if (!match) {
throw new Error(`Telephone must have valid ${tipo} length to apply mask`);
}
return `(${match[1]}) ${match[2]}-${match[3]}`;
}
// src/format/telefone.ts
function formatTelefone(input) {
const result = validateTelefone(input);
if (!result.ok) {
return { ok: false, code: result.code, message: result.message };
}
return { ok: true, formatted: applyTelefoneMask(result.value, result.tipo) };
}
export { formatTelefone };
//# sourceMappingURL=chunk-TZW4N7QM.js.map
//# sourceMappingURL=chunk-TZW4N7QM.js.map
{"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-TZW4N7QM.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"]}
import { normalizeForPlatform } from './chunk-QBGJZLXQ.js';
// src/diff/index.ts
function diff(a, b, type, options = {}) {
const left = normalizeForPlatform(a, type, options);
const right = normalizeForPlatform(b, type, options);
if (left === right) {
return { changed: false, fields: [] };
}
const leftFields = splitFields(left, type);
const rightFields = splitFields(right, type);
const keys = /* @__PURE__ */ new Set([...Object.keys(leftFields), ...Object.keys(rightFields)]);
const fields = [];
for (const field of keys) {
const leftValue = leftFields[field];
const rightValue = rightFields[field];
if (leftValue !== rightValue) {
fields.push({ field, a: leftValue, b: rightValue });
}
}
return { changed: fields.length > 0, fields };
}
function splitFields(value, type) {
switch (type) {
case "cpf":
return {
base: value.slice(0, 9),
dv: value.slice(9, 11)
};
case "cnpj":
return {
base: value.slice(0, 12),
dv: value.slice(12, 14)
};
case "cep":
return {
prefix: value.slice(0, 5),
suffix: value.slice(5, 8)
};
case "telefone":
return { ddd: value.slice(0, 2), subscriber: value.slice(2) };
case "pis-pasep":
return {
base: value.slice(0, 10),
dv: value.slice(10, 11)
};
case "cnh":
return {
base: value.slice(0, 9),
dv1: value.slice(9, 10),
dv2: value.slice(10, 11)
};
case "renavam":
return {
base: value.slice(0, 10),
dv: value.slice(10, 11)
};
case "titulo-eleitor":
return {
sequential: value.slice(0, 8),
uf: value.slice(8, 10),
dv: value.slice(10, 12)
};
case "processo-judicial":
return {
sequencial: value.slice(0, 7),
checkDigits: value.slice(7, 9),
ano: value.slice(9, 13),
segmentoJustica: value.slice(13, 14),
tribunal: value.slice(14, 16),
origem: value.slice(16, 20)
};
case "nfe-chave":
return {
cUF: value.slice(0, 2),
aamm: value.slice(2, 6),
cnpj: value.slice(6, 20),
mod: value.slice(20, 22),
serie: value.slice(22, 25),
nNF: value.slice(25, 34),
tpEmis: value.slice(34, 35),
cNF: value.slice(35, 43),
cDV: value.slice(43, 44)
};
case "placa":
return { value };
case "boleto":
case "cartao-credito":
case "ean":
case "inscricao-estadual":
case "inscricao-estadual-produtor-rural":
case "rg":
case "pix":
case "brcode":
return { value };
default: {
return { value };
}
}
}
export { diff };
//# sourceMappingURL=chunk-URP7YUV5.js.map
//# sourceMappingURL=chunk-URP7YUV5.js.map
{"version":3,"sources":["../src/diff/index.ts"],"names":[],"mappings":"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","file":"chunk-URP7YUV5.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"]}
import { validateProcessoJudicial, PROCESSO_JUDICIAL_MASKED_PATTERN, PROCESSO_JUDICIAL_LENGTH } from './chunk-A4QBLVVO.js';
import { validateTelefone } from './chunk-JVI4PL7M.js';
import { validateTituloEleitor } from './chunk-6WBUKUHD.js';
import { validatePlaca, PLACA_LENGTH } from './chunk-UG2YICWH.js';
import { validateNfeChave, NFE_CHAVE_LENGTH } from './chunk-XRT44FMY.js';
import { validatePisPasep } from './chunk-HORKZQIH.js';
import { validateInscricaoEstadual } from './chunk-OHBSYBG7.js';
import { isSpRuralIeInput, validateIeProdutorRural } from './chunk-FGOPYU2L.js';
import { validateEan, EAN_8_LENGTH, EAN_13_LENGTH } from './chunk-OFAU4VTU.js';
import { validateCep } from './chunk-C4E2AE2A.js';
import { validateCnh } from './chunk-JZOS2MO7.js';
import { validateBoleto } from './chunk-JOBIJQGE.js';
import { validateArrecadacao } from './chunk-UB2ZUHQZ.js';
import { detectBoletoInputKind } from './chunk-7U64V3YD.js';
import { validateBrCode } from './chunk-L3WG36Y4.js';
import { validatePixKey } from './chunk-7XVCTDJE.js';
import { validateCpf } from './chunk-DQQNXXGO.js';
import { validateCnpj } from './chunk-MGFDTECS.js';
import { CNPJ_LENGTH } from './chunk-LLJSXMO2.js';
import { validateCartaoCredito, CARTAO_PAN_MIN_LENGTH, CARTAO_PAN_MAX_LENGTH } from './chunk-PU5TKJZI.js';
// src/detect/helpers.ts
function stripDigits(input) {
return input.replace(/\D/g, "");
}
function stripAlnumUpper(input) {
return input.replace(/[^A-Za-z0-9]/g, "").toUpperCase();
}
function hasLetters(input) {
return /[A-Za-z]/.test(input);
}
function looksLikeBrCode(input) {
const trimmed = input.trim();
return trimmed.startsWith("00020") && trimmed.length > 20;
}
function looksLikeBoleto(input) {
const kind = detectBoletoInputKind(input);
return kind === "linha-digitavel" || kind === "codigo-barras";
}
function isBoletoArrecadacao(input) {
return detectBoletoInputKind(input) === "arrecadacao";
}
function looksLikeNfeChave(input) {
const digits = stripDigits(input);
return digits.length === NFE_CHAVE_LENGTH && /^\d+$/.test(digits);
}
function looksLikeCnpjNumeric(input) {
const digits = stripDigits(input);
return digits.length === CNPJ_LENGTH && /^\d+$/.test(digits);
}
function looksLikeCnpjAlphanumeric(input) {
const stripped = stripAlnumUpper(input);
return stripped.length === CNPJ_LENGTH && hasLetters(input);
}
function looksLikeElevenDigits(input) {
const digits = stripDigits(input);
return digits.length === 11 && /^\d+$/.test(digits);
}
function looksLikeTituloEleitor(input) {
const digits = stripDigits(input);
return digits.length === 12 && /^\d+$/.test(digits);
}
function looksLikeCep(input) {
const digits = stripDigits(input);
return digits.length === 8 && /^\d+$/.test(digits);
}
function looksLikePlaca(input) {
const stripped = stripAlnumUpper(input);
return stripped.length === PLACA_LENGTH && /^[A-Z0-9]+$/.test(stripped);
}
function looksLikeCartao(input) {
const withoutMask = input.replace(/[\s-]/g, "");
if (/[^0-9]/.test(withoutMask)) {
return false;
}
const digits = stripDigits(input);
return digits.length >= CARTAO_PAN_MIN_LENGTH && digits.length <= CARTAO_PAN_MAX_LENGTH;
}
function looksLikeEan(input) {
const withoutMask = input.replace(/[\s-]/g, "");
if (/[^0-9]/.test(withoutMask)) {
return false;
}
const digits = stripDigits(input);
return digits.length === EAN_8_LENGTH || digits.length === EAN_13_LENGTH;
}
function looksLikeIe(input, uf) {
if (!uf) {
return false;
}
if (uf === "SP" && isSpRuralIeInput(input)) {
return true;
}
const digits = stripDigits(input);
return digits.length >= 8 && digits.length <= 14;
}
function looksLikePix(input) {
const trimmed = input.trim();
if (trimmed.includes("@")) {
return true;
}
if (/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(trimmed)) {
return true;
}
if (/^\+?\d/.test(trimmed)) {
const digits = stripDigits(trimmed);
return digits.length === 11 || digits.length === 14;
}
return false;
}
function looksLikeTelefone(input) {
const digits = stripDigits(input);
return digits.length >= 10 && digits.length <= 13;
}
function looksLikeProcessoJudicial(input) {
const trimmed = input.trim();
if (PROCESSO_JUDICIAL_MASKED_PATTERN.test(trimmed)) {
return true;
}
const digits = stripDigits(trimmed);
return digits.length === PROCESSO_JUDICIAL_LENGTH && /^\d+$/.test(digits);
}
// src/detect/index.ts
function success(type, value, format, meta) {
return { type, ok: true, value, ...format ? { format } : {}, ...meta ? { meta } : {} };
}
function tryValidators(attempts) {
for (const attempt of attempts) {
const result = attempt();
if (result) {
return result;
}
}
return null;
}
var CANDIDATES = [
{
canTry: (raw) => isBoletoArrecadacao(raw),
detect: (raw) => {
const result = validateArrecadacao(raw);
if (!result.ok) {
return null;
}
return success("boleto", result.value, "arrecadacao", {
inputKind: result.inputKind,
segment: result.segment,
valueType: result.valueType
});
}
},
{
canTry: (raw) => looksLikeBoleto(raw) && !isBoletoArrecadacao(raw),
detect: (raw) => {
const result = validateBoleto(raw);
if (!result.ok || result.format === "arrecadacao") {
return null;
}
return success("boleto", result.value, result.format, {
inputKind: result.inputKind,
situacao: result.situacao
});
}
},
{
canTry: (raw) => looksLikeNfeChave(raw),
detect: (raw) => {
const result = validateNfeChave(raw);
if (!result.ok) {
return null;
}
return success("nfe-chave", result.value, result.format, {
parsed: result.parsed,
uf: result.uf
});
}
},
{
canTry: (raw) => looksLikeBrCode(raw),
detect: (raw) => {
const result = validateBrCode(raw);
if (!result.ok) {
return null;
}
return success("brcode", result.value, result.format, {
merchantName: result.merchantName,
merchantCity: result.merchantCity,
pixKey: result.pixKey,
pixKeyType: result.pixKeyType
});
}
},
{
canTry: (raw) => looksLikeCnpjAlphanumeric(raw),
detect: (raw) => {
const result = validateCnpj(raw);
if (!result.ok) {
return null;
}
return success("cnpj", result.value, result.format);
}
},
{
canTry: (raw) => looksLikeCnpjNumeric(raw),
detect: (raw) => {
const result = validateCnpj(raw);
if (!result.ok) {
return null;
}
return success("cnpj", result.value, result.format);
}
},
{
canTry: (raw) => looksLikeElevenDigits(raw),
detect: (raw) => tryValidators([
() => {
const result = validateCpf(raw);
return result.ok ? success("cpf", result.value, result.format) : null;
},
() => {
const result = validateCnh(raw);
return result.ok ? success("cnh", result.value, result.format) : null;
},
() => {
const result = validatePisPasep(raw);
return result.ok ? success("pis-pasep", result.value, result.format) : null;
}
])
},
{
canTry: (raw) => looksLikeProcessoJudicial(raw),
detect: (raw) => {
const result = validateProcessoJudicial(raw);
if (!result.ok) {
return null;
}
return success("processo-judicial", result.value, result.format, {
segments: result.segments
});
}
},
{
canTry: (raw) => looksLikeTituloEleitor(raw),
detect: (raw) => {
const result = validateTituloEleitor(raw);
if (!result.ok) {
return null;
}
return success("titulo-eleitor", result.value, result.format, {
ufCode: result.ufCode,
...result.uf ? { uf: result.uf } : {},
...result.exterior ? { exterior: result.exterior } : {}
});
}
},
{
canTry: (raw) => looksLikeCep(raw),
detect: (raw) => {
const result = validateCep(raw);
if (!result.ok) {
return null;
}
return success("cep", result.value, result.format);
}
},
{
canTry: (raw) => looksLikePlaca(raw),
detect: (raw) => {
const result = validatePlaca(raw);
if (!result.ok) {
return null;
}
return success("placa", result.value, result.format);
}
},
{
canTry: (raw) => looksLikePix(raw),
detect: (raw) => {
const result = validatePixKey(raw);
if (!result.ok) {
return null;
}
return success("pix", result.value, result.format, { keyType: result.keyType });
}
},
{
canTry: (raw) => looksLikeTelefone(raw),
detect: (raw) => {
const result = validateTelefone(raw);
if (!result.ok) {
return null;
}
return success("telefone", result.value, result.format, { tipo: result.tipo });
}
},
{
canTry: (raw) => looksLikeEan(raw),
detect: (raw) => {
const result = validateEan(raw);
if (!result.ok) {
return null;
}
return success("ean", result.value, result.format);
}
},
{
canTry: (raw) => looksLikeCartao(raw),
detect: (raw) => {
const result = validateCartaoCredito(raw);
if (!result.ok) {
return null;
}
return success("cartao-credito", result.value, result.format, { brand: result.brand });
}
},
{
canTry: (raw, options) => looksLikeIe(raw, options.uf),
detect: (raw, options) => {
const uf = options.uf;
if (uf === "SP" && isSpRuralIeInput(raw)) {
const result2 = validateIeProdutorRural(uf, raw);
if (!result2.ok) {
return null;
}
return success("inscricao-estadual-produtor-rural", result2.value, result2.format, { uf: result2.uf });
}
const result = validateInscricaoEstadual(raw, { uf });
if (!result.ok) {
return null;
}
return success("inscricao-estadual", result.value, result.format, { uf: result.uf });
}
}
];
function detect(raw, options = {}) {
const trimmed = raw.trim();
if (trimmed.length === 0) {
return {
type: "unknown",
ok: false,
code: "EMPTY_INPUT",
message: "Input is empty"
};
}
for (const candidate of CANDIDATES) {
if (!candidate.canTry(trimmed, options)) {
continue;
}
const result = candidate.detect(trimmed, options);
if (result?.ok) {
return result;
}
}
return {
type: "unknown",
ok: false,
code: "UNSUPPORTED_FORMAT",
message: options.uf ? "No supported document type matched the input" : "No supported document type matched the input; provide options.uf for Inscri\xE7\xE3o Estadual detection"
};
}
export { detect };
//# sourceMappingURL=chunk-Y5JCK4YH.js.map
//# sourceMappingURL=chunk-Y5JCK4YH.js.map
{"version":3,"sources":["../src/detect/helpers.ts","../src/detect/index.ts"],"names":["result"],"mappings":"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","file":"chunk-Y5JCK4YH.js","sourcesContent":["import { BOLETO_CODIGO_BARRAS_LENGTH, BOLETO_LINHA_LENGTH } from '../core/boleto/constants.js';\nimport { CARTAO_PAN_MAX_LENGTH, CARTAO_PAN_MIN_LENGTH } from '../core/cartao-credito/constants.js';\nimport { EAN_13_LENGTH, EAN_8_LENGTH } from '../core/ean/constants.js';\nimport { CNPJ_LENGTH } from '../core/cnpj/constants.js';\nimport { NFE_CHAVE_LENGTH } from '../core/nfe-chave/constants.js';\nimport { PROCESSO_JUDICIAL_LENGTH, PROCESSO_JUDICIAL_MASKED_PATTERN } from '../core/processo-judicial/constants.js';\nimport { PLACA_LENGTH } from '../core/placa/constants.js';\nimport { detectBoletoInputKind } from '../core/boleto/detect.js';\nimport { isSpRuralIeInput } from '../core/inscricao-estadual/sp-rural.js';\n\nexport function stripDigits(input: string): string {\n return input.replace(/\\D/g, '');\n}\n\nexport function stripAlnumUpper(input: string): string {\n return input.replace(/[^A-Za-z0-9]/g, '').toUpperCase();\n}\n\nexport function hasLetters(input: string): boolean {\n return /[A-Za-z]/.test(input);\n}\n\nexport function looksLikeBrCode(input: string): boolean {\n const trimmed = input.trim();\n return trimmed.startsWith('00020') && trimmed.length > 20;\n}\n\nexport function looksLikeBoleto(input: string): boolean {\n const kind = detectBoletoInputKind(input);\n return kind === 'linha-digitavel' || kind === 'codigo-barras';\n}\n\nexport function isBoletoArrecadacao(input: string): boolean {\n return detectBoletoInputKind(input) === 'arrecadacao';\n}\n\nexport function looksLikeNfeChave(input: string): boolean {\n const digits = stripDigits(input);\n return digits.length === NFE_CHAVE_LENGTH && /^\\d+$/.test(digits);\n}\n\nexport function looksLikeCnpjNumeric(input: string): boolean {\n const digits = stripDigits(input);\n return digits.length === CNPJ_LENGTH && /^\\d+$/.test(digits);\n}\n\nexport function looksLikeCnpjAlphanumeric(input: string): boolean {\n const stripped = stripAlnumUpper(input);\n return stripped.length === CNPJ_LENGTH && hasLetters(input);\n}\n\nexport function looksLikeElevenDigits(input: string): boolean {\n const digits = stripDigits(input);\n return digits.length === 11 && /^\\d+$/.test(digits);\n}\n\nexport function looksLikeTituloEleitor(input: string): boolean {\n const digits = stripDigits(input);\n return digits.length === 12 && /^\\d+$/.test(digits);\n}\n\nexport function looksLikeCep(input: string): boolean {\n const digits = stripDigits(input);\n return digits.length === 8 && /^\\d+$/.test(digits);\n}\n\nexport function looksLikePlaca(input: string): boolean {\n const stripped = stripAlnumUpper(input);\n return stripped.length === PLACA_LENGTH && /^[A-Z0-9]+$/.test(stripped);\n}\n\nexport function looksLikeCartao(input: string): boolean {\n const withoutMask = input.replace(/[\\s-]/g, '');\n if (/[^0-9]/.test(withoutMask)) {\n return false;\n }\n const digits = stripDigits(input);\n return digits.length >= CARTAO_PAN_MIN_LENGTH && digits.length <= CARTAO_PAN_MAX_LENGTH;\n}\n\nexport function looksLikeEan(input: string): boolean {\n const withoutMask = input.replace(/[\\s-]/g, '');\n if (/[^0-9]/.test(withoutMask)) {\n return false;\n }\n const digits = stripDigits(input);\n return digits.length === EAN_8_LENGTH || digits.length === EAN_13_LENGTH;\n}\n\nexport function looksLikeIe(input: string, uf?: string): boolean {\n if (!uf) {\n return false;\n }\n if (uf === 'SP' && isSpRuralIeInput(input)) {\n return true;\n }\n const digits = stripDigits(input);\n return digits.length >= 8 && digits.length <= 14;\n}\n\nexport function looksLikePix(input: string): boolean {\n const trimmed = input.trim();\n if (trimmed.includes('@')) {\n return true;\n }\n if (/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(trimmed)) {\n return true;\n }\n if (/^\\+?\\d/.test(trimmed)) {\n const digits = stripDigits(trimmed);\n return digits.length === 11 || digits.length === 14;\n }\n return false;\n}\n\nexport function looksLikeTelefone(input: string): boolean {\n const digits = stripDigits(input);\n return digits.length >= 10 && digits.length <= 13;\n}\n\nexport function looksLikeProcessoJudicial(input: string): boolean {\n const trimmed = input.trim();\n if (PROCESSO_JUDICIAL_MASKED_PATTERN.test(trimmed)) {\n return true;\n }\n const digits = stripDigits(trimmed);\n return digits.length === PROCESSO_JUDICIAL_LENGTH && /^\\d+$/.test(digits);\n}\n\nexport {\n BOLETO_CODIGO_BARRAS_LENGTH,\n BOLETO_LINHA_LENGTH,\n};\n","/**\n * Unified document type detection — delegates to existing validators (BR-DETECT-001).\n * @see docs/VALIDATION-RULES.md\n */\nimport { validateArrecadacao } from '../core/boleto/arrecadacao.js';\nimport { validateBoleto } from '../core/boleto/index.js';\nimport { validateBrCode } from '../core/brcode/index.js';\nimport { validateCartaoCredito } from '../core/cartao-credito/index.js';\nimport { validateEan } from '../core/ean/index.js';\nimport { validateCep } from '../core/cep/index.js';\nimport { validateCnh } from '../core/cnh/index.js';\nimport { validateCnpj } from '../core/cnpj/index.js';\nimport { validateCpf } from '../core/cpf/index.js';\nimport { validateInscricaoEstadual } from '../core/inscricao-estadual/index.js';\nimport { validateIeProdutorRural } from '../core/inscricao-estadual/validate-produtor-rural.js';\nimport { isSpRuralIeInput } from '../core/inscricao-estadual/sp-rural.js';\nimport { validateNfeChave } from '../core/nfe-chave/index.js';\nimport { validatePisPasep } from '../core/pis-pasep/index.js';\nimport { validatePlaca } from '../core/placa/index.js';\nimport { validatePixKey } from '../core/pix/index.js';\nimport { validateTelefone } from '../core/telefone/index.js';\nimport { validateProcessoJudicial } from '../core/processo-judicial/index.js';\nimport { validateTituloEleitor } from '../core/titulo-eleitor/index.js';\nimport {\n isBoletoArrecadacao,\n looksLikeBoleto,\n looksLikeBrCode,\n looksLikeCartao,\n looksLikeCep,\n looksLikeEan,\n looksLikeCnpjAlphanumeric,\n looksLikeCnpjNumeric,\n looksLikeElevenDigits,\n looksLikeIe,\n looksLikeNfeChave,\n looksLikePix,\n looksLikePlaca,\n looksLikeTelefone,\n looksLikeProcessoJudicial,\n looksLikeTituloEleitor,\n} from './helpers.js';\nimport type { DocumentFormat, UfCode, ValidationErrorCode } from '../types/validation-result.js';\n\nexport type DetectableDocumentType =\n | 'cpf'\n | 'cnpj'\n | 'cep'\n | 'placa'\n | 'pis-pasep'\n | 'pix'\n | 'telefone'\n | 'boleto'\n | 'cartao-credito'\n | 'ean'\n | 'cnh'\n | 'renavam'\n | 'nfe-chave'\n | 'titulo-eleitor'\n | 'processo-judicial'\n | 'inscricao-estadual'\n | 'inscricao-estadual-produtor-rural'\n | 'brcode'\n | 'unknown';\n\nexport type DetectOptions = {\n uf?: UfCode;\n};\n\nexport type DetectSuccess = {\n type: DetectableDocumentType;\n ok: true;\n value: string;\n format?: DocumentFormat;\n meta?: Record<string, unknown>;\n};\n\nexport type DetectFailure = {\n type: DetectableDocumentType;\n ok: false;\n code: ValidationErrorCode;\n message: string;\n};\n\nexport type DetectResult = DetectSuccess | DetectFailure;\n\ntype Candidate = {\n canTry: (raw: string, options: DetectOptions) => boolean;\n detect: (raw: string, options: DetectOptions) => DetectResult | null;\n};\n\n/** @internal Test hook for success result branches. */\nexport function buildDetectSuccess(\n type: DetectableDocumentType,\n value: string,\n format?: DocumentFormat,\n meta?: Record<string, unknown>,\n): DetectResult {\n return success(type, value, format, meta);\n}\n\nfunction success(\n type: DetectableDocumentType,\n value: string,\n format?: DocumentFormat,\n meta?: Record<string, unknown>,\n): DetectResult {\n return { type, ok: true, value, ...(format ? { format } : {}), ...(meta ? { meta } : {}) };\n}\n\nfunction tryValidators(attempts: Array<() => DetectResult | null>): DetectResult | null {\n for (const attempt of attempts) {\n const result = attempt();\n if (result) {\n return result;\n }\n }\n return null;\n}\n\nconst CANDIDATES: Candidate[] = [\n {\n canTry: (raw) => isBoletoArrecadacao(raw),\n detect: (raw) => {\n const result = validateArrecadacao(raw);\n if (!result.ok) {\n return null;\n }\n return success('boleto', result.value, 'arrecadacao', {\n inputKind: result.inputKind,\n segment: result.segment,\n valueType: result.valueType,\n });\n },\n },\n {\n canTry: (raw) => looksLikeBoleto(raw) && !isBoletoArrecadacao(raw),\n detect: (raw) => {\n const result = validateBoleto(raw);\n if (!result.ok || result.format === 'arrecadacao') {\n return null;\n }\n return success('boleto', result.value, result.format, {\n inputKind: result.inputKind,\n situacao: result.situacao,\n });\n },\n },\n {\n canTry: (raw) => looksLikeNfeChave(raw),\n detect: (raw) => {\n const result = validateNfeChave(raw);\n if (!result.ok) {\n return null;\n }\n return success('nfe-chave', result.value, result.format, {\n parsed: result.parsed,\n uf: result.uf,\n });\n },\n },\n {\n canTry: (raw) => looksLikeBrCode(raw),\n detect: (raw) => {\n const result = validateBrCode(raw);\n if (!result.ok) {\n return null;\n }\n return success('brcode', result.value, result.format, {\n merchantName: result.merchantName,\n merchantCity: result.merchantCity,\n pixKey: result.pixKey,\n pixKeyType: result.pixKeyType,\n });\n },\n },\n {\n canTry: (raw) => looksLikeCnpjAlphanumeric(raw),\n detect: (raw) => {\n const result = validateCnpj(raw);\n if (!result.ok) {\n return null;\n }\n return success('cnpj', result.value, result.format);\n },\n },\n {\n canTry: (raw) => looksLikeCnpjNumeric(raw),\n detect: (raw) => {\n const result = validateCnpj(raw);\n if (!result.ok) {\n return null;\n }\n return success('cnpj', result.value, result.format);\n },\n },\n {\n canTry: (raw) => looksLikeElevenDigits(raw),\n detect: (raw) =>\n tryValidators([\n () => {\n const result = validateCpf(raw);\n return result.ok ? success('cpf', result.value, result.format) : null;\n },\n () => {\n const result = validateCnh(raw);\n return result.ok ? success('cnh', result.value, result.format) : null;\n },\n () => {\n const result = validatePisPasep(raw);\n return result.ok ? success('pis-pasep', result.value, result.format) : null;\n },\n ]),\n },\n {\n canTry: (raw) => looksLikeProcessoJudicial(raw),\n detect: (raw) => {\n const result = validateProcessoJudicial(raw);\n if (!result.ok) {\n return null;\n }\n return success('processo-judicial', result.value, result.format, {\n segments: result.segments,\n });\n },\n },\n {\n canTry: (raw) => looksLikeTituloEleitor(raw),\n detect: (raw) => {\n const result = validateTituloEleitor(raw);\n if (!result.ok) {\n return null;\n }\n return success('titulo-eleitor', result.value, result.format, {\n ufCode: result.ufCode,\n ...(result.uf ? { uf: result.uf } : {}),\n ...(result.exterior ? { exterior: result.exterior } : {}),\n });\n },\n },\n {\n canTry: (raw) => looksLikeCep(raw),\n detect: (raw) => {\n const result = validateCep(raw);\n if (!result.ok) {\n return null;\n }\n return success('cep', result.value, result.format);\n },\n },\n {\n canTry: (raw) => looksLikePlaca(raw),\n detect: (raw) => {\n const result = validatePlaca(raw);\n if (!result.ok) {\n return null;\n }\n return success('placa', result.value, result.format);\n },\n },\n {\n canTry: (raw) => looksLikePix(raw),\n detect: (raw) => {\n const result = validatePixKey(raw);\n if (!result.ok) {\n return null;\n }\n return success('pix', result.value, result.format, { keyType: result.keyType });\n },\n },\n {\n canTry: (raw) => looksLikeTelefone(raw),\n detect: (raw) => {\n const result = validateTelefone(raw);\n if (!result.ok) {\n return null;\n }\n return success('telefone', result.value, result.format, { tipo: result.tipo });\n },\n },\n {\n canTry: (raw) => looksLikeEan(raw),\n detect: (raw) => {\n const result = validateEan(raw);\n if (!result.ok) {\n return null;\n }\n return success('ean', result.value, result.format);\n },\n },\n {\n canTry: (raw) => looksLikeCartao(raw),\n detect: (raw) => {\n const result = validateCartaoCredito(raw);\n if (!result.ok) {\n return null;\n }\n return success('cartao-credito', result.value, result.format, { brand: result.brand });\n },\n },\n {\n canTry: (raw, options) => looksLikeIe(raw, options.uf),\n detect: (raw, options) => {\n const uf = options.uf as UfCode;\n if (uf === 'SP' && isSpRuralIeInput(raw)) {\n const result = validateIeProdutorRural(uf, raw);\n if (!result.ok) {\n return null;\n }\n return success('inscricao-estadual-produtor-rural', result.value, result.format, { uf: result.uf });\n }\n const result = validateInscricaoEstadual(raw, { uf });\n if (!result.ok) {\n return null;\n }\n return success('inscricao-estadual', result.value, result.format, { uf: result.uf });\n },\n },\n];\n\nexport function detect(raw: string, options: DetectOptions = {}): DetectResult {\n const trimmed = raw.trim();\n if (trimmed.length === 0) {\n return {\n type: 'unknown',\n ok: false,\n code: 'EMPTY_INPUT',\n message: 'Input is empty',\n };\n }\n\n for (const candidate of CANDIDATES) {\n if (!candidate.canTry(trimmed, options)) {\n continue;\n }\n const result = candidate.detect(trimmed, options);\n if (result?.ok) {\n return result;\n }\n }\n\n return {\n type: 'unknown',\n ok: false,\n code: 'UNSUPPORTED_FORMAT',\n message: options.uf\n ? 'No supported document type matched the input'\n : 'No supported document type matched the input; provide options.uf for Inscrição Estadual detection',\n };\n}\n"]}
// src/transparencia-snapshots/data/metadata.json
var metadata_default = {
id: "transparencia-snapshots",
nome: "Portal da Transpar\xEAncia endpoint registry",
fonte: "CGU Portal da Transpar\xEAncia \u2014 Swagger audit (query endpoints; no bulk embed in v1)",
endpoints: [
"https://api.portaldatransparencia.gov.br/swagger-ui/index.html",
"https://api.portaldatransparencia.gov.br/v3/api-docs",
"https://portaldatransparencia.gov.br/"
],
capturadoEm: "2026-07-01",
atualizadoEm: "2026-07-01T13:38:02.222Z",
contagens: {
endpoints: 8,
queryAdapter: 7
},
alteracoes: {
adicionados: 0,
removidos: 0,
alterados: 0,
comparadoCom: "2026-07-01"
},
verificacao: {
agendamento: "diario",
workflow: "data-refresh-bot.yml",
ultimaExecucao: "2026-07-01T13:38:02.222Z"
},
documentacao: "docs/OFFICIAL-SOURCES.md#portal-transparencia"
};
export { metadata_default };
//# sourceMappingURL=chunk-YB6Z2SSG.js.map
//# sourceMappingURL=chunk-YB6Z2SSG.js.map
{"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-YB6Z2SSG.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-07-01\",\n \"atualizadoEm\": \"2026-07-01T13:38:02.222Z\",\n \"contagens\": {\n \"endpoints\": 8,\n \"queryAdapter\": 7\n },\n \"alteracoes\": {\n \"adicionados\": 0,\n \"removidos\": 0,\n \"alterados\": 0,\n \"comparadoCom\": \"2026-07-01\"\n },\n \"verificacao\": {\n \"agendamento\": \"diario\",\n \"workflow\": \"data-refresh-bot.yml\",\n \"ultimaExecucao\": \"2026-07-01T13:38:02.222Z\"\n },\n \"documentacao\": \"docs/OFFICIAL-SOURCES.md#portal-transparencia\"\n}\n"]}
import { validateRg } from './chunk-6F3A3NT4.js';
import { validateRenavam } from './chunk-4NS47CJG.js';
import { validateProcessoJudicial } from './chunk-A4QBLVVO.js';
import { validateTelefone } from './chunk-JVI4PL7M.js';
import { validateTituloEleitor } from './chunk-6WBUKUHD.js';
import { validatePlaca } from './chunk-UG2YICWH.js';
import { validateNfeChave } from './chunk-XRT44FMY.js';
import { validatePisPasep } from './chunk-HORKZQIH.js';
import { validateInscricaoEstadual } from './chunk-OHBSYBG7.js';
import { validateIeSpRural } from './chunk-FGOPYU2L.js';
import { validateEan } from './chunk-OFAU4VTU.js';
import { validateCep } from './chunk-C4E2AE2A.js';
import { validateCnh } from './chunk-JZOS2MO7.js';
import { validateBoleto } from './chunk-JOBIJQGE.js';
import { validateBrCode } from './chunk-L3WG36Y4.js';
import { validatePixKey } from './chunk-7XVCTDJE.js';
import { validateCpf } from './chunk-DQQNXXGO.js';
import { validateCnpj } from './chunk-MGFDTECS.js';
import { validateCartaoCredito } from './chunk-PU5TKJZI.js';
// src/platform/validate-dispatch.ts
function validateForPlatform(input, type, options = {}) {
if (type === "inscricao-estadual" && !options.uf) {
return {
ok: false,
code: "UNSUPPORTED_FORMAT",
message: "UF is required for inscricao-estadual validation"
};
}
if (type === "rg" && !options.uf) {
return {
ok: false,
code: "UNSUPPORTED_FORMAT",
message: "UF is required for RG validation"
};
}
switch (type) {
case "cpf": {
const result = validateCpf(input);
return result.ok ? { ok: true, value: result.value } : result;
}
case "cnpj": {
const result = validateCnpj(input);
return result.ok ? { ok: true, value: result.value } : result;
}
case "cep": {
const result = validateCep(input);
return result.ok ? { ok: true, value: result.value } : result;
}
case "placa": {
const result = validatePlaca(input);
return result.ok ? { ok: true, value: result.value } : result;
}
case "pis-pasep": {
const result = validatePisPasep(input);
return result.ok ? { ok: true, value: result.value } : result;
}
case "telefone": {
const result = validateTelefone(input);
return result.ok ? { ok: true, value: result.value } : result;
}
case "cnh": {
const result = validateCnh(input);
return result.ok ? { ok: true, value: result.value } : result;
}
case "renavam": {
const result = validateRenavam(input);
return result.ok ? { ok: true, value: result.value } : result;
}
case "titulo-eleitor": {
const result = validateTituloEleitor(input);
return result.ok ? { ok: true, value: result.value } : result;
}
case "processo-judicial": {
const result = validateProcessoJudicial(input);
return result.ok ? { ok: true, value: result.value } : result;
}
case "rg": {
const result = validateRg(input, { uf: options.uf });
return result.ok ? { ok: true, value: result.value } : result;
}
case "nfe-chave": {
const result = validateNfeChave(input);
return result.ok ? { ok: true, value: result.value } : result;
}
case "boleto": {
const result = validateBoleto(input);
return result.ok ? { ok: true, value: result.value } : result;
}
case "cartao-credito": {
const result = validateCartaoCredito(input);
return result.ok ? { ok: true, value: result.value } : result;
}
case "ean": {
const result = validateEan(input);
return result.ok ? { ok: true, value: result.value } : result;
}
case "inscricao-estadual": {
const result = validateInscricaoEstadual(input, { uf: options.uf });
return result.ok ? { ok: true, value: result.value } : result;
}
case "inscricao-estadual-produtor-rural": {
const result = validateIeSpRural(input);
return result.ok ? { ok: true, value: result.value } : result;
}
case "pix": {
const result = validatePixKey(input);
return result.ok ? { ok: true, value: result.value } : result;
}
case "brcode": {
const result = validateBrCode(input);
return result.ok ? { ok: true, value: result.value } : result;
}
default: {
const _exhaustive = type;
return {
ok: false,
code: "UNSUPPORTED_FORMAT",
message: `Unsupported type: ${String(_exhaustive)}`
};
}
}
}
// src/batch/parse-csv.ts
function parseCsvRow(line, delimiter) {
const fields = [];
let current = "";
let inQuotes = false;
for (let index = 0; index < line.length; index += 1) {
const char = line[index];
if (char === '"') {
if (inQuotes && line[index + 1] === '"') {
current += '"';
index += 1;
} else {
inQuotes = !inQuotes;
}
continue;
}
if (char === delimiter && !inQuotes) {
fields.push(current);
current = "";
continue;
}
current += char;
}
fields.push(current);
return fields;
}
function resolveColumnIndex(col, header) {
const trimmed = col.trim();
if (/^\d+$/.test(trimmed)) {
const index2 = Number.parseInt(trimmed, 10);
if (index2 >= 0 && index2 < header.length) {
return index2;
}
return null;
}
const index = header.findIndex((field) => field.trim().toLowerCase() === trimmed.toLowerCase());
return index >= 0 ? index : null;
}
function parseBatchCsv(raw, options) {
const delimiter = options.delimiter ?? ",";
const lines = raw.split(/\r?\n/).filter((line) => line.trim().length > 0);
if (lines.length === 0) {
return { ok: false, message: "CSV input is empty" };
}
const skipHeader = options.skipHeader ?? true;
let colIdx;
let startIdx = 0;
if (skipHeader) {
const header = parseCsvRow(lines[0], delimiter);
const resolved = resolveColumnIndex(options.col, header);
if (resolved === null) {
return {
ok: false,
message: `Column "${options.col}" not found in header: [${header.join(", ")}]`
};
}
colIdx = resolved;
startIdx = 1;
} else {
const asIndex = Number.parseInt(options.col.trim(), 10);
if (!/^\d+$/.test(options.col.trim())) {
return {
ok: false,
message: `Column "${options.col}" requires --skip-header when using header name`
};
}
colIdx = asIndex;
}
const values = [];
for (let rowIndex = startIdx; rowIndex < lines.length; rowIndex += 1) {
const row = parseCsvRow(lines[rowIndex], delimiter);
const field = row.at(colIdx);
if (field === void 0) {
continue;
}
const cell = field.trim();
if (cell.length > 0) {
values.push(cell);
}
}
if (values.length === 0) {
return { ok: false, message: "No values found in CSV column" };
}
return { ok: true, values };
}
// src/batch/index.ts
function batch(inputs, type, options = {}) {
const valid = [];
const invalid = [];
inputs.forEach((input, index) => {
const result = validateForPlatform(input, type, options);
if (result.ok) {
valid.push({ index, input, value: result.value });
} else {
invalid.push({ index, input, code: result.code, message: result.message });
}
});
return {
valid,
invalid,
summary: {
total: inputs.length,
valid: valid.length,
invalid: invalid.length
}
};
}
export { batch, parseBatchCsv };
//# sourceMappingURL=chunk-YWVBXQSZ.js.map
//# sourceMappingURL=chunk-YWVBXQSZ.js.map
{"version":3,"sources":["../src/platform/validate-dispatch.ts","../src/batch/parse-csv.ts","../src/batch/index.ts"],"names":["index"],"mappings":"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","file":"chunk-YWVBXQSZ.js","sourcesContent":["import { validateBrCode } from '../core/brcode/index.js';\nimport { validateBoleto } from '../core/boleto/index.js';\nimport { validateCartaoCredito } from '../core/cartao-credito/index.js';\nimport { validateEan } from '../core/ean/index.js';\nimport { validateCep } from '../core/cep/index.js';\nimport { validateCnh } from '../core/cnh/index.js';\nimport { validateCnpj } from '../core/cnpj/index.js';\nimport { validateCpf } from '../core/cpf/index.js';\nimport { validateInscricaoEstadual } from '../core/inscricao-estadual/index.js';\nimport { validateIeSpRural } from '../core/inscricao-estadual/sp-rural.js';\nimport { validateNfeChave } from '../core/nfe-chave/index.js';\nimport { validatePisPasep } from '../core/pis-pasep/index.js';\nimport { validatePlaca } from '../core/placa/index.js';\nimport { validatePixKey } from '../core/pix/index.js';\nimport { validateRenavam } from '../core/renavam/index.js';\nimport { validateTelefone } from '../core/telefone/index.js';\nimport { validateProcessoJudicial } from '../core/processo-judicial/index.js';\nimport { validateRg } from '../core/rg/index.js';\nimport type { RgUfCode } from '../types/validation-result.js';\nimport { validateTituloEleitor } from '../core/titulo-eleitor/index.js';\nimport type { UfCode, ValidationErrorCode } from '../types/validation-result.js';\nimport type { PlatformDocumentType, PlatformOptions } from './types.js';\n\nexport type ValidateDispatchSuccess = { ok: true; value: string };\nexport type ValidateDispatchFailure = {\n ok: false;\n code: ValidationErrorCode;\n message: string;\n};\nexport type ValidateDispatchResult = ValidateDispatchSuccess | ValidateDispatchFailure;\n\nexport function validateForPlatform(\n input: string,\n type: PlatformDocumentType,\n options: PlatformOptions = {},\n): ValidateDispatchResult {\n if (type === 'inscricao-estadual' && !options.uf) {\n return {\n ok: false,\n code: 'UNSUPPORTED_FORMAT',\n message: 'UF is required for inscricao-estadual validation',\n };\n }\n\n if (type === 'rg' && !options.uf) {\n return {\n ok: false,\n code: 'UNSUPPORTED_FORMAT',\n message: 'UF is required for RG validation',\n };\n }\n\n switch (type) {\n case 'cpf': {\n const result = validateCpf(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'cnpj': {\n const result = validateCnpj(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'cep': {\n const result = validateCep(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'placa': {\n const result = validatePlaca(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'pis-pasep': {\n const result = validatePisPasep(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'telefone': {\n const result = validateTelefone(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'cnh': {\n const result = validateCnh(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'renavam': {\n const result = validateRenavam(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'titulo-eleitor': {\n const result = validateTituloEleitor(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'processo-judicial': {\n const result = validateProcessoJudicial(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'rg': {\n const result = validateRg(input, { uf: options.uf as RgUfCode });\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'nfe-chave': {\n const result = validateNfeChave(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'boleto': {\n const result = validateBoleto(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'cartao-credito': {\n const result = validateCartaoCredito(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'ean': {\n const result = validateEan(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'inscricao-estadual': {\n const result = validateInscricaoEstadual(input, { uf: options.uf as UfCode });\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'inscricao-estadual-produtor-rural': {\n const result = validateIeSpRural(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'pix': {\n const result = validatePixKey(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n case 'brcode': {\n const result = validateBrCode(input);\n return result.ok ? { ok: true, value: result.value } : result;\n }\n default: {\n const _exhaustive: never = type;\n return {\n ok: false,\n code: 'UNSUPPORTED_FORMAT',\n message: `Unsupported type: ${String(_exhaustive)}`,\n };\n }\n }\n}\n","/**\n * Minimal RFC 4180 CSV column extractor for batch ETL (zero runtime deps).\n * @see docs/OFFICIAL-SOURCES.md\n */\n\nexport type ParseBatchCsvOptions = {\n col: string;\n delimiter?: string;\n skipHeader?: boolean;\n};\n\nexport type ParseBatchCsvSuccess = {\n ok: true;\n values: string[];\n};\n\nexport type ParseBatchCsvFailure = {\n ok: false;\n message: string;\n};\n\nexport type ParseBatchCsvResult = ParseBatchCsvSuccess | ParseBatchCsvFailure;\n\nfunction parseCsvRow(line: string, delimiter: string): string[] {\n const fields: string[] = [];\n let current = '';\n let inQuotes = false;\n\n for (let index = 0; index < line.length; index += 1) {\n const char = line[index];\n if (char === '\"') {\n if (inQuotes && line[index + 1] === '\"') {\n current += '\"';\n index += 1;\n } else {\n inQuotes = !inQuotes;\n }\n continue;\n }\n if (char === delimiter && !inQuotes) {\n fields.push(current);\n current = '';\n continue;\n }\n current += char;\n }\n\n fields.push(current);\n return fields;\n}\n\nfunction resolveColumnIndex(col: string, header: readonly string[]): number | null {\n const trimmed = col.trim();\n if (/^\\d+$/.test(trimmed)) {\n const index = Number.parseInt(trimmed, 10);\n if (index >= 0 && index < header.length) {\n return index;\n }\n return null;\n }\n\n const index = header.findIndex((field) => field.trim().toLowerCase() === trimmed.toLowerCase());\n return index >= 0 ? index : null;\n}\n\nexport function parseBatchCsv(raw: string, options: ParseBatchCsvOptions): ParseBatchCsvResult {\n const delimiter = options.delimiter ?? ',';\n const lines = raw.split(/\\r?\\n/).filter((line) => line.trim().length > 0);\n if (lines.length === 0) {\n return { ok: false, message: 'CSV input is empty' };\n }\n\n const skipHeader = options.skipHeader ?? true;\n let colIdx: number;\n let startIdx = 0;\n\n if (skipHeader) {\n const header = parseCsvRow(lines[0], delimiter);\n const resolved = resolveColumnIndex(options.col, header);\n if (resolved === null) {\n return {\n ok: false,\n message: `Column \"${options.col}\" not found in header: [${header.join(', ')}]`,\n };\n }\n colIdx = resolved;\n startIdx = 1;\n } else {\n const asIndex = Number.parseInt(options.col.trim(), 10);\n if (!/^\\d+$/.test(options.col.trim())) {\n return {\n ok: false,\n message: `Column \"${options.col}\" requires --skip-header when using header name`,\n };\n }\n colIdx = asIndex;\n }\n\n const values: string[] = [];\n for (let rowIndex = startIdx; rowIndex < lines.length; rowIndex += 1) {\n const row = parseCsvRow(lines[rowIndex], delimiter);\n const field = row.at(colIdx);\n if (field === undefined) {\n continue;\n }\n const cell = field.trim();\n if (cell.length > 0) {\n values.push(cell);\n }\n }\n\n if (values.length === 0) {\n return { ok: false, message: 'No values found in CSV column' };\n }\n\n return { ok: true, values };\n}\n","/**\n * Batch validation — maps `validate*` per row, never throws (BR-BATCH-001).\n * @see docs/OFFICIAL-SOURCES.md\n */\nimport { validateForPlatform } from '../platform/validate-dispatch.js';\nimport type { PlatformDocumentType, PlatformOptions } from '../platform/types.js';\nimport type { ValidationErrorCode } from '../types/validation-result.js';\n\nexport type BatchValidEntry = {\n index: number;\n input: string;\n value: string;\n};\n\nexport type BatchInvalidEntry = {\n index: number;\n input: string;\n code: ValidationErrorCode;\n message: string;\n};\n\nexport type BatchSummary = {\n total: number;\n valid: number;\n invalid: number;\n};\n\nexport type BatchResult = {\n valid: BatchValidEntry[];\n invalid: BatchInvalidEntry[];\n summary: BatchSummary;\n};\n\nexport { parseBatchCsv } from './parse-csv.js';\nexport type {\n ParseBatchCsvFailure,\n ParseBatchCsvOptions,\n ParseBatchCsvResult,\n ParseBatchCsvSuccess,\n} from './parse-csv.js';\n\nexport function batch(\n inputs: readonly string[],\n type: PlatformDocumentType,\n options: PlatformOptions = {},\n): BatchResult {\n const valid: BatchValidEntry[] = [];\n const invalid: BatchInvalidEntry[] = [];\n\n inputs.forEach((input, index) => {\n const result = validateForPlatform(input, type, options);\n if (result.ok) {\n valid.push({ index, input, value: result.value });\n } else {\n invalid.push({ index, input, code: result.code, message: result.message });\n }\n });\n\n return {\n valid,\n invalid,\n summary: {\n total: inputs.length,\n valid: valid.length,\n invalid: invalid.length,\n },\n };\n}\n"]}

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display